[PATCH v7 2/4] net: can: rockchip: Refactor the rkcanfd_devtype_data structure
Marc Kleine-Budde
mkl at pengutronix.de
Mon Sep 22 06:18:51 PDT 2025
On 22.09.2025 15:15:41, Elaine Zhang wrote:
> Add new function pointer:
> Encapsulate some hardware operation functions into
> rkcanfd_devtype_data to provide differentiated implementations for
> different models (such as RK3568v2/v3).
>
> Signed-off-by: Elaine Zhang <zhangqing at rock-chips.com>
[...]
> diff --git a/drivers/net/can/rockchip/rockchip_canfd.h b/drivers/net/can/rockchip/rockchip_canfd.h
> index 93131c7d7f54..bcd26d23062b 100644
> --- a/drivers/net/can/rockchip/rockchip_canfd.h
> +++ b/drivers/net/can/rockchip/rockchip_canfd.h
> @@ -436,9 +436,20 @@ enum rkcanfd_model {
> RKCANFD_MODEL_RK3568V3 = 0x35683,
> };
>
> +struct rkcanfd_priv;
> +
> struct rkcanfd_devtype_data {
> enum rkcanfd_model model;
> u32 quirks;
> + void (*get_berr_counter)(struct rkcanfd_priv *priv, struct can_berr_counter *bec);
> + void (*interrupts_enable)(const struct rkcanfd_priv *priv);
> + void (*interrupts_disable)(const struct rkcanfd_priv *priv);
> + void (*fifo_setup)(struct rkcanfd_priv *priv);
Why do you make fifo setup a function pointer if it's only called from
chip_start, which you make a function pointer, too?
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung Nürnberg | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20250922/3272b1c2/attachment.sig>
More information about the linux-arm-kernel
mailing list