drm/radeon/kms: consolidate crtc count in rdev
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 1 Feb 2010 21:02:25 +0000 (16:02 -0500)
committerDave Airlie <airlied@redhat.com>
Mon, 8 Feb 2010 23:32:25 +0000 (09:32 +1000)
Set the number of crtcs in rdev at crtc init and use it
whenever we need the crtc count rather than recalculating
it everytime.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_display.c
drivers/gpu/drm/radeon/radeon_fb.c

index 88113f756ab7baf5b3c5b631c38fcc60537bd839..29ae3839c2122e100bebee634bd7a6b817cfe705 100644 (file)
@@ -829,6 +829,7 @@ struct radeon_device {
        struct r600_ih ih; /* r6/700 interrupt ring */
        struct workqueue_struct *wq;
        struct work_struct hotplug_work;
+       int num_crtc; /* number of crtcs */
        struct mutex dc_hw_i2c_mutex; /* display controller hw i2c mutex */
 
        /* audio stuff */
index 62fe66c023418602ded3dd7b61ee44b9a778947a..a41ed40c13fbba38cec2e488535ea926bebc1eb0 100644 (file)
@@ -831,7 +831,7 @@ static int radeon_modeset_create_props(struct radeon_device *rdev)
 
 int radeon_modeset_init(struct radeon_device *rdev)
 {
-       int num_crtc = 2, i;
+       int i;
        int ret;
 
        drm_mode_config_init(rdev->ddev);
@@ -861,10 +861,12 @@ int radeon_modeset_init(struct radeon_device *rdev)
        }
 
        if (rdev->flags & RADEON_SINGLE_CRTC)
-               num_crtc = 1;
+               rdev->num_crtc = 1;
+       else
+               rdev->num_crtc = 2;
 
        /* allocate crtcs */
-       for (i = 0; i < num_crtc; i++) {
+       for (i = 0; i < rdev->num_crtc; i++) {
                radeon_crtc_init(rdev->ddev, i);
        }
 
index 66055b3d86684031ab16eb9e872360fb68fcaaa2..105c678fa73a51986aa0a36586e6e4f41bbf8c55 100644 (file)
@@ -148,7 +148,6 @@ int radeonfb_create(struct drm_device *dev,
        unsigned long tmp;
        bool fb_tiled = false; /* useful for testing */
        u32 tiling_flags = 0;
-       int crtc_count;
 
        mode_cmd.width = surface_width;
        mode_cmd.height = surface_height;
@@ -239,11 +238,7 @@ int radeonfb_create(struct drm_device *dev,
        rfbdev = info->par;
        rfbdev->helper.funcs = &radeon_fb_helper_funcs;
        rfbdev->helper.dev = dev;
-       if (rdev->flags & RADEON_SINGLE_CRTC)
-               crtc_count = 1;
-       else
-               crtc_count = 2;
-       ret = drm_fb_helper_init_crtc_count(&rfbdev->helper, crtc_count,
+       ret = drm_fb_helper_init_crtc_count(&rfbdev->helper, rdev->num_crtc,
                                            RADEONFB_CONN_LIMIT);
        if (ret)
                goto out_unref;