svn commit: r234666 - head/sys/dev/msk

Pyun YongHyeon yongari at FreeBSD.org
Wed Apr 25 02:46:14 UTC 2012


Author: yongari
Date: Wed Apr 25 02:46:13 2012
New Revision: 234666
URL: http://svn.freebsd.org/changeset/base/234666

Log:
  For Yukon II controllers that implement optional temperature sensor
  and voltage sensor, TWSI is used to get sensor data.  msk(4) does
  not monitor these sensors and interrupt for TWSI completion is
  disabled by default.
  However, due to unknown reason, the TWSI completion interrupt fires
  and it resulted in interrupt storm.  To fix it, acknowledges the
  TWSI completion interrupt if driver see the event.  Given that not
  all Yukon II controllers show the issue it could be a silicon bug
  which does not honor interrupt masking.
  
  Probably the right way to address the issue is disabling automatic
  TWSI cycle initiation against these sensors.  It would be even
  better to implement reading voltage/temperature from the NIC but it
  requires access to National LM80 through TWSI and documentation to
  do that is not available yet(probably will never happen).
  
  Reported by:	jhb
  Tested by:	jhb
  MFC after:	2 weeks

Modified:
  head/sys/dev/msk/if_msk.c

Modified: head/sys/dev/msk/if_msk.c
==============================================================================
--- head/sys/dev/msk/if_msk.c	Wed Apr 25 02:05:14 2012	(r234665)
+++ head/sys/dev/msk/if_msk.c	Wed Apr 25 02:46:13 2012	(r234666)
@@ -3734,6 +3734,9 @@ msk_intr(void *xsc)
 	if ((status & Y2_IS_STAT_BMU) != 0 && domore == 0)
 		CSR_WRITE_4(sc, STAT_CTRL, SC_STAT_CLR_IRQ);
 
+	/* Clear TWSI IRQ. */
+	if ((status & Y2_IS_TWSI_RDY) != 0)
+		CSR_WRITE_4(sc, B2_I2C_IRQ, 1);
 	/* Reenable interrupts. */
 	CSR_WRITE_4(sc, B0_Y2_SP_ICR, 2);
 


More information about the svn-src-all mailing list