From patchwork Sun May 17 22:29:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 11554411 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 704DE912 for ; Sun, 17 May 2020 22:29:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 574BC207D4 for ; Sun, 17 May 2020 22:29:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b="my4ubcsy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726458AbgEQW3f (ORCPT ); Sun, 17 May 2020 18:29:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726444AbgEQW3f (ORCPT ); Sun, 17 May 2020 18:29:35 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A18A9C061A0C; Sun, 17 May 2020 15:29:34 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id m12so7440388wmc.0; Sun, 17 May 2020 15:29:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=3zBbpyoelvZMQi2sOj6TWYdOKOApt3dyMAzoTjYhpAc=; b=my4ubcsyz+v4QpyWlb/muucdIIfwEzKHPRDj65Ud1hff5Sw5+RL6mtJJ0tg7ZXtjaK eXo0Brwj/Yy+L+TQFkLy9eYTRBoFsPP9KlmatvE/StbtXirjWl591t5qIcPlJkCkXiFo qeTMbSv8ou2Y45QB7rOKtwrYCVaQPvhSJxs8xhlHThodFsT9SiVZ8eiYKOo3w6OeuEmk jb3K6S5ieYl8cvL24CcQmU3bjyzuHa+4rAVRHYg5viauNa6XwTNnk7g+1/SOdtJuQ6HN ZO3aoPP1UekJUSm62JwmAf3Y1icer6CxzCAmfLBclIWZG4uv+ybf4wjj9uUvket80ljP 4g/w== 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:mime-version :content-transfer-encoding; bh=3zBbpyoelvZMQi2sOj6TWYdOKOApt3dyMAzoTjYhpAc=; b=S4pu3B1obrjKuWv9UybaRKO0tYhYggirPz2uqzyp3TFIslChFA4IDhB1X8eSlL+JIH jghjGjDZzyW0j7Z/3pWsctGz1ApXgBgpZ8bmr7O9bzsINM83e1xHoAKTDBBdHGvVjsFA yI2OftDusU7NncRHVvbaMwBsCiwstYRZbZ9iNu74CXUw9kbzv6NS1PMumWfQ0MSWVRjq RaEj2a6jGkoRq26/CAISAw51ZHht3Tkzejixo9g8rQDO4vNkNAJJKejs+Ps3TrONZXq0 YG9X6lNSuJdWMqh3YIOkt6bYxPg25LI8pOG6weFyM8HHYzwkvqDqVdnTcLPXhCxtuEtF 0dUQ== X-Gm-Message-State: AOAM533JgI4TqFIfpGUTeYX8RTqV1eOI98pudwf8kb9wx2t7uX2bbvDG lI15+9jgEa5e3s0WHEOK8Jw= X-Google-Smtp-Source: ABdhPJzt6T58mlmoPDLD8v56EY1rb+viEArjc61WgheODN7BSzGKeU9Rf3irgi2uWOLZsMpm1KOpcg== X-Received: by 2002:a7b:cd04:: with SMTP id f4mr15304085wmj.3.1589754573183; Sun, 17 May 2020 15:29:33 -0700 (PDT) Received: from localhost.localdomain (p200300f137132e00428d5cfffeb99db8.dip0.t-ipconnect.de. [2003:f1:3713:2e00:428d:5cff:feb9:9db8]) by smtp.googlemail.com with ESMTPSA id b65sm14624702wmc.30.2020.05.17.15.29.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2020 15:29:32 -0700 (PDT) From: Martin Blumenstingl To: ulf.hansson@linaro.org, linux-mmc@vger.kernel.org, linux-amlogic@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Martin Blumenstingl , Thomas Graichen Subject: [PATCH 1/2] mmc: host: meson-mx-sdhc: fix manual RX FIFO flushing Date: Mon, 18 May 2020 00:29:06 +0200 Message-Id: <20200517222907.1277787-1-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org For Meson8 and Meson8b SoCs the vendor driver follows the following pattern: - for eMMC and SD cards in .set_pdma it sets: pdma->rxfifo_manual_flush = 1; - for SDIO cards in .set_pdma it sets: pdma->rxfifo_manual_flush = 0; - before syncing the DMA read buffer is sets: pdma->rxfifo_manual_flush |= 0x02; Set the second bit of MESON_SDHC_PDMA_RXFIFO_MANUAL_FLUSH without clearing the first bit before syncing the DMA read buffer. This fixes a problem where Meson8 and Meson8b SoCs would read random garbage from SD cards. It is not clear why it worked for eMMC cards. This manifested in the following errors when plugging in an SD card: unrecognised SCR structure version Fixes: 53ded1b676d199 ("mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host") Cc: Thomas Graichen Signed-off-by: Martin Blumenstingl Tested-by: thomas graichen --- drivers/mmc/host/meson-mx-sdhc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/meson-mx-sdhc.c b/drivers/mmc/host/meson-mx-sdhc.c index 5c00958d7754..53e3f6a4245a 100644 --- a/drivers/mmc/host/meson-mx-sdhc.c +++ b/drivers/mmc/host/meson-mx-sdhc.c @@ -586,10 +586,17 @@ static irqreturn_t meson_mx_sdhc_irq_thread(int irq, void *irq_data) cmd->data->flags & MMC_DATA_READ) { meson_mx_sdhc_wait_cmd_ready(host->mmc); + /* + * If MESON_SDHC_PDMA_RXFIFO_MANUAL_FLUSH was + * previously 0x1 then it has to be set to 0x3. If it + * was 0x0 before then it has to be set to 0x2. Without + * this reading SD cards sometimes transfers garbage, + * which results in cards not being detected due to: + * unrecognised SCR structure version + */ val = FIELD_PREP(MESON_SDHC_PDMA_RXFIFO_MANUAL_FLUSH, 2); - regmap_update_bits(host->regmap, MESON_SDHC_PDMA, - MESON_SDHC_PDMA_RXFIFO_MANUAL_FLUSH, + regmap_update_bits(host->regmap, MESON_SDHC_PDMA, val, val); } From patchwork Sun May 17 22:29:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 11554413 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6D156912 for ; Sun, 17 May 2020 22:29:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5363F207C4 for ; Sun, 17 May 2020 22:29:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=googlemail.com header.i=@googlemail.com header.b="nLfxDJx+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726695AbgEQW3h (ORCPT ); Sun, 17 May 2020 18:29:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726444AbgEQW3g (ORCPT ); Sun, 17 May 2020 18:29:36 -0400 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DEC0DC061A0C; Sun, 17 May 2020 15:29:35 -0700 (PDT) Received: by mail-wr1-x442.google.com with SMTP id 50so9590595wrc.11; Sun, 17 May 2020 15:29:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5kskdNCXUeU43PRE2xrrGH3HyGgk8uIcHaWhxllvRd4=; b=nLfxDJx+McTvhZWta20rfp1gsNlKL/qrEtiIceLWUA74Rs9+LRa/hv6if9WC7mCf1p 9n9iH/m6woofKoeuzmj0tKBQkJLZTltyYraj9gJ5gFQuzfNbe8AfmezC/FOgB7+WhfKS XGLCX8Ecyv8FtdiyUb2F8czQCswT6asp2UQbxT2eJQX8k7Hbu738aXMJtWuSmw9Wxf5y Meitus7Nuo8x7kY3/NEmneV6vM08w5Ess6hB2Bg12J0TXVJATeEfCSeqLAijuO+Czzfh WxEhcm8Dky86RODxr1ph1IcFRlq/hS8+EzVCmSEOf7MMAeB2XbsBXs9Wyi0BkMiKTG3E pH6Q== 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=5kskdNCXUeU43PRE2xrrGH3HyGgk8uIcHaWhxllvRd4=; b=idS7ux3B/o5Qz6iJ0bCcxWQy5ddKvy5nkv2aH2blTZ6XyAkMeam/MzmcMB0QTbXgBr DSScHIw7VMFF7n+OcSPHo6LH1bR4qFZLQFFuhW2qKcLPSnzV8ErHRe+NQ/hPZjOs9giN HePa/ZAI0+D7af6K62rmFERO8cTE/O7rZBnpJlrRzHrQa8cCdCm8zRrLmhxPDXWOihAI BW+N5xkqQ9/aJK+dD7FECNaIdzyg3CTTca9mxjweKHBeGWexO8g0vS/WDvXfYIUCzenk cjbGXmRlHk1LHfuJilCv83obCxUlPieFaaPq/S1n6YlV8kdnQjT6WwIuokPo+TcKE3p+ +bJg== X-Gm-Message-State: AOAM532Gv5SQfuAIZ2JuazLAONRa9zR9Hvk+Q5oLoHTsf7aN1vXv/yXg LTMNt31lzwPr23vc/dYnQqnUWNSaO6c= X-Google-Smtp-Source: ABdhPJz2xthLfydkI05LOcHzz87pllggKjXjXyzZrAp1wsvEsDqdObOgExqdVKlsqRay7E0U3pCAwA== X-Received: by 2002:a05:6000:12c2:: with SMTP id l2mr15529375wrx.133.1589754574317; Sun, 17 May 2020 15:29:34 -0700 (PDT) Received: from localhost.localdomain (p200300f137132e00428d5cfffeb99db8.dip0.t-ipconnect.de. [2003:f1:3713:2e00:428d:5cff:feb9:9db8]) by smtp.googlemail.com with ESMTPSA id b65sm14624702wmc.30.2020.05.17.15.29.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2020 15:29:33 -0700 (PDT) From: Martin Blumenstingl To: ulf.hansson@linaro.org, linux-mmc@vger.kernel.org, linux-amlogic@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Martin Blumenstingl , kbuild test robot Subject: [PATCH 2/2] mmc: host: meson-mx-sdhc: don't use literal 0 to initialize structs Date: Mon, 18 May 2020 00:29:07 +0200 Message-Id: <20200517222907.1277787-2-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517222907.1277787-1-martin.blumenstingl@googlemail.com> References: <20200517222907.1277787-1-martin.blumenstingl@googlemail.com> MIME-Version: 1.0 Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org Kbuild test robot reports the following warning in lines 56 and 87 of drivers/mmc/host/meson-mx-sdhc-clkc.c: Using plain integer as NULL pointer Drop the integer value from the struct initialization to fix that warning. This will still ensure that the compiler will zero out the struct so it's in a well-defined state. Fixes: 53ded1b676d199 ("mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host") Reported-by: kbuild test robot Signed-off-by: Martin Blumenstingl --- drivers/mmc/host/meson-mx-sdhc-clkc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/meson-mx-sdhc-clkc.c b/drivers/mmc/host/meson-mx-sdhc-clkc.c index ab0d6c68a078..e1f29b279123 100644 --- a/drivers/mmc/host/meson-mx-sdhc-clkc.c +++ b/drivers/mmc/host/meson-mx-sdhc-clkc.c @@ -53,7 +53,7 @@ static int meson_mx_sdhc_clk_hw_register(struct device *dev, const struct clk_ops *ops, struct clk_hw *hw) { - struct clk_init_data init = { 0 }; + struct clk_init_data init = { }; char clk_name[32]; snprintf(clk_name, sizeof(clk_name), "%s#%s", dev_name(dev), @@ -84,7 +84,7 @@ static int meson_mx_sdhc_gate_clk_hw_register(struct device *dev, int meson_mx_sdhc_register_clkc(struct device *dev, void __iomem *base, struct clk_bulk_data *clk_bulk_data) { - struct clk_parent_data div_parent = { 0 }; + struct clk_parent_data div_parent = { }; struct meson_mx_sdhc_clkc *clkc_data; int ret;