summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2010-04-27 15:46:23 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2010-04-27 15:46:23 +1000
commit91619ca191bc1465824d16021ba0af51677dabef (patch)
treef6db90911aaf5077095ad7a216a71e0aea19dd9e
parent9732accb3334c3233e98e683dceda78a47beac13 (diff)
Revert "viafb: rework the I2C support in the VIA framebuffer driver"
This reverts commit ab73d3d6066b57963ead15f3c1d1a55b16520e14.
-rw-r--r--drivers/video/via/dvi.c35
-rw-r--r--drivers/video/via/lcd.c19
-rw-r--r--drivers/video/via/via_i2c.c171
-rw-r--r--drivers/video/via/via_i2c.h43
-rw-r--r--drivers/video/via/viafbdev.c6
-rw-r--r--drivers/video/via/viafbdev.h4
-rw-r--r--drivers/video/via/vt1636.c36
-rw-r--r--drivers/video/via/vt1636.h2
8 files changed, 134 insertions, 182 deletions
diff --git a/drivers/video/via/dvi.c b/drivers/video/via/dvi.c
index be513701e4e6..abe59b8c7a05 100644
--- a/drivers/video/via/dvi.c
+++ b/drivers/video/via/dvi.c
@@ -96,7 +96,7 @@ int viafb_tmds_trasmitter_identify(void)
viaparinfo->chip_info->tmds_chip_info.tmds_chip_name = VT1632_TMDS;
viaparinfo->chip_info->
tmds_chip_info.tmds_chip_slave_addr = VT1632_TMDS_I2C_ADDR;
- viaparinfo->chip_info->tmds_chip_info.i2c_port = VIA_I2C_ADAP_31;
+ viaparinfo->chip_info->tmds_chip_info.i2c_port = I2CPORTINDEX;
if (check_tmds_chip(VT1632_DEVICE_ID_REG, VT1632_DEVICE_ID) != FAIL) {
/*
* Currently only support 12bits,dual edge,add 24bits mode later
@@ -110,7 +110,7 @@ int viafb_tmds_trasmitter_identify(void)
viaparinfo->chip_info->tmds_chip_info.i2c_port);
return OK;
} else {
- viaparinfo->chip_info->tmds_chip_info.i2c_port = VIA_I2C_ADAP_2C;
+ viaparinfo->chip_info->tmds_chip_info.i2c_port = GPIOPORTINDEX;
if (check_tmds_chip(VT1632_DEVICE_ID_REG, VT1632_DEVICE_ID)
!= FAIL) {
tmds_register_write(0x08, 0x3b);
@@ -160,26 +160,32 @@ int viafb_tmds_trasmitter_identify(void)
static void tmds_register_write(int index, u8 data)
{
- viafb_i2c_writebyte(viaparinfo->chip_info->tmds_chip_info.i2c_port,
- viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr,
- index, data);
+ viaparinfo->shared->i2c_stuff.i2c_port =
+ viaparinfo->chip_info->tmds_chip_info.i2c_port;
+
+ viafb_i2c_writebyte(viaparinfo->chip_info->tmds_chip_info.
+ tmds_chip_slave_addr, index,
+ data);
}
static int tmds_register_read(int index)
{
u8 data;
- viafb_i2c_readbyte(viaparinfo->chip_info->tmds_chip_info.i2c_port,
- (u8) viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr,
- (u8) index, &data);
+ viaparinfo->shared->i2c_stuff.i2c_port =
+ viaparinfo->chip_info->tmds_chip_info.i2c_port;
+ viafb_i2c_readbyte((u8) viaparinfo->chip_info->
+ tmds_chip_info.tmds_chip_slave_addr,
+ (u8) index, &data);
return data;
}
static int tmds_register_read_bytes(int index, u8 *buff, int buff_len)
{
- viafb_i2c_readbytes(viaparinfo->chip_info->tmds_chip_info.i2c_port,
- (u8) viaparinfo->chip_info->tmds_chip_info.tmds_chip_slave_addr,
- (u8) index, buff, buff_len);
+ viaparinfo->shared->i2c_stuff.i2c_port =
+ viaparinfo->chip_info->tmds_chip_info.i2c_port;
+ viafb_i2c_readbytes((u8) viaparinfo->chip_info->tmds_chip_info.
+ tmds_chip_slave_addr, (u8) index, buff, buff_len);
return 0;
}
@@ -535,10 +541,9 @@ void viafb_dvi_enable(void)
else
data = 0x37;
viafb_i2c_writebyte(viaparinfo->chip_info->
- tmds_chip_info.i2c_port,
- viaparinfo->chip_info->
- tmds_chip_info.tmds_chip_slave_addr,
- 0x08, data);
+ tmds_chip_info.
+ tmds_chip_slave_addr,
+ 0x08, data);
}
}
}
diff --git a/drivers/video/via/lcd.c b/drivers/video/via/lcd.c
index f363644df238..b2da6dc08704 100644
--- a/drivers/video/via/lcd.c
+++ b/drivers/video/via/lcd.c
@@ -179,16 +179,18 @@ int viafb_lvds_trasmitter_identify(void)
if (machine_is_olpc())
return FAIL;
- if (viafb_lvds_identify_vt1636(VIA_I2C_ADAP_31)) {
- viaparinfo->chip_info->lvds_chip_info.i2c_port = VIA_I2C_ADAP_31;
+ viaparinfo->shared->i2c_stuff.i2c_port = I2CPORTINDEX;
+ if (viafb_lvds_identify_vt1636()) {
+ viaparinfo->chip_info->lvds_chip_info.i2c_port = I2CPORTINDEX;
DEBUG_MSG(KERN_INFO
- "Found VIA VT1636 LVDS on port i2c 0x31\n");
+ "Found VIA VT1636 LVDS on port i2c 0x31 \n");
} else {
- if (viafb_lvds_identify_vt1636(VIA_I2C_ADAP_2C)) {
+ viaparinfo->shared->i2c_stuff.i2c_port = GPIOPORTINDEX;
+ if (viafb_lvds_identify_vt1636()) {
viaparinfo->chip_info->lvds_chip_info.i2c_port =
- VIA_I2C_ADAP_2C;
+ GPIOPORTINDEX;
DEBUG_MSG(KERN_INFO
- "Found VIA VT1636 LVDS on port gpio 0x2c\n");
+ "Found VIA VT1636 LVDS on port gpio 0x2c \n");
}
}
@@ -426,8 +428,9 @@ static int lvds_register_read(int index)
{
u8 data;
- viafb_i2c_readbyte(VIA_I2C_ADAP_2C,
- (u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr,
+ viaparinfo->shared->i2c_stuff.i2c_port = GPIOPORTINDEX;
+ viafb_i2c_readbyte((u8) viaparinfo->chip_info->
+ lvds_chip_info.lvds_chip_slave_addr,
(u8) index, &data);
return data;
}
diff --git a/drivers/video/via/via_i2c.c b/drivers/video/via/via_i2c.c
index 8f8e0bf0cf91..15543e968248 100644
--- a/drivers/video/via/via_i2c.c
+++ b/drivers/video/via/via_i2c.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2009 VIA Technologies, Inc. All Rights Reserved.
+ * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
* Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
* This program is free software; you can redistribute it and/or
@@ -24,44 +24,40 @@
static void via_i2c_setscl(void *data, int state)
{
u8 val;
- struct via_i2c_adap_cfg *adap_data = data;
+ struct via_i2c_stuff *via_i2c_chan = (struct via_i2c_stuff *)data;
- printk(KERN_DEBUG "reading index 0x%02x from IO 0x%x\n",
- adap_data->ioport_index, adap_data->io_port);
- val = viafb_read_reg(adap_data->io_port,
- adap_data->ioport_index) & 0xF0;
+ val = viafb_read_reg(VIASR, via_i2c_chan->i2c_port) & 0xF0;
if (state)
val |= 0x20;
else
val &= ~0x20;
- switch (adap_data->type) {
- case VIA_I2C_I2C:
+ switch (via_i2c_chan->i2c_port) {
+ case I2CPORTINDEX:
val |= 0x01;
break;
- case VIA_I2C_GPIO:
+ case GPIOPORTINDEX:
val |= 0x80;
break;
default:
- DEBUG_MSG("viafb_i2c: specify wrong i2c type.\n");
+ DEBUG_MSG("via_i2c: specify wrong i2c port.\n");
}
- viafb_write_reg(adap_data->ioport_index,
- adap_data->io_port, val);
+ viafb_write_reg(via_i2c_chan->i2c_port, VIASR, val);
}
static int via_i2c_getscl(void *data)
{
- struct via_i2c_adap_cfg *adap_data = data;
+ struct via_i2c_stuff *via_i2c_chan = (struct via_i2c_stuff *)data;
- if (viafb_read_reg(adap_data->io_port, adap_data->ioport_index) & 0x08)
+ if (viafb_read_reg(VIASR, via_i2c_chan->i2c_port) & 0x08)
return 1;
return 0;
}
static int via_i2c_getsda(void *data)
{
- struct via_i2c_adap_cfg *adap_data = data;
+ struct via_i2c_stuff *via_i2c_chan = (struct via_i2c_stuff *)data;
- if (viafb_read_reg(adap_data->io_port, adap_data->ioport_index) & 0x04)
+ if (viafb_read_reg(VIASR, via_i2c_chan->i2c_port) & 0x04)
return 1;
return 0;
}
@@ -69,29 +65,27 @@ static int via_i2c_getsda(void *data)
static void via_i2c_setsda(void *data, int state)
{
u8 val;
- struct via_i2c_adap_cfg *adap_data = data;
+ struct via_i2c_stuff *via_i2c_chan = (struct via_i2c_stuff *)data;
- val = viafb_read_reg(adap_data->io_port,
- adap_data->ioport_index) & 0xF0;
+ val = viafb_read_reg(VIASR, via_i2c_chan->i2c_port) & 0xF0;
if (state)
val |= 0x10;
else
val &= ~0x10;
- switch (adap_data->type) {
- case VIA_I2C_I2C:
+ switch (via_i2c_chan->i2c_port) {
+ case I2CPORTINDEX:
val |= 0x01;
break;
- case VIA_I2C_GPIO:
+ case GPIOPORTINDEX:
val |= 0x40;
break;
default:
- DEBUG_MSG("viafb_i2c: specify wrong i2c type.\n");
+ DEBUG_MSG("via_i2c: specify wrong i2c port.\n");
}
- viafb_write_reg(adap_data->ioport_index,
- adap_data->io_port, val);
+ viafb_write_reg(via_i2c_chan->i2c_port, VIASR, val);
}
-int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata)
+int viafb_i2c_readbyte(u8 slave_addr, u8 index, u8 *pdata)
{
u8 mm1[] = {0x00};
struct i2c_msg msgs[2];
@@ -103,11 +97,12 @@ int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata)
mm1[0] = index;
msgs[0].len = 1; msgs[1].len = 1;
msgs[0].buf = mm1; msgs[1].buf = pdata;
- return i2c_transfer(&viaparinfo->shared->i2c_stuff[adap].adapter,
- msgs, 2);
+ i2c_transfer(&viaparinfo->shared->i2c_stuff.adapter, msgs, 2);
+
+ return 0;
}
-int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data)
+int viafb_i2c_writebyte(u8 slave_addr, u8 index, u8 data)
{
u8 msg[2] = { index, data };
struct i2c_msg msgs;
@@ -116,11 +111,10 @@ int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data)
msgs.addr = slave_addr / 2;
msgs.len = 2;
msgs.buf = msg;
- return i2c_transfer(&viaparinfo->shared->i2c_stuff[adap].adapter,
- &msgs, 1);
+ return i2c_transfer(&viaparinfo->shared->i2c_stuff.adapter, &msgs, 1);
}
-int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len)
+int viafb_i2c_readbytes(u8 slave_addr, u8 index, u8 *buff, int buff_len)
{
u8 mm1[] = {0x00};
struct i2c_msg msgs[2];
@@ -131,88 +125,53 @@ int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len
mm1[0] = index;
msgs[0].len = 1; msgs[1].len = buff_len;
msgs[0].buf = mm1; msgs[1].buf = buff;
- return i2c_transfer(&viaparinfo->shared->i2c_stuff[adap].adapter,
- msgs, 2);
+ i2c_transfer(&viaparinfo->shared->i2c_stuff.adapter, msgs, 2);
+ return 0;
}
-static int create_i2c_bus(struct i2c_adapter *adapter,
- struct i2c_algo_bit_data *algo,
- struct via_i2c_adap_cfg *adap_cfg,
- struct pci_dev *pdev)
+int viafb_create_i2c_bus(void *viapar)
{
- printk(KERN_DEBUG "viafb: creating bus adap=0x%p, algo_bit_data=0x%p, adap_cfg=0x%p\n", adapter, algo, adap_cfg);
-
- algo->setsda = via_i2c_setsda;
- algo->setscl = via_i2c_setscl;
- algo->getsda = via_i2c_getsda;
- algo->getscl = via_i2c_getscl;
- algo->udelay = 40;
- algo->timeout = 20;
- algo->data = adap_cfg;
-
- sprintf(adapter->name, "viafb i2c io_port idx 0x%02x",
- adap_cfg->ioport_index);
- adapter->owner = THIS_MODULE;
- adapter->id = 0x01FFFF;
- adapter->class = I2C_CLASS_DDC;
- adapter->algo_data = algo;
- if (pdev)
- adapter->dev.parent = &pdev->dev;
- else
- adapter->dev.parent = NULL;
- /* i2c_set_adapdata(adapter, adap_cfg); */
+ int ret;
+ struct via_i2c_stuff *i2c_stuff =
+ &((struct viafb_par *)viapar)->shared->i2c_stuff;
+
+ strcpy(i2c_stuff->adapter.name, "via_i2c");
+ i2c_stuff->i2c_port = 0x0;
+ i2c_stuff->adapter.owner = THIS_MODULE;
+ i2c_stuff->adapter.id = 0x01FFFF;
+ i2c_stuff->adapter.class = 0;
+ i2c_stuff->adapter.algo_data = &i2c_stuff->algo;
+ i2c_stuff->adapter.dev.parent = NULL;
+ i2c_stuff->algo.setsda = via_i2c_setsda;
+ i2c_stuff->algo.setscl = via_i2c_setscl;
+ i2c_stuff->algo.getsda = via_i2c_getsda;
+ i2c_stuff->algo.getscl = via_i2c_getscl;
+ i2c_stuff->algo.udelay = 40;
+ i2c_stuff->algo.timeout = 20;
+ i2c_stuff->algo.data = i2c_stuff;
+
+ i2c_set_adapdata(&i2c_stuff->adapter, i2c_stuff);
/* Raise SCL and SDA */
- via_i2c_setsda(adap_cfg, 1);
- via_i2c_setscl(adap_cfg, 1);
- udelay(20);
-
- return i2c_bit_add_bus(adapter);
-}
+ i2c_stuff->i2c_port = I2CPORTINDEX;
+ via_i2c_setsda(i2c_stuff, 1);
+ via_i2c_setscl(i2c_stuff, 1);
-static struct via_i2c_adap_cfg adap_configs[] = {
- [VIA_I2C_ADAP_26] = { VIA_I2C_I2C, VIASR, 0x26 },
- [VIA_I2C_ADAP_31] = { VIA_I2C_I2C, VIASR, 0x31 },
- [VIA_I2C_ADAP_25] = { VIA_I2C_GPIO, VIASR, 0x25 },
- [VIA_I2C_ADAP_2C] = { VIA_I2C_GPIO, VIASR, 0x2c },
- [VIA_I2C_ADAP_3D] = { VIA_I2C_GPIO, VIASR, 0x3d },
- { 0, 0, 0 }
-};
-
-int viafb_create_i2c_busses(struct viafb_par *viapar)
-{
- int i, ret;
-
- for (i = 0; i < VIAFB_NUM_I2C; i++) {
- struct via_i2c_adap_cfg *adap_cfg = &adap_configs[i];
- struct via_i2c_stuff *i2c_stuff = &viapar->shared->i2c_stuff[i];
-
- if (adap_cfg->type == 0)
- break;
-
- ret = create_i2c_bus(&i2c_stuff->adapter,
- &i2c_stuff->algo, adap_cfg,
- NULL); /* FIXME: PCIDEV */
- if (ret < 0) {
- printk(KERN_ERR "viafb: cannot create i2c bus %u:%d\n",
- i, ret);
- /* FIXME: properly release previous busses */
- return ret;
- }
- }
+ i2c_stuff->i2c_port = GPIOPORTINDEX;
+ via_i2c_setsda(i2c_stuff, 1);
+ via_i2c_setscl(i2c_stuff, 1);
+ udelay(20);
- return 0;
+ ret = i2c_bit_add_bus(&i2c_stuff->adapter);
+ if (ret == 0)
+ DEBUG_MSG("I2C bus %s registered.\n", i2c_stuff->adapter.name);
+ else
+ DEBUG_MSG("Failed to register I2C bus %s.\n",
+ i2c_stuff->adapter.name);
+ return ret;
}
-void viafb_delete_i2c_busses(struct viafb_par *par)
+void viafb_delete_i2c_buss(void *par)
{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(par->shared->i2c_stuff); i++) {
- struct via_i2c_stuff *i2c_stuff = &par->shared->i2c_stuff[i];
- /* only remove those entries in the array that we've
- * actually used (and thus initialized algo_data) */
- if (i2c_stuff->adapter.algo_data == &i2c_stuff->algo)
- i2c_del_adapter(&i2c_stuff->adapter);
- }
+ i2c_del_adapter(&((struct viafb_par *)par)->shared->i2c_stuff.adapter);
}
diff --git a/drivers/video/via/via_i2c.h b/drivers/video/via/via_i2c.h
index 00ed97886842..3a13242a3152 100644
--- a/drivers/video/via/via_i2c.h
+++ b/drivers/video/via/via_i2c.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2009 VIA Technologies, Inc. All Rights Reserved.
+ * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
* Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
* This program is free software; you can redistribute it and/or
@@ -24,38 +24,23 @@
#include <linux/i2c.h>
#include <linux/i2c-algo-bit.h>
-enum via_i2c_type {
- VIA_I2C_NONE,
- VIA_I2C_I2C,
- VIA_I2C_GPIO,
-};
-
-/* private data for each adapter */
-struct via_i2c_adap_cfg {
- enum via_i2c_type type;
- u_int16_t io_port;
- u_int8_t ioport_index;
-};
-
struct via_i2c_stuff {
u16 i2c_port; /* GPIO or I2C port */
struct i2c_adapter adapter;
struct i2c_algo_bit_data algo;
};
-enum viafb_i2c_adap {
- VIA_I2C_ADAP_26,
- VIA_I2C_ADAP_31,
- VIA_I2C_ADAP_25,
- VIA_I2C_ADAP_2C,
- VIA_I2C_ADAP_3D,
-};
-
-int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata);
-int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data);
-int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len);
-
-struct viafb_par;
-int viafb_create_i2c_busses(struct viafb_par *par);
-void viafb_delete_i2c_busses(struct viafb_par *par);
+#define I2CPORT 0x3c4
+#define I2CPORTINDEX 0x31
+#define GPIOPORT 0x3C4
+#define GPIOPORTINDEX 0x2C
+#define I2C_BUS 1
+#define GPIO_BUS 2
+#define DELAYPORT 0x3C3
+
+int viafb_i2c_readbyte(u8 slave_addr, u8 index, u8 *pdata);
+int viafb_i2c_writebyte(u8 slave_addr, u8 index, u8 data);
+int viafb_i2c_readbytes(u8 slave_addr, u8 index, u8 *buff, int buff_len);
+int viafb_create_i2c_bus(void *par);
+void viafb_delete_i2c_buss(void *par);
#endif /* __VIA_I2C_H__ */
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
index d21bc894db70..0b9201abb008 100644
--- a/drivers/video/via/viafbdev.c
+++ b/drivers/video/via/viafbdev.c
@@ -1776,7 +1776,7 @@ static int __devinit via_pci_probe(struct pci_dev *pdev,
viafb_dual_fb = 0;
/* Set up I2C bus stuff */
- rc = viafb_create_i2c_busses(viaparinfo);
+ rc = viafb_create_i2c_bus(viaparinfo);
if (rc)
goto out_fb_release;
@@ -1965,7 +1965,7 @@ out_fb1_release:
out_unmap_screen:
iounmap(viafbinfo->screen_base);
out_delete_i2c:
- viafb_delete_i2c_busses(viaparinfo);
+ viafb_delete_i2c_buss(viaparinfo);
out_fb_release:
framebuffer_release(viafbinfo);
return rc;
@@ -1981,7 +1981,7 @@ static void __devexit via_pci_remove(struct pci_dev *pdev)
iounmap((void *)viafbinfo->screen_base);
iounmap(viaparinfo->shared->engine_mmio);
- viafb_delete_i2c_busses(viaparinfo);
+ viafb_delete_i2c_buss(viaparinfo);
framebuffer_release(viafbinfo);
if (viafb_dual_fb)
diff --git a/drivers/video/via/viafbdev.h b/drivers/video/via/viafbdev.h
index 4bc00ec8fb1c..61b5953cd159 100644
--- a/drivers/video/via/viafbdev.h
+++ b/drivers/video/via/viafbdev.h
@@ -37,13 +37,11 @@
#define VERSION_OS 0 /* 0: for 32 bits OS, 1: for 64 bits OS */
#define VERSION_MINOR 4
-#define VIAFB_NUM_I2C 5
-
struct viafb_shared {
struct proc_dir_entry *proc_entry; /*viafb proc entry */
/* I2C stuff */
- struct via_i2c_stuff i2c_stuff[VIAFB_NUM_I2C];
+ struct via_i2c_stuff i2c_stuff;
/* All the information will be needed to set engine */
struct tmds_setting_information tmds_setting_info;
diff --git a/drivers/video/via/vt1636.c b/drivers/video/via/vt1636.c
index 4589c6e73c5d..a6b37494e79a 100644
--- a/drivers/video/via/vt1636.c
+++ b/drivers/video/via/vt1636.c
@@ -27,8 +27,9 @@ u8 viafb_gpio_i2c_read_lvds(struct lvds_setting_information
{
u8 data;
- viafb_i2c_readbyte(plvds_chip_info->i2c_port,
- plvds_chip_info->lvds_chip_slave_addr, index, &data);
+ viaparinfo->shared->i2c_stuff.i2c_port = plvds_chip_info->i2c_port;
+ viafb_i2c_readbyte(plvds_chip_info->lvds_chip_slave_addr, index, &data);
+
return data;
}
@@ -38,13 +39,14 @@ void viafb_gpio_i2c_write_mask_lvds(struct lvds_setting_information
{
int index, data;
+ viaparinfo->shared->i2c_stuff.i2c_port = plvds_chip_info->i2c_port;
+
index = io_data.Index;
data = viafb_gpio_i2c_read_lvds(plvds_setting_info, plvds_chip_info,
index);
data = (data & (~io_data.Mask)) | io_data.Data;
- viafb_i2c_writebyte(plvds_chip_info->i2c_port,
- plvds_chip_info->lvds_chip_slave_addr, index, data);
+ viafb_i2c_writebyte(plvds_chip_info->lvds_chip_slave_addr, index, data);
}
void viafb_init_lvds_vt1636(struct lvds_setting_information
@@ -157,7 +159,7 @@ void viafb_disable_lvds_vt1636(struct lvds_setting_information
}
}
-bool viafb_lvds_identify_vt1636(u8 i2c_adapter)
+bool viafb_lvds_identify_vt1636(void)
{
u8 Buffer[2];
@@ -168,23 +170,23 @@ bool viafb_lvds_identify_vt1636(u8 i2c_adapter)
VT1636_LVDS_I2C_ADDR;
/* Check vendor ID first: */
- viafb_i2c_readbyte(i2c_adapter,
- (u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr,
- 0x00, &Buffer[0]);
- viafb_i2c_readbyte(i2c_adapter,
- (u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr,
- 0x01, &Buffer[1]);
+ viafb_i2c_readbyte((u8) viaparinfo->chip_info->lvds_chip_info.
+ lvds_chip_slave_addr,
+ 0x00, &Buffer[0]);
+ viafb_i2c_readbyte((u8) viaparinfo->chip_info->lvds_chip_info.
+ lvds_chip_slave_addr,
+ 0x01, &Buffer[1]);
if (!((Buffer[0] == 0x06) && (Buffer[1] == 0x11)))
return false;
/* Check Chip ID: */
- viafb_i2c_readbyte(i2c_adapter,
- (u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr,
- 0x02, &Buffer[0]);
- viafb_i2c_readbyte(i2c_adapter,
- (u8) viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr,
- 0x03, &Buffer[1]);
+ viafb_i2c_readbyte((u8) viaparinfo->chip_info->lvds_chip_info.
+ lvds_chip_slave_addr,
+ 0x02, &Buffer[0]);
+ viafb_i2c_readbyte((u8) viaparinfo->chip_info->lvds_chip_info.
+ lvds_chip_slave_addr,
+ 0x03, &Buffer[1]);
if ((Buffer[0] == 0x45) && (Buffer[1] == 0x33)) {
viaparinfo->chip_info->lvds_chip_info.lvds_chip_name =
VT1636_LVDS;
diff --git a/drivers/video/via/vt1636.h b/drivers/video/via/vt1636.h
index 4c1314e57468..2a150c58c7ed 100644
--- a/drivers/video/via/vt1636.h
+++ b/drivers/video/via/vt1636.h
@@ -22,7 +22,7 @@
#ifndef _VT1636_H_
#define _VT1636_H_
#include "chip.h"
-bool viafb_lvds_identify_vt1636(u8 i2c_adapter);
+bool viafb_lvds_identify_vt1636(void);
void viafb_init_lvds_vt1636(struct lvds_setting_information
*plvds_setting_info, struct lvds_chip_information *plvds_chip_info);
void viafb_enable_lvds_vt1636(struct lvds_setting_information