Am 31.10.2016 um 16:07 schrieb Alex Deucher: > If the platform does not support hybrid graphics or ATPX dGPU > power control. > > bug: https://bugzilla.kernel.org/show_bug.cgi?id=51381 > > Signed-off-by: Alex Deucher <alexander.deucher at amd.com> > Cc: stable at vger.kernel.org Acked-by: Christian König <christian.koenig at amd.com> for both. > --- > drivers/gpu/drm/radeon/radeon_device.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c > index 79c9b6f..2be984d 100644 > --- a/drivers/gpu/drm/radeon/radeon_device.c > +++ b/drivers/gpu/drm/radeon/radeon_device.c > @@ -104,6 +104,14 @@ static const char radeon_family_name[][16] = { > "LAST", > }; > > +#if defined(CONFIG_VGA_SWITCHEROO) > +bool radeon_has_atpx_dgpu_power_cntl(void); > +bool radeon_is_atpx_hybrid(void); > +#else > +static inline bool radeon_has_atpx_dgpu_power_cntl(void) { return false; } > +static inline bool radeon_is_atpx_hybrid(void) { return false; } > +#endif > + > #define RADEON_PX_QUIRK_DISABLE_PX (1 << 0) > #define RADEON_PX_QUIRK_LONG_WAKEUP (1 << 1) > > @@ -160,6 +168,11 @@ static void radeon_device_handle_px_quirks(struct radeon_device *rdev) > > if (rdev->px_quirk_flags & RADEON_PX_QUIRK_DISABLE_PX) > rdev->flags &= ~RADEON_IS_PX; > + > + /* disable PX is the system doesn't support dGPU power control or hybrid gfx */ > + if (!radeon_is_atpx_hybrid() && > + !radeon_has_atpx_dgpu_power_cntl()) > + rdev->flags &= ~RADEON_IS_PX; > } > > /**