Commit bfe0092d authored by Vincent Mailhol's avatar Vincent Mailhol Committed by Marc Kleine-Budde

can: Kconfig: add CONFIG_CAN_RX_OFFLOAD

Only a few drivers rely on the CAN rx offload framework (as of the
writing of this patch, only four: flexcan, m_can, mcp251xfd and
ti_hecc). Split it out of can-dev and add a new config symbol:
CAN_RX_OFFLOAD.

The drivers relying on CAN rx offload are in different sub
folders. Make CAN_RX_OFFLOAD an hidden option and tag all the drivers
depending on that feature with "select CAN_RX_OFFLOAD" so that the
option gets automatically enabled if and only if one of those drivers
is chosen.

Link: https://lore.kernel.org/all/20220610143009.323579-5-mailhol.vincent@wanadoo.frSuggested-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Suggested-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarVincent Mailhol <mailhol.vincent@wanadoo.fr>
Acked-by: default avatarMax Staudt <max@enpas.org>
Tested-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 0c7e1151
...@@ -102,6 +102,9 @@ config CAN_CALC_BITTIMING ...@@ -102,6 +102,9 @@ config CAN_CALC_BITTIMING
If unsure, say Y. If unsure, say Y.
config CAN_RX_OFFLOAD
bool
config CAN_AT91 config CAN_AT91
tristate "Atmel AT91 onchip CAN controller" tristate "Atmel AT91 onchip CAN controller"
depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM depends on (ARCH_AT91 || COMPILE_TEST) && HAS_IOMEM
...@@ -113,6 +116,7 @@ config CAN_FLEXCAN ...@@ -113,6 +116,7 @@ config CAN_FLEXCAN
tristate "Support for Freescale FLEXCAN based chips" tristate "Support for Freescale FLEXCAN based chips"
depends on OF || COLDFIRE || COMPILE_TEST depends on OF || COLDFIRE || COMPILE_TEST
depends on HAS_IOMEM depends on HAS_IOMEM
select CAN_RX_OFFLOAD
help help
Say Y here if you want to support for Freescale FlexCAN. Say Y here if you want to support for Freescale FlexCAN.
...@@ -162,6 +166,7 @@ config CAN_SUN4I ...@@ -162,6 +166,7 @@ config CAN_SUN4I
config CAN_TI_HECC config CAN_TI_HECC
depends on ARM depends on ARM
tristate "TI High End CAN Controller" tristate "TI High End CAN Controller"
select CAN_RX_OFFLOAD
help help
Driver for TI HECC (High End CAN Controller) module found on many Driver for TI HECC (High End CAN Controller) module found on many
TI devices. The device specifications are available from www.ti.com TI devices. The device specifications are available from www.ti.com
......
...@@ -9,4 +9,4 @@ can-dev-$(CONFIG_CAN_NETLINK) += bittiming.o ...@@ -9,4 +9,4 @@ can-dev-$(CONFIG_CAN_NETLINK) += bittiming.o
can-dev-$(CONFIG_CAN_NETLINK) += dev.o can-dev-$(CONFIG_CAN_NETLINK) += dev.o
can-dev-$(CONFIG_CAN_NETLINK) += length.o can-dev-$(CONFIG_CAN_NETLINK) += length.o
can-dev-$(CONFIG_CAN_NETLINK) += netlink.o can-dev-$(CONFIG_CAN_NETLINK) += netlink.o
can-dev-$(CONFIG_CAN_NETLINK) += rx-offload.o can-dev-$(CONFIG_CAN_RX_OFFLOAD) += rx-offload.o
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menuconfig CAN_M_CAN menuconfig CAN_M_CAN
tristate "Bosch M_CAN support" tristate "Bosch M_CAN support"
select CAN_RX_OFFLOAD
help help
Say Y here if you want support for Bosch M_CAN controller framework. Say Y here if you want support for Bosch M_CAN controller framework.
This is common support for devices that embed the Bosch M_CAN IP. This is common support for devices that embed the Bosch M_CAN IP.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config CAN_MCP251XFD config CAN_MCP251XFD
tristate "Microchip MCP251xFD SPI CAN controllers" tristate "Microchip MCP251xFD SPI CAN controllers"
select CAN_RX_OFFLOAD
select REGMAP select REGMAP
select WANT_DEV_COREDUMP select WANT_DEV_COREDUMP
help help
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment