Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1812a3db authored by Christopher Harvey's avatar Christopher Harvey Committed by Dave Airlie
Browse files

drm/mgag200: Index 24 in extended CRTC registers is 24 in hex, not decimal.



This change properly enables the "requester" in G200ER cards that is
responsible for getting pixels out of memory and clocking them out to
the screen.

Signed-off-by: default avatarChristopher Harvey <charvey@matrox.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent c9cdee17
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -751,8 +751,6 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
	int i;
	unsigned char misc = 0;
	unsigned char ext_vga[6];
	unsigned char ext_vga_index24;
	unsigned char dac_index90 = 0;
	u8 bppshift;

	static unsigned char dacvalue[] = {
@@ -803,7 +801,6 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
		option2 = 0x0000b000;
		break;
	case G200_ER:
		dac_index90 = 0;
		break;
	}

@@ -852,10 +849,8 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
		WREG_DAC(i, dacvalue[i]);
	}

	if (mdev->type == G200_ER) {
		WREG_DAC(0x90, dac_index90);
	}

	if (mdev->type == G200_ER)
		WREG_DAC(0x90, 0);

	if (option)
		pci_write_config_dword(dev->pdev, PCI_MGA_OPTION, option);
@@ -952,8 +947,6 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
	if (mdev->type == G200_WB)
		ext_vga[1] |= 0x88;

	ext_vga_index24 = 0x05;

	/* Set pixel clocks */
	misc = 0x2d;
	WREG8(MGA_MISC_OUT, misc);
@@ -965,7 +958,7 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
	}

	if (mdev->type == G200_ER)
		WREG_ECRT(24, ext_vga_index24);
		WREG_ECRT(0x24, 0x5);

	if (mdev->type == G200_EV) {
		WREG_ECRT(6, 0);