[Intel-gfx] [PATCH 24/29] drm/i915: Turn vgpu pdps into an array
Zhiyuan Lv
zhiyuan.lv at intel.com
Wed Nov 4 22:56:09 PST 2015
On Wed, Nov 04, 2015 at 11:20:12PM +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> We'll want to avoid performing arithmetic with register offsets, so
> instead calculating the vgpu PDP as pdp0_lo+offset, make the PDPs
> into an array. This way we can simply loop through them.
>
> Cc: Eddie Dong <eddie.dong at intel.com>
> Cc: Jike Song <jike.song at intel.com>
> Cc: Kevin Tian <kevin.tian at intel.com>
> Cc: Yu Zhang <yu.c.zhang at linux.intel.com>
> Cc: Zhi Wang <zhi.a.wang at intel.com>
> Cc: Zhiyuan Lv <zhiyuan.lv at intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
It looks good to me. Thanks for the change!
Reviewed-by: Zhiyuan Lv <zhiyuan.lv at intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_gtt.c | 11 ++++-------
> drivers/gpu/drm/i915/i915_vgpu.h | 12 ++++--------
> 2 files changed, 8 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 8dfcfd5..57cc7fd 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -909,14 +909,13 @@ static int gen8_ppgtt_notify_vgt(struct i915_hw_ppgtt *ppgtt, bool create)
> enum vgt_g2v_type msg;
> struct drm_device *dev = ppgtt->base.dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> - unsigned int offset = vgtif_reg(pdp0_lo);
> int i;
>
> if (USES_FULL_48BIT_PPGTT(dev)) {
> u64 daddr = px_dma(&ppgtt->pml4);
>
> - I915_WRITE(offset, lower_32_bits(daddr));
> - I915_WRITE(offset + 4, upper_32_bits(daddr));
> + I915_WRITE(vgtif_reg(pdp[0].lo), lower_32_bits(daddr));
> + I915_WRITE(vgtif_reg(pdp[0].hi), upper_32_bits(daddr));
>
> msg = (create ? VGT_G2V_PPGTT_L4_PAGE_TABLE_CREATE :
> VGT_G2V_PPGTT_L4_PAGE_TABLE_DESTROY);
> @@ -924,10 +923,8 @@ static int gen8_ppgtt_notify_vgt(struct i915_hw_ppgtt *ppgtt, bool create)
> for (i = 0; i < GEN8_LEGACY_PDPES; i++) {
> u64 daddr = i915_page_dir_dma_addr(ppgtt, i);
>
> - I915_WRITE(offset, lower_32_bits(daddr));
> - I915_WRITE(offset + 4, upper_32_bits(daddr));
> -
> - offset += 8;
> + I915_WRITE(vgtif_reg(pdp[i].lo), lower_32_bits(daddr));
> + I915_WRITE(vgtif_reg(pdp[i].hi), upper_32_bits(daddr));
> }
>
> msg = (create ? VGT_G2V_PPGTT_L3_PAGE_TABLE_CREATE :
> diff --git a/drivers/gpu/drm/i915/i915_vgpu.h b/drivers/gpu/drm/i915/i915_vgpu.h
> index 21c97f4..2c97d5a 100644
> --- a/drivers/gpu/drm/i915/i915_vgpu.h
> +++ b/drivers/gpu/drm/i915/i915_vgpu.h
> @@ -92,14 +92,10 @@ struct vgt_if {
> uint32_t g2v_notify;
> uint32_t rsv6[7];
>
> - uint32_t pdp0_lo;
> - uint32_t pdp0_hi;
> - uint32_t pdp1_lo;
> - uint32_t pdp1_hi;
> - uint32_t pdp2_lo;
> - uint32_t pdp2_hi;
> - uint32_t pdp3_lo;
> - uint32_t pdp3_hi;
> + struct {
> + uint32_t lo;
> + uint32_t hi;
> + } pdp[4];
>
> uint32_t execlist_context_descriptor_lo;
> uint32_t execlist_context_descriptor_hi;
> --
> 2.4.10
>
More information about the Intel-gfx
mailing list