Skip to content

Commit 0300e6d

Browse files
Brady Noranderalexdeucher
authored andcommitted
drm/amdgpu: use static ids for ACP platform devs
mfd_add_hotplug_devices() assigns child platform devices with PLATFORM_DEVID_AUTO, but the ACP machine drivers expect the platform device names to never change. Use mfd_add_devices() instead and give each cell a unique id. Signed-off-by: Brady Norander <bradynorander@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent c8e7e3c commit 0300e6d

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,19 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
302302
adev->acp.acp_res[2].end = adev->acp.acp_res[2].start;
303303

304304
adev->acp.acp_cell[0].name = "acp_audio_dma";
305+
adev->acp.acp_cell[0].id = 0;
305306
adev->acp.acp_cell[0].num_resources = 3;
306307
adev->acp.acp_cell[0].resources = &adev->acp.acp_res[0];
307308
adev->acp.acp_cell[0].platform_data = &adev->asic_type;
308309
adev->acp.acp_cell[0].pdata_size = sizeof(adev->asic_type);
309310

310311
adev->acp.acp_cell[1].name = "designware-i2s";
312+
adev->acp.acp_cell[1].id = 1;
311313
adev->acp.acp_cell[1].num_resources = 1;
312314
adev->acp.acp_cell[1].resources = &adev->acp.acp_res[1];
313315
adev->acp.acp_cell[1].platform_data = &i2s_pdata[0];
314316
adev->acp.acp_cell[1].pdata_size = sizeof(struct i2s_platform_data);
315-
r = mfd_add_hotplug_devices(adev->acp.parent, adev->acp.acp_cell, 2);
317+
r = mfd_add_devices(adev->acp.parent, 0, adev->acp.acp_cell, 2, NULL, 0, NULL);
316318
if (r)
317319
goto failure;
318320
r = device_for_each_child(adev->acp.parent, &adev->acp.acp_genpd->gpd,
@@ -410,30 +412,34 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
410412
adev->acp.acp_res[4].end = adev->acp.acp_res[4].start;
411413

412414
adev->acp.acp_cell[0].name = "acp_audio_dma";
415+
adev->acp.acp_cell[0].id = 0;
413416
adev->acp.acp_cell[0].num_resources = 5;
414417
adev->acp.acp_cell[0].resources = &adev->acp.acp_res[0];
415418
adev->acp.acp_cell[0].platform_data = &adev->asic_type;
416419
adev->acp.acp_cell[0].pdata_size = sizeof(adev->asic_type);
417420

418421
adev->acp.acp_cell[1].name = "designware-i2s";
422+
adev->acp.acp_cell[1].id = 1;
419423
adev->acp.acp_cell[1].num_resources = 1;
420424
adev->acp.acp_cell[1].resources = &adev->acp.acp_res[1];
421425
adev->acp.acp_cell[1].platform_data = &i2s_pdata[0];
422426
adev->acp.acp_cell[1].pdata_size = sizeof(struct i2s_platform_data);
423427

424428
adev->acp.acp_cell[2].name = "designware-i2s";
429+
adev->acp.acp_cell[2].id = 2;
425430
adev->acp.acp_cell[2].num_resources = 1;
426431
adev->acp.acp_cell[2].resources = &adev->acp.acp_res[2];
427432
adev->acp.acp_cell[2].platform_data = &i2s_pdata[1];
428433
adev->acp.acp_cell[2].pdata_size = sizeof(struct i2s_platform_data);
429434

430435
adev->acp.acp_cell[3].name = "designware-i2s";
436+
adev->acp.acp_cell[3].id = 3;
431437
adev->acp.acp_cell[3].num_resources = 1;
432438
adev->acp.acp_cell[3].resources = &adev->acp.acp_res[3];
433439
adev->acp.acp_cell[3].platform_data = &i2s_pdata[2];
434440
adev->acp.acp_cell[3].pdata_size = sizeof(struct i2s_platform_data);
435441

436-
r = mfd_add_hotplug_devices(adev->acp.parent, adev->acp.acp_cell, ACP_DEVS);
442+
r = mfd_add_devices(adev->acp.parent, 0, adev->acp.acp_cell, ACP_DEVS, NULL, 0, NULL);
437443
if (r)
438444
goto failure;
439445

0 commit comments

Comments
 (0)