From: Marc Zyngier <maz@kernel.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: "DENG Qingfang" <dqfext@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Russell King" <linux@armlinux.org.uk>,
"Sean Wang" <sean.wang@mediatek.com>,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Vladimir Oltean" <olteanv@gmail.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Sergio Paracuellos" <sergio.paracuellos@gmail.com>,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
linux-staging@lists.linux.dev, devicetree@vger.kernel.org,
netdev@vger.kernel.org, "Weijie Gao" <weijie.gao@mediatek.com>,
"Chuanhong Guo" <gch981213@gmail.com>,
"René van Dorst" <opensource@vdorst.com>,
"Frank Wunderlich" <frank-w@public-files.de>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Greg Ungerer" <gerg@kernel.org>
Subject: Re: [RFC v4 net-next 2/4] net: dsa: mt7530: add interrupt support
Date: Tue, 13 Apr 2021 09:06:51 +0100 [thread overview]
Message-ID: <8735vuobfo.wl-maz@kernel.org> (raw)
In-Reply-To: <YHTgu1+6GZFdFgWJ@lunn.ch>
On Tue, 13 Apr 2021 01:07:23 +0100,
Andrew Lunn <andrew@lunn.ch> wrote:
>
> > > > +static void
> > > > +mt7530_setup_mdio_irq(struct mt7530_priv *priv)
> > > > +{
> > > > + struct dsa_switch *ds = priv->ds;
> > > > + int p;
> > > > +
> > > > + for (p = 0; p < MT7530_NUM_PHYS; p++) {
> > > > + if (BIT(p) & ds->phys_mii_mask) {
> > > > + unsigned int irq;
> > > > +
> > > > + irq = irq_create_mapping(priv->irq_domain, p);
> > >
> > > This seems odd. Why aren't the MDIO IRQs allocated on demand as
> > > endpoint attached to this interrupt controller are being probed
> > > individually? In general, doing this allocation upfront is an
> > > indication that there is some missing information in the DT to perform
> > > the discovery.
> >
> > This is what Andrew's mv88e6xxx does, actually. In addition, I also check
> > the phys_mii_mask to avoid creating mappings for unused ports.
>
> It can be done via DT, using the standard interrupt property, so long
> as you use of_mdiobus_register(np).
>
> But when you have an 7 port switch, and a nice simple mapping, port 0
> PHY using interrupt 0, you can save a lot of device tree boilerplate
> by doing it in code. And when you have 4 of these switches, it gets
> very boring adding all the DT to just wire up the interrupts 28
> interrupts.
I guess this is depends whether the most usual case is to have all
these interrupts being actively in use or not. Most interrupts only
use a limited portion of their interrupt space at any given time.
Allocating all interrupts and creating mappings upfront is a waste of
memory.
If the use case here is that all these interrupts will be wired and
used in most cases, then upfront allocation is probably not a problem.
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: "DENG Qingfang" <dqfext@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Russell King" <linux@armlinux.org.uk>,
"Sean Wang" <sean.wang@mediatek.com>,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Vladimir Oltean" <olteanv@gmail.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Sergio Paracuellos" <sergio.paracuellos@gmail.com>,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
linux-staging@lists.linux.dev, devicetree@vger.kernel.org,
netdev@vger.kernel.org, "Weijie Gao" <weijie.gao@mediatek.com>,
"Chuanhong Guo" <gch981213@gmail.com>,
"René van Dorst" <opensource@vdorst.com>,
"Frank Wunderlich" <frank-w@public-files.de>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Greg Ungerer" <gerg@kernel.org>
Subject: Re: [RFC v4 net-next 2/4] net: dsa: mt7530: add interrupt support
Date: Tue, 13 Apr 2021 09:06:51 +0100 [thread overview]
Message-ID: <8735vuobfo.wl-maz@kernel.org> (raw)
In-Reply-To: <YHTgu1+6GZFdFgWJ@lunn.ch>
On Tue, 13 Apr 2021 01:07:23 +0100,
Andrew Lunn <andrew@lunn.ch> wrote:
>
> > > > +static void
> > > > +mt7530_setup_mdio_irq(struct mt7530_priv *priv)
> > > > +{
> > > > + struct dsa_switch *ds = priv->ds;
> > > > + int p;
> > > > +
> > > > + for (p = 0; p < MT7530_NUM_PHYS; p++) {
> > > > + if (BIT(p) & ds->phys_mii_mask) {
> > > > + unsigned int irq;
> > > > +
> > > > + irq = irq_create_mapping(priv->irq_domain, p);
> > >
> > > This seems odd. Why aren't the MDIO IRQs allocated on demand as
> > > endpoint attached to this interrupt controller are being probed
> > > individually? In general, doing this allocation upfront is an
> > > indication that there is some missing information in the DT to perform
> > > the discovery.
> >
> > This is what Andrew's mv88e6xxx does, actually. In addition, I also check
> > the phys_mii_mask to avoid creating mappings for unused ports.
>
> It can be done via DT, using the standard interrupt property, so long
> as you use of_mdiobus_register(np).
>
> But when you have an 7 port switch, and a nice simple mapping, port 0
> PHY using interrupt 0, you can save a lot of device tree boilerplate
> by doing it in code. And when you have 4 of these switches, it gets
> very boring adding all the DT to just wire up the interrupts 28
> interrupts.
I guess this is depends whether the most usual case is to have all
these interrupts being actively in use or not. Most interrupts only
use a limited portion of their interrupt space at any given time.
Allocating all interrupts and creating mappings upfront is a waste of
memory.
If the use case here is that all these interrupts will be wired and
used in most cases, then upfront allocation is probably not a problem.
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2021-04-13 8:07 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-12 3:42 [RFC v4 net-next 0/4] MT7530 interrupt support DENG Qingfang
2021-04-12 3:42 ` DENG Qingfang
2021-04-12 3:42 ` [RFC v4 net-next 1/4] net: phy: add MediaTek PHY driver DENG Qingfang
2021-04-12 3:42 ` DENG Qingfang
2021-04-12 7:04 ` René van Dorst
2021-04-12 7:04 ` René van Dorst
2021-04-12 15:08 ` DENG Qingfang
2021-04-12 15:08 ` DENG Qingfang
2021-04-13 3:59 ` DENG Qingfang
2021-04-13 3:59 ` DENG Qingfang
2021-04-13 9:55 ` René van Dorst
2021-04-13 9:55 ` René van Dorst
2021-04-13 13:12 ` Russell King - ARM Linux admin
2021-04-13 13:12 ` Russell King - ARM Linux admin
2021-04-15 9:49 ` DENG Qingfang
2021-04-15 9:49 ` DENG Qingfang
2021-04-12 3:42 ` [RFC v4 net-next 2/4] net: dsa: mt7530: add interrupt support DENG Qingfang
2021-04-12 3:42 ` DENG Qingfang
2021-04-12 8:21 ` Marc Zyngier
2021-04-12 8:21 ` Marc Zyngier
2021-04-12 15:22 ` DENG Qingfang
2021-04-12 15:22 ` DENG Qingfang
2021-04-13 0:07 ` Andrew Lunn
2021-04-13 0:07 ` Andrew Lunn
2021-04-13 8:06 ` Marc Zyngier [this message]
2021-04-13 8:06 ` Marc Zyngier
2021-04-13 12:52 ` Andrew Lunn
2021-04-13 12:52 ` Andrew Lunn
2021-04-13 15:29 ` DENG Qingfang
2021-04-13 15:29 ` DENG Qingfang
2021-04-12 3:42 ` [RFC v4 net-next 3/4] dt-bindings: net: dsa: add MT7530 interrupt controller binding DENG Qingfang
2021-04-12 3:42 ` DENG Qingfang
2021-04-12 10:33 ` Kurt Kanzenbach
2021-04-12 10:33 ` Kurt Kanzenbach
2021-04-12 3:42 ` [RFC v4 net-next 4/4] staging: mt7621-dts: enable MT7530 interrupt controller DENG Qingfang
2021-04-12 3:42 ` DENG Qingfang
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=8735vuobfo.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=Landen.Chao@mediatek.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dqfext@gmail.com \
--cc=f.fainelli@gmail.com \
--cc=frank-w@public-files.de \
--cc=gch981213@gmail.com \
--cc=gerg@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux@armlinux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=opensource@vdorst.com \
--cc=robh+dt@kernel.org \
--cc=sean.wang@mediatek.com \
--cc=sergio.paracuellos@gmail.com \
--cc=tglx@linutronix.de \
--cc=vivien.didelot@gmail.com \
--cc=weijie.gao@mediatek.com \
/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 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.