linux/drivers/net/can
Anssi Hannula 1598efe57b can: xilinx_can: refactor code in preparation for CAN FD support
Xilinx CAN FD cores are different enough from the previous Zynq and AXI
CAN cores that some refactoring of the driver is needed.

This commit contains most of the required refactoring to existing code
and should not alter behavior on existing supported HW.

The changes are:

- Reading and writing to frame registers is parametrized to allow
  reading/writing a different frame in the future.

- Slightly misleading (as it did not specify *all* the interrupts
  supported by the HW) XCAN_INTR_ALL is replaced with specifying the
  interrupts inline in interrupt enabling code.

- xcan_devtype_data.caps is renamed to xcan_devtype_data.flags to allow
  for flags that define alternative functionality (e.g. mailboxes vs.
  FIFO) instead of purely additive capabilities.

- can_bittiming_const is added to xcan_devtype_data as CAN FD cores will
  have wider setting ranges.

- bus_clk clock name is now determined through xcan_devtype_data instead
  of comparing compatible string in probe().

- xcan_devtype_data is added to xcan_priv to allow flag checks after
  probe().

- XCAN_CAP_WATERMARK is now XCAN_FLAG_TXFEMP. CAN FD cores have
  watermark support but no TXFEMP interrupt, which is what we are
  actually interested in.

- xcan_start_xmit() is split to in two parts to prepare for TX mailboxes
  instead of FIFO in CAN FD cores.

v2: Wrapped some long lines in xcan_write_frame().

Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
Cc: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2018-07-27 10:40:17 +02:00
..
c_can can: c_can_pci: make c_can_pci_data const 2017-12-01 09:14:22 +01:00
cc770 can: cc770: fix spelling mistake: "comptibility" -> "compatibility" 2018-07-27 10:40:16 +02:00
ifi_canfd can: ifi: Repair the error handling 2018-03-12 09:55:12 +01:00
m_can can: m_can: Move accessing of message ram to after clocks are enabled 2018-07-23 14:34:45 +02:00
mscan can: mpc5xxx_can: check of_iomap return before use 2018-07-23 14:34:45 +02:00
peak_canfd can: peak_canfd: fix firmware < v3.3.0: limit allocation to 32-bit DMA addr only 2018-07-23 14:34:45 +02:00
rcar scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
sja1000 can: sja1000: Replace mdelay with usleep_range in pcan_add_channels 2018-07-27 10:40:17 +02:00
softing drivers/net: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
spi can: hi311x: Work around TX complete interrupt erratum 2018-05-10 18:25:30 +02:00
usb can: ucan: add driver for Theobroma Systems UCAN devices 2018-07-27 10:40:16 +02:00
at91_can.c drivers/net: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
dev.c can: dev: enable multi-queue for SocketCAN devices 2018-07-27 10:40:16 +02:00
flexcan.c can: flexcan: Switch to SPDX identifier 2018-07-27 10:40:17 +02:00
grcan.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
janz-ican3.c can: janz-ican3: fix ican3_xmit()'s return type 2018-07-27 10:40:16 +02:00
Kconfig can: remove bfin_can driver 2018-03-26 15:57:02 +02:00
led.c
Makefile can: remove bfin_can driver 2018-03-26 15:57:02 +02:00
pch_can.c can: fix assignment of error location in CAN error messages 2015-11-23 09:37:34 +01:00
rx-offload.c can: rx-offload: can_rx_offload_add_timestamp: remove duplicate semicolon at return statement 2018-01-05 11:12:08 +01:00
slcan.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
sun4i_can.c can: sun4i: fix sun4ican_start_xmit()'s return type 2018-07-27 10:40:16 +02:00
ti_hecc.c can: ti_hecc: Fix napi poll return value for repoll 2017-12-01 11:20:52 +01:00
vcan.c drivers/net: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
vxcan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
xilinx_can.c can: xilinx_can: refactor code in preparation for CAN FD support 2018-07-27 10:40:17 +02:00