| From 45c590f64dd79e8e1704d5c94ce3456a5cdbfa5f Mon Sep 17 00:00:00 2001 |
| From: Alec Leamas <leamas.alec@gmail.com> |
| Date: Fri, 19 Aug 2016 04:48:02 +0200 |
| Subject: [PATCH] lircd: Remove use of functions killed in kernel 4.8.0 |
| |
| From 4.8.0 the kernel no longer supports LIRC_NOTIFY_DECODE, |
| LIRC_SETUP_START/LIRC_SETUP_END and several constants related |
| to initiating filters. Remove corresponding calls from lircd. |
| |
| [baruch: move DRVCTL_NOTIFY_DECODE into lircd.cpp] |
| Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
| --- |
| Patch status: backported from upstream 31fcc8aa39f62c5c |
| --- |
| daemons/lircd.cpp | 53 ++++------------------------------------------------- |
| 1 file changed, 4 insertions(+), 49 deletions(-) |
| |
| diff --git a/daemons/lircd.cpp b/daemons/lircd.cpp |
| index 782b6d3f8342..d778aa19308b 100644 |
| --- a/daemons/lircd.cpp |
| +++ b/daemons/lircd.cpp |
| @@ -78,6 +78,8 @@ |
| #define lirc_gid gid_t |
| #endif |
| |
| +#define DRVCTL_NOTIFY_DECODE 7 |
| + |
| #ifdef DARWIN |
| #include <mach/mach_time.h> |
| #define CLOCK_REALTIME 0 |
| @@ -462,50 +464,6 @@ static int setup_timeout(void) |
| } |
| |
| |
| -static int setup_filter(void) |
| -{ |
| - int ret1, ret2; |
| - lirc_t min_pulse_supported = 0, max_pulse_supported = 0; |
| - lirc_t min_space_supported = 0, max_space_supported = 0; |
| - |
| - if (!(curr_driver->features & LIRC_CAN_SET_REC_FILTER)) |
| - return 1; |
| - if (curr_driver->drvctl_func(LIRC_GET_MIN_FILTER_PULSE, |
| - &min_pulse_supported) == -1 || |
| - curr_driver->drvctl_func(LIRC_GET_MAX_FILTER_PULSE, &max_pulse_supported) == -1 |
| - || curr_driver->drvctl_func(LIRC_GET_MIN_FILTER_SPACE, &min_space_supported) == -1 |
| - || curr_driver->drvctl_func(LIRC_GET_MAX_FILTER_SPACE, &max_space_supported) == -1) { |
| - log_error("could not get filter range"); |
| - log_perror_err(__func__); |
| - } |
| - |
| - if (setup_min_pulse > max_pulse_supported) |
| - setup_min_pulse = max_pulse_supported; |
| - else if (setup_min_pulse < min_pulse_supported) |
| - setup_min_pulse = 0; /* disable filtering */ |
| - |
| - if (setup_min_space > max_space_supported) |
| - setup_min_space = max_space_supported; |
| - else if (setup_min_space < min_space_supported) |
| - setup_min_space = 0; /* disable filtering */ |
| - |
| - ret1 = curr_driver->drvctl_func(LIRC_SET_REC_FILTER_PULSE, &setup_min_pulse); |
| - ret2 = curr_driver->drvctl_func(LIRC_SET_REC_FILTER_SPACE, &setup_min_space); |
| - if (ret1 == -1 || ret2 == -1) { |
| - if (curr_driver-> |
| - drvctl_func(LIRC_SET_REC_FILTER, |
| - setup_min_pulse < setup_min_space ? &setup_min_pulse : &setup_min_space) == -1) { |
| - log_error("could not set filter"); |
| - log_perror_err(__func__); |
| - return 0; |
| - } |
| - } |
| - return 1; |
| -} |
| - |
| - |
| - |
| - |
| static int setup_hardware(void) |
| { |
| int ret = 1; |
| @@ -514,10 +472,7 @@ static int setup_hardware(void) |
| if ((curr_driver->features & LIRC_CAN_SET_REC_CARRIER) |
| || (curr_driver->features & LIRC_CAN_SET_REC_TIMEOUT) |
| || (curr_driver->features & LIRC_CAN_SET_REC_FILTER)) { |
| - (void)curr_driver->drvctl_func(LIRC_SETUP_START, NULL); |
| - ret = setup_frequency() && setup_timeout() |
| - && setup_filter(); |
| - (void)curr_driver->drvctl_func(LIRC_SETUP_END, NULL); |
| + ret = setup_frequency() && setup_timeout(); |
| } |
| } |
| return ret; |
| @@ -2162,7 +2117,7 @@ void loop(void) |
| int reps; |
| |
| if (curr_driver->drvctl_func && (curr_driver->features & LIRC_CAN_NOTIFY_DECODE)) |
| - curr_driver->drvctl_func(LIRC_NOTIFY_DECODE, NULL); |
| + curr_driver->drvctl_func(DRVCTL_NOTIFY_DECODE, NULL); |
| |
| get_release_data(&remote_name, &button_name, &reps); |
| |
| -- |
| 2.9.3 |
| |