On Mon, Jun 30, 2025 at 10:03 AM Lijo Lazar <lijo.la...@amd.com> wrote: > > Pass amdgpu device context instead of drm device context to some > amdgpu_device_* functions. DRM device context is not required in those > functions. No functional change. > > Signed-off-by: Lijo Lazar <lijo.la...@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 24 ++++---- > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 8 +-- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 65 ++++++++++------------ > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 15 +++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 +- > drivers/gpu/drm/amd/pm/amdgpu_pm.c | 4 +- > 6 files changed, 57 insertions(+), 63 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index f9c981a3ea05..ebc1a2203492 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -1583,16 +1583,16 @@ void amdgpu_device_program_register_sequence(struct > amdgpu_device *adev, > > int amdgpu_device_mode1_reset(struct amdgpu_device *adev); > int amdgpu_device_link_reset(struct amdgpu_device *adev); > -bool amdgpu_device_supports_atpx(struct drm_device *dev); > -bool amdgpu_device_supports_px(struct drm_device *dev); > -bool amdgpu_device_supports_boco(struct drm_device *dev); > -bool amdgpu_device_supports_smart_shift(struct drm_device *dev); > -int amdgpu_device_supports_baco(struct drm_device *dev); > +bool amdgpu_device_supports_atpx(struct amdgpu_device *adev); > +bool amdgpu_device_supports_px(struct amdgpu_device *adev); > +bool amdgpu_device_supports_boco(struct amdgpu_device *adev); > +bool amdgpu_device_supports_smart_shift(struct amdgpu_device *adev); > +int amdgpu_device_supports_baco(struct amdgpu_device *adev); > void amdgpu_device_detect_runtime_pm_mode(struct amdgpu_device *adev); > bool amdgpu_device_is_peer_accessible(struct amdgpu_device *adev, > struct amdgpu_device *peer_adev); > -int amdgpu_device_baco_enter(struct drm_device *dev); > -int amdgpu_device_baco_exit(struct drm_device *dev); > +int amdgpu_device_baco_enter(struct amdgpu_device *adev); > +int amdgpu_device_baco_exit(struct amdgpu_device *adev); > > void amdgpu_device_flush_hdp(struct amdgpu_device *adev, > struct amdgpu_ring *ring); > @@ -1695,7 +1695,8 @@ int amdgpu_acpi_pcie_performance_request(struct > amdgpu_device *adev, > u8 perf_req, bool advertise); > int amdgpu_acpi_power_shift_control(struct amdgpu_device *adev, > u8 dev_state, bool drv_state); > -int amdgpu_acpi_smart_shift_update(struct drm_device *dev, enum amdgpu_ss > ss_state); > +int amdgpu_acpi_smart_shift_update(struct amdgpu_device *adev, > + enum amdgpu_ss ss_state); > int amdgpu_acpi_pcie_notify_device_ready(struct amdgpu_device *adev); > int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset, > u64 *tmr_size); > @@ -1726,8 +1727,11 @@ static inline void amdgpu_acpi_release(void) { } > static inline bool amdgpu_acpi_is_power_shift_control_supported(void) { > return false; } > static inline int amdgpu_acpi_power_shift_control(struct amdgpu_device *adev, > u8 dev_state, bool > drv_state) { return 0; } > -static inline int amdgpu_acpi_smart_shift_update(struct drm_device *dev, > - enum amdgpu_ss ss_state) { > return 0; } > +static inline int amdgpu_acpi_smart_shift_update(struct amdgpu_device *adev, > + enum amdgpu_ss ss_state) > +{ > + return 0; > +} > static inline void amdgpu_acpi_get_backlight_caps(struct > amdgpu_dm_backlight_caps *caps) { } > #endif > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > index ae2d08cf027e..6c62e27b9800 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > @@ -811,18 +811,18 @@ int amdgpu_acpi_power_shift_control(struct > amdgpu_device *adev, > /** > * amdgpu_acpi_smart_shift_update - update dGPU device state to SBIOS > * > - * @dev: drm_device pointer > + * @adev: amdgpu device pointer > * @ss_state: current smart shift event > * > * returns 0 on success, > * otherwise return error number. > */ > -int amdgpu_acpi_smart_shift_update(struct drm_device *dev, enum amdgpu_ss > ss_state) > +int amdgpu_acpi_smart_shift_update(struct amdgpu_device *adev, > + enum amdgpu_ss ss_state) > { > - struct amdgpu_device *adev = drm_to_adev(dev); > int r; > > - if (!amdgpu_device_supports_smart_shift(dev)) > + if (!amdgpu_device_supports_smart_shift(adev)) > return 0; > > switch (ss_state) { > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index 30173daeff85..154b1f18400a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -413,19 +413,16 @@ static const struct attribute_group > amdgpu_board_attrs_group = { > > static void amdgpu_device_get_pcie_info(struct amdgpu_device *adev); > > - > /** > * amdgpu_device_supports_px - Is the device a dGPU with ATPX power control > * > - * @dev: drm_device pointer > + * @adev: amdgpu device pointer > * > * Returns true if the device is a dGPU with ATPX power control, > * otherwise return false. > */ > -bool amdgpu_device_supports_px(struct drm_device *dev) > +bool amdgpu_device_supports_px(struct amdgpu_device *adev) > { > - struct amdgpu_device *adev = drm_to_adev(dev); > - > if ((adev->flags & AMD_IS_PX) && !amdgpu_is_atpx_hybrid()) > return true; > return false; > @@ -434,15 +431,13 @@ bool amdgpu_device_supports_px(struct drm_device *dev) > /** > * amdgpu_device_supports_boco - Is the device a dGPU with ACPI power > resources > * > - * @dev: drm_device pointer > + * @adev: amdgpu device pointer > * > * Returns true if the device is a dGPU with ACPI power control, > * otherwise return false. > */ > -bool amdgpu_device_supports_boco(struct drm_device *dev) > +bool amdgpu_device_supports_boco(struct amdgpu_device *adev) > { > - struct amdgpu_device *adev = drm_to_adev(dev); > - > if (!IS_ENABLED(CONFIG_HOTPLUG_PCI_PCIE)) > return false; > > @@ -455,29 +450,24 @@ bool amdgpu_device_supports_boco(struct drm_device *dev) > /** > * amdgpu_device_supports_baco - Does the device support BACO > * > - * @dev: drm_device pointer > + * @adev: amdgpu device pointer > * > * Return: > * 1 if the device supports BACO; > * 3 if the device supports MACO (only works if BACO is supported) > * otherwise return 0. > */ > -int amdgpu_device_supports_baco(struct drm_device *dev) > +int amdgpu_device_supports_baco(struct amdgpu_device *adev) > { > - struct amdgpu_device *adev = drm_to_adev(dev); > - > return amdgpu_asic_supports_baco(adev); > } > > void amdgpu_device_detect_runtime_pm_mode(struct amdgpu_device *adev) > { > - struct drm_device *dev; > int bamaco_support; > > - dev = adev_to_drm(adev); > - > adev->pm.rpm_mode = AMDGPU_RUNPM_NONE; > - bamaco_support = amdgpu_device_supports_baco(dev); > + bamaco_support = amdgpu_device_supports_baco(adev); > > switch (amdgpu_runtime_pm) { > case 2: > @@ -497,10 +487,12 @@ void amdgpu_device_detect_runtime_pm_mode(struct > amdgpu_device *adev) > break; > case -1: > case -2: > - if (amdgpu_device_supports_px(dev)) { /* enable PX as runtime > mode */ > + if (amdgpu_device_supports_px(adev)) { > + /* enable PX as runtime mode */ > adev->pm.rpm_mode = AMDGPU_RUNPM_PX; > dev_info(adev->dev, "Using ATPX for runtime pm\n"); > - } else if (amdgpu_device_supports_boco(dev)) { /* enable boco > as runtime mode */ > + } else if (amdgpu_device_supports_boco(adev)) { > + /* enable boco as runtime mode */ > adev->pm.rpm_mode = AMDGPU_RUNPM_BOCO; > dev_info(adev->dev, "Using BOCO for runtime pm\n"); > } else { > @@ -549,14 +541,14 @@ void amdgpu_device_detect_runtime_pm_mode(struct > amdgpu_device *adev) > * amdgpu_device_supports_smart_shift - Is the device dGPU with > * smart shift support > * > - * @dev: drm_device pointer > + * @adev: amdgpu device pointer > * > * Returns true if the device is a dGPU with Smart Shift support, > * otherwise returns false. > */ > -bool amdgpu_device_supports_smart_shift(struct drm_device *dev) > +bool amdgpu_device_supports_smart_shift(struct amdgpu_device *adev) > { > - return (amdgpu_device_supports_boco(dev) && > + return (amdgpu_device_supports_boco(adev) && > amdgpu_acpi_is_power_shift_control_supported()); > } > > @@ -2202,7 +2194,8 @@ static void amdgpu_switcheroo_set_state(struct pci_dev > *pdev, > struct drm_device *dev = pci_get_drvdata(pdev); > int r; > > - if (amdgpu_device_supports_px(dev) && state == VGA_SWITCHEROO_OFF) > + if (amdgpu_device_supports_px(drm_to_adev(dev)) && > + state == VGA_SWITCHEROO_OFF) > return; > > if (state == VGA_SWITCHEROO_ON) { > @@ -4194,13 +4187,13 @@ static void amdgpu_device_xgmi_reset_func(struct > work_struct *__work) > if (amdgpu_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) { > > task_barrier_enter(&hive->tb); > - adev->asic_reset_res = > amdgpu_device_baco_enter(adev_to_drm(adev)); > + adev->asic_reset_res = amdgpu_device_baco_enter(adev); > > if (adev->asic_reset_res) > goto fail; > > task_barrier_exit(&hive->tb); > - adev->asic_reset_res = > amdgpu_device_baco_exit(adev_to_drm(adev)); > + adev->asic_reset_res = amdgpu_device_baco_exit(adev); > > if (adev->asic_reset_res) > goto fail; > @@ -4355,7 +4348,6 @@ static void amdgpu_device_set_mcbp(struct amdgpu_device > *adev) > int amdgpu_device_init(struct amdgpu_device *adev, > uint32_t flags) > { > - struct drm_device *ddev = adev_to_drm(adev); > struct pci_dev *pdev = adev->pdev; > int r, i; > bool px = false; > @@ -4816,7 +4808,7 @@ int amdgpu_device_init(struct amdgpu_device *adev, > if ((adev->pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA) > vga_client_register(adev->pdev, amdgpu_device_vga_set_decode); > > - px = amdgpu_device_supports_px(ddev); > + px = amdgpu_device_supports_px(adev); > > if (px || (!dev_is_removable(&adev->pdev->dev) && > apple_gmux_detect(NULL, NULL))) > @@ -4982,7 +4974,7 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev) > kfree(adev->xcp_mgr); > adev->xcp_mgr = NULL; > > - px = amdgpu_device_supports_px(adev_to_drm(adev)); > + px = amdgpu_device_supports_px(adev); > > if (px || (!dev_is_removable(&adev->pdev->dev) && > apple_gmux_detect(NULL, NULL))) > @@ -5155,7 +5147,7 @@ int amdgpu_device_suspend(struct drm_device *dev, bool > notify_clients) > return r; > } > > - if (amdgpu_acpi_smart_shift_update(dev, AMDGPU_SS_DEV_D3)) > + if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DEV_D3)) > dev_warn(adev->dev, "smart shift update failed\n"); > > if (notify_clients) > @@ -5324,7 +5316,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool > notify_clients) > } > adev->in_suspend = false; > > - if (amdgpu_acpi_smart_shift_update(dev, AMDGPU_SS_DEV_D0)) > + if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DEV_D0)) > dev_warn(adev->dev, "smart shift update failed\n"); > > return 0; > @@ -6369,7 +6361,8 @@ static int amdgpu_device_sched_resume(struct list_head > *device_list, > amdgpu_vf_error_put(tmp_adev, > AMDGIM_ERROR_VF_GPU_RESET_FAIL, 0, r); > } else { > dev_info(tmp_adev->dev, "GPU reset(%d) succeeded!\n", > atomic_read(&tmp_adev->gpu_reset_counter)); > - if > (amdgpu_acpi_smart_shift_update(adev_to_drm(tmp_adev), AMDGPU_SS_DEV_D0)) > + if (amdgpu_acpi_smart_shift_update(tmp_adev, > + AMDGPU_SS_DEV_D0)) > dev_warn(tmp_adev->dev, > "smart shift update failed\n"); > } > @@ -6837,12 +6830,11 @@ bool amdgpu_device_is_peer_accessible(struct > amdgpu_device *adev, > #endif > } > > -int amdgpu_device_baco_enter(struct drm_device *dev) > +int amdgpu_device_baco_enter(struct amdgpu_device *adev) > { > - struct amdgpu_device *adev = drm_to_adev(dev); > struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); > > - if (!amdgpu_device_supports_baco(dev)) > + if (!amdgpu_device_supports_baco(adev)) > return -ENOTSUPP; > > if (ras && adev->ras_enabled && > @@ -6852,13 +6844,12 @@ int amdgpu_device_baco_enter(struct drm_device *dev) > return amdgpu_dpm_baco_enter(adev); > } > > -int amdgpu_device_baco_exit(struct drm_device *dev) > +int amdgpu_device_baco_exit(struct amdgpu_device *adev) > { > - struct amdgpu_device *adev = drm_to_adev(dev); > struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); > int ret = 0; > > - if (!amdgpu_device_supports_baco(dev)) > + if (!amdgpu_device_supports_baco(adev)) > return -ENOTSUPP; > > ret = amdgpu_dpm_baco_exit(adev); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index b299e15bb5e5..4f8632737574 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -2457,10 +2457,10 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, > > if (adev->pm.rpm_mode != AMDGPU_RUNPM_NONE) { > /* only need to skip on ATPX */ > - if (amdgpu_device_supports_px(ddev)) > + if (amdgpu_device_supports_px(adev)) > dev_pm_set_driver_flags(ddev->dev, > DPM_FLAG_NO_DIRECT_COMPLETE); > /* we want direct complete for BOCO */ > - if (amdgpu_device_supports_boco(ddev)) > + if (amdgpu_device_supports_boco(adev)) > dev_pm_set_driver_flags(ddev->dev, > DPM_FLAG_SMART_PREPARE | > DPM_FLAG_SMART_SUSPEND | > DPM_FLAG_MAY_SKIP_RESUME); > @@ -2493,9 +2493,9 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, > * into D0 state. Then there will be a PMFW-aware D-state > * transition(D0->D3) on runpm suspend. > */ > - if (amdgpu_device_supports_baco(ddev) && > + if (amdgpu_device_supports_baco(adev) && > !(adev->flags & AMD_IS_APU) && > - (adev->asic_type >= CHIP_NAVI10)) > + adev->asic_type >= CHIP_NAVI10) > amdgpu_get_secondary_funcs(adev); > } > > @@ -2560,8 +2560,7 @@ static int amdgpu_pmops_prepare(struct device *dev) > /* Return a positive number here so > * DPM_FLAG_SMART_SUSPEND works properly > */ > - if (amdgpu_device_supports_boco(drm_dev) && > - pm_runtime_suspended(dev)) > + if (amdgpu_device_supports_boco(adev) && pm_runtime_suspended(dev)) > return 1; > > /* if we will not support s3 or s2i for the device > @@ -2834,7 +2833,7 @@ static int amdgpu_pmops_runtime_suspend(struct device > *dev) > /* nothing to do */ > } else if ((adev->pm.rpm_mode == AMDGPU_RUNPM_BACO) || > (adev->pm.rpm_mode == AMDGPU_RUNPM_BAMACO)) { > - amdgpu_device_baco_enter(drm_dev); > + amdgpu_device_baco_enter(adev); > } > > dev_dbg(&pdev->dev, "asic/device is runtime suspended\n"); > @@ -2875,7 +2874,7 @@ static int amdgpu_pmops_runtime_resume(struct device > *dev) > pci_set_master(pdev); > } else if ((adev->pm.rpm_mode == AMDGPU_RUNPM_BACO) || > (adev->pm.rpm_mode == AMDGPU_RUNPM_BAMACO)) { > - amdgpu_device_baco_exit(drm_dev); > + amdgpu_device_baco_exit(adev); > } > ret = amdgpu_device_resume(drm_dev, false); > if (ret) { > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > index 5d38276fc900..4aab5e394ce2 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > @@ -91,7 +91,7 @@ void amdgpu_driver_unload_kms(struct drm_device *dev) > if (adev->rmmio == NULL) > return; > > - if (amdgpu_acpi_smart_shift_update(dev, AMDGPU_SS_DRV_UNLOAD)) > + if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DRV_UNLOAD)) > DRM_WARN("smart shift update failed\n"); > > amdgpu_acpi_fini(adev); > @@ -161,7 +161,7 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, > unsigned long flags) > if (acpi_status) > dev_dbg(dev->dev, "Error during ACPI methods call\n"); > > - if (amdgpu_acpi_smart_shift_update(dev, AMDGPU_SS_DRV_LOAD)) > + if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DRV_LOAD)) > DRM_WARN("smart shift update failed\n"); > > out: > diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > index 5537dcf23b5c..c2fde0e33b38 100644 > --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > @@ -1897,7 +1897,7 @@ static ssize_t amdgpu_set_smartshift_bias(struct device > *dev, > static int ss_power_attr_update(struct amdgpu_device *adev, struct > amdgpu_device_attr *attr, > uint32_t mask, enum amdgpu_device_attr_states > *states) > { > - if (!amdgpu_device_supports_smart_shift(adev_to_drm(adev))) > + if (!amdgpu_device_supports_smart_shift(adev)) > *states = ATTR_STATE_UNSUPPORTED; > > return 0; > @@ -1908,7 +1908,7 @@ static int ss_bias_attr_update(struct amdgpu_device > *adev, struct amdgpu_device_ > { > uint32_t ss_power; > > - if (!amdgpu_device_supports_smart_shift(adev_to_drm(adev))) > + if (!amdgpu_device_supports_smart_shift(adev)) > *states = ATTR_STATE_UNSUPPORTED; > else if (amdgpu_hwmon_get_sensor_generic(adev, > AMDGPU_PP_SENSOR_SS_APU_SHARE, > (void *)&ss_power)) > -- > 2.49.0 >