Google
  Web www.spinics.net

The problems of OHCI driver for Winbond W90N740.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hello,I'm porting uClinux for W90N740, the kernel is booted successful, but the USB Host has some problems. After the kernel is booted, I plug in a USB Card reader, the kernel outputs the following messages, I don't understand the messages, :(The attachment is the HCD source code for W90N740. $ cat /proc/kmsg &74$ <5>Linux version 2.6.22-uc0 (root@DownloaderDevelopment) (gcc version 3.4.3) #479 Mon Oct 1 12:32:33 CST 2007<4>CPU: Winbond-W90N740 [32103201] revision 1 (ARMvundefined/unknown), cr=00000000<4>Machine: W90N740<4>W90N740 cache init<7>On node 0 totalpages: 4096<7>  DMA zone: 32 pages used for memmap<7>  DMA zone: 0 pages reserved<7>  DMA zone: 4064 pages, LIFO batch:0<7>  Normal zone: 0 pages used for memmap<4>Built 1 zonelists.  Total pages: 4064<5>Kernel command line: init=/linuxrc console=ttyS0,115200 root=31:2<4>PID hash table entries: 64 (order: 6, 256 bytes)<4>Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)<4>Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)<6>Memory:1 banks<4>      16MB = 16MB total<5>Memory: 14772KB available (1168K code, 244K data, 44K init)<6>Calibrating delay loop... <5>39.83 BogoMIPS<4>Mount-cache hash table entries: 512<5>SCSI subsystem initialized<6>usbcore: registered new interface driver usbfs<6>usbcore: registered new interface driver hub<6>usbcore: registered new device driver usb<4>NetWinder Floating Point Emulator V0.97 (double precision)<6>NTFS driver 2.1.28 [Flags: R/W].<6>io scheduler noop registered (default)<6>Serial: W90N740 driver $Revision: 1.00 $<3>scsi_debug_init: out of memory, 1<4>uclinux[mtd]: RAM probe address=0x7f000000 size=0x200000<5>Creating 5 MTD partitions on "cramfs":<5>0x00000000-0x00010000 : "uBoot"<5>0x00010000-0x00100000 : "Kernel"<5>0x00100000-0x001e0000 : "Cramfs"<5>0x001e0000-0x001f0000 : "ParamA"<5>0x001f0000-0x00200000 : "ParamB"<4>uclinux[mtd]: set Cramfs to be root filesystem<7>ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver<7>ohci_hcd: block sizes: ed 64 td 64<4>w90n740_usb_set_power(0013b4f8, 1, 1)<4>w90n740_usb_set_power(0013b4f8, 2, 1)<4>w90n740 start USB host controller.<6>w90n740-ohci w90n740-ohci: W90N74X OHCI<7>drivers/usb/core/inode.c: creating file 'devices'<7>drivers/usb/core/inode.c: creating file '001'<6>w90n740-ohci w90n740-ohci: new USB bus registered, assigned bus number 1<6>w90n740-ohci w90n740-ohci: irq 9, io mem 0xfff05000<7>w90n740-ohci w90n740-ohci: created debug files<7>w90n740-ohci w90n740-ohci: enabling initreset quirk<7>w90n740-ohci w90n740-ohci: OHCI controller state<7>w90n740-ohci w90n740-ohci: OHCI 1.0, NO legacy support registers<7>w90n740-ohci w90n740-ohci: control 0x083 HCFS=operational CBSR=3<7>w90n740-ohci w90n740-ohci: cmdstatus 0x00000 SOC=0<7>w90n740-ohci w90n740-ohci: intrstatus 0x00000004 SF<7>w90n740-ohci w90n740-ohci: intrenable 0x8000004a MIE RHSC RD WDH<7>w90n740-ohci w90n740-ohci: hcca frame #0004<7>w90n740-ohci w90n740-ohci: roothub.a 01000002 POTPGT=1 NDP=2(2)<7>w90n740-ohci w90n740-ohci: roothub.b 00000000 PPCM=0000 DR=0000<7>w90n740-ohci w90n740-ohci: roothub.status 00008000 DRWE<7>w90n740-ohci w90n740-ohci: roothub.portstatus [0] 0x00000100 PPS<7>w90n740-ohci w90n740-ohci: roothub.portstatus [1] 0x00000100 PPS<7>usb usb1: default language 0x0409<7>usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1<6>usb usb1: Product: W90N74X OHCI<6>usb usb1: Manufacturer: Linux 2.6.22-uc0 ohci_hcd<6>usb usb1: SerialNumber: W90N74x<7>usb usb1: uevent<7>usb usb1: usb_probe_device<6>usb usb1: configuration #1 chosen from 1 choice<7>usb usb1: adding 1-0:1.0 (config #1, interface 0)<7>usb 1-0:1.0: uevent<7>usb 1-0:1.0: uevent<7>hub 1-0:1.0: usb_probe_interface<7>hub 1-0:1.0: usb_probe_interface - got id<6>hub 1-0:1.0: USB hub found<6>hub 1-0:1.0: 2 ports detected<7>hub 1-0:1.0: standalone hub<7>hub 1-0:1.0: ganged power switching<7>hub 1-0:1.0: global over-current protection<7>hub 1-0:1.0: power on to power good time: 2ms<7>hub 1-0:1.0: local power source is good<7>hub 1-0:1.0: no over-current condition exists<7>hub 1-0:1.0: enabling power on all ports<7>hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000<7>drivers/usb/core/inode.c: creating file '001'<6>Initializing USB Mass Storage driver...<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000100 PPS<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [1] = 0x00000100 PPS<6>usbcore: registered new interface driver usb-storage<6>USB Mass Storage support registered.<4>VFS: Mounted root (cramfs filesystem) readonly.<6>Freeing init memory: 44K<7>opening ttyS0...uart_open(0) called<4>Open an initial console succeed.<5>Clock: old time 1970/01/01 - 00:00:01 GMT<5>Clock: new time 2007/06/01 - 10:37:47 GMT
The card reader is plugged into the USB port at this time and the kernel prints the following messages: 
<7>w90n740-ohci w90n740-ohci: rhsc<7>hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0002<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00010101 CSC PPS CCS<7>hub 1-0:1.0: port 1, status 0101, change 0001, 12 Mb/s<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000101 PPS CCS<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000101 PPS CCS<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000101 PPS CCS<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000101 PPS CCS<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000101 PPS CCS<7>hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCSusb 1-1: new full speed USB device using w90n740-ohci and address 2<6>usb 1-1: new full sp€ed USB device using w90n740-ohci and address 2<7>drivers/usb/host/ohci-dbg.c: SUB 00315a40 dev=0 ep=0in-ctrl flags=0 len=0/64 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315a40 dev=0 ep=0in-ctrl flags=0 len=18/64 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 00 01 00 00 40 00<7>drivers/usb/host/ohci-dbg.c: data(18/64): 12 01 00 02 00 00 00 40 8f 05 66 63 00 01 01 02... stat:0<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS<7>drivers/usb/host/ohci-dbg.c: SUB 003159f8 dev=0 ep=0out-ctrl flags=0 len=0/0 stat=-115<7>drivers/usb/host/ohci-dbg.c: setup(8): 00 05 02 00 00 00 00 00<7>drivers/usb/host/ohci-dbg.c: RET 003159f8 dev=0 ep=0out-ctrl flags=0 len=0/0 stat=0<7>drivers/usb/host/ohci-dbg.c: SUB 00315a18 dev=2 ep=0in-ctrl flags=0 len=0/18 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315a18 dev=2 ep=0in-ctrl flags=0 len=18/18 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 00 01 00 00 12 00<7>drivers/usb/housb 1-1: Product: Mass Storage Devicest/ohci-usb 1-1: Manufacturer: Genericdbg.c: dusb 1-1: SerialNumber: 058F0O1111B1ata(18/18): 12 01 00 02 00 00 00 40 8f 05 66 63 00 01001 02... stat:0@7>drivers/usb/host/ohci-dbg.c: Susb 1-1: configuration #1 chosen from 1 choiceUB 00315c48 dev=2 ep=0in-ctrl flags=0 len=0/9 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315c48 dev=2 ep=0in-ctrl scsi0 : SCSI emulation for USB Mass Storage devicesflass=0 len=9/9 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 00 02 00 00 09 00<7>drivers/usbhhost/ohci-dbg.c: data(9/9): 09 02 20 00 01 01 00 80 32 stat:0<7>drivers/usb/host/ohci-dbg.c: SUB 00315c70 dev=2 ep=0in-ctrl flags=0 len=0/32 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315c70 dev=2 ep=0in-ctrl flags=0 len=32/32 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 00 02 00 00 20 00<7>drivers/usb/host/ohci-dbg.c: data(32/32): 09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06... stat:0<7>drivers/usb/host/ohci-dbg.c: SUB 00315f00 dev=2 ep=0in-ctrl flags=0 len=0/255 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315f00 dev=2 ep=0in-ctrl flags=0 len=4/255 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 00 03 00 00 ff 00<7>drivers/usb/host/ohci-dbg.c: data(4/255): 04 03 09 04 stat:0<7>usb 1-1: default language 0x0409<7>drivers/usb/host/ohci-dbg.c: SUB 00315f00 dev=2 ep=0in-ctrl flags=0 len=0/255 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315f00 dev=2 ep=0in-ctrl flags=0 len=40/255 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 02 03 09 04 ff 00<7>drivers/usb/host/ohci-dbg.c: data(40/255): 28 03 4d 00 61 00 73 00 73 00 20 00 53 00 74 00... stat:0<7>drivers/usb/host/ohci-dbg.c: SUB 00315f20 dev=2 ep=0in-ctrl flags=0 len=0/255 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315f20 dev=2 ep=0in-ctrl flags=0 len=16/255 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 01 03 09 04 ff 00<7>drivers/usb/host/ohci-dbg.c: data(16/255): 10 03 47 00 65 00 6e 00 65 00 72 00 69 00 63 00 stat:0<7>drivers/usb/host/ohci-dbg.c: SUB 00315f30 dev=2 ep=0in-ctrl flags=0 len=0/255 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00315f30 dev=2 ep=0in-ctrl flags=0 len=26/255 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): 80 06 03 03 09 04 ff 00<7>drivers/usb/host/ohci-dbg.c: data(26/255): 1a 03 30 00 35 00 38 00 46 00 30 00 4f 00 31 00... stat:0<7>usb 1-1: new device strings: Mfr=1, Product=2, SerialNumber=3<6>usb 1-1: Product: Mass Storage Device<6>usb 1-1: Manufacturer: Generic<6>usb 1-1: SerialNumber: 058F0O1111B1<7>usb 1-1: uevent<7>usb 1-1: usb_probe_device<6>usb 1-1: configuration #1 chosen from 1 choice<7>drivers/usb/host/ohci-dbg.c: SUB 002a2f48 dev=2 ep=0out-ctrl flags=0 len=0/0 stat=-115<7>drivers/usb/host/ohci-dbg.c: setup(8): 00 09 01 00 00 00 00 00<7>drivers/usb/host/ohci-dbg.c: RET 002a2f48 dev=2 ep=0out-ctrl flags=0 len=0/0 stat=0<7>usb 1-1: adding 1-1:1.0 (config #1, interface 0)<7>usb 1-1:1.0: uevent<7>usb 1-1:1.0: uevent<7>usb-storage 1-1:1.0: usb_probe_interface<7>usb-storage 1-1:1.0: usb_probe_interface - got id<7>usb-storage: USB Mass Storage device detected<7>usb-storage: -- associate_dev<7>usb-storage: Vendor: 0x058f, Product: 0x6366, Revision: 0x0100<7>usb-storage: Interface Subclass: 0x06, Protocol: 0x50<7>usb-storage: Transport: Bulk<7>usb-storage: Protocol: Transparent SCSI<6>scsi0 : SCSI emulation for USB Mass Storage devices<7>usb-storage: *** thread sleeping.<7>usb-storage: device found at 2<7>usb-storage: waiting for device to settle before scanning<7>drivers/usb/core/inode.c: creating file '002'<7>hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0002<7>w90n740-ohci w90n740-ohci: GetStatus roothub.portstatus [0] = 0x00000103 PPS PES CCS<7>usb-storaee: usb_stor_control_msg: rq=fe rqtype=a1 value=0000 index=00 len=1<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=0in-ctrl flags=c len=0/1 stat=-115<7>drivers/usb/host/oscsi 0:0:0:0: Direct-Access     Multi    Flash Reader     1.00 PQ: 0 ANSI: 0hci-dbg.c: RET 00336738 dev22 pp=0in-ctrl flags=c len=1/1 stat=0<7>drivers/usb/host/ohci-dbg.c: setup(8): a1 fe 00 00 00 00 01000<7>drivers/usb/host/ohci-dbg.c: data(1/1): 00 stat:0<7>usb-storage: GetMaxLUN command result is 1, data is 0<7>usb-storage: queuecommand called<7>usb-storage: *** thread awakened.<7>usb-storage: Command INQUIRY (6 bytes)<7>usb-storage:  12 00 00 00 24 00<7>usb-storage: Bulk Command S 0x43425355 T 0x1 L 36 F 128 Trg 0 LUN 0 CL 6<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=1out-bulk flags=c len=0/31 stat=-115<7>drivers/usb/host/ohci-dbg.c: data(0/31): 55 53 42 43 01 00 00 00 24 00 00 00 80 00 06 12... stat:-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=1out-bulk flags=c len=31/31 stat=0<7>usb-storage: Status code 0; transferred 31/31<7>usb-storage: -- transfer complete<7>usb-storage: Bulk command transfer result=0<7>usb-storage: usb_stor_bulk_transfer_sglist: xfer 36 bytes, 1 entries<7>drivers/usb/host/ohci-dbg.c: SUB 0032f698 dev=2 ep=2in-bulk flags=5 len=0/36 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 0032f698 dev=2 ep=2in-bulk flags=5 len=36/36 stat=0<7>drivers/usb/host/ohci-dbg.c: data(36/36): 00 80 00 00 1f 00 00 00 4d 75 6c 74 69 20 20 20... stat:0<7>usb-storage: Status code 0; transferred 36/36<7>usb-storage: -- transfer complete<7>usb-storage: Bulk data transfer result 0x0<7>usb-storage: Attempting to get CSW...<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=2in-bulk flags=c len=0/13 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=2in-bulk flags=c len=13/13 stat=0<7>drivers/usb/host/ohci-dbg.c: data(13/13): 55 53 42 53 01 00 00 00 00 00 00 00 00 stat:0<7>usb-storage: Status code 0; transferred 13/13<7>usb-storage: -- transfer complete<7>usb-storage: Bulk status result = 0<7>usb-storage: Bulk Status S 0x53425355 T 0x1 R 0 Stat 0x0<7>usb-storage: scsi cmd done, result=0x0<7>usb-storage: *** thread sleeping.<5>scsi 0:0:0:0: Direct-Access     Multi    Flash Reader     1.00 PQ: 0 ANSI: 0<7>usb-storage: queuecommand called<7>usb-storage: *** thread awakened.<7>usb-storage: Command TEST_UNIT_READY (6 bytes)<7>usb-storage:  00 00 00 00 00 00<7>usb-storage: Bulk Command S 0x43425355 T 0x2 L 0 F 0 Trg 0 LUN 0 CL 6<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=1out-bulk flags=c len=0/31 stat=-115<7>drivers/usb/host/ohci-dbg.c: data(0/31): 55 53 42 43 02 00 00 00 00 00 00 00 00 00 06 00... stat:-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=1out-bulk flags=c len=31/31 stat=0<7>usb-storage: Status code 0; transferred 31/31<7>usb-storage: -- transfer complete<7>usb-storage: Bulk command transfer result=0<7>usb-storage: Attempting to get CSW...<7>usb-storage: usb_stor_bulk_transfer_buf: ffer 13 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=2in-bulk flags=c len=0/13 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=2in-bulk flags=c len=13/13 stat=0<7>drivers/usb/host/ohci-dbg.c: data(13/13): 55 53 42 53 02 00 00 00 00 00 0  00 01 stat:0<7>usb-storage: Status code 0; transferred 13/13<7>usb-storage: -- transfer complete<7>usb-storage: Bulk status result = 0<7>usb-storage: Bulk Status S 0x53425355 T 0x2 R 0 Stat 0x1<7>usb-storage: -- transport indicates command failure<7>usb-storage: Issuing auto-REQUEST_SENSE<7>usb-storage: Bulk Command S 0x43425355 T 0x3 L 18 F 128 Trg 0 LUN 0 CL 6<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=1out-bulk flags=c len=0/31 stat=-115<7>drivers/usb/host/ohci-dbg.c: data(0/31): 55 53 42 43 03 00 00 00 12 00 00 00 80 00 06 03... stat:-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=1out-bulk flags=c len=31/31 stat=0<7>usb-storage: Status code 0; transferred 31/31<7>usb-storage: -- transfer complete<7>usb-storage: Bulk command transfer result=0<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 18 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=2in-bulk flags=8 len=0/18 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=2in-bulk flags=8 len=18/18 stat=0<7>drivers/usb/host/ohci-dbg.c: data(18/18): f0 02 06 00 00 00 00 0a 00 aa 55 42 28 00 02 00... stat:0<7>usb-storage: Status code 0; transferred 18/18<7>usb-storage: -- transfer complete<7>usb-storage: Bulk data transfer result 0x0<7>usb-storage: Attempting to get CSW...<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=2in-bulk flags=c len=0/13 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=2in-bulk flags=c len=13/13 stat=0<7>drivers/usb/host/ohci-dbg.c: data(13/13): 55 53 42 53 03 00 00 00 00 00 00 00 00 stat:0<7>usb-storage: Status code 0; transferred 13/13<7>usb-storage: -- transfer complete<7>usb-storage: Bulk status result = 0<7>usb-storage: Bulk Status S 0x53425355 T 0x3 R 0 Stat 0x0<7>usb-storage: -- Result from auto-sense is 0<7>usb-storage: -- code: 0xf0, key: 0x6, ASC: 0x28, ASCQ: 0x0<7>usb-storage: Unit Attention: Not ready to ready change, medium may have changed<7>usb-storage: scsi cmd done, result=0x2<7>usb-storage: *** thread sleeping.<7>usb-storage: queuecommand called<7>usb-storage: *** thread awakened.<7>usb-storage: Command TEST_UNIT_READY (6 bytes)<7>usb-storage:  00 00 00 00 00 00<7>usb-storage: Bulk Command S 0x43425355 T 0x4 L 0 F 0 Trg 0 LUN 0 CL 6<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=1out-bulk flags=c len=0/31 stat=-115<7>drivers/usb/host/ohci-dbg.c: data(0/31): 55 53 42 43 04 00 00 00 00 00 00 00 00 00 06 00... stat:-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=1out-bulk flags=c len=31/31 stat=0<7>usb-storage: Status code 0; transferred 31/31<7>usb-storage: -- transfer complete<7>usb-storage: Bulk command transfer result=0<7>usb-storage: Attempting to get CSW...<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=2in-bulk flags=c len=0/13 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=2in-bulk flags=c len=13/13 stat=0<7>drivers/usb/host/ohci-dbg.c: data(13/13): 55 53 42 53 04 00 00 00 00 00 00 00 00 stat:0<7>usb-storage: Status code 0; transferred 13/13<7>usb-storage: -- transfer complete<7>usb-storage: Bulk status result = 0<7>usb-storage: Bulk Status S 0x53425355 T 0x4 R 0 Stat 0x0<7>usb-storage: scsi cmd done, result=0x0<7>usb-storage: *** thread sleeping.<7>usb-storage: queuecommand called<7>usb-storage: *** thread awakened.<7>usb-storage: Command READ_CAPACITY (10 bytes)<7>usb-storage:  25 00 00 00 00 00 00 00 00 00<7>usb-storage: Bulk Command S 0x43425355 T 0x5 L 8 F 128 Trg 0 LUN 0 CL 10<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=1out-bulk flags=c len=0/31 stat=-115<7>drivers/usb/host/ohci-dbg.c: data(0/31): 55 53 42 43 05 00 00 00 08 00 00 00 80 00 0a 25... stat:-115<7>drivers/usb/host/ohci-dbg.c: RET 00336738 dev=2 ep=1out-bulk flags=c len=31/31 stat=0<7>usb-storage: Status code 0; transferred 31/31<7>usb-storage: -- transfer complete<7>usb-storage: Bulk command transfer result=0<7>usb-storage: usb_stor_bulk_transfer_sglist: xfer 8 bytes, 1 entries<7>drivers/usb/host/ohci-dbg.c: SUB 0032cdb8 dev=2 ep=2in-bulk flags=5 len=0/8 stat=-115<7>drivers/usb/host/ohci-dbg.c: RET 0032cdb8 dev=2 ep=2in-bulk flags=5 len=8/8 stat=0<7>drivers/usb/host/ohci-dbg.c: data(8/8): 00 01 f5 ff 00 00 02 00 stat:0<7>usb-storage: Status code 0; transferred 8/8<7>usb-storage: -- transfer complete<7>usb-storage: Bulk data transfer result 0x0<7>usb-storage: Attempting to get CSW...<7>usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes<7>drivers/usb/host/ohci-dbg.c: SUB 00336738 dev=2 ep=2in-bulk flags=c len=0/13 stat=-115
$ <7>usb-storage: command_abort called<7>usb-storage: usb_stor_stop_transport called<7>usb-storage: -- cancelling URB<7>drivers/usb/host/ohci-dbg.c: UNLINK 00336738 dev=2 ep=2in-bulk flags=c len=0/13 stat=-104
There is nothing in /proc/bus/usb!
What should I do?
Darwin Chen.-----------------------------------------------------------/* * linux/drivers/usb/host/ohci-w90n740.c * OHCI HCD (Host Controller Driver) for Winbond w90n740. * * (C) Copyright 2006-2008 Chen Weiwen <PStudio@xxxxxxx> * * USB Bus Glue for Winbond W90N740 * * Written by Chen Weiwen <PStudio@xxxxxxx> * Based on fragments of Samsung S3c24xx Christopher Hoover <ch@xxxxxxxxxx>. * * Modified for W90N740 from ohci-s3c2410.c *	by Chen Weiwen, <PStudio@xxxxxxx> *	Copyright (C) 2006-2008 Chen Weiwen * * This file is licenced under the GPL.*/
#include <linux/platform_device.h>
#include <asm/hardware.h>#include <asm/arch/usb-control.h>
#define valid_port(idx)		((idx) == 1 || (idx) == 2)#define HCRootHubStatus 	0xFFF05050
void enable_usb_clock(){	unsigned long nClockSel;	nClockSel = CSR_READ(CLKSEL);	nClockSel |= 0x00000080;	CSR_WRITE(CLKSEL, nClockSel);}void disable_usb_clock(){	unsigned long nClockSel;	nClockSel = CSR_READ(CLKSEL);	nClockSel &= 0xFFFFFF7F;	CSR_WRITE(CLKSEL, nClockSel);}
static void w90n740_usb_power_control(int port, int to) {	int ps = CSR_READ(HCRootHubStatus);	if(to)		CSR_WRITE(HCRootHubStatus, ps|0x10000);	else		CSR_WRITE(HCRootHubStatus, ps|0x01);}
static void w90n740_usb_enable_oc(struct w90n740_hcd_info * info, int on) { }
static struct w90n740_hcd_info *to_w90n740_info(struct usb_hcd *hcd) {	return hcd->self.controller->platform_data;}
static void w90n740_start_hc(struct platform_device *dev, struct usb_hcd *hcd) {	struct w90n740_hcd_info *info = dev->dev.platform_data;	printk("w90n740 start USB host controller.\n");		enable_usb_clock();	mdelay(2);			//let the bus clock stabilise }
static void w90n740_stop_hc(struct platform_device *dev) {	struct w90n740_hcd_info *info = dev->dev.platform_data;
	if (info != NULL) {		info->report_oc = NULL;		info->hcd	= NULL;
		if (info->enable_oc != NULL) {			(info->enable_oc)(info, 0);		}	}
	disable_usb_clock();}
/* w90n740_usb_set_power * * configure the power on a port, by calling the platform device * routine registered with the platform device */
static void w90n740_usb_set_power(struct w90n740_hcd_info *info,				  int port, int to){	int ps = CSR_READ(0xfff05048);
	if (info == NULL)		return;
	printk(KERN_DEBUG "w90n740_usb_set_power(%08x, %d, %d)\n", info, port, to);
	CSR_WRITE(0xfff05048,ps|0x200);	ps = CSR_READ(HCRootHubStatus);	if(to)		CSR_WRITE(HCRootHubStatus, ps|0x10000);	else		CSR_WRITE(HCRootHubStatus, ps|0x01);}
/* may be called without controller electrically present *//* may be called with controller, bus, and devices active */
/* * usb_hcd_w90n740_remove - shutdown processing for HCD * @dev: USB Host Controller being removed * Context: !in_interrupt() * * Reverses the effect of usb_hcd_3c2410_probe(), first invoking * the HCD's stop() method.  It is always called from a thread * context, normally "rmmod", "apmd", or something similar. * */static voidusb_hcd_w90n740_remove (struct usb_hcd *hcd, struct platform_device *dev) {	usb_remove_hcd(hcd);	w90n740_stop_hc(dev);	iounmap(hcd->regs);	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);	usb_put_hcd(hcd);}
/** * usb_hcd_w90n740_probe - initialize W90N740-based HCDs * Context: !in_interrupt() * * Allocates basic resources for this USB host controller, and * then invokes the start() method for the HCD associated with it * through the hotplug entry's driver_data. * */static int usb_hcd_w90n740_probe (const struct hc_driver *driver,				  struct platform_device *dev){
	struct usb_hcd *hcd = NULL;	int retval;	struct w90n740_hcd_info * info = (struct w90n740_hcd_info *)dev->dev.platform_data;			w90n740_usb_set_power(dev->dev.platform_data, 1, 1);	w90n740_usb_set_power(dev->dev.platform_data, 2, 1);
	hcd = usb_create_hcd(driver, &dev->dev, "W90N74x");	if (hcd == NULL)		return -ENOMEM;
	hcd->rsrc_start = dev->resource[0].start;	hcd->rsrc_len   = dev->resource[0].end - dev->resource[0].start + 1;
	if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {		dev_err(&dev->dev, "request_mem_region failed");		retval = -EBUSY;		goto err_put;	}
	w90n740_start_hc(dev, hcd);	hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);	if (!hcd->regs) {		dev_err(&dev->dev, "ioremap failed\n");		retval = -ENOMEM;		goto err_ioremap;	}
	ohci_hcd_init(hcd_to_ohci(hcd));
	retval = usb_add_hcd(hcd,INT_USBINT0 , IRQF_DISABLED);	if (retval != 0)		goto err_ioremap;
	return 0;
 err_ioremap:	w90n740_stop_hc(dev);	iounmap(hcd->regs);
 err_mem:	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
 err_put:	usb_put_hcd(hcd);	return retval;}
static int ohci_w90n740_start (struct usb_hcd *hcd) {	struct ohci_hcd	*ohci = hcd_to_ohci (hcd);	int ret;
	if ((ret = ohci_init(ohci)) < 0)		return ret;	if ((ret = ohci_run (ohci)) < 0) {		err ("can't start %s", hcd->self.bus_name);		ohci_stop (hcd);		return ret;	}
	return 0;}

static const struct hc_driver ohci_w90n740_hc_driver = {	.description =		hcd_name,	.product_desc =		"W90N74X OHCI",	.hcd_priv_size =	sizeof(struct ohci_hcd),
	/*	 * generic hardware linkage	 */	.irq =			ohci_irq,	.flags =		HCD_USB11 | HCD_MEMORY,
	/*	 * basic lifecycle operations	 */	.start =		ohci_w90n740_start,	.stop =			ohci_stop,	.shutdown =		ohci_shutdown,
	/*	 * managing i/o requests and associated device resources	 */	.urb_enqueue =		ohci_urb_enqueue,	.urb_dequeue =		ohci_urb_dequeue,	.endpoint_disable =	ohci_endpoint_disable,
	/*	 * scheduling support	 */	.get_frame_number =	ohci_get_frame,
	/*	 * root hub support	 */	.hub_status_data =	ohci_hub_status_data,	.hub_control =		ohci_hub_control,	.hub_irq_enable =	ohci_rhsc_enable,#ifdef	CONFIG_PM	.bus_suspend =		ohci_bus_suspend,	.bus_resume =		ohci_bus_resume,#endif	.start_port_reset =	ohci_start_port_reset,};
/* device driver */
static int ohci_hcd_w90n740_drv_probe(struct platform_device *pdev) {	return usb_hcd_w90n740_probe(&ohci_w90n740_hc_driver, pdev); }
static int ohci_hcd_w90n740_drv_remove(struct platform_device *pdev) {	struct usb_hcd *hcd = platform_get_drvdata(pdev);	usb_hcd_w90n740_remove(hcd, pdev);	return 0;}
static struct platform_driver ohci_hcd_w90n740_driver = {	.probe		= ohci_hcd_w90n740_drv_probe,	.remove		= ohci_hcd_w90n740_drv_remove,	.shutdown	= usb_hcd_platform_shutdown,	.driver		= {		.owner	= THIS_MODULE,		.name	= "w90n740-ohci",	},};



-------------------------------------------------------------------------This SF.net email is sponsored by: MicrosoftDefy all challenges. Microsoft(R) Visual Studio 2005.http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________Linux-usb-users@xxxxxxxxxxxxxxxxxxxxxxx unsubscribe, use the last form field at:https://lists.sourceforge.net/lists/listinfo/linux-usb-users

[Linux USB]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Video Projectors]     [PDAs]     [Free Online Dating]     [Hacking TiVo]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Devices]     [Big List of Linux Books]     [16.7MP]