Sunday, May 31, 2020

Re: macbook - uvideo0: can't find video interface

Hi,

On May 26 22:15:28, feinerer@logic.at wrote:
> I think that my fix for video(1) posted at
> https://marc.info/?l=openbsd-tech&m=159048565528060&w=2 could also
> remedy your problem of video(1) crashing reported at
> https://marc.info/?l=openbsd-misc&m=158800058009113&w=2 .

On May 30 23:52:43, patrick@blueri.se wrote:
> On Sat, May 30, 2020 at 07:47:17PM +0200, Jan Stary wrote:
> > On May 30 18:50:12, hans@stare.cz wrote:
> > > This is current/amd64 on a MacBook2,1 (dmesg below)
> > > With the latest upgrade, it has lost video0:
> > >
> > > uvideo0 at uhub0 port 4 configuration 1 interface 0 "Micron Built-in iSight" rev 2.00/1.84 addr 2
> > > uvideo0: can't find interface assoc descriptor
> >
> > Similar thing happens with current/i386 on a MacBook1,1 (dmesg below):
> > uvideo0: can't find video interface
> >
> > Jan
>
> Yeah, this is due to the change to support multiple cameras in one
> device. You can try this diff, let me know if this works on both
> of your machines.

With Patrick's diff, my amd64 Macbook2,1 has video0 at uvideo0 again.
I compiled the patched kernel with UVIDEO_DEBUG, dmesg below. Thanks!

video(1) still doesn't work though: running 'video -v'
opens a black window of nothing, saying

hans@mb64:~$ video -v
video device /dev/video:
encodings: uyvy
frame sizes (width x height, in pixels) and rates (in frames per second):
320x240: 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30
352x288: 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30
640x480: 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30
controls: brightness, saturation, gamma, sharpness
Xv adaptor 0, Intel(R) Textured Video:
encodings: yuy2, uyvy, yv12
max size: 1280x800
using uyvy encoding
using frame size 640x480 (614400 bytes)
using default frame rate
video: ioctl VIDIOC_DQBUF: Invalid argument

The ioctl error message is after I pressed 'q' to quit.

These are the UVIDEO_DEBUG messages when running that:


uvideo0: uvideo_open: sc=0xffff80000011d000
uvideo0: uvideo_find_ctrl: control not supported by device!
uvideo0: uvideo_find_ctrl: control not supported by device!
uvideo0: uvideo_find_ctrl: control not supported by device!
uvideo0: uvideo_s_fmt: requested width=640, height=480
uvideo0: uvideo_find_res: frame index 0: width=640, height=480
uvideo0: uvideo_find_res: frame index 1: width=352, height=288
uvideo0: uvideo_find_res: frame index 2: width=320, height=240
uvideo0: SET probe request successfully
bmHint=0x01
bFormatIndex=0x01
bFrameIndex=0x01
dwFrameInterval=333333 (100ns units)
wKeyFrameRate=0
wPFrameRate=0
wCompQuality=0
wCompWindowSize=0
wDelay=0 (ms)
dwMaxVideoFrameSize=0 (bytes)
dwMaxPayloadTransferSize=0 (bytes)
uvideo0: GET probe request successfully
bmHint=0x00
bFormatIndex=0x01
bFrameIndex=0x01
dwFrameInterval=333333 (100ns units)
wKeyFrameRate=0
wPFrameRate=0
wCompQuality=0
wCompWindowSize=0
wDelay=33 (ms)
dwMaxVideoFrameSize=614400 (bytes)
dwMaxPayloadTransferSize=3072 (bytes)
fixed dwMaxVideoFrameSize=614400, width=640 height=480 bpp=16
uvideo0: SET commit request successfully
uvideo0: uvideo_s_fmt: offered width=640, height=480
uvideo0: SET probe request successfully
bmHint=0x01
bFormatIndex=0x01
bFrameIndex=0x01
dwFrameInterval=333333 (100ns units)
wKeyFrameRate=0
wPFrameRate=0
wCompQuality=0
wCompWindowSize=0
wDelay=0 (ms)
dwMaxVideoFrameSize=0 (bytes)
dwMaxPayloadTransferSize=0 (bytes)
uvideo0: GET probe request successfully
bmHint=0x00
bFormatIndex=0x01
bFrameIndex=0x01
dwFrameInterval=333333 (100ns units)
wKeyFrameRate=0
wPFrameRate=0
wCompQuality=0
wCompWindowSize=0
wDelay=33 (ms)
dwMaxVideoFrameSize=614400 (bytes)
dwMaxPayloadTransferSize=3072 (bytes)
fixed dwMaxVideoFrameSize=614400, width=640 height=480 bpp=16
uvideo0: SET commit request successfully
uvideo0: uvideo_reqbufs: count=4
uvideo0: allocated 2457600 bytes mmap buffer
uvideo0: uvideo_reqbufs: index=0, offset=0, length=614400
uvideo0: uvideo_reqbufs: index=1, offset=614400, length=614400
uvideo0: uvideo_reqbufs: index=2, offset=1228800, length=614400
uvideo0: uvideo_reqbufs: index=3, offset=1843200, length=614400
uvideo0: uvideo_querybuf: index=0, offset=0, length=614400
uvideo0: uvideo_querybuf: index=1, offset=614400, length=614400
uvideo0: uvideo_querybuf: index=2, offset=1228800, length=614400
uvideo0: uvideo_querybuf: index=3, offset=1843200, length=614400
uvideo0: uvideo_vs_open
uvideo0: set alternate iface to bAlternateSetting=0x01 psize=3072 max_packet_size=3072
uvideo0: open pipe for bEndpointAddress=0x82
uvideo0: nframes=40
uvideo0: uvideo_vs_alloc_isoc
uvideo0: allocated 122880 bytes isoc VS xfer buffer
uvideo0: allocated 122880 bytes isoc VS xfer buffer
uvideo0: allocated 122880 bytes isoc VS xfer buffer
uvideo0: uvideo_vs_alloc_frame: allocated 614400 bytes frame buffer
uvideo0: uvideo_vs_cb: CANCELLED
uvideo0: uvideo_vs_cb: CANCELLED
uvideo0: uvideo_vs_cb: CANCELLED
uvideo0: uvideo_close: sc=0xffff80000011d000
uvideo0: uvideo_vs_free_isoc


I will test the same on the i386 macbook.

Jan


> diff --git a/sys/dev/usb/uvideo.c b/sys/dev/usb/uvideo.c
> index d33e3079acd..da00d0d3d0d 100644
> --- a/sys/dev/usb/uvideo.c
> +++ b/sys/dev/usb/uvideo.c
> @@ -510,6 +510,8 @@ uvideo_attach(struct device *parent, struct device *self, void *aux)
> int i;
>
> sc->sc_udev = uaa->device;
> + sc->sc_iface = uaa->ifaceno;
> + sc->sc_nifaces = uaa->nifaces;
>
> /* Find the first unclaimed video interface. */
> for (i = 0; i < uaa->nifaces; i++) {
> @@ -521,10 +523,8 @@ uvideo_attach(struct device *parent, struct device *self, void *aux)
> if (id->bInterfaceClass == UICLASS_VIDEO)
> break;
> }
> - if (i == uaa->nifaces) {
> - printf("%s: can't find video interface\n", DEVNAME(sc));
> - return;
> - }
> + if (i == uaa->nifaces)
> + goto attach;
>
> /* Find out which interface association we belong to. */
> usbd_desc_iter_init(sc->sc_udev, &iter);
> @@ -540,30 +540,38 @@ uvideo_attach(struct device *parent, struct device *self, void *aux)
> break;
> desc = usbd_desc_iter_next(&iter);
> }
> - if (desc == NULL) {
> - printf("%s: can't find interface assoc descriptor\n",
> - DEVNAME(sc));
> - return;
> - }
> + if (desc != NULL) {
> + /*
> + * Claim all interfaces of our association. Interfaces must be
> + * claimed during attach, during attach hooks is too late.
> + */
> + for (i = iad->bFirstInterface;
> + i < iad->bFirstInterface + iad->bInterfaceCount; i++) {
> + if (usbd_iface_claimed(sc->sc_udev, i)) {
> + printf("%s: interface already claimed\n",
> + DEVNAME(sc));
> + return;
> + }
> + usbd_claim_iface(sc->sc_udev, i);
> + }
>
> - /*
> - * Claim all interfaces of our association. Interfaces must be
> - * claimed during attach, during attach hooks is too late.
> - */
> - for (i = iad->bFirstInterface;
> - i < iad->bFirstInterface + iad->bInterfaceCount; i++) {
> - if (usbd_iface_claimed(sc->sc_udev, i)) {
> - printf("%s: interface already claimed\n",
> - DEVNAME(sc));
> - return;
> + /* Remember our association by saving the first interface. */
> + sc->sc_iface = iad->bFirstInterface;
> + sc->sc_nifaces = iad->bInterfaceCount;
> + } else {
> + /* No association, so simply claim them all. */
> + for (i = 0; i < uaa->nifaces; i++) {
> + if (usbd_iface_claimed(sc->sc_udev, i))
> + continue;
> + id = usbd_get_interface_descriptor(&sc->sc_udev->ifaces[i]);
> + if (id == NULL)
> + continue;
> + if (id->bInterfaceClass == UICLASS_VIDEO)
> + usbd_claim_iface(sc->sc_udev, i);
> }
> - usbd_claim_iface(sc->sc_udev, i);
> }
>
> - /* Remember our association by saving the first interface. */
> - sc->sc_iface = iad->bFirstInterface;
> - sc->sc_nifaces = iad->bInterfaceCount;
> -
> +attach:
> /* maybe the device has quirks */
> sc->sc_quirk = uvideo_lookup(uaa->vendor, uaa->product);
>
>
>


OpenBSD 6.7-current (GENERIC.MP) #0: Sun May 31 11:47:15 CEST 2020
hans@mb64.stare.cz:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 3171909632 (3024MB)
avail mem = 3063050240 (2921MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe0000 (37 entries)
bios0: vendor Apple Inc. version "MB21.88Z.00A5.B07.0706270922" date 06/27/07
bios0: Apple Inc. MacBook2,1
acpi0 at bios0: ACPI 3.0
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP HPET APIC MCFG ASF! SBST ECDT SSDT SSDT SSDT
acpi0: wakeup devices ADP1(S3) LID0(S3) PXS1(S4) PXS2(S4) USB1(S3) USB2(S3) USB3(S3) USB4(S3) USB7(S3) EC__(S3)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM)2 CPU T7400 @ 2.16GHz, 2161.65 MHz, 06-0f-06
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,NXE,LONG,LAHF,PERF,SENSOR,MELTDOWN
cpu0: 4MB 64b/line 16-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 166MHz
cpu0: mwait min=64, max=64, C-substates=0.2.2.2.2, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM)2 CPU T7400 @ 2.16GHz, 2161.27 MHz, 06-0f-06
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,NXE,LONG,LAHF,PERF,SENSOR,MELTDOWN
cpu1: 4MB 64b/line 16-way L2 cache
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins, remapped
acpimcfg0 at acpi0
acpimcfg0: addr 0xf0000000, bus 0-255
acpiec0 at acpi0
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 1 (RP01)
acpiprt2 at acpi0: bus 2 (RP02)
acpiprt3 at acpi0: bus 3 (PCIB)
acpicpu0 at acpi0: !C3(100@55 mwait@0x31), !C2(500@1 mwait@0x10), C1(1000@1 mwait), PSS
acpicpu1 at acpi0: !C3(100@55 mwait@0x31), !C2(500@1 mwait@0x10), C1(1000@1 mwait), PSS
acpisbs0 at acpi0: SBS0 model "ASMB016" serial 19351 type LION oem "DP"
acpiac0 at acpi0: AC unit online
acpibtn0 at acpi0: LID0
"APP0002" at acpi0 not configured
acpibtn1 at acpi0: PWRB
acpibtn2 at acpi0: SLPB
acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000memory map conflict 0xbef00000/0x100000
memory map conflict 0xbf000000/0x1000000
memory map conflict 0xf00f8000/0x1000
memory map conflict 0xfed1c000/0x4000
memory map conflict 0xfffb0000/0x30000

extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
extent `pciio' (0x0 - 0xffffffff), flags=0
0x10000 - 0xffffffff
extent `pcimem' (0x0 - 0xffffffffffffffff), flags=0
0x0 - 0xbfffffff
0xf0000000 - 0xf3ffffff
0xfec00000 - 0xfec00fff
0xfed14000 - 0xfed19fff
0xfed1c000 - 0xfed1ffff
0xfee00000 - 0xfee00fff
0xffe00000 - 0xffffffff
0x40000000000 - 0xffffffffffffffff
"APP0001" at acpi0 not configured
"APP0003" at acpi0 not configured
"ACPI0001" at acpi0 not configured
acpicmos0 at acpi0
acpivideo0 at acpi0: GFX0
cpu0: Enhanced SpeedStep 2161 MHz: speeds: 2167, 2000, 1833, 1667, 1500, 1333, 1000 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82945GM Host" rev 0x03
inteldrm0 at pci0 dev 2 function 0 "Intel 82945GM Video" rev 0x03
drm0 at inteldrm0
intagp0 at inteldrm0
agp0 at intagp0: aperture at 0xc0000000, size 0x10000000
inteldrm0: apic 1 int 16, I945GM, gen 3
"Intel 82945GM Video" rev 0x03 at pci0 dev 2 function 1 not configured
vendor "Intel", unknown product 0x27a3 (class DASP subclass Time and Frequency, rev 0x03) at pci0 dev 7 function 0 not configured
azalia0 at pci0 dev 27 function 0 "Intel 82801GB HD Audio" rev 0x02: msi
azalia0: codecs: Sigmatel STAC9220/1
audio0 at azalia0
ppb0 at pci0 dev 28 function 0 "Intel 82801GB PCIE" rev 0x02: msi
pci1 at ppb0 bus 1
mskc0 at pci1 dev 0 function 0 "Marvell Yukon 88E8053" rev 0x22, Yukon-2 EC rev. A3 (0x2): apic 1 int 16
msk0 at mskc0 port A: address 00:1b:63:36:2b:5d
eephy0 at msk0 phy 0: 88E1111 Gigabit PHY, rev. 2
ppb1 at pci0 dev 28 function 1 "Intel 82801GB PCIE" rev 0x02: msi
pci2 at ppb1 bus 2
athn0 at pci2 dev 0 function 0 "Atheros AR5418" rev 0x01: apic 1 int 17
athn0: MAC AR5418 rev 2, RF AR5133 (2T3R), ROM rev 4, address 00:1c:b3:c4:b2:ae
uhci0 at pci0 dev 29 function 0 "Intel 82801GB USB" rev 0x02: apic 1 int 21
uhci1 at pci0 dev 29 function 1 "Intel 82801GB USB" rev 0x02: apic 1 int 19
uhci2 at pci0 dev 29 function 2 "Intel 82801GB USB" rev 0x02: apic 1 int 18
uhci3 at pci0 dev 29 function 3 "Intel 82801GB USB" rev 0x02: apic 1 int 16
ehci0 at pci0 dev 29 function 7 "Intel 82801GB USB" rev 0x02: apic 1 int 21
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb2 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xe2
pci3 at ppb2 bus 3
"AT&T/Lucent FW322 1394" rev 0x61 at pci3 dev 3 function 0 not configured
pcib0 at pci0 dev 31 function 0 "Intel 82801GBM LPC" rev 0x02
pciide0 at pci0 dev 31 function 1 "Intel 82801GB IDE" rev 0x02: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility
atapiscsi0 at pciide0 channel 0 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <MATSHITA, DVD-R UJ-857E, ZB0E> removable
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4
pciide0: channel 1 disabled (no drives)
pciide1 at pci0 dev 31 function 2 "Intel 82801GBM SATA" rev 0x02: DMA, channel 0 configured to native-PCI, channel 1 configured to native-PCI
pciide1: using apic 1 int 19 for native-PCI interrupt
wd0 at pciide1 channel 0 drive 1: <ST980811AS>
wd0: 16-sector PIO, LBA48, 76319MB, 156301488 sectors
wd0(pciide1:0:1): using PIO mode 4, Ultra-DMA mode 6
ichiic0 at pci0 dev 31 function 3 "Intel 82801GB SMBus" rev 0x02: apic 1 int 19
iic0 at ichiic0
iic0: addr 0x48 00=38 01=00 02=4b 03=50 words 00=3780 01=00ff 02=4b00 03=5000 04=ffff 05=ffff 06=ffff 07=ffff
spdmem0 at iic0 addr 0x50: 2GB DDR2 SDRAM non-parity PC2-6400CL6 SO-DIMM
spdmem1 at iic0 addr 0x52: 2GB DDR2 SDRAM non-parity PC2-6400CL6 SO-DIMM
usb1 at uhci0: USB revision 1.0
uhub1 at usb1 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb2 at uhci1: USB revision 1.0
uhub2 at usb2 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci2: USB revision 1.0
uhub3 at usb3 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb4 at uhci3: USB revision 1.0
uhub4 at usb4 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
asmc0 at isa0 port 0x300/32: rev 1.17f517, 226 keys
vmm0 at mainbus0: VMX (using slow L1TF mitigation)
uvideo0 at uhub0 port 4 configuration 1 interface 0 "Apple Computer Bluetooth" rev 2.00/0.0c addr 2
uhidev0 at uhub1 port 2 configuration 1 interface 0 "Apple Computer Apple Internal Keyboard / Trackpad" rev 2.00/0.18 addr 2
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 variable keys, 5 key codes, country code 13
wskbd0 at ukbd0: console keyboard
uhidev1 at uhub1 port 2 configuration 1 interface 1 "Apple Computer Apple Internal Keyboard / Trackpad" rev 2.00/0.18 addr 2
uhidev1: iclass 3/1, 5 report ids
ums0 at uhidev1 reportid 2: 3 buttons
wsmouse0 at ums0 mux 0
ums1 at uhidev1 reportid 5
ums1: mouse has no X report
uhidev2 at uhub1 port 2 configuration 1 interface 2 "Apple Computer Apple Internal Keyboard / Trackpad" rev 2.00/0.18 addr 2
uhidev2: iclass 3/0
uhid0 at uhidev2: input=1, output=0, feature=0
uhidev3 at uhub3 port 2 configuration 1 interface 0 "Apple Computer, Inc. IR Receiver" rev 2.00/1.10 addr 2
uhidev3: iclass 3/0, 38 report ids
uhid1 at uhidev3 reportid 36: input=4, output=0, feature=0
uhid2 at uhidev3 reportid 37: input=4, output=0, feature=0
uhid3 at uhidev3 reportid 38: input=4, output=0, feature=0
uhidev4 at uhub4 port 1 configuration 1 interface 0 "Apple Computer HID-proxy" rev 2.00/19.65 addr 2
uhidev4: iclass 3/1
ukbd1 at uhidev4: 8 variable keys, 6 key codes
wskbd1 at ukbd1 mux 1
uhidev5 at uhub4 port 1 configuration 1 interface 1 "Apple Computer HID-proxy" rev 2.00/19.65 addr 2
uhidev5: iclass 3/1
ums2 at uhidev5: 5 buttons
wsmouse1 at ums2 mux 0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on wd0a (31e6463adc99e6ba.a) swap on wd0b dump on wd0b
inteldrm0: 1280x800, 32bpp
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0
wskbd1: connecting to wsdisplay0
wsdisplay0: screen 1-5 added (std, vt100 emulation)
uvideo0: ucode data len=3, request=0x0
uvideo0: send 3 bytes data to offset 0x0
uvideo0: ucode data len=3, request=0x1b
uvideo0: send 3 bytes data to offset 0x1b
uvideo0: ucode data len=3, request=0x33
uvideo0: send 3 bytes data to offset 0x33
uvideo0: ucode data len=3, request=0x43
uvideo0: send 3 bytes data to offset 0x43
uvideo0: ucode data len=3, request=0x4b
uvideo0: send 3 bytes data to offset 0x4b
uvideo0: ucode data len=3, request=0x53
uvideo0: send 3 bytes data to offset 0x53
uvideo0: ucode data len=1023, request=0x100
uvideo0: send 50 bytes data to offset 0x100
uvideo0: send 50 bytes data to offset 0x132
uvideo0: send 50 bytes data to offset 0x164
uvideo0: send 50 bytes data to offset 0x196
uvideo0: send 50 bytes data to offset 0x1c8
uvideo0: send 50 bytes data to offset 0x1fa
uvideo0: send 50 bytes data to offset 0x22c
uvideo0: send 50 bytes data to offset 0x25e
uvideo0: send 50 bytes data to offset 0x290
uvideo0: send 50 bytes data to offset 0x2c2
uvideo0: send 50 bytes data to offset 0x2f4
uvideo0: send 50 bytes data to offset 0x326
uvideo0: send 50 bytes data to offset 0x358
uvideo0: send 50 bytes data to offset 0x38a
uvideo0: send 50 bytes data to offset 0x3bc
uvideo0: send 50 bytes data to offset 0x3ee
uvideo0: send 50 bytes data to offset 0x420
uvideo0: send 50 bytes data to offset 0x452
uvideo0: send 50 bytes data to offset 0x484
uvideo0: send 50 bytes data to offset 0x4b6
uvideo0: send 23 bytes data to offset 0x4e8
uvideo0: ucode data len=1023, request=0x4ff
uvideo0: send 50 bytes data to offset 0x4ff
uvideo0: send 50 bytes data to offset 0x531
uvideo0: send 50 bytes data to offset 0x563
uvideo0: send 50 bytes data to offset 0x595
uvideo0: send 50 bytes data to offset 0x5c7
uvideo0: send 50 bytes data to offset 0x5f9
uvideo0: send 50 bytes data to offset 0x62b
uvideo0: send 50 bytes data to offset 0x65d
uvideo0: send 50 bytes data to offset 0x68f
uvideo0: send 50 bytes data to offset 0x6c1
uvideo0: send 50 bytes data to offset 0x6f3
uvideo0: send 50 bytes data to offset 0x725
uvideo0: send 50 bytes data to offset 0x757
uvideo0: send 50 bytes data to offset 0x789
uvideo0: send 50 bytes data to offset 0x7bb
uvideo0: send 50 bytes data to offset 0x7ed
uvideo0: send 50 bytes data to offset 0x81f
uvideo0: send 50 bytes data to offset 0x851
uvideo0: send 50 bytes data to offset 0x883
uvideo0: send 50 bytes data to offset 0x8b5
uvideo0: send 23 bytes data to offset 0x8e7
uvideo0: ucode data len=1023, request=0x8fe
uvideo0: send 50 bytes data to offset 0x8fe
uvideo0: send 50 bytes data to offset 0x930
uvideo0: send 50 bytes data to offset 0x962
uvideo0: send 50 bytes data to offset 0x994
uvideo0: send 50 bytes data to offset 0x9c6
uvideo0: send 50 bytes data to offset 0x9f8
uvideo0: send 50 bytes data to offset 0xa2a
uvideo0: send 50 bytes data to offset 0xa5c
uvideo0: send 50 bytes data to offset 0xa8e
uvideo0: send 50 bytes data to offset 0xac0
uvideo0: send 50 bytes data to offset 0xaf2
uvideo0: send 50 bytes data to offset 0xb24
uvideo0: send 50 bytes data to offset 0xb56
uvideo0: send 50 bytes data to offset 0xb88
uvideo0: send 50 bytes data to offset 0xbba
uvideo0: send 50 bytes data to offset 0xbec
uvideo0: send 50 bytes data to offset 0xc1e
uvideo0: send 50 bytes data to offset 0xc50
uvideo0: send 50 bytes data to offset 0xc82
uvideo0: send 50 bytes data to offset 0xcb4
uvideo0: send 23 bytes data to offset 0xce6
uvideo0: ucode data len=1023, request=0xcfd
uvideo0: send 50 bytes data to offset 0xcfd
uvideo0: send 50 bytes data to offset 0xd2f
uvideo0: send 50 bytes data to offset 0xd61
uvideo0: send 50 bytes data to offset 0xd93
uvideo0: send 50 bytes data to offset 0xdc5
uvideo0: send 50 bytes data to offset 0xdf7
uvideo0: send 50 bytes data to offset 0xe29
uvideo0: send 50 bytes data to offset 0xe5b
uvideo0: send 50 bytes data to offset 0xe8d
uvideo0: send 50 bytes data to offset 0xebf
uvideo0: send 50 bytes data to offset 0xef1
uvideo0: send 50 bytes data to offset 0xf23
uvideo0: send 50 bytes data to offset 0xf55
uvideo0: send 50 bytes data to offset 0xf87
uvideo0: send 50 bytes data to offset 0xfb9
uvideo0: send 50 bytes data to offset 0xfeb
uvideo0: send 50 bytes data to offset 0x101d
uvideo0: send 50 bytes data to offset 0x104f
uvideo0: send 50 bytes data to offset 0x1081
uvideo0: send 50 bytes data to offset 0x10b3
uvideo0: send 23 bytes data to offset 0x10e5
uvideo0: ucode data len=1023, request=0x10fc
uvideo0: send 50 bytes data to offset 0x10fc
uvideo0: send 50 bytes data to offset 0x112e
uvideo0: send 50 bytes data to offset 0x1160
uvideo0: send 50 bytes data to offset 0x1192
uvideo0: send 50 bytes data to offset 0x11c4
uvideo0: send 50 bytes data to offset 0x11f6
uvideo0: send 50 bytes data to offset 0x1228
uvideo0: send 50 bytes data to offset 0x125a
uvideo0: send 50 bytes data to offset 0x128c
uvideo0: send 50 bytes data to offset 0x12be
uvideo0: send 50 bytes data to offset 0x12f0
uvideo0: send 50 bytes data to offset 0x1322
uvideo0: send 50 bytes data to offset 0x1354
uvideo0: send 50 bytes data to offset 0x1386
uvideo0: send 50 bytes data to offset 0x13b8
uvideo0: send 50 bytes data to offset 0x13ea
uvideo0: send 50 bytes data to offset 0x141c
uvideo0: send 50 bytes data to offset 0x144e
uvideo0: send 50 bytes data to offset 0x1480
uvideo0: send 50 bytes data to offset 0x14b2
uvideo0: send 23 bytes data to offset 0x14e4
uvideo0: ucode data len=1023, request=0x14fb
uvideo0: send 50 bytes data to offset 0x14fb
uvideo0: send 50 bytes data to offset 0x152d
uvideo0: send 50 bytes data to offset 0x155f
uvideo0: send 50 bytes data to offset 0x1591
uvideo0: send 50 bytes data to offset 0x15c3
uvideo0: send 50 bytes data to offset 0x15f5
uvideo0: send 50 bytes data to offset 0x1627
uvideo0: send 50 bytes data to offset 0x1659
uvideo0: send 50 bytes data to offset 0x168b
uvideo0: send 50 bytes data to offset 0x16bd
uvideo0: send 50 bytes data to offset 0x16ef
uvideo0: send 50 bytes data to offset 0x1721
uvideo0: send 50 bytes data to offset 0x1753
uvideo0: send 50 bytes data to offset 0x1785
uvideo0: send 50 bytes data to offset 0x17b7
uvideo0: send 50 bytes data to offset 0x17e9
uvideo0: send 50 bytes data to offset 0x181b
uvideo0: send 50 bytes data to offset 0x184d
uvideo0: send 50 bytes data to offset 0x187f
uvideo0: send 50 bytes data to offset 0x18b1
uvideo0: send 23 bytes data to offset 0x18e3
uvideo0: ucode data len=1023, request=0x18fa
uvideo0: send 50 bytes data to offset 0x18fa
uvideo0: send 50 bytes data to offset 0x192c
uvideo0: send 50 bytes data to offset 0x195e
uvideo0: send 50 bytes data to offset 0x1990
uvideo0: send 50 bytes data to offset 0x19c2
uvideo0: send 50 bytes data to offset 0x19f4
uvideo0: send 50 bytes data to offset 0x1a26
uvideo0: send 50 bytes data to offset 0x1a58
uvideo0: send 50 bytes data to offset 0x1a8a
uvideo0: send 50 bytes data to offset 0x1abc
uvideo0: send 50 bytes data to offset 0x1aee
uvideo0: send 50 bytes data to offset 0x1b20
uvideo0: send 50 bytes data to offset 0x1b52
uvideo0: send 50 bytes data to offset 0x1b84
uvideo0: send 50 bytes data to offset 0x1bb6
uvideo0: send 50 bytes data to offset 0x1be8
uvideo0: send 50 bytes data to offset 0x1c1a
uvideo0: send 50 bytes data to offset 0x1c4c
uvideo0: send 50 bytes data to offset 0x1c7e
uvideo0: send 50 bytes data to offset 0x1cb0
uvideo0: send 23 bytes data to offset 0x1ce2
uvideo0: ucode data len=1023, request=0x1cf9
uvideo0: send 50 bytes data to offset 0x1cf9
uvideo0: send 50 bytes data to offset 0x1d2b
uvideo0: send 50 bytes data to offset 0x1d5d
uvideo0: send 50 bytes data to offset 0x1d8f
uvideo0: send 50 bytes data to offset 0x1dc1
uvideo0: send 50 bytes data to offset 0x1df3
uvideo0: send 50 bytes data to offset 0x1e25
uvideo0: send 50 bytes data to offset 0x1e57
uvideo0: send 50 bytes data to offset 0x1e89
uvideo0: send 50 bytes data to offset 0x1ebb
uvideo0: send 50 bytes data to offset 0x1eed
uvideo0: send 50 bytes data to offset 0x1f1f
uvideo0: send 50 bytes data to offset 0x1f51
uvideo0: send 50 bytes data to offset 0x1f83
uvideo0: send 50 bytes data to offset 0x1fb5
uvideo0: send 50 bytes data to offset 0x1fe7
uvideo0: send 50 bytes data to offset 0x2019
uvideo0: send 50 bytes data to offset 0x204b
uvideo0: send 50 bytes data to offset 0x207d
uvideo0: send 50 bytes data to offset 0x20af
uvideo0: send 23 bytes data to offset 0x20e1
uvideo0: ucode data len=1023, request=0x20f8
uvideo0: send 50 bytes data to offset 0x20f8
uvideo0: send 50 bytes data to offset 0x212a
uvideo0: send 50 bytes data to offset 0x215c
uvideo0: send 50 bytes data to offset 0x218e
uvideo0: send 50 bytes data to offset 0x21c0
uvideo0: send 50 bytes data to offset 0x21f2
uvideo0: send 50 bytes data to offset 0x2224
uvideo0: send 50 bytes data to offset 0x2256
uvideo0: send 50 bytes data to offset 0x2288
uvideo0: send 50 bytes data to offset 0x22ba
uvideo0: send 50 bytes data to offset 0x22ec
uvideo0: send 50 bytes data to offset 0x231e
uvideo0: send 50 bytes data to offset 0x2350
uvideo0: send 50 bytes data to offset 0x2382
uvideo0: send 50 bytes data to offset 0x23b4
uvideo0: send 50 bytes data to offset 0x23e6
uvideo0: send 50 bytes data to offset 0x2418
uvideo0: send 50 bytes data to offset 0x244a
uvideo0: send 50 bytes data to offset 0x247c
uvideo0: send 50 bytes data to offset 0x24ae
uvideo0: send 23 bytes data to offset 0x24e0
uvideo0: ucode data len=1023, request=0x24f7
uvideo0: send 50 bytes data to offset 0x24f7
uvideo0: send 50 bytes data to offset 0x2529
uvideo0: send 50 bytes data to offset 0x255b
uvideo0: send 50 bytes data to offset 0x258d
uvideo0: send 50 bytes data to offset 0x25bf
uvideo0: send 50 bytes data to offset 0x25f1
uvideo0: send 50 bytes data to offset 0x2623
uvideo0: send 50 bytes data to offset 0x2655
uvideo0: send 50 bytes data to offset 0x2687
uvideo0: send 50 bytes data to offset 0x26b9
uvideo0: send 50 bytes data to offset 0x26eb
uvideo0: send 50 bytes data to offset 0x271d
uvideo0: send 50 bytes data to offset 0x274f
uvideo0: send 50 bytes data to offset 0x2781
uvideo0: send 50 bytes data to offset 0x27b3
uvideo0: send 50 bytes data to offset 0x27e5
uvideo0: send 50 bytes data to offset 0x2817
uvideo0: send 50 bytes data to offset 0x2849
uvideo0: send 50 bytes data to offset 0x287b
uvideo0: send 50 bytes data to offset 0x28ad
uvideo0: send 23 bytes data to offset 0x28df
uvideo0: ucode data len=555, request=0x28f6
uvideo0: send 50 bytes data to offset 0x28f6
uvideo0: send 50 bytes data to offset 0x2928
uvideo0: send 50 bytes data to offset 0x295a
uvideo0: send 50 bytes data to offset 0x298c
uvideo0: send 50 bytes data to offset 0x29be
uvideo0: send 50 bytes data to offset 0x29f0
uvideo0: send 50 bytes data to offset 0x2a22
uvideo0: send 50 bytes data to offset 0x2a54
uvideo0: send 50 bytes data to offset 0x2a86
uvideo0: send 50 bytes data to offset 0x2ab8
uvideo0: send 50 bytes data to offset 0x2aea
uvideo0: send 5 bytes data to offset 0x2b1c
uvideo0: ucode activated
uvideo0 detached
uvideo0 at uhub0 port 4 configuration 1 interface 0 "Micron Built-in iSight" rev 2.00/1.84 addr 2
bLength=9
bDescriptorType=0x02 (UDESC_CONFIG)
|
bLength=9
bDescriptorType=0x02
wTotalLength=267
bNumInterface=0x02
bConfigurationValue=0x01
iConfiguration=0x00
bmAttributes=0x80
bMaxPower=0x32

bLength=8
bDescriptorType=0x24 (CS_INTERFACE)

bLength=9
bDescriptorType=0x04 (UDESC_INTERFACE)
|
bLength=9
bDescriptorType=0x04
bInterfaceNumber=0x00
bAlternateSetting=0x00
bNumEndpoints=1
bInterfaceClass=0x0e
bInterfaceSubClass=0x01
bInterfaceProtocol=0x00
iInterface=0x00

bLength=13
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x01 (UDESCSUB_VC_HEADER)
|
bLength=13
bDescriptorType=0x24
bDescriptorSubtype=0x01
bcdUVC=0x0100
wTotalLength=49
dwClockFrequency=13500000
bInCollection=0x01

bLength=16
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x02 (UDESCSUB_VC_INPUT_TERMINAL)
|
bLength=16
bDescriptorType=0x24
bDescriptorSubtype=0x02
bTerminalID=0x01
wTerminalType=0x0201
bAssocTerminal=0x00
iTerminal=0x00

bLength=11
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x05 (UDESCSUB_VC_PROCESSING_UNIT)
|
bLength=11
bDescriptorType=0x24
bDescriptorSubtype=0x05
bUnitID=0x02
bSourceID=0x01
wMaxMultiplier=0
bControlSize=2
bmControls=0x3900
iProcessing=0x00
bmVideoStandards=0x09

bLength=9
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x03 (UDESCSUB_VC_OUTPUT)
|
bLength=9
bDescriptorType=0x24
bDescriptorSubtype=0x03
bTerminalID=0x03
bAssocTerminal=0x00
bSourceID=0x02
iTerminal=0x00

bLength=7
bDescriptorType=0x05 (UDESC_ENDPOINT)
|
bLength=7
bDescriptorType=0x05
bEndpointAddress=0x81 (IN)
bmAttributes=0x03 (UE_INTERRUPT)
wMaxPacketSize=8
bInterval=0x0a

bLength=5
bDescriptorType=0x25 (UDESC_CS_ENDPOINT)
bDescriptorSubtype=0x03 (EP_INTERRUPT)
|
bLength=5
bDescriptorType=0x25
bDescriptorSubtype=0x03
wMaxTransferSize=16

bLength=9
bDescriptorType=0x04 (UDESC_INTERFACE)
|
bLength=9
bDescriptorType=0x04
bInterfaceNumber=0x01
bAlternateSetting=0x00
bNumEndpoints=0
bInterfaceClass=0x0e
bInterfaceSubClass=0x02
bInterfaceProtocol=0x00
iInterface=0x00

bLength=14
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x01 (UDESCSUB_VS_INPUT_HEADER)
|
bLength=14
bDescriptorType=0x24
bDescriptorSubtype=0x01
bNumFormats=1
wTotalLength=155
bEndpointAddress=0x82
bmInfo=0x00
bTerminalLink=0x03
bStillCaptureMethod=0x00
bTriggerSupport=0x00
bTriggerUsage=0x00
bControlSize=1

bLength=27
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x04 (UDESCSUB_VS_FORMAT_UNCOMPRESSED)
bLength=27
bDescriptorType=0x24
bDescriptorSubtype=0x04
bFormatIndex=0x01
bNumFrameDescriptors=0x03
guidFormat=UYVY
bBitsPerPixel=0x10
bDefaultFrameIndex=0x01
bAspectRatioX=0x00
bAspectRatioY=0x00
bmInterlaceFlags=0x00
bCopyProtect=0x00

bLength=38
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x05 (UDESCSUB_VS_FRAME_UNCOMPRESSED)
bLength=38
bDescriptorType=0x24
bDescriptorSubtype=0x05
bFrameIndex=0x01
bmCapabilities=0x00
wWidth=640
wHeight=480
dwMinBitRate=383976960
dwMaxBitRate=383976960
dwMaxVideoFrameBufferSize=614400
dwDefaultFrameInterval=333333
bFrameIntervalType=0x00
dwMinFrameInterval = 333333
dwMaxFrameInterval = 333333
dwFrameIntervalStep = 0

bLength=38
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x05 (UDESCSUB_VS_FRAME_UNCOMPRESSED)
bLength=38
bDescriptorType=0x24
bDescriptorSubtype=0x05
bFrameIndex=0x02
bmCapabilities=0x00
wWidth=352
wHeight=288
dwMinBitRate=383976960
dwMaxBitRate=383976960
dwMaxVideoFrameBufferSize=202752
dwDefaultFrameInterval=333333
bFrameIntervalType=0x00
dwMinFrameInterval = 333333
dwMaxFrameInterval = 333333
dwFrameIntervalStep = 0

bLength=38
bDescriptorType=0x24 (CS_INTERFACE)
bDescriptorSubtype=0x05 (UDESCSUB_VS_FRAME_UNCOMPRESSED)
bLength=38
bDescriptorType=0x24
bDescriptorSubtype=0x05
bFrameIndex=0x03
bmCapabilities=0x00
wWidth=320
wHeight=240
dwMinBitRate=383976960
dwMaxBitRate=383976960
dwMaxVideoFrameBufferSize=153600
dwDefaultFrameInterval=333333
bFrameIntervalType=0x00
dwMinFrameInterval = 333333
dwMaxFrameInterval = 333333
dwFrameIntervalStep = 0

bLength=9
bDescriptorType=0x04 (UDESC_INTERFACE)
|
bLength=9
bDescriptorType=0x04
bInterfaceNumber=0x01
bAlternateSetting=0x01
bNumEndpoints=1
bInterfaceClass=0x0e
bInterfaceSubClass=0x02
bInterfaceProtocol=0x00
iInterface=0x00

bLength=7
bDescriptorType=0x05 (UDESC_ENDPOINT)
|
bLength=7
bDescriptorType=0x05
bEndpointAddress=0x82 (IN)
bmAttributes=0x05 (UE_ISOCHRONOUS, UE_ISO_ASYNC)
wMaxPacketSize=5120
bInterval=0x01

uvideo0: uvideo_vc_parse_desc
uvideo0: number of total interfaces=2
uvideo0: number of VS interfaces=1
uvideo0: uvideo_vs_parse_desc_format
uvideo0: number of total format descriptors=1
uvideo0: uvideo_vs_parse_desc_frame
uvideo0: VS interface 0, bInterfaceNumber=0x01, numalts=2
uvideo0: bAlternateSetting=0x00, no endpoint descriptor
uvideo0: bAlternateSetting=0x01, bEndpointAddress=0x82, wMaxPacketSize=5120
uvideo0: SET probe request successfully
bmHint=0x01
bFormatIndex=0x01
bFrameIndex=0x01
dwFrameInterval=333333 (100ns units)
wKeyFrameRate=0
wPFrameRate=0
wCompQuality=0
wCompWindowSize=0
wDelay=0 (ms)
dwMaxVideoFrameSize=0 (bytes)
dwMaxPayloadTransferSize=0 (bytes)
uvideo0: GET probe request successfully
bmHint=0x00
bFormatIndex=0x01
bFrameIndex=0x01
dwFrameInterval=333333 (100ns units)
wKeyFrameRate=0
wPFrameRate=0
wCompQuality=0
wCompWindowSize=0
wDelay=33 (ms)
dwMaxVideoFrameSize=614400 (bytes)
dwMaxPayloadTransferSize=3072 (bytes)
fixed dwMaxVideoFrameSize=614400, width=640 height=480 bpp=16
uvideo_attach: doing video_attach_mi
video0 at uvideo0

No comments:

Post a Comment