Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp496152pxv; Fri, 9 Jul 2021 02:46:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEtexoByUo6dA9m30ulNf3cVFMnXhH9hjb9RY/Wc1nF//y+MlCGvil595ss04Xt0CG6rIg X-Received: by 2002:a05:6638:168a:: with SMTP id f10mr26500861jat.73.1625823965231; Fri, 09 Jul 2021 02:46:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625823965; cv=none; d=google.com; s=arc-20160816; b=KJKssm+hYndSb3mx4mWmWmUZlY+iVS4sVU+L0hkhJLVCYDEOmc/WnzrqmYesPzkxsf t+hzP0KyJ3eO8J5Y5g7Q5uOPLoDVAKT1ikiPH/rqNIN4MU9jSPoGqXGQQp1/L9B4msFd Vp6sT9SoI/spnUHcahjHFLaftQduOIb7pib/NT+xLeO7z6gNuwcmMJC92dxjKeVoEpxL GlwUiBVFoceHepQ1vJz47W7DaBtJX3db7dzARPfhzldxdsicjYO2PTU9Ia0zTVYBsuOo qjfy5N+UbZZvuZz6cSqlrqKmD9+H2UI9nKEoe8Rfjz0WsqIf+u8tN6RQJwftS4NS3cRl Vnvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id; bh=0gTVtVpq0B6QYq6ek5woVGcHbSEj6fUwGZJwtkCmEMI=; b=bs87d0Xzz5aLchOrm/8Dar7llWSE7X/CK0baejGZlwvBHKUXooRILIT0O+ZJmI70ni iAxi0nLmsTo/fafdcU00dM8G/eGI5XGW4PVh2zWyNhjXBowTA/vjQ7q3YZAOi2S8Ax7Q 7GpTqPjZHE0G8RTQBqxZK53t7VqecLOz07FxDNO7BDkzkFcqmJmNL4Ad7i65utCtyBkW EktLtMwc5l0ecduhgM10hTU3KaEfgc8tlT2gh3cYfOjoEOMsY2YnoSLYSChW4G3u9xlj g7geCnVeQzH7bhvarbENAgSVqzoh7bOaicbm75bKP2vPsZBOCPuHrjOORWffvgycfEQg AS8w== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s4si5858165ilv.54.2021.07.09.02.45.52; Fri, 09 Jul 2021 02:46:05 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231887AbhGIJrv (ORCPT + 99 others); Fri, 9 Jul 2021 05:47:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51758 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229503AbhGIJrt (ORCPT ); Fri, 9 Jul 2021 05:47:49 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0FDCC0613DD for ; Fri, 9 Jul 2021 02:45:06 -0700 (PDT) Received: from gallifrey.ext.pengutronix.de ([2001:67c:670:201:5054:ff:fe8d:eefb] helo=[IPv6:::1]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m1n43-0000Qj-5u; Fri, 09 Jul 2021 11:44:55 +0200 Message-ID: <3ade0741d94e53eb2bca86743ad11e55899381d7.camel@pengutronix.de> Subject: Re: [PATCH v14 09/12] dmaengine: imx-sdma: remove ERR009165 on i.mx6ul From: Lucas Stach To: Robin Gong , vkoul@kernel.org, mark.rutland@arm.com, broonie@kernel.org, robh+dt@kernel.org, catalin.marinas@arm.com, will.deacon@arm.com, shawnguo@kernel.org, festevam@gmail.com, s.hauer@pengutronix.de, martin.fuzzey@flowbird.group, u.kleine-koenig@pengutronix.de, dan.j.williams@intel.com, matthias.schiffer@ew.tq-group.com, frieder.schrempf@kontron.de, m.felsch@pengutronix.de, xiaoning.wang@nxp.com Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, linux-imx@nxp.com, kernel@pengutronix.de, dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org Date: Fri, 09 Jul 2021 11:44:53 +0200 In-Reply-To: <1617809456-17693-10-git-send-email-yibin.gong@nxp.com> References: <1617809456-17693-1-git-send-email-yibin.gong@nxp.com> <1617809456-17693-10-git-send-email-yibin.gong@nxp.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.40.1 (3.40.1-1.fc34) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 2001:67c:670:201:5054:ff:fe8d:eefb X-SA-Exim-Mail-From: l.stach@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Mittwoch, dem 07.04.2021 um 23:30 +0800 schrieb Robin Gong: > ECSPI issue fixed from i.mx6ul at hardware level, no need > ERR009165 anymore on those chips such as i.mx8mq. > > Signed-off-by: Robin Gong > Acked-by: Vinod Koul > --- > drivers/dma/imx-sdma.c | 26 +++++++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c > index 86bd383..af85116 100644 > --- a/drivers/dma/imx-sdma.c > +++ b/drivers/dma/imx-sdma.c > @@ -422,6 +422,13 @@ struct sdma_driver_data { > int num_events; > struct sdma_script_start_addrs *script_addrs; > bool check_ratio; > + /* > + * ecspi ERR009165 fixed should be done in sdma script > + * and it has been fixed in soc from i.mx6ul. > + * please get more information from the below link: > + * https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf > + */ > + bool ecspi_fixed; > }; > > struct sdma_engine { > @@ -542,6 +549,13 @@ static struct sdma_driver_data sdma_imx6q = { > .script_addrs = &sdma_script_imx6q, > }; > > +static struct sdma_driver_data sdma_imx6ul = { > + .chnenbl0 = SDMA_CHNENBL0_IMX35, > + .num_events = 48, > + .script_addrs = &sdma_script_imx6q, > + .ecspi_fixed = true, > +}; > + > static struct sdma_script_start_addrs sdma_script_imx7d = { > .ap_2_ap_addr = 644, > .uart_2_mcu_addr = 819, > @@ -575,6 +589,7 @@ static const struct of_device_id sdma_dt_ids[] = { > { .compatible = "fsl,imx31-sdma", .data = &sdma_imx31, }, > { .compatible = "fsl,imx25-sdma", .data = &sdma_imx25, }, > { .compatible = "fsl,imx7d-sdma", .data = &sdma_imx7d, }, > + { .compatible = "fsl,imx6ul-sdma", .data = &sdma_imx6ul, }, > { .compatible = "fsl,imx8mq-sdma", .data = &sdma_imx8mq, }, > { /* sentinel */ } > }; > @@ -1144,8 +1159,17 @@ static int sdma_config_channel(struct dma_chan *chan) > if (sdmac->peripheral_type == IMX_DMATYPE_ASRC_SP || > sdmac->peripheral_type == IMX_DMATYPE_ASRC) > sdma_set_watermarklevel_for_p2p(sdmac); > - } else > + } else { > + /* > + * ERR009165 fixed from i.mx6ul, no errata need, > + * set bit31 to let sdma script skip the errata. > + */ > + if (sdmac->peripheral_type == IMX_DMATYPE_CSPI && > + sdmac->direction == DMA_MEM_TO_DEV && > + sdmac->sdma->drvdata->ecspi_fixed) > + __set_bit(31, &sdmac->watermark_level); Hm, I don't care much either way, but couldn't we just return the regular mcu_2_app script in sdma_get_pc when ecspi_fixed == true? Seems like this would be a simpler and more targeted code change. Regards, Lucas > __set_bit(sdmac->event_id0, sdmac->event_mask); > + } > > /* Address */ > sdmac->shp_addr = sdmac->per_address;