From 5d99e666e26457af44b456f126cff0b7e50e7419 Mon Sep 17 00:00:00 2001 From: Krzysztof Helt Date: Wed, 23 Jul 2008 21:31:06 -0700 Subject: [PATCH] --- yaml --- r: 105517 b: refs/heads/master c: 13b0de49f52ec8638b3e3e59192a959b35214d9e h: refs/heads/master i: 105515: 0e2a65ce5daffc24c708e1370e769c3658f404ae v: v3 --- [refs] | 2 +- trunk/drivers/video/tridentfb.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 76ebccdf63c4..4a8cfb06b3ae 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5cf138457af20b0ef79d8c249381927718ca1417 +refs/heads/master: 13b0de49f52ec8638b3e3e59192a959b35214d9e diff --git a/trunk/drivers/video/tridentfb.c b/trunk/drivers/video/tridentfb.c index b6065effc5e0..da4b464cbdba 100644 --- a/trunk/drivers/video/tridentfb.c +++ b/trunk/drivers/video/tridentfb.c @@ -558,13 +558,15 @@ static inline void write3CE(struct tridentfb_par *par, int reg, vga_mm_wgfx(par->io_virt, reg, val); } -static void enable_mmio(void) +static void enable_mmio(struct tridentfb_par *par) { /* Goto New Mode */ vga_io_rseq(0x0B); /* Unprotect registers */ vga_io_wseq(NewMode1, 0x80); + if (!is_oldprotect(par->chip_id)) + vga_io_wseq(Protection, 0x92); /* Enable MMIO */ outb(PCIReg, 0x3D4); @@ -578,6 +580,8 @@ static void disable_mmio(struct tridentfb_par *par) /* Unprotect registers */ vga_mm_wseq(par->io_virt, NewMode1, 0x80); + if (!is_oldprotect(par->chip_id)) + vga_mm_wseq(par->io_virt, Protection, 0x92); /* Disable MMIO */ t_outb(par, PCIReg, 0x3D4); @@ -995,6 +999,7 @@ static int tridentfb_set_par(struct fb_info *info) vblankend /= 2; } + enable_mmio(par); crtc_unlock(par); write3CE(par, CyberControl, 8); tmp = 0xEB; @@ -1116,7 +1121,7 @@ static int tridentfb_set_par(struct fb_info *info) if (!is_xp(par->chip_id)) write3X4(par, Performance, read3X4(par, Performance) | 0x10); /* MMIO & PCI read and write burst enable */ - if (par->chip_id != TGUI9440) + if (par->chip_id != TGUI9440 && par->chip_id != IMAGE975) write3X4(par, PCIReg, read3X4(par, PCIReg) | 0x06); vga_mm_wseq(par->io_virt, 0, 3); @@ -1403,7 +1408,7 @@ static int __devinit trident_pci_probe(struct pci_dev *dev, goto out_unmap1; } - enable_mmio(); + enable_mmio(default_par); /* setup framebuffer memory */ tridentfb_fix.smem_start = pci_resource_start(dev, 0);