lkml.org 
[lkml]   [2020]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v3 00/15] mediatek: add support for MediaTek Ethernet MAC
    Date
    From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

    This adds support for the Ethernet Controller present on MediaTeK SoCs from
    the MT8* family.

    First we convert the existing DT bindings for the PERICFG controller to YAML
    and add a new compatible string for mt8516 variant of it. Then we add the DT
    bindings for the MAC.

    Next we do some cleanup of the mediatek ethernet drivers directory and update
    the devres documentation with existing networking devres helpers.

    The following patches introduce a resource managed variant of
    register_netdev() and move all networking devres helpers into a separate .c
    file.

    The largest patch in the series adds the actual new driver.

    The rest of the patches add DT fixups for the boards already supported
    upstream.

    v1 -> v2:
    - add a generic helper for retrieving the net_device associated with given
    private data
    - fix several typos in commit messages
    - remove MTK_MAC_VERSION and don't set the driver version
    - use NET_IP_ALIGN instead of a magic number (2) but redefine it as it defaults
    to 0 on arm64
    - don't manually turn the carrier off in mtk_mac_enable()
    - process TX cleanup in napi poll callback
    - configure pause in the adjust_link callback
    - use regmap_read_poll_timeout() instead of handcoding the polling
    - use devres_find() to verify that struct net_device is managed by devres in
    devm_register_netdev()
    - add a patch moving all networking devres helpers into net/devres.c
    - tweak the dma barriers: remove where unnecessary and add comments to the
    remaining barriers
    - don't reset internal counters when enabling the NIC
    - set the net_device's mtu size instead of checking the framesize in
    ndo_start_xmit() callback
    - fix a race condition in waking up the netif queue
    - don't emit log messages on OOM errors
    - use dma_set_mask_and_coherent()
    - use eth_hw_addr_random()
    - rework the receive callback so that we reuse the previous skb if unmapping
    fails, like we already do if skb allocation fails
    - rework hash table operations: add proper timeout handling and clear bits when
    appropriate

    v2 -> v3:
    - drop the patch adding priv_to_netdev() and store the netdev pointer in the
    driver private data
    - add an additional dma_wmb() after reseting the descriptor in
    mtk_mac_ring_pop_tail()
    - check the return value of dma_set_mask_and_coherent()
    - improve the DT bindings for mtk-eth-mac: make the reg property in the example
    use single-cell address and size, extend the description of the PERICFG
    phandle and document the mdio sub-node
    - add a patch converting the old .txt bindings for PERICFG to yaml
    - limit reading the DMA memory by storing the mapped addresses in the driver
    private structure
    - add a patch documenting the existing networking devres helpers

    Bartosz Golaszewski (15):
    dt-bindings: convert the binding document for mediatek PERICFG to yaml
    dt-bindings: add new compatible to mediatek,pericfg
    dt-bindings: net: add a binding document for MediaTek Ethernet MAC
    net: ethernet: mediatek: rename Kconfig prompt
    net: ethernet: mediatek: remove unnecessary spaces from Makefile
    Documentation: devres: add a missing section for networking helpers
    net: move devres helpers into a separate source file
    net: devres: define a separate devres structure for
    devm_alloc_etherdev()
    net: devres: provide devm_register_netdev()
    net: ethernet: mtk-eth-mac: new driver
    ARM64: dts: mediatek: add pericfg syscon to mt8516.dtsi
    ARM64: dts: mediatek: add the ethernet node to mt8516.dtsi
    ARM64: dts: mediatek: add an alias for ethernet0 for pumpkin boards
    ARM64: dts: mediatek: add ethernet pins for pumpkin boards
    ARM64: dts: mediatek: enable ethernet on pumpkin boards

    .../arm/mediatek/mediatek,pericfg.txt | 36 -
    .../arm/mediatek/mediatek,pericfg.yaml | 64 +
    .../bindings/net/mediatek,eth-mac.yaml | 89 +
    .../driver-api/driver-model/devres.rst | 5 +
    arch/arm64/boot/dts/mediatek/mt8516.dtsi | 17 +
    .../boot/dts/mediatek/pumpkin-common.dtsi | 34 +
    drivers/net/ethernet/mediatek/Kconfig | 8 +-
    drivers/net/ethernet/mediatek/Makefile | 3 +-
    drivers/net/ethernet/mediatek/mtk_eth_mac.c | 1578 +++++++++++++++++
    include/linux/netdevice.h | 2 +
    net/Makefile | 2 +-
    net/devres.c | 95 +
    net/ethernet/eth.c | 28 -
    13 files changed, 1894 insertions(+), 67 deletions(-)
    delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
    create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.yaml
    create mode 100644 Documentation/devicetree/bindings/net/mediatek,eth-mac.yaml
    create mode 100644 drivers/net/ethernet/mediatek/mtk_eth_mac.c
    create mode 100644 net/devres.c

    --
    2.25.0

    \
     
     \ /
      Last update: 2020-05-14 10:00    [W:4.069 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site