From: Hans de Goede <hdegoede@redhat.com>
To: Lee Jones <lee.jones@linaro.org>,
Cezary Rojewski <cezary.rojewski@intel.com>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
Liam Girdwood <liam.r.girdwood@linux.intel.com>,
Jie Yang <yang.jie@linux.intel.com>,
Mark Brown <broonie@kernel.org>
Cc: Hans de Goede <hdegoede@redhat.com>,
patches@opensource.cirrus.com, linux-kernel@vger.kernel.org,
Andy Shevchenko <andy.shevchenko@gmail.com>,
Charles Keepax <ckeepax@opensource.cirrus.com>,
alsa-devel@alsa-project.org
Subject: [PATCH v4 2/5] mfd: arizona: Replace arizona_of_get_type() with device_get_match_data()
Date: Wed, 20 Jan 2021 22:49:54 +0100 [thread overview]
Message-ID: <20210120214957.140232-3-hdegoede@redhat.com> (raw)
In-Reply-To: <20210120214957.140232-1-hdegoede@redhat.com>
Replace the custom arizona_of_get_type() function with the generic
device_get_match_data() helper. Besides being a nice cleanup this
also makes it easier to add support for binding to ACPI enumerated
devices.
While at it also fix a possible NULL pointer deref of the id
argument to the probe functions (this could happen on e.g. manual
driver binding through sysfs).
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
- New patch in v2 of this patchset
---
drivers/mfd/arizona-core.c | 11 -----------
drivers/mfd/arizona-i2c.c | 10 ++++++----
drivers/mfd/arizona-spi.c | 10 ++++++----
drivers/mfd/arizona.h | 9 ---------
4 files changed, 12 insertions(+), 28 deletions(-)
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 000cb82023e3..75f1bc671d59 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -797,17 +797,6 @@ const struct dev_pm_ops arizona_pm_ops = {
EXPORT_SYMBOL_GPL(arizona_pm_ops);
#ifdef CONFIG_OF
-unsigned long arizona_of_get_type(struct device *dev)
-{
- const struct of_device_id *id = of_match_device(arizona_of_match, dev);
-
- if (id)
- return (unsigned long)id->data;
- else
- return 0;
-}
-EXPORT_SYMBOL_GPL(arizona_of_get_type);
-
static int arizona_of_get_core_pdata(struct arizona *arizona)
{
struct arizona_pdata *pdata = &arizona->pdata;
diff --git a/drivers/mfd/arizona-i2c.c b/drivers/mfd/arizona-i2c.c
index 2a4a3a164d0a..5e83b730c4ce 100644
--- a/drivers/mfd/arizona-i2c.c
+++ b/drivers/mfd/arizona-i2c.c
@@ -23,14 +23,16 @@
static int arizona_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id)
{
+ const void *match_data;
struct arizona *arizona;
const struct regmap_config *regmap_config = NULL;
- unsigned long type;
+ unsigned long type = 0;
int ret;
- if (i2c->dev.of_node)
- type = arizona_of_get_type(&i2c->dev);
- else
+ match_data = device_get_match_data(&i2c->dev);
+ if (match_data)
+ type = (unsigned long)match_data;
+ else if (id)
type = id->driver_data;
switch (type) {
diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
index 704f214d2614..798b88295c77 100644
--- a/drivers/mfd/arizona-spi.c
+++ b/drivers/mfd/arizona-spi.c
@@ -23,14 +23,16 @@
static int arizona_spi_probe(struct spi_device *spi)
{
const struct spi_device_id *id = spi_get_device_id(spi);
+ const void *match_data;
struct arizona *arizona;
const struct regmap_config *regmap_config = NULL;
- unsigned long type;
+ unsigned long type = 0;
int ret;
- if (spi->dev.of_node)
- type = arizona_of_get_type(&spi->dev);
- else
+ match_data = device_get_match_data(&spi->dev);
+ if (match_data)
+ type = (unsigned long)match_data;
+ else if (id)
type = id->driver_data;
switch (type) {
diff --git a/drivers/mfd/arizona.h b/drivers/mfd/arizona.h
index 995efc6d7f32..801cbbcd71cb 100644
--- a/drivers/mfd/arizona.h
+++ b/drivers/mfd/arizona.h
@@ -50,13 +50,4 @@ int arizona_dev_exit(struct arizona *arizona);
int arizona_irq_init(struct arizona *arizona);
int arizona_irq_exit(struct arizona *arizona);
-#ifdef CONFIG_OF
-unsigned long arizona_of_get_type(struct device *dev);
-#else
-static inline unsigned long arizona_of_get_type(struct device *dev)
-{
- return 0;
-}
-#endif
-
#endif
--
2.28.0
next prev parent reply other threads:[~2021-01-20 22:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-20 21:49 [PATCH v4 0/5] MFD/ASoC: Add support for Intel Bay Trail boards with WM5102 codec Hans de Goede
2021-01-20 21:49 ` [PATCH v4 1/5] mfd: arizona: Add MODULE_SOFTDEP("pre: arizona_ldo1") Hans de Goede
2021-02-04 13:55 ` Lee Jones
2021-01-20 21:49 ` Hans de Goede [this message]
2021-02-04 13:55 ` [PATCH v4 2/5] mfd: arizona: Replace arizona_of_get_type() with device_get_match_data() Lee Jones
2021-01-20 21:49 ` [PATCH v4 3/5] mfd: arizona: Add support for ACPI enumeration of WM5102 connected over SPI Hans de Goede
2021-01-21 10:34 ` Charles Keepax
2021-02-04 13:55 ` Lee Jones
2021-01-20 21:49 ` [PATCH v4 4/5] ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr() Hans de Goede
2021-02-04 13:56 ` Lee Jones
2021-02-04 14:05 ` Mark Brown
2021-02-04 15:04 ` Lee Jones
2021-02-04 15:11 ` Mark Brown
2021-02-04 15:40 ` Lee Jones
2021-02-04 19:42 ` Mark Brown
2021-02-05 8:34 ` Lee Jones
2021-02-05 21:11 ` Mark Brown
2021-02-08 8:33 ` Lee Jones
2021-02-08 15:24 ` Mark Brown
2021-01-20 21:49 ` [PATCH v4 5/5] ASoC: Intel: bytcr_wm5102: Add machine driver for BYT/WM5102 Hans de Goede
2021-01-21 10:37 ` Charles Keepax
2021-02-04 13:56 ` Lee Jones
2021-02-04 10:25 ` [PATCH v4 0/5] MFD/ASoC: Add support for Intel Bay Trail boards with WM5102 codec Hans de Goede
2021-02-04 10:57 ` Lee Jones
2021-02-04 11:07 ` Hans de Goede
2021-02-04 12:43 ` Mark Brown
2021-02-04 13:18 ` Hans de Goede
2021-02-04 14:04 ` Mark Brown
2021-02-04 13:46 ` Lee Jones
2021-02-04 15:09 ` Mark Brown
2021-02-04 15:21 ` Lee Jones
2021-02-04 16:48 ` Mark Brown
2021-02-08 13:52 ` [GIT PULL] Immutable branch from MFD due for the v5.12 merge window Lee Jones
2021-02-08 18:38 ` (subset) [PATCH v4 0/5] MFD/ASoC: Add support for Intel Bay Trail boards with WM5102 codec Mark Brown
2021-02-08 19:12 ` Hans de Goede
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=20210120214957.140232-3-hdegoede@redhat.com \
--to=hdegoede@redhat.com \
--cc=alsa-devel@alsa-project.org \
--cc=andy.shevchenko@gmail.com \
--cc=broonie@kernel.org \
--cc=cezary.rojewski@intel.com \
--cc=ckeepax@opensource.cirrus.com \
--cc=lee.jones@linaro.org \
--cc=liam.r.girdwood@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=yang.jie@linux.intel.com \
/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).