mbox series

[v3,0/7] spi: dw: Cleanup macros/funcs naming and add IP-core version support

Message ID 20211115181917.7521-1-Sergey.Semin@baikalelectronics.ru
Headers show
Series spi: dw: Cleanup macros/funcs naming and add IP-core version support | expand

Message

Serge Semin Nov. 15, 2021, 6:19 p.m. UTC
I was going to submit a cleanup patchset for the DW SSI driver for a
long time, but due to lack of free time couldn't make it so far.
Nandhini's series [1] made me to proceed with this task so mate would
finally have his patchset accepted and merged into the mainline kernel.

There are four cleanup patches here and three feature patches. In the
framework of the former patches we convert the DW SPI driver to using
module namespaces and provide a better code organization. In particular
the second part concerns the methods and macros naming unification (using
a unified prefixes of the code object names) and the CSR fields macro
implementation using the bitfield helpers available in the kernel. The
later patches introduce the DW SSI IP-core versions interface so it
could be used for a version-specific features implementation. Nandhini
will be mostly interested in the later patches in the framework of his
series [1].

Nandhini, could you please test the patchset out on your DWC SSI hardware?
After it's merged into the spi/for-next branch of the Mark' repository you
will be able to rebase your series on top of it and use the last IP-core
version interface for your benefit.

Andy, I have added your tag to all the patches except the last one since
it's new (though suggested by you).

[1] https://lore.kernel.org/linux-spi/20211111065201.10249-4-nandhini.srikandan@intel.com

Link: https://lore.kernel.org/linux-spi/20211112204927.8830-1-Sergey.Semin@baikalelectronics.ru
Changelog v2:
- Replace "assi" suffixes with "pssi" in the spi-dw-mmio.c methods.
  (Thanks Andy for noticing this pity mistake)
- Add new patches:
  [PATCH v2 6/6] spi: dw: Replace DWC_HSSI capability with IP-core version checker
  [PATCH v2 1/6] spi: dw: Add symbol namespaces for the core and DMA modules
- Replace the ASCII-to-integer conversion with a unified IP-core versioning
  interface (Suggested by Andy).

Link: https://lore.kernel.org/linux-spi/20211114223026.13359-1-Sergey.Semin@baikalelectronics.ru
Changelog v3:
- Discard the symbols importing from the spi-dw-dma object since it's
  linked into the spi-dw-core module anyway thus having the same symbols
  namespace.
- Move the DW_SPI_CAP_DFS32 capability flag position fix to a separate
  patch.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Andy Shevchenko <andy@kernel.org>
Cc: linux-spi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

Serge Semin (7):
  spi: dw: Add a symbols namespace for the core module
  spi: dw: Discard redundant DW SSI Frame Formats enumeration
  spi: dw: Put the driver entities naming in order
  spi: dw: Convert to using the Bitfield access macros
  spi: dw: Introduce Synopsys IP-core versions interface
  spi: dw: Replace DWC_HSSI capability with IP-core version checker
  spi: dw: Define the capabilities in a continuous bit-flags set

 drivers/spi/spi-dw-bt1.c  |   9 +-
 drivers/spi/spi-dw-core.c | 175 ++++++++++++++++++++----------------
 drivers/spi/spi-dw-dma.c  |  55 ++++++------
 drivers/spi/spi-dw-mmio.c |  22 ++---
 drivers/spi/spi-dw-pci.c  |  60 ++++++-------
 drivers/spi/spi-dw.h      | 182 ++++++++++++++++++++------------------
 6 files changed, 271 insertions(+), 232 deletions(-)

Comments

Andy Shevchenko Nov. 16, 2021, 10:13 a.m. UTC | #1
On Mon, Nov 15, 2021 at 09:19:17PM +0300, Serge Semin wrote:
> Since the DW_SPI_CAP_DWC_HSSI capability has just been replaced with using
> the DW SSI IP-core versions interface, the DW SPI capability flags are now
> represented with a gap. Let's fix it by redefining the DW_SPI_CAP_DFS32
> macro to setting BIT(2) of the capabilities field.
> 
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>

Fine with me, thanks!
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> ---
> 
> Changelog v3:
> - This is a new patch unpinned from the previous one as of Andy
>   suggested.
> ---
>  drivers/spi/spi-dw.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/spi/spi-dw.h b/drivers/spi/spi-dw.h
> index 8334e6b35f89..d5ee5130601e 100644
> --- a/drivers/spi/spi-dw.h
> +++ b/drivers/spi/spi-dw.h
> @@ -32,7 +32,7 @@
>  /* DW SPI controller capabilities */
>  #define DW_SPI_CAP_CS_OVERRIDE		BIT(0)
>  #define DW_SPI_CAP_KEEMBAY_MST		BIT(1)
> -#define DW_SPI_CAP_DFS32		BIT(3)
> +#define DW_SPI_CAP_DFS32		BIT(2)
>  
>  /* Register offsets (Generic for both DWC APB SSI and DWC SSI IP-cores) */
>  #define DW_SPI_CTRLR0			0x00
> -- 
> 2.33.0
>
Serge Semin Nov. 16, 2021, 11:32 a.m. UTC | #2
On Tue, Nov 16, 2021 at 12:13:07PM +0200, Andy Shevchenko wrote:
> On Mon, Nov 15, 2021 at 09:19:17PM +0300, Serge Semin wrote:
> > Since the DW_SPI_CAP_DWC_HSSI capability has just been replaced with using
> > the DW SSI IP-core versions interface, the DW SPI capability flags are now
> > represented with a gap. Let's fix it by redefining the DW_SPI_CAP_DFS32
> > macro to setting BIT(2) of the capabilities field.
> > 
> > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> > Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> 

> Fine with me, thanks!
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

Great! Thanks to you too for very fast responses and thorough review.

-Sergey

> 
> > ---
> > 
> > Changelog v3:
> > - This is a new patch unpinned from the previous one as of Andy
> >   suggested.
> > ---
> >  drivers/spi/spi-dw.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/spi/spi-dw.h b/drivers/spi/spi-dw.h
> > index 8334e6b35f89..d5ee5130601e 100644
> > --- a/drivers/spi/spi-dw.h
> > +++ b/drivers/spi/spi-dw.h
> > @@ -32,7 +32,7 @@
> >  /* DW SPI controller capabilities */
> >  #define DW_SPI_CAP_CS_OVERRIDE		BIT(0)
> >  #define DW_SPI_CAP_KEEMBAY_MST		BIT(1)
> > -#define DW_SPI_CAP_DFS32		BIT(3)
> > +#define DW_SPI_CAP_DFS32		BIT(2)
> >  
> >  /* Register offsets (Generic for both DWC APB SSI and DWC SSI IP-cores) */
> >  #define DW_SPI_CTRLR0			0x00
> > -- 
> > 2.33.0
> > 
> 
> -- 
> With Best Regards,
> Andy Shevchenko
> 
>
Mark Brown Nov. 16, 2021, 5:48 p.m. UTC | #3
On Mon, 15 Nov 2021 21:19:10 +0300, Serge Semin wrote:
> I was going to submit a cleanup patchset for the DW SSI driver for a
> long time, but due to lack of free time couldn't make it so far.
> Nandhini's series [1] made me to proceed with this task so mate would
> finally have his patchset accepted and merged into the mainline kernel.
> 
> There are four cleanup patches here and three feature patches. In the
> framework of the former patches we convert the DW SPI driver to using
> module namespaces and provide a better code organization. In particular
> the second part concerns the methods and macros naming unification (using
> a unified prefixes of the code object names) and the CSR fields macro
> implementation using the bitfield helpers available in the kernel. The
> later patches introduce the DW SSI IP-core versions interface so it
> could be used for a version-specific features implementation. Nandhini
> will be mostly interested in the later patches in the framework of his
> series [1].
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/7] spi: dw: Add a symbols namespace for the core module
      commit: a62bacba81c477a6fd8f15da593ad02305a3d6da
[2/7] spi: dw: Discard redundant DW SSI Frame Formats enumeration
      commit: 21b6b3809b840ad3d3f0689aac227929c04e9518
[3/7] spi: dw: Put the driver entities naming in order
      commit: 725b0e3ea899ff1cb799756ade302e7bc13a8559
[4/7] spi: dw: Convert to using the Bitfield access macros
      commit: ec77c086dc5b2eb422ff588f91cc011137fa9ea3
[5/7] spi: dw: Introduce Synopsys IP-core versions interface
      commit: 2cc8d9227bbba7d6f3790a86f1ff0d665a75f3b8
[6/7] spi: dw: Replace DWC_HSSI capability with IP-core version checker
      commit: 2b8a47e0b6984b9795baa20ddcbd37e9ea9b2a91
[7/7] spi: dw: Define the capabilities in a continuous bit-flags set
      commit: 44ebcb44584f81d1d38fafb45cf57d651f44616e

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark