MAC-PHY interrupt changed to level triggered interrupt
Status from this message: This series was applied to netdev/net.git (main)
Get series with b4
b4 am [email protected] change-id 20260531-level-trigger-8cb1a83af034Versions newest first
- v5 Latest4 patches 14 repliesApplied 4/4
- v44 patches 2 repliesSuperseded
- v32 patches 21 repliesSuperseded inferred link
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 | 2 patches | 9 replies | Superseded |
Changes in v5 from the cover letter
- Removed the extraneous FCS that came with the frame before passing to the stack
- Base commit was upadted on few patches to ensure that it is pointing to the correct commit ID.
- Commit messages have been updated to be more descriptive and gives more detail now.
- Couple of race conditions pointed out by AI review is fixed.
- Link to v4: https://lore.kernel.org/r/[email protected]
Patches in v5 All 4 applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | net: ethernet: oa_tc6: Interrupt is active low, level triggered.drivers/ | +76 | 13 replies | Applied |
| 2/4 | net: ethernet: oa_tc6: mdiobus->parent initialized with NULLdrivers/ | +1 | 0 replies | Applied |
| 3/4 | net: ethernet: oa_tc6: Remove FCS size in RX framedrivers/ | +11 | 0 replies | Applied |
| 4/4 | dt-bindings: net: updated interrupt type to be active low, level triggeredDocumentation/ | +1 | 1 reply | Applied |
Reviews trailers per patch
1 of 4 patches has a Reviewed-by or Acked-by.
| Patch | Krzysztof Kozlowski |
|---|---|
| 1/4 | |
| 2/4 | |
| 3/4 | |
| 4/4 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH net v5 0/4] MAC-PHY interrupt changed to level triggered interrupt
According to OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface specification, MAC-PHY interrupt is "active low, level triggered". The specification mentions about the conditions in which the IRQ is asserted and deasserted.
Bug is inadvertently introduced by treating the IRQ in the OA TC6 framework driver and in dt-binding YAML file as edge triggered.
With the changes to use level triggered interrupt, use of threaded irq is more efficient than the current method that has interrupt hander working with work queue.
This change of interrupt handler mechanism exposed couple of race conditions due to the fact that interrupts were not masked on protocol error. And pointers were not initialized with null after skbs are freed.
Changes are done in two files
- OA TC6 framework Ethernet driver
- YAML file for the vendor that already uses OA TC6 framework.
Maintainer for this driver is already informed and aware of these changes. Testing for these changes was done in onsemi's setup and found to be working.
Changes in v5:
- Removed the extraneous FCS that came with the frame before passing to the stack
- Base commit was upadted on few patches to ensure that it is pointing to the correct commit ID.
- Commit messages have been updated to be more descriptive and gives more detail now.
- Couple of race conditions pointed out by AI review is fixed.
- Link to v4: https://lore.kernel.org/r/[email protected]
Changes in v4:
- IRQ handler is changed to interrupt handler + wake up thread to interrupt handler + threaded irq. Threaded irq mechanism is better suited for level triggered interrupt. Because it can keep the interrupt disabled until interrupting conditions are handled by a handler thread.
- SPI data handling function is called again on EAGAIN error code as it indicates RX buffer overflow error, which requires draining the bad data chunks.
- Changed wakeup thread to threaded IRQ
- RX buffer overflow is handled before threaded irq returns
- Link to v3: https://lore.kernel.org/r/[email protected]
---
Selvamani Rajagopal (4):
net: ethernet: oa_tc6: Interrupt is active low, level triggered.
net: ethernet: oa_tc6: mdiobus->parent initialized with NULL
net: ethernet: oa_tc6: Remove FCS size in RX frame
dt-bindings: net: updated interrupt type to be active low, level triggered
.../devicetree/bindings/net/microchip,lan8650.yaml | 2 +- drivers/net/ethernet/oa_tc6.c | 140 +++++++++++++-------- 2 files changed, 89 insertions(+), 53 deletions(-)
---
base-commit: 22e2036479cb77df6281ebbd376ae6c330774790
change-id: 20260531-level-trigger-8cb1a83af034
Best regards,
Signature · 1 line
Selvamani Rajagopal <[email protected]>