linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/2] spi: pxa2xx: Clean up linux/spi/pxa2xx_spi.h
@ 2024-03-07 16:07 Andy Shevchenko
  2024-03-07 16:07 ` [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info() Andy Shevchenko
  2024-03-07 16:07 ` [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller Andy Shevchenko
  0 siblings, 2 replies; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:07 UTC (permalink / raw)
  To: Andy Shevchenko, Arnd Bergmann, linux-arm-kernel, linux-kernel,
	linux-spi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

A couple of cleanups against linux/spi/pxa2xx_spi.h.

Andy Shevchenko (2):
  spi: pxa2xx: Kill pxa2xx_set_spi_info()
  spi: pxa2xx: Make num_chipselect 8-bit in the struct
    pxa2xx_spi_controller

 arch/arm/mach-pxa/devices.c    | 18 ------------------
 arch/arm/mach-pxa/spitz.c      | 13 ++++++++++++-
 include/linux/spi/pxa2xx_spi.h | 10 +---------
 3 files changed, 13 insertions(+), 28 deletions(-)

-- 
2.43.0.rc1.1.gbec44491f096


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info()
  2024-03-07 16:07 [PATCH v1 0/2] spi: pxa2xx: Clean up linux/spi/pxa2xx_spi.h Andy Shevchenko
@ 2024-03-07 16:07 ` Andy Shevchenko
  2024-03-07 16:30   ` Arnd Bergmann
  2024-03-07 16:07 ` [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller Andy Shevchenko
  1 sibling, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:07 UTC (permalink / raw)
  To: Andy Shevchenko, Arnd Bergmann, linux-arm-kernel, linux-kernel,
	linux-spi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

There is the only one user of the pxa2xx_set_spi_info(). Unexport it
and inline to the actual user.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 arch/arm/mach-pxa/devices.c    | 18 ------------------
 arch/arm/mach-pxa/spitz.c      | 13 ++++++++++++-
 include/linux/spi/pxa2xx_spi.h |  8 --------
 3 files changed, 12 insertions(+), 27 deletions(-)

diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index 661b3fc43275..1e4cd502340e 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -7,7 +7,6 @@
 #include <linux/clk-provider.h>
 #include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
-#include <linux/spi/pxa2xx_spi.h>
 #include <linux/platform_data/i2c-pxa.h>
 #include <linux/soc/pxa/cpu.h>
 
@@ -665,23 +664,6 @@ struct platform_device pxa27x_device_gpio = {
 	.resource	= pxa_resource_gpio,
 };
 
-/* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1.
- * See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */
-void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_controller *info)
-{
-	struct platform_device *pd;
-
-	pd = platform_device_alloc("pxa2xx-spi", id);
-	if (pd == NULL) {
-		printk(KERN_ERR "pxa2xx-spi: failed to allocate device id %d\n",
-		       id);
-		return;
-	}
-
-	pd->dev.platform_data = info;
-	platform_device_add(pd);
-}
-
 static struct resource pxa_dma_resource[] = {
 	[0] = {
 		.start	= 0x40000000,
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index cc691b199429..70e4623907fa 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -585,6 +585,9 @@ static struct gpiod_lookup_table spitz_spi_gpio_table = {
 
 static void __init spitz_spi_init(void)
 {
+	struct platform_device *pd;
+	int id = 2;
+
 	if (machine_is_akita())
 		gpiod_add_lookup_table(&akita_lcdcon_gpio_table);
 	else
@@ -592,7 +595,15 @@ static void __init spitz_spi_init(void)
 
 	gpiod_add_lookup_table(&spitz_ads7846_gpio_table);
 	gpiod_add_lookup_table(&spitz_spi_gpio_table);
-	pxa2xx_set_spi_info(2, &spitz_spi_info);
+
+	pd = platform_device_alloc("pxa2xx-spi", id);
+	if (pd == NULL) {
+		pr_err("pxa2xx-spi: failed to allocate device id %d\n", id);
+	} else {
+		pd->dev.platform_data = info;
+		platform_device_add(pd);
+	}
+
 	spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
 }
 #else
diff --git a/include/linux/spi/pxa2xx_spi.h b/include/linux/spi/pxa2xx_spi.h
index ca2cd4e30ead..56aba2f737b1 100644
--- a/include/linux/spi/pxa2xx_spi.h
+++ b/include/linux/spi/pxa2xx_spi.h
@@ -45,12 +45,4 @@ struct pxa2xx_spi_chip {
 	u32 timeout;
 };
 
-#if defined(CONFIG_ARCH_PXA) || defined(CONFIG_ARCH_MMP)
-
-#include <linux/clk.h>
-
-extern void pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_controller *info);
-
-#endif
-
 #endif	/* __LINUX_SPI_PXA2XX_SPI_H */
-- 
2.43.0.rc1.1.gbec44491f096


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller
  2024-03-07 16:07 [PATCH v1 0/2] spi: pxa2xx: Clean up linux/spi/pxa2xx_spi.h Andy Shevchenko
  2024-03-07 16:07 ` [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info() Andy Shevchenko
@ 2024-03-07 16:07 ` Andy Shevchenko
  2024-03-07 16:37   ` Arnd Bergmann
  1 sibling, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:07 UTC (permalink / raw)
  To: Andy Shevchenko, Arnd Bergmann, linux-arm-kernel, linux-kernel,
	linux-spi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

There is no use for whole 16-bit for the number of chip select pins.
Drop it to 8 bits.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/linux/spi/pxa2xx_spi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/spi/pxa2xx_spi.h b/include/linux/spi/pxa2xx_spi.h
index 56aba2f737b1..e5a4a045fb67 100644
--- a/include/linux/spi/pxa2xx_spi.h
+++ b/include/linux/spi/pxa2xx_spi.h
@@ -17,7 +17,7 @@ struct dma_chan;
  * (resides in device.platform_data).
  */
 struct pxa2xx_spi_controller {
-	u16 num_chipselect;
+	u8 num_chipselect;
 	u8 enable_dma;
 	u8 dma_burst_size;
 	bool is_target;
-- 
2.43.0.rc1.1.gbec44491f096


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info()
  2024-03-07 16:07 ` [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info() Andy Shevchenko
@ 2024-03-07 16:30   ` Arnd Bergmann
  2024-03-07 16:42     ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2024-03-07 16:30 UTC (permalink / raw)
  To: Andy Shevchenko, linux-arm-kernel, linux-kernel, linux-spi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:
> There is the only one user of the pxa2xx_set_spi_info(). Unexport it
> and inline to the actual user.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

I have no idea why you care about this, but it's a nice cleanup,
so I'm happy to see this get merged through the spi tree if
that helps. Let me know if I should take it through the soc
tree instead.

> -/* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1 */

This comment might still be useful.

> @@ -592,7 +595,15 @@ static void __init spitz_spi_init(void)
> 
>  	gpiod_add_lookup_table(&spitz_ads7846_gpio_table);
>  	gpiod_add_lookup_table(&spitz_spi_gpio_table);
> -	pxa2xx_set_spi_info(2, &spitz_spi_info);
> +
> +	pd = platform_device_alloc("pxa2xx-spi", id);
> +	if (pd == NULL) {
> +		pr_err("pxa2xx-spi: failed to allocate device id %d\n", id);
> +	} else {
> +		pd->dev.platform_data = info;
> +		platform_device_add(pd);
> +	}
> +
>  	spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));

I think the normal interface these days would be
platform_device_register_data(), which does it all in one step.

      Arnd

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller
  2024-03-07 16:07 ` [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller Andy Shevchenko
@ 2024-03-07 16:37   ` Arnd Bergmann
  2024-03-07 16:53     ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2024-03-07 16:37 UTC (permalink / raw)
  To: Andy Shevchenko, linux-arm-kernel, linux-kernel, linux-spi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:
> There is no use for whole 16-bit for the number of chip select pins.
> Drop it to 8 bits.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Acked-by: Arnd Bergmann <arnd@arndb.de>

> ---
>  include/linux/spi/pxa2xx_spi.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/spi/pxa2xx_spi.h b/include/linux/spi/pxa2xx_spi.h
> index 56aba2f737b1..e5a4a045fb67 100644
> --- a/include/linux/spi/pxa2xx_spi.h
> +++ b/include/linux/spi/pxa2xx_spi.h
> @@ -17,7 +17,7 @@ struct dma_chan;
>   * (resides in device.platform_data).
>   */
>  struct pxa2xx_spi_controller {
> -	u16 num_chipselect;
> +	u8 num_chipselect;
>  	u8 enable_dma;
>  	u8 dma_burst_size;
>  	bool is_target;

I wonder if we could just move the entire header to drivers/spi/.
The spitz board only fills the num_chipselect field anyway,
and that could be derived from the GPIO lookups instead.

      Arnd

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info()
  2024-03-07 16:30   ` Arnd Bergmann
@ 2024-03-07 16:42     ` Andy Shevchenko
  2024-03-07 16:47       ` Arnd Bergmann
  0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:42 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, linux-kernel, linux-spi, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 07, 2024 at 05:30:10PM +0100, Arnd Bergmann wrote:
> On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:
> > There is the only one user of the pxa2xx_set_spi_info(). Unexport it
> > and inline to the actual user.
> >
> I have no idea why you care about this,

PXA2xx headers contain a lot of legacy information for pre-OF era.
Besides slowing down the builds, this also pollutes an exported
namespace on many platforms where it's even not being used!

But this is just an ad-hoc clean up, as the main target to me was CS clean up
(as per next patch).

> but it's a nice cleanup,
> so I'm happy to see this get merged through the spi tree if
> that helps. Let me know if I should take it through the soc
> tree instead.

Thank you for the review!

...

> > -/* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1 */
> 
> This comment might still be useful.

Okay.

...

> >  	spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
> 
> I think the normal interface these days would be
> platform_device_register_data(), which does it all in one step.

I'm not sure how is this related to the SPI board info registration.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info()
  2024-03-07 16:42     ` Andy Shevchenko
@ 2024-03-07 16:47       ` Arnd Bergmann
  2024-03-07 16:51         ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2024-03-07 16:47 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: linux-arm-kernel, linux-kernel, linux-spi, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 7, 2024, at 17:42, Andy Shevchenko wrote:
> On Thu, Mar 07, 2024 at 05:30:10PM +0100, Arnd Bergmann wrote:
>> On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:
>> >  	spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
>> 
>> I think the normal interface these days would be
>> platform_device_register_data(), which does it all in one step.
>
> I'm not sure how is this related to the SPI board info registration.

It's not. What I meant is that you could use
platform_device_register_data() instead of the
"platform_device_alloc(); platform_data = info; platform_device_add();"
sequence.

It should be a safe conversion, but it's also fine to stay
with the existing version if you are worried about regressions.

      Arnd

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info()
  2024-03-07 16:47       ` Arnd Bergmann
@ 2024-03-07 16:51         ` Andy Shevchenko
  0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:51 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, linux-kernel, linux-spi, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 07, 2024 at 05:47:56PM +0100, Arnd Bergmann wrote:
> On Thu, Mar 7, 2024, at 17:42, Andy Shevchenko wrote:
> > On Thu, Mar 07, 2024 at 05:30:10PM +0100, Arnd Bergmann wrote:
> >> On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:
> >> >  	spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
> >> 
> >> I think the normal interface these days would be
> >> platform_device_register_data(), which does it all in one step.
> >
> > I'm not sure how is this related to the SPI board info registration.
> 
> It's not. What I meant is that you could use
> platform_device_register_data() instead of the
> "platform_device_alloc(); platform_data = info; platform_device_add();"
> sequence.

Ah, thank you for elaboration.

> It should be a safe conversion, but it's also fine to stay
> with the existing version if you are worried about regressions.

Yeah, I prefer not to change it here (as it out of scope of my little
cleanup series).

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller
  2024-03-07 16:37   ` Arnd Bergmann
@ 2024-03-07 16:53     ` Andy Shevchenko
  2024-03-07 16:55       ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:53 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, linux-kernel, linux-spi, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 07, 2024 at 05:37:17PM +0100, Arnd Bergmann wrote:
> On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:

...

> Acked-by: Arnd Bergmann <arnd@arndb.de>

Thanks!

...

> I wonder if we could just move the entire header to drivers/spi/.
> The spitz board only fills the num_chipselect field anyway,
> and that could be derived from the GPIO lookups instead.

It seems to be used by drivers/soc/pxa/ssp.c.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller
  2024-03-07 16:53     ` Andy Shevchenko
@ 2024-03-07 16:55       ` Andy Shevchenko
  0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2024-03-07 16:55 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, linux-kernel, linux-spi, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Russell King, Mark Brown

On Thu, Mar 07, 2024 at 06:53:44PM +0200, Andy Shevchenko wrote:
> On Thu, Mar 07, 2024 at 05:37:17PM +0100, Arnd Bergmann wrote:
> > On Thu, Mar 7, 2024, at 17:07, Andy Shevchenko wrote:

...

> > I wonder if we could just move the entire header to drivers/spi/.
> > The spitz board only fills the num_chipselect field anyway,
> > and that could be derived from the GPIO lookups instead.
> 
> It seems to be used by drivers/soc/pxa/ssp.c.

At closer look it seems a leftover!

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-03-07 16:55 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-07 16:07 [PATCH v1 0/2] spi: pxa2xx: Clean up linux/spi/pxa2xx_spi.h Andy Shevchenko
2024-03-07 16:07 ` [PATCH v1 1/2] spi: pxa2xx: Kill pxa2xx_set_spi_info() Andy Shevchenko
2024-03-07 16:30   ` Arnd Bergmann
2024-03-07 16:42     ` Andy Shevchenko
2024-03-07 16:47       ` Arnd Bergmann
2024-03-07 16:51         ` Andy Shevchenko
2024-03-07 16:07 ` [PATCH v1 2/2] spi: pxa2xx: Make num_chipselect 8-bit in the struct pxa2xx_spi_controller Andy Shevchenko
2024-03-07 16:37   ` Arnd Bergmann
2024-03-07 16:53     ` Andy Shevchenko
2024-03-07 16:55       ` Andy Shevchenko

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).