[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