[media] media: st-rc: remove misuse of IRQF_NO_SUSPEND flag
The device is set as wakeup capable using proper wakeup API but the driver misuses IRQF_NO_SUSPEND to set the interrupt as wakeup source which is incorrect. This patch removes the use of IRQF_NO_SUSPEND flags replacing it with enable_irq_wake instead. Cc: Srinivas Kandagatla <srinivas.kandagatla@gmail.com> Cc: Maxime Coquelin <maxime.coquelin@st.com> Cc: Patrice Chotard <patrice.chotard@st.com> Cc: linux-arm-kernel@lists.infradead.org Cc: kernel@stlinux.com Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Родитель
203e942d20
Коммит
a2d1e1ed18
|
@ -16,6 +16,7 @@
|
|||
#include <linux/reset.h>
|
||||
#include <media/rc-core.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/pm_wakeirq.h>
|
||||
|
||||
struct st_rc_device {
|
||||
struct device *dev;
|
||||
|
@ -190,6 +191,9 @@ static void st_rc_hardware_init(struct st_rc_device *dev)
|
|||
static int st_rc_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct st_rc_device *rc_dev = platform_get_drvdata(pdev);
|
||||
|
||||
dev_pm_clear_wake_irq(&pdev->dev);
|
||||
device_init_wakeup(&pdev->dev, false);
|
||||
clk_disable_unprepare(rc_dev->sys_clock);
|
||||
rc_unregister_device(rc_dev->rdev);
|
||||
return 0;
|
||||
|
@ -298,22 +302,22 @@ static int st_rc_probe(struct platform_device *pdev)
|
|||
rdev->map_name = RC_MAP_LIRC;
|
||||
rdev->input_name = "ST Remote Control Receiver";
|
||||
|
||||
/* enable wake via this device */
|
||||
device_set_wakeup_capable(dev, true);
|
||||
device_set_wakeup_enable(dev, true);
|
||||
|
||||
ret = rc_register_device(rdev);
|
||||
if (ret < 0)
|
||||
goto clkerr;
|
||||
|
||||
rc_dev->rdev = rdev;
|
||||
if (devm_request_irq(dev, rc_dev->irq, st_rc_rx_interrupt,
|
||||
IRQF_NO_SUSPEND, IR_ST_NAME, rc_dev) < 0) {
|
||||
0, IR_ST_NAME, rc_dev) < 0) {
|
||||
dev_err(dev, "IRQ %d register failed\n", rc_dev->irq);
|
||||
ret = -EINVAL;
|
||||
goto rcerr;
|
||||
}
|
||||
|
||||
/* enable wake via this device */
|
||||
device_init_wakeup(dev, true);
|
||||
dev_pm_set_wake_irq(dev, rc_dev->irq);
|
||||
|
||||
/**
|
||||
* for LIRC_MODE_MODE2 or LIRC_MODE_PULSE or LIRC_MODE_RAW
|
||||
* lircd expects a long space first before a signal train to sync.
|
||||
|
|
Загрузка…
Ссылка в новой задаче