|
@@ -185,6 +185,7 @@ static int cirrus_crtc_mode_set(struct drm_crtc *crtc,
|
|
{
|
|
{
|
|
struct drm_device *dev = crtc->dev;
|
|
struct drm_device *dev = crtc->dev;
|
|
struct cirrus_device *cdev = dev->dev_private;
|
|
struct cirrus_device *cdev = dev->dev_private;
|
|
|
|
+ const struct drm_framebuffer *fb = crtc->primary->fb;
|
|
int hsyncstart, hsyncend, htotal, hdispend;
|
|
int hsyncstart, hsyncend, htotal, hdispend;
|
|
int vtotal, vdispend;
|
|
int vtotal, vdispend;
|
|
int tmp;
|
|
int tmp;
|
|
@@ -257,7 +258,7 @@ static int cirrus_crtc_mode_set(struct drm_crtc *crtc,
|
|
sr07 = RREG8(SEQ_DATA);
|
|
sr07 = RREG8(SEQ_DATA);
|
|
sr07 &= 0xe0;
|
|
sr07 &= 0xe0;
|
|
hdr = 0;
|
|
hdr = 0;
|
|
- switch (crtc->primary->fb->bits_per_pixel) {
|
|
|
|
|
|
+ switch (fb->bits_per_pixel) {
|
|
case 8:
|
|
case 8:
|
|
sr07 |= 0x11;
|
|
sr07 |= 0x11;
|
|
break;
|
|
break;
|
|
@@ -280,13 +281,13 @@ static int cirrus_crtc_mode_set(struct drm_crtc *crtc,
|
|
WREG_SEQ(0x7, sr07);
|
|
WREG_SEQ(0x7, sr07);
|
|
|
|
|
|
/* Program the pitch */
|
|
/* Program the pitch */
|
|
- tmp = crtc->primary->fb->pitches[0] / 8;
|
|
|
|
|
|
+ tmp = fb->pitches[0] / 8;
|
|
WREG_CRT(VGA_CRTC_OFFSET, tmp);
|
|
WREG_CRT(VGA_CRTC_OFFSET, tmp);
|
|
|
|
|
|
/* Enable extended blanking and pitch bits, and enable full memory */
|
|
/* Enable extended blanking and pitch bits, and enable full memory */
|
|
tmp = 0x22;
|
|
tmp = 0x22;
|
|
- tmp |= (crtc->primary->fb->pitches[0] >> 7) & 0x10;
|
|
|
|
- tmp |= (crtc->primary->fb->pitches[0] >> 6) & 0x40;
|
|
|
|
|
|
+ tmp |= (fb->pitches[0] >> 7) & 0x10;
|
|
|
|
+ tmp |= (fb->pitches[0] >> 6) & 0x40;
|
|
WREG_CRT(0x1b, tmp);
|
|
WREG_CRT(0x1b, tmp);
|
|
|
|
|
|
/* Enable high-colour modes */
|
|
/* Enable high-colour modes */
|