mbox series

[v4,0/6] can: c_can: add support to 64 message objects

Message ID 20210302215435.18286-1-dariobin@libero.it
Headers show
Series can: c_can: add support to 64 message objects | expand

Message

Dario Binacchi March 2, 2021, 9:54 p.m. UTC
The D_CAN controller supports up to 128 messages. Until now the driver
only managed 32 messages although Sitara processors and DRA7 SOC can
handle 64.

The series was tested on a beaglebone board.

Note:
I have not changed the type of tx_field (belonging to the c_can_priv
structure) to atomic64_t because I think the atomic_t type has size
of at least 32 bits on x86 and arm, which is enough to handle 64
messages.
http://marc.info/?l=linux-can&m=139746476821294&w=2 reports the results
of tests performed just on x86 and arm architectures.

Changes in v4:
- Restore IF_RX interface.
- Add a comment to clarify why IF_RX interface is used instead of IF_TX.
- Use GENMASK() for setting msg_obj_rx_mask.
- Use BIT() for setting single bits and GENMASK() for setting masks.

Changes in v3:
- Use unsigned int instead of int as type of the msg_obj_* fields
  in the c_can_priv structure.
- Replace (u64)1 with 1UL in msg_obj_rx_mask setting.
- Use unsigned int instead of int as type of the msg_obj_num field
  in c_can_driver_data and c_can_pci_data structures.

Changes in v2:
- Fix compiling error reported by kernel test robot.
- Add Reported-by tag.
- Pass larger size to alloc_candev() routine to avoid an additional
  memory allocation/deallocation.
- Add message objects number to PCI driver data.

Dario Binacchi (6):
  can: c_can: remove unused code
  can: c_can: fix indentation
  can: c_can: add a comment about IF_RX interface's use
  can: c_can: use 32-bit write to set arbitration register
  can: c_can: prepare to up the message objects number
  can: c_can: add support to 64 message objects

 drivers/net/can/c_can/c_can.c          | 90 ++++++++++++++++----------
 drivers/net/can/c_can/c_can.h          | 32 ++++-----
 drivers/net/can/c_can/c_can_pci.c      |  6 +-
 drivers/net/can/c_can/c_can_platform.c |  6 +-
 4 files changed, 78 insertions(+), 56 deletions(-)

Comments

Marc Kleine-Budde March 4, 2021, 2:33 p.m. UTC | #1
On 02.03.2021 22:54:29, Dario Binacchi wrote:
> 

> The D_CAN controller supports up to 128 messages. Until now the driver

> only managed 32 messages although Sitara processors and DRA7 SOC can

> handle 64.

> 

> The series was tested on a beaglebone board.

> 

> Note:

> I have not changed the type of tx_field (belonging to the c_can_priv

> structure) to atomic64_t because I think the atomic_t type has size

> of at least 32 bits on x86 and arm, which is enough to handle 64

> messages.

> http://marc.info/?l=linux-can&m=139746476821294&w=2 reports the results

> of tests performed just on x86 and arm architectures.


Applied to linux-can-next/testing.

I've added some cleanup patches to the series. I'll send it around soon,
please test.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |