Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 105505
b: refs/heads/master
c: 0e73a47
h: refs/heads/master
i:
  105503: 8b935ef
v: v3
  • Loading branch information
Krzysztof Helt authored and Linus Torvalds committed Jul 24, 2008
1 parent c4a45ef commit 66dcf37
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3876ae8beb2c7c19e21279b9603b1244fcd744dd
refs/heads/master: 0e73a47f094a919e2edeaa88e840cd0400adc423
29 changes: 23 additions & 6 deletions trunk/drivers/video/tridentfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,17 @@ MODULE_PARM_DESC(crt, "Define if CRT is connected");

static int is_oldclock(int id)
{
return (id == TGUI9660);
return (id == TGUI9660) ||
(id == CYBER9320);
}

static int is_oldprotect(int id)
{
return (id == TGUI9660) ||
(id == PROVIDIA9685) ||
(id == CYBER9320) ||
(id == CYBER9382) ||
(id == CYBER9385);
}

static int is_blade(int id)
Expand Down Expand Up @@ -143,6 +153,7 @@ static int iscyber(int id)

case CYBER9320:
case TGUI9660:
case PROVIDIA9685:
case IMAGE975:
case IMAGE985:
case BLADE3D:
Expand Down Expand Up @@ -905,14 +916,14 @@ static int tridentfb_set_par(struct fb_info *info)
hsyncend = (var->xres + var->right_margin + var->hsync_len) / 8 - 1;
htotal = (var->xres + var->left_margin + var->right_margin +
var->hsync_len) / 8 - 5;
hblankstart = hdispend + 2;
hblankstart = hdispend + 1;
hblankend = htotal + 3;

vdispend = var->yres - 1;
vsyncstart = var->yres + var->lower_margin;
vsyncend = vsyncstart + var->vsync_len;
vtotal = var->upper_margin + vsyncend - 2;
vblankstart = vdispend + 2;
vblankstart = vdispend + 1;
vblankend = vtotal;

crtc_unlock(par);
Expand Down Expand Up @@ -1020,15 +1031,18 @@ static int tridentfb_set_par(struct fb_info *info)

write3X4(par, PixelBusReg, tmp);

tmp = 0x10;
tmp = read3X4(par, DRAMControl);
if (!is_oldprotect(par->chip_id))
tmp |= 0x10;
if (iscyber(par->chip_id))
tmp |= 0x20;
write3X4(par, DRAMControl, tmp); /* both IO, linear enable */

write3X4(par, InterfaceSel, read3X4(par, InterfaceSel) | 0x40);
write3X4(par, Performance, 0x92);
if (!is_xp(par->chip_id))
write3X4(par, Performance, read3X4(par, Performance) | 0x10);
/* MMIO & PCI read and write burst enable */
write3X4(par, PCIReg, 0x07);
write3X4(par, PCIReg, read3X4(par, PCIReg) | 0x06);

/* convert from picoseconds to kHz */
vclk = PICOS2KHZ(info->var.pixclock);
Expand Down Expand Up @@ -1230,6 +1244,9 @@ static int __devinit trident_pci_probe(struct pci_dev *dev,
revision = vga_io_rseq(RevisionID);

switch (revision) {
case 0x21:
chip_id = PROVIDIA9685;
break;
case 0x22:
case 0x23:
chip_id = CYBER9397;
Expand Down
1 change: 1 addition & 0 deletions trunk/include/video/trident.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define CYBER9520 0x9520
#define CYBER9525DVD 0x9525
#define TGUI9660 0x9660
#define PROVIDIA9685 0x9685
#define IMAGE975 0x9750
#define IMAGE985 0x9850
#define BLADE3D 0x9880
Expand Down

0 comments on commit 66dcf37

Please sign in to comment.