All of lore.kernel.org
 help / color / mirror / Atom feed
From: Abhinav Kumar <quic_abhinavk@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
	Abhinav Kumar <abhinavk@codeaurora.org>
Cc: Stephen Boyd <sboyd@kernel.org>, <linux-arm-msm@vger.kernel.org>,
	<dri-devel@lists.freedesktop.org>,
	David Airlie <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	<freedreno@lists.freedesktop.org>
Subject: Re: [Freedreno] [PATCH v1 7/8] drm/msm/dpu: simplify DPU's regset32 code
Date: Thu, 9 Dec 2021 14:02:12 -0800	[thread overview]
Message-ID: <5b537a80-818b-0763-8ce7-be53e0519e77@quicinc.com> (raw)
In-Reply-To: <20211201222633.2476780-8-dmitry.baryshkov@linaro.org>



On 12/1/2021 2:26 PM, Dmitry Baryshkov wrote:
> Squash dpu_debugfs_setup_regset32() into dpu_debugfs_create_regset32().
> it makes little sense to have separate function to just setup the
> structure.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c   | 32 ++++++++++++-------
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h   | 38 +++--------------------
>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 27 +++++-----------
>   3 files changed, 33 insertions(+), 64 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 4c04982c71b2..7e7a619769a8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -182,6 +182,15 @@ static void dpu_debugfs_danger_init(struct dpu_kms *dpu_kms,
>   
>   }
>   
> +/*
> + * Companion structure for dpu_debugfs_create_regset32.
> + */
> +struct dpu_debugfs_regset32 {
> +	uint32_t offset;
> +	uint32_t blk_len;
> +	struct dpu_kms *dpu_kms;
> +};
> +
>   static int _dpu_debugfs_show_regset32(struct seq_file *s, void *data)
>   {
>   	struct dpu_debugfs_regset32 *regset = s->private;
> @@ -229,24 +238,23 @@ static const struct file_operations dpu_fops_regset32 = {
>   	.release =	single_release,
>   };
>   
> -void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
> +void dpu_debugfs_create_regset32(const char *name, umode_t mode,
> +		void *parent,
>   		uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms)
>   {
> -	if (regset) {
> -		regset->offset = offset;
> -		regset->blk_len = length;
> -		regset->dpu_kms = dpu_kms;
> -	}
> -}
> +	struct dpu_debugfs_regset32 *regset;
>   
> -void dpu_debugfs_create_regset32(const char *name, umode_t mode,
> -		void *parent, struct dpu_debugfs_regset32 *regset)
> -{
> -	if (!name || !regset || !regset->dpu_kms || !regset->blk_len)
> +	if (WARN_ON(!name || !dpu_kms || !length))
> +		return;
> +
> +	regset = devm_kzalloc(&dpu_kms->pdev->dev, sizeof(*regset), GFP_KERNEL);
> +	if (!regset)
>   		return;
>   
>   	/* make sure offset is a multiple of 4 */
> -	regset->offset = round_down(regset->offset, 4);
> +	regset->offset = round_down(offset, 4);
> +	regset->blk_len = length;
> +	regset->dpu_kms = dpu_kms;
>   
>   	debugfs_create_file(name, mode, parent, regset, &dpu_fops_regset32);
>   }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> index 775bcbda860f..b53cdeb1b5c4 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> @@ -160,33 +160,9 @@ struct dpu_global_state
>    *
>    * Documentation/filesystems/debugfs.rst
>    *
> - * @dpu_debugfs_setup_regset32: Initialize data for dpu_debugfs_create_regset32
>    * @dpu_debugfs_create_regset32: Create 32-bit register dump file
> - * @dpu_debugfs_get_root: Get root dentry for DPU_KMS's debugfs node
>    */
>   
> -/**
> - * Companion structure for dpu_debugfs_create_regset32. Do not initialize the
> - * members of this structure explicitly; use dpu_debugfs_setup_regset32 instead.
> - */
> -struct dpu_debugfs_regset32 {
> -	uint32_t offset;
> -	uint32_t blk_len;
> -	struct dpu_kms *dpu_kms;
> -};
> -
> -/**
> - * dpu_debugfs_setup_regset32 - Initialize register block definition for debugfs
> - * This function is meant to initialize dpu_debugfs_regset32 structures for use
> - * with dpu_debugfs_create_regset32.
> - * @regset: opaque register definition structure
> - * @offset: sub-block offset
> - * @length: sub-block length, in bytes
> - * @dpu_kms: pointer to dpu kms structure
> - */
> -void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
> -		uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms);
> -
>   /**
>    * dpu_debugfs_create_regset32 - Create register read back file for debugfs
>    *
> @@ -195,20 +171,16 @@ void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
>    * names/offsets do not need to be provided. The 'read' function simply outputs
>    * sequential register values over a specified range.
>    *
> - * Similar to the related debugfs_create_regset32 API, the structure pointed to
> - * by regset needs to persist for the lifetime of the created file. The calling
> - * code is responsible for initialization/management of this structure.
> - *
> - * The structure pointed to by regset is meant to be opaque. Please use
> - * dpu_debugfs_setup_regset32 to initialize it.
> - *
>    * @name:   File name within debugfs
>    * @mode:   File mode within debugfs
>    * @parent: Parent directory entry within debugfs, can be NULL
> - * @regset: Pointer to persistent register block definition
> + * @offset: sub-block offset
> + * @length: sub-block length, in bytes
> + * @dpu_kms: pointer to dpu kms structure
>    */
>   void dpu_debugfs_create_regset32(const char *name, umode_t mode,
> -		void *parent, struct dpu_debugfs_regset32 *regset);
> +		void *parent,
> +		uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms);
>   
>   /**
>    * dpu_debugfs_get_root - Return root directory entry for KMS's debugfs
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> index d3176f58708e..ef66af696a40 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> @@ -108,11 +108,6 @@ struct dpu_plane {
>   	bool is_virtual;
>   	struct list_head mplane_list;
>   	struct dpu_mdss_cfg *catalog;
> -
> -	/* debugfs related stuff */
> -	struct dpu_debugfs_regset32 debugfs_src;
> -	struct dpu_debugfs_regset32 debugfs_scaler;
> -	struct dpu_debugfs_regset32 debugfs_csc;
>   };
>   
>   static const uint64_t supported_format_modifiers[] = {
> @@ -1379,35 +1374,29 @@ static int _dpu_plane_init_debugfs(struct drm_plane *plane)
>   			debugfs_root, (unsigned long *)&pdpu->pipe_hw->cap->features);
>   
>   	/* add register dump support */
> -	dpu_debugfs_setup_regset32(&pdpu->debugfs_src,
> +	dpu_debugfs_create_regset32("src_blk", 0400,
> +			debugfs_root,
>   			sblk->src_blk.base + cfg->base,
>   			sblk->src_blk.len,
>   			kms);
> -	dpu_debugfs_create_regset32("src_blk", 0400,
> -			debugfs_root, &pdpu->debugfs_src);
>   
>   	if (cfg->features & BIT(DPU_SSPP_SCALER_QSEED3) ||
>   			cfg->features & BIT(DPU_SSPP_SCALER_QSEED3LITE) ||
>   			cfg->features & BIT(DPU_SSPP_SCALER_QSEED2) ||
> -			cfg->features & BIT(DPU_SSPP_SCALER_QSEED4)) {
> -		dpu_debugfs_setup_regset32(&pdpu->debugfs_scaler,
> +			cfg->features & BIT(DPU_SSPP_SCALER_QSEED4))
> +		dpu_debugfs_create_regset32("scaler_blk", 0400,
> +				debugfs_root,
>   				sblk->scaler_blk.base + cfg->base,
>   				sblk->scaler_blk.len,
>   				kms);
> -		dpu_debugfs_create_regset32("scaler_blk", 0400,
> -				debugfs_root,
> -				&pdpu->debugfs_scaler);
> -	}
>   
>   	if (cfg->features & BIT(DPU_SSPP_CSC) ||
> -			cfg->features & BIT(DPU_SSPP_CSC_10BIT)) {
> -		dpu_debugfs_setup_regset32(&pdpu->debugfs_csc,
> +			cfg->features & BIT(DPU_SSPP_CSC_10BIT))
> +		dpu_debugfs_create_regset32("csc_blk", 0400,
> +				debugfs_root,
>   				sblk->csc_blk.base + cfg->base,
>   				sblk->csc_blk.len,
>   				kms);
> -		dpu_debugfs_create_regset32("csc_blk", 0400,
> -				debugfs_root, &pdpu->debugfs_csc);
> -	}
>   
>   	debugfs_create_u32("xin_id",
>   			0400,
> 

WARNING: multiple messages have this Message-ID (diff)
From: Abhinav Kumar <quic_abhinavk@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
	Abhinav Kumar <abhinavk@codeaurora.org>
Cc: Stephen Boyd <sboyd@kernel.org>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	David Airlie <airlied@linux.ie>,
	freedreno@lists.freedesktop.org
Subject: Re: [Freedreno] [PATCH v1 7/8] drm/msm/dpu: simplify DPU's regset32 code
Date: Thu, 9 Dec 2021 14:02:12 -0800	[thread overview]
Message-ID: <5b537a80-818b-0763-8ce7-be53e0519e77@quicinc.com> (raw)
In-Reply-To: <20211201222633.2476780-8-dmitry.baryshkov@linaro.org>



On 12/1/2021 2:26 PM, Dmitry Baryshkov wrote:
> Squash dpu_debugfs_setup_regset32() into dpu_debugfs_create_regset32().
> it makes little sense to have separate function to just setup the
> structure.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c   | 32 ++++++++++++-------
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h   | 38 +++--------------------
>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 27 +++++-----------
>   3 files changed, 33 insertions(+), 64 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 4c04982c71b2..7e7a619769a8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -182,6 +182,15 @@ static void dpu_debugfs_danger_init(struct dpu_kms *dpu_kms,
>   
>   }
>   
> +/*
> + * Companion structure for dpu_debugfs_create_regset32.
> + */
> +struct dpu_debugfs_regset32 {
> +	uint32_t offset;
> +	uint32_t blk_len;
> +	struct dpu_kms *dpu_kms;
> +};
> +
>   static int _dpu_debugfs_show_regset32(struct seq_file *s, void *data)
>   {
>   	struct dpu_debugfs_regset32 *regset = s->private;
> @@ -229,24 +238,23 @@ static const struct file_operations dpu_fops_regset32 = {
>   	.release =	single_release,
>   };
>   
> -void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
> +void dpu_debugfs_create_regset32(const char *name, umode_t mode,
> +		void *parent,
>   		uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms)
>   {
> -	if (regset) {
> -		regset->offset = offset;
> -		regset->blk_len = length;
> -		regset->dpu_kms = dpu_kms;
> -	}
> -}
> +	struct dpu_debugfs_regset32 *regset;
>   
> -void dpu_debugfs_create_regset32(const char *name, umode_t mode,
> -		void *parent, struct dpu_debugfs_regset32 *regset)
> -{
> -	if (!name || !regset || !regset->dpu_kms || !regset->blk_len)
> +	if (WARN_ON(!name || !dpu_kms || !length))
> +		return;
> +
> +	regset = devm_kzalloc(&dpu_kms->pdev->dev, sizeof(*regset), GFP_KERNEL);
> +	if (!regset)
>   		return;
>   
>   	/* make sure offset is a multiple of 4 */
> -	regset->offset = round_down(regset->offset, 4);
> +	regset->offset = round_down(offset, 4);
> +	regset->blk_len = length;
> +	regset->dpu_kms = dpu_kms;
>   
>   	debugfs_create_file(name, mode, parent, regset, &dpu_fops_regset32);
>   }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> index 775bcbda860f..b53cdeb1b5c4 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> @@ -160,33 +160,9 @@ struct dpu_global_state
>    *
>    * Documentation/filesystems/debugfs.rst
>    *
> - * @dpu_debugfs_setup_regset32: Initialize data for dpu_debugfs_create_regset32
>    * @dpu_debugfs_create_regset32: Create 32-bit register dump file
> - * @dpu_debugfs_get_root: Get root dentry for DPU_KMS's debugfs node
>    */
>   
> -/**
> - * Companion structure for dpu_debugfs_create_regset32. Do not initialize the
> - * members of this structure explicitly; use dpu_debugfs_setup_regset32 instead.
> - */
> -struct dpu_debugfs_regset32 {
> -	uint32_t offset;
> -	uint32_t blk_len;
> -	struct dpu_kms *dpu_kms;
> -};
> -
> -/**
> - * dpu_debugfs_setup_regset32 - Initialize register block definition for debugfs
> - * This function is meant to initialize dpu_debugfs_regset32 structures for use
> - * with dpu_debugfs_create_regset32.
> - * @regset: opaque register definition structure
> - * @offset: sub-block offset
> - * @length: sub-block length, in bytes
> - * @dpu_kms: pointer to dpu kms structure
> - */
> -void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
> -		uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms);
> -
>   /**
>    * dpu_debugfs_create_regset32 - Create register read back file for debugfs
>    *
> @@ -195,20 +171,16 @@ void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
>    * names/offsets do not need to be provided. The 'read' function simply outputs
>    * sequential register values over a specified range.
>    *
> - * Similar to the related debugfs_create_regset32 API, the structure pointed to
> - * by regset needs to persist for the lifetime of the created file. The calling
> - * code is responsible for initialization/management of this structure.
> - *
> - * The structure pointed to by regset is meant to be opaque. Please use
> - * dpu_debugfs_setup_regset32 to initialize it.
> - *
>    * @name:   File name within debugfs
>    * @mode:   File mode within debugfs
>    * @parent: Parent directory entry within debugfs, can be NULL
> - * @regset: Pointer to persistent register block definition
> + * @offset: sub-block offset
> + * @length: sub-block length, in bytes
> + * @dpu_kms: pointer to dpu kms structure
>    */
>   void dpu_debugfs_create_regset32(const char *name, umode_t mode,
> -		void *parent, struct dpu_debugfs_regset32 *regset);
> +		void *parent,
> +		uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms);
>   
>   /**
>    * dpu_debugfs_get_root - Return root directory entry for KMS's debugfs
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> index d3176f58708e..ef66af696a40 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> @@ -108,11 +108,6 @@ struct dpu_plane {
>   	bool is_virtual;
>   	struct list_head mplane_list;
>   	struct dpu_mdss_cfg *catalog;
> -
> -	/* debugfs related stuff */
> -	struct dpu_debugfs_regset32 debugfs_src;
> -	struct dpu_debugfs_regset32 debugfs_scaler;
> -	struct dpu_debugfs_regset32 debugfs_csc;
>   };
>   
>   static const uint64_t supported_format_modifiers[] = {
> @@ -1379,35 +1374,29 @@ static int _dpu_plane_init_debugfs(struct drm_plane *plane)
>   			debugfs_root, (unsigned long *)&pdpu->pipe_hw->cap->features);
>   
>   	/* add register dump support */
> -	dpu_debugfs_setup_regset32(&pdpu->debugfs_src,
> +	dpu_debugfs_create_regset32("src_blk", 0400,
> +			debugfs_root,
>   			sblk->src_blk.base + cfg->base,
>   			sblk->src_blk.len,
>   			kms);
> -	dpu_debugfs_create_regset32("src_blk", 0400,
> -			debugfs_root, &pdpu->debugfs_src);
>   
>   	if (cfg->features & BIT(DPU_SSPP_SCALER_QSEED3) ||
>   			cfg->features & BIT(DPU_SSPP_SCALER_QSEED3LITE) ||
>   			cfg->features & BIT(DPU_SSPP_SCALER_QSEED2) ||
> -			cfg->features & BIT(DPU_SSPP_SCALER_QSEED4)) {
> -		dpu_debugfs_setup_regset32(&pdpu->debugfs_scaler,
> +			cfg->features & BIT(DPU_SSPP_SCALER_QSEED4))
> +		dpu_debugfs_create_regset32("scaler_blk", 0400,
> +				debugfs_root,
>   				sblk->scaler_blk.base + cfg->base,
>   				sblk->scaler_blk.len,
>   				kms);
> -		dpu_debugfs_create_regset32("scaler_blk", 0400,
> -				debugfs_root,
> -				&pdpu->debugfs_scaler);
> -	}
>   
>   	if (cfg->features & BIT(DPU_SSPP_CSC) ||
> -			cfg->features & BIT(DPU_SSPP_CSC_10BIT)) {
> -		dpu_debugfs_setup_regset32(&pdpu->debugfs_csc,
> +			cfg->features & BIT(DPU_SSPP_CSC_10BIT))
> +		dpu_debugfs_create_regset32("csc_blk", 0400,
> +				debugfs_root,
>   				sblk->csc_blk.base + cfg->base,
>   				sblk->csc_blk.len,
>   				kms);
> -		dpu_debugfs_create_regset32("csc_blk", 0400,
> -				debugfs_root, &pdpu->debugfs_csc);
> -	}
>   
>   	debugfs_create_u32("xin_id",
>   			0400,
> 

  reply	other threads:[~2021-12-09 22:02 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-01 22:26 [PATCH v1 0/8] drm/msm/dpu: cleanup debugfs code Dmitry Baryshkov
2021-12-01 22:26 ` Dmitry Baryshkov
2021-12-01 22:26 ` [PATCH v1 1/8] drm/msm/dpu: move disable_danger out of plane subdir Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 21:09   ` [Freedreno] " Abhinav Kumar
2021-12-09 21:09     ` Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 2/8] drm/msm/dpu: fix safe status debugfs file Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 21:10   ` [Freedreno] " Abhinav Kumar
2021-12-09 21:10     ` Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 3/8] drm/msm/dpu: make danger_status/safe_status readable Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 21:10   ` Abhinav Kumar
2021-12-09 21:10     ` Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 4/8] drm/msm/dpu: drop plane's default_scaling debugfs file Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 21:11   ` [Freedreno] " Abhinav Kumar
2021-12-09 21:11     ` Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 5/8] drm/msm/dpu: stop manually removing debugfs files for the DPU plane Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 21:11   ` Abhinav Kumar
2021-12-09 21:11     ` Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 6/8] drm/msm/dpu: stop manually removing debugfs files for the DPU CRTC Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 21:11   ` [Freedreno] " Abhinav Kumar
2021-12-09 21:11     ` Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 7/8] drm/msm/dpu: simplify DPU's regset32 code Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 22:02   ` Abhinav Kumar [this message]
2021-12-09 22:02     ` [Freedreno] " Abhinav Kumar
2021-12-01 22:26 ` [PATCH v1 8/8] drm/msm/dpu: move SSPP debugfs support from plane to SSPP code Dmitry Baryshkov
2021-12-01 22:26   ` Dmitry Baryshkov
2021-12-09 22:18   ` Abhinav Kumar
2021-12-09 22:18     ` Abhinav Kumar
2021-12-09 22:27     ` [Freedreno] " Abhinav Kumar
2021-12-09 22:27       ` Abhinav Kumar
2021-12-10  0:19       ` Dmitry Baryshkov
2021-12-16  1:15         ` Abhinav Kumar
2021-12-16  1:15           ` Abhinav Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5b537a80-818b-0763-8ce7-be53e0519e77@quicinc.com \
    --to=quic_abhinavk@quicinc.com \
    --cc=abhinavk@codeaurora.org \
    --cc=airlied@linux.ie \
    --cc=bjorn.andersson@linaro.org \
    --cc=daniel@ffwll.ch \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=robdclark@gmail.com \
    --cc=sboyd@kernel.org \
    --cc=sean@poorly.run \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.