Merge tag 'amd-drm-next-5.15-2021-07-29' of https://gitlab.freedesktop.org/agd5f...
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_device.c
index b1d2dc3..6ca9fe5 100644 (file)
@@ -1312,15 +1312,16 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
 /**
  * amdgpu_device_vga_set_decode - enable/disable vga decode
  *
- * @cookie: amdgpu_device pointer
+ * @pdev: PCI device pointer
  * @state: enable/disable vga decode
  *
  * Enable/disable vga decode (all asics).
  * Returns VGA resource flags.
  */
-static unsigned int amdgpu_device_vga_set_decode(void *cookie, bool state)
+static unsigned int amdgpu_device_vga_set_decode(struct pci_dev *pdev,
+               bool state)
 {
-       struct amdgpu_device *adev = cookie;
+       struct amdgpu_device *adev = drm_to_adev(pci_get_drvdata(pdev));
        amdgpu_asic_set_vga_state(adev, state);
        if (state)
                return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM |
@@ -3768,7 +3769,7 @@ fence_driver_init:
        /* this will fail for cards that aren't VGA class devices, just
         * ignore it */
        if ((adev->pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA)
-               vga_client_register(adev->pdev, adev, NULL, amdgpu_device_vga_set_decode);
+               vga_client_register(adev->pdev, amdgpu_device_vga_set_decode);
 
        if (amdgpu_device_supports_px(ddev)) {
                px = true;
@@ -3887,7 +3888,7 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)
                vga_switcheroo_fini_domain_pm_ops(adev->dev);
        }
        if ((adev->pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA)
-               vga_client_register(adev->pdev, NULL, NULL, NULL);
+               vga_client_unregister(adev->pdev);
 
        if (IS_ENABLED(CONFIG_PERF_EVENTS))
                amdgpu_pmu_fini(adev);