aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-10-31 14:54:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-31 14:54:11 -0400
commit0c183d92b20b5c84ca655b45ef57b3318b83eb9e (patch)
tree69ea493c665968b4cca9e43d3c7696b6f3242254 /drivers/spi/spi.c
parent3f7b55b6b26dc89f58ede1ef5d0cec90816ccac6 (diff)
parent2fbef66e1407d1b13d181f7f5614a5897b452188 (diff)
Merge tag 'spi-fix-v4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi fixes from Mark Brown: "A few small fixes for SPI, one core fix that only applies in cases where we're handling DT overlays and a couple of driver specific fixes: - Fix handling of error cases when instantiating DT overlays so we don't end up just ignoring devices that encountered an error during instantiation. - Avoid reading uninitialized data when handing spurious interrupts in the espi driver. - A driver specific fix for the dspi driver to fix a bad interaction with u-boot" * tag 'spi-fix-v4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: dspi: clear SPI_SR before enable interrupt spi: fsl-espi: avoid processing uninitalized data on error spi: mark device nodes only in case of successful instantiation
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 5787b723b593..838783c3fed0 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1618,9 +1618,11 @@ static void of_register_spi_devices(struct spi_master *master)
1618 if (of_node_test_and_set_flag(nc, OF_POPULATED)) 1618 if (of_node_test_and_set_flag(nc, OF_POPULATED))
1619 continue; 1619 continue;
1620 spi = of_register_spi_device(master, nc); 1620 spi = of_register_spi_device(master, nc);
1621 if (IS_ERR(spi)) 1621 if (IS_ERR(spi)) {
1622 dev_warn(&master->dev, "Failed to create SPI device for %s\n", 1622 dev_warn(&master->dev, "Failed to create SPI device for %s\n",
1623 nc->full_name); 1623 nc->full_name);
1624 of_node_clear_flag(nc, OF_POPULATED);
1625 }
1624 } 1626 }
1625} 1627}
1626#else 1628#else
@@ -3131,6 +3133,7 @@ static int of_spi_notify(struct notifier_block *nb, unsigned long action,
3131 if (IS_ERR(spi)) { 3133 if (IS_ERR(spi)) {
3132 pr_err("%s: failed to create for '%s'\n", 3134 pr_err("%s: failed to create for '%s'\n",
3133 __func__, rd->dn->full_name); 3135 __func__, rd->dn->full_name);
3136 of_node_clear_flag(rd->dn, OF_POPULATED);
3134 return notifier_from_errno(PTR_ERR(spi)); 3137 return notifier_from_errno(PTR_ERR(spi));
3135 } 3138 }
3136 break; 3139 break;