From: "Swee, Leong Ching" <leong.ching.swee@intel.com> To: Serge Semin <fancer.lancer@gmail.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>, Alexandre Torgue <alexandre.torgue@foss.st.com>, Jose Abreu <joabreu@synopsys.com>, "David S . Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, "Jakub Kicinski" <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Giuseppe Cavallaro <peppe.cavallaro@st.com>, "linux-stm32@st-md-mailman.stormreply.com" <linux-stm32@st-md-mailman.stormreply.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>, Teoh Ji Sheng <ji.sheng.teoh@intel.com> Subject: RE: [PATCH net-next v2 4/4] net: stmmac: Use interrupt mode INTM=1 for per channel irq Date: Wed, 10 Jan 2024 05:43:26 +0000 [thread overview] Message-ID: <CH0PR11MB5490793807F66E011A31D1A3CF692@CH0PR11MB5490.namprd11.prod.outlook.com> (raw) In-Reply-To: <jvnoq2jo3dzsw3vuqzathjuyox3xipaullzeaur3ppzlmtux5k@v64tckj7pvo2> > -----Original Message----- > From: Serge Semin <fancer.lancer@gmail.com> > Sent: Monday, January 8, 2024 4:52 AM > To: Swee, Leong Ching <leong.ching.swee@intel.com> > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>; Alexandre Torgue > <alexandre.torgue@foss.st.com>; Jose Abreu <joabreu@synopsys.com>; > David S . Miller <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > <pabeni@redhat.com>; Rob Herring <robh+dt@kernel.org>; Krzysztof > Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley > <conor+dt@kernel.org>; Giuseppe Cavallaro <peppe.cavallaro@st.com>; > linux-stm32@st-md-mailman.stormreply.com; linux-arm- > kernel@lists.infradead.org; linux-kernel@vger.kernel.org; > netdev@vger.kernel.org; devicetree@vger.kernel.org; Teoh Ji Sheng > <ji.sheng.teoh@intel.com> > Subject: Re: [PATCH net-next v2 4/4] net: stmmac: Use interrupt mode > INTM=1 for per channel irq > > On Fri, Jan 05, 2024 at 03:09:25PM +0800, Leong Ching Swee wrote: > > From: Swee Leong Ching <leong.ching.swee@intel.com> > > > > Enable per DMA channel interrupt that uses shared peripheral interrupt > > (SPI), so only per channel TX and RX intr (TI/RI) are handled by TX/RX > > ISR without calling common interrupt ISR. > > > > Signed-off-by: Teoh Ji Sheng <ji.sheng.teoh@intel.com> > > Signed-off-by: Swee Leong Ching <leong.ching.swee@intel.com> > > --- > > .../net/ethernet/stmicro/stmmac/dwxgmac2.h | 3 ++ > > .../ethernet/stmicro/stmmac/dwxgmac2_dma.c | 32 +++++++++++------- > - > > 2 files changed, 22 insertions(+), 13 deletions(-) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > index 207ff1799f2c..04bf731cb7ea 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > @@ -346,6 +346,9 @@ > > /* DMA Registers */ > > #define XGMAC_DMA_MODE 0x00003000 > > #define XGMAC_SWR BIT(0) > > > +#define XGMAC_DMA_MODE_INTM_MASK GENMASK(13, 12) > > +#define XGMAC_DMA_MODE_INTM_SHIFT 12 > > +#define XGMAC_DMA_MODE_INTM_MODE1 0x1 > > AFAICS the DW XGMAC module doesn't maintain a convention of having the > CSR fields macro names prefixed with the CSR name. Let's drop the > DMA_MODE suffix from the macro name then: > +#define XGMAC_INTM_MASK GENMASK(13, 12) > +#define XGMAC_INTM_SHIFT 12 > +#define XGMAC_INTM_MODE1 0x1 > to have it unified with the rest of the macros in dwxgmac2.h. > > Other than that the change looks good. Thanks. > > -Serge(y) > Thanks. Will rename the macros in v3. > > #define XGMAC_DMA_SYSBUS_MODE 0x00003004 > > #define XGMAC_WR_OSR_LMT GENMASK(29, 24) > > #define XGMAC_WR_OSR_LMT_SHIFT 24 > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > index 3cde695fec91..dcb9f094415d 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > @@ -31,6 +31,13 @@ static void dwxgmac2_dma_init(void __iomem > *ioaddr, > > value |= XGMAC_EAME; > > > > writel(value, ioaddr + XGMAC_DMA_SYSBUS_MODE); > > + > > + if (dma_cfg->multi_irq_en) { > > + value = readl(ioaddr + XGMAC_DMA_MODE); > > + value &= ~XGMAC_DMA_MODE_INTM_MASK; > > + value |= (XGMAC_DMA_MODE_INTM_MODE1 << > XGMAC_DMA_MODE_INTM_SHIFT); > > + writel(value, ioaddr + XGMAC_DMA_MODE); > > + } > > } > > > > static void dwxgmac2_dma_init_chan(struct stmmac_priv *priv, @@ > > -365,19 +372,18 @@ static int dwxgmac2_dma_interrupt(struct > stmmac_priv *priv, > > } > > > > /* TX/RX NORMAL interrupts */ > > - if (likely(intr_status & XGMAC_NIS)) { > > - if (likely(intr_status & XGMAC_RI)) { > > - u64_stats_update_begin(&rxq_stats->syncp); > > - rxq_stats->rx_normal_irq_n++; > > - u64_stats_update_end(&rxq_stats->syncp); > > - ret |= handle_rx; > > - } > > - if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) { > > - u64_stats_update_begin(&txq_stats->syncp); > > - txq_stats->tx_normal_irq_n++; > > - u64_stats_update_end(&txq_stats->syncp); > > - ret |= handle_tx; > > - } > > + if (likely(intr_status & XGMAC_RI)) { > > + u64_stats_update_begin(&rxq_stats->syncp); > > + rxq_stats->rx_normal_irq_n++; > > + u64_stats_update_end(&rxq_stats->syncp); > > + ret |= handle_rx; > > + } > > + > > + if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) { > > + u64_stats_update_begin(&txq_stats->syncp); > > + txq_stats->tx_normal_irq_n++; > > + u64_stats_update_end(&txq_stats->syncp); > > + ret |= handle_tx; > > } > > > > /* Clear interrupts */ > > -- > > 2.34.1 > > > >
WARNING: multiple messages have this Message-ID (diff)
From: "Swee, Leong Ching" <leong.ching.swee@intel.com> To: Serge Semin <fancer.lancer@gmail.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>, Alexandre Torgue <alexandre.torgue@foss.st.com>, Jose Abreu <joabreu@synopsys.com>, "David S . Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, "Jakub Kicinski" <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Giuseppe Cavallaro <peppe.cavallaro@st.com>, "linux-stm32@st-md-mailman.stormreply.com" <linux-stm32@st-md-mailman.stormreply.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>, Teoh Ji Sheng <ji.sheng.teoh@intel.com> Subject: RE: [PATCH net-next v2 4/4] net: stmmac: Use interrupt mode INTM=1 for per channel irq Date: Wed, 10 Jan 2024 05:43:26 +0000 [thread overview] Message-ID: <CH0PR11MB5490793807F66E011A31D1A3CF692@CH0PR11MB5490.namprd11.prod.outlook.com> (raw) In-Reply-To: <jvnoq2jo3dzsw3vuqzathjuyox3xipaullzeaur3ppzlmtux5k@v64tckj7pvo2> > -----Original Message----- > From: Serge Semin <fancer.lancer@gmail.com> > Sent: Monday, January 8, 2024 4:52 AM > To: Swee, Leong Ching <leong.ching.swee@intel.com> > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>; Alexandre Torgue > <alexandre.torgue@foss.st.com>; Jose Abreu <joabreu@synopsys.com>; > David S . Miller <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > <pabeni@redhat.com>; Rob Herring <robh+dt@kernel.org>; Krzysztof > Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley > <conor+dt@kernel.org>; Giuseppe Cavallaro <peppe.cavallaro@st.com>; > linux-stm32@st-md-mailman.stormreply.com; linux-arm- > kernel@lists.infradead.org; linux-kernel@vger.kernel.org; > netdev@vger.kernel.org; devicetree@vger.kernel.org; Teoh Ji Sheng > <ji.sheng.teoh@intel.com> > Subject: Re: [PATCH net-next v2 4/4] net: stmmac: Use interrupt mode > INTM=1 for per channel irq > > On Fri, Jan 05, 2024 at 03:09:25PM +0800, Leong Ching Swee wrote: > > From: Swee Leong Ching <leong.ching.swee@intel.com> > > > > Enable per DMA channel interrupt that uses shared peripheral interrupt > > (SPI), so only per channel TX and RX intr (TI/RI) are handled by TX/RX > > ISR without calling common interrupt ISR. > > > > Signed-off-by: Teoh Ji Sheng <ji.sheng.teoh@intel.com> > > Signed-off-by: Swee Leong Ching <leong.ching.swee@intel.com> > > --- > > .../net/ethernet/stmicro/stmmac/dwxgmac2.h | 3 ++ > > .../ethernet/stmicro/stmmac/dwxgmac2_dma.c | 32 +++++++++++------- > - > > 2 files changed, 22 insertions(+), 13 deletions(-) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > index 207ff1799f2c..04bf731cb7ea 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h > > @@ -346,6 +346,9 @@ > > /* DMA Registers */ > > #define XGMAC_DMA_MODE 0x00003000 > > #define XGMAC_SWR BIT(0) > > > +#define XGMAC_DMA_MODE_INTM_MASK GENMASK(13, 12) > > +#define XGMAC_DMA_MODE_INTM_SHIFT 12 > > +#define XGMAC_DMA_MODE_INTM_MODE1 0x1 > > AFAICS the DW XGMAC module doesn't maintain a convention of having the > CSR fields macro names prefixed with the CSR name. Let's drop the > DMA_MODE suffix from the macro name then: > +#define XGMAC_INTM_MASK GENMASK(13, 12) > +#define XGMAC_INTM_SHIFT 12 > +#define XGMAC_INTM_MODE1 0x1 > to have it unified with the rest of the macros in dwxgmac2.h. > > Other than that the change looks good. Thanks. > > -Serge(y) > Thanks. Will rename the macros in v3. > > #define XGMAC_DMA_SYSBUS_MODE 0x00003004 > > #define XGMAC_WR_OSR_LMT GENMASK(29, 24) > > #define XGMAC_WR_OSR_LMT_SHIFT 24 > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > index 3cde695fec91..dcb9f094415d 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > @@ -31,6 +31,13 @@ static void dwxgmac2_dma_init(void __iomem > *ioaddr, > > value |= XGMAC_EAME; > > > > writel(value, ioaddr + XGMAC_DMA_SYSBUS_MODE); > > + > > + if (dma_cfg->multi_irq_en) { > > + value = readl(ioaddr + XGMAC_DMA_MODE); > > + value &= ~XGMAC_DMA_MODE_INTM_MASK; > > + value |= (XGMAC_DMA_MODE_INTM_MODE1 << > XGMAC_DMA_MODE_INTM_SHIFT); > > + writel(value, ioaddr + XGMAC_DMA_MODE); > > + } > > } > > > > static void dwxgmac2_dma_init_chan(struct stmmac_priv *priv, @@ > > -365,19 +372,18 @@ static int dwxgmac2_dma_interrupt(struct > stmmac_priv *priv, > > } > > > > /* TX/RX NORMAL interrupts */ > > - if (likely(intr_status & XGMAC_NIS)) { > > - if (likely(intr_status & XGMAC_RI)) { > > - u64_stats_update_begin(&rxq_stats->syncp); > > - rxq_stats->rx_normal_irq_n++; > > - u64_stats_update_end(&rxq_stats->syncp); > > - ret |= handle_rx; > > - } > > - if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) { > > - u64_stats_update_begin(&txq_stats->syncp); > > - txq_stats->tx_normal_irq_n++; > > - u64_stats_update_end(&txq_stats->syncp); > > - ret |= handle_tx; > > - } > > + if (likely(intr_status & XGMAC_RI)) { > > + u64_stats_update_begin(&rxq_stats->syncp); > > + rxq_stats->rx_normal_irq_n++; > > + u64_stats_update_end(&rxq_stats->syncp); > > + ret |= handle_rx; > > + } > > + > > + if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) { > > + u64_stats_update_begin(&txq_stats->syncp); > > + txq_stats->tx_normal_irq_n++; > > + u64_stats_update_end(&txq_stats->syncp); > > + ret |= handle_tx; > > } > > > > /* Clear interrupts */ > > -- > > 2.34.1 > > > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-01-10 5:43 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-01-05 7:09 [PATCH net-next v2 0/4] net: stmmac: Enable Per DMA Channel interrupt Leong Ching Swee 2024-01-05 7:09 ` Leong Ching Swee 2024-01-05 7:09 ` [PATCH net-next v2 1/4] dt-bindings: net: snps,dwmac: per channel irq Leong Ching Swee 2024-01-05 7:09 ` Leong Ching Swee 2024-01-07 20:10 ` Serge Semin 2024-01-07 20:10 ` Serge Semin 2024-01-09 9:10 ` Krzysztof Kozlowski 2024-01-09 9:10 ` Krzysztof Kozlowski 2024-01-09 22:20 ` Serge Semin 2024-01-09 22:20 ` Serge Semin 2024-01-05 7:09 ` [PATCH net-next v2 2/4] net: stmmac: Make MSI interrupt routine generic Leong Ching Swee 2024-01-05 7:09 ` Leong Ching Swee 2024-01-07 20:27 ` Serge Semin 2024-01-07 20:27 ` Serge Semin 2024-01-10 5:51 ` Swee, Leong Ching 2024-01-10 5:51 ` Swee, Leong Ching 2024-01-24 14:47 ` Serge Semin 2024-01-24 14:47 ` Serge Semin 2024-01-05 7:09 ` [PATCH net-next v2 3/4] net: stmmac: Add support for TX/RX channel interrupt Leong Ching Swee 2024-01-05 7:09 ` Leong Ching Swee 2024-01-07 20:38 ` Serge Semin 2024-01-07 20:38 ` Serge Semin 2024-01-10 5:45 ` Swee, Leong Ching 2024-01-10 5:45 ` Swee, Leong Ching 2024-01-05 7:09 ` [PATCH net-next v2 4/4] net: stmmac: Use interrupt mode INTM=1 for per channel irq Leong Ching Swee 2024-01-05 7:09 ` Leong Ching Swee 2024-01-07 20:52 ` Serge Semin 2024-01-07 20:52 ` Serge Semin 2024-01-10 5:43 ` Swee, Leong Ching [this message] 2024-01-10 5:43 ` Swee, Leong Ching 2024-01-07 16:40 ` [PATCH net-next v2 0/4] net: stmmac: Enable Per DMA Channel interrupt patchwork-bot+netdevbpf 2024-01-07 16:40 ` patchwork-bot+netdevbpf 2024-01-07 19:06 ` Krzysztof Kozlowski 2024-01-07 19:06 ` Krzysztof Kozlowski 2024-01-07 21:24 ` Serge Semin 2024-01-07 21:24 ` Serge Semin 2024-01-08 1:02 ` Jakub Kicinski 2024-01-08 1:02 ` Jakub Kicinski 2024-01-09 8:05 ` Swee, Leong Ching 2024-01-09 8:05 ` Swee, Leong Ching
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=CH0PR11MB5490793807F66E011A31D1A3CF692@CH0PR11MB5490.namprd11.prod.outlook.com \ --to=leong.ching.swee@intel.com \ --cc=alexandre.torgue@foss.st.com \ --cc=conor+dt@kernel.org \ --cc=davem@davemloft.net \ --cc=devicetree@vger.kernel.org \ --cc=edumazet@google.com \ --cc=fancer.lancer@gmail.com \ --cc=ji.sheng.teoh@intel.com \ --cc=joabreu@synopsys.com \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=kuba@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=peppe.cavallaro@st.com \ --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: linkBe 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.