Re: [PATCH 1/2] can: drop led trigger support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Uwe,

I think that we shouldn't apply this patch alone,
but it should be immediately followed by the one
employing yet to be implemented tty trigger.

In this way we're removing the functionality, without
providing the substitute.

Best regards,
Jacek Anaszewski

On 05/21/2018 09:15 PM, Jacek Anaszewski wrote:
Hi All,

Adding CAN maintainers - I need an ack for this patch
to go via LED tree.

Best regards,
Jacek Anaszewski

On 05/18/2018 10:53 AM, Uwe Kleine-König wrote:
The netdev trigger is suitable to do everything that the can trigger can
do. So drop the latter.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
---
Note I don't have a setup where I could test my claim, so confirmation
by someone who can would be awesome.

  drivers/net/can/Kconfig               |  11 --
  drivers/net/can/Makefile              |   2 -
  drivers/net/can/at91_can.c            |  10 --
  drivers/net/can/c_can/c_can.c         |  11 --
  drivers/net/can/dev.c                 |   5 -
  drivers/net/can/flexcan.c             |   8 --
  drivers/net/can/ifi_canfd/ifi_canfd.c |   9 --
  drivers/net/can/led.c                 | 143 --------------------------
  drivers/net/can/m_can/m_can.c         |   9 --
  drivers/net/can/rcar/rcar_can.c       |   8 --
  drivers/net/can/rcar/rcar_canfd.c     |   7 --
  drivers/net/can/rx-offload.c          |   2 -
  drivers/net/can/sja1000/sja1000.c     |  15 +--
  drivers/net/can/spi/hi311x.c          |   8 --
  drivers/net/can/spi/mcp251x.c         |  10 --
  drivers/net/can/sun4i_can.c           |   7 --
  drivers/net/can/ti_hecc.c             |   9 --
  drivers/net/can/usb/mcba_usb.c        |   7 --
  drivers/net/can/usb/usb_8dev.c        |  11 --
  drivers/net/can/xilinx_can.c          |   9 --
  include/linux/can/dev.h               |  10 --
  include/linux/can/led.h               |  54 ----------
  22 files changed, 1 insertion(+), 364 deletions(-)
  delete mode 100644 drivers/net/can/led.c
  delete mode 100644 include/linux/can/led.h

diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
index 2cb75988b328..fec311ffdbc2 100644
--- a/drivers/net/can/Kconfig
+++ b/drivers/net/can/Kconfig
@@ -70,17 +70,6 @@ config CAN_CALC_BITTIMING
        arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw".
        If unsure, say Y.
-config CAN_LEDS
-    bool "Enable LED triggers for Netlink based drivers"
-    depends on LEDS_CLASS
-    select LEDS_TRIGGERS
-    ---help---
-      This option adds two LED triggers for packet receive and transmit
-      events on each supported CAN device.
-
-      Say Y here if you are working on a system with led-class supported
-      LEDs and you want to use them as canbus activity indicators.
-
  config CAN_AT91
      tristate "Atmel AT91 onchip CAN controller"
      depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM
diff --git a/drivers/net/can/Makefile b/drivers/net/can/Makefile
index 44922bf29b6a..f0545b53230c 100644
--- a/drivers/net/can/Makefile
+++ b/drivers/net/can/Makefile
@@ -11,8 +11,6 @@ obj-$(CONFIG_CAN_DEV)        += can-dev.o
  can-dev-y            += dev.o
  can-dev-y            += rx-offload.o
-can-dev-$(CONFIG_CAN_LEDS)    += led.o
-
  obj-y                += rcar/
  obj-y                += spi/
  obj-y                += usb/
diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
index d98c69045b17..42fb36686fb3 100644
--- a/drivers/net/can/at91_can.c
+++ b/drivers/net/can/at91_can.c
@@ -27,7 +27,6 @@
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #define AT91_MB_MASK(i)        ((1 << (i)) - 1)
@@ -625,8 +624,6 @@ static void at91_read_msg(struct net_device *dev, unsigned int mb)
      stats->rx_packets++;
      stats->rx_bytes += cf->can_dlc;
      netif_receive_skb(skb);
-
-    can_led_event(dev, CAN_LED_EVENT_RX);
  }
  /**
@@ -862,7 +859,6 @@ static void at91_irq_tx(struct net_device *dev, u32 reg_sr)
              /* _NOTE_: subtract AT91_MB_TX_FIRST offset from mb! */
              can_get_echo_skb(dev, mb - get_mb_tx_first(priv));
              dev->stats.tx_packets++;
-            can_led_event(dev, CAN_LED_EVENT_TX);
          }
      }
@@ -1118,8 +1114,6 @@ static int at91_open(struct net_device *dev)
          goto out_close;
      }
-    can_led_event(dev, CAN_LED_EVENT_OPEN);
-
      /* start chip and queuing */
      at91_chip_start(dev);
      napi_enable(&priv->napi);
@@ -1151,8 +1145,6 @@ static int at91_close(struct net_device *dev)
      close_candev(dev);
-    can_led_event(dev, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -1348,8 +1340,6 @@ static int at91_can_probe(struct platform_device *pdev)
          goto exit_free;
      }
-    devm_can_led_init(dev);
-
      dev_info(&pdev->dev, "device registered (reg_base=%p, irq=%d)\n",
           priv->reg_base, dev->irq);
diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
index 606b7d8ffe13..f1d5a9d76df5 100644
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -40,7 +40,6 @@
  #include <linux/can.h>
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include "c_can.h"
@@ -727,7 +726,6 @@ static void c_can_do_tx(struct net_device *dev)
      if (pkts) {
          stats->tx_bytes += bytes;
          stats->tx_packets += pkts;
-        can_led_event(dev, CAN_LED_EVENT_TX);
      }
  }
@@ -868,9 +866,6 @@ static int c_can_do_rx_poll(struct net_device *dev, int quota)
          quota -= n;
      }
-    if (pkts)
-        can_led_event(dev, CAN_LED_EVENT_RX);
-
      return pkts;
  }
@@ -1122,8 +1117,6 @@ static int c_can_open(struct net_device *dev)
      if (err)
          goto exit_start_fail;
-    can_led_event(dev, CAN_LED_EVENT_OPEN);
-
      napi_enable(&priv->napi);
      /* enable status change, error and module interrupts */
      c_can_irq_control(priv, true);
@@ -1154,8 +1147,6 @@ static int c_can_close(struct net_device *dev)
      c_can_reset_ram(priv, false);
      c_can_pm_runtime_put_sync(priv);
-    can_led_event(dev, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -1295,8 +1286,6 @@ int register_c_can_dev(struct net_device *dev)
      err = register_candev(dev);
      if (err)
          c_can_pm_runtime_disable(priv);
-    else
-        devm_can_led_init(dev);
      return err;
  }
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index 3c71f1cb205f..b46baae05e5d 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -26,7 +26,6 @@
  #include <linux/can/dev.h>
  #include <linux/can/skb.h>
  #include <linux/can/netlink.h>
-#include <linux/can/led.h>
  #include <linux/of.h>
  #include <net/rtnetlink.h>
@@ -1269,8 +1268,6 @@ static __init int can_dev_init(void)
  {
      int err;
-    can_led_notifier_init();
-
      err = rtnl_link_register(&can_link_ops);
      if (!err)
          printk(KERN_INFO MOD_DESC "\n");
@@ -1282,8 +1279,6 @@ module_init(can_dev_init);
  static __exit void can_dev_exit(void)
  {
      rtnl_link_unregister(&can_link_ops);
-
-    can_led_notifier_exit();
  }
  module_exit(can_dev_exit);
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index d53a45bf2a72..6531ba99439f 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -24,7 +24,6 @@
  #include <linux/can.h>
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include <linux/can/rx-offload.h>
  #include <linux/clk.h>
  #include <linux/delay.h>
@@ -795,7 +794,6 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
          handled = IRQ_HANDLED;
          stats->tx_bytes += can_get_echo_skb(dev, 0);
          stats->tx_packets++;
-        can_led_event(dev, CAN_LED_EVENT_TX);
          /* after sending a RTR frame MB is in RX mode */
          priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
@@ -1128,8 +1126,6 @@ static int flexcan_open(struct net_device *dev)
      if (err)
          goto out_free_irq;
-    can_led_event(dev, CAN_LED_EVENT_OPEN);
-
      can_rx_offload_enable(&priv->offload);
      netif_start_queue(dev);
@@ -1161,8 +1157,6 @@ static int flexcan_close(struct net_device *dev)
      close_candev(dev);
-    can_led_event(dev, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -1405,8 +1399,6 @@ static int flexcan_probe(struct platform_device *pdev)
          goto failed_register;
      }
-    devm_can_led_init(dev);
-
      dev_info(&pdev->dev, "device registered (reg_base=%p, irq=%d)\n",
           priv->regs, dev->irq);
diff --git a/drivers/net/can/ifi_canfd/ifi_canfd.c b/drivers/net/can/ifi_canfd/ifi_canfd.c
index fedd927ba6ed..9bdd24035b78 100644
--- a/drivers/net/can/ifi_canfd/ifi_canfd.c
+++ b/drivers/net/can/ifi_canfd/ifi_canfd.c
@@ -345,9 +345,6 @@ static int ifi_canfd_do_rx_poll(struct net_device *ndev, int quota)
          rxst = readl(priv->base + IFI_CANFD_RXSTCMD);
      }
-    if (pkts)
-        can_led_event(ndev, CAN_LED_EVENT_RX);
-
      return pkts;
  }
@@ -631,7 +628,6 @@ static irqreturn_t ifi_canfd_isr(int irq, void *dev_id)
      if (isr & IFI_CANFD_INTERRUPT_TXFIFO_REMOVE) {
          stats->tx_bytes += can_get_echo_skb(ndev, 0);
          stats->tx_packets++;
-        can_led_event(ndev, CAN_LED_EVENT_TX);
      }
      if (isr & tx_irq_mask)
@@ -835,7 +831,6 @@ static int ifi_canfd_open(struct net_device *ndev)
      ifi_canfd_start(ndev);
-    can_led_event(ndev, CAN_LED_EVENT_OPEN);
      napi_enable(&priv->napi);
      netif_start_queue(ndev);
@@ -858,8 +853,6 @@ static int ifi_canfd_close(struct net_device *ndev)
      close_candev(ndev);
-    can_led_event(ndev, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -1008,8 +1001,6 @@ static int ifi_canfd_plat_probe(struct platform_device *pdev)
          goto err_reg;
      }
-    devm_can_led_init(ndev);
-
      dev_info(dev, "Driver registered: regs=%p, irq=%d, clock=%d\n",
           priv->base, ndev->irq, priv->can.clock.freq);
diff --git a/drivers/net/can/led.c b/drivers/net/can/led.c
deleted file mode 100644
index c1b667675fa1..000000000000
--- a/drivers/net/can/led.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 2012, Fabio Baltieri <fabio.baltieri@xxxxxxxxx>
- * Copyright 2012, Kurt Van Dijck <kurt.van.dijck@xxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/netdevice.h>
-#include <linux/can/dev.h>
-
-#include <linux/can/led.h>
-
-static unsigned long led_delay = 50;
-module_param(led_delay, ulong, 0644);
-MODULE_PARM_DESC(led_delay,
-        "blink delay time for activity leds (msecs, default: 50).");
-
-/* Trigger a LED event in response to a CAN device event */
-void can_led_event(struct net_device *netdev, enum can_led_event event)
-{
-    struct can_priv *priv = netdev_priv(netdev);
-
-    switch (event) {
-    case CAN_LED_EVENT_OPEN:
-        led_trigger_event(priv->tx_led_trig, LED_FULL);
-        led_trigger_event(priv->rx_led_trig, LED_FULL);
-        led_trigger_event(priv->rxtx_led_trig, LED_FULL);
-        break;
-    case CAN_LED_EVENT_STOP:
-        led_trigger_event(priv->tx_led_trig, LED_OFF);
-        led_trigger_event(priv->rx_led_trig, LED_OFF);
-        led_trigger_event(priv->rxtx_led_trig, LED_OFF);
-        break;
-    case CAN_LED_EVENT_TX:
-        if (led_delay) {
-            led_trigger_blink_oneshot(priv->tx_led_trig,
-                          &led_delay, &led_delay, 1);
-            led_trigger_blink_oneshot(priv->rxtx_led_trig,
-                          &led_delay, &led_delay, 1);
-        }
-        break;
-    case CAN_LED_EVENT_RX:
-        if (led_delay) {
-            led_trigger_blink_oneshot(priv->rx_led_trig,
-                          &led_delay, &led_delay, 1);
-            led_trigger_blink_oneshot(priv->rxtx_led_trig,
-                          &led_delay, &led_delay, 1);
-        }
-        break;
-    }
-}
-EXPORT_SYMBOL_GPL(can_led_event);
-
-static void can_led_release(struct device *gendev, void *res)
-{
-    struct can_priv *priv = netdev_priv(to_net_dev(gendev));
-
-    led_trigger_unregister_simple(priv->tx_led_trig);
-    led_trigger_unregister_simple(priv->rx_led_trig);
-    led_trigger_unregister_simple(priv->rxtx_led_trig);
-}
-
-/* Register CAN LED triggers for a CAN device
- *
- * This is normally called from a driver's probe function
- */
-void devm_can_led_init(struct net_device *netdev)
-{
-    struct can_priv *priv = netdev_priv(netdev);
-    void *res;
-
-    res = devres_alloc(can_led_release, 0, GFP_KERNEL);
-    if (!res) {
-        netdev_err(netdev, "cannot register LED triggers\n");
-        return;
-    }
-
-    snprintf(priv->tx_led_trig_name, sizeof(priv->tx_led_trig_name),
-         "%s-tx", netdev->name);
-    snprintf(priv->rx_led_trig_name, sizeof(priv->rx_led_trig_name),
-         "%s-rx", netdev->name);
-    snprintf(priv->rxtx_led_trig_name, sizeof(priv->rxtx_led_trig_name),
-         "%s-rxtx", netdev->name);
-
-    led_trigger_register_simple(priv->tx_led_trig_name,
-                    &priv->tx_led_trig);
-    led_trigger_register_simple(priv->rx_led_trig_name,
-                    &priv->rx_led_trig);
-    led_trigger_register_simple(priv->rxtx_led_trig_name,
-                    &priv->rxtx_led_trig);
-
-    devres_add(&netdev->dev, res);
-}
-EXPORT_SYMBOL_GPL(devm_can_led_init);
-
-/* NETDEV rename notifier to rename the associated led triggers too */
-static int can_led_notifier(struct notifier_block *nb, unsigned long msg,
-                void *ptr)
-{
-    struct net_device *netdev = netdev_notifier_info_to_dev(ptr);
-    struct can_priv *priv = safe_candev_priv(netdev);
-    char name[CAN_LED_NAME_SZ];
-
-    if (!priv)
-        return NOTIFY_DONE;
-
-    if (!priv->tx_led_trig || !priv->rx_led_trig || !priv->rxtx_led_trig)
-        return NOTIFY_DONE;
-
-    if (msg == NETDEV_CHANGENAME) {
-        snprintf(name, sizeof(name), "%s-tx", netdev->name);
-        led_trigger_rename_static(name, priv->tx_led_trig);
-
-        snprintf(name, sizeof(name), "%s-rx", netdev->name);
-        led_trigger_rename_static(name, priv->rx_led_trig);
-
-        snprintf(name, sizeof(name), "%s-rxtx", netdev->name);
-        led_trigger_rename_static(name, priv->rxtx_led_trig);
-    }
-
-    return NOTIFY_DONE;
-}
-
-/* notifier block for netdevice event */
-static struct notifier_block can_netdev_notifier __read_mostly = {
-    .notifier_call = can_led_notifier,
-};
-
-int __init can_led_notifier_init(void)
-{
-    return register_netdevice_notifier(&can_netdev_notifier);
-}
-
-void __exit can_led_notifier_exit(void)
-{
-    unregister_netdevice_notifier(&can_netdev_notifier);
-}
diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
index b397a33f3d32..11f54fb7f114 100644
--- a/drivers/net/can/m_can/m_can.c
+++ b/drivers/net/can/m_can/m_can.c
@@ -530,9 +530,6 @@ static int m_can_do_rx_poll(struct net_device *dev, int quota)
          rxfs = m_can_read(priv, M_CAN_RXF0S);
      }
-    if (pkts)
-        can_led_event(dev, CAN_LED_EVENT_RX);
-
      return pkts;
  }
@@ -908,14 +905,12 @@ static irqreturn_t m_can_isr(int irq, void *dev_id)
              /* Transmission Complete Interrupt*/
              stats->tx_bytes += can_get_echo_skb(dev, 0);
              stats->tx_packets++;
-            can_led_event(dev, CAN_LED_EVENT_TX);
              netif_wake_queue(dev);
          }
      } else  {
          if (ir & IR_TEFN) {
              /* New TX FIFO Element arrived */
              m_can_echo_tx_event(dev);
-            can_led_event(dev, CAN_LED_EVENT_TX);
              if (netif_queue_stopped(dev) &&
                  !m_can_tx_fifo_full(priv))
                  netif_wake_queue(dev);
@@ -1329,7 +1324,6 @@ static int m_can_open(struct net_device *dev)
      /* start the m_can controller */
      m_can_start(dev);
-    can_led_event(dev, CAN_LED_EVENT_OPEN);
      napi_enable(&priv->napi);
      netif_start_queue(dev);
@@ -1363,7 +1357,6 @@ static int m_can_close(struct net_device *dev)
      m_can_clk_stop(priv);
      free_irq(dev->irq, dev);
      close_candev(dev);
-    can_led_event(dev, CAN_LED_EVENT_STOP);
      return 0;
  }
@@ -1666,8 +1659,6 @@ static int m_can_plat_probe(struct platform_device *pdev)
          goto clk_disable;
      }
-    devm_can_led_init(dev);
-
      of_can_transceiver(dev);
      dev_info(&pdev->dev, "%s device registered (irq=%d, version=%d)\n",
diff --git a/drivers/net/can/rcar/rcar_can.c b/drivers/net/can/rcar/rcar_can.c
index 11662f479e76..1dc3ad3ad173 100644
--- a/drivers/net/can/rcar/rcar_can.c
+++ b/drivers/net/can/rcar/rcar_can.c
@@ -16,7 +16,6 @@
  #include <linux/errno.h>
  #include <linux/netdevice.h>
  #include <linux/platform_device.h>
-#include <linux/can/led.h>
  #include <linux/can/dev.h>
  #include <linux/clk.h>
  #include <linux/can/platform/rcar_can.h>
@@ -388,7 +387,6 @@ static void rcar_can_tx_done(struct net_device *ndev)
      /* Clear interrupt */
      isr = readb(&priv->regs->isr);
      writeb(isr & ~RCAR_CAN_ISR_TXFF, &priv->regs->isr);
-    can_led_event(ndev, CAN_LED_EVENT_TX);
  }
  static irqreturn_t rcar_can_interrupt(int irq, void *dev_id)
@@ -530,7 +528,6 @@ static int rcar_can_open(struct net_device *ndev)
                 ndev->irq, err);
          goto out_close;
      }
-    can_led_event(ndev, CAN_LED_EVENT_OPEN);
      rcar_can_start(ndev);
      netif_start_queue(ndev);
      return 0;
@@ -580,7 +577,6 @@ static int rcar_can_close(struct net_device *ndev)
      clk_disable_unprepare(priv->can_clk);
      clk_disable_unprepare(priv->clk);
      close_candev(ndev);
-    can_led_event(ndev, CAN_LED_EVENT_STOP);
      return 0;
  }
@@ -663,8 +659,6 @@ static void rcar_can_rx_pkt(struct rcar_can_priv *priv)
              readb(&priv->regs->mb[RCAR_CAN_RX_FIFO_MBX].data[dlc]);
      }
-    can_led_event(priv->ndev, CAN_LED_EVENT_RX);
-
      stats->rx_bytes += cf->can_dlc;
      stats->rx_packets++;
      netif_receive_skb(skb);
@@ -824,8 +818,6 @@ static int rcar_can_probe(struct platform_device *pdev)
          goto fail_candev;
      }
-    devm_can_led_init(ndev);
-
      dev_info(&pdev->dev, "device registered (IRQ%d)\n", ndev->irq);
      return 0;
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index 602c19e23f05..45e3b79d6ad1 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -33,7 +33,6 @@
  #include <linux/errno.h>
  #include <linux/netdevice.h>
  #include <linux/platform_device.h>
-#include <linux/can/led.h>
  #include <linux/can/dev.h>
  #include <linux/clk.h>
  #include <linux/of.h>
@@ -1071,7 +1070,6 @@ static void rcar_canfd_tx_done(struct net_device *ndev)
      /* Clear interrupt */
      rcar_canfd_write(priv->base, RCANFD_CFSTS(ch, RCANFD_CFFIFO_IDX),
               sts & ~RCANFD_CFSTS_CFTXIF);
-    can_led_event(ndev, CAN_LED_EVENT_TX);
  }
  static irqreturn_t rcar_canfd_global_interrupt(int irq, void *dev_id)
@@ -1286,7 +1284,6 @@ static int rcar_canfd_open(struct net_device *ndev)
      if (err)
          goto out_close;
      netif_start_queue(ndev);
-    can_led_event(ndev, CAN_LED_EVENT_OPEN);
      return 0;
  out_close:
      napi_disable(&priv->napi);
@@ -1335,7 +1332,6 @@ static int rcar_canfd_close(struct net_device *ndev)
      napi_disable(&priv->napi);
      clk_disable_unprepare(gpriv->can_clk);
      close_candev(ndev);
-    can_led_event(ndev, CAN_LED_EVENT_STOP);
      return 0;
  }
@@ -1480,8 +1476,6 @@ static void rcar_canfd_rx_pkt(struct rcar_canfd_channel *priv)
       */
      rcar_canfd_write(priv->base, RCANFD_RFPCTR(ridx), 0xff);
-    can_led_event(priv->ndev, CAN_LED_EVENT_RX);
-
      stats->rx_bytes += cf->len;
      stats->rx_packets++;
      netif_receive_skb(skb);
@@ -1608,7 +1602,6 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
          goto fail_candev;
      }
      spin_lock_init(&priv->tx_lock);
-    devm_can_led_init(ndev);
      gpriv->ch[priv->channel] = priv;
      dev_info(&pdev->dev, "device registered (channel %u)\n", priv->channel);
      return 0;
diff --git a/drivers/net/can/rx-offload.c b/drivers/net/can/rx-offload.c
index d94dae216820..f266b1168214 100644
--- a/drivers/net/can/rx-offload.c
+++ b/drivers/net/can/rx-offload.c
@@ -71,8 +71,6 @@ static int can_rx_offload_napi_poll(struct napi_struct *napi, int quota)
              napi_reschedule(&offload->napi);
      }
-    can_led_event(offload->dev, CAN_LED_EVENT_RX);
-
      return work_done;
  }
diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
index 9f107798f904..b8430b6fc17d 100644
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -60,7 +60,6 @@
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include "sja1000.h"
@@ -383,8 +382,6 @@ static void sja1000_rx(struct net_device *dev)
      stats->rx_packets++;
      stats->rx_bytes += cf->can_dlc;
      netif_rx(skb);
-
-    can_led_event(dev, CAN_LED_EVENT_RX);
  }
  static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)
@@ -536,7 +533,6 @@ irqreturn_t sja1000_interrupt(int irq, void *dev_id)
                  can_get_echo_skb(dev, 0);
              }
              netif_wake_queue(dev);
-            can_led_event(dev, CAN_LED_EVENT_TX);
          }
          if (isrc & IRQ_RI) {
              /* receive interrupt */
@@ -592,8 +588,6 @@ static int sja1000_open(struct net_device *dev)
      /* init and start chi */
      sja1000_start(dev);
-    can_led_event(dev, CAN_LED_EVENT_OPEN);
-
      netif_start_queue(dev);
      return 0;
@@ -611,8 +605,6 @@ static int sja1000_close(struct net_device *dev)
      close_candev(dev);
-    can_led_event(dev, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -675,12 +667,7 @@ int register_sja1000dev(struct net_device *dev)
      set_reset_mode(dev);
      chipset_init(dev);
-    ret =  register_candev(dev);
-
-    if (!ret)
-        devm_can_led_init(dev);
-
-    return ret;
+    return register_candev(dev);
  }
  EXPORT_SYMBOL_GPL(register_sja1000dev);
diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
index 53e320c92a8b..2be0e6092250 100644
--- a/drivers/net/can/spi/hi311x.c
+++ b/drivers/net/can/spi/hi311x.c
@@ -19,7 +19,6 @@
  #include <linux/can/core.h>
  #include <linux/can/dev.h>
-#include <linux/can/led.h>
  #include <linux/clk.h>
  #include <linux/completion.h>
  #include <linux/delay.h>
@@ -370,8 +369,6 @@ static void hi3110_hw_rx(struct spi_device *spi)
      priv->net->stats.rx_packets++;
      priv->net->stats.rx_bytes += frame->can_dlc;
-    can_led_event(priv->net, CAN_LED_EVENT_RX);
-
      netif_rx_ni(skb);
  }
@@ -583,8 +580,6 @@ static int hi3110_stop(struct net_device *net)
      mutex_unlock(&priv->hi3110_lock);
-    can_led_event(net, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -741,7 +736,6 @@ static irqreturn_t hi3110_can_ist(int irq, void *dev_id)
          if (priv->tx_len && statf & HI3110_STAT_TXMTY) {
              net->stats.tx_packets++;
              net->stats.tx_bytes += priv->tx_len - 1;
-            can_led_event(net, CAN_LED_EVENT_TX);
              if (priv->tx_len) {
                  can_get_echo_skb(net, 0);
                  priv->tx_len = 0;
@@ -802,7 +796,6 @@ static int hi3110_open(struct net_device *net)
      if (ret)
          goto out_free_wq;
-    can_led_event(net, CAN_LED_EVENT_OPEN);
      netif_wake_queue(net);
      mutex_unlock(&priv->hi3110_lock);
@@ -972,7 +965,6 @@ static int hi3110_can_probe(struct spi_device *spi)
      if (ret)
          goto error_probe;
-    devm_can_led_init(net);
      netdev_info(net, "%x successfully initialized.\n", priv->model);
      return 0;
diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
index e90817608645..d12be2c2ea0c 100644
--- a/drivers/net/can/spi/mcp251x.c
+++ b/drivers/net/can/spi/mcp251x.c
@@ -56,7 +56,6 @@
  #include <linux/can/core.h>
  #include <linux/can/dev.h>
-#include <linux/can/led.h>
  #include <linux/can/platform/mcp251x.h>
  #include <linux/clk.h>
  #include <linux/completion.h>
@@ -502,8 +501,6 @@ static void mcp251x_hw_rx(struct spi_device *spi, int buf_idx)
      priv->net->stats.rx_packets++;
      priv->net->stats.rx_bytes += frame->can_dlc;
-    can_led_event(priv->net, CAN_LED_EVENT_RX);
-
      netif_rx_ni(skb);
  }
@@ -718,8 +715,6 @@ static int mcp251x_stop(struct net_device *net)
      mutex_unlock(&priv->mcp_lock);
-    can_led_event(net, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -918,7 +913,6 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id)
          if (intf & CANINTF_TX) {
              net->stats.tx_packets++;
              net->stats.tx_bytes += priv->tx_len - 1;
-            can_led_event(net, CAN_LED_EVENT_TX);
              if (priv->tx_len) {
                  can_get_echo_skb(net, 0);
                  priv->tx_len = 0;
@@ -981,8 +975,6 @@ static int mcp251x_open(struct net_device *net)
          goto open_unlock;
      }
-    can_led_event(net, CAN_LED_EVENT_OPEN);
-
      netif_wake_queue(net);
  open_unlock:
@@ -1156,8 +1148,6 @@ static int mcp251x_can_probe(struct spi_device *spi)
      if (ret)
          goto error_probe;
-    devm_can_led_init(net);
-
      netdev_info(net, "MCP%x successfully initialized.\n", priv->model);
      return 0;
diff --git a/drivers/net/can/sun4i_can.c b/drivers/net/can/sun4i_can.c
index 1ac2090a1721..8da47b99a15c 100644
--- a/drivers/net/can/sun4i_can.c
+++ b/drivers/net/can/sun4i_can.c
@@ -51,7 +51,6 @@
  #include <linux/can.h>
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include <linux/clk.h>
  #include <linux/delay.h>
  #include <linux/interrupt.h>
@@ -503,8 +502,6 @@ static void sun4i_can_rx(struct net_device *dev)
      stats->rx_packets++;
      stats->rx_bytes += cf->can_dlc;
      netif_rx(skb);
-
-    can_led_event(dev, CAN_LED_EVENT_RX);
  }
  static int sun4i_can_err(struct net_device *dev, u8 isrc, u8 status)
@@ -658,7 +655,6 @@ static irqreturn_t sun4i_can_interrupt(int irq, void *dev_id)
              stats->tx_packets++;
              can_get_echo_skb(dev, 0);
              netif_wake_queue(dev);
-            can_led_event(dev, CAN_LED_EVENT_TX);
          }
          if ((isrc & SUN4I_INT_RBUF_VLD) &&
              !(isrc & SUN4I_INT_DATA_OR)) {
@@ -716,7 +712,6 @@ static int sun4ican_open(struct net_device *dev)
          goto exit_can_start;
      }
-    can_led_event(dev, CAN_LED_EVENT_OPEN);
      netif_start_queue(dev);
      return 0;
@@ -740,7 +735,6 @@ static int sun4ican_close(struct net_device *dev)
      free_irq(dev->irq, dev);
      close_candev(dev);
-    can_led_event(dev, CAN_LED_EVENT_STOP);
      return 0;
  }
@@ -833,7 +827,6 @@ static int sun4ican_probe(struct platform_device *pdev)
              DRV_NAME, err);
          goto exit_free;
      }
-    devm_can_led_init(dev);
      dev_info(&pdev->dev, "device registered (base=%p, irq=%d)\n",
           priv->base, dev->irq);
diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c
index db6ea936dc3f..5c3e261cf62a 100644
--- a/drivers/net/can/ti_hecc.c
+++ b/drivers/net/can/ti_hecc.c
@@ -33,7 +33,6 @@
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #define DRV_NAME "ti_hecc"
  #define HECC_MODULE_VERSION     "0.7"
@@ -567,7 +566,6 @@ static int ti_hecc_rx_pkt(struct ti_hecc_priv *priv, int mbxno)
      spin_unlock_irqrestore(&priv->mbx_lock, flags);
      stats->rx_bytes += cf->can_dlc;
-    can_led_event(priv->ndev, CAN_LED_EVENT_RX);
      netif_receive_skb(skb);
      stats->rx_packets++;
@@ -772,7 +770,6 @@ static irqreturn_t ti_hecc_interrupt(int irq, void *dev_id)
              stats->tx_bytes += hecc_read_mbx(priv, mbxno,
                          HECC_CANMCF) & 0xF;
              stats->tx_packets++;
-            can_led_event(ndev, CAN_LED_EVENT_TX);
              can_get_echo_skb(ndev, mbxno);
              --priv->tx_tail;
          }
@@ -828,8 +825,6 @@ static int ti_hecc_open(struct net_device *ndev)
          return err;
      }
-    can_led_event(ndev, CAN_LED_EVENT_OPEN);
-
      ti_hecc_start(ndev);
      napi_enable(&priv->napi);
      netif_start_queue(ndev);
@@ -848,8 +843,6 @@ static int ti_hecc_close(struct net_device *ndev)
      close_candev(ndev);
      ti_hecc_transceiver_switch(priv, 0);
-    can_led_event(ndev, CAN_LED_EVENT_STOP);
-
      return 0;
  }
@@ -977,8 +970,6 @@ static int ti_hecc_probe(struct platform_device *pdev)
          goto probe_exit_clk;
      }
-    devm_can_led_init(ndev);
-
      dev_info(&pdev->dev, "device registered (reg_base=%p, irq=%u)\n",
          priv->base, (u32) ndev->irq);
diff --git a/drivers/net/can/usb/mcba_usb.c b/drivers/net/can/usb/mcba_usb.c
index 8d8c2086424d..5d8a1d66f048 100644
--- a/drivers/net/can/usb/mcba_usb.c
+++ b/drivers/net/can/usb/mcba_usb.c
@@ -21,7 +21,6 @@
  #include <linux/can.h>
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include <linux/module.h>
  #include <linux/netdevice.h>
  #include <linux/signal.h>
@@ -247,7 +246,6 @@ static void mcba_usb_write_bulk_callback(struct urb *urb)
          netdev->stats.tx_packets++;
          netdev->stats.tx_bytes += ctx->dlc;
-        can_led_event(netdev, CAN_LED_EVENT_TX);
          can_get_echo_skb(netdev, ctx->ndx);
      }
@@ -469,7 +467,6 @@ static void mcba_usb_process_can(struct mcba_priv *priv,
      stats->rx_packets++;
      stats->rx_bytes += cf->can_dlc;
-    can_led_event(priv->netdev, CAN_LED_EVENT_RX);
      netif_rx(skb);
  }
@@ -711,7 +708,6 @@ static int mcba_usb_open(struct net_device *netdev)
      priv->can_speed_check = true;
      priv->can.state = CAN_STATE_ERROR_ACTIVE;
-    can_led_event(netdev, CAN_LED_EVENT_OPEN);
      netif_start_queue(netdev);
      return 0;
@@ -736,7 +732,6 @@ static int mcba_usb_close(struct net_device *netdev)
      mcba_urb_unlink(priv);
      close_candev(netdev);
-    can_led_event(netdev, CAN_LED_EVENT_STOP);
      return 0;
  }
@@ -851,8 +846,6 @@ static int mcba_usb_probe(struct usb_interface *intf,
          goto cleanup_free_candev;
      }
-    devm_can_led_init(netdev);
-
      /* Start USB dev only if we have successfully registered CAN device */
      err = mcba_usb_start(priv);
      if (err) {
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
index 27861c417c94..39fe1807e709 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -32,7 +32,6 @@
  #include <linux/can.h>
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  /* driver constants */
  #define MAX_RX_URBS            20
@@ -494,8 +493,6 @@ static void usb_8dev_rx_can_msg(struct usb_8dev_priv *priv,
          stats->rx_packets++;
          stats->rx_bytes += cf->can_dlc;
          netif_rx(skb);
-
-        can_led_event(priv->netdev, CAN_LED_EVENT_RX);
      } else {
          netdev_warn(priv->netdev, "frame type %d unknown",
               msg->type);
@@ -598,8 +595,6 @@ static void usb_8dev_write_bulk_callback(struct urb *urb)
      can_get_echo_skb(netdev, context->echo_index);
-    can_led_event(netdev, CAN_LED_EVENT_TX);
-
      /* Release context */
      context->echo_index = MAX_TX_URBS;
@@ -820,8 +815,6 @@ static int usb_8dev_open(struct net_device *netdev)
      if (err)
          return err;
-    can_led_event(netdev, CAN_LED_EVENT_OPEN);
-
      /* finally start device */
      err = usb_8dev_start(priv);
      if (err) {
@@ -874,8 +867,6 @@ static int usb_8dev_close(struct net_device *netdev)
      close_candev(netdev);
-    can_led_event(netdev, CAN_LED_EVENT_STOP);
-
      return err;
  }
@@ -982,8 +973,6 @@ static int usb_8dev_probe(struct usb_interface *intf,
               (version>>8) & 0xff, version & 0xff);
      }
-    devm_can_led_init(netdev);
-
      return 0;
  cleanup_unregister_candev:
diff --git a/drivers/net/can/xilinx_can.c b/drivers/net/can/xilinx_can.c
index 89aec07c225f..04ed394815bd 100644
--- a/drivers/net/can/xilinx_can.c
+++ b/drivers/net/can/xilinx_can.c
@@ -31,7 +31,6 @@
  #include <linux/types.h>
  #include <linux/can/dev.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include <linux/pm_runtime.h>
  #define DRIVER_NAME    "xilinx_can"
@@ -722,9 +721,6 @@ static int xcan_rx_poll(struct napi_struct *napi, int quota)
          isr = priv->read_reg(priv, XCAN_ISR_OFFSET);
      }
-    if (work_done)
-        can_led_event(ndev, CAN_LED_EVENT_RX);
-
      if (work_done < quota) {
          napi_complete_done(napi, work_done);
          ier = priv->read_reg(priv, XCAN_IER_OFFSET);
@@ -753,7 +749,6 @@ static void xcan_tx_interrupt(struct net_device *ndev, u32 isr)
          stats->tx_packets++;
          isr = priv->read_reg(priv, XCAN_ISR_OFFSET);
      }
-    can_led_event(ndev, CAN_LED_EVENT_TX);
      netif_wake_queue(ndev);
  }
@@ -873,7 +868,6 @@ static int xcan_open(struct net_device *ndev)
          goto err_candev;
      }
-    can_led_event(ndev, CAN_LED_EVENT_OPEN);
      napi_enable(&priv->napi);
      netif_start_queue(ndev);
@@ -905,7 +899,6 @@ static int xcan_close(struct net_device *ndev)
      free_irq(ndev->irq, ndev);
      close_candev(ndev);
-    can_led_event(ndev, CAN_LED_EVENT_STOP);
      pm_runtime_put(priv->dev);
      return 0;
@@ -1168,8 +1161,6 @@ static int xcan_probe(struct platform_device *pdev)
          goto err_disableclks;
      }
-    devm_can_led_init(ndev);
-
      pm_runtime_put(&pdev->dev);
      netdev_dbg(ndev, "reg_base=0x%p irq=%d clock=%d, tx fifo depth:%d\n",
diff --git a/include/linux/can/dev.h b/include/linux/can/dev.h
index 055aaf5ed9af..057c73c72caa 100644
--- a/include/linux/can/dev.h
+++ b/include/linux/can/dev.h
@@ -16,7 +16,6 @@
  #include <linux/can.h>
  #include <linux/can/error.h>
-#include <linux/can/led.h>
  #include <linux/can/netlink.h>
  #include <linux/netdevice.h>
@@ -70,15 +69,6 @@ struct can_priv {
      unsigned int echo_skb_max;
      struct sk_buff **echo_skb;
-
-#ifdef CONFIG_CAN_LEDS
-    struct led_trigger *tx_led_trig;
-    char tx_led_trig_name[CAN_LED_NAME_SZ];
-    struct led_trigger *rx_led_trig;
-    char rx_led_trig_name[CAN_LED_NAME_SZ];
-    struct led_trigger *rxtx_led_trig;
-    char rxtx_led_trig_name[CAN_LED_NAME_SZ];
-#endif
  };
  /*
diff --git a/include/linux/can/led.h b/include/linux/can/led.h
deleted file mode 100644
index 2746f7c2f87d..000000000000
--- a/include/linux/can/led.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2012, Fabio Baltieri <fabio.baltieri@xxxxxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifndef _CAN_LED_H
-#define _CAN_LED_H
-
-#include <linux/if.h>
-#include <linux/leds.h>
-#include <linux/netdevice.h>
-
-enum can_led_event {
-    CAN_LED_EVENT_OPEN,
-    CAN_LED_EVENT_STOP,
-    CAN_LED_EVENT_TX,
-    CAN_LED_EVENT_RX,
-};
-
-#ifdef CONFIG_CAN_LEDS
-
-/* keep space for interface name + "-tx"/"-rx"/"-rxtx"
- * suffix and null terminator
- */
-#define CAN_LED_NAME_SZ (IFNAMSIZ + 6)
-
-void can_led_event(struct net_device *netdev, enum can_led_event event);
-void devm_can_led_init(struct net_device *netdev);
-int __init can_led_notifier_init(void);
-void __exit can_led_notifier_exit(void);
-
-#else
-
-static inline void can_led_event(struct net_device *netdev,
-                 enum can_led_event event)
-{
-}
-static inline void devm_can_led_init(struct net_device *netdev)
-{
-}
-static inline int can_led_notifier_init(void)
-{
-    return 0;
-}
-static inline void can_led_notifier_exit(void)
-{
-}
-
-#endif
-
-#endif /* !_CAN_LED_H */







[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux