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