summaryrefslogtreecommitdiff
path: root/drivers/net/can/dev/bittiming.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2022-02-24 10:43:28 +0000
committerDavid S. Miller <davem@davemloft.net>2022-02-24 10:43:28 +0000
commitfee62ea772040a6b7d5d07d285dcf68f989fc81c (patch)
tree02bf30bcb33ef646e6f7b57e1e8a7a30675451d4 /drivers/net/can/dev/bittiming.c
parente422eef268baa0d08f969d1330f13929a7efc138 (diff)
parentaada74220f0076a2f76392806224ca385fae536a (diff)
Merge tag 'linux-can-next-for-5.18-20220224' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
Marc Kleine-Budde says: ==================== this is a pull request of 36 patches for net-next/master. The first 5 patches are by me and update various CAN DT bindings. Eric Dumazet's patch for the CAN GW replaces a costly synchronize_rcu() by a call_rcu(). The next 2 patches by me enhance the CAN bit rate handling, the bit rate checking is simplified and the arguments and local variables of functions are marked as const. A patch by me for the kvaser_usb driver removes a redundant variable. The next patch by me lets the c_can driver use the default ethtool drvinfo. Minghao Chi's patch for the softing driver removes a redundant variable. Srinivas Neeli contributes an enhancement for the xilinx_can NAPI poll function. Vincent Mailhol's patch for the etas_es58x driver converts to BITS_PER_TYPE() from of manual calculation. The next 23 patches target the mcp251xfd driver and are by me. The first 15 patches, add support for the internal PLL, which includes simplifying runtime PM handling, better chip detection and error handling after wakeup, and the PLL handling. The last 8 patches prepare the driver to support multiple RX-FIFOs and runtime configurable RX/TX rings. The actual runtime ring configuration via ethtool will be added in a later patch series. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/can/dev/bittiming.c')
-rw-r--r--drivers/net/can/dev/bittiming.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/net/can/dev/bittiming.c b/drivers/net/can/dev/bittiming.c
index d5fca3bfaf9a..2103bcca9012 100644
--- a/drivers/net/can/dev/bittiming.c
+++ b/drivers/net/can/dev/bittiming.c
@@ -24,7 +24,7 @@
*/
static int
can_update_sample_point(const struct can_bittiming_const *btc,
- unsigned int sample_point_nominal, unsigned int tseg,
+ const unsigned int sample_point_nominal, const unsigned int tseg,
unsigned int *tseg1_ptr, unsigned int *tseg2_ptr,
unsigned int *sample_point_error_ptr)
{
@@ -63,7 +63,7 @@ can_update_sample_point(const struct can_bittiming_const *btc,
return best_sample_point;
}
-int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt,
+int can_calc_bittiming(const struct net_device *dev, struct can_bittiming *bt,
const struct can_bittiming_const *btc)
{
struct can_priv *priv = netdev_priv(dev);
@@ -208,10 +208,10 @@ void can_calc_tdco(struct can_tdc *tdc, const struct can_tdc_const *tdc_const,
* prescaler value brp. You can find more information in the header
* file linux/can/netlink.h.
*/
-static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt,
+static int can_fixup_bittiming(const struct net_device *dev, struct can_bittiming *bt,
const struct can_bittiming_const *btc)
{
- struct can_priv *priv = netdev_priv(dev);
+ const struct can_priv *priv = netdev_priv(dev);
unsigned int tseg1, alltseg;
u64 brp64;
@@ -244,25 +244,21 @@ static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt,
/* Checks the validity of predefined bitrate settings */
static int
-can_validate_bitrate(struct net_device *dev, struct can_bittiming *bt,
+can_validate_bitrate(const struct net_device *dev, const struct can_bittiming *bt,
const u32 *bitrate_const,
const unsigned int bitrate_const_cnt)
{
- struct can_priv *priv = netdev_priv(dev);
unsigned int i;
for (i = 0; i < bitrate_const_cnt; i++) {
if (bt->bitrate == bitrate_const[i])
- break;
+ return 0;
}
- if (i >= priv->bitrate_const_cnt)
- return -EINVAL;
-
- return 0;
+ return -EINVAL;
}
-int can_get_bittiming(struct net_device *dev, struct can_bittiming *bt,
+int can_get_bittiming(const struct net_device *dev, struct can_bittiming *bt,
const struct can_bittiming_const *btc,
const u32 *bitrate_const,
const unsigned int bitrate_const_cnt)