Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp3775504pxt; Tue, 10 Aug 2021 11:03:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxDMZ4CoWKkNwjjIFYNp77luRhRbEmpenYDVzYawYRLn7w62cf5HOIgW7pUk34ydYDPiLH1 X-Received: by 2002:aa7:c952:: with SMTP id h18mr6482025edt.18.1628618597706; Tue, 10 Aug 2021 11:03:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628618597; cv=none; d=google.com; s=arc-20160816; b=WvcmgiSj8EHgW1tkm0JbXRVXM+eh1gDXjRxqaFzajoVHAf/CwZTMI3gVvA/fQlbvwk KfpGudKTpVcBZlUHl4RilBT3FoGCA6dLLKLKm56Dh++S5Q3XPRlkYMRUMTN2FziD74aZ kOQK8eMW4eZNcMFtYYrNYW3yaewdNPbdAVLZ++uKccIpMSb5KiNajRCRiNoE0JH8bOHL PSlg0WqWOrAAXA0+MF6k65tOTjQVga4Er7GsQzMBqsURH9ykJquUfCJrcr2ZaQ4CwNZL dd+h9hg9WrI4ao1NRi953dzUJ5+PUh1A0Ip2W2nmjzVJx1mKUH8K/jzD6BRmm39gD6ds uekQ== 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=HGjCrtofbqEeXo0mTRz9R0juCfKWvu7P+kLidsTvo0s=; b=pTMOGwZ9re6F5PoaMXgPkbQDuKBRaMZNJ+ooZA+LBrl8j94a0iGtTpYtojhNbiKlr8 tKQtp2O2o+GoNzCpt9Bg+oDn8swEDy0574opYb/TegSxQguBDklYgSj9hrIgoxGpTaJm QEBnexwiQrDaIuw2P3SYNWO277MJnaNxXP4v0nL5qpTlbfelRjwR/k9PSakiT/ldHgIT 2ys4Pt4Kq9E2BhL6Umcq9DVKLsumodoxYW8eAxm+P/vdR4oKs5Z6lchQSUd8PlW+Z6pX HlHEQdiCRa22dVW/pJ39XCmKuwy/FPOOwdjVV2L7B94hoiHe4znu3pnlAg+M59tpcgFn UpTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=cUQDmXm9; 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 s1si20235652ejv.457.2021.08.10.11.02.44; Tue, 10 Aug 2021 11:03:17 -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=cUQDmXm9; 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 S235282AbhHJSBH (ORCPT + 99 others); Tue, 10 Aug 2021 14:01:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:60848 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238023AbhHJR6J (ORCPT ); Tue, 10 Aug 2021 13:58:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0C559610A0; Tue, 10 Aug 2021 17:45:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1628617542; bh=751qO+TV5abJ1E4piigMO3mEmCHr9WzRj2++EBajwGA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cUQDmXm9dilZMdzn4UEQzTT4P+3a+6Q+9+BPTcQ8zSYAfyleFvEGSnQ8daipxwBEM bxkvDiLL0P6AXpwo0WSdgF89WqTxX0t0XvLs2MCzC6eaTHUzLl7OS3hX8WFGjKVHPE DSaGW6JkMs1HKiWWcsSfqd/pZzien/TCL9jXJsks= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alan Stern , Claudiu Beznea Subject: [PATCH 5.13 097/175] usb: host: ohci-at91: suspend/resume ports after/before OHCI accesses Date: Tue, 10 Aug 2021 19:30:05 +0200 Message-Id: <20210810173004.144648038@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810173000.928681411@linuxfoundation.org> References: <20210810173000.928681411@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: Claudiu Beznea commit 00de6a572f30ee93cad7e0704ec4232e5e72bda8 upstream. On SAMA7G5 suspending ports will cut the access to OHCI registers and any subsequent access to them will lead to CPU being blocked trying to access that memory. Same thing happens on resume: if OHCI memory is accessed before resuming ports the CPU will block on that access. The OCHI memory is accessed on suspend/resume though ohci_suspend()/ohci_resume(). Acked-by: Alan Stern Signed-off-by: Claudiu Beznea Cc: stable Link: https://lore.kernel.org/r/20210721132905.1970713-1-claudiu.beznea@microchip.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/ohci-at91.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) --- a/drivers/usb/host/ohci-at91.c +++ b/drivers/usb/host/ohci-at91.c @@ -611,8 +611,6 @@ ohci_hcd_at91_drv_suspend(struct device if (ohci_at91->wakeup) enable_irq_wake(hcd->irq); - ohci_at91_port_suspend(ohci_at91->sfr_regmap, 1); - ret = ohci_suspend(hcd, ohci_at91->wakeup); if (ret) { if (ohci_at91->wakeup) @@ -632,7 +630,10 @@ ohci_hcd_at91_drv_suspend(struct device /* flush the writes */ (void) ohci_readl (ohci, &ohci->regs->control); msleep(1); + ohci_at91_port_suspend(ohci_at91->sfr_regmap, 1); at91_stop_clock(ohci_at91); + } else { + ohci_at91_port_suspend(ohci_at91->sfr_regmap, 1); } return ret; @@ -644,6 +645,8 @@ ohci_hcd_at91_drv_resume(struct device * struct usb_hcd *hcd = dev_get_drvdata(dev); struct ohci_at91_priv *ohci_at91 = hcd_to_ohci_at91_priv(hcd); + ohci_at91_port_suspend(ohci_at91->sfr_regmap, 0); + if (ohci_at91->wakeup) disable_irq_wake(hcd->irq); else @@ -651,8 +654,6 @@ ohci_hcd_at91_drv_resume(struct device * ohci_resume(hcd, false); - ohci_at91_port_suspend(ohci_at91->sfr_regmap, 0); - return 0; }