mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
pps-gpio: remove dead capture_clear code
The capture_clear field is never set, and all code conditional on it being set has been unreachable since the platform data logic was removed from pps-gpio inee89646619("pps: clients: gpio: Get rid of legacy platform data"). I think the only logical thing to do here is to remove it all, since no in-tree code ever actually used it in the first place, and it has been completely dead code for over five years (since v5.13). Sashiko asked some questions about the gpiod_get_value() call which caused me to look deeper and figure this out, but it did not actually notice capture_clear is never set. Link: https://lore.kernel.org/f70196bafcf75d9782dd36ed784e42345b6e8a1b.1783355507.git.calvin@wbinvd.org Fixes:ee89646619("pps: clients: gpio: Get rid of legacy platform data") Signed-off-by: Calvin Owens <calvin@wbinvd.org> Closes: https://sashiko.dev/#/patchset/cover.1779733602.git.calvin%40wbinvd.org?part=1 Acked-by: Rodolfo Giometti <giometti@enneenne.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
3649f9a6b8
commit
b899e0279f
|
|
@ -31,7 +31,6 @@ struct pps_gpio_device_data {
|
|||
struct gpio_desc *echo_pin;
|
||||
struct timer_list echo_timer; /* timer to reset echo active state */
|
||||
bool assert_falling_edge;
|
||||
bool capture_clear;
|
||||
unsigned int echo_active_ms; /* PPS echo active duration */
|
||||
unsigned long echo_timeout; /* timer timeout value in jiffies */
|
||||
struct pps_event_time ts; /* timestamp captured in hardirq */
|
||||
|
|
@ -61,19 +60,8 @@ static irqreturn_t pps_gpio_irq_hardirq(int irq, void *data)
|
|||
static irqreturn_t pps_gpio_irq_thread(int irq, void *data)
|
||||
{
|
||||
struct pps_gpio_device_data *info = data;
|
||||
int rising_edge;
|
||||
|
||||
rising_edge = info->capture_clear ?
|
||||
gpiod_get_value(info->gpio_pin) : !info->assert_falling_edge;
|
||||
if ((rising_edge && !info->assert_falling_edge) ||
|
||||
(!rising_edge && info->assert_falling_edge))
|
||||
pps_event(info->pps, &info->ts, PPS_CAPTUREASSERT, data);
|
||||
else if (info->capture_clear &&
|
||||
((rising_edge && info->assert_falling_edge) ||
|
||||
(!rising_edge && !info->assert_falling_edge)))
|
||||
pps_event(info->pps, &info->ts, PPS_CAPTURECLEAR, data);
|
||||
else
|
||||
dev_warn_ratelimited(&info->pps->dev, "IRQ did not trigger any PPS event\n");
|
||||
pps_event(info->pps, &info->ts, PPS_CAPTUREASSERT, data);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
|
@ -89,11 +77,6 @@ static void pps_gpio_echo(struct pps_device *pps, int event, void *data)
|
|||
if (pps->params.mode & PPS_ECHOASSERT)
|
||||
gpiod_set_value(info->echo_pin, 1);
|
||||
break;
|
||||
|
||||
case PPS_CAPTURECLEAR:
|
||||
if (pps->params.mode & PPS_ECHOCLEAR)
|
||||
gpiod_set_value(info->echo_pin, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
/* fire the timer */
|
||||
|
|
@ -155,15 +138,8 @@ static int pps_gpio_setup(struct device *dev)
|
|||
static unsigned long
|
||||
get_irqf_trigger_flags(const struct pps_gpio_device_data *data)
|
||||
{
|
||||
unsigned long flags = data->assert_falling_edge ?
|
||||
IRQF_TRIGGER_FALLING : IRQF_TRIGGER_RISING;
|
||||
|
||||
if (data->capture_clear) {
|
||||
flags |= ((flags & IRQF_TRIGGER_RISING) ?
|
||||
IRQF_TRIGGER_FALLING : IRQF_TRIGGER_RISING);
|
||||
}
|
||||
|
||||
return flags;
|
||||
return data->assert_falling_edge ? IRQF_TRIGGER_FALLING :
|
||||
IRQF_TRIGGER_RISING;
|
||||
}
|
||||
|
||||
static int pps_gpio_probe(struct platform_device *pdev)
|
||||
|
|
@ -196,9 +172,6 @@ static int pps_gpio_probe(struct platform_device *pdev)
|
|||
/* initialize PPS specific parts of the bookkeeping data structure. */
|
||||
data->info.mode = PPS_CAPTUREASSERT | PPS_OFFSETASSERT |
|
||||
PPS_ECHOASSERT | PPS_CANWAIT | PPS_TSFMT_TSPEC;
|
||||
if (data->capture_clear)
|
||||
data->info.mode |= PPS_CAPTURECLEAR | PPS_OFFSETCLEAR |
|
||||
PPS_ECHOCLEAR;
|
||||
data->info.owner = THIS_MODULE;
|
||||
snprintf(data->info.name, PPS_MAX_NAME_LEN - 1, "%s.%d",
|
||||
pdev->name, pdev->id);
|
||||
|
|
@ -210,8 +183,6 @@ static int pps_gpio_probe(struct platform_device *pdev)
|
|||
|
||||
/* register PPS source */
|
||||
pps_default_params = PPS_CAPTUREASSERT | PPS_OFFSETASSERT;
|
||||
if (data->capture_clear)
|
||||
pps_default_params |= PPS_CAPTURECLEAR | PPS_OFFSETCLEAR;
|
||||
data->pps = pps_register_source(&data->info, pps_default_params);
|
||||
if (IS_ERR(data->pps)) {
|
||||
dev_err(dev, "failed to register IRQ %d as PPS source\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user