From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergei Shtylyov Date: Sun, 21 Feb 2016 19:16:45 +0000 Subject: Re: [PATCH/RFC v4 net-next] ravb: Add dma queue interrupt support Message-Id: <56CA0D1D.2090903@cogentembedded.com> List-Id: References: <1453650775-19886-1-git-send-email-ykaneko0929@gmail.com> <56AA4674.6020001@cogentembedded.com> <56B77A57.2080902@cogentembedded.com> <56C9DAF1.1030003@cogentembedded.com> In-Reply-To: <56C9DAF1.1030003@cogentembedded.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Yoshihiro Kaneko Cc: netdev@vger.kernel.org, "David S. Miller" , Simon Horman , Magnus Damm , Linux-sh list , linux-renesas-soc@vger.kernel.org On 02/21/2016 06:42 PM, Sergei Shtylyov wrote: [...] >>>>>> From: Kazuya Mizuguchi >>>>>> >>>>>> This patch supports the following interrupts. >>>>>> >>>>>> - One interrupt for multiple (descriptor, error, management) >>>>>> - One interrupt for emac >>>>>> - Four interrupts for dma queue (best effort rx/tx, network control >>>>>> rx/tx) >>>>>> >>>>>> This patch improve efficiency of the interrupt handler by adding the >>>>>> interrupt handler corresponding to each interrupt source described >>>>>> above. Additionally, it reduces the number of times of the access to >>>>>> EthernetAVB IF. >>>>>> >>>>>> Signed-off-by: Kazuya Mizuguchi >>>>>> Signed-off-by: Yoshihiro Kaneko [...] >>>>>> diff --git a/drivers/net/ethernet/renesas/ravb_main.c >>>>>> b/drivers/net/ethernet/renesas/ravb_main.c >>>>>> index ac43ed9..076f25f 100644 >>>>>> --- a/drivers/net/ethernet/renesas/ravb_main.c >>>>>> +++ b/drivers/net/ethernet/renesas/ravb_main.c [...] >>>>>> + struct net_device *ndev, struct device *dev, >>>>>> + const char *ch) >>>>>> +{ >>>>>> + char *name; >>>>>> + int error; >>>>>> + >>>>>> + name = devm_kasprintf(dev, GFP_KERNEL, "%s:%s", ndev->name, ch); >>>>>> + error = request_irq(irq, handler, IRQF_SHARED, name, ndev); >>>>> >>>>> Not sure if we need IRQF_SHARED on those IRQs, they're not really >>>>> shareable... >>>> >>>> I don't know whether this causes something bad. >>>> I think this controller is supporting a shared IRQ. >>> >>> Based on the high-level trigger, I'd rather suspect not. Anyway, all the >>> SoC IRQs are dedicated to a certain (single) source. >> >> I don't want to change that if there is no fatal issue in the use of >> IRQF_SHARED. >> However, I will remove the flag if it is simple waste... > > It's not a waste but it just shouldn't be needed. Actually for RX/TX DMA you're routing 2 interrupts to the same handler, so it's needed, sorry. [...] >> Thanks, >> kaneko MBR, Sergei From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergei Shtylyov Subject: Re: [PATCH/RFC v4 net-next] ravb: Add dma queue interrupt support Date: Sun, 21 Feb 2016 22:16:45 +0300 Message-ID: <56CA0D1D.2090903@cogentembedded.com> References: <1453650775-19886-1-git-send-email-ykaneko0929@gmail.com> <56AA4674.6020001@cogentembedded.com> <56B77A57.2080902@cogentembedded.com> <56C9DAF1.1030003@cogentembedded.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, "David S. Miller" , Simon Horman , Magnus Damm , Linux-sh list , linux-renesas-soc@vger.kernel.org To: Yoshihiro Kaneko Return-path: In-Reply-To: <56C9DAF1.1030003@cogentembedded.com> Sender: linux-renesas-soc-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On 02/21/2016 06:42 PM, Sergei Shtylyov wrote: [...] >>>>>> From: Kazuya Mizuguchi >>>>>> >>>>>> This patch supports the following interrupts. >>>>>> >>>>>> - One interrupt for multiple (descriptor, error, management) >>>>>> - One interrupt for emac >>>>>> - Four interrupts for dma queue (best effort rx/tx, network control >>>>>> rx/tx) >>>>>> >>>>>> This patch improve efficiency of the interrupt handler by adding the >>>>>> interrupt handler corresponding to each interrupt source described >>>>>> above. Additionally, it reduces the number of times of the access to >>>>>> EthernetAVB IF. >>>>>> >>>>>> Signed-off-by: Kazuya Mizuguchi >>>>>> Signed-off-by: Yoshihiro Kaneko [...] >>>>>> diff --git a/drivers/net/ethernet/renesas/ravb_main.c >>>>>> b/drivers/net/ethernet/renesas/ravb_main.c >>>>>> index ac43ed9..076f25f 100644 >>>>>> --- a/drivers/net/ethernet/renesas/ravb_main.c >>>>>> +++ b/drivers/net/ethernet/renesas/ravb_main.c [...] >>>>>> + struct net_device *ndev, struct device *dev, >>>>>> + const char *ch) >>>>>> +{ >>>>>> + char *name; >>>>>> + int error; >>>>>> + >>>>>> + name = devm_kasprintf(dev, GFP_KERNEL, "%s:%s", ndev->name, ch); >>>>>> + error = request_irq(irq, handler, IRQF_SHARED, name, ndev); >>>>> >>>>> Not sure if we need IRQF_SHARED on those IRQs, they're not really >>>>> shareable... >>>> >>>> I don't know whether this causes something bad. >>>> I think this controller is supporting a shared IRQ. >>> >>> Based on the high-level trigger, I'd rather suspect not. Anyway, all the >>> SoC IRQs are dedicated to a certain (single) source. >> >> I don't want to change that if there is no fatal issue in the use of >> IRQF_SHARED. >> However, I will remove the flag if it is simple waste... > > It's not a waste but it just shouldn't be needed. Actually for RX/TX DMA you're routing 2 interrupts to the same handler, so it's needed, sorry. [...] >> Thanks, >> kaneko MBR, Sergei