git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
drivers
/
video
/
riva
/
rivafb-i2c.c
diff --git
a/drivers/video/riva/rivafb-i2c.c
b/drivers/video/riva/rivafb-i2c.c
index
a8dbc25
..
4b72002
100644
(file)
--- a/
drivers/video/riva/rivafb-i2c.c
+++ b/
drivers/video/riva/rivafb-i2c.c
@@
-106,6
+106,7
@@
static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name)
chan->algo.getsda = riva_gpio_getsda;
chan->algo.getscl = riva_gpio_getscl;
chan->algo.udelay = 40;
chan->algo.getsda = riva_gpio_getsda;
chan->algo.getscl = riva_gpio_getscl;
chan->algo.udelay = 40;
+ chan->algo.mdelay = 5;
chan->algo.timeout = 20;
chan->algo.data = chan;
chan->algo.timeout = 20;
chan->algo.data = chan;
@@
-130,19
+131,34
@@
void riva_create_i2c_busses(struct riva_par *par)
par->chan[1].par = par;
par->chan[2].par = par;
par->chan[1].par = par;
par->chan[2].par = par;
- switch (par->riva.Architecture) {
-#if 0 /* no support yet for other nVidia chipsets */
+ par->bus = 0;
+
+ switch ((par->pdev->device >> 4) & 0xff) {
+ case 0x17:
+ case 0x18:
+ case 0x25:
+ case 0x28:
+ case 0x30:
+ case 0x31:
+ case 0x32:
+ case 0x33:
+ case 0x34:
par->chan[2].ddc_base = 0x50;
par->chan[2].ddc_base = 0x50;
- riva_setup_i2c_bus(&par->chan[2], "BUS2");
-#endif
- case NV_ARCH_10:
- case NV_ARCH_20:
- case NV_ARCH_04:
+ par->bus++;
+ riva_setup_i2c_bus(&par->chan[2], "BUS3");
+ case 0x04:
+ case 0x05:
+ case 0x10:
+ case 0x11:
+ case 0x15:
+ case 0x20:
par->chan[1].ddc_base = 0x36;
par->chan[1].ddc_base = 0x36;
- riva_setup_i2c_bus(&par->chan[1], "BUS1");
- case NV_ARCH_03:
+ par->bus++;
+ riva_setup_i2c_bus(&par->chan[1], "BUS2");
+ case 0x03:
par->chan[0].ddc_base = 0x3e;
par->chan[0].ddc_base = 0x3e;
- riva_setup_i2c_bus(&par->chan[0], "BUS0");
+ par->bus++;
+ riva_setup_i2c_bus(&par->chan[0], "BUS1");
}
}
}
}