Marc Kleine-Budde
5584114b35
can: tcan4x5x: add max_raw_{read,write} of 256
...
The tcan4x5x chip support bulk read/write, but as the length field is only 8
bits wide, the maximum is 256. A length of 0 is treated as 256.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-14-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:40 +01:00
Marc Kleine-Budde
aaf120c37c
can: tcan4x5x: tcan4x5x_regmap: set reg_stride to 4
...
This patch sets the regmap stide to 4, as the chip only supports access on 32
bit alligned access.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-13-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:40 +01:00
Marc Kleine-Budde
6e1caaf8ed
can: tcan4x5x: fix max register value
...
This patch fixes the max register value for the regmap.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-12-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:40 +01:00
Marc Kleine-Budde
bf722fdd3b
can: tcan4x5x: tcan4x5x_regmap_init(): use spi as context pointer
...
This patch replaces the context pointer of the regmap callback functions by a
pointer to the spi_device. This saves one level of indirection in the
callbacks.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-11-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:39 +01:00
Marc Kleine-Budde
0c05345210
can: tcan4x5x: tcan4x5x_regmap_write(): remove not needed casts and replace 4 by sizeof
...
This patch simplifies the tcan4x5x_regmap_write(0 function by removing not
needed casts and replaces hardcoded "4" by appropriate sizeof()s.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-10-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:39 +01:00
Marc Kleine-Budde
52be977b3a
can: tcan4x5x: rename regmap_spi_gather_write() -> tcan4x5x_regmap_gather_write()
...
This patch renames the regmap_spi_gather_write() function to
tcan4x5x_regmap_gather_write(). Now it has a "tcan4x5x_" prefix as all other
functions in this driver.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-9-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:39 +01:00
Marc Kleine-Budde
b9c30ef344
can: tcan4x5x: remove regmap async support
...
The driver doesn't use regmap async support, so remove the stubs.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-8-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:38 +01:00
Marc Kleine-Budde
5bcd6e10ad
can: tcan4x5x: tcan4x5x_bus: remove not needed read_flag_mask
...
With C99 initializers, all non mentioned members are initialzied to 0, so
remove not needed initialization of read_flag_mask.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-7-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:38 +01:00
Marc Kleine-Budde
1784aa1449
can: tcan4x5x: mark struct regmap_bus tcan4x5x_bus as constant
...
This patch marks the struct regmap_bus tcan4x5x_bus as constant.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-6-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:38 +01:00
Marc Kleine-Budde
67def4ef8b
can: tcan4x5x: move regmap code into seperate file
...
This patch moves the regmap code into a seperate file.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-5-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:37 +01:00
Marc Kleine-Budde
7813887ea9
can: tcan4x5x: rename tcan4x5x.c -> tcan4x5x-core.c
...
This is a preparation patch to move the regmap related code into a seperate
file. This patch removes the tcan4x5x.c to tcan4x5x-core.c.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-4-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:37 +01:00
Marc Kleine-Budde
bcc3d8ef14
can: tcan4x5x: beautify indention of tcan4x5x_of_match and tcan4x5x_id_table
...
This patch beautifies the indention of the tcan4x5x_of_match and
tcan4x5x_id_table.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-3-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:37 +01:00
Marc Kleine-Budde
aa102ffd7b
can: tcan4x5x: replace DEVICE_NAME by KBUILD_MODNAME
...
This patch replaces the DEVICE_NAME macro by KBUILD_MODNAME and removed the
superfluous DEVICE_NAME.
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Tested-by: Sean Nyekjaer <sean@geanix.com >
Link: https://lore.kernel.org/r/20201215231746.1132907-2-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2021-01-06 15:15:37 +01:00
Arnd Bergmann
1d48595c78
can: kvaser_pciefd: select CONFIG_CRC32
...
Without crc32, this driver fails to link:
arm-linux-gnueabi-ld: drivers/net/can/kvaser_pciefd.o: in function `kvaser_pciefd_probe':
kvaser_pciefd.c:(.text+0x2b0): undefined reference to `crc32_be'
Fixes: 26ad340e58 ("can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de >
Signed-off-by: David S. Miller <davem@davemloft.net >
2021-01-05 15:50:36 -08:00
Marc Kleine-Budde
c6b7348924
can: m_can: use struct m_can_classdev as drvdata
...
The m_can driver's suspend and resume functions (m_can_class_suspend() and
m_can_class_resume()) make use of dev_get_drvdata() and assume that the drvdata
is a pointer to the struct net_device.
With upcoming conversion of the tcan4x5x driver to pm_runtime this assumption
is no longer valid. As the suspend and resume functions actually need a struct
m_can_classdev pointer, change the m_can_platform and the m_can_pci driver to
hold a pointer to struct m_can_classdev instead, as the tcan4x5x driver already
does.
Link: https://lore.kernel.org/r/20201212175518.139651-8-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:24:17 +01:00
Marc Kleine-Budde
ac33ffd3e2
can: m_can: let m_can_class_allocate_dev() allocate driver specific private data
...
This patch enhances m_can_class_allocate_dev() to allocate driver specific
private data. The driver's private data struct must contain struct
m_can_classdev as its first member followed by the remaining private data.
Link: https://lore.kernel.org/r/20201212175518.139651-7-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:24:14 +01:00
Marc Kleine-Budde
b8d6255548
can: m_can: m_can_clk_start(): make use of pm_runtime_resume_and_get()
...
With patch
| dd8088d5a8 PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
the usual pm_runtime_get_sync() and pm_runtime_put_noidle() in-case-of-error
dance is no longer needed. Convert the m_can driver to use this function.
Link: https://lore.kernel.org/r/20201212175518.139651-6-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:24:11 +01:00
Marc Kleine-Budde
78e19a2926
can: m_can: m_can_config_endisable(): mark as static
...
The function m_can_config_endisable() is not used outside of the m_can driver,
so mark it as static.
Link: https://lore.kernel.org/r/20201212175518.139651-5-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:24:07 +01:00
Marc Kleine-Budde
3b464affd8
can: m_can: use cdev as name for struct m_can_classdev uniformly
...
This patch coverts the m_can driver to use cdev as name for struct
m_can_classdev uniformly throughout the whole driver.
Link: https://lore.kernel.org/r/20201212175518.139651-4-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:24:05 +01:00
Marc Kleine-Budde
709efa6f00
can: m_can: convert indention to kernel coding style
...
This patch converts the indention in the m_can driver to kernel coding style.
Link: https://lore.kernel.org/r/20201212175518.139651-3-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:24:02 +01:00
Marc Kleine-Budde
4c832b380c
can: m_can: update link to M_CAN user manual
...
Old versions of the user manual are regularly depublished, so change link to
the linux-can github page, which has a mirror off all published datasheets.
Link: https://lore.kernel.org/r/20201212175518.139651-2-mkl@pengutronix.de
Reviewed-by: Sean Nyekjaer <sean@geanix.com >
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-14 14:23:56 +01:00
Jakub Kicinski
46d5e62dd3
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
...
xdp_return_frame_bulk() needs to pass a xdp_buff
to __xdp_return().
strlcpy got converted to strscpy but here it makes no
functional difference, so just keep the right code.
Conflicts:
net/netfilter/nf_tables_api.c
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2020-12-11 22:29:38 -08:00
Manivannan Sadhasivam
ee42bedc85
can: mcp251xfd: Add support for internal loopback mode
...
MCP251xFD supports internal loopback mode which can be used to verify CAN
functionality in the absence of a real CAN device.
Link: https://lore.kernel.org/r/20201201054019.11012-1-manivannan.sadhasivam@linaro.org
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org >
[mkl: mcp251xfd_get_normal_mode(): move CAN_CTRLMODE_LOOPBACK check to front]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-10 10:40:10 +01:00
Fabio Estevam
2c0ac92081
can: flexcan: convert the driver to DT-only
...
The flexcan driver runs only on DT platforms, so simplify the code by using
of_device_get_match_data() to retrieve the driver data and also by removing the
unused id_table.
Signed-off-by: Fabio Estevam <festevam@gmail.com >
Link: https://lore.kernel.org/r/20201128132855.7724-1-festevam@gmail.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-10 10:40:10 +01:00
Jarkko Nikula
cab7ffc032
can: m_can: add PCI glue driver for Intel Elkhart Lake
...
Add support for M_CAN controller on Intel Elkhart Lake attached to the PCI bus.
It integrates the Bosch M_CAN controller with Message RAM and the wrapper IP
block with additional registers which all of them are within the same MMIO
range.
Currently only interrupt control register from wrapper IP is used and the MRAM
configuration is expected to come from the firmware via "bosch,mram-cfg" device
property and parsed by m_can.c core.
Initial implementation is done by Felipe Balbi while he was working at Intel
with later changes from Raymond Tan and me.
Co-developed-by: Felipe Balbi (Intel) <balbi@kernel.org >
Co-developed-by: Raymond Tan <raymond.tan@intel.com >
Signed-off-by: Felipe Balbi (Intel) <balbi@kernel.org >
Signed-off-by: Raymond Tan <raymond.tan@intel.com >
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com >
Link: https://lore.kernel.org/r/20201117160827.3636264-1-jarkko.nikula@linux.intel.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-10 10:40:10 +01:00
Patrik Flykt
227619c3ff
can: m_can: move runtime PM enable/disable to m_can_platform
...
This is a preparatory patch for upcoming PCI based M_CAN devices. The current
PM implementation would cause PCI based drivers to enable PM twice, once when
the PCI device is added and a second time in m_can_class_register(). This will
cause 'Unbalanced pm_runtime_enable!' to be logged, and is a situation that
should be avoided.
Therefore, in anticipation of PCI devices, move PM enabling out from M_CAN
class registration to its only user, the m_can_platform driver.
Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com >
Link: https://lore.kernel.org/r/20201023115800.46538-2-patrik.flykt@linux.intel.com
[mkl: m_can_plat_probe(): fix error handling
m_can_class_register(): simplify error handling]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-10 10:39:36 +01:00
Sean Nyekjaer
c9f4cad6cd
can: m_can: m_can_config_endisable(): remove double clearing of clock stop request bit
...
The CSR bit is already cleared when arriving here so remove this section of
duplicate code.
The registers set in m_can_config_endisable() is set to same exact values as
before this patch.
Signed-off-by: Sean Nyekjaer <sean@geanix.com >
Acked-by: Sriram Dash <sriram.dash@samsung.com >
Acked-by: Dan Murphy <dmurphy@ti.com >
Link: https://lore.kernel.org/r/20191211063227.84259-1-sean@geanix.com
Fixes: f524f829b7 ("can: m_can: Create a m_can platform framework")
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-10 10:10:43 +01:00
Antonio Quartulli
ecbaf5e13f
can: rx-offload: can_rx_offload_offload_one(): avoid double unlikely() notation when using IS_ERR()
...
The definition of IS_ERR() already applies the unlikely() notation when
checking the error status of the passed pointer. For this reason there is no
need to have the same notation outside of IS_ERR() itself.
Clean up code by removing redundant notation.
Signed-off-by: Antonio Quartulli <a@unstable.cc >
Link: https://lore.kernel.org/r/20201210085321.18693-1-a@unstable.cc
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-12-10 10:10:43 +01:00
Zhang Qilong
4d1be581ec
can: softing: softing_netdev_open(): fix error handling
...
If softing_netdev_open() fails, we should call close_candev() to avoid
reference leak.
Fixes: 03fd3cf5a1 ("can: add driver for Softing card")
Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com >
Acked-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be >
Link: https://lore.kernel.org/r/20201202151632.1343786-1-zhangqilong3@huawei.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
Link: https://lore.kernel.org/r/20201204133508.742120-2-mkl@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2020-12-05 13:08:11 -08:00
Jakub Kicinski
55fd59b003
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
...
Conflicts:
drivers/net/ethernet/ibm/ibmvnic.c
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2020-12-03 15:44:09 -08:00
Marc Kleine-Budde
6d9986b46f
can: m_can: m_can_class_unregister(): move right after m_can_class_register()
...
This patch moves the function m_can_class_unregister() directly after the
m_can_class_register() function.
Link: https://lore.kernel.org/r/20201130133713.269256-7-mkl@pengutronix.de
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:55:41 +01:00
Marc Kleine-Budde
ba844cb96f
can: m_can: m_can_plat_remove(): remove unneeded platform_set_drvdata()
...
There's no need to unset the drvdata on remove, so remove the unneeded call to
platform_set_drvdata() in m_can_plat_remove().
Link: https://lore.kernel.org/r/20201130133713.269256-6-mkl@pengutronix.de
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:55:38 +01:00
Marc Kleine-Budde
3fb5a7cef9
can: m_can: remove not used variable struct m_can_classdev::freq
...
This patch removes the unused variable freq from the struct m_can_classdev.
Link: https://lore.kernel.org/r/20201130133713.269256-5-mkl@pengutronix.de
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:55:35 +01:00
Marc Kleine-Budde
f566373fc5
can: m_can: Kconfig: convert the into menu
...
Since there is more than one base driver for the m_can core, let's
convert this into a menu.
Link: https://lore.kernel.org/r/20201130133713.269256-4-mkl@pengutronix.de
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:55:32 +01:00
Marc Kleine-Budde
ca3ad869da
can: tcan4x5x: tcan4x5x_can_probe(): remove probe failed error message
...
The driver core already emits a probe failed error message, so remove this one
from the driver.
Link: https://lore.kernel.org/r/20201130133713.269256-3-mkl@pengutronix.de
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:55:29 +01:00
Marc Kleine-Budde
225dfc2552
can: tcan4x5x: remove mram_start and reg_offset from struct tcan4x5x_priv
...
Both struct tcan4x5x_priv::mram_start and struct tcan4x5x_priv::reg_offset are
only assigned once with a constant and then always used read-only. This patch
changes the driver to use the constant directly instead.
Link: https://lore.kernel.org/r/20201130133713.269256-2-mkl@pengutronix.de
Reviewed-by: Dan Murphy <dmurphy@ti.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:55:25 +01:00
Dan Murphy
018a0c5845
can: tcan4x5x: rename parse_config() function
...
Rename the tcan4x5x_parse_config() function to tcan4x5x_get_gpios() since the
function retrieves the gpio configurations from the firmware.
Signed-off-by: Dan Murphy <dmurphy@ti.com >
Link: http://lore.kernel.org/r/20200226140358.30017-1-dmurphy@ti.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 14:37:35 +01:00
Zhang Qilong
13a84cf37a
can: kvaser_pciefd: kvaser_pciefd_open(): fix error handling
...
If kvaser_pciefd_bus_on() failed, we should call close_candev() to avoid
reference leak.
Fixes: 26ad340e58 ("can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices")
Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com >
Link: https://lore.kernel.org/r/20201128133922.3276973-3-zhangqilong3@huawei.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 12:43:55 +01:00
Zhang Qilong
44cef0c0ff
can: c_can: c_can_power_up(): fix error handling
...
In the error handling in c_can_power_up(), there are two bugs:
1) c_can_pm_runtime_get_sync() will increase usage counter if device is not
empty. Forgetting to call c_can_pm_runtime_put_sync() will result in a
reference leak here.
2) c_can_reset_ram() operation will set start bit when enable is true. We
should clear it in the error handling.
We fix it by adding c_can_pm_runtime_put_sync() for 1), and
c_can_reset_ram(enable is false) for 2) in the error handling.
Fixes: 8212003260 ("can: c_can: Add d_can suspend resume support")
Fixes: 52cde85acc ("can: c_can: Add d_can raminit support")
Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com >
Link: https://lore.kernel.org/r/20201128133922.3276973-2-zhangqilong3@huawei.com
[mkl: return "0" instead of "ret"]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 12:43:55 +01:00
Jeroen Hofstee
c2d095eff7
can: sun4i_can: sun4i_can_err(): don't count arbitration lose as an error
...
Losing arbitration is normal in a CAN-bus network, it means that a higher
priority frame is being send and the pending message will be retried later.
Hence most driver only increment arbitration_lost, but the sun4i driver also
incremeants tx_error, causing errors to be reported on a normal functioning
CAN-bus. So stop counting them as errors.
Fixes: 0738eff14d ("can: Allwinner A10/A20 CAN Controller support - Kernel module")
Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com >
Link: https://lore.kernel.org/r/20201127095941.21609-1-jhofstee@victronenergy.com
[mkl: split into two seperate patches]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 12:43:54 +01:00
Jeroen Hofstee
bd0ccb92ef
can: sja1000: sja1000_err(): don't count arbitration lose as an error
...
Losing arbitration is normal in a CAN-bus network, it means that a higher
priority frame is being send and the pending message will be retried later.
Hence most driver only increment arbitration_lost, but the sja1000 driver also
incremeants tx_error, causing errors to be reported on a normal functioning
CAN-bus. So stop counting them as errors.
Fixes: 8935f57e68 ("can: sja1000: fix network statistics update")
Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com >
Link: https://lore.kernel.org/r/20201127095941.21609-1-jhofstee@victronenergy.com
[mkl: split into two seperate patches]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 12:43:54 +01:00
Marc Kleine-Budde
ad1f5e826d
can: m_can: tcan4x5x_can_probe(): fix error path: remove erroneous clk_disable_unprepare()
...
The clocks mcan_class->cclk and mcan_class->hclk are not prepared by any call
during tcan4x5x_can_probe(), so remove erroneous clk_disable_unprepare() on
them.
Fixes: 5443c226ba ("can: tcan4x5x: Add tcan4x5x driver to the kernel")
Link: http://lore.kernel.org/r/20201130114252.215334-1-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-30 12:43:38 +01:00
Sean Nyekjaer
d1390d7d55
can: tcan4x5x: tcan4x5x_clear_interrupts(): remove redundant return statement
...
This patch removes a redundant return at the end of
tcan4x5x_clear_interrupts().
Signed-off-by: Sean Nyekjaer <sean@geanix.com >
Link: http://lore.kernel.org/r/20191211141635.322577-1-sean@geanix.com
Reported-by: Daniels Umanovskis <daniels@umanovskis.se >
Acked-by: Dan Murphy <dmurphy@ti.com >
Fixes: 5443c226ba ("can: tcan4x5x: Add tcan4x5x driver to the kernel")
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:12 +01:00
Marc Kleine-Budde
68c0c1c7f9
can: mcp251xfd: tef-path: reduce number of SPI core requests to set UINC bit
...
Reduce the number of separate SPI core requests when setting the UINC bit in
the TEF FIFO, and instead batch them up into a single SPI core request.
Link: https://lore.kernel.org/r/20201126132144.351154-6-mkl@pengutronix.de
Tested-by: Thomas Kopp <thomas.kopp@microchip.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:12 +01:00
Marc Kleine-Budde
63e70488b4
can: mcp251xfd: move struct mcp251xfd_tef_ring definition
...
This patch moves the struct mcp251xfd_tef_ring upwards, so that the union
mcp251xfd_write_reg_buf and struct spi_transfer can be made members of it.
Link: https://lore.kernel.org/r/20201126132144.351154-5-mkl@pengutronix.de
Tested-by: Thomas Kopp <thomas.kopp@microchip.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:12 +01:00
Marc Kleine-Budde
dada6a6c7d
can: mcp251xfd: struct mcp251xfd_priv::tef to array of length 1
...
This patch converts the struct mcp251xfd_tef_ring member within the struct
mcp251xfd_priv into an array of length one. This way all rings (tef, tx and rx)
can be accessed in the same way.
Link: https://lore.kernel.org/r/20201126132144.351154-4-mkl@pengutronix.de
Tested-by: Thomas Kopp <thomas.kopp@microchip.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:12 +01:00
Ursula Maplehurst
1f652bb6ba
can: mcp25xxfd: rx-path: reduce number of SPI core requests to set UINC bit
...
Reduce the number of separate SPI core requests when setting the UINC bit in
the RX FIFO, and instead batch them up into a single SPI core request.
Link: https://github.com/marckleinebudde/linux/issues/4
Link: https://lore.kernel.org/r/20201126132144.351154-3-mkl@pengutronix.de
Tested-by: Thomas Kopp <thomas.kopp@microchip.com >
Signed-off-by: Ursula Maplehurst <ursula@kangatronix.co.uk >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:12 +01:00
Marc Kleine-Budde
4843ad9b61
can: mcp251xfd: mcp25xxfd_ring_alloc(): add define instead open coding the maximum number of RX objects
...
This patch add a define for the maximum number of RX objects instead of open
coding it.
Link: https://lore.kernel.org/r/20201126132144.351154-2-mkl@pengutronix.de
Tested-by: Thomas Kopp <thomas.kopp@microchip.com >
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:12 +01:00
Gustavo A. R. Silva
368444dd7a
can: pcan_usb_core: fix fall-through warnings for Clang
...
In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning by
moving the "default" to the end of the "switch" statement and explicitly adding
a break statement instead of letting the code fall through to the next case.
Link: https://github.com/KSPP/linux/issues/115
Reported-by: Gustavo A. R. Silva <gustavoars@kernel.org >
Link: http://lore.kernel.org/r/aab7cf16bf43cc7c3e9c9930d2dae850c1d07a3c.1605896059.git.gustavoars@kernel.org
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org >
[mkl: move default to end]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de >
2020-11-29 21:19:11 +01:00
Jakub Kicinski
5c39f26e67
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
...
Trivial conflict in CAN, keep the net-next + the byteswap wrapper.
Conflicts:
drivers/net/can/usb/gs_usb.c
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2020-11-27 18:25:27 -08:00