From c3b2ae5f10f771ce22ec66e09ea05cdb9ee10ff2 Mon Sep 17 00:00:00 2001 From: Elaine Zhang Date: Tue, 23 Jan 2024 17:50:42 +0800 Subject: [PATCH] net: can: rockchip: Fixed compilation errors caused by kernel update drivers/net/can/rockchip/rockchip_canfd:24:24: fatal error: linux/can/led.h: No such file or directory Signed-off-by: Elaine Zhang Change-Id: I275af809bc9287ba2b5855164166aebcb348e259 --- drivers/net/can/rockchip/rockchip_can.c | 18 +++--------- drivers/net/can/rockchip/rockchip_canfd.c | 36 +++++++---------------- 2 files changed, 14 insertions(+), 40 deletions(-) diff --git a/drivers/net/can/rockchip/rockchip_can.c b/drivers/net/can/rockchip/rockchip_can.c index 29b5fbedf994..50f556095ac1 100644 --- a/drivers/net/can/rockchip/rockchip_can.c +++ b/drivers/net/can/rockchip/rockchip_can.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -309,7 +308,7 @@ static int rockchip_can_start_xmit(struct sk_buff *skb, struct net_device *ndev) } writel(fi, rcan->base + CAN_TX_FRM_INFO); - can_put_echo_skb(skb, ndev, 0); + can_put_echo_skb(skb, ndev, 0, 0); rockchip_can_write_cmdreg(rcan, TX_REQ); netdev_dbg(ndev, "TX: can_id:0x%08x dlc: %d mode: 0x%08x data: 0x%08x 0x%08x\n", @@ -334,7 +333,7 @@ static void rockchip_can_rx(struct net_device *ndev) return; fi = readl(rcan->base + CAN_RX_FRM_INFO); - cf->can_dlc = get_can_dlc(fi & CAN_DLC_MASK); + cf->can_dlc = can_cc_dlc2len(fi & CAN_DLC_MASK); id = readl(rcan->base + CAN_RX_ID); if (fi & CAN_EFF) id |= CAN_EFF_FLAG; @@ -355,8 +354,6 @@ static void rockchip_can_rx(struct net_device *ndev) stats->rx_bytes += cf->can_dlc; netif_rx(skb); - can_led_event(ndev, CAN_LED_EVENT_RX); - netdev_dbg(ndev, "%s can_id:0x%08x fi: 0x%08x dlc: %d data: 0x%08x 0x%08x\n", __func__, cf->can_id, fi, cf->can_dlc, data1, data2); @@ -508,13 +505,10 @@ static irqreturn_t rockchip_can_interrupt(int irq, void *dev_id) isr = readl(rcan->base + CAN_INT); if (isr & TX_FINISH) { /* transmission complete interrupt */ - stats->tx_bytes += readl(rcan->base + CAN_TX_FRM_INFO) & - CAN_DLC_MASK; - stats->tx_packets++; rockchip_can_write_cmdreg(rcan, 0); - can_get_echo_skb(ndev, 0); + stats->tx_bytes += can_get_echo_skb(ndev, 0, NULL); + stats->tx_packets++; netif_wake_queue(ndev); - can_led_event(ndev, CAN_LED_EVENT_TX); } if (isr & RX_FINISH) @@ -555,7 +549,6 @@ static int rockchip_can_open(struct net_device *ndev) goto exit_can_start; } - can_led_event(ndev, CAN_LED_EVENT_OPEN); netif_start_queue(ndev); netdev_dbg(ndev, "%s\n", __func__); @@ -575,7 +568,6 @@ static int rockchip_can_close(struct net_device *ndev) netif_stop_queue(ndev); rockchip_can_stop(ndev); close_candev(ndev); - can_led_event(ndev, CAN_LED_EVENT_STOP); pm_runtime_put(rcan->dev); netdev_dbg(ndev, "%s\n", __func__); @@ -771,8 +763,6 @@ static int rockchip_can_probe(struct platform_device *pdev) goto err_disableclks; } - devm_can_led_init(ndev); - pm_runtime_put(&pdev->dev); return 0; diff --git a/drivers/net/can/rockchip/rockchip_canfd.c b/drivers/net/can/rockchip/rockchip_canfd.c index dba7f14c45f3..1565452da030 100644 --- a/drivers/net/can/rockchip/rockchip_canfd.c +++ b/drivers/net/can/rockchip/rockchip_canfd.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -550,7 +549,7 @@ static int rockchip_canfd_start_xmit(struct sk_buff *skb, if (cf->can_id & CAN_EFF_FLAG) { /* Extended CAN ID format */ id = cf->can_id & CAN_EFF_MASK; - dlc = can_len2dlc(cf->len) & DLC_MASK; + dlc = can_fd_len2dlc(cf->len) & DLC_MASK; dlc |= FORMAT_MASK; /* Extended frames remote TX request */ @@ -559,7 +558,7 @@ static int rockchip_canfd_start_xmit(struct sk_buff *skb, } else { /* Standard CAN ID format */ id = cf->can_id & CAN_SFF_MASK; - dlc = can_len2dlc(cf->len) & DLC_MASK; + dlc = can_fd_len2dlc(cf->len) & DLC_MASK; /* Standard frames remote TX request */ if (cf->can_id & CAN_RTR_FLAG) @@ -596,7 +595,7 @@ static int rockchip_canfd_start_xmit(struct sk_buff *skb, for (i = 0; i < cf->len; i += 4) rockchip_canfd_write(rcan, CAN_TXDAT0 + i, *(u32 *)(cf->data + i)); - can_put_echo_skb(skb, ndev, 0); + can_put_echo_skb(skb, ndev, 0, 0); rockchip_canfd_write(rcan, CAN_CMD, CAN_TX1_REQ); local_irq_restore(flags); return NETDEV_TX_OK; @@ -609,7 +608,7 @@ static int rockchip_canfd_start_xmit(struct sk_buff *skb, rockchip_canfd_write(rcan, CAN_TXDAT0 + i, *(u32 *)(cf->data + i)); - can_put_echo_skb(skb, ndev, 0); + can_put_echo_skb(skb, ndev, 0, 0); rockchip_canfd_write(rcan, CAN_MODE, rockchip_canfd_read(rcan, CAN_MODE) | MODE_SPACE_RX); rockchip_canfd_write(rcan, CAN_CMD, cmd); @@ -664,9 +663,9 @@ static int rockchip_canfd_rx(struct net_device *ndev) /* Change CAN data length format to socketCAN data format */ if (dlc & FDF_MASK) - cf->len = can_dlc2len(dlc & DLC_MASK); + cf->len = can_fd_dlc2len(dlc & DLC_MASK); else - cf->len = get_can_dlc(dlc & DLC_MASK); + cf->len = can_cc_dlc2len(dlc & DLC_MASK); /* Change CAN ID format to socketCAN ID format */ if (dlc & FORMAT_MASK) { @@ -695,8 +694,6 @@ static int rockchip_canfd_rx(struct net_device *ndev) stats->rx_bytes += cf->len; netif_rx(skb); - can_led_event(ndev, CAN_LED_EVENT_RX); - return 1; } @@ -736,9 +733,6 @@ static int rockchip_canfd_rx_poll(struct napi_struct *napi, int quota) work_done += rockchip_canfd_rx(ndev); } - if (work_done) - can_led_event(ndev, CAN_LED_EVENT_RX); - if (work_done < 6) { napi_complete_done(napi, work_done); rockchip_canfd_write(rcan, CAN_INT_MASK, 0); @@ -800,7 +794,7 @@ static int rockchip_canfd_err(struct net_device *ndev, u32 isr) cancel_delayed_work(&rcan->tx_err_work); netif_stop_queue(ndev); rockchip_canfd_stop(ndev); - can_free_echo_skb(ndev, 0); + can_free_echo_skb(ndev, 0, NULL); rockchip_canfd_start(ndev); netif_start_queue(ndev); } @@ -827,12 +821,6 @@ static irqreturn_t rockchip_canfd_interrupt(int irq, void *dev_id) if (isr & TX_FINISH_INT) { cancel_delayed_work(&rcan->tx_err_work); dlc = rockchip_canfd_read(rcan, CAN_TXFIC); - /* transmission complete interrupt */ - if (dlc & FDF_MASK) - stats->tx_bytes += can_dlc2len(dlc & DLC_MASK); - else - stats->tx_bytes += (dlc & DLC_MASK); - stats->tx_packets++; if (rcan->txtorx && rcan->mode <= ROCKCHIP_RK3568_CAN_MODE && dlc & FORMAT_MASK) { rockchip_canfd_write(rcan, CAN_TX_CHECK_FIC, FORMAT_MASK); quota = rockchip_canfd_get_rx_fifo_cnt(ndev); @@ -849,9 +837,9 @@ static irqreturn_t rockchip_canfd_interrupt(int irq, void *dev_id) 0, 5000000, false, rcan, CAN_CMD)) netdev_err(ndev, "Warning: wait tx req timeout!\n"); rockchip_canfd_write(rcan, CAN_CMD, 0); - can_get_echo_skb(ndev, 0); + stats->tx_bytes += can_get_echo_skb(ndev, 0, NULL); + stats->tx_packets++; netif_wake_queue(ndev); - can_led_event(ndev, CAN_LED_EVENT_TX); } if (isr & RX_FINISH_INT) { @@ -903,7 +891,6 @@ static int rockchip_canfd_open(struct net_device *ndev) goto exit_can_start; } - can_led_event(ndev, CAN_LED_EVENT_OPEN); if (rcan->mode == ROCKCHIP_RK3568_CAN_MODE_V2) napi_enable(&rcan->napi); netif_start_queue(ndev); @@ -927,7 +914,6 @@ static int rockchip_canfd_close(struct net_device *ndev) napi_disable(&rcan->napi); rockchip_canfd_stop(ndev); close_candev(ndev); - can_led_event(ndev, CAN_LED_EVENT_STOP); pm_runtime_put(rcan->dev); cancel_delayed_work_sync(&rcan->tx_err_work); @@ -1153,7 +1139,7 @@ static int rockchip_canfd_probe(struct platform_device *pdev) if (rcan->mode == ROCKCHIP_RK3568_CAN_MODE_V2) { rcan->txtorx = 0; - netif_napi_add(ndev, &rcan->napi, rockchip_canfd_rx_poll, 6); + netif_napi_add(ndev, &rcan->napi, rockchip_canfd_rx_poll); } ndev->netdev_ops = &rockchip_canfd_netdev_ops; @@ -1183,8 +1169,6 @@ static int rockchip_canfd_probe(struct platform_device *pdev) goto err_disableclks; } - devm_can_led_init(ndev); - return 0; err_disableclks: