From a6fe57bb9aa543f85754470f0d4d7636933bde69 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 7 Apr 2011 14:42:57 -0700 Subject: Fix i2c build Change-Id: I558577e86654bc9a5a2cbfeeeb8055454ab8f328 --- drivers/i2c/busses/i2c-tegra.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'drivers/i2c') diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 10fdc96a338c..311612580676 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -100,6 +100,16 @@ #define I2C_HEADER_MASTER_ADDR_SHIFT 12 #define I2C_HEADER_SLAVE_ADDR_SHIFT 1 +struct tegra_i2c_dev; + +struct tegra_i2c_bus { + struct tegra_i2c_dev *dev; + const struct tegra_pingroup_config *mux; + int mux_len; + unsigned long bus_clk_rate; + struct i2c_adapter adapter; +}; + /** * struct tegra_i2c_dev - per device i2c context * @dev: device reference for power management @@ -143,14 +153,6 @@ struct tegra_i2c_dev { struct tegra_i2c_bus busses[1]; }; -struct tegra_i2c_bus { - struct tegra_i2c_dev *dev; - const struct tegra_pingroup_config *mux; - int mux_len; - unsigned long bus_clk_rate; - struct i2c_adapter adapter; -}; - static void dvc_writel(struct tegra_i2c_dev *i2c_dev, u32 val, unsigned long reg) { writel(val, i2c_dev->base + reg); @@ -562,9 +564,9 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], i2c_dev->last_mux_len = i2c_bus->mux_len; } - if (i2c_dev->last_bus_clk != i2c_bus->bus_clk_rate) { - tegra_i2c_set_clk(i2c_dev, i2c_bus->bus_clk_rate); - i2c_dev->last_bus_clk = i2c_bus->bus_clk_rate; + if (i2c_dev->last_bus_clk_rate != i2c_bus->bus_clk_rate) { + clk_set_rate(i2c_dev, i2c_bus->bus_clk_rate * 8); + i2c_dev->last_bus_clk_rate = i2c_bus->bus_clk_rate; } clk_enable(i2c_dev->clk); -- cgit v1.2.3