lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 10 Mar 2014 07:54:23 +0100 From: Mike Looijmans <mike.looijmans@...ic.nl> To: Wolfram Sang <wsa@...-dreams.de> CC: <nsekhar@...com>, <khilman@...prootsystems.com>, <davinci-linux-open-source@...ux.davincidsp.com>, <linux-i2c@...r.kernel.org>, <linux-kernel@...r.kernel.org>, Mike Looijmans <milo-software@...rs.sourceforge.net> Subject: Re: [PATCH] i2c-davinci: Implement a bus recovery that actually works On 03/09/2014 09:28 PM, Wolfram Sang wrote: > On Fri, Feb 28, 2014 at 11:32:05AM +0100, mike.looijmans@...ic.nl wrote: >> From: Mike Looijmans <milo-software@...rs.sourceforge.net> >> >> Having a board where the I2C bus locks up occasionally made it clear >> that the bus recovery in the i2c-davinci driver will only work on >> some boards, because on regular boards, this will only toggle GPIO >> lines that aren't muxed to the actual pins. >> >> The I2C controller has the built-in capability to bit-bang its lines. >> Use this to implement a generic recovery routine that puts the >> controller in GPIO mode and pulse the clk lines until both SDA and >> SCL return to a high state. >> >> Because the controller must be held in reset while doing so, the >> recovery routine must re-init the controller. Since this was already >> being done after each call to i2c_recover_bus, move that call into >> the recovery routine as well. >> >> Tested on a custom board with OMAP-L138, and after this change, the >> board can recover from chips keeping SDA low. >> >> Note: This is an adapted port from 2.6.37 code, and was only tested >> with that kernel. > > What about using struct i2c_bus_recovery_info, so the actual recovery > logic is taken from the core? I never knew such a thing existed, but it sounds like a sensible thing to do. In addition, one could also remove the "sda_pin" and "scl_pin" members from the platform data struct, as they no longer serve any purpose after this patch. I won't be doing those changes though. My sponsor's budget is limited, so I'm just having to do the minimum I can get away with. Maybe someone from TI can take it further? Mike. Met vriendelijke groet / kind regards, Mike Looijmans TOPIC Embedded Systems Eindhovenseweg 32-C, NL-5683 KH Best Postbus 440, NL-5680 AK Best Telefoon: (+31) (0) 499 33 69 79 Telefax: (+31) (0) 499 33 69 70 E-mail: mike.looijmans@...ic.nl Website: www.topic.nl Please consider the environment before printing this e-mail -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists