All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Mark Brown <broonie@kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Russell King <linux@armlinux.org.uk>
Subject: [PATCH v2 4/9] spi: pxa2xx: Skip SSP initialization if it's done elsewhere
Date: Wed, 27 Mar 2024 21:29:23 +0200	[thread overview]
Message-ID: <20240327193138.2385910-5-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20240327193138.2385910-1-andriy.shevchenko@linux.intel.com>

If SSP has been enumerated elsewhere, skip its initialization
in pxa2xx_spi_init_pdata().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/spi/spi-pxa2xx.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index e7072727c25c..b01a18c89b6b 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1355,6 +1355,7 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct device *parent = dev->parent;
 	enum pxa_ssp_type type = SSP_UNDEFINED;
+	struct ssp_device *ssp = NULL;
 	const void *match;
 	bool is_lpss_priv;
 	int status;
@@ -1372,6 +1373,10 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 			return ERR_PTR(status);
 
 		type = (enum pxa_ssp_type)value;
+	} else {
+		ssp = pxa_ssp_request(pdev->id, pdev->name);
+		if (ssp)
+			type = ssp->type;
 	}
 
 	/* Validate the SSP type correctness */
@@ -1394,6 +1399,10 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 	pdata->enable_dma = true;
 	pdata->dma_burst_size = 1;
 
+	/* If SSP has been already enumerated, use it */
+	if (ssp)
+		return pdata;
+
 	status = pxa2xx_spi_init_ssp(pdev, &pdata->ssp, type);
 	if (status)
 		return ERR_PTR(status);
-- 
2.43.0.rc1.1.gbec44491f096


WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Mark Brown <broonie@kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Russell King <linux@armlinux.org.uk>
Subject: [PATCH v2 4/9] spi: pxa2xx: Skip SSP initialization if it's done elsewhere
Date: Wed, 27 Mar 2024 21:29:23 +0200	[thread overview]
Message-ID: <20240327193138.2385910-5-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20240327193138.2385910-1-andriy.shevchenko@linux.intel.com>

If SSP has been enumerated elsewhere, skip its initialization
in pxa2xx_spi_init_pdata().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/spi/spi-pxa2xx.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index e7072727c25c..b01a18c89b6b 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1355,6 +1355,7 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct device *parent = dev->parent;
 	enum pxa_ssp_type type = SSP_UNDEFINED;
+	struct ssp_device *ssp = NULL;
 	const void *match;
 	bool is_lpss_priv;
 	int status;
@@ -1372,6 +1373,10 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 			return ERR_PTR(status);
 
 		type = (enum pxa_ssp_type)value;
+	} else {
+		ssp = pxa_ssp_request(pdev->id, pdev->name);
+		if (ssp)
+			type = ssp->type;
 	}
 
 	/* Validate the SSP type correctness */
@@ -1394,6 +1399,10 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 	pdata->enable_dma = true;
 	pdata->dma_burst_size = 1;
 
+	/* If SSP has been already enumerated, use it */
+	if (ssp)
+		return pdata;
+
 	status = pxa2xx_spi_init_ssp(pdev, &pdata->ssp, type);
 	if (status)
 		return ERR_PTR(status);
-- 
2.43.0.rc1.1.gbec44491f096


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2024-03-27 19:31 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-27 19:29 [PATCH v2 0/9] spi: pxa2xx: Drop linux/spi/pxa2xx_spi.h Andy Shevchenko
2024-03-27 19:29 ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 1/9] spi: pxa2xx: Narrow the Kconfig option visibility Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 2/9] spi: pxa2xx: Drop ACPI_PTR() and of_match_ptr() Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 3/9] spi: pxa2xx: Extract pxa2xx_spi_init_ssp() helper Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` Andy Shevchenko [this message]
2024-03-27 19:29   ` [PATCH v2 4/9] spi: pxa2xx: Skip SSP initialization if it's done elsewhere Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 5/9] spi: pxa2xx: Allow number of chip select pins to be read from property Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 6/9] spi: pxa2xx: Provide num-cs for Sharp PDAs via device properties Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 7/9] spi: pxa2xx: Move contents of linux/spi/pxa2xx_spi.h to a local one Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 8/9] spi: pxa2xx: Remove outdated documentation Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-27 19:29 ` [PATCH v2 9/9] spi: pxa2xx: Don't use "proxy" headers Andy Shevchenko
2024-03-27 19:29   ` Andy Shevchenko
2024-03-29  1:29 ` (subset) [PATCH v2 0/9] spi: pxa2xx: Drop linux/spi/pxa2xx_spi.h Mark Brown
2024-03-29  1:29   ` Mark Brown
2024-04-03 11:07   ` Andy Shevchenko
2024-04-03 11:07     ` Andy Shevchenko
2024-04-03 13:29     ` Mark Brown
2024-04-03 13:29       ` Mark Brown
2024-04-03 13:39       ` Andy Shevchenko
2024-04-03 13:39         ` Andy Shevchenko
2024-04-03 13:41         ` Andy Shevchenko
2024-04-03 13:41           ` Andy Shevchenko
2024-04-03 14:13           ` Mark Brown
2024-04-03 14:13             ` Mark Brown
2024-04-03 14:41             ` Andy Shevchenko
2024-04-03 14:41               ` Andy Shevchenko
2024-04-03 15:50               ` Mark Brown
2024-04-03 15:50                 ` Mark Brown
2024-04-03 17:13                 ` Andy Shevchenko
2024-04-03 17:13                   ` Andy Shevchenko

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=20240327193138.2385910-5-andriy.shevchenko@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=daniel@zonque.org \
    --cc=haojian.zhuang@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=robert.jarzmik@free.fr \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.