All of lore.kernel.org
 help / color / mirror / Atom feed
From: abhinavk@codeaurora.org
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>,
	Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
	Jonathan Marek <jonathan@marek.ca>,
	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 v3 2/4] drm/msm/dpu: drop dpu_hw_blk_destroy function
Date: Fri, 04 Jun 2021 14:08:56 -0700	[thread overview]
Message-ID: <24553e016e8e97b9b78e0e731d9719b5@codeaurora.org> (raw)
In-Reply-To: <20210515190909.1809050-3-dmitry.baryshkov@linaro.org>

On 2021-05-15 12:09, Dmitry Baryshkov wrote:
> The dpu_hw_blk_destroy() function is empty, so we can drop it now.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c      | 13 -------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h      |  1 -
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c      |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c     |  3 ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c     |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c       |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c  |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c     |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c      |  2 --
>  10 files changed, 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> index abad043f35f5..1f2b74b9eb65 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> @@ -22,16 +22,3 @@ void dpu_hw_blk_init(struct dpu_hw_blk *hw_blk, u32
> type, int id)
>  	hw_blk->type = type;
>  	hw_blk->id = id;
>  }
> -
> -/**
> - * dpu_hw_blk_destroy - destroy hw block object.
> - * @hw_blk:  pointer to hw block object
> - * return: none
> - */
> -void dpu_hw_blk_destroy(struct dpu_hw_blk *hw_blk)
> -{
> -	if (!hw_blk) {
> -		pr_err("invalid parameters\n");
> -		return;
> -	}
> -}
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> index fb3be9a36a50..7768694b558a 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> @@ -24,5 +24,4 @@ struct dpu_hw_blk {
>  };
> 
>  void dpu_hw_blk_init(struct dpu_hw_blk *hw_blk, u32 type, int id);
> -void dpu_hw_blk_destroy(struct dpu_hw_blk *hw_blk);
>  #endif /*_DPU_HW_BLK_H */
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> index 04a2c4b9a357..441f66a4fb37 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> @@ -620,7 +620,5 @@ struct dpu_hw_ctl *dpu_hw_ctl_init(enum dpu_ctl 
> idx,
> 
>  void dpu_hw_ctl_destroy(struct dpu_hw_ctl *ctx)
>  {
> -	if (ctx)
> -		dpu_hw_blk_destroy(&ctx->base);
>  	kfree(ctx);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> index d2f1045a736a..977b25968f34 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> @@ -117,9 +117,6 @@ struct dpu_hw_dspp *dpu_hw_dspp_init(enum dpu_dspp 
> idx,
> 
>  void dpu_hw_dspp_destroy(struct dpu_hw_dspp *dspp)
>  {
> -	if (dspp)
> -		dpu_hw_blk_destroy(&dspp->base);
> -
>  	kfree(dspp);
>  }
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> index 6ffe97601716..17224556d5a8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> @@ -332,8 +332,6 @@ struct dpu_hw_intf *dpu_hw_intf_init(enum dpu_intf 
> idx,
> 
>  void dpu_hw_intf_destroy(struct dpu_hw_intf *intf)
>  {
> -	if (intf)
> -		dpu_hw_blk_destroy(&intf->base);
>  	kfree(intf);
>  }
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> index 554bb881de3a..76f8b8f75b82 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> @@ -189,7 +189,5 @@ struct dpu_hw_mixer *dpu_hw_lm_init(enum dpu_lm 
> idx,
> 
>  void dpu_hw_lm_destroy(struct dpu_hw_mixer *lm)
>  {
> -	if (lm)
> -		dpu_hw_blk_destroy(&lm->base);
>  	kfree(lm);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> index 863229dd0140..406ba950a066 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> @@ -86,7 +86,5 @@ struct dpu_hw_merge_3d *dpu_hw_merge_3d_init(enum
> dpu_merge_3d idx,
> 
>  void dpu_hw_merge_3d_destroy(struct dpu_hw_merge_3d *hw)
>  {
> -	if (hw)
> -		dpu_hw_blk_destroy(&hw->base);
>  	kfree(hw);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> index 334d5b28f533..92cd724263ce 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> @@ -289,7 +289,5 @@ struct dpu_hw_pingpong *dpu_hw_pingpong_init(enum
> dpu_pingpong idx,
> 
>  void dpu_hw_pingpong_destroy(struct dpu_hw_pingpong *pp)
>  {
> -	if (pp)
> -		dpu_hw_blk_destroy(&pp->base);
>  	kfree(pp);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> index ceb2488ea270..8734a47040aa 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> @@ -740,8 +740,6 @@ struct dpu_hw_pipe *dpu_hw_sspp_init(enum dpu_sspp 
> idx,
> 
>  void dpu_hw_sspp_destroy(struct dpu_hw_pipe *ctx)
>  {
> -	if (ctx)
> -		dpu_hw_blk_destroy(&ctx->base);
>  	kfree(ctx);
>  }
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> index 5d2c33ec1de7..dae77d9c2c74 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> @@ -329,8 +329,6 @@ struct dpu_hw_mdp *dpu_hw_mdptop_init(enum dpu_mdp 
> idx,
> 
>  void dpu_hw_mdp_destroy(struct dpu_hw_mdp *mdp)
>  {
> -	if (mdp)
> -		dpu_hw_blk_destroy(&mdp->base);
>  	kfree(mdp);
>  }

WARNING: multiple messages have this Message-ID (diff)
From: abhinavk@codeaurora.org
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: freedreno@lists.freedesktop.org,
	Jonathan Marek <jonathan@marek.ca>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	David Airlie <airlied@linux.ie>, Sean Paul <sean@poorly.run>
Subject: Re: [Freedreno] [PATCH v3 2/4] drm/msm/dpu: drop dpu_hw_blk_destroy function
Date: Fri, 04 Jun 2021 14:08:56 -0700	[thread overview]
Message-ID: <24553e016e8e97b9b78e0e731d9719b5@codeaurora.org> (raw)
In-Reply-To: <20210515190909.1809050-3-dmitry.baryshkov@linaro.org>

On 2021-05-15 12:09, Dmitry Baryshkov wrote:
> The dpu_hw_blk_destroy() function is empty, so we can drop it now.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c      | 13 -------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h      |  1 -
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c      |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c     |  3 ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c     |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c       |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c  |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c     |  2 --
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c      |  2 --
>  10 files changed, 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> index abad043f35f5..1f2b74b9eb65 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c
> @@ -22,16 +22,3 @@ void dpu_hw_blk_init(struct dpu_hw_blk *hw_blk, u32
> type, int id)
>  	hw_blk->type = type;
>  	hw_blk->id = id;
>  }
> -
> -/**
> - * dpu_hw_blk_destroy - destroy hw block object.
> - * @hw_blk:  pointer to hw block object
> - * return: none
> - */
> -void dpu_hw_blk_destroy(struct dpu_hw_blk *hw_blk)
> -{
> -	if (!hw_blk) {
> -		pr_err("invalid parameters\n");
> -		return;
> -	}
> -}
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> index fb3be9a36a50..7768694b558a 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
> @@ -24,5 +24,4 @@ struct dpu_hw_blk {
>  };
> 
>  void dpu_hw_blk_init(struct dpu_hw_blk *hw_blk, u32 type, int id);
> -void dpu_hw_blk_destroy(struct dpu_hw_blk *hw_blk);
>  #endif /*_DPU_HW_BLK_H */
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> index 04a2c4b9a357..441f66a4fb37 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> @@ -620,7 +620,5 @@ struct dpu_hw_ctl *dpu_hw_ctl_init(enum dpu_ctl 
> idx,
> 
>  void dpu_hw_ctl_destroy(struct dpu_hw_ctl *ctx)
>  {
> -	if (ctx)
> -		dpu_hw_blk_destroy(&ctx->base);
>  	kfree(ctx);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> index d2f1045a736a..977b25968f34 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c
> @@ -117,9 +117,6 @@ struct dpu_hw_dspp *dpu_hw_dspp_init(enum dpu_dspp 
> idx,
> 
>  void dpu_hw_dspp_destroy(struct dpu_hw_dspp *dspp)
>  {
> -	if (dspp)
> -		dpu_hw_blk_destroy(&dspp->base);
> -
>  	kfree(dspp);
>  }
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> index 6ffe97601716..17224556d5a8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c
> @@ -332,8 +332,6 @@ struct dpu_hw_intf *dpu_hw_intf_init(enum dpu_intf 
> idx,
> 
>  void dpu_hw_intf_destroy(struct dpu_hw_intf *intf)
>  {
> -	if (intf)
> -		dpu_hw_blk_destroy(&intf->base);
>  	kfree(intf);
>  }
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> index 554bb881de3a..76f8b8f75b82 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> @@ -189,7 +189,5 @@ struct dpu_hw_mixer *dpu_hw_lm_init(enum dpu_lm 
> idx,
> 
>  void dpu_hw_lm_destroy(struct dpu_hw_mixer *lm)
>  {
> -	if (lm)
> -		dpu_hw_blk_destroy(&lm->base);
>  	kfree(lm);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> index 863229dd0140..406ba950a066 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c
> @@ -86,7 +86,5 @@ struct dpu_hw_merge_3d *dpu_hw_merge_3d_init(enum
> dpu_merge_3d idx,
> 
>  void dpu_hw_merge_3d_destroy(struct dpu_hw_merge_3d *hw)
>  {
> -	if (hw)
> -		dpu_hw_blk_destroy(&hw->base);
>  	kfree(hw);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> index 334d5b28f533..92cd724263ce 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c
> @@ -289,7 +289,5 @@ struct dpu_hw_pingpong *dpu_hw_pingpong_init(enum
> dpu_pingpong idx,
> 
>  void dpu_hw_pingpong_destroy(struct dpu_hw_pingpong *pp)
>  {
> -	if (pp)
> -		dpu_hw_blk_destroy(&pp->base);
>  	kfree(pp);
>  }
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> index ceb2488ea270..8734a47040aa 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> @@ -740,8 +740,6 @@ struct dpu_hw_pipe *dpu_hw_sspp_init(enum dpu_sspp 
> idx,
> 
>  void dpu_hw_sspp_destroy(struct dpu_hw_pipe *ctx)
>  {
> -	if (ctx)
> -		dpu_hw_blk_destroy(&ctx->base);
>  	kfree(ctx);
>  }
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> index 5d2c33ec1de7..dae77d9c2c74 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c
> @@ -329,8 +329,6 @@ struct dpu_hw_mdp *dpu_hw_mdptop_init(enum dpu_mdp 
> idx,
> 
>  void dpu_hw_mdp_destroy(struct dpu_hw_mdp *mdp)
>  {
> -	if (mdp)
> -		dpu_hw_blk_destroy(&mdp->base);
>  	kfree(mdp);
>  }

  reply	other threads:[~2021-06-04 21:09 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-15 19:09 [PATCH v3 0/3] drm/msm/dpu: simplify dpu_hw_blk handling Dmitry Baryshkov
2021-05-15 19:09 ` Dmitry Baryshkov
2021-05-15 19:09 ` [PATCH v3 1/4] drm/msm/dpu: remove unused dpu_hw_blk features Dmitry Baryshkov
2021-05-15 19:09   ` Dmitry Baryshkov
2021-06-04 21:08   ` [Freedreno] " abhinavk
2021-06-04 21:08     ` abhinavk
2021-05-15 19:09 ` [PATCH v3 2/4] drm/msm/dpu: drop dpu_hw_blk_destroy function Dmitry Baryshkov
2021-05-15 19:09   ` Dmitry Baryshkov
2021-06-04 21:08   ` abhinavk [this message]
2021-06-04 21:08     ` [Freedreno] " abhinavk
2021-05-15 19:09 ` [PATCH v3 3/4] drm/msm/dpu: use struct dpu_hw_merge_3d in dpu_hw_pingpong Dmitry Baryshkov
2021-05-15 19:09   ` Dmitry Baryshkov
2021-06-04 21:09   ` [Freedreno] " abhinavk
2021-06-04 21:09     ` abhinavk
2021-05-15 19:09 ` [PATCH v3 4/4] drm/msm/dpu: hw_blk: make dpu_hw_blk empty opaque structure Dmitry Baryshkov
2021-05-15 19:09   ` Dmitry Baryshkov
2021-06-04 21:15   ` [Freedreno] " abhinavk
2021-06-04 21:15     ` abhinavk
2021-06-02 21:43 ` [PATCH v3 0/3] drm/msm/dpu: simplify dpu_hw_blk handling Dmitry Baryshkov
2021-06-02 21:43   ` Dmitry Baryshkov

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=24553e016e8e97b9b78e0e731d9719b5@codeaurora.org \
    --to=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=jonathan@marek.ca \
    --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.