[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201105031837.13881.linux@rainbow-software.org>
Date: Tue, 3 May 2011 18:37:09 +0200
From: Ondrej Zary <linux@...nbow-software.org>
To: Mauro Carvalho Chehab <mchehab@...hat.com>
Cc: Hans Verkuil <hverkuil@...all.nl>,
Hans de Goede <hdegoede@...hat.com>,
Joerg Heckenbach <joerg@...kenbach-aw.de>,
Dwaine Garden <dwainegarden@...ers.com>,
linux-media@...r.kernel.org,
Kernel development list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] usbvision: remove (broken) image format conversion
On Tuesday 03 May 2011 12:29:45 Mauro Carvalho Chehab wrote:
> Em 26-04-2011 17:40, Ondrej Zary escreveu:
> > On Tuesday 26 April 2011 14:33:20 Hans Verkuil wrote:
> >
> > After digging in the code for hours, I'm giving this up. It's not worth
> > it.
> >
> > The ISOC_MODE_YUV422 mode works as V4L2_PIX_FMT_YVYU with VLC and
> > mplayer+libv4lconvert, reducing the loop (and dropping strech_*) in
> > usbvision_parse_lines_422() to:
> > scratch_get(usbvision, frame->data + (frame->v4l2_linesize *
> > frame->curline), 2 * frame->frmwidth);
> >
> > The ISOC_MODE_YUV420 is some weird custom format with 64-byte lines of
> > YYUV. usbvision_parse_lines_420() is real mess with that scratch_* crap
> > everywhere.
> >
> > ISOC_MODE_COMPRESS: There are callbacks to usbvision_request_intra() and
> > also usbvision_adjust_compression(). This is not going to work outside
> > the kernel.
> >
> >
> > So I can redo the conversion removal patch to keep the RGB formats and
> > also provide another one to remove the testpattern (it oopses too). But
> > I'm not going to do any major changes in the driver.
>
> While in a perfect world, this should be moved to userspace, I'm ok on
> keeping it there, but the OOPS/Panic conditions should be fixed.
>
> Could you please work on a patch fixing the broken stuff, without removing
> the conversions?
I've already returned the hardware so I can't test the driver anymore.
Did the YUV422P conversion ever work? The initialization of u and v pointers
is missing in usbvision_parse_compress() function for YUV422P case.
The following oops was captured when trying to fix YVU420. Seems to be
related to the u pointer too...
[ 181.169233] usbvision_parse_compress before conversion
[ 181.169233] usbvision_parse_compress idx=0, format=842094169
[ 181.169233] usbvision_parse_compress YVU420 f=e088d000, Y=e0a3e000
[ 181.169233] usbvision_parse_compress YVU420 frame=df016b68
[ 181.169233] usbvision_parse_compress YVU420 frame->curline=0
[ 181.169233] usbvision_parse_compress YVU420 u=e08a4700, U=e0a50c00, v=e089fc00, V=e0a55700
[ 181.169233] BUG: unable to handle kernel paging request at e08a4700
[ 181.169233] IP: [<e097fd57>] usbvision_parse_compress+0x599/0x76e [usbvision]
[ 181.169233] *pde = 1f0c2067 *pte = 00000000
[ 181.169233] Oops: 0002 [#1] SMP
[ 181.169233] last sysfs file: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/i2c-0/uevent
[ 181.169233] Modules linked in: savage drm loop usbvision v4l2_common snd_fm801 snd_tea575x_tuner videodev snd_intel8x0 e
[ 181.169233]
[ 181.169233] Pid: 0, comm: swapper Not tainted 2.6.39-rc2 #2 /848P-ICH5
[ 181.169233] EIP: 0060:[<e097fd57>] EFLAGS: 00010046 CPU: 0
[ 181.169233] EIP is at usbvision_parse_compress+0x599/0x76e [usbvision]
[ 181.169233] EAX: 00000000 EBX: df016b68 ECX: e08a4700 EDX: e0a50c81
[ 181.169233] ESI: 00000000 EDI: e088d001 EBP: 000000a0 ESP: df021cb4
[ 181.169233] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 181.169233] Process swapper (pid: 0, ti=df020000 task=c12dde60 task.ti=c12b0000)
[ 181.169233] Stack:
[ 181.169233] e0986ed3 e09861a4 e08a4700 e0a50c00 e089fc00 e0a55700 00000003 e089fc00
[ 181.169233] e08a4700 000000c0 00000140 df021f14 df021d52 05060000 00060027 00000009
[ 181.169233] 000000c0 00003293 00605a25 ff00605a fff0ffff 55d501fc 82995568 a0060124
[ 181.169233] Call Trace:
[ 181.169233] [<e0c9c69d>] ? uhci_urb_enqueue+0x712/0x725 [uhci_hcd]
[ 181.169233] [<e08f4155>] ? usb_hcd_submit_urb+0x4be/0x53d [usbcore]
[ 181.169233] [<c11e9840>] ? printk+0xe/0x16
[ 181.169233] [<e0980486>] ? usbvision_isoc_irq+0x55a/0x17a0 [usbvision]
[ 181.169233] [<e097f5f9>] ? usbvision_write_reg_irq+0xd5/0x10f [usbvision]
[ 181.169233] [<e0981505>] ? usbvision_isoc_irq+0x15d9/0x17a0 [usbvision]
[ 181.169233] [<c1026eb2>] ? try_to_wake_up+0x13b/0x13b
[ 181.169233] [<c117057c>] ? ata_scsi_qc_complete+0x2b4/0x2c2
[ 181.169233] [<c101e899>] ? __wake_up+0x2c/0x3b
[ 181.169233] [<e08f33e5>] ? usb_hcd_giveback_urb+0x46/0x71 [usbcore]
[ 181.169233] [<e0c9a98d>] ? uhci_giveback_urb+0xea/0x15d [uhci_hcd]
[ 181.169233] [<e0c9aff7>] ? uhci_scan_schedule+0x526/0x777 [uhci_hcd]
[ 181.169233] [<c117951b>] ? __ata_sff_port_intr+0x97/0xa2
[ 181.169233] [<e0c9c9f8>] ? uhci_irq+0xbf/0xcd [uhci_hcd]
[ 181.169233] [<e08f2d2e>] ? usb_hcd_irq+0x1e/0x5f [usbcore]
[ 181.169233] [<c1058581>] ? handle_irq_event_percpu+0x1e/0x106
[ 181.169233] [<c1059edc>] ? handle_edge_irq+0xa0/0xa0
[ 181.169233] [<c105868a>] ? handle_irq_event+0x21/0x37
[ 181.169233] [<c1059edc>] ? handle_edge_irq+0xa0/0xa0
[ 181.169233] [<c1059f42>] ? handle_fasteoi_irq+0x66/0x7e
[ 181.169233] <IRQ>
[ 181.169233] [<c10035c7>] ? do_IRQ+0x2e/0x84
[ 181.169233] [<c11ec370>] ? common_interrupt+0x30/0x38
[ 181.169233] [<c1007699>] ? mwait_idle+0x4f/0x54
[ 181.169233] [<c1001a86>] ? cpu_idle+0x91/0xab
[ 181.169233] [<c12f96d4>] ? start_kernel+0x2a3/0x2a8
[ 181.169233] Code: 08 ff 35 8c a1 98 e0 ff 74 24 14 68 a4 61 98 e0 68 d3 6e 98 e0 e8 ec 9a 86 e0 8b 15 8c a1 98 e0 89 f0
[ 181.169233] 11 8b 15 88 a1 98 e0 41 89 4c 24 20 8a 04 02 8b 54 24 1c 88
[ 181.169233] EIP: [<e097fd57>] usbvision_parse_compress+0x599/0x76e [usbvision] SS:ESP 0068:df021cb4
[ 181.169233] CR2: 00000000e08a4700
[ 181.169233] ---[ end trace aeedba237da329c1 ]---
--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists