Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3663361pxv; Mon, 26 Jul 2021 08:58:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxgzqnJODei9cK0xfWa5n3VeqeqVH5npHcSjnlVaFN1Btqge96LGbQ9Mw/9jsxUmPNQYYF/ X-Received: by 2002:a17:906:2cc5:: with SMTP id r5mr17475440ejr.454.1627315126828; Mon, 26 Jul 2021 08:58:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627315126; cv=none; d=google.com; s=arc-20160816; b=OQprI/Lyv41NSK+feg//FwtLwncX1wgynDnpgTRJ+3ngxMdWbUfQsW/Hn+Z2hChIB0 gJuqlvY2hYX04MKVuUrp1nJCa2wfCa7BJ4/g/RHsWEEOt+otPt7ODcA75rHS0wiHuk/C hzqmvDXG1i3pQT04YPKOCQhyI1ARZ9KgZRq7rSRP85SY9TQy+WCXdXvN1VOvLPEfSgR9 IcvPWAr6rrjwuS7XJsL+QoTFE2vUB9nxsPBa3/OKiZ0h5yUsBU7ytEVDaYdVl1CAD71x Q9dssMuRUhgY3GG2p0EGwgpzkGvnOJuhU5QyRRCxbNxCTZiLueZ8kKpk5NWQyqlYh33b HvAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=C1Rq7NU+TVGk93RMPYkIsKNlIFC4TYPUG8aw+L7NxGw=; b=iLeEypoLxS1oGkTXtXMg3VJ9l0egpw7WyuHnp5EhclIap9mZsXyFWEWcENwsQLtpxm k5UTzJ5Dy8mBj5p4ma8MLsMTO/0ZYzJ3OvvbdoTVoucvUUrFDjHpL4C01cUzSlXWOW8l uZvOUn8OBxV0126HuI1zXiq9hBOyqEFY7IH2SJ53uz7tHiKM19MjjT0gBA2qiy8hmX6f tBeHZFyVZXYxlr6l4XWb9mAzQfA36XIvudyWD/e5f74HyPE8beAts/5byTD+4XhhSuy1 MOO380jWuw3a8Z5RMUjgWohALVt2qNdBzVWRUuRYxSWqhQEpypSQ28Mid3f7F7MXxsP9 0rFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=kGdooMd4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n8si307491edy.15.2021.07.26.08.58.22; Mon, 26 Jul 2021 08:58:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=kGdooMd4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236881AbhGZPQa (ORCPT + 99 others); Mon, 26 Jul 2021 11:16:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:48238 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236432AbhGZPJJ (ORCPT ); Mon, 26 Jul 2021 11:09:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DFA9560FC4; Mon, 26 Jul 2021 15:49:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1627314550; bh=/sFtyA6/w0uviskIbCVCVYL51Y87bUoISfl9+aBWEOs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kGdooMd4ehC+EQiNq9YDR/42+D4+eDs8QuEbuXpP4mx2kRcCis9dR8GDqqyy/xh3J xpo4cCpB+uWIGF7dYzJDGT6qNBFJogq0r0lsmrgumxK9fmI8cKmA621rnqIByBBZyW m5n3XGHW6Qtrlaiaysd29K4V+1O3BffTipnx//70= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH 4.14 67/82] usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop() Date: Mon, 26 Jul 2021 17:39:07 +0200 Message-Id: <20210726153830.348588719@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210726153828.144714469@linuxfoundation.org> References: <20210726153828.144714469@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yoshihiro Shimoda commit 5719df243e118fb343725e8b2afb1637e1af1373 upstream. This driver has a potential issue which this driver is possible to cause superfluous irqs after usb_pkt_pop() is called. So, after the commit 3af32605289e ("usb: renesas_usbhs: fix error return code of usbhsf_pkt_handler()") had been applied, we could observe the following error happened when we used g_audio. renesas_usbhs e6590000.usb: irq_ready run_error 1 : -22 To fix the issue, disable the tx or rx interrupt in usb_pkt_pop(). Fixes: 2743e7f90dc0 ("usb: renesas_usbhs: fix the usb_pkt_pop()") Cc: # v4.4+ Signed-off-by: Yoshihiro Shimoda Link: https://lore.kernel.org/r/20210624122039.596528-1-yoshihiro.shimoda.uh@renesas.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/renesas_usbhs/fifo.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/drivers/usb/renesas_usbhs/fifo.c +++ b/drivers/usb/renesas_usbhs/fifo.c @@ -112,6 +112,8 @@ static struct dma_chan *usbhsf_dma_chan_ #define usbhsf_dma_map(p) __usbhsf_dma_map_ctrl(p, 1) #define usbhsf_dma_unmap(p) __usbhsf_dma_map_ctrl(p, 0) static int __usbhsf_dma_map_ctrl(struct usbhs_pkt *pkt, int map); +static void usbhsf_tx_irq_ctrl(struct usbhs_pipe *pipe, int enable); +static void usbhsf_rx_irq_ctrl(struct usbhs_pipe *pipe, int enable); struct usbhs_pkt *usbhs_pkt_pop(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt) { struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); @@ -135,6 +137,11 @@ struct usbhs_pkt *usbhs_pkt_pop(struct u dmaengine_terminate_all(chan); usbhsf_fifo_clear(pipe, fifo); usbhsf_dma_unmap(pkt); + } else { + if (usbhs_pipe_is_dir_in(pipe)) + usbhsf_rx_irq_ctrl(pipe, 0); + else + usbhsf_tx_irq_ctrl(pipe, 0); } usbhs_pipe_running(pipe, 0);