Re: [PATCH v2 02/30] drm: omapdrm: dss: Expose DSS data in a dss_device structure

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

 



Hi,

On Tue, Feb 13, 2018 at 02:00:20PM +0200, Laurent Pinchart wrote:
> The anoonymous dss structure in dss.c is the top-level component in the
> omapdss driver. As such it should store all internal instance-specific
> data that is currently stored in global variables. This however requires
> both naming the structure to pass it around functions, and accessing it
> from various locations in the omapdss driver. While we could implement
> get and set functions for every field that needs to be accessed outside
> of dss.c, that would introduce overhead and complexity that we could
> avoid by exposing the structure to internal components of the omapdss
> driver. Do so to prepare for removal of global variables.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---

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

-- Sebastian

>  drivers/gpu/drm/omapdrm/dss/dss.c | 29 +----------------------------
>  drivers/gpu/drm/omapdrm/dss/dss.h | 29 +++++++++++++++++++++++++++++
>  2 files changed, 30 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
> index d5490336e7c7..245d8c0ae461 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.c
> @@ -48,8 +48,6 @@
>  #include "omapdss.h"
>  #include "dss.h"
>  
> -#define DSS_SZ_REGS			SZ_512
> -
>  struct dss_reg {
>  	u16 idx;
>  };
> @@ -90,32 +88,7 @@ struct dss_features {
>  	bool has_lcd_clk_src;
>  };
>  
> -static struct {
> -	struct platform_device *pdev;
> -	void __iomem    *base;
> -	struct regmap	*syscon_pll_ctrl;
> -	u32		syscon_pll_ctrl_offset;
> -
> -	struct clk	*parent_clk;
> -	struct clk	*dss_clk;
> -	unsigned long	dss_clk_rate;
> -
> -	unsigned long	cache_req_pck;
> -	unsigned long	cache_prate;
> -	struct dispc_clock_info cache_dispc_cinfo;
> -
> -	enum dss_clk_source dsi_clk_source[MAX_NUM_DSI];
> -	enum dss_clk_source dispc_clk_source;
> -	enum dss_clk_source lcd_clk_source[MAX_DSS_LCD_MANAGERS];
> -
> -	bool		ctx_valid;
> -	u32		ctx[DSS_SZ_REGS / sizeof(u32)];
> -
> -	const struct dss_features *feat;
> -
> -	struct dss_pll	*video1_pll;
> -	struct dss_pll	*video2_pll;
> -} dss;
> +static struct dss_device dss;
>  
>  static const char * const dss_generic_clk_source_names[] = {
>  	[DSS_CLK_SRC_FCK]	= "FCK",
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h
> index 7f3fa5330408..257ff7c62764 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.h
> @@ -235,6 +235,35 @@ struct dss_lcd_mgr_config {
>  struct seq_file;
>  struct platform_device;
>  
> +#define DSS_SZ_REGS			SZ_512
> +
> +struct dss_device {
> +	struct platform_device *pdev;
> +	void __iomem    *base;
> +	struct regmap	*syscon_pll_ctrl;
> +	u32		syscon_pll_ctrl_offset;
> +
> +	struct clk	*parent_clk;
> +	struct clk	*dss_clk;
> +	unsigned long	dss_clk_rate;
> +
> +	unsigned long	cache_req_pck;
> +	unsigned long	cache_prate;
> +	struct dispc_clock_info cache_dispc_cinfo;
> +
> +	enum dss_clk_source dsi_clk_source[MAX_NUM_DSI];
> +	enum dss_clk_source dispc_clk_source;
> +	enum dss_clk_source lcd_clk_source[MAX_DSS_LCD_MANAGERS];
> +
> +	bool		ctx_valid;
> +	u32		ctx[DSS_SZ_REGS / sizeof(u32)];
> +
> +	const struct dss_features *feat;
> +
> +	struct dss_pll	*video1_pll;
> +	struct dss_pll	*video2_pll;
> +};
> +
>  /* core */
>  static inline int dss_set_min_bus_tput(struct device *dev, unsigned long tput)
>  {
> -- 
> 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