<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/i2c, branch v5.12</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v5.12</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v5.12'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2021-04-15T20:13:19Z</updated>
<entry>
<title>i2c: mv64xxx: Fix random system lock caused by runtime PM</title>
<updated>2021-04-15T20:13:19Z</updated>
<author>
<name>Marek Behún</name>
<email>kabel@kernel.org</email>
</author>
<published>2021-04-08T02:00:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=39930213e7779b9c4257499972b8afb8858f1a2d'/>
<id>urn:sha1:39930213e7779b9c4257499972b8afb8858f1a2d</id>
<content type='text'>
I noticed a weird bug with this driver on Marvell CN9130 Customer
Reference Board.

Sometime after boot, the system locks with the following message:
 [104.071363] i2c i2c-0: mv64xxx: I2C bus locked, block: 1, time_left: 0

The system does not respond afterwards, only warns about RCU stalls.

This first appeared with commit e5c02cf54154 ("i2c: mv64xxx: Add runtime
PM support").

With further experimentation I discovered that adding a delay into
mv64xxx_i2c_hw_init() fixes this issue. This function is called before
every xfer, due to how runtime PM works in this driver. It seems that in
order to work correctly, a delay is needed after the bus is reset in
this function.

Since there already is a known erratum with this controller needing a
delay, I assume that this is just another place this needs to be
applied. Therefore I apply the delay only if errata_delay is true.

Signed-off-by: Marek Behún &lt;kabel@kernel.org&gt;
Acked-by: Gregory CLEMENT &lt;gregory.clement@bootlin.com&gt;
Reviewed-by: Samuel Holland &lt;samuel@sholland.org&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: exynos5: correct top kerneldoc</title>
<updated>2021-04-06T20:32:33Z</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzysztof.kozlowski@canonical.com</email>
</author>
<published>2021-04-05T18:14:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=56b4c6515a367718ced8595debf1567c052ea0b2'/>
<id>urn:sha1:56b4c6515a367718ced8595debf1567c052ea0b2</id>
<content type='text'>
The top comment is not a kerneldoc, as W=1 build reports:

  drivers/i2c/busses/i2c-exynos5.c:39: warning:
    expecting prototype for i2c(). Prototype was for HSI2C_CTL() instead

Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@canonical.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: designware: Adjust bus_freq_hz when refuse high speed mode set</title>
<updated>2021-04-05T20:50:15Z</updated>
<author>
<name>Andy Shevchenko</name>
<email>andriy.shevchenko@linux.intel.com</email>
</author>
<published>2021-03-31T11:05:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5e729bc54bda705f64941008b018b4e41a4322bf'/>
<id>urn:sha1:5e729bc54bda705f64941008b018b4e41a4322bf</id>
<content type='text'>
When hardware doesn't support High Speed Mode, we forget bus_freq_hz
timing adjustment. This makes the timings and real registers being
unsynchronized. Adjust bus_freq_hz when refuse high speed mode set.

Fixes: b6e67145f149 ("i2c: designware: Enable high speed mode")
Reported-by: "Song Bao Hua (Barry Song)" &lt;song.bao.hua@hisilicon.com&gt;
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Reviewed-by: Barry Song &lt;song.bao.hua@hisilicon.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: hix5hd2: use the correct HiSilicon copyright</title>
<updated>2021-03-31T08:06:40Z</updated>
<author>
<name>Hao Fang</name>
<email>fanghao11@huawei.com</email>
</author>
<published>2021-03-30T06:37:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=629a411f7e71afeee34edd4c1418c4e7f7d5575a'/>
<id>urn:sha1:629a411f7e71afeee34edd4c1418c4e7f7d5575a</id>
<content type='text'>
s/Hisilicon/HiSilicon/g.
It should use capital S, according to
https://www.hisilicon.com/en/terms-of-use.

Signed-off-by: Hao Fang &lt;fanghao11@huawei.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: stm32f4: Mundane typo fix</title>
<updated>2021-03-31T07:53:09Z</updated>
<author>
<name>Bhaskar Chowdhury</name>
<email>unixbhaskar@gmail.com</email>
</author>
<published>2021-03-24T14:06:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=67ff1d98652ac141f46b3871ebc34350ddffa2ef'/>
<id>urn:sha1:67ff1d98652ac141f46b3871ebc34350ddffa2ef</id>
<content type='text'>
s/postion/position/

Signed-off-by: Bhaskar Chowdhury &lt;unixbhaskar@gmail.com&gt;
Acked-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reviewed-by: Alain Volmat &lt;alain.volmat@foss.st.com&gt;
Reviewed-by: Pierre-Yves MORDRET &lt;pierre-yves.mordret@foss.st.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>I2C: JZ4780: Fix bug for Ingenic X1000.</title>
<updated>2021-03-31T07:16:00Z</updated>
<author>
<name>周琰杰 (Zhou Yanjie)</name>
<email>zhouyanjie@wanyeetech.com</email>
</author>
<published>2021-03-19T10:12:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=942bfbecc0281c75db84f744b9b77b0f2396f484'/>
<id>urn:sha1:942bfbecc0281c75db84f744b9b77b0f2396f484</id>
<content type='text'>
Only send "X1000_I2C_DC_STOP" when last byte, or it will cause
error when I2C write operation which should look like this:

device_addr + w, reg_addr, data;

But without this patch, it looks like this:

device_addr + w, reg_addr, device_addr + w, data;

Fixes: 21575a7a8d4c ("I2C: JZ4780: Add support for the X1000.")
Reported-by: 杨文龙 (Yang Wenlong) &lt;ywltyut@sina.cn&gt;
Tested-by: 杨文龙 (Yang Wenlong) &lt;ywltyut@sina.cn&gt;
Signed-off-by: 周琰杰 (Zhou Yanjie) &lt;zhouyanjie@wanyeetech.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: turn recovery error on init to debug</title>
<updated>2021-03-18T11:18:48Z</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa+renesas@sang-engineering.com</email>
</author>
<published>2021-03-15T11:50:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e409a6a3e0690efdef9b8a96197bc61ff117cfaf'/>
<id>urn:sha1:e409a6a3e0690efdef9b8a96197bc61ff117cfaf</id>
<content type='text'>
In some configurations, recovery is optional. So, don't throw an error
when it is not used because e.g. pinctrl settings for recovery are not
provided. Reword the message and make it debug output.

Reported-by: Klaus Kudielka &lt;klaus.kudielka@gmail.com&gt;
Tested-by: Klaus Kudielka &lt;klaus.kudielka@gmail.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>i2c: exynos5: Preserve high speed master code</title>
<updated>2021-02-26T10:47:42Z</updated>
<author>
<name>Mårten Lindahl</name>
<email>martenli@axis.com</email>
</author>
<published>2021-02-16T22:25:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f4ff0104d4c807a7f96aa3358c03d694895ee8ea'/>
<id>urn:sha1:f4ff0104d4c807a7f96aa3358c03d694895ee8ea</id>
<content type='text'>
When the driver starts to send a message with the MASTER_ID field
set (high speed), the whole I2C_ADDR register is overwritten including
MASTER_ID as the SLV_ADDR_MAS field is set.

This patch preserves already written fields in I2C_ADDR when writing
SLV_ADDR_MAS.

Fixes: 8a73cd4cfa15 ("i2c: exynos5: add High Speed I2C controller driver")
Signed-off-by: Mårten Lindahl &lt;martenli@axis.com&gt;
Reviewed-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
Tested-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>Revert "i2c: i2c-qcom-geni: Add shutdown callback for i2c"</title>
<updated>2021-02-26T10:32:15Z</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa@kernel.org</email>
</author>
<published>2021-02-24T09:23:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e87cc183cbff6a8964f2f854b8d0eba815cc5c54'/>
<id>urn:sha1:e87cc183cbff6a8964f2f854b8d0eba815cc5c54</id>
<content type='text'>
This reverts commit e0371298ddc51761be257698554ea507ac8bf831. It was
accidently applied despite discussion still going on.

Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
Acked-by: Stephen Boyd &lt;swboyd@chromium.org&gt;
</content>
</entry>
<entry>
<title>i2c: designware: Get right data length</title>
<updated>2021-02-26T10:26:09Z</updated>
<author>
<name>Liguang Zhang</name>
<email>zhangliguang@linux.alibaba.com</email>
</author>
<published>2021-02-25T14:26:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f53f15ba5a852171eccf940b22530152450a045c'/>
<id>urn:sha1:f53f15ba5a852171eccf940b22530152450a045c</id>
<content type='text'>
IC_DATA_CMD[11] indicates the first data byte received after the address
phase for receive transfer in Master receiver or Slave receiver mode,
this bit was set in some transfer flow. IC_DATA_CMD[7:0] contains the
data to be transmitted or received on the I2C bus, so we should use the
lower 8 bits to get the real data length.

Signed-off-by: Liguang Zhang &lt;zhangliguang@linux.alibaba.com&gt;
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
</feed>
