From patchwork Wed May 20 21:35:00 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Gynther X-Patchwork-Id: 6450241 Return-Path: X-Original-To: patchwork-linux-mmc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 80FA5C0432 for ; Wed, 20 May 2015 21:35:07 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8DCB7203F4 for ; Wed, 20 May 2015 21:35:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 867DC20122 for ; Wed, 20 May 2015 21:35:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751962AbbETVfE (ORCPT ); Wed, 20 May 2015 17:35:04 -0400 Received: from mail-ig0-f202.google.com ([209.85.213.202]:33301 "EHLO mail-ig0-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752688AbbETVfD (ORCPT ); Wed, 20 May 2015 17:35:03 -0400 Received: by igdh15 with SMTP id h15so3849117igd.0 for ; Wed, 20 May 2015 14:35:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:message-id:date; bh=2/kpbXHztocb9rnxEb+0wvd64LcVaun0SaSX/PThCIM=; b=gSgtyk+Wulgwg/m0MFDJsKWBrgAB6a3nkYcs306IZk967j57FrQWWi9YqFXdWD/a/w s8YkasWaEqgzherUUiz19MvVAc9BmwWb14Dcfhz/RcD8aQHyesnnqNT7D0JSelwRMDR9 UMLM4qrbNrYTxmHk3sQufLszTekWqZRoDJFcvYz7jm3YHE8p2G97by/XM2JO131nNUFO CQz/052ZlzSrdN8vlWelukj9pAUCgoxvQzCZ7Ps/hqkjYsvtJN9TY1IfS/IiPk3PSsOD 1uxtMWV66kuXmt9bIAXGTlK+50Vr4855FK9g212a0gSoWqZiBRekrjPG2YUDq5kDUhwk 6Cnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:message-id:date; bh=2/kpbXHztocb9rnxEb+0wvd64LcVaun0SaSX/PThCIM=; b=BzWickdjohq9bK9OZj8sd8cdegY8DW6Wmhj3PX4Qh58BY1SIM3hwc62NJ8f2ppZ3oJ /qpj+U9W+70zzpZYz/dH2u9DoEOJPeuxyU4N1IKtG4pNb869defTWUSQ80zvINoKRs+p FPT8qwW5Wq1ZK3+5gJE016jtFmdGI/uS1CTqN2Bo5QzTaBIvyx/SXZpmOAOAawhQQhcA RsXbex3j2Wd/0pmnQZlx5D/Z683K8HzP/aU0AzRebWqcnuxNJHs1fj86WkIY3oM8t9X7 9cOTNOWv0g94R8okBRXi3CS9M90golO6Av/g3VBt2X5mZdP0hCwB4BOmoxm/ga44PMsD A9Qg== X-Gm-Message-State: ALoCoQlgCg3eKD+Q7/Hj9+FAT1iHolMKfiV9XRkEpg9fPxaKZCCFQ5vNW1Emsskf5AhRYpcm4bE6 X-Received: by 10.182.149.168 with SMTP id ub8mr49143081obb.8.1432157702212; Wed, 20 May 2015 14:35:02 -0700 (PDT) Received: from corpmail-nozzle1-1.hot.corp.google.com ([100.108.1.104]) by gmr-mx.google.com with ESMTPS id v23si944272yhv.4.2015.05.20.14.35.01 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 May 2015 14:35:02 -0700 (PDT) Received: from puck.mtv.corp.google.com ([172.27.88.166]) by corpmail-nozzle1-1.hot.corp.google.com with ESMTP id f7ofT8bK.1; Wed, 20 May 2015 14:35:02 -0700 Received: by puck.mtv.corp.google.com (Postfix, from userid 68020) id 15A7322078C; Wed, 20 May 2015 14:35:00 -0700 (PDT) From: Petri Gynther To: linux-mmc@vger.kernel.org Cc: ulf.hansson@linaro.org Subject: [PATCH v2] mmc: sdhci: fix driver type B and D handling in sdhci_do_set_ios() Message-Id: <20150520213501.15A7322078C@puck.mtv.corp.google.com> Date: Wed, 20 May 2015 14:35:00 -0700 (PDT) Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP sdhci_do_set_ios() doesn't currently program SDHCI_HOST_CONTROL2 register correctly when host->preset_enabled == false. Add code to handle the missing cases MMC_SET_DRIVER_TYPE_B and MMC_SET_DRIVER_TYPE_D. Signed-off-by: Petri Gynther --- drivers/mmc/host/sdhci.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index c80287a..5d32a00 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -1562,8 +1562,17 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios) ctrl_2 &= ~SDHCI_CTRL_DRV_TYPE_MASK; if (ios->drv_type == MMC_SET_DRIVER_TYPE_A) ctrl_2 |= SDHCI_CTRL_DRV_TYPE_A; + else if (ios->drv_type == MMC_SET_DRIVER_TYPE_B) + ctrl_2 |= SDHCI_CTRL_DRV_TYPE_B; else if (ios->drv_type == MMC_SET_DRIVER_TYPE_C) ctrl_2 |= SDHCI_CTRL_DRV_TYPE_C; + else if (ios->drv_type == MMC_SET_DRIVER_TYPE_D) + ctrl_2 |= SDHCI_CTRL_DRV_TYPE_D; + else { + pr_warn("%s: invalid driver type, default to " + "driver type B\n", mmc_hostname(mmc)); + ctrl_2 |= SDHCI_CTRL_DRV_TYPE_B; + } sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); } else {