diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-04-27 15:46:23 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-04-27 15:46:23 +1000 |
commit | 91619ca191bc1465824d16021ba0af51677dabef (patch) | |
tree | f6db90911aaf5077095ad7a216a71e0aea19dd9e | |
parent | 9732accb3334c3233e98e683dceda78a47beac13 (diff) |
Revert "viafb: rework the I2C support in the VIA framebuffer driver"
This reverts commit ab73d3d6066b57963ead15f3c1d1a55b16520e14.
-rw-r--r-- | drivers/video/via/dvi.c | 35 | ||||
-rw-r--r-- | drivers/video/via/lcd.c | 19 | ||||
-rw-r--r-- | drivers/video/via/via_i2c.c | 171 | ||||
-rw-r--r-- | drivers/video/via/via_i2c.h | 43 | ||||
-rw-r--r-- | drivers/video/via/viafbdev.c | 6 | ||||
-rw-r--r-- | drivers/video/via/viafbdev.h | 4 | ||||
-rw-r--r-- | drivers/video/via/vt1636.c | 36 | ||||
-rw-r--r-- | drivers/video/via/vt1636.h | 2 |
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 |