[Nexus S Android Development] hedpe:
So, I think I now have upstream power but I am still having issues. Let me first describe and illustrate my setup:

Untitled by gnychis, on Flickr

I have the D-Link hub which is powered by the black cable coming from my power strip. Then, I have the host connection from the D-Link hub to my Y-cable. The other end of the Y-cable goes to the silver cable, which brings in power from the power strip using a USB charger. Finally, the Y-cable is connect to the Nexus S using an OTG cable.

No matter if I use auto host, host, or otg, I still cannot seem to detect my plugged in flash drive, and I get a ton of dmesg errors related to power, still.

The dmesg output is huge for auto host and otg, they seem to be in a loop of errors.

OTG Dmesg:

<6>[ 278.992293] => Port Interrupt
<6>[ 278.993358] otg_dbg: in process_port_intr()::00276
<6>[ 278.994374] => over current condition is changed
<3>[ 278.995568] otg_err: in otg_power_work()::00065
<3>[ 278.996123] => invalid otghost data
<7>[ 279.011362] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
<7>[ 279.012042] hub 1-0:1.0: port 1, status 0000, change 0001, 12 Mb/s
<7>[ 279.136366] hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x0
<6>[ 279.137009] otg_dbg: in root_hub_feature()::00477
<6>[ 279.138043] => case SetPortFeature -USB_PORT_FEAT_POWER
<6>[ 279.139149] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 279.140165] => Port Interrupt
<6>[ 279.141226] otg_dbg: in process_port_intr()::00259
<6>[ 279.141792] => detect connection
<6>[ 279.239174] otg_dbg: in otg_handle_interrupt()::00062
<6>[ 279.240247] => Disconnect Interrupt
<6>[ 279.241319] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 279.242338] => Port Interrupt
<6>[ 279.243402] otg_dbg: in process_port_intr()::00276
<6>[ 279.244407] => over current condition is changed
<3>[ 279.245720] otg_err: in otg_power_work()::00065
<3>[ 279.246288] => invalid otghost data
<7>[ 279.261250] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
<7>[ 279.261933] hub 1-0:1.0: port 1, status 0000, change 0001, 12 Mb/s
<7>[ 279.386366] hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x0
<6>[ 279.386991] otg_dbg: in root_hub_feature()::00477
<6>[ 279.388008] => case SetPortFeature -USB_PORT_FEAT_POWER
<6>[ 279.389114] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 279.390136] => Port Interrupt
<6>[ 279.391196] otg_dbg: in process_port_intr()::00259
<6>[ 279.391753] => detect connection
<6>[ 279.489139] otg_dbg: in otg_handle_interrupt()::00062
<6>[ 279.490213] => Disconnect Interrupt
<6>[ 279.491279] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 279.492288] => Port Interrupt
<6>[ 279.493352] otg_dbg: in process_port_intr()::00276
<6>[ 279.494358] => over current condition is changed
<3>[ 279.495568] otg_err: in otg_power_work()::00065
<3>[ 279.496132] => invalid otghost data
<7>[ 279.511330] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
<7>[ 279.512014] hub 1-0:1.0: port 1, status 0000, change 0001, 12 Mb/s
<7>[ 279.636321] hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x0
<6>[ 279.636940] otg_dbg: in root_hub_feature()::00477
<6>[ 279.637954] => case SetPortFeature -USB_PORT_FEAT_POWER

Auto Host:

<6>[ 103.922909] otg_dbg: in root_hub_feature()::00477
<6>[ 103.923479] => case SetPortFeature -USB_PORT_FEAT_POWER
<6>[ 103.925087] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 103.925658] => Port Interrupt
<6>[ 103.927176] otg_dbg: in process_port_intr()::00259
<6>[ 103.927743] => detect connection
<7>[ 104.011553] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
<7>[ 104.013488] hub 1-0:1.0: port 1, status 0101, change 0001, 12 Mb/s
<6>[ 104.025063] otg_dbg: in otg_handle_interrupt()::00062
<6>[ 104.026093] => Disconnect Interrupt
<6>[ 104.027160] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 104.028178] => Port Interrupt
<6>[ 104.029252] otg_dbg: in process_port_intr()::00276
<6>[ 104.029814] => over current condition is changed
<3>[ 104.031539] otg_err: in otg_power_work()::00065
<3>[ 104.032106] => invalid otghost data
<7>[ 104.183260] hub 1-0:1.0: debounce: port 1: total 125ms stable 100ms status 0x0
<6>[ 104.183841] otg_dbg: in root_hub_feature()::00477
<6>[ 104.184132] => case SetPortFeature -USB_PORT_FEAT_POWER
<6>[ 104.184937] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 104.185229] => Port Interrupt
<6>[ 104.186015] otg_dbg: in process_port_intr()::00259
<6>[ 104.186301] => detect connection
<7>[ 104.261310] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
<7>[ 104.261522] hub 1-0:1.0: port 1, status 0101, change 0001, 12 Mb/s
<6>[ 104.284931] otg_dbg: in otg_handle_interrupt()::00062
<6>[ 104.285061] => Disconnect Interrupt
<6>[ 104.285184] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 104.285300] => Port Interrupt
<6>[ 104.285423] otg_dbg: in process_port_intr()::00276
<6>[ 104.285488] => over current condition is changed
<3>[ 104.285692] otg_err: in otg_power_work()::00065
<3>[ 104.285762] => invalid otghost data
<7>[ 104.417620] hub 1-0:1.0: debounce: port 1: total 125ms stable 100ms status 0x0
<6>[ 104.418202] otg_dbg: in root_hub_feature()::00477
<6>[ 104.418495] => case SetPortFeature -USB_PORT_FEAT_POWER

Host:

<6>[ 113.939233] otg_dbg: in s5pc110_otg_drv_probe()::00076
<6>[ 113.939373] => s3c_otg_drv_probe
<4>[ 113.939527] drivermode = 0
<4>[ 113.941928] otg_host_phy_int : USBPHYCTL=0x1,PHYPWR=0x1e0,PHYCLK=0x7,USBCFG=0x570f
<6>[ 114.071741] s3c_otghcd s3c_otghcd: S3C OTGHCD
<6>[ 114.071860] s3c_otghcd s3c_otghcd: new USB bus registered, assigned bus number 1
<6>[ 114.072022] s3c_otghcd s3c_otghcd: irq 88, io mem 0xec000000
<7>[ 114.359498] usb usb1: default language 0x0409
<7>[ 114.359887] usb usb1: udev 1, busnum 1, minor = 0
<6>[ 114.359957] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
<6>[ 114.360079] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
<6>[ 114.360146] usb usb1: Product: S3C OTGHCD
<6>[ 114.360264] usb usb1: Manufacturer: Linux 3.0.8-gc4191d9 EMSP_OTGHCD
<6>[ 114.360331] usb usb1: SerialNumber: s3cotg
<7>[ 114.361764] usb usb1: usb_probe_device
<7>[ 114.361841] usb usb1: configuration #1 chosen from 1 choice
<7>[ 114.361986] usb usb1: adding 1-0:1.0 (config #1, interface 0)
<7>[ 114.363415] hub 1-0:1.0: usb_probe_interface
<7>[ 114.363490] hub 1-0:1.0: usb_probe_interface - got id
<6>[ 114.363609] hub 1-0:1.0: USB hub found
<6>[ 114.363693] hub 1-0:1.0: 1 port detected
<7>[ 114.363812] hub 1-0:1.0: standalone hub
<7>[ 114.363877] hub 1-0:1.0: ganged power switching
<7>[ 114.363943] hub 1-0:1.0: global over-current protection
<7>[ 114.364060] hub 1-0:1.0: Single TT
<7>[ 114.364126] hub 1-0:1.0: TT requires at most 32 FS bit times (2664 ns)
<7>[ 114.364246] hub 1-0:1.0: power on to power good time: 0ms
<7>[ 114.364320] hub 1-0:1.0: local power source is good
<7>[ 114.364438] hub 1-0:1.0: no over-current condition exists
<7>[ 114.364540] hub 1-0:1.0: enabling power on all ports
<6>[ 114.364617] otg_dbg: in root_hub_feature()::00477
<6>[ 114.364733] => case SetPortFeature -USB_PORT_FEAT_POWER
<6>[ 114.365789] otg_dbg: in s5pc110_otg_drv_probe()::00182
<6>[ 114.365912] => OTG HCD Initialized HCD, bus=C110 OTG Controller, usbbus=1
<4>[ 114.366854] platform_driver_registered
<7>[ 114.463406] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
<6>[ 114.464874] otg_dbg: in otg_handle_interrupt()::00087
<6>[ 114.465024] => Port Interrupt
<6>[ 114.465173] otg_dbg: in process_port_intr()::00276
<6>[ 114.465250] => over current condition is changed
<3>[ 114.465481] otg_err: in otg_power_work()::00065
<3>[ 114.465559] => invalid otghost data
<6>[ 120.694552] fsa9480 7-0025: dev1: 0x80, dev2: 0x0
<4>[ 120.695714] OTG: no changes needed

Note that host mode doesn't seem to be in this error loop. Also, OTG mode and Auto Host mode both cause the lights on the front of my hub to flash twice, then go out. Host mode does not cause any lights on the front to light in that way.