]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
[ig4] Fix I/O timeout issue with Designware I2C controller on AMD platforms
authorgonzo <gonzo@FreeBSD.org>
Wed, 22 Aug 2018 22:56:01 +0000 (22:56 +0000)
committergonzo <gonzo@FreeBSD.org>
Wed, 22 Aug 2018 22:56:01 +0000 (22:56 +0000)
commit5cc1585a4571b22018eced91a734135057054849
tree0828916daf5005276a240d893cebb35fd191080d
parentffa2c7d287cf92b0f11cb1321e510f520a15bb05
[ig4] Fix I/O timeout issue with Designware I2C controller on AMD platforms

Due to hardware limitation AMD I2C controller can't trigger pending
interrupt if interrupt status has been changed after clearing
interrupt status bits.  So, I2C will lose the interrupt and IO will be
timed out. Implements a workaround to disable I2C controller interrupt
and re-enable I2C interrupt before existing interrupt handler.

Submitted by: rajfbsd@gmail.com
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D16720
sys/dev/ichiic/ig4_acpi.c
sys/dev/ichiic/ig4_iic.c
sys/dev/ichiic/ig4_var.h