Message ID | 1406916332-4195-1-git-send-email-andreas.boll.dev@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Aug 1, 2014 at 2:05 PM, Andreas Boll <andreas.boll.dev@gmail.com> wrote: > From: Alex Deucher <alexander.deucher@amd.com> > > Older firmware didn't support the new nop packet. > > v2 (Andreas Boll): > - Drop usage of packet3 for new firmware > > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Reviewed-by: Christian König <christian.koenig@amd.com> (v1) > Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com> > Cc: stable@vger.kernel.org Added the series to my 3.17 tree. thanks! Alex > --- > drivers/gpu/drm/radeon/cik.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c > index c0ea661..e5985d5 100644 > --- a/drivers/gpu/drm/radeon/cik.c > +++ b/drivers/gpu/drm/radeon/cik.c > @@ -7900,6 +7900,7 @@ restart_ih: > static int cik_startup(struct radeon_device *rdev) > { > struct radeon_ring *ring; > + u32 nop; > int r; > > /* enable pcie gen2/3 link */ > @@ -8033,9 +8034,15 @@ static int cik_startup(struct radeon_device *rdev) > } > cik_irq_set(rdev); > > + if (rdev->family == CHIP_HAWAII) { > + nop = RADEON_CP_PACKET2; > + } else { > + nop = PACKET3(PACKET3_NOP, 0x3FFF); > + } > + > ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]; > r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP_RPTR_OFFSET, > - PACKET3(PACKET3_NOP, 0x3FFF)); > + nop); > if (r) > return r; > > @@ -8043,7 +8050,7 @@ static int cik_startup(struct radeon_device *rdev) > /* type-2 packets are deprecated on MEC, use type-3 instead */ > ring = &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX]; > r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP1_RPTR_OFFSET, > - PACKET3(PACKET3_NOP, 0x3FFF)); > + nop); > if (r) > return r; > ring->me = 1; /* first MEC */ > @@ -8054,7 +8061,7 @@ static int cik_startup(struct radeon_device *rdev) > /* type-2 packets are deprecated on MEC, use type-3 instead */ > ring = &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX]; > r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP2_RPTR_OFFSET, > - PACKET3(PACKET3_NOP, 0x3FFF)); > + nop); > if (r) > return r; > /* dGPU only have 1 MEC */ > -- > 2.0.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index c0ea661..e5985d5 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c @@ -7900,6 +7900,7 @@ restart_ih: static int cik_startup(struct radeon_device *rdev) { struct radeon_ring *ring; + u32 nop; int r; /* enable pcie gen2/3 link */ @@ -8033,9 +8034,15 @@ static int cik_startup(struct radeon_device *rdev) } cik_irq_set(rdev); + if (rdev->family == CHIP_HAWAII) { + nop = RADEON_CP_PACKET2; + } else { + nop = PACKET3(PACKET3_NOP, 0x3FFF); + } + ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP_RPTR_OFFSET, - PACKET3(PACKET3_NOP, 0x3FFF)); + nop); if (r) return r; @@ -8043,7 +8050,7 @@ static int cik_startup(struct radeon_device *rdev) /* type-2 packets are deprecated on MEC, use type-3 instead */ ring = &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP1_RPTR_OFFSET, - PACKET3(PACKET3_NOP, 0x3FFF)); + nop); if (r) return r; ring->me = 1; /* first MEC */ @@ -8054,7 +8061,7 @@ static int cik_startup(struct radeon_device *rdev) /* type-2 packets are deprecated on MEC, use type-3 instead */ ring = &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP2_RPTR_OFFSET, - PACKET3(PACKET3_NOP, 0x3FFF)); + nop); if (r) return r; /* dGPU only have 1 MEC */