Hi Wolfram, Ellen, On Thu, 9 Jul 2015 18:59:39 +0200, Wolfram Sang wrote: > On Fri, May 22, 2015 at 03:14:28PM -0700, Ellen Wang wrote: > > On a CRC error while using hardware-supported PEC, an additional > > error bit is set in the auxiliary status register. If this bit > > isn't cleared, all subsequent operations will fail, essentially > > hanging the controller. > > > > The fix is simple: check, report, and clear the bit in > > i801_check_post(). Also, in case the driver starts with the > > hardware in that state, clear it in i801_check_pre() as well. > > > > Signed-off-by: Ellen Wang <ellen@xxxxxxxxxxxxxxxxxxx> > > --- > > Update: fix typos in commit message, otherwise the same as v2 > > > > This is essentially the patch from Jean Delvare, which handles > > the polling case while my original version didn't. (Thank you! > > Please add appropriate attribution if you wish.) > > > > I tested all the additional code paths by selectively commenting > > out code: with interrupts, without interrupts, relying on check_pre() > > to clear CRCE, no clearing of CRCE at all (baseline). > > Jean, any comments or tags to add? Sorry, this one fell trough the cracks. The patch is good and still needed. I have tested it successfully on several systems. Wolfram, please apply it. Tested-by: Jean Delvare <jdelvare@xxxxxxx> Reviewed-by: Jean Delvare <jdelvare@xxxxxxx> -- Jean Delvare SUSE L3 Support -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html