BUG: Freeze upon loading bttv module

Message ID 527EBEA4.1070202@xs4all.nl (mailing list archive)
State Accepted, archived
Delegated to: Hans Verkuil
Headers

Commit Message

Hans Verkuil Nov. 9, 2013, 11 p.m. UTC
  Hi Lorenz,

On 11/09/2013 05:18 PM, Lorenz Röhrl wrote:
> Hi,
> 
> i'm having problems loading the bttv-module for my bt878 based DVB-T 
> card: my system just freezes. Magic-Syskeys also won't work then.
> With kernel 3.9.0 this worked just fine. Versions 3.10, 3.11 and 3.12 
> won't work.
> 
> Last messages on screen with 3.12 upon booting/loading the module is: 
> http://abload.de/img/bttv_freezeqxdn2.png
> 
> With kernel 3.9 i get an additional line on module loading and the 
> device works fine:
> [    1.895037] bttv: 0: add subdevice "dvb0"
> 
> I traced the problem, it dies somewhere in v4l2_ctrl_handler_setup on 
> line 4169 
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/media/pci/bt8xx/bttv-driver.c#n4169

Can you try this patch? I'm not 100% but I think this might be the cause of
the problem.


Regards,

	Hans

> 
> lspci output from kernel 3.9:
> [...]
> 04:01.0 Multimedia video controller: Brooktree Corporation Bt878 Video 
> Capture (rev 11)
>          Subsystem: Twinhan Technology Co. Ltd VisionPlus DVB card
>          Flags: bus master, medium devsel, latency 32, IRQ 16
>          Memory at f0401000 (32-bit, prefetchable) [size=4K]
>          Capabilities: [44] Vital Product Data
>          Capabilities: [4c] Power Management version 2
>          Kernel driver in use: bttv
>          Kernel modules: bttv
> 
> 04:01.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture 
> (rev 11)
>          Subsystem: Twinhan Technology Co. Ltd VisionPlus DVB Card
>          Flags: bus master, medium devsel, latency 32, IRQ 16
>          Memory at f0400000 (32-bit, prefetchable) [size=4K]
>          Capabilities: [44] Vital Product Data
>          Capabilities: [4c] Power Management version 2
>          Kernel driver in use: bt878
>          Kernel modules: bt878
> 
> 
> 
> Please CC me as i'm not subscribed to the list.
> 
> Thanks!
> 
> - Lorenz
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Comments

Lorenz Röhrl Nov. 10, 2013, 8:35 a.m. UTC | #1
Hi Hans,


On 11/10/2013 12:00 AM, Hans Verkuil wrote:
>
> Can you try this patch? I'm not 100% but I think this might be the cause of
> the problem.
>
> diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8xx/bttv-driver.c
> index c6532de..4f0aaa5 100644
> --- a/drivers/media/pci/bt8xx/bttv-driver.c
> +++ b/drivers/media/pci/bt8xx/bttv-driver.c
> @@ -4182,7 +4182,8 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
>   	}
>   	btv->std = V4L2_STD_PAL;
>   	init_irqreg(btv);
> -	v4l2_ctrl_handler_setup(hdl);
> +	if (!bttv_tvcards[btv->c.type].no_video)
> +		v4l2_ctrl_handler_setup(hdl);
>   	if (hdl->error) {
>   		result = hdl->error;
>   		goto fail2;
>
>

I tried the patch and indeed it's working :)
No freeze on loading the module and the dvb-device is also working.

lolo@hurra ~ % ls /dev/dvb/adapter0
demux0  dvr0  frontend0

lolo@hurra ~ % dmesg |grep bttv
[    0.871060] bttv: driver version 0.9.19 loaded
[    0.872005] bttv: using 8 buffers with 2080k (520 pages) each for capture
[    0.873137] bttv: Bt8xx card found (0)
[    0.874186] bttv: 0: Bt878 (rev 17) at 0000:04:01.0, irq: 16, 
latency: 32, mmio: 0xf0401000
[    0.875156] bttv: 0: detected: Twinhan VisionPlus DVB [card=113], PCI 
subsystem ID is 1822:0001
[    0.876138] bttv: 0: using: Twinhan DST + clones [card=113,autodetected]
[    0.884082] bttv: 0: tuner absent
[    0.894011] bttv: 0: add subdevice "dvb0"
[    0.901398] DVB: registering new adapter (bttv0)


Will this patch be included upstream? When will it appear in official 
kernel sources?

Thanks a lot!

- Lorenz

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Hans Verkuil Nov. 10, 2013, 11:45 a.m. UTC | #2
Hi Lorenz,

On 11/10/2013 09:35 AM, Lorenz Röhrl wrote:
> Hi Hans,
> 
> 
> On 11/10/2013 12:00 AM, Hans Verkuil wrote:
>>
>> Can you try this patch? I'm not 100% but I think this might be the cause of
>> the problem.
>>
>> diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8xx/bttv-driver.c
>> index c6532de..4f0aaa5 100644
>> --- a/drivers/media/pci/bt8xx/bttv-driver.c
>> +++ b/drivers/media/pci/bt8xx/bttv-driver.c
>> @@ -4182,7 +4182,8 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
>>   	}
>>   	btv->std = V4L2_STD_PAL;
>>   	init_irqreg(btv);
>> -	v4l2_ctrl_handler_setup(hdl);
>> +	if (!bttv_tvcards[btv->c.type].no_video)
>> +		v4l2_ctrl_handler_setup(hdl);
>>   	if (hdl->error) {
>>   		result = hdl->error;
>>   		goto fail2;
>>
>>
> 
> I tried the patch and indeed it's working :)
> No freeze on loading the module and the dvb-device is also working.

Thanks for testing this! Good news that it fixed the problem.

> 
> lolo@hurra ~ % ls /dev/dvb/adapter0
> demux0  dvr0  frontend0
> 
> lolo@hurra ~ % dmesg |grep bttv
> [    0.871060] bttv: driver version 0.9.19 loaded
> [    0.872005] bttv: using 8 buffers with 2080k (520 pages) each for capture
> [    0.873137] bttv: Bt8xx card found (0)
> [    0.874186] bttv: 0: Bt878 (rev 17) at 0000:04:01.0, irq: 16, 
> latency: 32, mmio: 0xf0401000
> [    0.875156] bttv: 0: detected: Twinhan VisionPlus DVB [card=113], PCI 
> subsystem ID is 1822:0001
> [    0.876138] bttv: 0: using: Twinhan DST + clones [card=113,autodetected]
> [    0.884082] bttv: 0: tuner absent
> [    0.894011] bttv: 0: add subdevice "dvb0"
> [    0.901398] DVB: registering new adapter (bttv0)
> 
> 
> Will this patch be included upstream? When will it appear in official 
> kernel sources?

I'll make a pull request for this tomorrow for 3.13 with a CC to the stable kernel
mailinglist. It will probably take a few weeks before it appears in the mainline
kernel and in the older, stable, kernels. I would expect this to be fixed by the
end of the year.

Regards,

	Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8xx/bttv-driver.c
index c6532de..4f0aaa5 100644
--- a/drivers/media/pci/bt8xx/bttv-driver.c
+++ b/drivers/media/pci/bt8xx/bttv-driver.c
@@ -4182,7 +4182,8 @@  static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
 	}
 	btv->std = V4L2_STD_PAL;
 	init_irqreg(btv);
-	v4l2_ctrl_handler_setup(hdl);
+	if (!bttv_tvcards[btv->c.type].no_video)
+		v4l2_ctrl_handler_setup(hdl);
 	if (hdl->error) {
 		result = hdl->error;
 		goto fail2;