]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/video/via/vt1636.c
Merge branch 'modules' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux...
[mv-sheeva.git] / drivers / video / via / vt1636.c
index a6b37494e79a78f127adedd132f5ab0cbc0a4c01..d65bf1aee87c1868db5b1127afb95af5cf2426dd 100644 (file)
@@ -19,6 +19,8 @@
  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include <linux/via-core.h>
+#include <linux/via_i2c.h>
 #include "global.h"
 
 u8 viafb_gpio_i2c_read_lvds(struct lvds_setting_information
@@ -27,9 +29,8 @@ u8 viafb_gpio_i2c_read_lvds(struct lvds_setting_information
 {
        u8 data;
 
-       viaparinfo->shared->i2c_stuff.i2c_port = plvds_chip_info->i2c_port;
-       viafb_i2c_readbyte(plvds_chip_info->lvds_chip_slave_addr, index, &data);
-
+       viafb_i2c_readbyte(plvds_chip_info->i2c_port,
+                          plvds_chip_info->lvds_chip_slave_addr, index, &data);
        return data;
 }
 
@@ -39,14 +40,13 @@ 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->lvds_chip_slave_addr, index, data);
+       viafb_i2c_writebyte(plvds_chip_info->i2c_port,
+                           plvds_chip_info->lvds_chip_slave_addr, index, data);
 }
 
 void viafb_init_lvds_vt1636(struct lvds_setting_information
@@ -159,7 +159,7 @@ void viafb_disable_lvds_vt1636(struct lvds_setting_information
        }
 }
 
-bool viafb_lvds_identify_vt1636(void)
+bool viafb_lvds_identify_vt1636(u8 i2c_adapter)
 {
        u8 Buffer[2];
 
@@ -167,26 +167,20 @@ bool viafb_lvds_identify_vt1636(void)
 
        /* Sense VT1636 LVDS Transmiter */
        viaparinfo->chip_info->lvds_chip_info.lvds_chip_slave_addr =
-       VT1636_LVDS_I2C_ADDR;
+               VT1636_LVDS_I2C_ADDR;
 
        /* Check vendor ID first: */
-       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 (viafb_i2c_readbyte(i2c_adapter, VT1636_LVDS_I2C_ADDR,
+                                       0x00, &Buffer[0]))
+               return false;
+       viafb_i2c_readbyte(i2c_adapter, VT1636_LVDS_I2C_ADDR, 0x01, &Buffer[1]);
 
        if (!((Buffer[0] == 0x06) && (Buffer[1] == 0x11)))
                return false;
 
        /* Check Chip ID: */
-       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]);
+       viafb_i2c_readbyte(i2c_adapter, VT1636_LVDS_I2C_ADDR, 0x02, &Buffer[0]);
+       viafb_i2c_readbyte(i2c_adapter, VT1636_LVDS_I2C_ADDR, 0x03, &Buffer[1]);
        if ((Buffer[0] == 0x45) && (Buffer[1] == 0x33)) {
                viaparinfo->chip_info->lvds_chip_info.lvds_chip_name =
                        VT1636_LVDS;