[PATCH 11/66] drm/amdgpu: filter out radeon PCI device IDs

Felix Kuehling felix.kuehling at amd.com
Wed Sep 22 16:16:26 UTC 2021


Am 2021-09-21 um 2:06 p.m. schrieb Alex Deucher:
> Once we claim all 0x1002 PCI display class devices, we will
> need to filter out devices owned by radeon.
Could this list be built from radeon_PCI_IDS and r128_PCI_IDs in
drm/drm_pciids.h to avoid duplication? It also looks like your list is
missing the r128 IDs at the moment.

Regards,
  Felix


>
> Signed-off-by: Alex Deucher <alexander.deucher at 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[] = {
> +	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;


More information about the amd-gfx mailing list