ARGH!  sent the wrong patch again.  This one should be the correct one.

Alex

>From c04ed4d1639c09829e0851c579734173e1aa7bca Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeuc...@gmail.com>
Date: Tue, 16 Mar 2010 17:08:06 -0400
Subject: [PATCH] drm/radeon/kms: init rdev->num_crtc at asic init

Replace hardcoded numbers with rdev->num_crtc.

Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
---
 drivers/gpu/drm/radeon/radeon_asic.c    |   10 ++++++++++
 drivers/gpu/drm/radeon/radeon_display.c |    9 ---------
 drivers/gpu/drm/radeon/radeon_irq_kms.c |   14 ++++++--------
 3 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_asic.c
b/drivers/gpu/drm/radeon/radeon_asic.c
index 3e40bc4..45ccc81 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.c
+++ b/drivers/gpu/drm/radeon/radeon_asic.c
@@ -713,6 +713,16 @@ int radeon_asic_init(struct radeon_device *rdev)
                rdev->asic->set_memory_clock = NULL;
        }

+       /* set the number of crtcs */
+       if (rdev->flags & RADEON_SINGLE_CRTC)
+               rdev->num_crtc = 1;
+       else {
+               if (ASIC_IS_DCE4(rdev))
+                       rdev->num_crtc = 6;
+               else
+                       rdev->num_crtc = 2;
+       }
+
        return 0;
 }

diff --git a/drivers/gpu/drm/radeon/radeon_display.c
b/drivers/gpu/drm/radeon/radeon_display.c
index ff5f099..d65931d 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1003,15 +1003,6 @@ int radeon_modeset_init(struct radeon_device *rdev)
                radeon_combios_check_hardcoded_edid(rdev);
        }

-       if (rdev->flags & RADEON_SINGLE_CRTC)
-               rdev->num_crtc = 1;
-       else {
-               if (ASIC_IS_DCE4(rdev))
-                       rdev->num_crtc = 6;
-               else
-                       rdev->num_crtc = 2;
-       }
-
        /* allocate crtcs */
        for (i = 0; i < rdev->num_crtc; i++) {
                radeon_crtc_init(rdev->ddev, i);
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c
b/drivers/gpu/drm/radeon/radeon_irq_kms.c
index 3cfd60f..68519b4 100644
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -67,9 +67,10 @@ void radeon_driver_irq_preinstall_kms(struct drm_device *dev)

        /* Disable *all* interrupts */
        rdev->irq.sw_int = false;
-       for (i = 0; i < 2; i++) {
+       for (i = 0; i < rdev->num_crtc; i++)
                rdev->irq.crtc_vblank_int[i] = false;
-       }
+       for (i = 0; i < 6; i++)
+               rdev->irq.hpd[i] = false;
        radeon_irq_set(rdev);
        /* Clear bits */
        radeon_irq_process(rdev);
@@ -95,22 +96,19 @@ void radeon_driver_irq_uninstall_kms(struct drm_device *dev)
        }
        /* Disable *all* interrupts */
        rdev->irq.sw_int = false;
-       for (i = 0; i < 2; i++) {
+       for (i = 0; i < rdev->num_crtc; i++)
                rdev->irq.crtc_vblank_int[i] = false;
+       for (i = 0; i < 6; i++)
                rdev->irq.hpd[i] = false;
-       }
        radeon_irq_set(rdev);
 }

 int radeon_irq_kms_init(struct radeon_device *rdev)
 {
        int r = 0;
-       int num_crtc = 2;

-       if (rdev->flags & RADEON_SINGLE_CRTC)
-               num_crtc = 1;
        spin_lock_init(&rdev->irq.sw_lock);
-       r = drm_vblank_init(rdev->ddev, num_crtc);
+       r = drm_vblank_init(rdev->ddev, rdev->num_crtc);
        if (r) {
                return r;
        }
-- 
1.5.6.3

On Tue, Mar 16, 2010 at 4:59 PM, Alex Deucher <alexdeuc...@gmail.com> wrote:
> Updated version that applies cleanly without other pm changes.
>
> Alex
>
> From c651ef22ef41204031e0be5fe6f2fc43554775db Mon Sep 17 00:00:00 2001
> From: Alex Deucher <alexdeuc...@gmail.com>
> Date: Tue, 16 Mar 2010 16:57:52 -0400
> Subject: [PATCH] drm/radeon/kms: init rdev->num_crtc at asic init
>
> Replace hardcoded numbers with rdev->num_crtc.
>
> Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
> ---
>  drivers/gpu/drm/radeon/radeon_asic.c    |   10 ++++++++++
>  drivers/gpu/drm/radeon/radeon_display.c |    9 ---------
>  drivers/gpu/drm/radeon/radeon_irq_kms.c |    9 +++------
>  3 files changed, 13 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_asic.c
> b/drivers/gpu/drm/radeon/radeon_asic.c
> index 3e40bc4..45ccc81 100644
> --- a/drivers/gpu/drm/radeon/radeon_asic.c
> +++ b/drivers/gpu/drm/radeon/radeon_asic.c
> @@ -713,6 +713,16 @@ int radeon_asic_init(struct radeon_device *rdev)
>                rdev->asic->set_memory_clock = NULL;
>        }
>
> +       /* set the number of crtcs */
> +       if (rdev->flags & RADEON_SINGLE_CRTC)
> +               rdev->num_crtc = 1;
> +       else {
> +               if (ASIC_IS_DCE4(rdev))
> +                       rdev->num_crtc = 6;
> +               else
> +                       rdev->num_crtc = 2;
> +       }
> +
>        return 0;
>  }
>
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c
> b/drivers/gpu/drm/radeon/radeon_display.c
> index ff5f099..d65931d 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -1003,15 +1003,6 @@ int radeon_modeset_init(struct radeon_device *rdev)
>                radeon_combios_check_hardcoded_edid(rdev);
>        }
>
> -       if (rdev->flags & RADEON_SINGLE_CRTC)
> -               rdev->num_crtc = 1;
> -       else {
> -               if (ASIC_IS_DCE4(rdev))
> -                       rdev->num_crtc = 6;
> -               else
> -                       rdev->num_crtc = 2;
> -       }
> -
>        /* allocate crtcs */
>        for (i = 0; i < rdev->num_crtc; i++) {
>                radeon_crtc_init(rdev->ddev, i);
> diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c
> b/drivers/gpu/drm/radeon/radeon_irq_kms.c
> index 3cfd60f..1122687 100644
> --- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
> +++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
> @@ -95,22 +95,19 @@ void radeon_driver_irq_uninstall_kms(struct drm_device 
> *dev)
>        }
>        /* Disable *all* interrupts */
>        rdev->irq.sw_int = false;
> -       for (i = 0; i < 2; i++) {
> +       for (i = 0; i < rdev->num_crtc; i++)
>                rdev->irq.crtc_vblank_int[i] = false;
> +       for (i = 0; i < 6; i++)
>                rdev->irq.hpd[i] = false;
> -       }
>        radeon_irq_set(rdev);
>  }
>
>  int radeon_irq_kms_init(struct radeon_device *rdev)
>  {
>        int r = 0;
> -       int num_crtc = 2;
>
> -       if (rdev->flags & RADEON_SINGLE_CRTC)
> -               num_crtc = 1;
>        spin_lock_init(&rdev->irq.sw_lock);
> -       r = drm_vblank_init(rdev->ddev, num_crtc);
> +       r = drm_vblank_init(rdev->ddev, rdev->num_crtc);
>        if (r) {
>                return r;
>        }
> --
> 1.5.6.3
>
>
> On Mon, Mar 15, 2010 at 5:10 PM, Alex Deucher <alexdeuc...@gmail.com> wrote:
>> From 2ccd66337a664a7096ff5fba6ad7f9f01295c17b Mon Sep 17 00:00:00 2001
>> From: Alex Deucher <alexdeuc...@gmail.com>
>> Date: Mon, 15 Mar 2010 17:02:12 -0400
>> Subject: [PATCH] drm/radeon/kms: init rdev->num_crtc at asic init
>>
>> Replace hardcoded numbers with rdev->num_crtc.
>>
>> Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
>> ---
>>  drivers/gpu/drm/radeon/radeon_asic.c    |   10 ++++++++++
>>  drivers/gpu/drm/radeon/radeon_display.c |    9 ---------
>>  drivers/gpu/drm/radeon/radeon_irq_kms.c |    9 +++------
>>  3 files changed, 13 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_asic.c
>> b/drivers/gpu/drm/radeon/radeon_asic.c
>> index 7e34a00..53ee3f8 100644
>> --- a/drivers/gpu/drm/radeon/radeon_asic.c
>> +++ b/drivers/gpu/drm/radeon/radeon_asic.c
>> @@ -752,6 +752,16 @@ int radeon_asic_init(struct radeon_device *rdev)
>>                rdev->asic->set_memory_clock = NULL;
>>        }
>>
>> +       /* set the number of crtcs */
>> +       if (rdev->flags & RADEON_SINGLE_CRTC)
>> +               rdev->num_crtc = 1;
>> +       else {
>> +               if (ASIC_IS_DCE4(rdev))
>> +                       rdev->num_crtc = 6;
>> +               else
>> +                       rdev->num_crtc = 2;
>> +       }
>> +
>>        return 0;
>>  }
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_display.c
>> b/drivers/gpu/drm/radeon/radeon_display.c
>> index ff5f099..d65931d 100644
>> --- a/drivers/gpu/drm/radeon/radeon_display.c
>> +++ b/drivers/gpu/drm/radeon/radeon_display.c
>> @@ -1003,15 +1003,6 @@ int radeon_modeset_init(struct radeon_device *rdev)
>>                radeon_combios_check_hardcoded_edid(rdev);
>>        }
>>
>> -       if (rdev->flags & RADEON_SINGLE_CRTC)
>> -               rdev->num_crtc = 1;
>> -       else {
>> -               if (ASIC_IS_DCE4(rdev))
>> -                       rdev->num_crtc = 6;
>> -               else
>> -                       rdev->num_crtc = 2;
>> -       }
>> -
>>        /* allocate crtcs */
>>        for (i = 0; i < rdev->num_crtc; i++) {
>>                radeon_crtc_init(rdev->ddev, i);
>> diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c
>> b/drivers/gpu/drm/radeon/radeon_irq_kms.c
>> index 5c26c0a..45926ea 100644
>> --- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
>> +++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
>> @@ -96,22 +96,19 @@ void radeon_driver_irq_uninstall_kms(struct drm_device 
>> *dev)
>>        /* Disable *all* interrupts */
>>        rdev->irq.sw_int = false;
>>        rdev->irq.gui_idle = false;
>> -       for (i = 0; i < 2; i++) {
>> +       for (i = 0; i < rdev->num_crtc; i++)
>>                rdev->irq.crtc_vblank_int[i] = false;
>> +       for (i = 0; i < 6; i++)
>>                rdev->irq.hpd[i] = false;
>> -       }
>>        radeon_irq_set(rdev);
>>  }
>>
>>  int radeon_irq_kms_init(struct radeon_device *rdev)
>>  {
>>        int r = 0;
>> -       int num_crtc = 2;
>>
>> -       if (rdev->flags & RADEON_SINGLE_CRTC)
>> -               num_crtc = 1;
>>        spin_lock_init(&rdev->irq.sw_lock);
>> -       r = drm_vblank_init(rdev->ddev, num_crtc);
>> +       r = drm_vblank_init(rdev->ddev, rdev->num_crtc);
>>        if (r) {
>>                return r;
>>        }
>> --
>> 1.5.6.3
>>
>

Attachment: 0001-drm-radeon-kms-init-rdev-num_crtc-at-asic-init.patch
Description: application/mbox

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to