<div dir="ltr"><br>​I would like to release another version this week or next week, and I think that we are pretty closed to having something we can apply, but before I do that, I want to get something resolved:<br><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px">+static int __aspeed_i2c_init(struct aspeed_i2c_bus *bus,</span><br style="font-size:12.8px"><span style="font-size:12.8px">+                            struct platform_device *pdev)</span><br style="font-size:12.8px"><span style="font-size:12.8px">+{</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       int ret;</span><br style="font-size:12.8px"><span style="font-size:12.8px">+</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       /* Disable everything. */</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       writel(0, bus->base + ASPEED_I2C_FUN_CTRL_REG);</span><br style="font-size:12.8px"><span style="font-size:12.8px">+</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       ret = __aspeed_i2c_init_clk(bus, pdev);</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       if (ret < 0)</span><br style="font-size:12.8px"><span style="font-size:12.8px">+               return ret;</span><br style="font-size:12.8px"><span style="font-size:12.8px">+</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       /* Enable Master Mode */</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       writel(readl(bus->base + ASPEED_I2C_FUN_CTRL_REG) |</span><br style="font-size:12.8px"><span style="font-size:12.8px">+              ASPEED_I2CD_MASTER_EN |</span><br style="font-size:12.8px"><span style="font-size:12.8px">+              /* TODO: provide device tree option for multi-master mode. */</span></blockquote><div><br></div><div>I am curious what everyone thinks about this. It seemed that, earlier on, people did not like me disabling multi-master mode, but I think that it would make bus recovery not work as well. Given that, I think it makes the most sense to provide a device tree option either to enable multi-master support or disable it. Thoughts?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br style="font-size:12.8px"><span style="font-size:12.8px">+              ASPEED_I2CD_MULTI_MASTER_DIS,</span><br style="font-size:12.8px"><span style="font-size:12.8px">+              bus->base + ASPEED_I2C_FUN_CTRL_REG);</span><br style="font-size:12.8px"><span style="font-size:12.8px">+</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       /* Set interrupt generation of </span><span class="gmail-il" style="font-size:12.8px">I2C</span><span style="font-size:12.8px"> controller */</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       writel(ASPEED_I2CD_INTR_ALL, bus->base + ASPEED_I2C_INTR_CTRL_REG);</span><br style="font-size:12.8px"><span style="font-size:12.8px">+</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       return 0;</span><br style="font-size:12.8px"><span style="font-size:12.8px">+}</span></blockquote></div>