]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: rc: gpio-ir-recv: Fix support for wake-up
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 24 Mar 2023 20:38:33 +0000 (13:38 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:11:06 +0000 (23:11 +0900)
[ Upstream commit 9c592f8ab114875fdb3b2040f01818e53de44991 ]

The driver was intended from the start to be a wake-up source for the
system, however due to the absence of a suitable call to
device_set_wakeup_capable(), the device_may_wakeup() call used to decide
whether to enable the GPIO interrupt as a wake-up source would never
happen. Lookup the DT standard "wakeup-source" property and call
device_init_wakeup() to ensure the device is flagged as being wakeup
capable.

Reported-by: Matthew Lear <matthew.lear@broadcom.com>
Fixes: fd0f6851eb46 ("[media] rc: Add support for GPIO based IR Receiver driver")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/rc/gpio-ir-recv.c

index 8dbe780dae4e78f852322512bcb0b42c143a1439..41ef8cdba28c42999e2e5ad41f8f06a492077dbc 100644 (file)
@@ -103,6 +103,8 @@ static int gpio_ir_recv_probe(struct platform_device *pdev)
                rcdev->map_name = RC_MAP_EMPTY;
 
        gpio_dev->rcdev = rcdev;
+       if (of_property_read_bool(np, "wakeup-source"))
+               device_init_wakeup(dev, true);
 
        rc = devm_rc_register_device(dev, rcdev);
        if (rc < 0) {