Thread (32 messages) 32 messages, 4 authors, 2020-10-31

Re: [PATCH net-next 00/19] net: phy: add support for shared interrupts (part 1)

From: Heiner Kallweit <hkallweit1@gmail.com>
Date: 2020-10-31 10:18:30
Also in: lkml

On 31.10.2020 00:36, Andrew Lunn wrote:
quoted
quoted
- Every PHY driver gains a .handle_interrupt() implementation that, for
  the most part, would look like below:

	irq_status = phy_read(phydev, INTR_STATUS);
	if (irq_status < 0) {
		phy_error(phydev);
		return IRQ_NONE;
	}

	if (irq_status == 0)
Here I have a concern, bits may be set even if the respective interrupt
source isn't enabled. Therefore we may falsely blame a device to have
triggered the interrupt. irq_status should be masked with the actually
enabled irq source bits.
Hi Heiner
Hi Andrew,
I would say that is a driver implementation detail, for each driver to
handle how it needs to handle it. I've seen some hardware where the
interrupt status is already masked with the interrupt enabled
bits. I've soon other hardware where it is not.
Sure, I just wanted to add the comment before others simply copy and
paste this (pseudo) code. And in patch 9 (aquantia) and 18 (realtek)
it is used as is. And IIRC at least the Aquantia PHY doesn't mask
the interrupt status.
For example code, what is listed above is O.K. The real implementation
in a driver need knowledge of the hardware.

      Andrew
.
Heiner
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help