From patchwork Fri Mar 17 10:02:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshihiro Shimoda X-Patchwork-Id: 9630271 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 60DE660245 for ; Fri, 17 Mar 2017 10:29:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B9EF28631 for ; Fri, 17 Mar 2017 10:29:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 409DB28697; Fri, 17 Mar 2017 10:29:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BB09D2865B for ; Fri, 17 Mar 2017 10:28:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751031AbdCQK26 (ORCPT ); Fri, 17 Mar 2017 06:28:58 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:59416 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750885AbdCQK25 (ORCPT ); Fri, 17 Mar 2017 06:28:57 -0400 Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie2.idc.renesas.com with ESMTP; 17 Mar 2017 19:04:48 +0900 Received: from relmlac2.idc.renesas.com (relmlac2.idc.renesas.com [10.200.69.22]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 022ED61682; Fri, 17 Mar 2017 19:04:49 +0900 (JST) Received: by relmlac2.idc.renesas.com (Postfix, from userid 0) id F2F0928076; Fri, 17 Mar 2017 19:04:48 +0900 (JST) Received: from relmlac2.idc.renesas.com (localhost [127.0.0.1]) by relmlac2.idc.renesas.com (Postfix) with ESMTP id EA54928070; Fri, 17 Mar 2017 19:04:48 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac2.idc.renesas.com with ESMTP id VAA13167; Fri, 17 Mar 2017 19:04:48 +0900 X-IronPort-AV: E=Sophos;i="5.36,176,1486393200"; d="scan'208";a="236978075" Received: from mail-sg2apc01lp0244.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.244]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 17 Mar 2017 19:04:47 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=sPY+QyB81SM4gbBzPdfLHZX51HYd0FbHXX+sZ8QKQyA=; b=G4vJi/C0LPvsVCEMRGhJi3eZR5V7kDiZJ/j5s0IPa8yaesyDZooW2LXDno26WcIbktn7a04s2gxX6WBk9Smp/hdY3Dms9QBnQuTtbOYYuxRn95A8KZ/SGKqvW3cYk2DVeLJfLb9tcol0TADEBVyF2G35EW1P1kvYUL0zf4kYEFo= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none; intel.com; dmarc=none action=none header.from=renesas.com; Received: from localhost.localdomain (211.11.155.144) by PS1PR06MB1691.apcprd06.prod.outlook.com (10.167.53.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Fri, 17 Mar 2017 10:04:44 +0000 From: Yoshihiro Shimoda To: , CC: , , Yoshihiro Shimoda Subject: [PATCH 3/3] usb: host: xhci-plat: set resume_quirk() for R-Car controllers Date: Fri, 17 Mar 2017 19:02:35 +0900 Message-ID: <1489744955-29553-4-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1489744955-29553-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> References: <1489744955-29553-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> MIME-Version: 1.0 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY1PR01CA0092.jpnprd01.prod.outlook.com (10.167.153.180) To PS1PR06MB1691.apcprd06.prod.outlook.com (10.167.53.13) X-MS-Office365-Filtering-Correlation-Id: b394dee2-d771-4736-1731-08d46d1d0963 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:PS1PR06MB1691; X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 3:vkciMoCgAQxjV70IbtpGFf2Dj0S/qhMFo17+mR3zP889hc1Hcd4kjx13pi849mk12NTvZMR6F251Z0HAyUYpCeJpnxCSMGtEP37dX3nGhByFXKVl2wchj4/rTR4Zto7o2D3FGjN2VOdieCaYWiSBPAmwmLN0UExJixLsBrtETXeqfMba8JqHsyZMaEL9D7DL7K1QsWgQmXcHBoDAHDUocfQpDpU+N76qYI3+oZt87czfnUiMT81AYr98scJLCsz+6HcD/IbgoSpRtU1NWEDrWO4RBhjjd9cMe4QCmUOECGY=; 25:FeN5dSZE7hjdbO0gMRcZLVhiV1ef1AOP1iulvoQ6o2OrH6UomJQxKtuttNj2a1+BvnSR+ONVG4tvQu0LaGg+iEPL+dOJodXUN009io7sMXYxxbBZo0Rz38d2CcL1N1y9Esr1Lao5L7gxDpgAGgBgXp6GHi8PYTPbeXdbUaXoLOzNuIt7Km74RCViWsaQoZqtv82kHPccT6goPftaa+H1a0Uw+H52H8u2eindDx4tayrLa+S1CLA0CT8RwbWjcDuOXOonw+YlBYXeEXbKfmeDJh13zkOzdo4URGJ1fHIScd4WfxCtEANvqixlebJ0DaHm1McozynDU6uq+dmtS1kfMD4vnieDAGBcR8WP+AcUTHEOCIFMvX/yOoPE9iHA53ZPXrgxnKJjOUPRjYJBpSu4XC3jLvJzjwQGCi0P+K08WEir724a6jcwP2QE2Df6oX0zB/RoF1Ni7GCWblRgGNejMQ== X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 31:/1weWxKpkg0XT0FyGheDC219bsBnoJd098yuPKZTqgl8z2eu5SBHm1pnTu5DQ0i4eTiNsjrI9MGbR+cOUZez9xMeUhhGHVC5Z3Uvt7Q7M2KQDHFefO92nECQ24f+XJmCVKYRMXgqAb6trh4yOKdQ0r6NbhSuavpol/2+Ruq5rERKnNfhfWXKDW8T1uMLL6/MAogIdPyF7n+FuWhW1wcNrOST9GRqjTvwGwP8coB2YFM=; 20:qegzhxzMpPyfcMhVmzZ9ILwQ4jLCRzro6bXKxC2wt9oNe2v3i60wUPWZ4pXVj0tZ2XvUTHDbSRGg0VMz3DkANRU/6guTK0Tnl47TqWFDLh9tkpcga7t4aA302H21uFHY4taCAkA95uZf7FHoP4nCmKTOPlF8oJVsdY4AZoUV3q2lLISg1prKj8GyIjMbmsSrt0bLernRPD3R8B2PhC/T+/l9omoCYluJ2hoXhK8RNjdtE8ibmzY2e2SZkw5MoNoEdRWyj9oOQAwP4aySZDZxkZmFlasoQUPD2Zc2CDxEMTZCs81s729Gg7T0zhkTj+sGL4LFIzNpwa+ufV4kLMghJk71oilzyqECya+B2P3ca1ltb0985V3SZenEMw/hfbaoF4bwqBKY411EVOCdBdivwhWZboxKm4WM/KuY1PqEp90FfnjNjV1dmQYzektsKWWHHvPvSkH5O+CBgLLxU0F6uyx6rQbN2kmKEQE7TmlnIfQW0rL/V/HYDvUVtqNndigI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123558025)(20161123562025)(6072148); SRVR:PS1PR06MB1691; BCL:0; PCL:0; RULEID:; SRVR:PS1PR06MB1691; X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 4:WG8YWuE8JA1dJDd6DIqZtbh3GUH+JQHkvlb1aulsxIsrOvUnDmMRxke4lDrIaidYmYwvg+J/3Ao+enz8tt/ahqYN9b378sBtFd7yRQDUgsivwGHJBqcgPMQLzOvaSqP4dyJExJtpro11K0R9RCjiLme591Fkv21ZU+4a+4zUclRnPCIz8OvRoobNACvDGFqLRA4ELl2Gv4aabAn+msXh13Cqr10GyVc00aNjfTzBM3qH5bLSS4db8ZlOPJJJSHDEW83GTfa24vsLY+5sue9OcxmLGrnGzWZoliyNuQdFA9ZYS63eb5AgmcC9yW3nSF/TYqILFAw69TtXk3ivzw7oP4cCJrvdNKUQ1dO76DUWcCOxKt3PpcHQyZJwd4O4qxGLr/BwZP+078jB6aesUKUdj/ubkvxz4T+5NWo/ZpCPp65OPqZQah3ByQ97mMaKMk/c8b4dVwNUrTgHqHqmboCUOyx/ejdnlZYKEYV+oNa/gjfeZLTPEZNgnZV5zyJ9PiZaxJLplVr/uzF9nHIfViW4z3AFN8UXQai235XNquQY+hjrASlFXoybrJbTOgYjhnABXhupI1XqrAamNFA9murqdvftiQLRbCqszqSkkwW+HiuZ4MwDYCSBXLR2d4xletKW X-Forefront-PRVS: 0249EFCB0B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6069001)(6009001)(39410400002)(39850400002)(39860400002)(39450400003)(39840400002)(78352004)(5003940100001)(3846002)(6116002)(36756003)(7736002)(305945005)(50226002)(81166006)(8676002)(2906002)(47776003)(107886003)(38730400002)(4326008)(6486002)(53936002)(66066001)(189998001)(76176999)(50986999)(5660300001)(50466002)(48376002)(2950100002)(6666003)(42882006)(33646002)(6512007)(54906002)(42186005)(6506006)(25786008); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR06MB1691; H:localhost.localdomain; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR06MB1691; 23:EOKWjBB4U5Ci2PXQheT7LbHECfcor+6fEI6WyLWqy?= =?us-ascii?Q?ZXiyK6L8FMH0n2Vf1N57q6BAuUdApEoU3SBXedxdYOf82h/TfnSf91S4LbUQ?= =?us-ascii?Q?cE6YPzNnztTRIjBCW+olYbPaPvPxL478YvTwP1Z4ed8/2UEFoN4RJo8c7kH+?= =?us-ascii?Q?9tTWeCWap72yarYTuNE1MD8ZMpmj7A1VE/kRZ/OCqQ2/ZlnTqODQ7XCjBX9O?= =?us-ascii?Q?hUCQhHoagg1VT0wbLmZB/1wZiMFNB2k0+lNh8MhNzlO3A4JX+/8I0N7vkymd?= =?us-ascii?Q?XnzEvMIMsAekHb9Rx9RsN09ffWQI+ViJQWoY/QwVSr6+6ksMjCEzoLSPsjop?= =?us-ascii?Q?kSR0NAKQLXMowJUI/5OWCTy/lho/Ar6mqs+MF4MwIxM9QQ1RcCxYMShTVc0b?= =?us-ascii?Q?KZHaxk6ID2R8ydc293K33dlRTbRfqFlaoB8RTUhDzKDrav/ViQ+3eDRPTSAN?= =?us-ascii?Q?y2MM7lswc+sUMh+YUYQwoEbeyiKcksFVp0Qhgtnmnj6Dk8DTdp3DYnKdPSYD?= =?us-ascii?Q?ifT5PbNc2zI0NdE+/7pz4Ar6P2C6U5m1pEkb+oeev5bUi9ODsEiORZFnE7oe?= =?us-ascii?Q?J63Jx+6jTGvMdK0nWfqIWFANgejdOFwjFPT7x6StYG/nFPIg2+r1v2dAWhMA?= =?us-ascii?Q?JF/tnbKVPvGcA1YSE9bKQvHasaQVWEJxJDbSdOId5t2QlFQZUtaxjFHufdJK?= =?us-ascii?Q?Hu6s7dTRXDl1xCtuGN7zb/GX8AsQk2eqZkDzuEn/fN2TBKQGZzk9x3kLDEmf?= =?us-ascii?Q?FIsSbE4H+wJzv/+kU9kSK47t+CwK8L6z/F9azbNrxG+9BjSKFUZmoZZSSSx6?= =?us-ascii?Q?mE4Js5KyupnAJqhZel0LCP5yX9JV6/ZN1RBGpQWzj/tZ+lZ7o+t/bTCXnVHK?= =?us-ascii?Q?FYzmoqftW4TDxr0xCTVvplctfFBqmUweik6UcCW10Ua2IuYp/PWij+JV7NVY?= =?us-ascii?Q?Q0qZ9qKLzK+eitHxvxDMcmw09+yq7XsLE0Tvj/uybxt9VgaGYRshVy0ZKcKX?= =?us-ascii?Q?EWQAVlEwsuzEqhSyTf8cCYaohAQa5uD81Gmk0x6yUeYgLHSrvGMIaFOqVBog?= =?us-ascii?Q?00PixI=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 6:rY5o2LZuY+p3zRpkBVbYWvsF07kMekhn1g3kxzaQ2IW64tOuCVS7G6Z/pZP05xlUdUzhu3Jbx2f6xWC/r8w08t/y2BihvRf1YoWpJytVqAYOIDJPBX4n6n7qF4WrqIeM+iIje73kG/NE0aHT2H9kXzm+VZwL4RJwI70U4AMR8isMO3AhckfH38e7QafAL3Z4BqMNrzlz6p3O69UO/O0DZge20LsRB/q8s6kQ2V01byvl6nWc3tKSM0wMG6FJ5vWyA6+FHf2HmfewWmJRnKfwO+S9DQb5cM48mjFa81/WrXqDPGwargnu6v3iImpzZkBOoWOE9or16ifquJtvLkHax8kpvGvz8K2oFLFG00PLYJf+Q1SXPNtN++ButjddbTaQ0vC+qbG96hP40MwQDs/q677QJ5Ud0+2weq08n3HL+BA=; 5:cyDP563ZTEs3VdguZlbip7Smm2vdAqcyYEhxd4Ces+T6dBI0+eH9wIcr67CMMGr+Df6G/o/684CiQI3sW6VkOT8gzV8fftOp3mWY1pjsI1yhnbDZnGqYzvd/c76DkB2E2AEyEr11tx0kt55lUkQBqg==; 24:mT4kIghHQACfNlgGSOE6aRSUWFyv6J/hfU19lRdPXkRCBXxcO1Ga3Aq6ZI40zlAWXHc5R6xL6yZ7bIPrFqZxsOjsCCP8ckDlA10JrWrfLoc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR06MB1691; 7:mMch64g0xAueo9A1sMvA5gSVzJT2RXUPeZSajE+3M/O5rX+G95ML2peecTtN8eWfwIJ97YO/dihPtue9USKNQkMLe+n8WLNKxD6fawp8a+dKOin5CIG2Ycg5PP9cXwi4gsbUi+KxVw3YUcpiZrLbwX/2Z6ZqdcjEQSUc5Drby0LCTbWbYD64me7vSTtAx45hP4pHuKofu1JhcMmA4otANQu+PNz5Z9cBwlGvtL0DZ/BSRVe8fjzQOWHB6DRbNwxAFdhEMrkZevoA1axTsCc3GhGVuCOKdZDtSLS1bLEFYhEi5oPdCY5xurJ7rhQFWFP+c61Q8AkMcAybynbZGJO1hQ==; 20:1mjAOCKFuDiv3z81DGsmiP+/MSh4zZ+3kszG62YOvD6pFpqVo98cvjiYyT94bKZylWj9tsvSNNR9GzDXfRYQQ7C5bdHUoOBMedA+TRSi0WeqwIdA5bO3i+rdzHGvTkdjPYPr54ENwFwVRlmOTYZOXMobwhNVE0UP5rJEDB7mo7I= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2017 10:04:44.1456 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR06MB1691 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch sets resume_quirk() for R-Car controllers to re-download the firmware in resume timing. Otherwise, if the controller's power is down in suspend timing, the firmware in the controller goes away, and then the controller doesn't work after resume. Signed-off-by: Yoshihiro Shimoda --- drivers/usb/host/xhci-plat.c | 3 +++ drivers/usb/host/xhci-rcar.c | 11 +++++++++++ drivers/usb/host/xhci-rcar.h | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index ceb7413..a285595 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -102,18 +102,21 @@ static int xhci_plat_start(struct usb_hcd *hcd) .firmware_name = XHCI_RCAR_FIRMWARE_NAME_V1, .init_quirk = xhci_rcar_init_quirk, .plat_start = xhci_rcar_start, + .resume_quirk = xhci_rcar_resume_quirk, }; static const struct xhci_plat_priv xhci_plat_renesas_rcar_gen3 = { .firmware_name = XHCI_RCAR_FIRMWARE_NAME_V2, .init_quirk = xhci_rcar_init_quirk, .plat_start = xhci_rcar_start, + .resume_quirk = xhci_rcar_resume_quirk, }; static const struct xhci_plat_priv xhci_plat_renesas_rcar_r8a7796 = { .firmware_name = XHCI_RCAR_FIRMWARE_NAME_V3, .init_quirk = xhci_rcar_init_quirk, .plat_start = xhci_rcar_start, + .resume_quirk = xhci_rcar_resume_quirk, }; static const struct of_device_id usb_xhci_of_match[] = { diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c index d28df38..0727822 100644 --- a/drivers/usb/host/xhci-rcar.c +++ b/drivers/usb/host/xhci-rcar.c @@ -198,3 +198,14 @@ int xhci_rcar_init_quirk(struct usb_hcd *hcd) return xhci_rcar_download_firmware(hcd); } + +int xhci_rcar_resume_quirk(struct usb_hcd *hcd) +{ + int ret; + + ret = xhci_rcar_download_firmware(hcd); + if (!ret) + xhci_rcar_start(hcd); + + return ret; +} diff --git a/drivers/usb/host/xhci-rcar.h b/drivers/usb/host/xhci-rcar.h index d2ffe20..d247951 100644 --- a/drivers/usb/host/xhci-rcar.h +++ b/drivers/usb/host/xhci-rcar.h @@ -18,6 +18,7 @@ #if IS_ENABLED(CONFIG_USB_XHCI_RCAR) void xhci_rcar_start(struct usb_hcd *hcd); int xhci_rcar_init_quirk(struct usb_hcd *hcd); +int xhci_rcar_resume_quirk(struct usb_hcd *hcd); #else static inline void xhci_rcar_start(struct usb_hcd *hcd) { @@ -27,5 +28,10 @@ static inline int xhci_rcar_init_quirk(struct usb_hcd *hcd) { return 0; } + +static inline int xhci_rcar_resume_quirk(struct usb_hcd *hcd) +{ + return 0; +} #endif #endif /* _XHCI_RCAR_H */