[PATCH 24/48] drm: omapdrm: sdi: Pass DSS pointer to dss_sdi_*() functions
Sebastian Reichel
sre at kernel.org
Mon Oct 16 08:47:32 UTC 2017
Hi Laurent,
On Fri, Oct 13, 2017 at 05:59:20PM +0300, Laurent Pinchart wrote:
> This removes the need to access the global DSS private data in those
> functions (both for the current accesses and the future ones that will
> be introduced when allocating the DSS device dynamically).
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> drivers/gpu/drm/omapdrm/dss/dss.c | 8 ++++----
> drivers/gpu/drm/omapdrm/dss/dss.h | 14 ++++++++------
> drivers/gpu/drm/omapdrm/dss/sdi.c | 13 ++++++++-----
> 3 files changed, 20 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
> index 7179d02e7451..f8b71e24a07d 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.c
> @@ -287,7 +287,7 @@ static int dss_ctrl_pll_set_control_mux(enum dss_clk_source clk_src,
> return 0;
> }
>
> -void dss_sdi_init(int datapairs)
> +void dss_sdi_init(struct dss_device *dss, int datapairs)
> {
> u32 l;
>
> @@ -306,7 +306,7 @@ void dss_sdi_init(int datapairs)
> dss_write_reg(DSS_PLL_CONTROL, l);
> }
>
> -int dss_sdi_enable(void)
> +int dss_sdi_enable(struct dss_device *dss)
> {
> unsigned long timeout;
>
> @@ -364,7 +364,7 @@ int dss_sdi_enable(void)
> return -ETIMEDOUT;
> }
>
> -void dss_sdi_disable(void)
> +void dss_sdi_disable(struct dss_device *dss)
> {
> dispc_lcd_enable_signal(0);
>
> @@ -1226,7 +1226,7 @@ static int dss_init_ports(struct platform_device *pdev)
> dpi_init_port(pdev, port, dss.feat->model);
> break;
> case OMAP_DISPLAY_TYPE_SDI:
> - sdi_init_port(pdev, port);
> + sdi_init_port(&dss, pdev, port);
I guess this should be 'dss' instead of '&dss'? Otherwise looks
fine.
-- Sebastian
> break;
> default:
> break;
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h
> index 0b8facf258cf..08651f101518 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.h
> @@ -300,9 +300,9 @@ void dss_video_pll_uninit(struct dss_pll *pll);
>
> void dss_ctrl_pll_enable(struct dss_pll *pll, bool enable);
>
> -void dss_sdi_init(int datapairs);
> -int dss_sdi_enable(void);
> -void dss_sdi_disable(void);
> +void dss_sdi_init(struct dss_device *dss, int datapairs);
> +int dss_sdi_enable(struct dss_device *dss);
> +void dss_sdi_disable(struct dss_device *dss);
>
> void dss_select_dsi_clk_source(int dsi_module,
> enum dss_clk_source clk_src);
> @@ -323,11 +323,13 @@ bool dss_div_calc(unsigned long pck, unsigned long fck_min,
>
> /* SDI */
> #ifdef CONFIG_OMAP2_DSS_SDI
> -int sdi_init_port(struct platform_device *pdev, struct device_node *port);
> +int sdi_init_port(struct dss_device *dss, struct platform_device *pdev,
> + struct device_node *port);
> void sdi_uninit_port(struct device_node *port);
> #else
> -static inline int sdi_init_port(struct platform_device *pdev,
> - struct device_node *port)
> +static inline int sdi_init_port(struct dss_device *dss,
> + struct platform_device *pdev,
> + struct device_node *port)
> {
> return 0;
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
> index d18ad58c5a19..39cb5c8af0dc 100644
> --- a/drivers/gpu/drm/omapdrm/dss/sdi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
> @@ -33,6 +33,7 @@
>
> static struct {
> struct platform_device *pdev;
> + struct dss_device *dss;
>
> bool update_enabled;
> struct regulator *vdds_sdi_reg;
> @@ -189,8 +190,8 @@ static int sdi_display_enable(struct omap_dss_device *dssdev)
> */
> dispc_mgr_set_clock_div(channel, &sdi.mgr_config.clock_info);
>
> - dss_sdi_init(sdi.datapairs);
> - r = dss_sdi_enable();
> + dss_sdi_init(sdi.dss, sdi.datapairs);
> + r = dss_sdi_enable(sdi.dss);
> if (r)
> goto err_sdi_enable;
> mdelay(2);
> @@ -202,7 +203,7 @@ static int sdi_display_enable(struct omap_dss_device *dssdev)
> return 0;
>
> err_mgr_enable:
> - dss_sdi_disable();
> + dss_sdi_disable(sdi.dss);
> err_sdi_enable:
> err_set_dss_clock_div:
> err_calc_clock_div:
> @@ -219,7 +220,7 @@ static void sdi_display_disable(struct omap_dss_device *dssdev)
>
> dss_mgr_disable(channel);
>
> - dss_sdi_disable();
> + dss_sdi_disable(sdi.dss);
>
> dispc_runtime_put();
>
> @@ -347,7 +348,8 @@ static void sdi_uninit_output(struct platform_device *pdev)
> omapdss_unregister_output(out);
> }
>
> -int sdi_init_port(struct platform_device *pdev, struct device_node *port)
> +int sdi_init_port(struct dss_device *dss, struct platform_device *pdev,
> + struct device_node *port)
> {
> struct device_node *ep;
> u32 datapairs;
> @@ -364,6 +366,7 @@ int sdi_init_port(struct platform_device *pdev, struct device_node *port)
> }
>
> sdi.datapairs = datapairs;
> + sdi.dss = dss;
>
> of_node_put(ep);
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20171016/e50df6d0/attachment.sig>
More information about the dri-devel
mailing list