Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b841edf authored by Jonathan Corbet's avatar Jonathan Corbet
Browse files

via: Rationalize vt1636 detection



The code was ugly and didn't check whether i2c operations were succeeding;
make it a little better.

Cc: ScottFang@viatech.com.cn
Cc: JosephChan@via.com.tw
Cc: Harald Welte <laforge@gnumonks.org>
Acked-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent b8f7e5d8
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -170,23 +170,17 @@ 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]);
	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(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(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;