diff --git a/drivers/net/can/mttcan/Makefile b/drivers/net/can/mttcan/Makefile index dc65a979..7478bf84 100644 --- a/drivers/net/can/mttcan/Makefile +++ b/drivers/net/can/mttcan/Makefile @@ -1,6 +1,13 @@ -# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: GPL-2.0-only +# CAN_LEDS has been marked as BROKEN since Linux v4.19 and +# was finally removed in Linux v5.19. Only compile support +# for LEDS if enabled in the kernel. +ifdef CONFIG_CAN_LEDS +subdir-ccflags-y += -DCONFIG_CAN_LEDS +endif + obj-m := mttcan.o mttcan-y = native/m_ttcan_linux.o native/m_ttcan_sys.o hal/m_ttcan.o diff --git a/drivers/net/can/mttcan/native/m_ttcan_linux.c b/drivers/net/can/mttcan/native/m_ttcan_linux.c index 5e7cce30..377820d0 100644 --- a/drivers/net/can/mttcan/native/m_ttcan_linux.c +++ b/drivers/net/can/mttcan/native/m_ttcan_linux.c @@ -620,7 +620,7 @@ static void mttcan_tx_complete(struct net_device *dev) while (completed_tx) { msg_no = ffs(completed_tx) - 1; -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 0) +#if defined(CONFIG_CAN_LEDS) can_led_event(dev, CAN_LED_EVENT_TX); #endif clear_bit(msg_no, &ttcan->tx_object); @@ -1312,7 +1312,7 @@ static int mttcan_open(struct net_device *dev) } napi_enable(&priv->napi); -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 0) +#if defined(CONFIG_CAN_LEDS) can_led_event(dev, CAN_LED_EVENT_OPEN); #endif @@ -1348,7 +1348,7 @@ static int mttcan_close(struct net_device *dev) mttcan_power_down(dev); mttcan_pm_runtime_put_sync(priv); -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 0) +#if defined(CONFIG_CAN_LEDS) can_led_event(dev, CAN_LED_EVENT_STOP); #endif return 0; @@ -1553,7 +1553,7 @@ static int register_mttcan_dev(struct net_device *dev) dev->netdev_ops = &mttcan_netdev_ops; err = register_candev(dev); -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 0) +#if defined(CONFIG_CAN_LEDS) if (!err) devm_can_led_init(dev); #endif