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

can: Kconfig: turn menu "CAN Device Drivers" into a menuconfig using CAN_DEV

In the next patches, the software/virtual drivers (slcan, v(x)can)
will depend on drivers/net/can/dev/skb.o.

This patch changes the scope of the can-dev module to include the
above mentioned drivers.

To do so, we reuse the menu "CAN Device Drivers" and turn it into a
configmenu using the config symbol CAN_DEV (which we released in
previous patch). Also, add a description to this new CAN_DEV
menuconfig.

The symbol CAN_DEV now only triggers the build of skb.o. For this
reasons, all the macros from linux/module.h are deported from
drivers/net/can/dev/dev.c to drivers/net/can/dev/skb.c.

Finally, drivers/net/can/dev/Makefile is adjusted accordingly.

Link: https://lore.kernel.org/all/20220610143009.323579-3-mailhol.vincent@wanadoo.frSuggested-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
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 df6ad5dd
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menu "CAN Device Drivers"
menuconfig CAN_DEV
tristate "CAN Device Drivers"
default y
help
Controller Area Network (CAN) is serial communications protocol up to
1Mbit/s for its original release (now known as Classical CAN) and up
to 8Mbit/s for the more recent CAN with Flexible Data-Rate
(CAN-FD). The CAN bus was originally mainly for automotive, but is now
widely used in marine (NMEA2000), industrial, and medical
applications. More information on the CAN network protocol family
PF_CAN is contained in <Documentation/networking/can.rst>.
This section contains all the CAN(-FD) device drivers including the
virtual ones. If you own such devices or plan to use the virtual CAN
interfaces to develop applications, say Y here.
To compile as a module, choose M here: the module will be called
can-dev.
if CAN_DEV
config CAN_VCAN config CAN_VCAN
tristate "Virtual Local CAN Interface (vcan)" tristate "Virtual Local CAN Interface (vcan)"
...@@ -49,7 +69,7 @@ config CAN_SLCAN ...@@ -49,7 +69,7 @@ config CAN_SLCAN
also be built as a module. If so, the module will be called slcan. also be built as a module. If so, the module will be called slcan.
config CAN_NETLINK config CAN_NETLINK
tristate "CAN device drivers with Netlink support" bool "CAN device drivers with Netlink support"
default y default y
help help
Enables the common framework for CAN device drivers. This is the Enables the common framework for CAN device drivers. This is the
...@@ -57,6 +77,9 @@ config CAN_NETLINK ...@@ -57,6 +77,9 @@ config CAN_NETLINK
as bittiming validation, support of CAN error states, device restart as bittiming validation, support of CAN error states, device restart
and others. and others.
The additional features selected by this option will be added to the
can-dev module.
This is required by all platform and hardware CAN drivers. If you This is required by all platform and hardware CAN drivers. If you
plan to use such devices or if unsure, say Y. plan to use such devices or if unsure, say Y.
...@@ -178,4 +201,4 @@ config CAN_DEBUG_DEVICES ...@@ -178,4 +201,4 @@ config CAN_DEBUG_DEVICES
a problem with CAN support and want to see more of what is going a problem with CAN support and want to see more of what is going
on. on.
endmenu endif #CAN_DEV
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_CAN_NETLINK) += can-dev.o obj-$(CONFIG_CAN_DEV) += can-dev.o
can-dev-y += bittiming.o
can-dev-y += dev.o
can-dev-y += length.o
can-dev-y += netlink.o
can-dev-y += rx-offload.o
can-dev-y += skb.o can-dev-y += skb.o
can-dev-$(CONFIG_CAN_NETLINK) += bittiming.o
can-dev-$(CONFIG_CAN_NETLINK) += dev.o
can-dev-$(CONFIG_CAN_NETLINK) += length.o
can-dev-$(CONFIG_CAN_NETLINK) += netlink.o
can-dev-$(CONFIG_CAN_NETLINK) += rx-offload.o
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
* Copyright (C) 2008-2009 Wolfgang Grandegger <wg@grandegger.com> * Copyright (C) 2008-2009 Wolfgang Grandegger <wg@grandegger.com>
*/ */
#include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
...@@ -17,12 +16,6 @@ ...@@ -17,12 +16,6 @@
#include <linux/gpio/consumer.h> #include <linux/gpio/consumer.h>
#include <linux/of.h> #include <linux/of.h>
#define MOD_DESC "CAN device driver interface"
MODULE_DESCRIPTION(MOD_DESC);
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Wolfgang Grandegger <wg@grandegger.com>");
static void can_update_state_error_stats(struct net_device *dev, static void can_update_state_error_stats(struct net_device *dev,
enum can_state new_state) enum can_state new_state)
{ {
...@@ -513,7 +506,7 @@ static __init int can_dev_init(void) ...@@ -513,7 +506,7 @@ static __init int can_dev_init(void)
err = can_netlink_register(); err = can_netlink_register();
if (!err) if (!err)
pr_info(MOD_DESC "\n"); pr_info("CAN device driver interface\n");
return err; return err;
} }
......
...@@ -5,6 +5,13 @@ ...@@ -5,6 +5,13 @@
*/ */
#include <linux/can/dev.h> #include <linux/can/dev.h>
#include <linux/module.h>
#define MOD_DESC "CAN device driver interface"
MODULE_DESCRIPTION(MOD_DESC);
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Wolfgang Grandegger <wg@grandegger.com>");
/* Local echo of CAN messages /* Local echo of CAN messages
* *
......
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