diff options
author | Mark Brown <broonie@kernel.org> | 2017-02-19 11:40:55 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-02-19 11:40:55 -0500 |
commit | 42af2f5c52daec0c182af66984927ef64885bbcc (patch) | |
tree | 4ac2ceb6f29d7419ed4b32b3673102ee64895b6c | |
parent | e0afd0facfa921db8d5757709600a136d9cbba6c (diff) | |
parent | 8324147f38019865b29d03baf28412d2ec0bd828 (diff) |
Merge remote-tracking branch 'spi/topic/core' into spi-next
-rw-r--r-- | drivers/spi/spi-fsl-spi.c | 17 | ||||
-rw-r--r-- | drivers/spi/spi.c | 10 |
2 files changed, 16 insertions, 11 deletions
diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c index 8b290d9d7935..0fc3452652ae 100644 --- a/drivers/spi/spi-fsl-spi.c +++ b/drivers/spi/spi-fsl-spi.c | |||
@@ -267,10 +267,9 @@ static int fsl_spi_setup_transfer(struct spi_device *spi, | |||
267 | if ((mpc8xxx_spi->spibrg / hz) > 64) { | 267 | if ((mpc8xxx_spi->spibrg / hz) > 64) { |
268 | cs->hw_mode |= SPMODE_DIV16; | 268 | cs->hw_mode |= SPMODE_DIV16; |
269 | pm = (mpc8xxx_spi->spibrg - 1) / (hz * 64) + 1; | 269 | pm = (mpc8xxx_spi->spibrg - 1) / (hz * 64) + 1; |
270 | 270 | WARN_ONCE(pm > 16, | |
271 | WARN_ONCE(pm > 16, "%s: Requested speed is too low: %d Hz. " | 271 | "%s: Requested speed is too low: %d Hz. Will use %d Hz instead.\n", |
272 | "Will use %d Hz instead.\n", dev_name(&spi->dev), | 272 | dev_name(&spi->dev), hz, mpc8xxx_spi->spibrg / 1024); |
273 | hz, mpc8xxx_spi->spibrg / 1024); | ||
274 | if (pm > 16) | 273 | if (pm > 16) |
275 | pm = 16; | 274 | pm = 16; |
276 | } else { | 275 | } else { |
@@ -727,12 +726,13 @@ static int of_fsl_spi_get_chipselects(struct device *dev) | |||
727 | return 0; | 726 | return 0; |
728 | } | 727 | } |
729 | 728 | ||
730 | pinfo->gpios = kmalloc(ngpios * sizeof(*pinfo->gpios), GFP_KERNEL); | 729 | pinfo->gpios = kmalloc_array(ngpios, sizeof(*pinfo->gpios), |
730 | GFP_KERNEL); | ||
731 | if (!pinfo->gpios) | 731 | if (!pinfo->gpios) |
732 | return -ENOMEM; | 732 | return -ENOMEM; |
733 | memset(pinfo->gpios, -1, ngpios * sizeof(*pinfo->gpios)); | 733 | memset(pinfo->gpios, -1, ngpios * sizeof(*pinfo->gpios)); |
734 | 734 | ||
735 | pinfo->alow_flags = kzalloc(ngpios * sizeof(*pinfo->alow_flags), | 735 | pinfo->alow_flags = kcalloc(ngpios, sizeof(*pinfo->alow_flags), |
736 | GFP_KERNEL); | 736 | GFP_KERNEL); |
737 | if (!pinfo->alow_flags) { | 737 | if (!pinfo->alow_flags) { |
738 | ret = -ENOMEM; | 738 | ret = -ENOMEM; |
@@ -762,8 +762,9 @@ static int of_fsl_spi_get_chipselects(struct device *dev) | |||
762 | ret = gpio_direction_output(pinfo->gpios[i], | 762 | ret = gpio_direction_output(pinfo->gpios[i], |
763 | pinfo->alow_flags[i]); | 763 | pinfo->alow_flags[i]); |
764 | if (ret) { | 764 | if (ret) { |
765 | dev_err(dev, "can't set output direction for gpio " | 765 | dev_err(dev, |
766 | "#%d: %d\n", i, ret); | 766 | "can't set output direction for gpio #%d: %d\n", |
767 | i, ret); | ||
767 | goto err_loop; | 768 | goto err_loop; |
768 | } | 769 | } |
769 | } | 770 | } |
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 656dd3e3220c..59cb26470d70 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c | |||
@@ -621,8 +621,10 @@ void spi_unregister_device(struct spi_device *spi) | |||
621 | if (!spi) | 621 | if (!spi) |
622 | return; | 622 | return; |
623 | 623 | ||
624 | if (spi->dev.of_node) | 624 | if (spi->dev.of_node) { |
625 | of_node_clear_flag(spi->dev.of_node, OF_POPULATED); | 625 | of_node_clear_flag(spi->dev.of_node, OF_POPULATED); |
626 | of_node_put(spi->dev.of_node); | ||
627 | } | ||
626 | if (ACPI_COMPANION(&spi->dev)) | 628 | if (ACPI_COMPANION(&spi->dev)) |
627 | acpi_device_clear_enumerated(ACPI_COMPANION(&spi->dev)); | 629 | acpi_device_clear_enumerated(ACPI_COMPANION(&spi->dev)); |
628 | device_unregister(&spi->dev); | 630 | device_unregister(&spi->dev); |
@@ -672,7 +674,7 @@ int spi_register_board_info(struct spi_board_info const *info, unsigned n) | |||
672 | if (!n) | 674 | if (!n) |
673 | return -EINVAL; | 675 | return -EINVAL; |
674 | 676 | ||
675 | bi = kzalloc(n * sizeof(*bi), GFP_KERNEL); | 677 | bi = kcalloc(n, sizeof(*bi), GFP_KERNEL); |
676 | if (!bi) | 678 | if (!bi) |
677 | return -ENOMEM; | 679 | return -ENOMEM; |
678 | 680 | ||
@@ -1603,11 +1605,13 @@ of_register_spi_device(struct spi_master *master, struct device_node *nc) | |||
1603 | if (rc) { | 1605 | if (rc) { |
1604 | dev_err(&master->dev, "spi_device register error %s\n", | 1606 | dev_err(&master->dev, "spi_device register error %s\n", |
1605 | nc->full_name); | 1607 | nc->full_name); |
1606 | goto err_out; | 1608 | goto err_of_node_put; |
1607 | } | 1609 | } |
1608 | 1610 | ||
1609 | return spi; | 1611 | return spi; |
1610 | 1612 | ||
1613 | err_of_node_put: | ||
1614 | of_node_put(nc); | ||
1611 | err_out: | 1615 | err_out: |
1612 | spi_dev_put(spi); | 1616 | spi_dev_put(spi); |
1613 | return ERR_PTR(rc); | 1617 | return ERR_PTR(rc); |