From patchwork Thu Dec 6 15:18:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 153038 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp10652512ljp; Thu, 6 Dec 2018 07:18:55 -0800 (PST) X-Google-Smtp-Source: AFSGD/UBYlhIdzSwdE/nbHSwcWi6VI3Jf+6AkpM9DXaT+3wZV9GPFeBW0WxH6Sdkj2b63h3EfOQg X-Received: by 2002:a63:6483:: with SMTP id y125mr11969280pgb.91.1544109535016; Thu, 06 Dec 2018 07:18:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544109535; cv=none; d=google.com; s=arc-20160816; b=RGT6osRqWNVb4Mi2gTPammI4tdzXH77nDs8kr1iVa5RDctehRVkEp8ENcxvs9obZMA hiCT5sf6ht7aZxdBv8DLyNxKgfZrkfqX9jG3ss1sJBm8jeNuSwMVp/R+nTiVCz9vQZTy 5pdEhwrXgx41BcHPRItccrUZxM82f8iKzdkXPNSLaiWDL/ounK41+pHMOowgjgGYAHWi gg3Y4io/U/gF479r8WgKfYs6vU9EAcKFQa5F1vS6YLfWA78rZqFQ67sqQOrX7IDAHP6w 0uFqSl6bsgnqrPzmQv7qWet63B3EAzhnMa5Pxd1S9GpQ8WpFpcdp106baHQD0mwxJjuW Iu6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IQ1pNjxAYQJEy/wzhy8LaXlzyI+EffZDKMSvsOZcQ9o=; b=ccza1YueuVTle8vmJLghMyg2MSRQcOFp6qFXhSDQJRcMNZfn1g22TPkQabx8xUysOY L97Q8l+SN9e6EzlHxLWVk8twiDO3zvkNlLoy9RLCBe3hsmt738t8aklmFh3qZ0/ehOiR 30SZq3YbFYeJb+f7uwb8jhZz36Y/6qoLgAp2emDJrVk6lryk4tXG+Bc3xPdNXSPEy2V1 LJqUxRTfV5qlbcG7KmL0TbtA5g9mSs0lVzDeNB7O+CQZWROZbfGe1lO+Hx9Ct1+8ZuZI SQdYZG2ejzm1rns64H5Ynh/sGm3NahQWXykdgkUNVM3G9ON4ddpEgG7qRp9Cr8K0L3eo rCsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=acMyHwrt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u9si518469plk.61.2018.12.06.07.18.54; Thu, 06 Dec 2018 07:18:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=acMyHwrt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726112AbeLFPSm (ORCPT + 31 others); Thu, 6 Dec 2018 10:18:42 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:33177 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726044AbeLFPSk (ORCPT ); Thu, 6 Dec 2018 10:18:40 -0500 Received: by mail-wr1-f65.google.com with SMTP id c14so897867wrr.0 for ; Thu, 06 Dec 2018 07:18:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IQ1pNjxAYQJEy/wzhy8LaXlzyI+EffZDKMSvsOZcQ9o=; b=acMyHwrt8WgUGbImx9XBPcsSw2WvrcbkjNowHm4RCMrQJ7XXJZ9LcOpXwNKXzOoXB+ QsQd2L97Ag48Goc5hiLqAq4RoklHafsgH26vd19mbEdTDx/sD1J5yb2UXZzhjl79pNQU Vawqbb1mvm6KUoh+nFgzlbgppYUIW7Bo0pOqNtyZSBBI1p9VmAzEkgOn6f9NdYDO3DWb VR5PqVvPcgZUVbTT1nVfSBolvwRzQm2UYbpfmCVtog01V4Hxc2WJL5ROpb3oKmM5ju1u 8iZse5p76cdHWXAMkM0VV0VPqL1UYWk819PXPt7XxQZ31VTHoHLM/UF05srG9VNBmuLC dE1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IQ1pNjxAYQJEy/wzhy8LaXlzyI+EffZDKMSvsOZcQ9o=; b=Wmft6ILqdzec4LK3k2C0Y4kP9u4qda/P9Juyg+NBRdO18qIrRoqz1nIA3mpmBWwpe3 +F83Egk6wZj5RMRRscYLFhZ5sF7SND7cQ53JFqhymDEJHBFCnJs5ideDhf9uIDEMu75A B6HhXNkmx9226h04lcsbVswhuHscQd4f0j+FirtarSMTT4fJzY9xVP8jGn/AEdcqgA+v hHeiMm/FbNhUzjDffOoMUYFOZdCAtZB581H22VLFie49X04LP41xBDmxkO27g28MJRql zLqOQiJ21cBoLUU74ylIvvmNeNnoqblTgZdx1IlEUtFRdf5N3f0vBckkb1Ioq0+bpnUy 1pcg== X-Gm-Message-State: AA+aEWZWSpL58hT3a1mlt5rlExLIvn6LBPxhD3tCfr1O6sKgANa7iMjO jnnzDS2IO8Y9HFMALmwdaG+DfQ== X-Received: by 2002:adf:ce86:: with SMTP id r6mr27113095wrn.257.1544109517755; Thu, 06 Dec 2018 07:18:37 -0800 (PST) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id j33sm939652wre.91.2018.12.06.07.18.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 06 Dec 2018 07:18:37 -0800 (PST) From: Jerome Brunet To: Ulf Hansson , Carlo Caione , Kevin Hilman Cc: Jerome Brunet , linux-mmc@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] mmc: meson-gx: make sure the descriptor is stopped on errors Date: Thu, 6 Dec 2018 16:18:25 +0100 Message-Id: <20181206151828.24417-2-jbrunet@baylibre.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181206151828.24417-1-jbrunet@baylibre.com> References: <20181206151828.24417-1-jbrunet@baylibre.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On errors, if we don't stop the descriptor chain, it may continue to run and raise IRQ after we have called mmc_request_done(). This is bad because we won't be able to get cmd anymore and properly deal with the IRQ. This patch makes sure the descriptor chain is stopped before calling mmc_request_done() Fixes: 79ed05e329c3 ("mmc: meson-gx: add support for descriptor chain mode") Signed-off-by: Jerome Brunet --- drivers/mmc/host/meson-gx-mmc.c | 73 ++++++++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 10 deletions(-) -- 2.19.2 diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index c201c378537e..fcb5d693c897 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -90,9 +91,11 @@ #define CFG_CLK_ALWAYS_ON BIT(18) #define CFG_CHK_DS BIT(20) #define CFG_AUTO_CLK BIT(23) +#define CFG_ERR_ABORT BIT(27) #define SD_EMMC_STATUS 0x48 #define STATUS_BUSY BIT(31) +#define STATUS_DESC_BUSY BIT(30) #define STATUS_DATI GENMASK(23, 16) #define SD_EMMC_IRQ_EN 0x4c @@ -928,6 +931,7 @@ static void meson_mmc_start_cmd(struct mmc_host *mmc, struct mmc_command *cmd) cmd_cfg |= FIELD_PREP(CMD_CFG_CMD_INDEX_MASK, cmd->opcode); cmd_cfg |= CMD_CFG_OWNER; /* owned by CPU */ + cmd_cfg |= CMD_CFG_ERROR; /* stop in case of error */ meson_mmc_set_response_bits(cmd, &cmd_cfg); @@ -1022,6 +1026,17 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) u32 irq_en, status, raw_status; irqreturn_t ret = IRQ_NONE; + irq_en = readl(host->regs + SD_EMMC_IRQ_EN); + raw_status = readl(host->regs + SD_EMMC_STATUS); + status = raw_status & irq_en; + + if (!status) { + dev_dbg(host->dev, + "Unexpected IRQ! irq_en 0x%08x - status 0x%08x\n", + irq_en, raw_status); + return IRQ_NONE; + } + if (WARN_ON(!host) || WARN_ON(!host->cmd)) return IRQ_NONE; @@ -1029,22 +1044,18 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) cmd = host->cmd; data = cmd->data; - irq_en = readl(host->regs + SD_EMMC_IRQ_EN); - raw_status = readl(host->regs + SD_EMMC_STATUS); - status = raw_status & irq_en; - cmd->error = 0; if (status & IRQ_CRC_ERR) { dev_dbg(host->dev, "CRC Error - status 0x%08x\n", status); cmd->error = -EILSEQ; - ret = IRQ_HANDLED; + ret = IRQ_WAKE_THREAD; goto out; } if (status & IRQ_TIMEOUTS) { dev_dbg(host->dev, "Timeout - status 0x%08x\n", status); cmd->error = -ETIMEDOUT; - ret = IRQ_HANDLED; + ret = IRQ_WAKE_THREAD; goto out; } @@ -1069,17 +1080,49 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) /* ack all enabled interrupts */ writel(irq_en, host->regs + SD_EMMC_STATUS); + if (cmd->error) { + /* Stop desc in case of errors */ + u32 start = readl(host->regs + SD_EMMC_START); + + start &= ~START_DESC_BUSY; + writel(start, host->regs + SD_EMMC_START); + } + if (ret == IRQ_HANDLED) meson_mmc_request_done(host->mmc, cmd->mrq); - else if (ret == IRQ_NONE) - dev_warn(host->dev, - "Unexpected IRQ! status=0x%08x, irq_en=0x%08x\n", - raw_status, irq_en); spin_unlock(&host->lock); return ret; } +static int meson_mmc_wait_desc_stop(struct meson_host *host) +{ + int loop; + u32 status; + + /* + * It may sometimes take a while for it to actually halt. Here, we + * are giving it 5ms to comply + * + * If we don't confirm the descriptor is stopped, it might raise new + * IRQs after we have called mmc_request_done() which is bad. + */ + for (loop = 50; loop; loop--) { + status = readl(host->regs + SD_EMMC_STATUS); + if (status & (STATUS_BUSY | STATUS_DESC_BUSY)) + udelay(100); + else + break; + } + + if (status & (STATUS_BUSY | STATUS_DESC_BUSY)) { + dev_err(host->dev, "Timed out waiting for host to stop\n"); + return -ETIMEDOUT; + } + + return 0; +} + static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id) { struct meson_host *host = dev_id; @@ -1090,6 +1133,13 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id) if (WARN_ON(!cmd)) return IRQ_NONE; + if (cmd->error) { + meson_mmc_wait_desc_stop(host); + meson_mmc_request_done(host->mmc, cmd->mrq); + + return IRQ_HANDLED; + } + data = cmd->data; if (meson_mmc_bounce_buf_read(data)) { xfer_bytes = data->blksz * data->blocks; @@ -1130,6 +1180,9 @@ static void meson_mmc_cfg_init(struct meson_host *host) cfg |= FIELD_PREP(CFG_RC_CC_MASK, ilog2(SD_EMMC_CFG_CMD_GAP)); cfg |= FIELD_PREP(CFG_BLK_LEN_MASK, ilog2(SD_EMMC_CFG_BLK_SIZE)); + /* abort chain on R/W errors */ + cfg |= CFG_ERR_ABORT; + writel(cfg, host->regs + SD_EMMC_CFG); } From patchwork Thu Dec 6 15:18:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 153039 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp10652588ljp; Thu, 6 Dec 2018 07:18:59 -0800 (PST) X-Google-Smtp-Source: AFSGD/VExze/RUt3w9BfDESLKrNzLDC+yGMN96Wb882lidQS7K0KvWFcRpH35hdbt2UEF1I+bViC X-Received: by 2002:a65:6491:: with SMTP id e17mr24190771pgv.418.1544109539122; Thu, 06 Dec 2018 07:18:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544109539; cv=none; d=google.com; s=arc-20160816; b=xFcSdpLPB4Qwp8YVlH74bqPKm3GKmIwiFem33+xGijZVmthwWaDgx9M5dxVEoyATXs ncrl7ypUt7bcfYVOLrXt7l82frLT6JGWug5VE9ksKjSMfl0N93ijZ4nnOR9FYoR2Qgyp T1eBiQQueAGYHGfsnrQgoAqYmDwKDrcK44nfY2LoiWc7oB00wev0GtYNKgZvxepItG1M nyCpEH5mlFraVu8jnlczI+YprhsTe8esPcS+u9qif0YFxBZmnMiRCQUuTm7xd7GAtLVn Lam4W+tlnPNNTg8Zh3kYyiVyVE2z1D1kVtN/5EKRl4OAx5L1BR4KPlF4xVoloD5O2HYP V+5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Y7CGHPuU0cKd8uxanXCkssfy7HoOVVH2fzqpoBO3MJk=; b=xF+VEBoq0B4lpaZdkKzPCpE5OAsjqUpmVv9RlWo/a5hFo5BP7zLFWp1IHWnP4aH8zQ RKzYFOeDApF4JRuNx4uaSA4tt7wMA8wAQWT/MtrhbT6y+91wO4dpC3c0wZOtUiBofZin AHVaw073LGQMXBxhmfL+dkYHlr/+lVBhBcTkdZ7C+oD2IiROLi1ZMqEhVu6+VMeAyI8O OjhjDo1Pn9NcBDdx9ApxF6r+1lVHh/KvQZM89p/k6lWbu0a9eZJ32MGB/IJ/pjwGi4BG CZ3Rm/DcyD/N+wUN893fF0qQi9Jw87j4fBdcyfG+NIYprhbtzG2rR3nkENkSPGt8pnFu AKSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=c+bM7IaW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u9si518469plk.61.2018.12.06.07.18.58; Thu, 06 Dec 2018 07:18:59 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=c+bM7IaW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726087AbeLFPSm (ORCPT + 31 others); Thu, 6 Dec 2018 10:18:42 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:40950 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726045AbeLFPSk (ORCPT ); Thu, 6 Dec 2018 10:18:40 -0500 Received: by mail-wm1-f66.google.com with SMTP id q26so1412690wmf.5 for ; Thu, 06 Dec 2018 07:18:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Y7CGHPuU0cKd8uxanXCkssfy7HoOVVH2fzqpoBO3MJk=; b=c+bM7IaWZi1H/3FYMQILbAyq3SkhW7Uih01O/P0gAfzhOuiZ5bnjA7L7I8NlwiHI/h H3OzC5LtUaJ3Tt+AqTqgP6zvsv3H3STi6sCHOoc3iiUkw9VJrjD4nw/ljk7rlFdYfZPZ n9lPPlK5rN0Rt2KtNVt7DMayET1i97tQKB+A5OnowPY5mN2MIKF5C1RarI4cDEb+fwkb IkTZ+bGtP7E5G0DsA5fVu/lPbzIQ+6aL4I1rL7Nn9MWo8aAK30cScv/o+rlOFACB4wVa 8Gbqh2mm58L1zsQhs1IgVCxGbY17DH2CUdB7UUG5H4rwVYbzRKmnjuPV8alx7YokJN9m wi+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Y7CGHPuU0cKd8uxanXCkssfy7HoOVVH2fzqpoBO3MJk=; b=Wc2eG/vTsMT/ye1QIwZm1T2uFH90OGRsF8GxSMSlVHSAWw8reS7DWhDIYx0aggCWdK iEoxlFkgyhpGnGB6d2EGFoiiQj5jpqBfjy6j2mYSh5sy/prn1l1mmyteEwJ7AhGZYccJ c4DjzBYltf5KLbvEK1XaNXLt3D2SEq3Zrr/U7/do29XdQIgIbIXQQU96fIl40bGTS+1R TcmmElM5Z9iWeMYuoEEXqvVi3fSB5m5cYuRWRBWR5KQirAdS5xnhCdGfELRKiPv9bXg5 pmDSRIwLwriwf4wZf0mobbOifhe5zSgPCrdU5qB84zWgmnCzkOAqaysmMMRm14EvauMD SOFQ== X-Gm-Message-State: AA+aEWb6+Iasws1ThTakpU1NkR83zZNGyJKdITxWIARTFdwuEO6ytLgI Hx2HGBTIsuEwL056KfAF1/p4uw== X-Received: by 2002:a7b:c1d7:: with SMTP id a23mr19076799wmj.48.1544109519103; Thu, 06 Dec 2018 07:18:39 -0800 (PST) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id j33sm939652wre.91.2018.12.06.07.18.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 06 Dec 2018 07:18:38 -0800 (PST) From: Jerome Brunet To: Ulf Hansson , Carlo Caione , Kevin Hilman Cc: Jerome Brunet , linux-mmc@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] mmc: meson-gx: remove useless lock Date: Thu, 6 Dec 2018 16:18:26 +0100 Message-Id: <20181206151828.24417-3-jbrunet@baylibre.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181206151828.24417-1-jbrunet@baylibre.com> References: <20181206151828.24417-1-jbrunet@baylibre.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The spinlock is only used within the irq handler so it does not seem very useful. Signed-off-by: Jerome Brunet --- drivers/mmc/host/meson-gx-mmc.c | 7 ------- 1 file changed, 7 deletions(-) -- 2.19.2 diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index fcb5d693c897..5cc31e434ca1 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -159,7 +158,6 @@ struct meson_host { struct mmc_host *mmc; struct mmc_command *cmd; - spinlock_t lock; void __iomem *regs; struct clk *core_clk; struct clk *mmc_clk; @@ -1040,8 +1038,6 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) if (WARN_ON(!host) || WARN_ON(!host->cmd)) return IRQ_NONE; - spin_lock(&host->lock); - cmd = host->cmd; data = cmd->data; cmd->error = 0; @@ -1091,7 +1087,6 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) if (ret == IRQ_HANDLED) meson_mmc_request_done(host->mmc, cmd->mrq); - spin_unlock(&host->lock); return ret; } @@ -1244,8 +1239,6 @@ static int meson_mmc_probe(struct platform_device *pdev) host->dev = &pdev->dev; dev_set_drvdata(&pdev->dev, host); - spin_lock_init(&host->lock); - /* Get regulators and the supported OCR mask */ host->vqmmc_enabled = false; ret = mmc_regulator_get_supply(mmc); From patchwork Thu Dec 6 15:18:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 153036 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp10652351ljp; Thu, 6 Dec 2018 07:18:45 -0800 (PST) X-Google-Smtp-Source: AFSGD/U0i2oKdGP4pqoQ69QwQe1fSZh3yUBQMyw++yZr9qNUyIg6Hy1YB1cdsPOk/+TwWs+Vgink X-Received: by 2002:a17:902:6f09:: with SMTP id w9mr29357626plk.309.1544109525243; Thu, 06 Dec 2018 07:18:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544109525; cv=none; d=google.com; s=arc-20160816; b=ffI1K2B6vJW9sCT1ybJjbKJ1cgICCgVsyB3Vida5UjeQLEWueLv9bcaiUns5znojaD 7Xf1x6oCTOkCABlpBqMFwFGY+8eFCMz75ebxC+rqv3K1WdcKRi3EbrrVBP091+xgie3J G2XOafGBYzgZBg/0ujlGwuPwbpUR4S4bCwpH6ZUagTf+JLD63vvDPV+IstzWmcyakwpY aFxOg+QNPdZwMQOzL/FYVgv2LRCda6EMmp8JnUKJO2FWPffQ0C7LmUyXxO68bT0GSBSe GK6gdNacyQtf9Bi9hesvNhhuYH6PGHaUfVwYhUcasJj2ZxvivvxeJCru9A2FqeTYzes/ RHZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=9D+IWNIkzvM4lr5AWVEe/1dPuYwCLo7SNBs7kvA6F/o=; b=mWUgUK0X+9jYWUpfUoDdurKquhRBDjajDZZ7Bl5tXzA3Z3nibHWuPIjL3XnwYrXzAJ 9UhXYp1eD7dbaTqJd0uDcLaWJtAwc4/8PMSpauv9fvfn525zQAArtvQFBl26nsbC0y6b RtENmQM5NKQ9l5yFmUc3V5OdEpyZmZ+WnZeeiNrlb8wq6xsbxj8mzUCSWFTFuhBegWuZ z8mpc6vH68jgxbgAohX6ux5PlHcptByzpKy1EUh1C7OBBW4RX4BpaCht+ZcPbR74XfCg 6QzzeRfWtB7BjjLhzmbW71jl7VtlTTe0S4a3LcN5G0G5o7qi1pY4g9RCCq2WwdG5D2GE ddug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=V69wUMG2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j132si518355pfc.84.2018.12.06.07.18.44; Thu, 06 Dec 2018 07:18:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=V69wUMG2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726133AbeLFPSn (ORCPT + 31 others); Thu, 6 Dec 2018 10:18:43 -0500 Received: from mail-wm1-f68.google.com ([209.85.128.68]:54015 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726052AbeLFPSm (ORCPT ); Thu, 6 Dec 2018 10:18:42 -0500 Received: by mail-wm1-f68.google.com with SMTP id y1so1342180wmi.3 for ; Thu, 06 Dec 2018 07:18:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9D+IWNIkzvM4lr5AWVEe/1dPuYwCLo7SNBs7kvA6F/o=; b=V69wUMG28wtoJtdJvClt8+e4MNUFCgT9w5PW65OzLv56uK4D54BydOiREZ0QqqI6Yj nk587zOLB50DozkpeJgAVwuTXyfanIIiYzRWAk0+RmO0G77yvCTt1HQe0oF4D4U4gIX/ K+tH+Ei85fXP/cer2qzJ+E+nrrcsr/el3V1DRlWJ76S8dnjfpxCG1leb++zeQUGNt0sg 6XjfvIOLWDRXhd5mRCAZ1phYICvS+rKtgvMdf5InGSXVlZ4+w+CAg0FQjtIbn43RSCj6 QUOHKIBu5tWVUobolT9ZHj29k1SSP8jzn7rFngmbZFLolMiGJnzHhBVriKGiMENPrSFY Jnlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9D+IWNIkzvM4lr5AWVEe/1dPuYwCLo7SNBs7kvA6F/o=; b=VSQEdXb1Bc25AO0IA3k4kdVeaXZyd1Ynt9+AWtNlylDnqUpw+Hx39HtrKrW6e1LpQW ZRLEs0Ziy/2t3kPOGvGg7f04BqiYwK7iqJKpRxdc6gstkTQ91+KZoZXLBYuoeFMZtX/P s3xaNp7PtcNSqMOiKAH772FgZ9uJYhIce+VYRQnNE6z2J5eiTqUo+4BD9hSgIvNm1s3j HIdUqTUfWvTd2SLm2yJe9KMm2lRnA22AqPbKd3dImQdN+IrclsCwvtO5iR38/+H6icBS 9ihcIaq5ep8rHW0oF9hIF6WNYMhNfev1VWrxzm2tCjIQCNtA06ioS38MC3n6jx2QRs9T dWJA== X-Gm-Message-State: AA+aEWY5mvLp78se5Fn0dQY0FjpD9k7U0YrzIw5N6Hj+kY9V8zEaI2Wz scdeT8vTofT1YghsdNPUHNxCXmXmQysHPA== X-Received: by 2002:a1c:9d97:: with SMTP id g145mr20578555wme.152.1544109520556; Thu, 06 Dec 2018 07:18:40 -0800 (PST) Received: from boomer.local ([2a01:e34:eeb6:4690:106b:bae3:31ed:7561]) by smtp.googlemail.com with ESMTPSA id j33sm939652wre.91.2018.12.06.07.18.39 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 06 Dec 2018 07:18:40 -0800 (PST) From: Jerome Brunet To: Ulf Hansson , Carlo Caione , Kevin Hilman Cc: Jerome Brunet , linux-mmc@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RFT PATCH 3/4] mmc: meson-gx: align default phase on soc vendor tree Date: Thu, 6 Dec 2018 16:18:27 +0100 Message-Id: <20181206151828.24417-4-jbrunet@baylibre.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181206151828.24417-1-jbrunet@baylibre.com> References: <20181206151828.24417-1-jbrunet@baylibre.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Align the default Core and Tx phase with the SoC vendor tree. Even if the Tx phase is different from what the documentation recommends, it seems to provide better results. Signed-off-by: Jerome Brunet --- drivers/mmc/host/meson-gx-mmc.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) -- 2.19.2 diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index 5cc31e434ca1..837bed0b8c01 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -634,14 +634,8 @@ static int meson_mmc_clk_init(struct meson_host *host) if (ret) return ret; - /* - * Set phases : These values are mostly the datasheet recommended ones - * except for the Tx phase. Datasheet recommends 180 but some cards - * fail at initialisation with it. 270 works just fine, it fixes these - * initialisation issues and enable eMMC DDR52 mode. - */ clk_set_phase(host->mmc_clk, 180); - clk_set_phase(host->tx_clk, 270); + clk_set_phase(host->tx_clk, 0); clk_set_phase(host->rx_clk, 0); return clk_prepare_enable(host->mmc_clk);