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
This commit is contained in:
parent
a3d2552747
commit
fca56fb2c3
@ -3734,6 +3734,9 @@ msk_intr(void *xsc)
|
|||||||
if ((status & Y2_IS_STAT_BMU) != 0 && domore == 0)
|
if ((status & Y2_IS_STAT_BMU) != 0 && domore == 0)
|
||||||
CSR_WRITE_4(sc, STAT_CTRL, SC_STAT_CLR_IRQ);
|
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. */
|
/* Reenable interrupts. */
|
||||||
CSR_WRITE_4(sc, B0_Y2_SP_ICR, 2);
|
CSR_WRITE_4(sc, B0_Y2_SP_ICR, 2);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user