Re: [PATCH 28/48] drm: omapdrm: dss: Pass DSS pointer to remaining dss functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxx>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx>

-- 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@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux