Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp2461906pxb; Mon, 11 Jan 2021 10:11:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJzeKeFkePuIy1rqftf4p+zT9ynaDM3+iKRBPwsZxy9cCC7LEMzez50qDOnaz+eXVn3v/TBG X-Received: by 2002:a17:906:1302:: with SMTP id w2mr490064ejb.413.1610388660171; Mon, 11 Jan 2021 10:11:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610388660; cv=none; d=google.com; s=arc-20160816; b=tZ4cIP6x5lOsyp5OcQ6e78rh8n4/nEtydYbRtF7xg3IdYXhhNm8/CgWYOkizvLp2xZ cMOeiaKnCan/VccT8dWCJDT1ND48QtNVkAWGS/J2gkFg9o5sBBJ9VAs/B+gZuh8b8BsB 43XfKgIJJvpmmuBvSDxw8Jg55JneT4WddGucmrZPLIIt2oVS0KC14uD/dfQG0u36TttZ HUbY4qVLsW4fDemPSP1MrAgSqCaF8ehet291NVmswzsbeuLfxr+uh+FkQJ8uEOOm9WYB q+Vb9vNY7LIpcMpI/p3ucZjLKucl1I66fPnRReSgQeYKr27di2T5i4asdvYURPgX+/Pj 4Hsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=MfaOulU+Mc40b45/hjM/TjLBGSkN+SyhGctwM6EuRRA=; b=xfWsyvN8OEQajl6WAYJa3+JdRHKAtwynhSjeLN0uNBEEwbgNrIw+IiBfFPsxKFCJQu fvPzVbUNDEVGVHpvRE/IHONfqiNPj1mE/XgEJKtNqellyLk7ECjKyN7G4hVr3qOCdVEc WoSZ25fsqw2dnr3Om3E0gFBYWlBkgsMDn2zZhtyHkFj3dHAIkAzaGh1WOd6e+mOMAyYI ylAAmdS95FK/Qonqkcj3aZbAd4ppO5qM96L8J/hhxbGI452XV4o1ykKtRhX05dy++taJ UC6/rO4we43ri8o26UvNgoslJaYVPDlLy6vZ0IlW7zsa1ZoLMpVJJ98MQ1qcEVPeQf1c wxXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=WskRhGFR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i7si73968ejx.34.2021.01.11.10.10.36; Mon, 11 Jan 2021 10:11:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=WskRhGFR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390221AbhAKSIL (ORCPT + 99 others); Mon, 11 Jan 2021 13:08:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390219AbhAKSIJ (ORCPT ); Mon, 11 Jan 2021 13:08:09 -0500 Received: from mail-vs1-xe30.google.com (mail-vs1-xe30.google.com [IPv6:2607:f8b0:4864:20::e30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DAF7C0617BA for ; Mon, 11 Jan 2021 10:06:56 -0800 (PST) Received: by mail-vs1-xe30.google.com with SMTP id x4so54476vsp.7 for ; Mon, 11 Jan 2021 10:06:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=MfaOulU+Mc40b45/hjM/TjLBGSkN+SyhGctwM6EuRRA=; b=WskRhGFRleQ1ieZKijVafVEHRb4c8bzCFMA7RalCB2nRv2UwUR984nG6uHHsyYPGQu gqcvhtctdQFLp29fBJa0Qv5azxQvFQhjK+fl0EzzQJGN82UmIBn2hWXQMB33jvU4nxdS 3WWd4onzEFI3JaAGrYrWSRz3u5oJIiVqZAKjHH73V1jE4j2ZM5RezxCOAGsY8XOxvpGy 3aetwzYuCMQPsxRyH2QbvpQrfvZK71Veszma/z2LXDngU7APnO4M8OovambVXuqSD0rx uZEXpSELqk5LiOOZzWye3u4yjbg9sVUppGi6AlhHKUsVKABph0UD/fPrpEqNL9JbpmH8 mGmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=MfaOulU+Mc40b45/hjM/TjLBGSkN+SyhGctwM6EuRRA=; b=WsJJgO/2wIniMTAjO6zKIHuZDrtG2KtTT/NnFceLO45VabgaxyZjdfDqz3QBP+mD3a IJH0bl2NIn0qtGFZ7+5LDnusfRqdH4/5BZE37Wnif4UdlhImiqLMtPAHYMp4WUTDO2j8 tTkQmwQEfeaDg+aKUx6PvJ83MMN8DccVFeL6tDUW3x3Cr8ApMLC9LA8ZVao8/O+dV4r5 Waoa7mGMnE9ugDMLPN3Z/8nc2mXhwJHG6Dbr4onlW5QfPOikXP15syRQcze87jgCBULo 3ejUS40Zfqbga4nDUq0pZLV3dC01LBd0HFD/5LosWzh/yy9WzCeCvonL92/Y86TRNlyE KftA== X-Gm-Message-State: AOAM531zotio7gvaFpKMNuMMwrW3QAq0l49414ASxvuL0HiNiWtrTGiu w735wo3GTgsSZOB5JNLfQtY9Y2BtSNa1p/EiK381QA== X-Received: by 2002:a67:fe85:: with SMTP id b5mr797102vsr.19.1610388415324; Mon, 11 Jan 2021 10:06:55 -0800 (PST) MIME-Version: 1.0 References: <20201211011934.6171-1-andre.przywara@arm.com> <20201211011934.6171-10-andre.przywara@arm.com> In-Reply-To: <20201211011934.6171-10-andre.przywara@arm.com> From: Ulf Hansson Date: Mon, 11 Jan 2021 19:06:17 +0100 Message-ID: Subject: Re: [PATCH v2 09/21] mmc: sunxi: add support for A100 mmc controller To: Andre Przywara Cc: Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec , Icenowy Zheng , Linus Walleij , Rob Herring , =?UTF-8?B?Q2zDqW1lbnQgUMOpcm9u?= , Shuosheng Huang , Yangtao Li , Linux ARM , Linux Kernel Mailing List , linux-sunxi , "linux-mmc@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 11 Dec 2020 at 02:20, Andre Przywara wrote: > > From: Yangtao Li > > This patch adds support for A100 MMC controller, which use word address > for internal dma. > > Signed-off-by: Yangtao Li > Signed-off-by: Andre Przywara Applied for next to my mmc tree, thanks! Kind regards Uffe > --- > drivers/mmc/host/sunxi-mmc.c | 28 +++++++++++++++++++++++++--- > 1 file changed, 25 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c > index fc62773602ec..1518b64112b7 100644 > --- a/drivers/mmc/host/sunxi-mmc.c > +++ b/drivers/mmc/host/sunxi-mmc.c > @@ -244,6 +244,7 @@ struct sunxi_idma_des { > > struct sunxi_mmc_cfg { > u32 idma_des_size_bits; > + u32 idma_des_shift; > const struct sunxi_mmc_clk_delay *clk_delays; > > /* does the IP block support autocalibration? */ > @@ -343,7 +344,7 @@ static int sunxi_mmc_init_host(struct sunxi_mmc_host *host) > /* Enable CEATA support */ > mmc_writel(host, REG_FUNS, SDXC_CEATA_ON); > /* Set DMA descriptor list base address */ > - mmc_writel(host, REG_DLBA, host->sg_dma); > + mmc_writel(host, REG_DLBA, host->sg_dma >> host->cfg->idma_des_shift); > > rval = mmc_readl(host, REG_GCTRL); > rval |= SDXC_INTERRUPT_ENABLE_BIT; > @@ -373,8 +374,10 @@ static void sunxi_mmc_init_idma_des(struct sunxi_mmc_host *host, > > next_desc += sizeof(struct sunxi_idma_des); > pdes[i].buf_addr_ptr1 = > - cpu_to_le32(sg_dma_address(&data->sg[i])); > - pdes[i].buf_addr_ptr2 = cpu_to_le32((u32)next_desc); > + cpu_to_le32(sg_dma_address(&data->sg[i]) >> > + host->cfg->idma_des_shift); > + pdes[i].buf_addr_ptr2 = cpu_to_le32((u32)next_desc >> > + host->cfg->idma_des_shift); > } > > pdes[0].config |= cpu_to_le32(SDXC_IDMAC_DES0_FD); > @@ -1178,6 +1181,23 @@ static const struct sunxi_mmc_cfg sun50i_a64_emmc_cfg = { > .needs_new_timings = true, > }; > > +static const struct sunxi_mmc_cfg sun50i_a100_cfg = { > + .idma_des_size_bits = 16, > + .idma_des_shift = 2, > + .clk_delays = NULL, > + .can_calibrate = true, > + .mask_data0 = true, > + .needs_new_timings = true, > +}; > + > +static const struct sunxi_mmc_cfg sun50i_a100_emmc_cfg = { > + .idma_des_size_bits = 13, > + .idma_des_shift = 2, > + .clk_delays = NULL, > + .can_calibrate = true, > + .needs_new_timings = true, > +}; > + > static const struct of_device_id sunxi_mmc_of_match[] = { > { .compatible = "allwinner,sun4i-a10-mmc", .data = &sun4i_a10_cfg }, > { .compatible = "allwinner,sun5i-a13-mmc", .data = &sun5i_a13_cfg }, > @@ -1186,6 +1206,8 @@ static const struct of_device_id sunxi_mmc_of_match[] = { > { .compatible = "allwinner,sun9i-a80-mmc", .data = &sun9i_a80_cfg }, > { .compatible = "allwinner,sun50i-a64-mmc", .data = &sun50i_a64_cfg }, > { .compatible = "allwinner,sun50i-a64-emmc", .data = &sun50i_a64_emmc_cfg }, > + { .compatible = "allwinner,sun50i-a100-mmc", .data = &sun50i_a100_cfg }, > + { .compatible = "allwinner,sun50i-a100-emmc", .data = &sun50i_a100_emmc_cfg }, > { /* sentinel */ } > }; > MODULE_DEVICE_TABLE(of, sunxi_mmc_of_match); > -- > 2.17.5 >