All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v8 00/11] stmmac: Add Loongson platform support
@ 2024-01-30  8:43 Yanteng Si
  2024-01-30  8:43 ` [PATCH net-next v8 01/11] net: stmmac: Add multi-channel support Yanteng Si
                   ` (12 more replies)
  0 siblings, 13 replies; 97+ messages in thread
From: Yanteng Si @ 2024-01-30  8:43 UTC (permalink / raw)
  To: andrew, hkallweit1, peppe.cavallaro, alexandre.torgue, joabreu,
	fancer.lancer
  Cc: Yanteng Si, Jose.Abreu, chenhuacai, linux, guyinggang, netdev,
	chris.chenfeiyang

v8:
* The biggest change is according to Serge's comment in the previous
  edition:
   Seeing the patch in the current state would overcomplicate the generic
   code and the only functions you need to update are
   dwmac_dma_interrupt()
   dwmac1000_dma_init_channel()
   you can have these methods re-defined with all the Loongson GNET
   specifics in the low-level platform driver (dwmac-loongson.c). After
   that you can just override the mac_device_info.dma pointer with a
   fixed stmmac_dma_ops descriptor. Here is what should be done for that:

   1. Keep the Patch 4/9 with my comments fixed. First it will be partly
   useful for your GNET device. Second in general it's a correct
   implementation of the normal DW GMAC v3.x multi-channels feature and
   will be useful for the DW GMACs with that feature enabled.

   2. Create the Loongson GNET-specific
   stmmac_dma_ops.dma_interrupt()
   stmmac_dma_ops.init_chan()
   methods in the dwmac-loongson.c driver. Don't forget to move all the
   Loongson-specific macros from dwmac_dma.h to dwmac-loongson.c.

   3. Create a Loongson GNET-specific platform setup method with the next
   semantics:
      + allocate stmmac_dma_ops instance and initialize it with
        dwmac1000_dma_ops.
      + override the stmmac_dma_ops.{dma_interrupt, init_chan} with
        the pointers to the methods defined in 2.
      + allocate mac_device_info instance and initialize the
        mac_device_info.dma field with a pointer to the new
        stmmac_dma_ops instance.
      + call dwmac1000_setup() or initialize mac_device_info in a way
        it's done in dwmac1000_setup() (the later might be better so you
        wouldn't need to export the dwmac1000_setup() function).
      + override stmmac_priv.synopsys_id with a correct value.

   4. Initialize plat_stmmacenet_data.setup() with the pointer to the
   method created in 3.

* Others:
  Re-split the patch.
  Passed checkpatch.pl test.

v7:
* Refer to andrew's suggestion:
  - Add DMA_INTR_ENA_NIE_RX and DMA_INTR_ENA_NIE_TX #define's, etc.

* Others:
  - Using --subject-prefix="PATCH net-next vN" to indicate that the
    patches are for the networking tree.
  - Rebase to the latest networking tree:
    <git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git>


v6:

* Refer to Serge's suggestion:
  - Add new platform feature flag:
    include/linux/stmmac.h:
    +#define STMMAC_FLAG_HAS_LGMAC			BIT(13)

  - Add the IRQs macros specific to the Loongson Multi-channels GMAC:
     drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h:
     +#define DMA_INTR_ENA_NIE_LOONGSON 0x00060000      /* ...*/
     #define DMA_INTR_ENA_NIE 0x00010000	/* Normal Summary */
     ...

  - Drop all of redundant changes that don't require the
    prototypes being converted to accepting the stmmac_priv
    pointer.

* Refer to andrew's suggestion:
  - Drop white space changes.
  - break patch up into lots of smaller parts.
     Some small patches have been put into another series as a preparation
     see <https://lore.kernel.org/loongarch/cover.1702289232.git.siyanteng@loongson.cn/T/#t>
     
     *note* : This series of patches relies on the three small patches above.
* others
  - Drop irq_flags changes.
  - Changed patch order.


v4 -> v5:

* Remove an ugly and useless patch (fix channel number).
* Remove the non-standard dma64 driver code, and also remove
  the HWIF entries, since the associated custom callbacks no
  longer exist.
* Refer to Serge's suggestion: Update the dwmac1000_dma.c to
  support the multi-DMA-channels controller setup.

See:
v4: <https://lore.kernel.org/loongarch/cover.1692696115.git.chenfeiyang@loongson.cn/>
v3: <https://lore.kernel.org/loongarch/cover.1691047285.git.chenfeiyang@loongson.cn/>
v2: <https://lore.kernel.org/loongarch/cover.1690439335.git.chenfeiyang@loongson.cn/>
v1: <https://lore.kernel.org/loongarch/cover.1689215889.git.chenfeiyang@loongson.cn/>


Yanteng Si (11):
  net: stmmac: Add multi-channel support
  net: stmmac: dwmac-loongson: Refactor code for loongson_dwmac_probe()
  net: stmmac: dwmac-loongson: Add full PCI support
  net: stmmac: dwmac-loongson: Move irq config to loongson_gmac_config
  net: stmmac: dwmac-loongson: Add Loongson-specific register
    definitions
  net: stmmac: dwmac-loongson: Add GNET support
  net: stmmac: dwmac-loongson: Add multi-channel supports for loongson
  net: stmmac: dwmac-loongson: Fix MAC speed for GNET
  net: stmmac: dwmac-loongson: Fix half duplex
  net: stmmac: dwmac-loongson: Disable flow control for GMAC
  net: stmmac: dwmac-loongson: Disable coe for some Loongson GNET

 .../ethernet/stmicro/stmmac/dwmac-loongson.c  | 561 ++++++++++++++++--
 .../net/ethernet/stmicro/stmmac/dwmac-sun8i.c |   2 +-
 .../ethernet/stmicro/stmmac/dwmac1000_dma.c   |  36 +-
 .../net/ethernet/stmicro/stmmac/dwmac_dma.h   |  19 +-
 .../net/ethernet/stmicro/stmmac/dwmac_lib.c   |  32 +-
 drivers/net/ethernet/stmicro/stmmac/hwif.h    |   2 +-
 .../ethernet/stmicro/stmmac/stmmac_ethtool.c  |   6 +
 .../net/ethernet/stmicro/stmmac/stmmac_main.c |  15 +-
 include/linux/stmmac.h                        |   3 +
 9 files changed, 582 insertions(+), 94 deletions(-)

-- 
2.31.4


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

end of thread, other threads:[~2024-04-05 11:13 UTC | newest]

Thread overview: 97+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-30  8:43 [PATCH net-next v8 00/11] stmmac: Add Loongson platform support Yanteng Si
2024-01-30  8:43 ` [PATCH net-next v8 01/11] net: stmmac: Add multi-channel support Yanteng Si
2024-02-02 12:30   ` Simon Horman
2024-02-04  8:43     ` Yanteng Si
2024-02-04 23:28   ` Serge Semin
2024-02-06  9:02     ` Yanteng Si
2024-02-06  9:48       ` Serge Semin
2024-02-19 11:02     ` Yanteng Si
2024-02-21 13:48       ` Serge Semin
     [not found]         ` <ee2ffb6a-fe34-47a1-9734-b0e6697a5f09@loongson.cn>
2024-03-13  9:10           ` Yanteng Si
2024-03-19 14:18             ` Serge Semin
2024-03-20  9:47               ` Yanteng Si
2024-03-20  9:55               ` Russell King (Oracle)
2024-03-20 10:51                 ` Yanteng Si
2024-02-05  1:11   ` Serge Semin
2024-01-30  8:43 ` [PATCH net-next v8 02/11] net: stmmac: dwmac-loongson: Refactor code for loongson_dwmac_probe() Yanteng Si
2024-02-02 12:33   ` Simon Horman
2024-02-04  8:47     ` Yanteng Si
2024-02-05 14:43   ` Serge Semin
2024-04-05 11:13     ` Yanteng Si
2024-01-30  8:43 ` [PATCH net-next v8 03/11] net: stmmac: dwmac-loongson: Add full PCI support Yanteng Si
2024-02-05 16:49   ` Serge Semin
2024-02-21 10:08     ` Yanteng Si
2024-01-30  8:43 ` [PATCH net-next v8 04/11] net: stmmac: dwmac-loongson: Move irq config to loongson_gmac_config Yanteng Si
2024-02-05 17:01   ` Serge Semin
2024-03-13  8:14     ` Yanteng Si
2024-03-19 13:43       ` Serge Semin
2024-03-20 10:12         ` Yanteng Si
2024-01-30  8:48 ` [PATCH net-next v8 05/11] net: stmmac: dwmac-loongson: Add Loongson-specific register definitions Yanteng Si
2024-02-05 18:17   ` Serge Semin
2024-02-22 13:39     ` Yanteng Si
2024-02-22 13:59       ` Serge Semin
2024-02-23  8:16         ` Yanteng Si
2024-02-23 18:50           ` Serge Semin
2024-03-07 13:15             ` Yanteng Si
2024-03-07 13:44               ` Serge Semin
2024-03-08  4:05                 ` Yanteng Si
2024-01-30  8:48 ` [PATCH net-next v8 06/11] net: stmmac: dwmac-loongson: Add GNET support Yanteng Si
2024-02-05 20:58   ` Serge Semin
     [not found]     ` <d0e56c9b-9549-4061-8e44-2504b6b96897@loongson.cn>
2024-03-14 13:12       ` Yanteng Si
2024-03-19 15:03         ` Serge Semin
2024-03-20 10:23           ` Yanteng Si
2024-03-20 12:18             ` Serge Semin
2024-03-21  9:13           ` Yanteng Si
2024-03-21 14:55             ` Andrew Lunn
2024-03-28 11:41               ` Yanteng Si
2024-03-22 19:09             ` Serge Semin
2024-01-30  8:48 ` [PATCH net-next v8 07/11] net: stmmac: dwmac-loongson: Add multi-channel supports for loongson Yanteng Si
2024-02-05 21:28   ` Serge Semin
     [not found]     ` <e1c7b5fa-f3f8-4aa3-af4d-ca72b54d9c8c@loongson.cn>
2024-03-14 13:13       ` Yanteng Si
2024-03-19 15:53         ` Serge Semin
2024-03-22 10:36           ` Yanteng Si
2024-03-22 18:47             ` Serge Semin
2024-04-03  8:09               ` Yanteng Si
2024-04-03 12:03                 ` Serge Semin
2024-04-05 10:17                   ` Yanteng Si
2024-04-03  8:23           ` Yanteng Si
2024-01-30  8:48 ` [PATCH net-next v8 08/11] net: stmmac: dwmac-loongson: Fix MAC speed for GNET Yanteng Si
2024-02-05 21:55   ` Serge Semin
     [not found]     ` <4873ea5a-1b23-4512-b039-0a9198b53adf@loongson.cn>
2024-03-14 13:18       ` Yanteng Si
2024-03-19 17:02         ` Serge Semin
2024-03-20 10:42           ` Yanteng Si
2024-03-21  9:29           ` Yanteng Si
2024-03-21 15:02             ` Andrew Lunn
2024-03-21 15:19               ` Russell King (Oracle)
2024-03-21 15:38                 ` Andrew Lunn
2024-03-26 12:32                   ` Yanteng Si
2024-03-26 12:02               ` Yanteng Si
2024-03-26 12:21                 ` Andrew Lunn
2024-03-27  2:41                   ` Yanteng Si
2024-03-27 12:47                     ` Andrew Lunn
2024-03-28 10:08                       ` Yanteng Si
2024-01-30  8:49 ` [PATCH net-next v8 09/11] net: stmmac: dwmac-loongson: Fix half duplex Yanteng Si
2024-02-05 21:58   ` Serge Semin
2024-02-05 22:06     ` Serge Semin
2024-03-13  9:24       ` Yanteng Si
2024-03-13 10:21         ` Russell King (Oracle)
2024-03-14 13:08           ` Yanteng Si
2024-03-20 10:10             ` Serge Semin
2024-03-20 10:37               ` Russell King (Oracle)
2024-03-20 12:50                 ` Russell King (Oracle)
2024-03-20 14:22                   ` Russell King (Oracle)
2024-03-22 18:07                 ` Serge Semin
2024-03-22 19:56                   ` Russell King (Oracle)
2024-04-03 12:37                     ` Serge Semin
2024-04-05 10:48                       ` Yanteng Si
2024-01-30  8:49 ` [PATCH net-next v8 10/11] net: stmmac: dwmac-loongson: Disable flow control for GMAC Yanteng Si
2024-02-05 22:13   ` Serge Semin
2024-03-13  9:25     ` Yanteng Si
2024-01-30  8:49 ` [PATCH net-next v8 11/11] net: stmmac: dwmac-loongson: Disable coe for some Loongson GNET Yanteng Si
2024-02-05 22:18   ` Serge Semin
2024-03-13  9:52     ` Yanteng Si
2024-03-13 10:19       ` Yanteng Si
2024-03-20 11:24         ` Serge Semin
2024-01-30  9:57 ` [PATCH net-next v8 00/11] stmmac: Add Loongson platform support Serge Semin
2024-01-31  2:10 ` Jakub Kicinski
2024-01-31  9:20   ` Yanteng Si

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.