linux/drivers/media/rc
Samuel Holland 8f9061fa77 media: sunxi-cir: Factor out hardware initialization
In preparation for adding suspend/resume hooks, factor out the hardware
initialization from the driver probe/remove functions.

The timeout programmed during init is taken from the `struct rc_dev` so
it is maintained across an exit/init cycle.

This resolves some trivial issues with the probe function: throwing away
the error from clk_prepare_enable and using the wrong type for the
temporary register value.

It also fixes the order of the remove function to unregister the RC
device before turning off the hardware. This prevents userspace from
triggering register writes (via LIRC_SET_REC_TIMEOUT) while the hardware
is disabled.

Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2021-01-27 08:26:49 +01:00
..
img-ir media: Remove dev_err() usage after platform_get_irq() 2019-08-07 17:08:33 -03:00
keymaps media: rc: add keymap for pine64 remote 2020-12-07 13:51:59 +01:00
ati_remote.c media: ati_remote: sanity check for both endpoints 2020-09-27 11:24:07 +02:00
bpf-lirc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ene_ir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ene_ir.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
fintek-cir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
fintek-cir.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
gpio-ir-recv.c media: rc: gpio-ir-recv: add QoS support for cpuidle system 2020-09-27 11:27:23 +02:00
gpio-ir-tx.c media: gpio-ir-tx: spinlock is not needed to disable interrupts 2020-08-28 14:06:36 +02:00
igorplugusb.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
iguanair.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
imon_raw.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
imon.c media: imon: Replace http links with https ones 2020-07-19 14:00:32 +02:00
ir_toy.c media: ir_toy: add another IR Droid device 2021-01-14 13:44:35 +01:00
ir-hix5hd2.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-imon-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-jvc-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-mce_kbd-decoder.c media: rc: rename ir_lirc_* functions to lirc_* 2020-09-03 16:19:27 +02:00
ir-nec-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-rc5-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-rc6-decoder.c Linux 5.9-rc4 2020-09-07 16:13:06 +02:00
ir-rcmm-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-rx51.c media: ir-rx51: Use 64-bit division macro 2020-04-21 12:57:04 +02:00
ir-sanyo-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-sharp-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ir-sony-decoder.c Linux 5.9-rc4 2020-09-07 16:13:06 +02:00
ir-spi.c media: spi: IR LED: add missing of table registration 2019-05-22 15:27:37 -04:00
ir-xmp-decoder.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ite-cir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
ite-cir.h media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
Kconfig media: rc: add support for Infrared Toy and IR Droid devices 2020-06-23 15:07:21 +02:00
lirc_dev.c media: rc: validate that "rc_proto" is reasonable 2020-11-17 06:57:10 +01:00
Makefile media: rc: add support for Infrared Toy and IR Droid devices 2020-06-23 15:07:21 +02:00
mceusb.c media: mceusb: Fix potential out-of-bounds shift 2021-01-14 13:45:38 +01:00
meson-ir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
mtk-cir.c media: mtk-cir: fix calculation of chk period 2020-12-01 16:00:51 +01:00
nuvoton-cir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
nuvoton-cir.h media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
pwm-ir-tx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 122 2019-05-24 17:39:03 +02:00
rc-core-priv.h media: rc: rename ir_lirc_* functions to lirc_* 2020-09-03 16:19:27 +02:00
rc-ir-raw.c media: rc: rename ir_lirc_* functions to lirc_* 2020-09-03 16:19:27 +02:00
rc-loopback.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
rc-main.c Linux 5.9-rc4 2020-09-07 16:13:06 +02:00
redrat3.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
serial_ir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
sir_ir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
st_rc.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
streamzap.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
sunxi-cir.c media: sunxi-cir: Factor out hardware initialization 2021-01-27 08:26:49 +01:00
tango-ir.c media: rc: Use devm_platform_ioremap_resource() in tango_ir_probe() 2019-10-07 07:44:56 -03:00
ttusbir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
winbond-cir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
xbox_remote.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
zx-irdec.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00