[PATCH 28/48] drm: omapdrm: dss: Pass DSS pointer to remaining dss functions
Sebastian Reichel
sre at kernel.org
Mon Oct 16 09:15:08 UTC 2017
Hi,
On Fri, Oct 13, 2017 at 05:59:24PM +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>
> ---
Reviewed-by: Sebastian Reichel <sebastian.reichel at collabora.co.uk>
-- Sebastian
> drivers/gpu/drm/omapdrm/dss/dispc.c | 2 +-
> drivers/gpu/drm/omapdrm/dss/dss.c | 9 +++++----
> drivers/gpu/drm/omapdrm/dss/dss.h | 7 ++++---
> drivers/gpu/drm/omapdrm/dss/venc.c | 11 +++++++----
> 4 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
> index 7b74c8ee9372..912957c471ce 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dispc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
> @@ -2737,7 +2737,7 @@ static int dispc_ovl_enable(enum omap_plane_id plane, bool enable)
>
> static enum omap_dss_output_id dispc_mgr_get_supported_outputs(enum omap_channel channel)
> {
> - return dss_get_supported_outputs(channel);
> + return dss_get_supported_outputs(dispc.dss, channel);
> }
>
> static void dispc_lcd_enable_signal_polarity(bool act_high)
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
> index 24237ed0557f..98a0da32f217 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.c
> @@ -706,9 +706,10 @@ unsigned long dss_get_max_fck_rate(struct dss_device *dss)
> return dss->feat->fck_freq_max;
> }
>
> -enum omap_dss_output_id dss_get_supported_outputs(enum omap_channel channel)
> +enum omap_dss_output_id dss_get_supported_outputs(struct dss_device *dss,
> + enum omap_channel channel)
> {
> - return dss.feat->outputs[channel];
> + return dss->feat->outputs[channel];
> }
>
> static int dss_setup_default_clock(void)
> @@ -737,7 +738,7 @@ static int dss_setup_default_clock(void)
> return 0;
> }
>
> -void dss_set_venc_output(enum omap_dss_venc_type type)
> +void dss_set_venc_output(struct dss_device *dss, enum omap_dss_venc_type type)
> {
> int l = 0;
>
> @@ -752,7 +753,7 @@ void dss_set_venc_output(enum omap_dss_venc_type type)
> REG_FLD_MOD(DSS_CONTROL, l, 6, 6);
> }
>
> -void dss_set_dac_pwrdn_bgz(bool enable)
> +void dss_set_dac_pwrdn_bgz(struct dss_device *dss, bool enable)
> {
> REG_FLD_MOD(DSS_CONTROL, enable, 5, 5); /* DAC Power-Down Control */
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h
> index cb257ffc8a54..2641d5c6a32a 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.h
> @@ -286,7 +286,8 @@ void dss_runtime_put(struct dss_device *dss);
>
> unsigned long dss_get_dispc_clk_rate(struct dss_device *dss);
> unsigned long dss_get_max_fck_rate(struct dss_device *dss);
> -enum omap_dss_output_id dss_get_supported_outputs(enum omap_channel channel);
> +enum omap_dss_output_id dss_get_supported_outputs(struct dss_device *dss,
> + enum omap_channel channel);
> int dss_dpi_select_source(struct dss_device *dss, int port,
> enum omap_channel channel);
> void dss_select_hdmi_venc_clk_source(struct dss_device *dss,
> @@ -317,8 +318,8 @@ enum dss_clk_source dss_get_dsi_clk_source(struct dss_device *dss,
> enum dss_clk_source dss_get_lcd_clk_source(struct dss_device *dss,
> enum omap_channel channel);
>
> -void dss_set_venc_output(enum omap_dss_venc_type type);
> -void dss_set_dac_pwrdn_bgz(bool enable);
> +void dss_set_venc_output(struct dss_device *dss, enum omap_dss_venc_type type);
> +void dss_set_dac_pwrdn_bgz(struct dss_device *dss, bool enable);
>
> int dss_set_fck_rate(struct dss_device *dss, unsigned long rate);
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
> index 68035c1acf1f..179ef73a5564 100644
> --- a/drivers/gpu/drm/omapdrm/dss/venc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/venc.c
> @@ -327,6 +327,7 @@ static struct {
> struct mutex venc_lock;
> u32 wss_data;
> struct regulator *vdda_dac_reg;
> + struct dss_device *dss;
>
> struct dss_debugfs_entry *debugfs;
>
> @@ -472,8 +473,8 @@ static int venc_power_on(struct omap_dss_device *dssdev)
> venc_reset();
> venc_write_config(venc_timings_to_config(&venc.vm));
>
> - dss_set_venc_output(venc.type);
> - dss_set_dac_pwrdn_bgz(1);
> + dss_set_venc_output(venc.dss, venc.type);
> + dss_set_dac_pwrdn_bgz(venc.dss, 1);
>
> l = 0;
>
> @@ -503,7 +504,7 @@ static int venc_power_on(struct omap_dss_device *dssdev)
> regulator_disable(venc.vdda_dac_reg);
> err1:
> venc_write_reg(VENC_OUTPUT_CONTROL, 0);
> - dss_set_dac_pwrdn_bgz(0);
> + dss_set_dac_pwrdn_bgz(venc.dss, 0);
>
> venc_runtime_put();
> err0:
> @@ -515,7 +516,7 @@ static void venc_power_off(struct omap_dss_device *dssdev)
> enum omap_channel channel = dssdev->dispc_channel;
>
> venc_write_reg(VENC_OUTPUT_CONTROL, 0);
> - dss_set_dac_pwrdn_bgz(0);
> + dss_set_dac_pwrdn_bgz(venc.dss, 0);
>
> dss_mgr_disable(channel);
>
> @@ -876,11 +877,13 @@ static const struct soc_device_attribute venc_soc_devices[] = {
> static int venc_bind(struct device *dev, struct device *master, void *data)
> {
> struct platform_device *pdev = to_platform_device(dev);
> + struct dss_device *dss = dss_get_device(master);
> u8 rev_id;
> struct resource *venc_mem;
> int r;
>
> venc.pdev = pdev;
> + venc.dss = dss;
>
> /* The OMAP34xx, OMAP35xx and AM35xx VENC require the TV DAC clock. */
> if (soc_device_match(venc_soc_devices))
> --
> 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/dd943830/attachment.sig>
More information about the dri-devel
mailing list