public inbox for amd-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Huang Rui <ray.huang-5C7GfCeVMHo@public.gmane.org>
To: "Christian König"
	<ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [PATCH 7/9] drm/amdgpu: add IH ring to ih_get_wptr/ih_set_rptr
Date: Wed, 26 Sep 2018 15:40:02 +0800	[thread overview]
Message-ID: <20180926074001.GA15205@hr-amur2> (raw)
In-Reply-To: <20180924123820.1873-7-christian.koenig-5C7GfCeVMHo@public.gmane.org>

On Mon, Sep 24, 2018 at 02:38:18PM +0200, Christian König wrote:
> Let's start to support multiple rings.
> 
> Signed-off-by: Christian König <christian.koenig@amd.com>

Reviewed-by: Huang Rui <ray.huang@amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c  |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h  |  8 ++++----
>  drivers/gpu/drm/amd/amdgpu/cik_ih.c     | 16 +++++++++-------
>  drivers/gpu/drm/amd/amdgpu/cz_ih.c      | 16 +++++++++-------
>  drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 16 +++++++++-------
>  drivers/gpu/drm/amd/amdgpu/si_ih.c      | 16 +++++++++-------
>  drivers/gpu/drm/amd/amdgpu/tonga_ih.c   | 28 +++++++++++++++-------------
>  drivers/gpu/drm/amd/amdgpu/vega10_ih.c  | 32 +++++++++++++++++---------------
>  8 files changed, 75 insertions(+), 63 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
> index 8af67f649660..fb8dd6179926 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
> @@ -137,7 +137,7 @@ int amdgpu_ih_process(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
>  	if (!ih->enabled || adev->shutdown)
>  		return IRQ_NONE;
>  
> -	wptr = amdgpu_ih_get_wptr(adev);
> +	wptr = amdgpu_ih_get_wptr(adev, ih);
>  
>  restart_ih:
>  	/* is somebody else already processing irqs? */
> @@ -154,11 +154,11 @@ int amdgpu_ih_process(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
>  		ih->rptr &= ih->ptr_mask;
>  	}
>  
> -	amdgpu_ih_set_rptr(adev);
> +	amdgpu_ih_set_rptr(adev, ih);
>  	atomic_set(&ih->lock, 0);
>  
>  	/* make sure wptr hasn't changed while processing */
> -	wptr = amdgpu_ih_get_wptr(adev);
> +	wptr = amdgpu_ih_get_wptr(adev, ih);
>  	if (wptr != ih->rptr)
>  		goto restart_ih;
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
> index d88f82321ee4..61967e7b64a7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
> @@ -52,12 +52,12 @@ struct amdgpu_ih_ring {
>  /* provided by the ih block */
>  struct amdgpu_ih_funcs {
>  	/* ring read/write ptr handling, called from interrupt context */
> -	u32 (*get_wptr)(struct amdgpu_device *adev);
> -	void (*set_rptr)(struct amdgpu_device *adev);
> +	u32 (*get_wptr)(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih);
> +	void (*set_rptr)(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih);
>  };
>  
> -#define amdgpu_ih_get_wptr(adev) (adev)->irq.ih.funcs->get_wptr((adev))
> -#define amdgpu_ih_set_rptr(adev) (adev)->irq.ih.funcs->set_rptr((adev))
> +#define amdgpu_ih_get_wptr(adev, ih) (ih)->funcs->get_wptr((adev), (ih))
> +#define amdgpu_ih_set_rptr(adev, ih) (ih)->funcs->set_rptr((adev), (ih))
>  
>  int amdgpu_ih_ring_init(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
>  			unsigned ring_size, bool use_bus_addr);
> diff --git a/drivers/gpu/drm/amd/amdgpu/cik_ih.c b/drivers/gpu/drm/amd/amdgpu/cik_ih.c
> index 161f0225749c..341092768809 100644
> --- a/drivers/gpu/drm/amd/amdgpu/cik_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/cik_ih.c
> @@ -183,11 +183,12 @@ static void cik_ih_irq_disable(struct amdgpu_device *adev)
>   * Used by cik_irq_process().
>   * Returns the value of the wptr.
>   */
> -static u32 cik_ih_get_wptr(struct amdgpu_device *adev)
> +static u32 cik_ih_get_wptr(struct amdgpu_device *adev,
> +			   struct amdgpu_ih_ring *ih)
>  {
>  	u32 wptr, tmp;
>  
> -	wptr = le32_to_cpu(adev->wb.wb[adev->irq.ih.wptr_offs]);
> +	wptr = le32_to_cpu(adev->wb.wb[ih->wptr_offs]);
>  
>  	if (wptr & IH_RB_WPTR__RB_OVERFLOW_MASK) {
>  		wptr &= ~IH_RB_WPTR__RB_OVERFLOW_MASK;
> @@ -196,13 +197,13 @@ static u32 cik_ih_get_wptr(struct amdgpu_device *adev)
>  		 * this should allow us to catchup.
>  		 */
>  		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
> -			wptr, adev->irq.ih.rptr, (wptr + 16) & adev->irq.ih.ptr_mask);
> -		adev->irq.ih.rptr = (wptr + 16) & adev->irq.ih.ptr_mask;
> +			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
> +		ih->rptr = (wptr + 16) & ih->ptr_mask;
>  		tmp = RREG32(mmIH_RB_CNTL);
>  		tmp |= IH_RB_CNTL__WPTR_OVERFLOW_CLEAR_MASK;
>  		WREG32(mmIH_RB_CNTL, tmp);
>  	}
> -	return (wptr & adev->irq.ih.ptr_mask);
> +	return (wptr & ih->ptr_mask);
>  }
>  
>  /*        CIK IV Ring
> @@ -294,9 +295,10 @@ static void cik_ih_decode_iv(struct amdgpu_device *adev,
>   *
>   * Set the IH ring buffer rptr.
>   */
> -static void cik_ih_set_rptr(struct amdgpu_device *adev)
> +static void cik_ih_set_rptr(struct amdgpu_device *adev,
> +			    struct amdgpu_ih_ring *ih)
>  {
> -	WREG32(mmIH_RB_RPTR, adev->irq.ih.rptr);
> +	WREG32(mmIH_RB_RPTR, ih->rptr);
>  }
>  
>  static int cik_ih_early_init(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/cz_ih.c b/drivers/gpu/drm/amd/amdgpu/cz_ih.c
> index 648ecd774611..6ed750187ad7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/cz_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/cz_ih.c
> @@ -185,11 +185,12 @@ static void cz_ih_irq_disable(struct amdgpu_device *adev)
>   * Used by cz_irq_process(VI).
>   * Returns the value of the wptr.
>   */
> -static u32 cz_ih_get_wptr(struct amdgpu_device *adev)
> +static u32 cz_ih_get_wptr(struct amdgpu_device *adev,
> +			  struct amdgpu_ih_ring *ih)
>  {
>  	u32 wptr, tmp;
>  
> -	wptr = le32_to_cpu(adev->wb.wb[adev->irq.ih.wptr_offs]);
> +	wptr = le32_to_cpu(adev->wb.wb[ih->wptr_offs]);
>  
>  	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
>  		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
> @@ -198,13 +199,13 @@ static u32 cz_ih_get_wptr(struct amdgpu_device *adev)
>  		 * this should allow us to catchup.
>  		 */
>  		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
> -			wptr, adev->irq.ih.rptr, (wptr + 16) & adev->irq.ih.ptr_mask);
> -		adev->irq.ih.rptr = (wptr + 16) & adev->irq.ih.ptr_mask;
> +			wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
> +		ih->rptr = (wptr + 16) & ih->ptr_mask;
>  		tmp = RREG32(mmIH_RB_CNTL);
>  		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
>  		WREG32(mmIH_RB_CNTL, tmp);
>  	}
> -	return (wptr & adev->irq.ih.ptr_mask);
> +	return (wptr & ih->ptr_mask);
>  }
>  
>  /**
> @@ -273,9 +274,10 @@ static void cz_ih_decode_iv(struct amdgpu_device *adev,
>   *
>   * Set the IH ring buffer rptr.
>   */
> -static void cz_ih_set_rptr(struct amdgpu_device *adev)
> +static void cz_ih_set_rptr(struct amdgpu_device *adev,
> +			   struct amdgpu_ih_ring *ih)
>  {
> -	WREG32(mmIH_RB_RPTR, adev->irq.ih.rptr);
> +	WREG32(mmIH_RB_RPTR, ih->rptr);
>  }
>  
>  static int cz_ih_early_init(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
> index 6139186ccd36..c779d708c306 100644
> --- a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
> @@ -185,11 +185,12 @@ static void iceland_ih_irq_disable(struct amdgpu_device *adev)
>   * Used by cz_irq_process(VI).
>   * Returns the value of the wptr.
>   */
> -static u32 iceland_ih_get_wptr(struct amdgpu_device *adev)
> +static u32 iceland_ih_get_wptr(struct amdgpu_device *adev,
> +			       struct amdgpu_ih_ring *ih)
>  {
>  	u32 wptr, tmp;
>  
> -	wptr = le32_to_cpu(adev->wb.wb[adev->irq.ih.wptr_offs]);
> +	wptr = le32_to_cpu(adev->wb.wb[ih->wptr_offs]);
>  
>  	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
>  		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
> @@ -198,13 +199,13 @@ static u32 iceland_ih_get_wptr(struct amdgpu_device *adev)
>  		 * this should allow us to catchup.
>  		 */
>  		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
> -			wptr, adev->irq.ih.rptr, (wptr + 16) & adev->irq.ih.ptr_mask);
> -		adev->irq.ih.rptr = (wptr + 16) & adev->irq.ih.ptr_mask;
> +			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
> +		ih->rptr = (wptr + 16) & ih->ptr_mask;
>  		tmp = RREG32(mmIH_RB_CNTL);
>  		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
>  		WREG32(mmIH_RB_CNTL, tmp);
>  	}
> -	return (wptr & adev->irq.ih.ptr_mask);
> +	return (wptr & ih->ptr_mask);
>  }
>  
>  /**
> @@ -273,9 +274,10 @@ static void iceland_ih_decode_iv(struct amdgpu_device *adev,
>   *
>   * Set the IH ring buffer rptr.
>   */
> -static void iceland_ih_set_rptr(struct amdgpu_device *adev)
> +static void iceland_ih_set_rptr(struct amdgpu_device *adev,
> +				struct amdgpu_ih_ring *ih)
>  {
> -	WREG32(mmIH_RB_RPTR, adev->irq.ih.rptr);
> +	WREG32(mmIH_RB_RPTR, ih->rptr);
>  }
>  
>  static int iceland_ih_early_init(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/si_ih.c b/drivers/gpu/drm/amd/amdgpu/si_ih.c
> index 16f212f3b534..a005824d8b9a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/si_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/si_ih.c
> @@ -100,22 +100,23 @@ static void si_ih_irq_disable(struct amdgpu_device *adev)
>  	mdelay(1);
>  }
>  
> -static u32 si_ih_get_wptr(struct amdgpu_device *adev)
> +static u32 si_ih_get_wptr(struct amdgpu_device *adev,
> +			  struct amdgpu_ih_ring *ih)
>  {
>  	u32 wptr, tmp;
>  
> -	wptr = le32_to_cpu(adev->wb.wb[adev->irq.ih.wptr_offs]);
> +	wptr = le32_to_cpu(adev->wb.wb[ih->wptr_offs]);
>  
>  	if (wptr & IH_RB_WPTR__RB_OVERFLOW_MASK) {
>  		wptr &= ~IH_RB_WPTR__RB_OVERFLOW_MASK;
>  		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
> -			wptr, adev->irq.ih.rptr, (wptr + 16) & adev->irq.ih.ptr_mask);
> -		adev->irq.ih.rptr = (wptr + 16) & adev->irq.ih.ptr_mask;
> +			wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
> +		ih->rptr = (wptr + 16) & ih->ptr_mask;
>  		tmp = RREG32(IH_RB_CNTL);
>  		tmp |= IH_RB_CNTL__WPTR_OVERFLOW_CLEAR_MASK;
>  		WREG32(IH_RB_CNTL, tmp);
>  	}
> -	return (wptr & adev->irq.ih.ptr_mask);
> +	return (wptr & ih->ptr_mask);
>  }
>  
>  /**
> @@ -151,9 +152,10 @@ static void si_ih_decode_iv(struct amdgpu_device *adev,
>  	adev->irq.ih.rptr += 16;
>  }
>  
> -static void si_ih_set_rptr(struct amdgpu_device *adev)
> +static void si_ih_set_rptr(struct amdgpu_device *adev,
> +			   struct amdgpu_ih_ring *ih)
>  {
> -	WREG32(IH_RB_RPTR, adev->irq.ih.rptr);
> +	WREG32(IH_RB_RPTR, ih->rptr);
>  }
>  
>  static int si_ih_early_init(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
> index 6120ac3c7667..3618dc0c6804 100644
> --- a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
> @@ -193,14 +193,15 @@ static void tonga_ih_irq_disable(struct amdgpu_device *adev)
>   * Used by cz_irq_process(VI).
>   * Returns the value of the wptr.
>   */
> -static u32 tonga_ih_get_wptr(struct amdgpu_device *adev)
> +static u32 tonga_ih_get_wptr(struct amdgpu_device *adev,
> +			     struct amdgpu_ih_ring *ih)
>  {
>  	u32 wptr, tmp;
>  
>  	if (adev->irq.ih.use_bus_addr)
> -		wptr = le32_to_cpu(adev->irq.ih.ring[adev->irq.ih.wptr_offs]);
> +		wptr = le32_to_cpu(ih->ring[ih->wptr_offs]);
>  	else
> -		wptr = le32_to_cpu(adev->wb.wb[adev->irq.ih.wptr_offs]);
> +		wptr = le32_to_cpu(adev->wb.wb[ih->wptr_offs]);
>  
>  	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
>  		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
> @@ -209,13 +210,13 @@ static u32 tonga_ih_get_wptr(struct amdgpu_device *adev)
>  		 * this should allow us to catchup.
>  		 */
>  		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
> -			wptr, adev->irq.ih.rptr, (wptr + 16) & adev->irq.ih.ptr_mask);
> -		adev->irq.ih.rptr = (wptr + 16) & adev->irq.ih.ptr_mask;
> +			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
> +		ih->rptr = (wptr + 16) & ih->ptr_mask;
>  		tmp = RREG32(mmIH_RB_CNTL);
>  		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
>  		WREG32(mmIH_RB_CNTL, tmp);
>  	}
> -	return (wptr & adev->irq.ih.ptr_mask);
> +	return (wptr & ih->ptr_mask);
>  }
>  
>  /**
> @@ -284,17 +285,18 @@ static void tonga_ih_decode_iv(struct amdgpu_device *adev,
>   *
>   * Set the IH ring buffer rptr.
>   */
> -static void tonga_ih_set_rptr(struct amdgpu_device *adev)
> +static void tonga_ih_set_rptr(struct amdgpu_device *adev,
> +			      struct amdgpu_ih_ring *ih)
>  {
> -	if (adev->irq.ih.use_doorbell) {
> +	if (ih->use_doorbell) {
>  		/* XXX check if swapping is necessary on BE */
> -		if (adev->irq.ih.use_bus_addr)
> -			adev->irq.ih.ring[adev->irq.ih.rptr_offs] = adev->irq.ih.rptr;
> +		if (ih->use_bus_addr)
> +			ih->ring[ih->rptr_offs] = ih->rptr;
>  		else
> -			adev->wb.wb[adev->irq.ih.rptr_offs] = adev->irq.ih.rptr;
> -		WDOORBELL32(adev->irq.ih.doorbell_index, adev->irq.ih.rptr);
> +			adev->wb.wb[ih->rptr_offs] = ih->rptr;
> +		WDOORBELL32(ih->doorbell_index, ih->rptr);
>  	} else {
> -		WREG32(mmIH_RB_RPTR, adev->irq.ih.rptr);
> +		WREG32(mmIH_RB_RPTR, ih->rptr);
>  	}
>  }
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
> index a9737adf8392..12d4e3ec851e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
> @@ -191,14 +191,15 @@ static void vega10_ih_irq_disable(struct amdgpu_device *adev)
>   * ring buffer overflow and deal with it.
>   * Returns the value of the wptr.
>   */
> -static u32 vega10_ih_get_wptr(struct amdgpu_device *adev)
> +static u32 vega10_ih_get_wptr(struct amdgpu_device *adev,
> +			      struct amdgpu_ih_ring *ih)
>  {
>  	u32 wptr, tmp;
>  
> -	if (adev->irq.ih.use_bus_addr)
> -		wptr = le32_to_cpu(adev->irq.ih.ring[adev->irq.ih.wptr_offs]);
> +	if (ih->use_bus_addr)
> +		wptr = le32_to_cpu(ih->ring[ih->wptr_offs]);
>  	else
> -		wptr = le32_to_cpu(adev->wb.wb[adev->irq.ih.wptr_offs]);
> +		wptr = le32_to_cpu(adev->wb.wb[ih->wptr_offs]);
>  
>  	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
>  		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
> @@ -207,16 +208,16 @@ static u32 vega10_ih_get_wptr(struct amdgpu_device *adev)
>  		 * from the last not overwritten vector (wptr + 32). Hopefully
>  		 * this should allow us to catchup.
>  		 */
> -		tmp = (wptr + 32) & adev->irq.ih.ptr_mask;
> +		tmp = (wptr + 32) & ih->ptr_mask;
>  		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
> -			wptr, adev->irq.ih.rptr, tmp);
> -		adev->irq.ih.rptr = tmp;
> +			 wptr, ih->rptr, tmp);
> +		ih->rptr = tmp;
>  
>  		tmp = RREG32_NO_KIQ(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL));
>  		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
>  		WREG32_NO_KIQ(SOC15_REG_OFFSET(OSSSYS, 0, mmIH_RB_CNTL), tmp);
>  	}
> -	return (wptr & adev->irq.ih.ptr_mask);
> +	return (wptr & ih->ptr_mask);
>  }
>  
>  /**
> @@ -353,17 +354,18 @@ static void vega10_ih_decode_iv(struct amdgpu_device *adev,
>   *
>   * Set the IH ring buffer rptr.
>   */
> -static void vega10_ih_set_rptr(struct amdgpu_device *adev)
> +static void vega10_ih_set_rptr(struct amdgpu_device *adev,
> +			       struct amdgpu_ih_ring *ih)
>  {
> -	if (adev->irq.ih.use_doorbell) {
> +	if (ih->use_doorbell) {
>  		/* XXX check if swapping is necessary on BE */
> -		if (adev->irq.ih.use_bus_addr)
> -			adev->irq.ih.ring[adev->irq.ih.rptr_offs] = adev->irq.ih.rptr;
> +		if (ih->use_bus_addr)
> +			ih->ring[ih->rptr_offs] = ih->rptr;
>  		else
> -			adev->wb.wb[adev->irq.ih.rptr_offs] = adev->irq.ih.rptr;
> -		WDOORBELL32(adev->irq.ih.doorbell_index, adev->irq.ih.rptr);
> +			adev->wb.wb[ih->rptr_offs] = ih->rptr;
> +		WDOORBELL32(ih->doorbell_index, ih->rptr);
>  	} else {
> -		WREG32_SOC15(OSSSYS, 0, mmIH_RB_RPTR, adev->irq.ih.rptr);
> +		WREG32_SOC15(OSSSYS, 0, mmIH_RB_RPTR, ih->rptr);
>  	}
>  }
>  
> -- 
> 2.14.1
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-09-26  7:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-24 12:38 [PATCH 1/9] drm/amdgpu: drop extra newline in amdgpu_iv trace Christian König
     [not found] ` <20180924123820.1873-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-24 12:38   ` [PATCH 2/9] drm/amdgpu: make function pointers mandatory Christian König
     [not found]     ` <20180924123820.1873-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-25 10:03       ` Huang Rui
2018-09-24 12:38   ` [PATCH 3/9] drm/amdgpu: cleanup amdgpu_ih.c Christian König
     [not found]     ` <20180924123820.1873-3-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-25 10:28       ` Huang Rui
2018-09-25 11:01         ` Christian König
     [not found]           ` <ea1b4ebf-c4ee-c03b-b3e7-6f66df831373-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-26  8:52             ` Huang, Ray
     [not found]               ` <BY2PR12MB0040B93400AD69D00699F870EC150-K//h7OWB4q7Zvl48JdS6+wdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-09-26  8:57                 ` Christian König
     [not found]                   ` <366f6d5f-67f8-0d86-274c-bf93a59c60d3-5C7GfCeVMHo@public.gmane.org>
2018-09-26 10:36                     ` Huang, Ray
2018-09-24 12:38   ` [PATCH 4/9] drm/amdgpu: move more interrupt processing into amdgpu_irq.c Christian König
     [not found]     ` <20180924123820.1873-4-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-26  6:13       ` Huang Rui
2018-09-24 12:38   ` [PATCH 5/9] drm/amdgpu: move more defines into amdgpu_irq.h Christian König
     [not found]     ` <20180924123820.1873-5-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-26  6:14       ` Huang Rui
2018-09-24 12:38   ` [PATCH 6/9] drm/amdgpu: separate IH and IRQ funcs Christian König
     [not found]     ` <20180924123820.1873-6-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-26  6:05       ` Huang Rui
2018-09-26  8:09         ` Christian König
     [not found]           ` <39fb9a51-2e85-0828-a193-b54059dec405-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-09-26  9:16             ` Huang, Ray
     [not found]               ` <BY2PR12MB00400B029B1F4C1256CE558AEC150-K//h7OWB4q7Zvl48JdS6+wdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-09-26  9:18                 ` Christian König
2018-09-24 12:38   ` [PATCH 7/9] drm/amdgpu: add IH ring to ih_get_wptr/ih_set_rptr Christian König
     [not found]     ` <20180924123820.1873-7-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-26  7:36       ` Huang Rui
2018-09-26  7:40       ` Huang Rui [this message]
2018-09-24 12:38   ` [PATCH 8/9] drm/amdgpu: simplify IH programming Christian König
     [not found]     ` <20180924123820.1873-8-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-26  8:48       ` Huang, Ray
2018-09-24 12:38   ` [PATCH 9/9] drm/amdgpu: enable IH ring 1 and ring 2 Christian König
     [not found]     ` <20180924123820.1873-9-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-09-26  8:49       ` Huang, Ray
2018-09-25  9:54   ` [PATCH 1/9] drm/amdgpu: drop extra newline in amdgpu_iv trace Huang Rui

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=20180926074001.GA15205@hr-amur2 \
    --to=ray.huang-5c7gfcevmho@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox