From: Jarkko Nikula <jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: "Rafael J. Wysocki" <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
Cc: linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org,
linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Jarkko Nikula
<jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: [PATCHv2 3/3] spi: Use stable dev_name for ACPI enumerated SPI slaves
Date: Fri, 1 Nov 2013 14:35:56 +0200 [thread overview]
Message-ID: <1383309356-25430-4-git-send-email-jarkko.nikula@linux.intel.com> (raw)
In-Reply-To: <1383309356-25430-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Current spi bus_num.chip_select "spix.y" based device naming scheme may not
be stable enough to be used in name based matching, for instance within
ALSA SoC subsystem.
This can be problem in PC kind of platforms if there are changes in SPI bus
configuration, amount of busses or probe order.
This patch addresses the problem by using the ACPI device name with
"spi-" prefix for ACPI enumerated SPI slave. For them device name
"spix.y" becomes "spi-INTABCD:ij".
Signed-off-by: Jarkko Nikula <jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
---
drivers/spi/spi.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 740f9dd..4c0c801 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -38,6 +38,7 @@
#include <linux/kthread.h>
#include <linux/ioport.h>
#include <linux/acpi.h>
+#include <acpi/acpi_bus.h>
static void spidev_release(struct device *dev)
{
@@ -352,6 +353,21 @@ struct spi_device *spi_alloc_device(struct spi_master *master)
}
EXPORT_SYMBOL_GPL(spi_alloc_device);
+void spi_dev_set_name(struct spi_device *spi)
+{
+ if (ACPI_HANDLE(&spi->dev)) {
+ struct acpi_device *adev;
+ if (!acpi_bus_get_device(ACPI_HANDLE(&spi->dev), &adev)) {
+ dev_set_name(&spi->dev, "spi-%s",
+ dev_name(&adev->dev));
+ return;
+ }
+ }
+
+ dev_set_name(&spi->dev, "%s.%u", dev_name(&spi->master->dev),
+ spi->chip_select);
+}
+
/**
* spi_add_device - Add spi_device allocated with spi_alloc_device
* @spi: spi_device to register
@@ -378,9 +394,7 @@ int spi_add_device(struct spi_device *spi)
}
/* Set the bus ID string */
- dev_set_name(&spi->dev, "%s.%u", dev_name(&spi->master->dev),
- spi->chip_select);
-
+ spi_dev_set_name(spi);
/* We need to make sure there's no other device with this
* chipselect **BEFORE** we call setup(), else we'll trash
--
1.8.4.rc3
next prev parent reply other threads:[~2013-11-01 12:35 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-25 12:18 [RFC 0/2] I2C and SPI dev_name change for ACPI enumerated slaves Jarkko Nikula
[not found] ` <1382703540-3769-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-10-25 12:18 ` [RFC 1/2] i2c: Use stable dev_name for ACPI enumerated I2C slaves Jarkko Nikula
2013-10-25 12:52 ` Rafael J. Wysocki
[not found] ` <6032482.JJ4PNSSnIp-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2013-10-25 12:55 ` Jarkko Nikula
[not found] ` <526A6A41.6020909-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-10-25 13:18 ` Rafael J. Wysocki
2013-10-25 13:30 ` Jarkko Nikula
[not found] ` <526A726F.1030407-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-10-25 14:08 ` Rafael J. Wysocki
[not found] ` <2889412.bEKBLJtgSW-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2013-10-28 13:15 ` Jarkko Nikula
2013-10-28 16:10 ` Mark Brown
[not found] ` <526E636D.3070005-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-01 0:08 ` Rafael J. Wysocki
[not found] ` <1433914.mn8USodCgb-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2013-11-01 0:26 ` Rafael J. Wysocki
2013-10-25 12:19 ` [RFC 2/2] spi: Use stable dev_name for ACPI enumerated SPI slaves Jarkko Nikula
2013-10-25 12:59 ` Mark Brown
2013-10-25 14:09 ` Rafael J. Wysocki
2013-11-01 12:35 ` [PATCHv2 0/3] I2C and SPI dev_name change for ACPI enumerated slaves Jarkko Nikula
2013-11-01 12:35 ` [PATCHv2 2/3] i2c: Use stable dev_name for ACPI enumerated I2C slaves Jarkko Nikula
[not found] ` <1383309356-25430-3-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-02 0:15 ` Wolfram Sang
[not found] ` <1383309356-25430-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-01 12:35 ` [PATCHv2 1/3] ACPI: Expose struct acpi_device and acpi_bus_get_device() to non-ACPI builds Jarkko Nikula
2013-11-02 22:18 ` Rafael J. Wysocki
[not found] ` <3858838.4tAO673dDi-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2013-11-04 1:00 ` Rafael J. Wysocki
2013-11-04 21:15 ` Jarkko Nikula
2013-11-07 13:34 ` Rafael J. Wysocki
2013-11-01 12:35 ` Jarkko Nikula [this message]
[not found] ` <1383309356-25430-4-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-01 18:03 ` [PATCHv2 3/3] spi: Use stable dev_name for ACPI enumerated SPI slaves Mark Brown
2013-11-01 13:18 ` [PATCHv2 0/3] I2C and SPI dev_name change for ACPI enumerated slaves Rafael J. Wysocki
[not found] ` <1601125.4tFOPicoTX-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2013-11-01 13:20 ` Wolfram Sang
2013-11-01 13:44 ` Jarkko Nikula
2013-11-01 22:58 ` Rafael J. Wysocki
[not found] ` <3989164.GAoLSa6qzM-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2013-11-02 0:13 ` Wolfram Sang
2013-11-14 9:00 ` [PATCHv3 " Jarkko Nikula
[not found] ` <1384419661-28293-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-14 9:00 ` [PATCHv3 1/3] ACPI: Provide struct acpi_device stub for !CONFIG_ACPI builds Jarkko Nikula
2013-11-14 10:03 ` [alsa-devel] " Takashi Iwai
2013-11-14 11:14 ` Jarkko Nikula
2013-11-14 9:01 ` [PATCHv3 2/3] i2c: Use stable dev_name for ACPI enumerated I2C slaves Jarkko Nikula
2013-11-14 9:01 ` [PATCHv3 3/3] spi: Use stable dev_name for ACPI enumerated SPI slaves Jarkko Nikula
[not found] ` <1384419661-28293-4-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-14 10:10 ` Mark Brown
2013-11-14 12:03 ` [PATCHv4 0/3] I2C and SPI dev_name change for ACPI enumerated slaves Jarkko Nikula
[not found] ` <1384430633-23426-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-14 12:03 ` [PATCHv4 1/3] ACPI: Provide acpi_dev_name accessor for struct acpi_device device name Jarkko Nikula
2013-11-14 12:03 ` [PATCHv4 2/3] i2c: Use stable dev_name for ACPI enumerated I2C slaves Jarkko Nikula
[not found] ` <1384430633-23426-3-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-11-14 17:22 ` Wolfram Sang
2013-11-14 12:03 ` [PATCHv4 3/3] spi: Use stable dev_name for ACPI enumerated SPI slaves Jarkko Nikula
2013-11-16 1:30 ` [PATCHv4 0/3] I2C and SPI dev_name change for ACPI enumerated slaves Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1383309356-25430-4-git-send-email-jarkko.nikula@linux.intel.com \
--to=jarkko.nikula-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \
--cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
--cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).