Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH] uvcvideo: add another YUYV format GUID

54 views
Skip to first unread message

Daniel Ritz

unread,
Dec 1, 2009, 6:50:01 PM12/1/09
to
For some unknown reason, on a MacBookPro5,3 the iSight _sometimes_ report
a different video format GUID. This patch add the other (wrong) GUID to
the format table, making the iSight work always w/o other problems.

What it should report: 32595559-0000-0010-8000-00aa00389b71
What it often reports: 32595559-0000-0010-8000-000000389b71

Signed-off-by: Daniel Ritz <danie...@gmx.ch>
---
drivers/media/video/uvc/uvc_driver.c | 5 +++++
drivers/media/video/uvc/uvcvideo.h | 3 +++
2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
index 8756be5..c5af0a2 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -58,6 +58,11 @@ static struct uvc_format_desc uvc_fmts[] = {
.fcc = V4L2_PIX_FMT_YUYV,
},
{
+ .name = "YUV 4:2:2 (YUYV)",
+ .guid = UVC_GUID_FORMAT_YUY2_2,
+ .fcc = V4L2_PIX_FMT_YUYV,
+ },
+ {
.name = "YUV 4:2:0 (NV12)",
.guid = UVC_GUID_FORMAT_NV12,
.fcc = V4L2_PIX_FMT_NV12,
diff --git a/drivers/media/video/uvc/uvcvideo.h b/drivers/media/video/uvc/uvcvideo.h
index e7958aa..f18eac2 100644
--- a/drivers/media/video/uvc/uvcvideo.h
+++ b/drivers/media/video/uvc/uvcvideo.h
@@ -112,6 +112,9 @@ struct uvc_xu_control {
#define UVC_GUID_FORMAT_YUY2 \
{ 'Y', 'U', 'Y', '2', 0x00, 0x00, 0x10, 0x00, \
0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_YUY2_2 \
+ { 'Y', 'U', 'Y', '2', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x38, 0x9b, 0x71}
#define UVC_GUID_FORMAT_NV12 \
{ 'N', 'V', '1', '2', 0x00, 0x00, 0x10, 0x00, \
0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
--
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Laurent Pinchart

unread,
Dec 3, 2009, 7:50:01 PM12/3/09
to
Hi Daniel,

On Wednesday 02 December 2009 00:48:44 Daniel Ritz wrote:
> For some unknown reason, on a MacBookPro5,3 the iSight

Could you please send me the output of lsusb -v both with the correct and
wrong GUID ?

> _sometimes_ report a different video format GUID.

Sometimes only ? Now that's weird. Is that completely random ?

> This patch add the other (wrong) GUID to the format table, making the iSight
> work always w/o other problems.
>
> What it should report: 32595559-0000-0010-8000-00aa00389b71
> What it often reports: 32595559-0000-0010-8000-000000389b71
>
> Signed-off-by: Daniel Ritz <danie...@gmx.ch>

--
Regards,

Laurent Pinchart

Daniel Ritz

unread,
Dec 3, 2009, 9:10:01 PM12/3/09
to
Hi Laurent

On Thu, 2009-12-03 at 21:15 +0100, Laurent Pinchart wrote:
> Hi Daniel,
>
> On Wednesday 02 December 2009 00:48:44 Daniel Ritz wrote:
> > For some unknown reason, on a MacBookPro5,3 the iSight
>
> Could you please send me the output of lsusb -v both with the correct and
> wrong GUID ?

sure. i attached three files:
isight-good.txt, isight-bad.txt, isight-good2.txt

this is three reboots in a row from like 10 minutes ago. the first
boot into linux was actually rebooting from OSX...first cold boot
today directly into linux had the right GUID.

>
> > _sometimes_ report a different video format GUID.
>
> Sometimes only ? Now that's weird. Is that completely random ?

yes, sometimes only. it seems to be related to reboots, but i don't
know what exactly triggers it. rmmod/modprobe doesn't trigger it.
also, when the wrong GUID is reported, the only way of fixing it is
to reboot. it really is just the GUID. even when the wrong one is
reported, the device works just fine.

i started with a plain ubuntu 9.10, kernel 2.6.31 which was supposed
to fail, so i upgraded to a 2.6.32-rc8 to fix the iSight and some other
things, just to see it fail again. a reboot later and it worked, some
time and reboot later it failed again...

rgds
-daniel

isight-bad.txt
isight-good.txt
isight-good2.txt

Justin P. Mattock

unread,
Dec 4, 2009, 12:00:01 AM12/4/09
to

I get weiredness whenever
I shutdown the machine and then boot.
If I boot, then reboot things work.

Justin P. Mattock

Daniel Ritz

unread,
Dec 8, 2009, 10:10:03 AM12/8/09
to

interesting...does my little patch work for you as well?

thanks
-daniel

Laurent Pinchart

unread,
Dec 9, 2009, 8:50:01 PM12/9/09
to
Hi Daniel,

On Friday 04 December 2009 03:05:37 Daniel Ritz wrote:
> Hi Laurent
>
> On Thu, 2009-12-03 at 21:15 +0100, Laurent Pinchart wrote:
> > Hi Daniel,
> >
> > On Wednesday 02 December 2009 00:48:44 Daniel Ritz wrote:
> > > For some unknown reason, on a MacBookPro5,3 the iSight
> >
> > Could you please send me the output of lsusb -v both with the correct and
> > wrong GUID ?
>
> sure. i attached three files:
> isight-good.txt, isight-bad.txt, isight-good2.txt
>
> this is three reboots in a row from like 10 minutes ago. the first
> boot into linux was actually rebooting from OSX...first cold boot
> today directly into linux had the right GUID.

Thanks. diff'ing the descriptors shows something interesting (from good to
good2):

@@ -264,7 +264,7 @@
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 333333
bFrameIntervalType 11
- dwFrameInterval( 0) 3758429717
+ dwFrameInterval( 0) 333333
dwFrameInterval( 1) 363636
dwFrameInterval( 2) 400000
dwFrameInterval( 3) 444444

3758429717 is 0xe0051615 in hex, and 333333 is 0x00051615.

I wonder what other parts of the descriptors could get corrupted that way.

> > > _sometimes_ report a different video format GUID.
> >
> > Sometimes only ? Now that's weird. Is that completely random ?
>
> yes, sometimes only. it seems to be related to reboots, but i don't
> know what exactly triggers it. rmmod/modprobe doesn't trigger it.
> also, when the wrong GUID is reported, the only way of fixing it is
> to reboot. it really is just the GUID. even when the wrong one is
> reported, the device works just fine.
>
> i started with a plain ubuntu 9.10, kernel 2.6.31 which was supposed
> to fail, so i upgraded to a 2.6.32-rc8 to fix the iSight and some other
> things, just to see it fail again. a reboot later and it worked, some
> time and reboot later it failed again...

All of those are warm reboots, and you don't boot any alternative OS in-
between, right ?

Does Linux reload the iSight firmware at every boot ? If it does, could you
try to reload the firmware manually when you get a "bad" GUID to see if it
helps ? You will probably need to unload the uvcvideo driver before reloading
the firmware.

Daniel Ritz

unread,
Dec 10, 2009, 11:40:03 AM12/10/09
to

hmm..dunno..but even with this it just worked.

>
> > > > _sometimes_ report a different video format GUID.
> > >
> > > Sometimes only ? Now that's weird. Is that completely random ?
> >
> > yes, sometimes only. it seems to be related to reboots, but i don't
> > know what exactly triggers it. rmmod/modprobe doesn't trigger it.
> > also, when the wrong GUID is reported, the only way of fixing it is
> > to reboot. it really is just the GUID. even when the wrong one is
> > reported, the device works just fine.
> >
> > i started with a plain ubuntu 9.10, kernel 2.6.31 which was supposed
> > to fail, so i upgraded to a 2.6.32-rc8 to fix the iSight and some other
> > things, just to see it fail again. a reboot later and it worked, some
> > time and reboot later it failed again...
>
> All of those are warm reboots, and you don't boot any alternative OS in-
> between, right ?

yes, linux only.

>
> Does Linux reload the iSight firmware at every boot ? If it does, could you
> try to reload the firmware manually when you get a "bad" GUID to see if it
> helps ? You will probably need to unload the uvcvideo driver before reloading
> the firmware.
>

linux does not load isight firmware at all. the new macbooks don't
require to load FW the device just "works".
FW loading is only required for the devices with ID 0x05AC:0x8300,
what i have is 05ac:8507....

rgds
-daniel

Laurent Pinchart

unread,
Dec 10, 2009, 8:30:02 PM12/10/09
to

Ok, thanks for the information.

I guess the camera is really broken. As MacOSX probably doesn't even try to
parse the USB descriptors, the Apple developers never noticed.

Anyway, I'll apply your patch. Can I still keep your SoB line if I rename
YUY2_2 to YUY2_ISIGHT ?

--
Regards,

Laurent Pinchart

Daniel Ritz

unread,
Dec 11, 2009, 5:20:02 AM12/11/09
to

sure.

thanks, rgds
-daniel

0 new messages