diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_device.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_device.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 835516d2d257..511fe26198e4 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
@@ -102,11 +102,14 @@ static const char radeon_family_name[][16] = { | |||
102 | "LAST", | 102 | "LAST", |
103 | }; | 103 | }; |
104 | 104 | ||
105 | #if defined(CONFIG_VGA_SWITCHEROO) | 105 | bool radeon_is_px(struct drm_device *dev) |
106 | bool radeon_is_px(void); | 106 | { |
107 | #else | 107 | struct radeon_device *rdev = dev->dev_private; |
108 | static inline bool radeon_is_px(void) { return false; } | 108 | |
109 | #endif | 109 | if (rdev->flags & RADEON_IS_PX) |
110 | return true; | ||
111 | return false; | ||
112 | } | ||
110 | 113 | ||
111 | /** | 114 | /** |
112 | * radeon_program_register_sequence - program an array of registers. | 115 | * radeon_program_register_sequence - program an array of registers. |
@@ -1082,7 +1085,7 @@ static void radeon_switcheroo_set_state(struct pci_dev *pdev, enum vga_switchero | |||
1082 | { | 1085 | { |
1083 | struct drm_device *dev = pci_get_drvdata(pdev); | 1086 | struct drm_device *dev = pci_get_drvdata(pdev); |
1084 | 1087 | ||
1085 | if (radeon_is_px() && state == VGA_SWITCHEROO_OFF) | 1088 | if (radeon_is_px(dev) && state == VGA_SWITCHEROO_OFF) |
1086 | return; | 1089 | return; |
1087 | 1090 | ||
1088 | if (state == VGA_SWITCHEROO_ON) { | 1091 | if (state == VGA_SWITCHEROO_ON) { |
@@ -1301,9 +1304,7 @@ int radeon_device_init(struct radeon_device *rdev, | |||
1301 | * ignore it */ | 1304 | * ignore it */ |
1302 | vga_client_register(rdev->pdev, rdev, NULL, radeon_vga_set_decode); | 1305 | vga_client_register(rdev->pdev, rdev, NULL, radeon_vga_set_decode); |
1303 | 1306 | ||
1304 | if (radeon_runtime_pm == 1) | 1307 | if (rdev->flags & RADEON_IS_PX) |
1305 | runtime = true; | ||
1306 | if ((radeon_runtime_pm == -1) && radeon_is_px()) | ||
1307 | runtime = true; | 1308 | runtime = true; |
1308 | vga_switcheroo_register_client(rdev->pdev, &radeon_switcheroo_ops, runtime); | 1309 | vga_switcheroo_register_client(rdev->pdev, &radeon_switcheroo_ops, runtime); |
1309 | if (runtime) | 1310 | if (runtime) |