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 >
0001-drm-radeon-kms-init-rdev-num_crtc-at-asic-init.patch
Description: application/mbox
------------------------------------------------------------------------------ Download Intel® 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