浏览代码

mrf24j40: avoid uninitialized byte in SPI transfer to radio.

isr function issues SPI read command to mrf to obtain INTSTAT.
SPI transfer is 2 bytes, but value of 2nd byte is not defined.
This had the effect that only the first ISR worked as intended. The
second ISR read incorrect INTSTAT values. Observed on Raspberry PI B+.

Signed-off-by: Walter Mack <wmack@componentsw.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Walter Mack 9 年之前
父节点
当前提交
3faf564372
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/net/ieee802154/mrf24j40.c

+ 2 - 0
drivers/net/ieee802154/mrf24j40.c

@@ -1054,6 +1054,8 @@ static irqreturn_t mrf24j40_isr(int irq, void *data)
 	disable_irq_nosync(irq);
 	disable_irq_nosync(irq);
 
 
 	devrec->irq_buf[0] = MRF24J40_READSHORT(REG_INTSTAT);
 	devrec->irq_buf[0] = MRF24J40_READSHORT(REG_INTSTAT);
+	devrec->irq_buf[1] = 0;
+
 	/* Read the interrupt status */
 	/* Read the interrupt status */
 	ret = spi_async(devrec->spi, &devrec->irq_msg);
 	ret = spi_async(devrec->spi, &devrec->irq_msg);
 	if (ret) {
 	if (ret) {