* [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware
@ 2014-08-01 18:05 Andreas Boll
2014-08-01 18:05 ` [PATCH 2/4] drm/radeon: tweak ACCEL_WORKING2 query for hawaii Andreas Boll
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Andreas Boll @ 2014-08-01 18:05 UTC (permalink / raw)
To: dri-devel; +Cc: Alex Deucher, stable
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
---
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
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] drm/radeon: tweak ACCEL_WORKING2 query for hawaii
2014-08-01 18:05 [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Andreas Boll
@ 2014-08-01 18:05 ` Andreas Boll
2014-08-01 18:05 ` [PATCH 3/4] drm/radeon: use packet3 for nop on hawaii with new firmware Andreas Boll
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Andreas Boll @ 2014-08-01 18:05 UTC (permalink / raw)
To: dri-devel; +Cc: Alex Deucher, Andreas Boll, stable
From: Alex Deucher <alexander.deucher@amd.com>
Return 2 so we can be sure the kernel has the necessary
changes for acceleration to work.
Note: This patch depends on these two commits:
- drm/radeon: fix cut and paste issue for hawaii.
- drm/radeon: use packet2 for nop on hawaii with old firmware
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
Cc: stable@vger.kernel.org
---
drivers/gpu/drm/radeon/radeon_kms.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index d25ae6a..c1a206d 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -254,7 +254,14 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
}
break;
case RADEON_INFO_ACCEL_WORKING2:
- *value = rdev->accel_working;
+ if (rdev->family == CHIP_HAWAII) {
+ if (rdev->accel_working)
+ *value = 2;
+ else
+ *value = 0;
+ } else {
+ *value = rdev->accel_working;
+ }
break;
case RADEON_INFO_TILING_CONFIG:
if (rdev->family >= CHIP_BONAIRE)
--
2.0.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] drm/radeon: use packet3 for nop on hawaii with new firmware
2014-08-01 18:05 [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Andreas Boll
2014-08-01 18:05 ` [PATCH 2/4] drm/radeon: tweak ACCEL_WORKING2 query for hawaii Andreas Boll
@ 2014-08-01 18:05 ` Andreas Boll
2014-08-01 18:05 ` [PATCH 4/4] drm/radeon: tweak ACCEL_WORKING2 query for the new firmware for hawaii Andreas Boll
2014-08-04 18:42 ` [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Alex Deucher
3 siblings, 0 replies; 5+ messages in thread
From: Andreas Boll @ 2014-08-01 18:05 UTC (permalink / raw)
To: dri-devel; +Cc: Alex Deucher
From: Alex Deucher <alexander.deucher@amd.com>
Older firmware didn't support the new nop packet.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
---
drivers/gpu/drm/radeon/cik.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index e5985d5..8b580dc 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -8035,7 +8035,10 @@ static int cik_startup(struct radeon_device *rdev)
cik_irq_set(rdev);
if (rdev->family == CHIP_HAWAII) {
- nop = RADEON_CP_PACKET2;
+ if (rdev->new_fw)
+ nop = PACKET3(PACKET3_NOP, 0x3FFF);
+ else
+ nop = RADEON_CP_PACKET2;
} else {
nop = PACKET3(PACKET3_NOP, 0x3FFF);
}
--
2.0.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] drm/radeon: tweak ACCEL_WORKING2 query for the new firmware for hawaii
2014-08-01 18:05 [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Andreas Boll
2014-08-01 18:05 ` [PATCH 2/4] drm/radeon: tweak ACCEL_WORKING2 query for hawaii Andreas Boll
2014-08-01 18:05 ` [PATCH 3/4] drm/radeon: use packet3 for nop on hawaii with new firmware Andreas Boll
@ 2014-08-01 18:05 ` Andreas Boll
2014-08-04 18:42 ` [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Alex Deucher
3 siblings, 0 replies; 5+ messages in thread
From: Andreas Boll @ 2014-08-01 18:05 UTC (permalink / raw)
To: dri-devel
Adjust the previous tweak for hawaii to return 3 if the new firmware is used.
Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
---
drivers/gpu/drm/radeon/radeon_kms.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index c1a206d..eb7164d 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -255,10 +255,14 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
break;
case RADEON_INFO_ACCEL_WORKING2:
if (rdev->family == CHIP_HAWAII) {
- if (rdev->accel_working)
- *value = 2;
- else
+ if (rdev->accel_working) {
+ if (rdev->new_fw)
+ *value = 3;
+ else
+ *value = 2;
+ } else {
*value = 0;
+ }
} else {
*value = rdev->accel_working;
}
--
2.0.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware
2014-08-01 18:05 [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Andreas Boll
` (2 preceding siblings ...)
2014-08-01 18:05 ` [PATCH 4/4] drm/radeon: tweak ACCEL_WORKING2 query for the new firmware for hawaii Andreas Boll
@ 2014-08-04 18:42 ` Alex Deucher
3 siblings, 0 replies; 5+ messages in thread
From: Alex Deucher @ 2014-08-04 18:42 UTC (permalink / raw)
To: Andreas Boll; +Cc: Maling list - DRI developers, Alex Deucher, for 3.8
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-08-04 18:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-01 18:05 [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Andreas Boll
2014-08-01 18:05 ` [PATCH 2/4] drm/radeon: tweak ACCEL_WORKING2 query for hawaii Andreas Boll
2014-08-01 18:05 ` [PATCH 3/4] drm/radeon: use packet3 for nop on hawaii with new firmware Andreas Boll
2014-08-01 18:05 ` [PATCH 4/4] drm/radeon: tweak ACCEL_WORKING2 query for the new firmware for hawaii Andreas Boll
2014-08-04 18:42 ` [PATCH 1/4] drm/radeon: use packet2 for nop on hawaii with old firmware Alex Deucher
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.