mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 00:54:09 +08:00
c216369e61
This patch moves the state from each raw decoder into the ir_raw_event_ctrl struct. This allows the removal of code like this: spin_lock(&decoder_lock); list_for_each_entry(data, &decoder_list, list) { if (data->ir_dev == ir_dev) break; } spin_unlock(&decoder_lock); return data; which is currently run for each decoder on each event in order to get the client-specific decoding state data. In addition, ir decoding modules and ir driver module load order is now independent. Centralizing the data also allows for a nice code reduction of about 30% per raw decoder as client lists and client registration callbacks are no longer necessary (but still kept around for the benefit of the lirc decoder). Out-of-tree modules can still use a similar trick to what the raw decoders did before this patch until they are merged. Signed-off-by: David Härdeman <david@hardeman.nu> Acked-by: Jarod Wilson <jarod@redhat.com> Tested-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> |
||
---|---|---|
.. | ||
keymaps | ||
imon.c | ||
ir-core-priv.h | ||
ir-functions.c | ||
ir-jvc-decoder.c | ||
ir-keytable.c | ||
ir-nec-decoder.c | ||
ir-raw-event.c | ||
ir-rc5-decoder.c | ||
ir-rc6-decoder.c | ||
ir-sony-decoder.c | ||
ir-sysfs.c | ||
Kconfig | ||
Makefile | ||
mceusb.c | ||
rc-map.c |