diff mbox

Revert "V4L/DVB: cx23885: Enable Message Signaled Interrupts(MSI)"

Message ID 1309384173-12933-1-git-send-email-jarod@redhat.com (mailing list archive)
State Accepted
Headers show

Commit Message

Jarod Wilson June 29, 2011, 9:49 p.m. UTC
This reverts commit e38030f3ff02684eb9e25e983a03ad318a10a2ea.

MSI flat-out doesn't work right on cx2388x devices yet. There are now
multiple reports of cards that hard-lock systems when MSI is enabled,
including my own HVR-1250 when trying to use its built-in IR receiver.
Disable MSI and it works just fine. Similar for another user's HVR-1270.
Issues have also been reported with the HVR-1850 when MSI is enabled,
and the 1850 behavior sounds similar to an as-yet-undiagnosed issue I've
seen with an 1800.

References:

http://www.spinics.net/lists/linux-media/msg25956.html
http://www.spinics.net/lists/linux-media/msg33676.html
http://www.spinics.net/lists/linux-media/msg34734.html

CC: Andy Walls <awalls@md.metrocast.net>
CC: Kusanagi Kouichi <slash@ac.auone-net.jp>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
---
 drivers/media/video/cx23885/cx23885-core.c |    9 ++-------
 1 files changed, 2 insertions(+), 7 deletions(-)

Comments

Dark Shadow June 29, 2011, 10:58 p.m. UTC | #1
On Wed, Jun 29, 2011 at 3:49 PM, Jarod Wilson <jarod@redhat.com> wrote:
> This reverts commit e38030f3ff02684eb9e25e983a03ad318a10a2ea.
>
> MSI flat-out doesn't work right on cx2388x devices yet. There are now
> multiple reports of cards that hard-lock systems when MSI is enabled,
> including my own HVR-1250 when trying to use its built-in IR receiver.
> Disable MSI and it works just fine. Similar for another user's HVR-1270.
> Issues have also been reported with the HVR-1850 when MSI is enabled,
> and the 1850 behavior sounds similar to an as-yet-undiagnosed issue I've
> seen with an 1800.
>
> References:
>
> http://www.spinics.net/lists/linux-media/msg25956.html
> http://www.spinics.net/lists/linux-media/msg33676.html
> http://www.spinics.net/lists/linux-media/msg34734.html
>
> CC: Andy Walls <awalls@md.metrocast.net>
> CC: Kusanagi Kouichi <slash@ac.auone-net.jp>
> Signed-off-by: Jarod Wilson <jarod@redhat.com>
> ---
>  drivers/media/video/cx23885/cx23885-core.c |    9 ++-------
>  1 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
> index 64d9b21..419777a 100644
> --- a/drivers/media/video/cx23885/cx23885-core.c
> +++ b/drivers/media/video/cx23885/cx23885-core.c
> @@ -2060,12 +2060,8 @@ static int __devinit cx23885_initdev(struct pci_dev *pci_dev,
>                goto fail_irq;
>        }
>
> -       if (!pci_enable_msi(pci_dev))
> -               err = request_irq(pci_dev->irq, cx23885_irq,
> -                                 IRQF_DISABLED, dev->name, dev);
> -       else
> -               err = request_irq(pci_dev->irq, cx23885_irq,
> -                                 IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
> +       err = request_irq(pci_dev->irq, cx23885_irq,
> +                         IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
>        if (err < 0) {
>                printk(KERN_ERR "%s: can't get IRQ %d\n",
>                       dev->name, pci_dev->irq);
> @@ -2114,7 +2110,6 @@ static void __devexit cx23885_finidev(struct pci_dev *pci_dev)
>
>        /* unregister stuff */
>        free_irq(pci_dev->irq, dev);
> -       pci_disable_msi(pci_dev);
>
>        cx23885_dev_unregister(dev);
>        v4l2_device_unregister(v4l2_dev);
> --
> 1.7.1
>
> --
> 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
>


Tested and it fixed my HVR-1270 IR. I also tested a couple minutes of
live TV and it still works.
--
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
Andy Walls June 29, 2011, 11:35 p.m. UTC | #2
On Wed, 2011-06-29 at 17:49 -0400, Jarod Wilson wrote:
> This reverts commit e38030f3ff02684eb9e25e983a03ad318a10a2ea.
> 
> MSI flat-out doesn't work right on cx2388x devices yet. There are now
> multiple reports of cards that hard-lock systems when MSI is enabled,
> including my own HVR-1250 when trying to use its built-in IR receiver.
> Disable MSI and it works just fine. Similar for another user's HVR-1270.
> Issues have also been reported with the HVR-1850 when MSI is enabled,
> and the 1850 behavior sounds similar to an as-yet-undiagnosed issue I've
> seen with an 1800.
> 
> References:
> 
> http://www.spinics.net/lists/linux-media/msg25956.html
> http://www.spinics.net/lists/linux-media/msg33676.html
> http://www.spinics.net/lists/linux-media/msg34734.html
> 
> CC: Andy Walls <awalls@md.metrocast.net>

Fine by me.

Acked-by: Andy Walls <awalls@md.metrocast.net>

but you should really

Cc: Steven Toth <stoth@kernellabs.com>

> CC: Kusanagi Kouichi <slash@ac.auone-net.jp>
> Signed-off-by: Jarod Wilson <jarod@redhat.com>
> ---
>  drivers/media/video/cx23885/cx23885-core.c |    9 ++-------
>  1 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
> index 64d9b21..419777a 100644
> --- a/drivers/media/video/cx23885/cx23885-core.c
> +++ b/drivers/media/video/cx23885/cx23885-core.c
> @@ -2060,12 +2060,8 @@ static int __devinit cx23885_initdev(struct pci_dev *pci_dev,
>  		goto fail_irq;
>  	}
>  
> -	if (!pci_enable_msi(pci_dev))
> -		err = request_irq(pci_dev->irq, cx23885_irq,
> -				  IRQF_DISABLED, dev->name, dev);
> -	else
> -		err = request_irq(pci_dev->irq, cx23885_irq,
> -				  IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
> +	err = request_irq(pci_dev->irq, cx23885_irq,
> +			  IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
>  	if (err < 0) {
>  		printk(KERN_ERR "%s: can't get IRQ %d\n",
>  		       dev->name, pci_dev->irq);
> @@ -2114,7 +2110,6 @@ static void __devexit cx23885_finidev(struct pci_dev *pci_dev)
>  
>  	/* unregister stuff */
>  	free_irq(pci_dev->irq, dev);
> -	pci_disable_msi(pci_dev);
>  
>  	cx23885_dev_unregister(dev);
>  	v4l2_device_unregister(v4l2_dev);


--
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
Igor M. Liplianin June 30, 2011, 7:10 p.m. UTC | #3
? ????????? ?? 30 ???? 2011 00:49:33 ????? Jarod Wilson ???????:
> This reverts commit e38030f3ff02684eb9e25e983a03ad318a10a2ea.
> 
> MSI flat-out doesn't work right on cx2388x devices yet. There are now
> multiple reports of cards that hard-lock systems when MSI is enabled,
> including my own HVR-1250 when trying to use its built-in IR receiver.
> Disable MSI and it works just fine. Similar for another user's HVR-1270.
> Issues have also been reported with the HVR-1850 when MSI is enabled,
> and the 1850 behavior sounds similar to an as-yet-undiagnosed issue I've
> seen with an 1800.
> 
> References:
> 
> http://www.spinics.net/lists/linux-media/msg25956.html
> http://www.spinics.net/lists/linux-media/msg33676.html
> http://www.spinics.net/lists/linux-media/msg34734.html
It's chronic problem now ...
http://www.spinics.net/lists/linux-media/msg22494.html

And how I cure it for particular card.
http://www.spinics.net/lists/linux-media/msg28334.html

Now I see, to revert commit e38030f3ff02684eb9e25e983a03ad318a10a2ea is a 
necessity.

> 
> CC: Andy Walls <awalls@md.metrocast.net>
> CC: Kusanagi Kouichi <slash@ac.auone-net.jp>
> Signed-off-by: Jarod Wilson <jarod@redhat.com>
> ---
>  drivers/media/video/cx23885/cx23885-core.c |    9 ++-------
>  1 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/media/video/cx23885/cx23885-core.c
> b/drivers/media/video/cx23885/cx23885-core.c index 64d9b21..419777a 100644
> --- a/drivers/media/video/cx23885/cx23885-core.c
> +++ b/drivers/media/video/cx23885/cx23885-core.c
> @@ -2060,12 +2060,8 @@ static int __devinit cx23885_initdev(struct pci_dev
> *pci_dev, goto fail_irq;
>  	}
> 
> -	if (!pci_enable_msi(pci_dev))
> -		err = request_irq(pci_dev->irq, cx23885_irq,
> -				  IRQF_DISABLED, dev->name, dev);
> -	else
> -		err = request_irq(pci_dev->irq, cx23885_irq,
> -				  IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
> +	err = request_irq(pci_dev->irq, cx23885_irq,
> +			  IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
>  	if (err < 0) {
>  		printk(KERN_ERR "%s: can't get IRQ %d\n",
>  		       dev->name, pci_dev->irq);
> @@ -2114,7 +2110,6 @@ static void __devexit cx23885_finidev(struct pci_dev
> *pci_dev)
> 
>  	/* unregister stuff */
>  	free_irq(pci_dev->irq, dev);
> -	pci_disable_msi(pci_dev);
> 
>  	cx23885_dev_unregister(dev);
>  	v4l2_device_unregister(v4l2_dev);
diff mbox

Patch

diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index 64d9b21..419777a 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -2060,12 +2060,8 @@  static int __devinit cx23885_initdev(struct pci_dev *pci_dev,
 		goto fail_irq;
 	}
 
-	if (!pci_enable_msi(pci_dev))
-		err = request_irq(pci_dev->irq, cx23885_irq,
-				  IRQF_DISABLED, dev->name, dev);
-	else
-		err = request_irq(pci_dev->irq, cx23885_irq,
-				  IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
+	err = request_irq(pci_dev->irq, cx23885_irq,
+			  IRQF_SHARED | IRQF_DISABLED, dev->name, dev);
 	if (err < 0) {
 		printk(KERN_ERR "%s: can't get IRQ %d\n",
 		       dev->name, pci_dev->irq);
@@ -2114,7 +2110,6 @@  static void __devexit cx23885_finidev(struct pci_dev *pci_dev)
 
 	/* unregister stuff */
 	free_irq(pci_dev->irq, dev);
-	pci_disable_msi(pci_dev);
 
 	cx23885_dev_unregister(dev);
 	v4l2_device_unregister(v4l2_dev);