diff options
author | Dan O'Donovan <dan@emutex.com> | 2017-02-05 11:30:14 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-02-07 07:31:51 -0500 |
commit | 0c6543f6cda442f5497b2d59ac0dcdda45f4778c (patch) | |
tree | 5b5fd6e2f9ac75ecc1b4e9cc357f003d367b34d5 /drivers/spi/spi.c | |
parent | 622b307712f1d02048a7abbe376cf30f04c5b310 (diff) |
spi: acpi: Initialize modalias from of_compatible
When using devicetree spi_device.modalias is set to the compatible
string with the vendor prefix removed. For SPI devices described via
ACPI the spi_device.modalias string is initialized by acpi_device_hid.
When using ACPI and DT ids this string ends up something like "PRP0001".
Change acpi_register_spi_device to use the of_compatible property if
present. This makes it easier to instantiate spi drivers through ACPI
with DT ids.
Signed-off-by: Dan O'Donovan <dan@emutex.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r-- | drivers/spi/spi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 656dd3e3220c..ad7f638a0a5b 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c | |||
@@ -1722,13 +1722,15 @@ static acpi_status acpi_register_spi_device(struct spi_master *master, | |||
1722 | return AE_OK; | 1722 | return AE_OK; |
1723 | } | 1723 | } |
1724 | 1724 | ||
1725 | acpi_set_modalias(adev, acpi_device_hid(adev), spi->modalias, | ||
1726 | sizeof(spi->modalias)); | ||
1727 | |||
1725 | if (spi->irq < 0) | 1728 | if (spi->irq < 0) |
1726 | spi->irq = acpi_dev_gpio_irq_get(adev, 0); | 1729 | spi->irq = acpi_dev_gpio_irq_get(adev, 0); |
1727 | 1730 | ||
1728 | acpi_device_set_enumerated(adev); | 1731 | acpi_device_set_enumerated(adev); |
1729 | 1732 | ||
1730 | adev->power.flags.ignore_parent = true; | 1733 | adev->power.flags.ignore_parent = true; |
1731 | strlcpy(spi->modalias, acpi_device_hid(adev), sizeof(spi->modalias)); | ||
1732 | if (spi_add_device(spi)) { | 1734 | if (spi_add_device(spi)) { |
1733 | adev->power.flags.ignore_parent = false; | 1735 | adev->power.flags.ignore_parent = false; |
1734 | dev_err(&master->dev, "failed to add SPI device %s from ACPI\n", | 1736 | dev_err(&master->dev, "failed to add SPI device %s from ACPI\n", |