On 9/21/2021 11:36 PM, Alex Deucher wrote:
Once we claim all 0x1002 PCI display class devices, we will
need to filter out devices owned by radeon.

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 561 +++++++++++++++++++++++-
  1 file changed, 560 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index b6ce53fa9b03..3ab7099a1b16 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -891,6 +891,559 @@ MODULE_PARM_DESC(smu_pptable_id,
        "specify pptable id to be used (-1 = auto(default) value, 0 = use pptable from 
vbios, > 0 = soft pptable id)");
  module_param_named(smu_pptable_id, amdgpu_smu_pptable_id, int, 0444);
+static const u16 radeon_pciidlist[] = {

Instead of associating to only radeon, maybe rename to something more generic such that all device ids in the list will be skipped.

Thanks,
Lijo

+       0x3150,
+       0x3151,
+       0x3152,
+       0x3154,
+       0x3155,
+       0x3E50,
+       0x3E54,
+       0x4136,
+       0x4137,
+       0x4144,
+       0x4145,
+       0x4146,
+       0x4147,
+       0x4148,
+       0x4149,
+       0x414A,
+       0x414B,
+       0x4150,
+       0x4151,
+       0x4152,
+       0x4153,
+       0x4154,
+       0x4155,
+       0x4156,
+       0x4237,
+       0x4242,
+       0x4336,
+       0x4337,
+       0x4437,
+       0x4966,
+       0x4967,
+       0x4A48,
+       0x4A49,
+       0x4A4A,
+       0x4A4B,
+       0x4A4C,
+       0x4A4D,
+       0x4A4E,
+       0x4A4F,
+       0x4A50,
+       0x4A54,
+       0x4B48,
+       0x4B49,
+       0x4B4A,
+       0x4B4B,
+       0x4B4C,
+       0x4C57,
+       0x4C58,
+       0x4C59,
+       0x4C5A,
+       0x4C64,
+       0x4C66,
+       0x4C67,
+       0x4E44,
+       0x4E45,
+       0x4E46,
+       0x4E47,
+       0x4E48,
+       0x4E49,
+       0x4E4A,
+       0x4E4B,
+       0x4E50,
+       0x4E51,
+       0x4E52,
+       0x4E53,
+       0x4E54,
+       0x4E56,
+       0x5144,
+       0x5145,
+       0x5146,
+       0x5147,
+       0x5148,
+       0x514C,
+       0x514D,
+       0x5157,
+       0x5158,
+       0x5159,
+       0x515A,
+       0x515E,
+       0x5460,
+       0x5462,
+       0x5464,
+       0x5548,
+       0x5549,
+       0x554A,
+       0x554B,
+       0x554C,
+       0x554D,
+       0x554E,
+       0x554F,
+       0x5550,
+       0x5551,
+       0x5552,
+       0x5554,
+       0x564A,
+       0x564B,
+       0x564F,
+       0x5652,
+       0x5653,
+       0x5657,
+       0x5834,
+       0x5835,
+       0x5954,
+       0x5955,
+       0x5974,
+       0x5975,
+       0x5960,
+       0x5961,
+       0x5962,
+       0x5964,
+       0x5965,
+       0x5969,
+       0x5a41,
+       0x5a42,
+       0x5a61,
+       0x5a62,
+       0x5b60,
+       0x5b62,
+       0x5b63,
+       0x5b64,
+       0x5b65,
+       0x5c61,
+       0x5c63,
+       0x5d48,
+       0x5d49,
+       0x5d4a,
+       0x5d4c,
+       0x5d4d,
+       0x5d4e,
+       0x5d4f,
+       0x5d50,
+       0x5d52,
+       0x5d57,
+       0x5e48,
+       0x5e4a,
+       0x5e4b,
+       0x5e4c,
+       0x5e4d,
+       0x5e4f,
+       0x6700,
+       0x6701,
+       0x6702,
+       0x6703,
+       0x6704,
+       0x6705,
+       0x6706,
+       0x6707,
+       0x6708,
+       0x6709,
+       0x6718,
+       0x6719,
+       0x671c,
+       0x671d,
+       0x671f,
+       0x6720,
+       0x6721,
+       0x6722,
+       0x6723,
+       0x6724,
+       0x6725,
+       0x6726,
+       0x6727,
+       0x6728,
+       0x6729,
+       0x6738,
+       0x6739,
+       0x673e,
+       0x6740,
+       0x6741,
+       0x6742,
+       0x6743,
+       0x6744,
+       0x6745,
+       0x6746,
+       0x6747,
+       0x6748,
+       0x6749,
+       0x674A,
+       0x6750,
+       0x6751,
+       0x6758,
+       0x6759,
+       0x675B,
+       0x675D,
+       0x675F,
+       0x6760,
+       0x6761,
+       0x6762,
+       0x6763,
+       0x6764,
+       0x6765,
+       0x6766,
+       0x6767,
+       0x6768,
+       0x6770,
+       0x6771,
+       0x6772,
+       0x6778,
+       0x6779,
+       0x677B,
+       0x6840,
+       0x6841,
+       0x6842,
+       0x6843,
+       0x6849,
+       0x684C,
+       0x6850,
+       0x6858,
+       0x6859,
+       0x6880,
+       0x6888,
+       0x6889,
+       0x688A,
+       0x688C,
+       0x688D,
+       0x6898,
+       0x6899,
+       0x689b,
+       0x689c,
+       0x689d,
+       0x689e,
+       0x68a0,
+       0x68a1,
+       0x68a8,
+       0x68a9,
+       0x68b0,
+       0x68b8,
+       0x68b9,
+       0x68ba,
+       0x68be,
+       0x68bf,
+       0x68c0,
+       0x68c1,
+       0x68c7,
+       0x68c8,
+       0x68c9,
+       0x68d8,
+       0x68d9,
+       0x68da,
+       0x68de,
+       0x68e0,
+       0x68e1,
+       0x68e4,
+       0x68e5,
+       0x68e8,
+       0x68e9,
+       0x68f1,
+       0x68f2,
+       0x68f8,
+       0x68f9,
+       0x68fa,
+       0x68fe,
+       0x7100,
+       0x7101,
+       0x7102,
+       0x7103,
+       0x7104,
+       0x7105,
+       0x7106,
+       0x7108,
+       0x7109,
+       0x710A,
+       0x710B,
+       0x710C,
+       0x710E,
+       0x710F,
+       0x7140,
+       0x7141,
+       0x7142,
+       0x7143,
+       0x7144,
+       0x7145,
+       0x7146,
+       0x7147,
+       0x7149,
+       0x714A,
+       0x714B,
+       0x714C,
+       0x714D,
+       0x714E,
+       0x714F,
+       0x7151,
+       0x7152,
+       0x7153,
+       0x715E,
+       0x715F,
+       0x7180,
+       0x7181,
+       0x7183,
+       0x7186,
+       0x7187,
+       0x7188,
+       0x718A,
+       0x718B,
+       0x718C,
+       0x718D,
+       0x718F,
+       0x7193,
+       0x7196,
+       0x719B,
+       0x719F,
+       0x71C0,
+       0x71C1,
+       0x71C2,
+       0x71C3,
+       0x71C4,
+       0x71C5,
+       0x71C6,
+       0x71C7,
+       0x71CD,
+       0x71CE,
+       0x71D2,
+       0x71D4,
+       0x71D5,
+       0x71D6,
+       0x71DA,
+       0x71DE,
+       0x7200,
+       0x7210,
+       0x7211,
+       0x7240,
+       0x7243,
+       0x7244,
+       0x7245,
+       0x7246,
+       0x7247,
+       0x7248,
+       0x7249,
+       0x724A,
+       0x724B,
+       0x724C,
+       0x724D,
+       0x724E,
+       0x724F,
+       0x7280,
+       0x7281,
+       0x7283,
+       0x7284,
+       0x7287,
+       0x7288,
+       0x7289,
+       0x728B,
+       0x728C,
+       0x7290,
+       0x7291,
+       0x7293,
+       0x7297,
+       0x7834,
+       0x7835,
+       0x791e,
+       0x791f,
+       0x793f,
+       0x7941,
+       0x7942,
+       0x796c,
+       0x796d,
+       0x796e,
+       0x796f,
+       0x9400,
+       0x9401,
+       0x9402,
+       0x9403,
+       0x9405,
+       0x940A,
+       0x940B,
+       0x940F,
+       0x94A0,
+       0x94A1,
+       0x94A3,
+       0x94B1,
+       0x94B3,
+       0x94B4,
+       0x94B5,
+       0x94B9,
+       0x9440,
+       0x9441,
+       0x9442,
+       0x9443,
+       0x9444,
+       0x9446,
+       0x944A,
+       0x944B,
+       0x944C,
+       0x944E,
+       0x9450,
+       0x9452,
+       0x9456,
+       0x945A,
+       0x945B,
+       0x945E,
+       0x9460,
+       0x9462,
+       0x946A,
+       0x946B,
+       0x947A,
+       0x947B,
+       0x9480,
+       0x9487,
+       0x9488,
+       0x9489,
+       0x948A,
+       0x948F,
+       0x9490,
+       0x9491,
+       0x9495,
+       0x9498,
+       0x949C,
+       0x949E,
+       0x949F,
+       0x94C0,
+       0x94C1,
+       0x94C3,
+       0x94C4,
+       0x94C5,
+       0x94C6,
+       0x94C7,
+       0x94C8,
+       0x94C9,
+       0x94CB,
+       0x94CC,
+       0x94CD,
+       0x9500,
+       0x9501,
+       0x9504,
+       0x9505,
+       0x9506,
+       0x9507,
+       0x9508,
+       0x9509,
+       0x950F,
+       0x9511,
+       0x9515,
+       0x9517,
+       0x9519,
+       0x9540,
+       0x9541,
+       0x9542,
+       0x954E,
+       0x954F,
+       0x9552,
+       0x9553,
+       0x9555,
+       0x9557,
+       0x955f,
+       0x9580,
+       0x9581,
+       0x9583,
+       0x9586,
+       0x9587,
+       0x9588,
+       0x9589,
+       0x958A,
+       0x958B,
+       0x958C,
+       0x958D,
+       0x958E,
+       0x958F,
+       0x9590,
+       0x9591,
+       0x9593,
+       0x9595,
+       0x9596,
+       0x9597,
+       0x9598,
+       0x9599,
+       0x959B,
+       0x95C0,
+       0x95C2,
+       0x95C4,
+       0x95C5,
+       0x95C6,
+       0x95C7,
+       0x95C9,
+       0x95CC,
+       0x95CD,
+       0x95CE,
+       0x95CF,
+       0x9610,
+       0x9611,
+       0x9612,
+       0x9613,
+       0x9614,
+       0x9615,
+       0x9616,
+       0x9640,
+       0x9641,
+       0x9642,
+       0x9643,
+       0x9644,
+       0x9645,
+       0x9647,
+       0x9648,
+       0x9649,
+       0x964a,
+       0x964b,
+       0x964c,
+       0x964e,
+       0x964f,
+       0x9710,
+       0x9711,
+       0x9712,
+       0x9713,
+       0x9714,
+       0x9715,
+       0x9802,
+       0x9803,
+       0x9804,
+       0x9805,
+       0x9806,
+       0x9807,
+       0x9808,
+       0x9809,
+       0x980A,
+       0x9900,
+       0x9901,
+       0x9903,
+       0x9904,
+       0x9905,
+       0x9906,
+       0x9907,
+       0x9908,
+       0x9909,
+       0x990A,
+       0x990B,
+       0x990C,
+       0x990D,
+       0x990E,
+       0x990F,
+       0x9910,
+       0x9913,
+       0x9917,
+       0x9918,
+       0x9919,
+       0x9990,
+       0x9991,
+       0x9992,
+       0x9993,
+       0x9994,
+       0x9995,
+       0x9996,
+       0x9997,
+       0x9998,
+       0x9999,
+       0x999A,
+       0x999B,
+       0x999C,
+       0x999D,
+       0x99A0,
+       0x99A2,
+       0x99A4,
+};
+
  static const struct pci_device_id pciidlist[] = {
  #ifdef  CONFIG_DRM_AMDGPU_SI
        {0x1002, 0x6780, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI},
@@ -1253,9 +1806,15 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
        struct drm_device *ddev;
        struct amdgpu_device *adev;
        unsigned long flags = ent->driver_data;
-       int ret, retry = 0;
+       int ret, retry = 0, i;
        bool supports_atomic = false;
+ /* skip devices which are owned by radeon */
+       for (i = 0; i < ARRAY_SIZE(radeon_pciidlist); i++) {
+               if (radeon_pciidlist[i] == pdev->device)
+                       return -ENODEV;
+       }
+
        if (amdgpu_virtual_display ||
            amdgpu_device_asic_has_dc_support(flags & AMD_ASIC_MASK))
                supports_atomic = true;

Reply via email to