I played with pwc + ohci-07111.patch on the SA-1111 ohci hc a bit more.
Definitely no love coming from that device.
Here are example hangs/crashes:
========================================================================
=======
<pwc and audio loaded>
# vgrabber
Unable to find a supported capture foohci-dbg.c: UNLINK:[2469]
dev:2,ep=5-I,ISOC
,flags: 2,len:0/9600,stat:-2
rmat.
hcd.c: sa1111: wait for giveback urb c0458360
{complete hang, no sysrq, no heartbeat)
========================================================================
=======
<pwc loaded>
# vgrabber
Unable to find a supported capture foohci-dbg.c: UNLINK:[b9be]
dev:2,ep=5-I,ISOC
,flags: 2,len:0/9600,stat:-2
rmat.
hcd.c: sa1111: wait for giveback urb c0458360
hcd.c: giveback urb c0458360 status -2 len 0
ohci-dbg.c: UNLINK:[b9de] dev:2,ep=5-I,ISOC,flags:
2,len:0/9600,stat:-2
hcd.c: giveback urb c0458260 status -2 len 2332
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd = c0204000
[00000000] *pgd=00000000
Internal error: Oops: c3cf7007
CPU: 0
pc : [<c4cadf3c>] lr : [<c022389c>] Not tainted
sp : c3d87e78 ip : c0344e40 fp : c3d87e90
r10: 40055b90 r9 : c3d86000 r8 : 0000ff00
r7 : a0000013 r6 : 60000013 r5 : c3f2c800 r4 : c0458260
r3 : 60000093 r2 : 00000000 r1 : 00000001 r0 : 0000004d
Flags: nZCv IRQs off FIQs on Mode SVC_32 Segment user
Control: C3CF717F Table: C3CF717F DAC: 00000015
Process vgrabber (pid: 189, stack limit = 0xc3d860d8)
Stack: (0xc3d87e78 to 0xc3d88000)
Unable to handle kernel NULL pointer dereference at virtual address
00000000
Internal error: Oops: c3cf7007
CPU: 0
pc : [<c4cadf3c>] lr : [<c022389c>] Not tainted
Using defaults from ksymoops -t elf32-little -a unknown
sp : c3d87e78 ip : c0344e40 fp : c3d87e90
r10: 40055b90 r9 : c3d86000 r8 : 0000ff00
r7 : a0000013 r6 : 60000013 r5 : c3f2c800 r4 : c0458260
r3 : 60000093 r2 : 00000000 r1 : 00000001 r0 : 0000004d
Flags: nZCv IRQs off FIQs on Mode SVC_32 Segment user
Control: C3CF717F Table: C3CF717F DAC: 00000015
Stack: (0xc3d87e78 to 0xc3d88000)
7e60: c0458260
00000000
7e80: c3f2ccbc c3d87ec8 c3d87e94 c02c71a8 c4cadf04 00000001 00000000
c3d87e9c
7ea0: c3d87e9c c4ca07dc c040ec00 c040ec60 00000000 c040ec00 00000000
c3d87ed8
7ec0: c3d87ecc c02c7868 c02c704c c3d87ef8 c3d87edc c4ca0f04 c02c7834
c040ec00
7ee0: c3d36ae0 c4ca7348 c3d9a440 c3d87f18 c3d87efc c4ca14c4 c4ca0ec4
c3d9a440
7f00: c3d36ae0 c0437360 c3d336a0 c3d87f38 c3d87f1c c024a748 c4ca1480
c3d9a440
7f20: 00000000 c3ea3380 00000001 c3d87f48 c3d87f3c c024a6e4 c024a6f4
c3d87f64
7f40: c3d87f4c c0249334 c024a6bc c3ea3380 00000001 00000003 c3d87f84
c3d87f68
7f60: c0226118 c02492c4 c0211220 00000001 c3e92360 c3d86000 c3d87f94
c3d87f88
7f80: c022690c c022608c c3d87fa4 c3d87f98 c0226ba8 c0226830 00000000
c3d87fa8
7fa0: c02167a0 c0226b9c ffffffff c021d874 ffffffff 40055460 00002210
ffffffff
7fc0: ffffffff 00000001 bffffec4 bffffec0 00000000 00000000 40055b90
bffffea0
7fe0: bffffea4 bffffe90 40042cec 40045e5c 20000010 ffffffff 00000000
00000000
Backtrace:
Function entered at [<c4cadef8>] from [<c02c71a8>]
r6 = C3F2CCBC r5 = 00000000 r4 = C0458260
Function entered at [<c02c7040>] from [<c02c7868>]
r7 = 00000000 r6 = C040EC00 r5 = 00000000 r4 = C040EC60
Function entered at [<c02c7828>] from [<c4ca0f04>]
Function entered at [<c4ca0eb8>] from [<c4ca14c4>]
r7 = C3D9A440 r6 = C4CA7348 r5 = C3D36AE0 r4 = C040EC00
Function entered at [<c4ca1474>] from [<c024a748>]
r7 = C3D336A0 r6 = C0437360 r5 = C3D36AE0 r4 = C3D9A440
Function entered at [<c024a6e8>] from [<c024a6e4>]
r7 = 00000001 r6 = C3EA3380 r5 = 00000000 r4 = C3D9A440
Function entered at [<c024a6b0>] from [<c0249334>]
Function entered at [<c02492b8>] from [<c0226118>]
r6 = 00000003 r5 = 00000001 r4 = C3EA3380
Function entered at [<c0226080>] from [<c022690c>]
r7 = C3D86000 r6 = C3E92360 r5 = 00000001 r4 = C0211220
Function entered at [<c0226824>] from [<c0226ba8>]
Function entered at [<c0226b90>] from [<c02167a0>]
Code: e10f6000 e3863080 e121f003 e5942008 (e5921000)
Error (Oops_bfd_perror): scan_arch for specified architecture Success
>>LR; c022389c <release_console_sem+b4/d4>
>>???; c4cadf3c <[ohci-hcd]ohci_urb_dequeue+44/84> <=====
>>sp; c3d87e78 <_end+3a10e60/491efe8>
>>ip; c0344e40 <log_wait+4/c>
>>fp; c3d87e90 <_end+3a10e78/491efe8>
>>r10; 40055b90 Before first symbol
>>r9; c3d86000 <_end+3a0efe8/491efe8>
>>r8; 0000ff00 Before first symbol
>>r7; a0000013 Before first symbol
>>r6; 60000013 Before first symbol
>>r5; c3f2c800 <_end+3bb57e8/491efe8>
>>r4; c0458260 <_end+e1248/491efe8>
>>r3; 60000093 Before first symbol
Trace; c4cadef8 <[ohci-hcd]ohci_urb_dequeue+0/84>
Trace; c02c71a8 <hcd_unlink_urb+168/23c>
>>r6; c3f2ccbc <_end+3bb5ca4/491efe8>
>>r4; c0458260 <_end+e1248/491efe8>
Trace; c02c7040 <hcd_unlink_urb+0/23c>
Trace; c02c7868 <usb_unlink_urb+40/4c>
>>r6; c040ec00 <_end+97be8/491efe8>
>>r4; c040ec60 <_end+97c48/491efe8>
Trace; c02c7828 <usb_unlink_urb+0/4c>
Trace; c4ca0f04 <[pwc]pwc_isoc_cleanup+4c/6c>
Trace; c4ca0eb8 <[pwc]pwc_isoc_cleanup+0/6c>
Trace; c4ca14c4 <[pwc]pwc_video_close+50/160>
>>r7; c3d9a440 <_end+3a23428/491efe8>
>>r6; c4ca7348 <[pwc]pwc_trace+0/4>
>>r5; c3d36ae0 <_end+39bfac8/491efe8>
>>r4; c040ec00 <_end+97be8/491efe8>
Trace; c4ca1474 <[pwc]pwc_video_close+0/160>
Trace; c024a748 <__fput+60/164>
>>r7; c3d336a0 <_end+39bc688/491efe8>
>>r6; c0437360 <_end+c0348/491efe8>
>>r5; c3d36ae0 <_end+39bfac8/491efe8>
>>r4; c3d9a440 <_end+3a23428/491efe8>
Trace; c024a6e8 <__fput+0/164>
Trace; c024a6e4 <fput+34/38>
>>r6; c3ea3380 <_end+3b2c368/491efe8>
>>r4; c3d9a440 <_end+3a23428/491efe8>
Trace; c024a6b0 <fput+0/38>
Trace; c0249334 <filp_close+7c/88>
Trace; c02492b8 <filp_close+0/88>
Trace; c0226118 <put_files_struct+98/110>
>>r4; c3ea3380 <_end+3b2c368/491efe8>
Trace; c0226080 <put_files_struct+0/110>
Trace; c022690c <do_exit+e8/344>
>>r7; c3d86000 <_end+3a0efe8/491efe8>
>>r6; c3e92360 <_end+3b1b348/491efe8>
>>r4; c0211220 <pcmv_setup+58/6c>
Trace; c0226824 <do_exit+0/344>
Trace; c0226ba8 <sys_exit+18/1c>
Trace; c0226b90 <sys_exit+0/1c>
Trace; c02167a0 <ret_fast_syscall+0/38>
========================================================================
=======
# modprobe pwc; modprobc && modprobe ohci-hcd
Linux video capture interface: v1.00
pwc Philips PCA645/646 + PCVC675/680/690 + PCVC730/740/750 webcam module
version
8.7 loaded.
pwc Also supports the Askey VC010, Logitech Quickcam 3000 Pro, Samsung
MPC-C10 a
nd MPC-C30, the Creative WebCam 5 and the SOTEC CMS-001.
usb.c: registered new driver Philips webcam
ohci-sa1111.c: 2002-Jul-11 USB 1.1 'Open' Host Controller (OHCI) Driver
(SA-1111
)
ohci-sa1111.c: block sizes: ed 64 td 64
ohci-sa1111.c: starting SA-1111 OHCI USB Controller
IRQ109: rising edge
ohci-sa1111.c: ohci-hcd (SA-1111) at 0xf4000400, irq 109
hcd.c: new USB bus registered, assigned bus number 1
pcipool create [SA-1111]/ohci_td size 64, 64/page (4096 alloc)
pcipool create [SA-1111]/ohci_ed size 64, 64/page (4096 alloc)
ohci-hcd.c: USB HC reset_hc sa1111: ctrl = 0x0 ;
hcd.c: sa1111 root hub device address 1
usb.c: new device strings: Mfr=3, Product=2, SerialNumber=1
Manufacturer: Linux 2.5.24-rmk1-ch2 ohci-hcd
Product: SA-1111 OHCI
SerialNumber: sa1111
hub.c: USB hub found at /
hub.c: 1 port detected
hub.c: standalone hub
hub.c: ganged power switching
hub.c: global over-current protection
hub.c: Port indicators are not supported
hub.c: power on to power good time: 4ms
hub.c: hub controller current requirement: 0mA
hub.c: port removable status: R
hub.c: local power source is good
hub.c: no over-current condition exists
hub.c: enabling power on all ports
usb.c: hub driver claimed interface c0458260
usb.c: kusbd: /bin/true add 1
ohci-dbg.c: OHCI controller sa1111 state
ohci-dbg.c: OHCI 1.0, with legacy support registers
ohci-dbg.c: control: 0x0000008f HCFS=operational IE PLE CBSR=3
ohci-dbg.c: cmdstatus: 0x00000000 SOC=0
ohci-dbg.c: intrstatus: 0x00000044 RHSC SF
ohci-dbg.c: intrenable: 0x80000012 MIE UE WDH
ohci-dbg.c: hcca frame #007a
ohci-dbg.c: roothub.a: 02000201 POTPGT=2 NPS NDP=1
ohci-dbg.c: roothub.b: 00000000 PPCM=0000 DR=0000
ohci-dbg.c: roothub.status: 00000000
ohci-dbg.c: sa1111: roothub.portstatus [0] = 0x00010101 CSC PPS CCS
# ohci-hub.c: sa1111: GetStatus roothub.portstatus [1] = 0x00010101 CSC
PPS CCS
hub.c: port 1, portstatus 101, change 1, 12 Mb/s
hub.c: hub / port 1 connection change
hub.c: hub / port 1, portstatus 101, change 1, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
hub.c: port 1, portstatus 101, change 0, 12 Mb/s
ohci-hub.c: sa1111: GetStatus roothub.portstatus [1] = 0x00100103 PRSC
PPS PES C
CS
hub.c: port 1, portstatus 103, change 10, 12 Mb/s
hub.c: new USB device sa1111-1, assigned address 2
usb.c: new device strings: Mfr=0, Product=0, SerialNumber=1
SerialNumber: 01402100A5000000
pwc Logitech QuickCam 3000 Pro detected.
pwc Registered as /dev/video0.
usb.c: Philips webcam driver claimed interface c3d38000
usb.c: unhandled interfaces on device
usb.c: kusbd: /bin/true add 2
# ffmpeg -an -vd /dev/v4l/video0 foo.rampg
Output #0, mpeg, to NWFPE: ffmpeg[190] takes exception 00000014 at
c0283efc from
400febd8
'foo.mpg':
Stream #0.0: Video: mpeg1video, 160x128, 25.00 fps, q=3-15, 200 kb/s
ohci-dbg.c: UNLINK:[e2ac] dev:2,ep=5-I,ISOC,flags:
2,len:0/9600,stat:-2
hcd.c: sa1111: wait for giveback urb c0458360
hcd.c: giveback urb c0458360 status -2 len 0
ohci-dbg.c: UNLINK:[e2ba] dev:2,ep=5-I,ISOC,flags:
2,len:292/9600,stat:-2
hcd.c: giveback urb c0458160 status -2 len 292
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd = c3c88000
[00000000] *pgd=c3bf4001, *pte=00000000, *ppte=00000000
Internal error: Oops: c3c8b007
CPU: 0
pc : [<c4cadf3c>] lr : [<c022389c>] Not tainted
sp : c3d41da4 ip : c0344e40 fp : c3d41dbc
r10: c040ec00 r9 : 00000014 r8 : 00000000
r7 : a0000013 r6 : 60000013 r5 : c3eff800 r4 : c0458160
r3 : 60000093 r2 : 00000000 r1 : 00000001 r0 : 0000004f
Flags: nZCv IRQs off FIQs on Mode SVC_32 Segment user
Control: C3C8B17F Table: C3C8B17F DAC: 00000015
Process ffmpeg (pid: 190, stack limit = 0xc3d400d8)
Unable to handle kernel NULL pointer dereference at virtual address
00000000
Internal error: Oops: c3c8b007
CPU: 0
pc : [<c4cadf3c>] lr : [<c022389c>] Not tainted
Using defaults from ksymoops -t elf32-little -a unknown
sp : c3d41da4 ip : c0344e40 fp : c3d41dbc
r10: c040ec00 r9 : 00000014 r8 : 00000000
r7 : a0000013 r6 : 60000013 r5 : c3eff800 r4 : c0458160
r3 : 60000093 r2 : 00000000 r1 : 00000001 r0 : 0000004f
Flags: nZCv IRQs off FIQs on Mode SVC_32 Segment user
Control: C3C8B17F Table: C3C8B17F DAC: 00000015
Stack: (0xc3d41da4 to 0xc3d42000)
1da0: c0458160 00000000 c3effcbc c3d41df4 c3d41dc0 c02c71a8
c4cadf04
1dc0: 00000001 00000000 c3d41dc8 c3d41dc8 c4ca07dc c040ec00 c040ec60
00000000
1de0: c040ec00 00000000 c3d41e04 c3d41df8 c02c7868 c02c704c c3d41e24
c3d41e08
1e00: c4ca0f04 c02c7834 000000a0 00000080 0000000a 00000002 c3d41e54
c3d41e28
1e20: c4ca0f4c c4ca0ec4 c0242808 c023fa74 c040ec00 c3d41ebc c4ca7348
c3d00b40
1e40: c3d41e74 c3d40000 c3d41eb0 c3d41e58 c4ca1dc8 c4ca0f30 00000002
00000000
1e60: 00000000 c3e63360 c021fd34 00000000 00000000 00000000 c3e63360
c021fd34
1e80: 00000000 00000000 00000000 0002ac7c c3d41ebc 40107613 fffffff2
00000001
1ea0: 00000000 c3d41f64 c3d41eb4 c4c9d3c0 c4ca18c8 c3d6e3c0 c3e57ae0
00000000
1ec0: 00000080 000000a0 0000000f c0292d58 c0292bb0 c3e317a0 c3ef6e64
c3ef6e58
1ee0: c3e317a0 c3d41f04 c3d41ef4 c023586c c0292c70 c3e31980 c3d41f54
c3d41f08
1f00: c0235e54 c0235654 c3ef6e58 00000000 000000e1 00000000 c0210520
000e1000
1f20: c3ef6e58 c3ef6e64 c3e31980 c3d6e3c0 c3d40000 fffffff7 00000000
ffffffe7
1f40: 40107613 00000004 c3d6e3c0 0002ac7c c3d40000 0002abf4 c3d41f78
c3d41f68
1f60: c4ca2028 c4c9d2e0 c4ca18bc c3d41fa4 c3d41f7c c0258b7c c4ca2018
0000004e
1f80: c022752c 00000004 0002ac7c 00000004 00000036 c0216924 00000000
c3d41fa8
1fa0: c02167a0 c0258920 00000004 c021d874 00000004 40107613 0002ac7c
0002ac7c
1fc0: 00000004 0002ac7c 00000004 0000000f 0003b000 00030c00 0002abf4
bffff534
1fe0: 40107613 bffff524 401169bc 40116980 00000010 00000004 00000000
00000000
Backtrace:
Function entered at [<c4cadef8>] from [<c02c71a8>]
r6 = C3EFFCBC r5 = 00000000 r4 = C0458160
Function entered at [<c02c7040>] from [<c02c7868>]
r7 = 00000000 r6 = C040EC00 r5 = 00000000 r4 = C040EC60
Function entered at [<c02c7828>] from [<c4ca0f04>]
Function entered at [<c4ca0eb8>] from [<c4ca0f4c>]
r7 = 00000002 r6 = 0000000A r5 = 00000080 r4 = 000000A0
Function entered at [<c4ca0f24>] from [<c4ca1dc8>]
Function entered at [<c4ca18bc>] from [<c4c9d3c0>]
Function entered at [<c4c9d2d4>] from [<c4ca2028>]
Function entered at [<c4ca200c>] from [<c0258b7c>]
Function entered at [<c0258914>] from [<c02167a0>]
r8 = C0216924 r7 = 00000036 r6 = 00000004 r5 = 0002AC7C
r4 = 00000004
Code: e10f6000 e3863080 e121f003 e5942008 (e5921000)
Error (Oops_bfd_perror): scan_arch for specified architecture Success
>>LR; c022389c <release_console_sem+b4/d4>
>>???; c4cadf3c <[ohci-hcd]ohci_urb_dequeue+44/84> <=====
>>sp; c3d41da4 <_end+39cad8c/491efe8>
>>ip; c0344e40 <log_wait+4/c>
>>fp; c3d41dbc <_end+39cada4/491efe8>
>>r10; c040ec00 <_end+97be8/491efe8>
>>r7; a0000013 Before first symbol
>>r6; 60000013 Before first symbol
>>r5; c3eff800 <_end+3b887e8/491efe8>
>>r4; c0458160 <_end+e1148/491efe8>
>>r3; 60000093 Before first symbol
Trace; c4cadef8 <[ohci-hcd]ohci_urb_dequeue+0/84>
Trace; c02c71a8 <hcd_unlink_urb+168/23c>
>>r6; c3effcbc <_end+3b88ca4/491efe8>
>>r4; c0458160 <_end+e1148/491efe8>
Trace; c02c7040 <hcd_unlink_urb+0/23c>
Trace; c02c7868 <usb_unlink_urb+40/4c>
>>r6; c040ec00 <_end+97be8/491efe8>
>>r4; c040ec60 <_end+97c48/491efe8>
Trace; c02c7828 <usb_unlink_urb+0/4c>
Trace; c4ca0f04 <[pwc]pwc_isoc_cleanup+4c/6c>
Trace; c4ca0eb8 <[pwc]pwc_isoc_cleanup+0/6c>
Trace; c4ca0f4c <[pwc]pwc_try_video_mode+28/a8>
Trace; c4ca0f24 <[pwc]pwc_try_video_mode+0/a8>
Trace; c4ca1dc8 <[pwc]pwc_video_do_ioctl+50c/750>
Trace; c4ca18bc <[pwc]pwc_video_do_ioctl+0/750>
Trace; c4c9d3c0 <[videodev]video_usercopy+ec/17c>
Trace; c4c9d2d4 <[videodev]video_usercopy+0/17c>
Trace; c4ca2028 <[pwc]pwc_video_ioctl+1c/24>
Trace; c4ca200c <[pwc]pwc_video_ioctl+0/24>
Trace; c0258b7c <sys_ioctl+268/284>
Trace; c0258914 <sys_ioctl+0/284>
Trace; c02167a0 <ret_fast_syscall+0/38>
>>r8; c0216924 <sys_call_table+0/0>
>>r5; 0002ac7c Before first symbol
> -----Original Message-----
> From: David Brownell [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, July 11, 2002 4:55 PM
> To: Nemosoft Unv.; Christopher Hoover
> Subject: PWC and OHCI on 2.5.24
>
>
> OK, here's a biggish patch that I believe will address that
> problem you both reported ... please let me know.
>
> The patch addresses quite a bit more than just that PWC
> issue, since I was in the middle of fixing something basic in
> how unlinks are handled. It incidentally shrinks the size of
> the non-debug driver by maybe 1% (smp-x86), and fixes several
> (of the) other bugs I happened to see.
>
> This works better than the patch I unfortunately sent
> Nemosoft. In particular, it actually tells the hardware when
> there's work to be done, so devices do enumerate! But I've
> not done a lot of other testing with it yet
>
> I'd appreciate it if you can give this a quick sanity test.
> Of course I want to confirm that it does remove PWC
> hang/crash symptoms, but also to know that it behaves
> otherwise. If you don't report new problems, and I don't
> turn up any, I'll likely send this to linux-usb-devel for
> integration (before Monday).
>
> - Dave
>
> p.s. rough change list, more significant fixes to top:
>
> - make "empty ed" and "unlink urb" codepaths the same
> (both use ed_rm_list with INTR_SF)
> - distinguish two ed "unlink" states, UNLINK and IDLE
> - fix urb unlink bug causing pwc probs
> - free_config waits properly for eds being unlinked
> - control and bulk lists now restart correctly
>
> - get rid of NEW state for eds, fix unlikely memleak
> - wmb() in ed update path
> - "sa1111" bus_name keeps usb_make_path() sane
> - minor cleanups
> - comment updates
>
>
>
-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing
real-time communications platform! Don't just IM. Build it in!
http://www.jabber.com/osdn/xim
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel