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.fr Suggested-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Acked-by: Max Staudt <max@enpas.org> Tested-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
df6ad5dd83
commit
6a5286442f
@ -1,5 +1,25 @@
|
|||||||
# 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
|
|||||||
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
|
|||||||
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
|
|||||||
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
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
# 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 @@
|
|||||||
* 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 @@
|
|||||||
#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)
|
|||||||
|
|
||||||
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 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#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
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user