From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83532C43381 for ; Tue, 19 Mar 2019 00:38:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3E85A206C0 for ; Tue, 19 Mar 2019 00:38:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727109AbfCSAiM (ORCPT ); Mon, 18 Mar 2019 20:38:12 -0400 Received: from lucky1.263xmail.com ([211.157.147.133]:50388 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726487AbfCSAiL (ORCPT ); Mon, 18 Mar 2019 20:38:11 -0400 Received: from shawn.lin?rock-chips.com (unknown [192.168.167.78]) by lucky1.263xmail.com (Postfix) with ESMTP id 175DD4DE0E; Tue, 19 Mar 2019 08:38:07 +0800 (CST) X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 Received: from [172.16.12.37] (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P12520T139669344339712S1552955883924699_; Tue, 19 Mar 2019 08:38:06 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: X-RL-SENDER: shawn.lin@rock-chips.com X-SENDER: lintao@rock-chips.com X-LOGIN-NAME: shawn.lin@rock-chips.com X-FST-TO: linux-arm-kernel@lists.infradead.org X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Cc: shawn.lin@rock-chips.com, Heiko Stuebner , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Jaehoon Chung , linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: =?UTF-8?Q?Re=3a_ulfh/next_boot_bisection=3a_v5=2e1-rc1-22-gb3725d97?= =?UTF-8?B?YmE3NSBvbiByazMzOTktZ3J1LWtldmlu44CQ6K+35rOo5oSP77yM6YKu5Lu255Sx?= =?UTF-8?B?bGludXgtbW1jLW93bmVyQHZnZXIua2VybmVsLm9yZ+S7o+WPkeOAkQ==?= To: "kernelci.org bot" , tomeu.vizoso@collabora.com, guillaume.tucker@collabora.com, mgalka@collabora.com, Ziyuan Xu , broonie@kernel.org, matthew.hart@linaro.org, khilman@baylibre.com, enric.balletbo@collabora.com, Ulf Hansson References: <5c9020bc.1c69fb81.6977e.d27a@mx.google.com> From: Shawn Lin Message-ID: Date: Tue, 19 Mar 2019 08:38:05 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.3 MIME-Version: 1.0 In-Reply-To: <5c9020bc.1c69fb81.6977e.d27a@mx.google.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2019/3/19 6:50, kernelci.org bot wrote: > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * This automated bisection report was sent to you on the basis * > * that you may be involved with the breaking commit it has * > * found. No manual investigation has been done to verify it, * > * and the root cause of the problem may be somewhere else. * > * Hope this helps! * > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > > ulfh/next boot bisection: v5.1-rc1-22-gb3725d97ba75 on rk3399-gru-kevin > > Summary: > Start: b3725d97ba75 Merge branch 'fixes' into next > Details: https://kernelci.org/boot/id/5c8fa85d59b5148afcfe6052 > Plain log: https://storage.kernelci.org//ulfh/next/v5.1-rc1-22-gb3725d97ba75/arm64/defconfig/gcc-7/lab-collabora/boot-rk3399-gru-kevin.txt > HTML log: https://storage.kernelci.org//ulfh/next/v5.1-rc1-22-gb3725d97ba75/arm64/defconfig/gcc-7/lab-collabora/boot-rk3399-gru-kevin.html > Result: d6a6d722481f mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support Thanks for report! Ulf, It's a known issue already but didn't got managed to post v3 due to weekend. Should I post a increamental patch on top? or just resend a v3 series? > > Checks: > revert: PASS > verify: PASS > > Parameters: > Tree: ulfh > URL: https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git > Branch: next > Target: rk3399-gru-kevin > CPU arch: arm64 > Lab: lab-collabora > Compiler: gcc-7 > Config: defconfig > Test suite: boot > > Breaking commit found: > > ------------------------------------------------------------------------------- > commit d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd > Author: Shawn Lin > Date: Tue Mar 12 15:35:09 2019 +0800 > > mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support > > The new register for controlling hardware unbusy interrupt > is in 0x120. It looks like: > > |------------------------------------------------------------| > |Bit | Attribute | Reset Value | Description | > |------------------------------------------------------------| > |31:25 | RO | 0x0 | reserved | > |------------------------------------------------------------| > |24 | RO | 0x0 | rdyint_cnt_finish | > | | | |When high, it indicates| > | | | |that the rdyint counter| > | | | |is finished. | > |------------------------------------------------------------| > |23:16 | RO | 0x0 | rdyint_cnt_status | > | | | |Couner status, reflect | > | | | |internal counter value.| > |------------------------------------------------------------| > |15:9 | RO | 0x0 | reserved | > |------------------------------------------------------------| > |8 | RW | 0x0 | rdyint_gen_working | > | | | |When set, IP starts to | > | | | |count and generate one | > | | | |rdyint trigger. After | > | | | |the rdyint trigger is | > | | | |generated, it will be | > | | | |cleaned automatically. | > | | | |Software should set it | > | | | |again next time. | > |------------------------------------------------------------| > |7:0 | RW | 0xff | rdyint_gen_maxval | > | | | |Max counter value for | > | | | |the IP to count when | > | | | |rdyint_gen_working is | > | | | |set. This counter is | > | | | |based on biu_clk. | > |------------------------------------------------------------| > > Signed-off-by: Shawn Lin > Tested-by: Ziyuan Xu > Signed-off-by: Ulf Hansson > > diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c > index 8c86a800a8fd..85b1e42782a0 100644 > --- a/drivers/mmc/host/dw_mmc-rockchip.c > +++ b/drivers/mmc/host/dw_mmc-rockchip.c > @@ -20,6 +20,9 @@ > #include "dw_mmc-pltfm.h" > > #define RK3288_CLKGEN_DIV 2 > +#define RKMMC_RDYINT_GEN 0x120 > +#define RKMMC_RDYINT_GEN_WORKING BIT(8) > +#define RKMMC_RDYINT_GEN_MAXVAL GENMASK(7, 0) > > struct dw_mci_rockchip_priv_data { > struct clk *drv_clk; > @@ -28,6 +31,23 @@ struct dw_mci_rockchip_priv_data { > int num_phases; > }; > > +static int dw_mci_rockchip_prepare_hw_unbusy(struct dw_mci *host, > + bool enable) > +{ > + u32 reg = readl(host->regs + RKMMC_RDYINT_GEN); > + > + if (enable) > + /* Self-clean when generating unbusy int */ > + reg |= RKMMC_RDYINT_GEN_WORKING; > + else > + /* Otherwise do it manually to avoid racing condition */ > + reg &= ~RKMMC_RDYINT_GEN_WORKING; > + > + writel(reg, host->regs + RKMMC_RDYINT_GEN); > + > + return 0; > +} > + > static void dw_mci_rk3288_set_ios(struct dw_mci *host, struct mmc_ios *ios) > { > struct dw_mci_rockchip_priv_data *priv = host->priv; > @@ -301,6 +321,15 @@ static int dw_mci_rockchip_init(struct dw_mci *host) > "rockchip,rk3288-dw-mshc")) > host->bus_hz /= RK3288_CLKGEN_DIV; > > + /* Some Rockchip SoCs use hw unbusy int */ > + if (of_device_is_compatible(host->dev->of_node, > + "rockchip,rk1808-dw-mshc")) { > + host->hw_unbusy_int = 16; > + writel(~(RKMMC_RDYINT_GEN_WORKING | > + RKMMC_RDYINT_GEN_MAXVAL), > + host->regs + RKMMC_RDYINT_GEN); > + } > + > return 0; > } > > @@ -322,6 +351,7 @@ static const struct dw_mci_drv_data rk3288_drv_data = { > .set_ios = dw_mci_rk3288_set_ios, > .execute_tuning = dw_mci_rk3288_execute_tuning, > .parse_dt = dw_mci_rk3288_parse_dt, > + .prepare_hw_unbusy = dw_mci_rockchip_prepare_hw_unbusy, > .init = dw_mci_rockchip_init, > }; > ------------------------------------------------------------------------------- > > > Git bisection log: > > ------------------------------------------------------------------------------- > git bisect start > # good: [4d3d534e9fd596e6f70ee19c75f0cd9aa5be2588] Merge branch 'fixes' into next > git bisect good 4d3d534e9fd596e6f70ee19c75f0cd9aa5be2588 > # bad: [b3725d97ba75b0cf6d0eb1e3836915ad234f6f3d] Merge branch 'fixes' into next > git bisect bad b3725d97ba75b0cf6d0eb1e3836915ad234f6f3d > # good: [e266ca36da7de45b64b05698e98e04b578a88888] Merge tag 'staging-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging > git bisect good e266ca36da7de45b64b05698e98e04b578a88888 > # good: [36011ddc78395b59a8a418c37f20bcc18828f1ef] Merge tag 'gfs2-5.1.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 > git bisect good 36011ddc78395b59a8a418c37f20bcc18828f1ef > # good: [6bc3fe8e7e172d5584e529a04cf9eec946428768] tools: mark 'test_vmalloc.sh' executable > git bisect good 6bc3fe8e7e172d5584e529a04cf9eec946428768 > # good: [dc2535be1fd547fbd56aff091370280007b0a1af] Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux > git bisect good dc2535be1fd547fbd56aff091370280007b0a1af > # good: [e8a71a38668919c53e6ca9dd1bfa977e5690523f] Merge tag 'ntb-5.1' of git://github.com/jonmason/ntb > git bisect good e8a71a38668919c53e6ca9dd1bfa977e5690523f > # good: [636deed6c0bc137a7c4f4a97ae1fcf0ad75323da] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm > git bisect good 636deed6c0bc137a7c4f4a97ae1fcf0ad75323da > # good: [477558d7e8d82b59a650e193a5651cf25b794dbc] Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi > git bisect good 477558d7e8d82b59a650e193a5651cf25b794dbc > # good: [80b98e92ebcb4433b86fd32b5d82ec6b0d75cf59] Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip > git bisect good 80b98e92ebcb4433b86fd32b5d82ec6b0d75cf59 > # good: [9e98c678c2d6ae3a17cb2de55d17f69dddaa231b] Linux 5.1-rc1 > git bisect good 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b > # good: [311f059c6aaeb6f5c21459041523a07459d7369b] mmc: sdhci-of-esdhc: add erratum A-009204 support > git bisect good 311f059c6aaeb6f5c21459041523a07459d7369b > # good: [705a0f28811322cb8c578c35a9d07fae7c683845] mmc: dw_mmc: Add hardware unbusy interrupt support > git bisect good 705a0f28811322cb8c578c35a9d07fae7c683845 > # bad: [60cbf5c5e71dab0586455ae846fb67353d2554bf] mmc: renesas_sdhi: update copyright information > git bisect bad 60cbf5c5e71dab0586455ae846fb67353d2554bf > # bad: [eeddc8e5fb23e85ea71e7f03d44b1a3845305213] mmc: mxs-mmc: Enable MMC_CAP_ERASE > git bisect bad eeddc8e5fb23e85ea71e7f03d44b1a3845305213 > # bad: [d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd] mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support > git bisect bad d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd > # first bad commit: [d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd] mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support > ------------------------------------------------------------------------------- > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D40AC43381 for ; Tue, 19 Mar 2019 00:38:36 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DE6C5206C0 for ; Tue, 19 Mar 2019 00:38:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="R5crKoSC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DE6C5206C0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=rock-chips.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=4f+T7V4HmiIe89WBkdcUxxmUYAQQkxchDDJvdK2eGNY=; b=R5crKoSCQ7sfy/L4lSXBI0vic zh7lAAyR/q32y3YoOYVPGwZZ4HdAMruUeoyMXbg3z241RkEiUKjWmJW2K2RKFqKhRyIJ7sPiqFKlR O/+o/RplTS+mp+l5nC/omPIzo1o06zJKv7Lh4wg04vTLzx1a9FkyvtjMiKR/uFtOLSW6HWbrywX5W I7EUA95zKpWZevOyQ3qN66qSLwet9Q8D70pFAx/3jxjEAwjhE9o0Y06oI9iPQdlkfxWdpste5YM2x M1wQf/8/DsbLLPQx+44MRT/UI1syWa0GCAJrmmeASsu5wPmv8bLRodOSMF/Fuvj0dQuNyQyWUKnfF zPnjPUDkg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h62lt-0003H8-0H; Tue, 19 Mar 2019 00:38:25 +0000 Received: from lucky1.263xmail.com ([211.157.147.133]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h62lm-0003G2-L8; Tue, 19 Mar 2019 00:38:21 +0000 Received: from shawn.lin?rock-chips.com (unknown [192.168.167.78]) by lucky1.263xmail.com (Postfix) with ESMTP id 175DD4DE0E; Tue, 19 Mar 2019 08:38:07 +0800 (CST) X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 Received: from [172.16.12.37] (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P12520T139669344339712S1552955883924699_; Tue, 19 Mar 2019 08:38:06 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: X-RL-SENDER: shawn.lin@rock-chips.com X-SENDER: lintao@rock-chips.com X-LOGIN-NAME: shawn.lin@rock-chips.com X-FST-TO: linux-arm-kernel@lists.infradead.org X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: =?UTF-8?Q?Re=3a_ulfh/next_boot_bisection=3a_v5=2e1-rc1-22-gb3725d97?= =?UTF-8?B?YmE3NSBvbiByazMzOTktZ3J1LWtldmlu44CQ6K+35rOo5oSP77yM6YKu5Lu255Sx?= =?UTF-8?B?bGludXgtbW1jLW93bmVyQHZnZXIua2VybmVsLm9yZ+S7o+WPkeOAkQ==?= To: "kernelci.org bot" , tomeu.vizoso@collabora.com, guillaume.tucker@collabora.com, mgalka@collabora.com, Ziyuan Xu , broonie@kernel.org, matthew.hart@linaro.org, khilman@baylibre.com, enric.balletbo@collabora.com, Ulf Hansson References: <5c9020bc.1c69fb81.6977e.d27a@mx.google.com> From: Shawn Lin Message-ID: Date: Tue, 19 Mar 2019 08:38:05 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.3 MIME-Version: 1.0 In-Reply-To: <5c9020bc.1c69fb81.6977e.d27a@mx.google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190318_173819_092885_F9B1F685 X-CRM114-Status: GOOD ( 28.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heiko Stuebner , shawn.lin@rock-chips.com, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Jaehoon Chung , linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2019/3/19 6:50, kernelci.org bot wrote: > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * This automated bisection report was sent to you on the basis * > * that you may be involved with the breaking commit it has * > * found. No manual investigation has been done to verify it, * > * and the root cause of the problem may be somewhere else. * > * Hope this helps! * > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > > ulfh/next boot bisection: v5.1-rc1-22-gb3725d97ba75 on rk3399-gru-kevin > > Summary: > Start: b3725d97ba75 Merge branch 'fixes' into next > Details: https://kernelci.org/boot/id/5c8fa85d59b5148afcfe6052 > Plain log: https://storage.kernelci.org//ulfh/next/v5.1-rc1-22-gb3725d97ba75/arm64/defconfig/gcc-7/lab-collabora/boot-rk3399-gru-kevin.txt > HTML log: https://storage.kernelci.org//ulfh/next/v5.1-rc1-22-gb3725d97ba75/arm64/defconfig/gcc-7/lab-collabora/boot-rk3399-gru-kevin.html > Result: d6a6d722481f mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support Thanks for report! Ulf, It's a known issue already but didn't got managed to post v3 due to weekend. Should I post a increamental patch on top? or just resend a v3 series? > > Checks: > revert: PASS > verify: PASS > > Parameters: > Tree: ulfh > URL: https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git > Branch: next > Target: rk3399-gru-kevin > CPU arch: arm64 > Lab: lab-collabora > Compiler: gcc-7 > Config: defconfig > Test suite: boot > > Breaking commit found: > > ------------------------------------------------------------------------------- > commit d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd > Author: Shawn Lin > Date: Tue Mar 12 15:35:09 2019 +0800 > > mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support > > The new register for controlling hardware unbusy interrupt > is in 0x120. It looks like: > > |------------------------------------------------------------| > |Bit | Attribute | Reset Value | Description | > |------------------------------------------------------------| > |31:25 | RO | 0x0 | reserved | > |------------------------------------------------------------| > |24 | RO | 0x0 | rdyint_cnt_finish | > | | | |When high, it indicates| > | | | |that the rdyint counter| > | | | |is finished. | > |------------------------------------------------------------| > |23:16 | RO | 0x0 | rdyint_cnt_status | > | | | |Couner status, reflect | > | | | |internal counter value.| > |------------------------------------------------------------| > |15:9 | RO | 0x0 | reserved | > |------------------------------------------------------------| > |8 | RW | 0x0 | rdyint_gen_working | > | | | |When set, IP starts to | > | | | |count and generate one | > | | | |rdyint trigger. After | > | | | |the rdyint trigger is | > | | | |generated, it will be | > | | | |cleaned automatically. | > | | | |Software should set it | > | | | |again next time. | > |------------------------------------------------------------| > |7:0 | RW | 0xff | rdyint_gen_maxval | > | | | |Max counter value for | > | | | |the IP to count when | > | | | |rdyint_gen_working is | > | | | |set. This counter is | > | | | |based on biu_clk. | > |------------------------------------------------------------| > > Signed-off-by: Shawn Lin > Tested-by: Ziyuan Xu > Signed-off-by: Ulf Hansson > > diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c > index 8c86a800a8fd..85b1e42782a0 100644 > --- a/drivers/mmc/host/dw_mmc-rockchip.c > +++ b/drivers/mmc/host/dw_mmc-rockchip.c > @@ -20,6 +20,9 @@ > #include "dw_mmc-pltfm.h" > > #define RK3288_CLKGEN_DIV 2 > +#define RKMMC_RDYINT_GEN 0x120 > +#define RKMMC_RDYINT_GEN_WORKING BIT(8) > +#define RKMMC_RDYINT_GEN_MAXVAL GENMASK(7, 0) > > struct dw_mci_rockchip_priv_data { > struct clk *drv_clk; > @@ -28,6 +31,23 @@ struct dw_mci_rockchip_priv_data { > int num_phases; > }; > > +static int dw_mci_rockchip_prepare_hw_unbusy(struct dw_mci *host, > + bool enable) > +{ > + u32 reg = readl(host->regs + RKMMC_RDYINT_GEN); > + > + if (enable) > + /* Self-clean when generating unbusy int */ > + reg |= RKMMC_RDYINT_GEN_WORKING; > + else > + /* Otherwise do it manually to avoid racing condition */ > + reg &= ~RKMMC_RDYINT_GEN_WORKING; > + > + writel(reg, host->regs + RKMMC_RDYINT_GEN); > + > + return 0; > +} > + > static void dw_mci_rk3288_set_ios(struct dw_mci *host, struct mmc_ios *ios) > { > struct dw_mci_rockchip_priv_data *priv = host->priv; > @@ -301,6 +321,15 @@ static int dw_mci_rockchip_init(struct dw_mci *host) > "rockchip,rk3288-dw-mshc")) > host->bus_hz /= RK3288_CLKGEN_DIV; > > + /* Some Rockchip SoCs use hw unbusy int */ > + if (of_device_is_compatible(host->dev->of_node, > + "rockchip,rk1808-dw-mshc")) { > + host->hw_unbusy_int = 16; > + writel(~(RKMMC_RDYINT_GEN_WORKING | > + RKMMC_RDYINT_GEN_MAXVAL), > + host->regs + RKMMC_RDYINT_GEN); > + } > + > return 0; > } > > @@ -322,6 +351,7 @@ static const struct dw_mci_drv_data rk3288_drv_data = { > .set_ios = dw_mci_rk3288_set_ios, > .execute_tuning = dw_mci_rk3288_execute_tuning, > .parse_dt = dw_mci_rk3288_parse_dt, > + .prepare_hw_unbusy = dw_mci_rockchip_prepare_hw_unbusy, > .init = dw_mci_rockchip_init, > }; > ------------------------------------------------------------------------------- > > > Git bisection log: > > ------------------------------------------------------------------------------- > git bisect start > # good: [4d3d534e9fd596e6f70ee19c75f0cd9aa5be2588] Merge branch 'fixes' into next > git bisect good 4d3d534e9fd596e6f70ee19c75f0cd9aa5be2588 > # bad: [b3725d97ba75b0cf6d0eb1e3836915ad234f6f3d] Merge branch 'fixes' into next > git bisect bad b3725d97ba75b0cf6d0eb1e3836915ad234f6f3d > # good: [e266ca36da7de45b64b05698e98e04b578a88888] Merge tag 'staging-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging > git bisect good e266ca36da7de45b64b05698e98e04b578a88888 > # good: [36011ddc78395b59a8a418c37f20bcc18828f1ef] Merge tag 'gfs2-5.1.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 > git bisect good 36011ddc78395b59a8a418c37f20bcc18828f1ef > # good: [6bc3fe8e7e172d5584e529a04cf9eec946428768] tools: mark 'test_vmalloc.sh' executable > git bisect good 6bc3fe8e7e172d5584e529a04cf9eec946428768 > # good: [dc2535be1fd547fbd56aff091370280007b0a1af] Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux > git bisect good dc2535be1fd547fbd56aff091370280007b0a1af > # good: [e8a71a38668919c53e6ca9dd1bfa977e5690523f] Merge tag 'ntb-5.1' of git://github.com/jonmason/ntb > git bisect good e8a71a38668919c53e6ca9dd1bfa977e5690523f > # good: [636deed6c0bc137a7c4f4a97ae1fcf0ad75323da] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm > git bisect good 636deed6c0bc137a7c4f4a97ae1fcf0ad75323da > # good: [477558d7e8d82b59a650e193a5651cf25b794dbc] Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi > git bisect good 477558d7e8d82b59a650e193a5651cf25b794dbc > # good: [80b98e92ebcb4433b86fd32b5d82ec6b0d75cf59] Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip > git bisect good 80b98e92ebcb4433b86fd32b5d82ec6b0d75cf59 > # good: [9e98c678c2d6ae3a17cb2de55d17f69dddaa231b] Linux 5.1-rc1 > git bisect good 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b > # good: [311f059c6aaeb6f5c21459041523a07459d7369b] mmc: sdhci-of-esdhc: add erratum A-009204 support > git bisect good 311f059c6aaeb6f5c21459041523a07459d7369b > # good: [705a0f28811322cb8c578c35a9d07fae7c683845] mmc: dw_mmc: Add hardware unbusy interrupt support > git bisect good 705a0f28811322cb8c578c35a9d07fae7c683845 > # bad: [60cbf5c5e71dab0586455ae846fb67353d2554bf] mmc: renesas_sdhi: update copyright information > git bisect bad 60cbf5c5e71dab0586455ae846fb67353d2554bf > # bad: [eeddc8e5fb23e85ea71e7f03d44b1a3845305213] mmc: mxs-mmc: Enable MMC_CAP_ERASE > git bisect bad eeddc8e5fb23e85ea71e7f03d44b1a3845305213 > # bad: [d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd] mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support > git bisect bad d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd > # first bad commit: [d6a6d722481f357eafe7b798fe6fdadd2f5ac6bd] mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support > ------------------------------------------------------------------------------- > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel