From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752864AbdL1J7h (ORCPT ); Thu, 28 Dec 2017 04:59:37 -0500 Received: from mail-by2nam01on0105.outbound.protection.outlook.com ([104.47.34.105]:50176 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751442AbdL1J7f (ORCPT ); Thu, 28 Dec 2017 04:59:35 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ernest.zhang@bayhubtech.com; From: "ernest.zhang" To: adrian.hunter@intel.com, ulf.hansson@linaro.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: yuxiang.wan@bayhubtech.com, xiaoguang.yu@bayhubtech.com, shirley.her@bayhubtech.com Subject: [PATCH 1/3] mmc: sdhci: fix SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD handling Date: Thu, 28 Dec 2017 17:59:13 +0800 Message-Id: <20171228095913.3944-1-ernest.zhang@bayhubtech.com> X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [27.17.7.178] X-ClientProxiedBy: HK2PR0302CA0001.apcprd03.prod.outlook.com (10.170.144.11) To SN1PR04MB2127.namprd04.prod.outlook.com (10.169.124.135) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e3e7dc9d-ae57-455b-763b-08d54dd9b264 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4602075)(4603075)(4627115)(201702281549075)(5600026)(4604075)(2017052603307)(7153060);SRVR:SN1PR04MB2127; X-Microsoft-Exchange-Diagnostics: 1;SN1PR04MB2127;3:TPHBLWp2tK7afWp5L96uM4otnauqG3juvec2ZcBPxXEMwjeQ1XQJdN8/SlppVxwpWeq1IacYtzRG/5eT7XT/Ymvrj1jC3s7SBvhnUl/xCZFKySWDeDMPyuOoW7ujTBUKCQ88GYqbj5N1d6wFOjDDcjFR5VvTKA91ONM6kiPwqOROsEgAKkIr72Df6ws/8sX1Q+L5gyrQx13GgVCzUwgTD3PsNvw3gmfVM3AtRWlwYUYwcDwWkB/QLcu2dYU6vs1L;25:O/jlPe2mabraruKlzSUFi5pfZp1BMsrkQ1Ypc2YqNcvLcdLVMv5RcdC5mDVLPYPpVdFfNxRH37H81iKZVu8W2iKsSES/gQqQR99S2W+xSaQ7Fk21TakMplQw5apbOHCISAvNMtIkwxHt+9Ipcng2I8u6EIG6sN89ZTN+JeQkcgDk2tYAcZAleLj6aJZ9vmyfkHH7ZuTX0hKpEnUAeIQXNR/6LfDr4RALAF53fNNwVKlodbhHm0L0ywM/9vErg9vPNlMKkNe2dJ+fWqCzRSimPwK72RejM+57XRadBQce9G17xFggNxl3q2nDQXpNxmkHHfYdp1ZAuhGFGEnBIhSSuA==;31:+sBRRCEqJPmlSZwYUZdAksf6/V3poKx+uM+2VpfwEZ5r2GDlLohH8eb5IktdTSSG71+exu94zMYnpsCGJitGV8+17UhN9HdZN3sJ5v99DipgqdtfjHkcb7ln4VntV8E9dCeuD41lDDdyLuoo5ztny3NKXv4FxlEp3GmqI6vfxwYBAF7A9qwiYJuSySgMNtZ8Nf4o6TTdiyplt3QEApe0AT3aEPTsT57DV5/J+/YAdic= X-MS-TrafficTypeDiagnostic: SN1PR04MB2127: X-Microsoft-Exchange-Diagnostics: 1;SN1PR04MB2127;20:klva0ijHyi2gPqFTJrYLsUvp+lH8rn1y9KIATQQfqTBkm4X/xDgPlyE8hH1GKN3ZqDYM86cgtysjZs6xZE/Kuii++anr60ikWmaouim8NR1Q1ostojkKwebOr4PiaWosUFXpTMFxErxOh2RaFPVqRADz7ILIGqyEiozWhopElY5VUgHPEnw+bHT3/iNbwZuc3SM4cpa7p7NuLDyTnaWXT+2lRXV/pjHkGvjolJ9UEapY4h14+28tp/2Zz3xFgPpcSIGiLbfJb84mdGErzrOlKt1OcODFeorzHKVpN/wE1C77Chxpgb7hCk0lVYvbF78Z+knO66rKStHPserb7gWNU4azr4FJJ0GfWwk16jNygeWNcBZLE76lLqV7rtTdy933Rcrv+CWnuU6fdiWzFcOgB7LKt/NzzEp9wL2uDUDkN3Y=;4:yW2cOAi4RvBC3FCyZxMGevn0kkWe6VOZYUjS8gmg6nHWKa8Iz7PRXMPd6/hZz0KtvDB++SP2KoVdcC18PKxs1Yi97WCuLF2Ul+KuxfL7y1wI5gCecfQjEP1K/zO92KJlJ4O2dgdT4LXMlg3eSt+sU/9bEjSHakRaKeuPiIFnQspQ/Gucl7yZvMObDUoLMY5YBMknaphpCejnByqJ07VdkJ29epVISmK4kqTHI0sV4yLzsmVpxDPKrHyXna2MJ9I1QvXa1lR6het6woH4nfFivw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501075)(93006095)(93001095)(3002001)(10201501046)(6041268)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(2016111802025)(20161123562045)(6072148)(6043046)(201708071742011);SRVR:SN1PR04MB2127;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:SN1PR04MB2127; X-Forefront-PRVS: 05352A48BE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(396003)(366004)(346002)(376002)(39830400003)(39380400002)(199004)(189003)(6486002)(86362001)(47776003)(2906002)(7736002)(305945005)(15760500003)(6512007)(66066001)(16586007)(48376002)(97736004)(3846002)(16526018)(6116002)(1076002)(316002)(50466002)(52116002)(478600001)(51416003)(36756003)(217423001)(53936002)(69596002)(8936002)(81166006)(50226002)(386003)(6506007)(5660300001)(4326008)(107886003)(59450400001)(53416004)(8676002)(105586002)(6666003)(106356001)(25786009)(81156014)(68736007);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR04MB2127;H:BHT-SW-ernest.towerbridgetechnology.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR04MB2127;23:E2/wRtgQ7McbGQGirA1Rxse2LkQitGReZH0MzsjyT?= =?us-ascii?Q?qda+rZkLUxNkZboaD5FaRqlyei255Dkh4J81hGWhwrzQPi5QGQQN/bWVDuwB?= =?us-ascii?Q?rRPNMaK071llukBIwm6prpMi+JrLVkRNzTgEHSLKFLnZsw1Ir/Hs9FURbcsz?= =?us-ascii?Q?lpSFxjCyminN++Erx4DIRqCK4wVYWQw/k71ylMXKIJ3fM9civ4fHbxqsVibV?= =?us-ascii?Q?6b37zMkSU92EUhXC9FApZbWl9pNW7y8sPXt6XywZBAcRuLc3ELy+mYcNqtyE?= =?us-ascii?Q?yMgy/lEKYxG334sJsxYYb7jwA3ueT/Q/afpnAsmdsEz2NcEpg28M3YYri6eG?= =?us-ascii?Q?pEGW6lS4K/YX+eLVTa8ycORGWy7YCKgHwxVdgQw8pQ0kahCbJT579uGgzsSR?= =?us-ascii?Q?DGphwK9YcjHLDO5m5t7R8U5K7QzLaqzPtXxYQdmgheqTtGuBoqqH8OmSpng1?= =?us-ascii?Q?hoWLU+/QYHTAYW5dd9R7ietzXKFXKGCdTD/uGvLKiJmL6BsmkYjJQomwBF94?= =?us-ascii?Q?L9aNbcDWtyMpwVjj/voJwWz6Sbta9kU0VQTLtlNhobAUCebpqz2t7UHd4eZf?= =?us-ascii?Q?5ewOm1+COT66puvVVTI36J6oE9TpLhg9OGwAsFNDytWQqsvcbFTkKSe5D7Dw?= =?us-ascii?Q?k6v/F8aC70Sw4f7JDgoT0KLbm74HL5AlZDA+qL+x+vaO5HjFC4q4+Kw/vN3K?= =?us-ascii?Q?eNCxwvfsxPf76t9pOz+mDPnWodYl/ssT4bgrwNZ+7P9WzLe4K6bAT6rmaujv?= =?us-ascii?Q?3MN8zZhJEbTsDILyBoxD+zpgbb4D7uRc912f3cjWzS+Em5BuLwnhUi91S5Qu?= =?us-ascii?Q?wPhzrKELDdIcWZ982XUGCPVC/DOQbcczcJtj/o6afJaGQUWgCtHX3RMKpqET?= =?us-ascii?Q?SlKhjfyhWIdTQ7cO9W55Q3hFt40VsVkx8RvsrzRsKWf6b/kAMdpkWyOoUPu/?= =?us-ascii?Q?YfIKh0qUAPV2H3zT60ZTqr1fIhhaMcbshVO6RJcE9BdB6dnOm+ExDQQxyRaA?= =?us-ascii?Q?7QR2vSZHmwEA6JSTSBOsO8poq2oymkqQN5lTtCYWiMZoSu/xtcZOzrP4ovqJ?= =?us-ascii?Q?t7toQDYuC59iZr1tUeNvhvlvVHj0kIS5rusDbkPO9UfD5MFtorB8P8UJ/FS6?= =?us-ascii?Q?p9vjztf/r5FhEpkqYhMAhwgxvwi90XyWkxVyR+ONm8wSYUprdxLmw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR04MB2127;6:2DiQjk1Srs214z4FCh6yPOJPTslE+HS4pcpRkER0yKBDJv8kWXOGvZH1SKTKZdxSDtCGHzMbo3hSco4vlhEr/iLV9hOW0h2pTdEE25rOnhr5LwKklGSwVvFW/I5U9G83rQ6wVOuKy66CeNz5TZNNK8HTmuNPazuqP/4ii73lsM3fa8qlMQX0Ua5NLmjBtzLh2Ql4408/hPZmLf/vedxVDQDpWpTQb1o8jpnY3dOCg8/si3zzoavzj1bb9RQcOMEz6uSS1ytDGOA7VuX3oxBsz7IzjK3ynjflbOf9K/0wFEOnePckMpgNL8wChqIXmHavHmAuYe1A2rVnh4NmEk3HfKrhtSaxxp6/Ls5bhfcJn4E=;5:deeDstHMGnya1lxoid33IVE1gSK7tGtABpfq94h/KS8MVWWYEBDFalFvqQFfDME9AZCEyUcI4j77DKTfFDOWqa8lxc4L6UrNA14/a0gIXp76g08/iJnKeKVoPYYFVqhvDwv7NymlHHEFGcVMplrWOcMgaZlJFyhn3R0bahFmVrI=;24:pHBaEkxKwubsvFEuHDD5BZ4fjxhnIE09oPF9zMC2mESCOkLWFoWDg/SzdMRNSn7PP7XNvJ58/bEWdPzeWQL/YLOiiNcPBNUg31t2ZUUddbA=;7:VnGZRoqtDZ0YGv7g0LjbWk8mwI18sQxeAav8OH/zftrX/ATFrV6uOeBcaXaatEJAr51mIIpQ+Fex81C+Hu6fw76B7cQIMCrJNr772kSl6eAhrwO5BpQ/f+nlQI+ndsSzKv/grVs5iConxQzbfJyMS5xjBC/L37YSAuqSdghj9XBT0Nx9IYa+Lx9z0D4wBKKaPggn1HefFqE+MhwcL1h3MA86A3772dQc6PfIYyJZuspZHU+HNlIUJuN1B5lhk9An SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bayhubtech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2017 09:59:32.0994 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e3e7dc9d-ae57-455b-763b-08d54dd9b264 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0a7aae2b-8f2e-44df-ba2f-42de7f93c642 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR04MB2127 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SD controller with SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD quirk will clear SD host transfer mode register for non-data commands. But in eMMC HS200 hardware tuning case, the hardware tuning process need to transfer mode register has properly value. So don't clear transfer mode register when opcode equals to MMC_SEND_TUNING_BLOCK_HS200. Signed-off-by: ernest.zhang --- drivers/mmc/host/sdhci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 0d5fcca18c9e..d5b19fc9ea56 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -918,7 +918,9 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host, if (data == NULL) { if (host->quirks2 & SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD) { - sdhci_writew(host, 0x0, SDHCI_TRANSFER_MODE); + /* cannot clear transfer mode register when tuning */ + if (cmd->opcode != MMC_SEND_TUNING_BLOCK_HS200) + sdhci_writew(host, 0x0, SDHCI_TRANSFER_MODE); } else { /* clear Auto CMD settings for no data CMDs */ mode = sdhci_readw(host, SDHCI_TRANSFER_MODE); -- 2.14.1