[PATCH] radeon: Add option to disable dpm quirks
Christian König
deathsimple at vodafone.de
Sat Aug 8 12:10:34 PDT 2015
On 08.08.2015 17:09, Adel Gadllah wrote:
> Allow users to disable hardware specific dpm quirks
> using a module parameter.
>
> This patch leaves quirks enabled by default.
You should read the code a bit more carefully, you can already override
the kernel quirks by specifying radeon.dpm=1 on the kernel command line.
Regards,
Christian.
>
> Signed-off-by: Adel Gadllah <adel.gadllah at gmail.com>
> ---
> drivers/gpu/drm/radeon/radeon.h | 1 +
> drivers/gpu/drm/radeon/radeon_drv.c | 4 ++++
> drivers/gpu/drm/radeon/radeon_pm.c | 2 +-
> drivers/gpu/drm/radeon/si_dpm.c | 2 +-
> 4 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index f03b7eb..1d90f3d 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -102,6 +102,7 @@ extern int radeon_msi;
> extern int radeon_lockup_timeout;
> extern int radeon_fastfb;
> extern int radeon_dpm;
> +extern int radeon_dpm_quirks;
> extern int radeon_aspm;
> extern int radeon_runtime_pm;
> extern int radeon_hard_reset;
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> index 5751446..3530e39 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -183,6 +183,7 @@ int radeon_msi = -1;
> int radeon_lockup_timeout = 10000;
> int radeon_fastfb = 0;
> int radeon_dpm = -1;
> +int radeon_dpm_quirks = 1;
> int radeon_aspm = -1;
> int radeon_runtime_pm = -1;
> int radeon_hard_reset = 0;
> @@ -249,6 +250,9 @@ module_param_named(lockup_timeout, radeon_lockup_timeout, int, 0444);
> MODULE_PARM_DESC(fastfb, "Direct FB access for IGP chips (0 = disable, 1 = enable)");
> module_param_named(fastfb, radeon_fastfb, int, 0444);
>
> +MODULE_PARM_DESC(dpm_quirks, "Use hardware specific DPM quirks (1 = enable (default), 0 = disable)");
> +module_param_named(dpm_quirks, radeon_dpm_quirks, int, 0444);
> +
> MODULE_PARM_DESC(dpm, "DPM support (1 = enable, 0 = disable, -1 = auto)");
> module_param_named(dpm, radeon_dpm, int, 0444);
>
> diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
> index c1ba83a..5d7b25e 100644
> --- a/drivers/gpu/drm/radeon/radeon_pm.c
> +++ b/drivers/gpu/drm/radeon/radeon_pm.c
> @@ -1460,7 +1460,7 @@ int radeon_pm_init(struct radeon_device *rdev)
> bool disable_dpm = false;
>
> /* Apply dpm quirks */
> - while (p && p->chip_device != 0) {
> + while (radeon_dpm_quirks && p && p->chip_device != 0) {
> if (rdev->pdev->vendor == p->chip_vendor &&
> rdev->pdev->device == p->chip_device &&
> rdev->pdev->subsystem_vendor == p->subsys_vendor &&
> diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
> index 787cd8f..eb8ff32 100644
> --- a/drivers/gpu/drm/radeon/si_dpm.c
> +++ b/drivers/gpu/drm/radeon/si_dpm.c
> @@ -2995,7 +2995,7 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,
> struct si_dpm_quirk *p = si_dpm_quirk_list;
>
> /* Apply dpm quirks */
> - while (p && p->chip_device != 0) {
> + while (radeon_dpm_quirks && p && p->chip_device != 0) {
> if (rdev->pdev->vendor == p->chip_vendor &&
> rdev->pdev->device == p->chip_device &&
> rdev->pdev->subsystem_vendor == p->subsys_vendor &&
More information about the dri-devel
mailing list