Drop has_new_pipe_configs variable from struct renesas_usbhs_driver_param and use info for getting device pipe configuration data by renaming usbhs_new_pipe[]->usbhs_rcar_pipe[] and changing the static qualifier to global so that struct renesas_usbhs_platform_info can be filled by respective devices. Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> --- v3: * New patch --- drivers/usb/renesas_usbhs/common.c | 9 ++++----- drivers/usb/renesas_usbhs/common.h | 2 ++ drivers/usb/renesas_usbhs/rcar2.c | 3 ++- drivers/usb/renesas_usbhs/rcar3.c | 6 ++++-- drivers/usb/renesas_usbhs/rza.c | 3 ++- drivers/usb/renesas_usbhs/rza2.c | 3 ++- include/linux/usb/renesas_usbhs.h | 1 - 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 177fa3144a47..013bc1583610 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -378,7 +378,7 @@ static struct renesas_usbhs_driver_pipe_config usbhsc_default_pipe[] = { }; /* commonly used on newer SH-Mobile and R-Car SoCs */ -static struct renesas_usbhs_driver_pipe_config usbhsc_new_pipe[] = { +struct renesas_usbhs_driver_pipe_config usbhsc_rcar_pipe[] = { RENESAS_USBHS_PIPE(USB_ENDPOINT_XFER_CONTROL, 64, 0x00, false), RENESAS_USBHS_PIPE(USB_ENDPOINT_XFER_ISOC, 1024, 0x08, true), RENESAS_USBHS_PIPE(USB_ENDPOINT_XFER_ISOC, 1024, 0x28, true), @@ -639,10 +639,9 @@ static int usbhs_probe(struct platform_device *pdev) priv->pfunc = &info->platform_callback; /* set default param if platform doesn't have */ - if (usbhs_get_dparam(priv, has_new_pipe_configs)) { - priv->dparam.pipe_configs = usbhsc_new_pipe; - priv->dparam.pipe_size = ARRAY_SIZE(usbhsc_new_pipe); - } else if (!priv->dparam.pipe_configs) { + priv->dparam.pipe_configs = info->driver_param.pipe_configs; + priv->dparam.pipe_size = info->driver_param.pipe_size; + if (!priv->dparam.pipe_configs) { priv->dparam.pipe_configs = usbhsc_default_pipe; priv->dparam.pipe_size = ARRAY_SIZE(usbhsc_default_pipe); } diff --git a/drivers/usb/renesas_usbhs/common.h b/drivers/usb/renesas_usbhs/common.h index 3fb5bc94dc0d..f6f527ca9b45 100644 --- a/drivers/usb/renesas_usbhs/common.h +++ b/drivers/usb/renesas_usbhs/common.h @@ -343,4 +343,6 @@ struct usbhs_priv *usbhs_pdev_to_priv(struct platform_device *pdev); #define usbhs_priv_to_dev(priv) (&priv->pdev->dev) #define usbhs_priv_to_lock(priv) (&priv->lock) +extern struct renesas_usbhs_driver_pipe_config usbhsc_rcar_pipe[]; + #endif /* RENESAS_USB_DRIVER_H */ diff --git a/drivers/usb/renesas_usbhs/rcar2.c b/drivers/usb/renesas_usbhs/rcar2.c index 52756fc2ac9c..170584f8de74 100644 --- a/drivers/usb/renesas_usbhs/rcar2.c +++ b/drivers/usb/renesas_usbhs/rcar2.c @@ -69,7 +69,8 @@ const struct renesas_usbhs_platform_info usbhs_rcar_gen2_plat_info = { .get_id = usbhs_get_id_as_gadget, }, .driver_param = { + .pipe_configs = usbhsc_rcar_pipe, + .pipe_size = 16, .has_usb_dmac = 1, - .has_new_pipe_configs = 1, }, }; diff --git a/drivers/usb/renesas_usbhs/rcar3.c b/drivers/usb/renesas_usbhs/rcar3.c index c181b2a0b9d3..da5c013cfd07 100644 --- a/drivers/usb/renesas_usbhs/rcar3.c +++ b/drivers/usb/renesas_usbhs/rcar3.c @@ -101,9 +101,10 @@ const struct renesas_usbhs_platform_info usbhs_rcar_gen3_plat_info = { .get_id = usbhs_get_id_as_gadget, }, .driver_param = { + .pipe_configs = usbhsc_rcar_pipe, + .pipe_size = 16, .has_usb_dmac = 1, .multi_clks = 1, - .has_new_pipe_configs = 1, }, }; @@ -113,8 +114,9 @@ const struct renesas_usbhs_platform_info usbhs_rcar_gen3_with_pll_plat_info = { .get_id = usbhs_get_id_as_gadget, }, .driver_param = { + .pipe_configs = usbhsc_rcar_pipe, + .pipe_size = 16, .has_usb_dmac = 1, .multi_clks = 1, - .has_new_pipe_configs = 1, }, }; diff --git a/drivers/usb/renesas_usbhs/rza.c b/drivers/usb/renesas_usbhs/rza.c index 97b5217c5a90..91c1971c3949 100644 --- a/drivers/usb/renesas_usbhs/rza.c +++ b/drivers/usb/renesas_usbhs/rza.c @@ -51,6 +51,7 @@ const struct renesas_usbhs_platform_info usbhs_rza1_plat_info = { .get_id = usbhs_get_id_as_gadget, }, .driver_param = { - .has_new_pipe_configs = 1, + .pipe_configs = usbhsc_rcar_pipe, + .pipe_size = 16, }, }; diff --git a/drivers/usb/renesas_usbhs/rza2.c b/drivers/usb/renesas_usbhs/rza2.c index f079817250bb..f6660628eea9 100644 --- a/drivers/usb/renesas_usbhs/rza2.c +++ b/drivers/usb/renesas_usbhs/rza2.c @@ -66,8 +66,9 @@ const struct renesas_usbhs_platform_info usbhs_rza2_plat_info = { .get_id = usbhs_get_id_as_gadget, }, .driver_param = { + .pipe_configs = usbhsc_rcar_pipe, + .pipe_size = 16, .has_cnen = 1, .cfifo_byte_addr = 1, - .has_new_pipe_configs = 1, }, }; diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index 372898d9eeb0..41f58cfbd876 100644 --- a/include/linux/usb/renesas_usbhs.h +++ b/include/linux/usb/renesas_usbhs.h @@ -169,7 +169,6 @@ struct renesas_usbhs_driver_param { u32 cfifo_byte_addr:1; /* CFIFO is byte addressable */ #define USBHS_USB_DMAC_XFER_SIZE 32 /* hardcode the xfer size */ u32 multi_clks:1; - u32 has_new_pipe_configs:1; }; /* -- 2.25.1