@@ -41,7 +41,7 @@ static void mga_crtc_load_lut(struct drm_crtc *crtc)
WREG8(DAC_INDEX + MGA1064_INDEX, 0);
- if (fb && fb->format->cpp[0] * 8 == 16) {
+ if (fb && fb->format->bpp[0] == 16) {
int inc = (fb->format->depth == 15) ? 8 : 4;
u8 r, b;
for (i = 0; i < MGAG200_LUT_SIZE; i += inc) {
@@ -925,7 +925,7 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
/* 0x48: */ 0, 0, 0, 0, 0, 0, 0, 0
};
- bppshift = mdev->bpp_shifts[fb->format->cpp[0] - 1];
+ bppshift = mdev->bpp_shifts[fb->format->bpp[0] / 8 - 1];
switch (mdev->type) {
case G200_SE_A:
@@ -965,7 +965,7 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
break;
}
- switch (fb->format->cpp[0] * 8) {
+ switch (fb->format->bpp[0]) {
case 8:
dacvalue[MGA1064_MUL_CTL] = MGA1064_MUL_CTL_8bits;
break;
@@ -1022,8 +1022,8 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
WREG_SEQ(3, 0);
WREG_SEQ(4, 0xe);
- pitch = fb->pitches[0] / fb->format->cpp[0];
- if (fb->format->cpp[0] * 8 == 24)
+ pitch = fb->pitches[0] / fb->format->bpp[0] / 8;
+ if (fb->format->bpp[0] == 24)
pitch = (pitch * 3) >> (4 - bppshift);
else
pitch = pitch >> (4 - bppshift);
@@ -1100,7 +1100,7 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
((vdisplay & 0xc00) >> 7) |
((vsyncstart & 0xc00) >> 5) |
((vdisplay & 0x400) >> 3);
- if (fb->format->cpp[0] * 8 == 24)
+ if (fb->format->bpp[0] == 24)
ext_vga[3] = (((1 << bppshift) * 3) - 1) | 0x80;
else
ext_vga[3] = ((1 << bppshift) - 1) | 0x80;
@@ -1166,9 +1166,9 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
u32 bpp;
u32 mb;
- if (fb->format->cpp[0] * 8 > 16)
+ if (fb->format->bpp[0] > 16)
bpp = 32;
- else if (fb->format->cpp[0] * 8 > 8)
+ else if (fb->format->bpp[0] > 8)
bpp = 16;
else
bpp = 8;
cpp[BytePerPlane] can't describe the 10bit data format correctly, So we use bpp[BitPerPlane] to instead cpp. Signed-off-by: Sandy Huang <hjc@rock-chips.com> --- drivers/gpu/drm/mgag200/mgag200_mode.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)