Having both IRQF_NO_AUTOEN and IRQF_SHARED set causes
request_threaded_irq() to return with -EINVAL (see comment in flag
validation in that function). As the interrupt is currently not shared
between multiple devices, drop the IRQF_SHARED flag.
Fixes: 507cf5a2f1e2 ("platform/surface: aggregator: move to use request_irq by IRQF_NO_AUTOEN flag")
Signed-off-by: Maximilian Luz <[email protected]>
---
drivers/platform/surface/aggregator/controller.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
index 69e86cd599d3..8a70df60142c 100644
--- a/drivers/platform/surface/aggregator/controller.c
+++ b/drivers/platform/surface/aggregator/controller.c
@@ -2483,8 +2483,7 @@ int ssam_irq_setup(struct ssam_controller *ctrl)
* interrupt, and let the SAM resume callback during the controller
* resume process clear it.
*/
- const int irqf = IRQF_SHARED | IRQF_ONESHOT |
- IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN;
+ const int irqf = IRQF_ONESHOT | IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN;
gpiod = gpiod_get(dev, "ssam_wakeup-int", GPIOD_ASIS);
if (IS_ERR(gpiod))
--
2.31.1
Hi,
On 5/5/21 3:36 PM, Maximilian Luz wrote:
> Having both IRQF_NO_AUTOEN and IRQF_SHARED set causes
> request_threaded_irq() to return with -EINVAL (see comment in flag
> validation in that function). As the interrupt is currently not shared
> between multiple devices, drop the IRQF_SHARED flag.
>
> Fixes: 507cf5a2f1e2 ("platform/surface: aggregator: move to use request_irq by IRQF_NO_AUTOEN flag")
> Signed-off-by: Maximilian Luz <[email protected]>
Thank you I'll pick this up (and at it to the pdx86/fixes branch too)
once 5.13-rc1 is out.
Regards,
Hans
> ---
> drivers/platform/surface/aggregator/controller.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
> index 69e86cd599d3..8a70df60142c 100644
> --- a/drivers/platform/surface/aggregator/controller.c
> +++ b/drivers/platform/surface/aggregator/controller.c
> @@ -2483,8 +2483,7 @@ int ssam_irq_setup(struct ssam_controller *ctrl)
> * interrupt, and let the SAM resume callback during the controller
> * resume process clear it.
> */
> - const int irqf = IRQF_SHARED | IRQF_ONESHOT |
> - IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN;
> + const int irqf = IRQF_ONESHOT | IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN;
>
> gpiod = gpiod_get(dev, "ssam_wakeup-int", GPIOD_ASIS);
> if (IS_ERR(gpiod))
>
Hi,
On 5/5/21 3:36 PM, Maximilian Luz wrote:
> Having both IRQF_NO_AUTOEN and IRQF_SHARED set causes
> request_threaded_irq() to return with -EINVAL (see comment in flag
> validation in that function). As the interrupt is currently not shared
> between multiple devices, drop the IRQF_SHARED flag.
>
> Fixes: 507cf5a2f1e2 ("platform/surface: aggregator: move to use request_irq by IRQF_NO_AUTOEN flag")
> Signed-off-by: Maximilian Luz <[email protected]>
Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans
I will also include this in the next pdx86-fixes pull-req for 5.13.
Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.
Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.
Regards,
Hans
> ---
> drivers/platform/surface/aggregator/controller.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
> index 69e86cd599d3..8a70df60142c 100644
> --- a/drivers/platform/surface/aggregator/controller.c
> +++ b/drivers/platform/surface/aggregator/controller.c
> @@ -2483,8 +2483,7 @@ int ssam_irq_setup(struct ssam_controller *ctrl)
> * interrupt, and let the SAM resume callback during the controller
> * resume process clear it.
> */
> - const int irqf = IRQF_SHARED | IRQF_ONESHOT |
> - IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN;
> + const int irqf = IRQF_ONESHOT | IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN;
>
> gpiod = gpiod_get(dev, "ssam_wakeup-int", GPIOD_ASIS);
> if (IS_ERR(gpiod))
>