From: "Łukasz Stelmach" <l.stelmach@samsung.com>
To: Andrew Lunn <andrew@lunn.ch>,
jim.cromie@gmail.com, Heiner Kallweit <hkallweit1@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Rob Herring <robh+dt@kernel.org>, Kukjin Kim <kgene@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Russell King <linux@armlinux.org.uk>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org
Cc: "Bartłomiej Żolnierkiewicz" <b.zolnierkie@samsung.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Łukasz Stelmach" <l.stelmach@samsung.com>
Subject: [PATCH net-next v14 0/3] AX88796C SPI Ethernet Adapter
Date: Mon, 19 Jul 2021 21:28:49 +0200 [thread overview]
Message-ID: <20210719192852.27404-1-l.stelmach@samsung.com> (raw)
In-Reply-To: CGME20210719192908eucas1p230d8bc4d30fc1da8d9c9e162b5fc0bff@eucas1p2.samsung.com
This is a driver for AX88796C Ethernet Adapter connected in SPI mode as
found on ARTIK5 evaluation board. The driver has been ported from a
v3.10.9 vendor kernel for ARTIK5 board.
Changes in v14:
- rebased onto net-next 5.14-rc1 (0d6835ffe50c)
Changes in v13:
- rebased onto net-next (ebbf5fcb94a7)
- minor fix: use u64_stats_update_{begin_irqsave,end_irqrestore}
- minor fix: initialize the syncp lock
Changes in v12:
- rebased to net-next-5.13
- added missing spaces after commas
- corrected indentation
Changes in v11:
- changed stat counters to 64-bit
- replaced WARN_ON(!mutex_is_locked()) with lockdep_assert_held()
- replaced ax88796c_free_skb_queue() with __skb_queue_purge()
- added cancel_work_sync() for ax_work
- removed unused fields of struct skb_data
- replaced MAX() with max() from minmax.h
- rebased to net-next (resend)
Changes in v10:
- removed unused variable
Changes in v9:
- used pskb_extend_head()
- used ethtool private flags instead of tunables to switch SPI
compression
- changed
- alloc_skb() to netdev_alloc(skb)
- __pskb_trim() to pskb_trim()
- removed:
- chages to skb->truesize
- unnecessary casting to short
- return f() in a void function
- IRQF_SHARED flags
- unnecessary memset(0) of kzalloc()ed buffer
- unused endiannes detection
- unnecessary __packed attribute for some structures
- added:
- temporary variable in AX_WRITE/READ sequences
- missin mutex_unlock() in error paths
- axspi_read_reg() returns a constant value in case of an error
Changes in v8:
- fixed the entry in MAINTAINERS
- removed unnecessary netif_err()
- changed netif_rx() to netif_rx_ni() for code running in a process
context
- added explicit type casting for ~BIT()
Changes in v7:
- removed duplicate code
- moved a constant buffer definition away from a header file
Changes in v6:
- fixed typos in Kconfig
- checked argument value in ax88796c_set_tunable
- updated tags in commit messages
Changes in v5:
- coding style (local variable declarations)
- added spi0 node in the DT binding example and removed
interrupt-parent
- removed comp module parameter
- added CONFIG_SPI_AX88796C_COMPRESSION option to set the initial
state of SPI compression
- introduced new ethtool tunable "spi-compression" to controll SPI
transfer compression
- removed unused fields in struct ax88796c_device
- switched from using buffers allocated on stack for SPI transfers
to DMA safe ones embedded in struct ax_spi and allocated with
kmalloc()
Changes in v4:
- fixed compilation problems in asix,ax88796c.yaml and in
ax88796c_main.c introduced in v3
Changes in v3:
- modify vendor-prefixes.yaml in a separate patch
- fix several problems in the dt binding
- removed unnecessary descriptions and properties
- changed the order of entries
- fixed problems with missing defines in the example
- change (1 << N) to BIT(N), left a few (0 << N)
- replace ax88796c_get_link(), ax88796c_get_link_ksettings(),
ax88796c_set_link_ksettings(), ax88796c_nway_reset(),
ax88796c_set_mac_address() with appropriate kernel functions.
- disable PHY auto-polling in MAC and use PHYLIB to track the state
of PHY and configure MAC
- propagate return values instead of returning constants in several
places
- add WARN_ON() for unlocked mutex
- remove local work queue and use the system_wq
- replace phy_connect_direct() with phy_connect() and move
devm_register_netdev() to the end of ax88796c_probe()
(Unlike phy_connect_direct() phy_connect() does not crash if the
network device isn't registered yet.)
- remove error messages on ENOMEM
- move free_irq() to the end of ax88796c_close() to avoid race
condition
- implement flow-control
Changes in v2:
- use phylib
- added DT bindings
- moved #includes to *.c files
- used mutex instead of a semaphore for locking
- renamed some constants
- added error propagation for several functions
- used ethtool for dumping registers
- added control over checksum offloading
- remove vendor specific PM
- removed macaddr module parameter and added support for reading a MAC
address from platform data (e.g. DT)
- removed dependency on SPI from NET_VENDOR_ASIX
- added an entry in the MAINTAINERS file
- simplified logging with appropriate netif_* and netdev_* helpers
- lots of style fixes
Łukasz Stelmach (3):
dt-bindings: vendor-prefixes: Add asix prefix
dt-bindings: net: Add bindings for AX88796C SPI Ethernet Adapter
net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver
.../bindings/net/asix,ax88796c.yaml | 73 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
MAINTAINERS | 6 +
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/asix/Kconfig | 35 +
drivers/net/ethernet/asix/Makefile | 6 +
drivers/net/ethernet/asix/ax88796c_ioctl.c | 239 ++++
drivers/net/ethernet/asix/ax88796c_ioctl.h | 26 +
drivers/net/ethernet/asix/ax88796c_main.c | 1149 +++++++++++++++++
drivers/net/ethernet/asix/ax88796c_main.h | 568 ++++++++
drivers/net/ethernet/asix/ax88796c_spi.c | 115 ++
drivers/net/ethernet/asix/ax88796c_spi.h | 69 +
13 files changed, 2290 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/asix,ax88796c.yaml
create mode 100644 drivers/net/ethernet/asix/Kconfig
create mode 100644 drivers/net/ethernet/asix/Makefile
create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.h
create mode 100644 drivers/net/ethernet/asix/ax88796c_main.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_main.h
create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.h
--
2.26.2
next parent reply other threads:[~2021-07-19 22:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20210719192908eucas1p230d8bc4d30fc1da8d9c9e162b5fc0bff@eucas1p2.samsung.com>
2021-07-19 19:28 ` Łukasz Stelmach [this message]
[not found] ` <CGME20210719192913eucas1p1dfd7dff3ca85db20ce638c9355b41ada@eucas1p1.samsung.com>
2021-07-19 19:28 ` [PATCH net-next v14 1/3] dt-bindings: vendor-prefixes: Add asix prefix Łukasz Stelmach
[not found] ` <CGME20210719192913eucas1p22ebe775ac3f40af0184a6569e6e869f3@eucas1p2.samsung.com>
2021-07-19 19:28 ` [PATCH net-next v14 2/3] dt-bindings: net: Add bindings for AX88796C SPI Ethernet Adapter Łukasz Stelmach
[not found] ` <CGME20210719192913eucas1p2f7b31eacf8c77f8c86bf5a5ca88310b9@eucas1p2.samsung.com>
2021-07-19 19:28 ` [PATCH net-next v14 3/3] net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver Łukasz Stelmach
2021-07-20 10:36 ` Jakub Kicinski
[not found] ` <CGME20210720135031eucas1p1f83f554ff6e98ff719505e0d0cce7aaa@eucas1p1.samsung.com>
2021-07-20 13:50 ` Lukasz Stelmach
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=20210719192852.27404-1-l.stelmach@samsung.com \
--to=l.stelmach@samsung.com \
--cc=andrew@lunn.ch \
--cc=b.zolnierkie@samsung.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=hkallweit1@gmail.com \
--cc=jim.cromie@gmail.com \
--cc=kgene@kernel.org \
--cc=krzk@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@kernel.org \
/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 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).