* [staging] mei: Enable msi when supported
@ 2011-07-07 11:32 Maarten Lankhorst
2011-07-07 12:23 ` Winkler, Tomas
0 siblings, 1 reply; 4+ messages in thread
From: Maarten Lankhorst @ 2011-07-07 11:32 UTC (permalink / raw)
To: Tomas Winkler; +Cc: devel, Linux Kernel Mailing List
Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
---
Tested suspend/resume, driver (re/un)loading. Comments welcome. :)
diff --git a/drivers/staging/mei/main.c b/drivers/staging/mei/main.c
index bfd1b46..58106bf 100644
--- a/drivers/staging/mei/main.c
+++ b/drivers/staging/mei/main.c
@@ -121,6 +121,7 @@ static int __devinit mei_probe(struct pci_dev *pdev,
{
struct mei_device *dev;
int err;
+ unsigned long flags = 0;
mutex_lock(&mei_mutex);
if (mei_device) {
@@ -154,11 +155,13 @@ static int __devinit mei_probe(struct pci_dev *pdev,
err = -ENOMEM;
goto free_device;
}
+ if (pci_enable_msi(pdev) < 0)
+ flags |= IRQF_SHARED;
/* request and enable interrupt */
err = request_threaded_irq(pdev->irq,
mei_interrupt_quick_handler,
mei_interrupt_thread_handler,
- IRQF_SHARED, mei_driver_name, dev);
+ flags, mei_driver_name, dev);
if (err) {
printk(KERN_ERR "mei: request_threaded_irq failure. irq = %d\n",
pdev->irq);
@@ -186,6 +189,7 @@ release_irq:
mei_disable_interrupts(dev);
flush_scheduled_work();
free_irq(pdev->irq, dev);
+ pci_disable_msi(pdev);
unmap_memory:
pci_iounmap(pdev, dev->mem_addr);
free_device:
@@ -250,6 +254,7 @@ static void __devexit mei_remove(struct pci_dev *pdev)
mei_disable_interrupts(dev);
free_irq(pdev->irq, dev);
+ pci_disable_msi(pdev);
pci_set_drvdata(pdev, NULL);
if (dev->mem_addr)
@@ -1103,7 +1108,7 @@ static int mei_pci_suspend(struct device *device)
mutex_unlock(&dev->device_lock);
free_irq(pdev->irq, dev);
-
+ pci_disable_msi(pdev);
return err;
}
@@ -1113,16 +1118,19 @@ static int mei_pci_resume(struct device *device)
struct pci_dev *pdev = to_pci_dev(device);
struct mei_device *dev;
int err;
+ unsigned long flags = 0;
dev = pci_get_drvdata(pdev);
if (!dev)
return -ENODEV;
+ if (pci_enable_msi(pdev) < 0)
+ flags |= IRQF_SHARED;
/* request and enable interrupt */
err = request_threaded_irq(pdev->irq,
mei_interrupt_quick_handler,
mei_interrupt_thread_handler,
- IRQF_SHARED, mei_driver_name, dev);
+ flags, mei_driver_name, dev);
if (err) {
printk(KERN_ERR "mei: Request_irq failure. irq = %d\n",
pdev->irq);
^ permalink raw reply related [flat|nested] 4+ messages in thread* RE: [staging] mei: Enable msi when supported
2011-07-07 11:32 [staging] mei: Enable msi when supported Maarten Lankhorst
@ 2011-07-07 12:23 ` Winkler, Tomas
2011-07-12 13:13 ` Maarten Lankhorst
0 siblings, 1 reply; 4+ messages in thread
From: Winkler, Tomas @ 2011-07-07 12:23 UTC (permalink / raw)
To: Maarten Lankhorst
Cc: devel@linuxdriverproject.org, Linux Kernel Mailing List,
Weil, Oren jer
> -----Original Message-----
> From: Maarten Lankhorst [mailto:m.b.lankhorst@gmail.com]
> Sent: Thursday, July 07, 2011 2:32 PM
> To: Winkler, Tomas
> Cc: devel@linuxdriverproject.org; Linux Kernel Mailing List
> Subject: [staging] mei: Enable msi when supported
>
> Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
> ---
> Tested suspend/resume, driver (re/un)loading. Comments welcome. :)
Sounds good, but I believe in case where MSI is enabled we also can kill the quick handler.
Let me check before I ack this.
>
> diff --git a/drivers/staging/mei/main.c b/drivers/staging/mei/main.c index
> bfd1b46..58106bf 100644
> --- a/drivers/staging/mei/main.c
> +++ b/drivers/staging/mei/main.c
> @@ -121,6 +121,7 @@ static int __devinit mei_probe(struct pci_dev *pdev,
> {
> struct mei_device *dev;
> int err;
> + unsigned long flags = 0;
>
> mutex_lock(&mei_mutex);
> if (mei_device) {
> @@ -154,11 +155,13 @@ static int __devinit mei_probe(struct pci_dev
> *pdev,
> err = -ENOMEM;
> goto free_device;
> }
> + if (pci_enable_msi(pdev) < 0)
> + flags |= IRQF_SHARED;
> /* request and enable interrupt */
> err = request_threaded_irq(pdev->irq,
> mei_interrupt_quick_handler,
> mei_interrupt_thread_handler,
> - IRQF_SHARED, mei_driver_name, dev);
> + flags, mei_driver_name, dev);
> if (err) {
> printk(KERN_ERR "mei: request_threaded_irq failure. irq =
> %d\n",
> pdev->irq);
> @@ -186,6 +189,7 @@ release_irq:
> mei_disable_interrupts(dev);
> flush_scheduled_work();
> free_irq(pdev->irq, dev);
> + pci_disable_msi(pdev);
> unmap_memory:
> pci_iounmap(pdev, dev->mem_addr);
> free_device:
> @@ -250,6 +254,7 @@ static void __devexit mei_remove(struct pci_dev
> *pdev)
> mei_disable_interrupts(dev);
>
> free_irq(pdev->irq, dev);
> + pci_disable_msi(pdev);
> pci_set_drvdata(pdev, NULL);
>
> if (dev->mem_addr)
> @@ -1103,7 +1108,7 @@ static int mei_pci_suspend(struct device *device)
> mutex_unlock(&dev->device_lock);
>
> free_irq(pdev->irq, dev);
> -
> + pci_disable_msi(pdev);
>
> return err;
> }
> @@ -1113,16 +1118,19 @@ static int mei_pci_resume(struct device *device)
> struct pci_dev *pdev = to_pci_dev(device);
> struct mei_device *dev;
> int err;
> + unsigned long flags = 0;
>
> dev = pci_get_drvdata(pdev);
> if (!dev)
> return -ENODEV;
>
> + if (pci_enable_msi(pdev) < 0)
> + flags |= IRQF_SHARED;
> /* request and enable interrupt */
> err = request_threaded_irq(pdev->irq,
> mei_interrupt_quick_handler,
> mei_interrupt_thread_handler,
> - IRQF_SHARED, mei_driver_name, dev);
> + flags, mei_driver_name, dev);
> if (err) {
> printk(KERN_ERR "mei: Request_irq failure. irq = %d\n",
> pdev->irq);
>
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [staging] mei: Enable msi when supported
2011-07-07 12:23 ` Winkler, Tomas
@ 2011-07-12 13:13 ` Maarten Lankhorst
2011-07-13 12:18 ` Winkler, Tomas
0 siblings, 1 reply; 4+ messages in thread
From: Maarten Lankhorst @ 2011-07-12 13:13 UTC (permalink / raw)
To: Winkler, Tomas
Cc: devel@linuxdriverproject.org, Linux Kernel Mailing List,
Weil, Oren jer
Hi Tomas,
On 07/07/2011 02:23 PM, Winkler, Tomas wrote:
>> -----Original Message-----
>> From: Maarten Lankhorst [mailto:m.b.lankhorst@gmail.com]
>> Sent: Thursday, July 07, 2011 2:32 PM
>> To: Winkler, Tomas
>> Cc: devel@linuxdriverproject.org; Linux Kernel Mailing List
>> Subject: [staging] mei: Enable msi when supported
>>
>> Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
>> ---
>> Tested suspend/resume, driver (re/un)loading. Comments welcome. :)
> Sounds good, but I believe in case where MSI is enabled we also can kill the quick handler.
> Let me check before I ack this.
Figured I'd bump because I haven't heard anything back.
Cheers,
Maarten
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [staging] mei: Enable msi when supported
2011-07-12 13:13 ` Maarten Lankhorst
@ 2011-07-13 12:18 ` Winkler, Tomas
0 siblings, 0 replies; 4+ messages in thread
From: Winkler, Tomas @ 2011-07-13 12:18 UTC (permalink / raw)
To: Maarten Lankhorst
Cc: devel@linuxdriverproject.org, Linux Kernel Mailing List,
Weil, Oren jer
> -----Original Message-----
> From: Maarten Lankhorst [mailto:m.b.lankhorst@gmail.com]
> Sent: Tuesday, July 12, 2011 4:14 PM
> To: Winkler, Tomas
> Cc: devel@linuxdriverproject.org; Linux Kernel Mailing List; Weil, Oren jer
> Subject: Re: [staging] mei: Enable msi when supported
>
> Hi Tomas,
>
> On 07/07/2011 02:23 PM, Winkler, Tomas wrote:
> >> -----Original Message-----
> >> From: Maarten Lankhorst [mailto:m.b.lankhorst@gmail.com]
> >> Sent: Thursday, July 07, 2011 2:32 PM
> >> To: Winkler, Tomas
> >> Cc: devel@linuxdriverproject.org; Linux Kernel Mailing List
> >> Subject: [staging] mei: Enable msi when supported
> >>
> >> Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
> >> ---
> >> Tested suspend/resume, driver (re/un)loading. Comments welcome. :)
> > Sounds good, but I believe in case where MSI is enabled we also can kill the
> quick handler.
> > Let me check before I ack this.
>
> Figured I'd bump because I haven't heard anything back.
Sorry I was sick now I'm getting through my backlog
Will have answers tomorrow.
Thanks
Tomas
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-07-13 12:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-07 11:32 [staging] mei: Enable msi when supported Maarten Lankhorst
2011-07-07 12:23 ` Winkler, Tomas
2011-07-12 13:13 ` Maarten Lankhorst
2011-07-13 12:18 ` Winkler, Tomas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox