OSDN Git Service

i915: Add gen12 ids for TGL
authorSushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Thu, 8 Oct 2020 17:18:01 +0000 (10:18 -0700)
committerJustin TerAvest <teravest@chromium.org>
Tue, 13 Oct 2020 16:53:52 +0000 (16:53 +0000)
During 5K/8K HW accelerated video playback, corruptions are observed on
gen12 TGL devices as (i915->gen <= 11) condition is returning true, and
I915_TILING_NONE tile is being set to bo. Adding gen12 ids ensures
buffer allocations happen as per the device's capabilities and here, it
resolves the video corruption issues.

BUG=b:168706685
TEST=Play 5K/8K VP9 codec video

Signed-off-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Change-Id: I24cd0b667f2bf74f73d2377a32f92a148d21c793
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2462345
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Kevin L Derossett <kevin.l.derossett@intel.com>
i915.c

diff --git a/i915.c b/i915.c
index b9295a8..60ce26a 100644 (file)
--- a/i915.c
+++ b/i915.c
@@ -57,7 +57,9 @@ static uint32_t i915_get_gen(int device_id)
        const uint16_t gen3_ids[] = { 0x2582, 0x2592, 0x2772, 0x27A2, 0x27AE,
                                      0x29C2, 0x29B2, 0x29D2, 0xA001, 0xA011 };
        const uint16_t gen11_ids[] = { 0x4E71, 0x4E61, 0x4E51, 0x4E55, 0x4E57 };
        const uint16_t gen3_ids[] = { 0x2582, 0x2592, 0x2772, 0x27A2, 0x27AE,
                                      0x29C2, 0x29B2, 0x29D2, 0xA001, 0xA011 };
        const uint16_t gen11_ids[] = { 0x4E71, 0x4E61, 0x4E51, 0x4E55, 0x4E57 };
-
+       const uint16_t gen12_ids[] = { 0x9A40, 0x9A49, 0x9A59, 0x9A60, 0x9A68,
+                                       0x9A70, 0x9A78, 0x9AC0, 0x9AC9, 0x9AD9, 
+                                       0x9AF8 };
        unsigned i;
        for (i = 0; i < ARRAY_SIZE(gen3_ids); i++)
                if (gen3_ids[i] == device_id)
        unsigned i;
        for (i = 0; i < ARRAY_SIZE(gen3_ids); i++)
                if (gen3_ids[i] == device_id)
@@ -67,6 +69,11 @@ static uint32_t i915_get_gen(int device_id)
                if (gen11_ids[i] == device_id)
                        return 11;
 
                if (gen11_ids[i] == device_id)
                        return 11;
 
+       /* Gen 12 */
+       for (i = 0; i < ARRAY_SIZE(gen12_ids); i++)
+               if (gen12_ids[i] == device_id)
+                       return 12;
+
        return 4;
 }
 
        return 4;
 }