From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754950AbbI3J3z (ORCPT ); Wed, 30 Sep 2015 05:29:55 -0400 Received: from mail-by2on0107.outbound.protection.outlook.com ([207.46.100.107]:61620 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751566AbbI3J3t (ORCPT ); Wed, 30 Sep 2015 05:29:49 -0400 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; mentor.com; dkim=none (message not signed) header.d=none;mentor.com; dmarc=none action=none header.from=freescale.com; Date: Wed, 30 Sep 2015 16:54:59 +0800 From: Robin Gong To: Anton Bondarenko CC: , , , , , , Subject: Re: [PATCH v2 7/8] spi: imx: defer spi initialization, if DMA engine is pending Message-ID: <20150930085458.GG2709@shlinux2> References: <42b82309e539e8a5523dca5364846c472ab9dcee.1442923630.git.anton_bondarenko@mentor.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <42b82309e539e8a5523dca5364846c472ab9dcee.1442923630.git.anton_bondarenko@mentor.com> Acked-by: Robin Gong User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11OLC003;1:YwcVZPZQz26C4hQyjVtq0vhBQ1sy2OdU2uhYbXDiFj2WvbG2bz1u+vyOxtbz7zyVTtMOIJPiw3GxibTeajCO0r6Ta0D8oIKO670A2VVCfI6jm6pF9nIje48r59INmddT5hECeg9YGg5bf3X0K1setlmtd10/92VNYp3YXWplG5FO4Dg7jsIncHaUOvNkDTzDgaRdVs118F3JYYNmRSCpQDB3T0oyexT5zqNi49+SK1qCDtpK4YpW2sdDyr6Xfd6aF4+oEsECoO6o09NqFnfQ/t6sr5gq1zAFHJ1oLjaQ9KGNCtkUK5cDUL63ZM4qAkVuqcSNUWYbFDkeelML6bNKyw== X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(24454002)(199003)(83506001)(6806005)(97756001)(104016004)(85426001)(33716001)(87936001)(189998001)(46406003)(5001960100002)(110136002)(33656002)(106466001)(69596002)(64706001)(105606002)(47776003)(76176999)(54356999)(50986999)(62966003)(5007970100001)(97736004)(5001860100001)(5001830100001)(11100500001)(4001350100001)(81156007)(77096005)(68736005)(4001540100001)(92566002)(77156002)(19580395003)(46102003)(50466002)(23726002)(5008740100001)(2950100001)(19580405001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB493;H:az84smr01.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB493;2:bt6KLzryYv4QKU67HycMHKuuVVj1niyvmRUZF3iy8osGRWJKCemAfjWtJth9UQfRS/041qODa5+8IRwoihfsai6z4eUFVzZ7WwPZiTImgKZ7C+8tSx1WTgxIQFI1oJxt3wAHJEkddSZjQzM+SAXhU9k+sFH74hPELzl0nsfuP8c=;3:/QiOWhrdYEicMq1ZdGOgVDpDMBYmFfdmSMCKCoy29RkeSgDl63vcCvWxXgTKrh6yxoFZAGRphZhEgz9y9pdlyvZVNvFdnoEfpABM1cPP0kPSFzMwBtpKlIAm7YJho8zCViLO4Gdhom8e5S+GgC/iI3S/h5PC+w71J/ta/mm9qDBo4dVc07g0MGUhOWQx5aWYN5mG4uXjtN5UJXoXrVUuBeWYDyWdcJEEP1c82OieWI4=;25:+3WsXsi6acQKYirgIxiayEO94VHDGxiG33T6uQHpxOjh4dLDx3t9QJLhmkbuGcRGFtlRr4Zg7wQIhevBlMxsnOnn2cjkF9Tp50hwg9oH6u1cr36he2vB8xYbUOrN6/O6yI7X1vqygGeecTTjfo/V7vRTYsdYF1wdzkyMITlDwacRsy4rHYk5UMg68exHCF+M6ZgY6gKtky7edh5i5OpKOrRz4QS79j9ZVkA2JsjZ8M7AwZyiL6XVmpMituv6/JXx X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB493; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB493;20:Cmwzh+lqLL83dXN7BILmycs6nufnYiYQjqXM1hQ8OHArtG3WtmfvUWzcbh2PfrkX5KjBKrUMoja/4Qa3mrQQnuWTU3EcJ5MvdlHPVQs8leAF5fN3pbinTnFtrtZcY0TudpyFnthuye3pt60DiU9erLVUKwogQMIRDW1hbYCpyVUfHOEsfoeXNQ1bo43TUlS+sAb0/gfvEa6bmQGgnPFwpV77mewRU9mQ/o69aeDHRjZmwSJMQsS/wM5DW17Av9ZgI3e3wbXlmgCXpOIxdnfAIhB8rpyrmK9N123Cu1nCKLEMh9tG64/N2ae4woHaaFtWajdiy2t+87bsmLMg8I2BXlbfEL759Ww5bOS/ctkbYVg=;4:Bz9kOLyJuTLToBAnjXyKhTN/BCFO1DJtnCHyKrY3cw91NCH8YfMGrnqfV7JclrSorYBb4Bjab1tiG5CcSfKHe+fKlLOg8nlxmdXrj2NPPxiqIMTmjOzMvc3tiM0+KslNWPPHeLIsNQ/bCuvi7q76ggZiima6BAFRDkrcL9bgD2rK/HsGYe1a+Y4GIHTa8YsBBt+BRg9V70WIT84uWcsdJC0y3sr5fnhSCZzrBgnuIb6qEkB6qEOl2kBiIT/4qAWKR+Q7R6qgsoYm6mZTg805z+5GiJS8tJ95hkkNt7RgCk+ScrjgvRpEJuzfuS5j+XQugybjJyivZANG7Tl+mQ+J4VFKGFbzb7E3o0KCQyyWeIE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001);SRVR:DM2PR03MB493;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB493; X-Forefront-PRVS: 071518EF63 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB493;23:Xniozluhl4Q2WfVAfoWzye0pX+OP1cV3tYy5UJpIPs?= =?us-ascii?Q?wOUeEDBowbpY4mGM+zHHQKVxYYxqtQcE8jt8YSt4eHR10BsLTv0YW2p/CHs2?= =?us-ascii?Q?rLfKg3VY63j2uqyjNofHfHYTWwKCnLYx6YL40GP+iyi3JupML2R/VQD60XAi?= =?us-ascii?Q?dBFK7PRRwPQDWhkB4iYN4ZiQgdXN87AWEm1erXn0lkYo3Y6R0MNiGNLVT0El?= =?us-ascii?Q?QveIB7fOiEnWUCiWGjEEwszzUYiPUCi1t2TKk19OknxfNh6ZJb0G6urd1rve?= =?us-ascii?Q?E041GyL1TVA/tad/QM2hEXwMVfis6mubX1bd+PDOHKsvL69PC76AqWyqAV+B?= =?us-ascii?Q?lRno+qKtyA3nLIXaqcjK6eeNWkyhR0lHm6sgV7FkOMEp2uEOwu10+/CyN4gC?= =?us-ascii?Q?+bEOecGeCJryJg+7/MiIs3IRD5jcSnKBqRy1rIc5Ee1CqxNRuv2Bbf/BGADP?= =?us-ascii?Q?tZc963cyMv8a7iVeyFe7qXum1w9G2QgiNniaziOFAS8tn5Xsf+Ja8e1tK9nl?= =?us-ascii?Q?CHoH5Qgtx3w0uYw4X6jb5935RZsCY8EwM375w5eNo8FfTy0gPdplxG8PrGqn?= =?us-ascii?Q?GL3BIabBCq+6oVlCrWBQJFSCEDAKvo8XT9u8rIMQqaEyvemS+VM5zToFACXg?= =?us-ascii?Q?mwF+ljZvf85wqdiSrksUM5hqO5EezwiDEeH+Mi3J2g7KMvZoheyTcEz1/RCL?= =?us-ascii?Q?8ySKGxZhufYxQ31+MdjFGjRBFCH8wSUs0TYcJiD+y/V3y+v3bq9zEBCk/OY0?= =?us-ascii?Q?1W/B5MBxIG94Px6p1EWNqaPhWikyFxm3lzOChO7kxN7vqNJcZ+bw5iHkHWRH?= =?us-ascii?Q?sVyJvH/Q8sl+V6k9PUhz2BniM7Edj7itumV6xGDiuLNpBl7eted1CPWFUjP/?= =?us-ascii?Q?+MZgdE5ea1LcJgkvDR8iiVNFpfr2Q/TNpQDKxJ0Yxe+bVQCLEVLMBemzqbkF?= =?us-ascii?Q?MKDrve2pegoL5ouuXabP+X1ea+e/LjHZffnV4BqvyNL2lyykC3pfLwMnlsWI?= =?us-ascii?Q?zAO3EQCVNiecGMsji4r/bJoCy/8g+0P9hidyheaSFBJtBq+y15sG1X4k68y4?= =?us-ascii?Q?MmmW4xVq6TvNZ+5lPVEhRdZrINaiuOPNXQLlPC/30x44+2Sh2H96htyT084H?= =?us-ascii?Q?A7GyxAzcGsA1OC99h3lsO14Lie/IIcctPRjoU2s0I3/8V8UnYnLRkVAHG6b/?= =?us-ascii?Q?N+MZciqEH70w+2lKT/3ByXNGXsPdpXPHxRehu13iG+V/nYzUtQe62fpSbmFU?= =?us-ascii?Q?F6j24wovV+aZEqsCUNi+E9nBhQvSSoRDfdFW4obOsIr+VOl6UNbAKmsAMNAE?= =?us-ascii?Q?7JPk+/vnFGptTlZ12Ygeo=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB493;5:126gzSH9EJLxcO+DzLaCnqRQ9ML8Hyb6LgdqkF117eIHf96IZ1ozRlEW9F/9CEQ3hizeATtIWGu/VL/85eGdXtPUIpklfPmyFzVqZD3BLGPXyU4+zNtQoZc2xkSMrqrjgmoivUpF444CqjCWEMrqKA==;24:KotlH1W6tmXoDpa5TLOFn5Dlc5UyAgX5o5VFU9T51N8Y+FvnBm35lnWNdvMkjGqbD5YrnatDUDeDkgwEUc8P3F7JmubPQtIxFNGZHh6tpic=;20:bqSUMznaWUcMMIKL5xBCg8X1jbs6XHD4R3sLE2LRFj73ONFLrqQw4//1TKct6bQL1/j3wf7kIQX5daOo9bBbpQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2015 08:55:36.8770 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB493 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 25, 2015 at 07:57:14PM +0200, Anton Bondarenko wrote: > If SPI device supports DMA mode, but DMA controller is not yet > available due to e.g. a delay in the corresponding kernel module > initialization, retry to initialize SPI driver later on instead of > falling back into PIO only mode. > > Signed-off-by: Vladimir Zapolskiy > Signed-off-by: Anton Bondarenko > --- > drivers/spi/spi-imx.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c > index 44d3cf0..1bf0739a 100644 > --- a/drivers/spi/spi-imx.c > +++ b/drivers/spi/spi-imx.c > @@ -1343,9 +1343,15 @@ static int spi_imx_probe(struct platform_device *pdev) > * Only validated on i.mx6 now, can remove the constrain if validated on > * other chips. > */ > - if (is_imx5x_ecspi(spi_imx) && > - spi_imx_sdma_init(&pdev->dev, spi_imx, master)) > - dev_err(&pdev->dev, "dma setup error,use pio instead\n"); > + if (is_imx5x_ecspi(spi_imx)) { > + ret = spi_imx_sdma_init(&pdev->dev, spi_imx, master); > + if (ret == -EPROBE_DEFER) > + goto out_clk_put; > + > + if (ret < 0) > + dev_err(&pdev->dev, "dma setup error %d, use pio\n", > + ret); > + } > > spi_imx->devtype_data->reset(spi_imx); > > -- > 2.5.2 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robin Gong Subject: Re: [PATCH v2 7/8] spi: imx: defer spi initialization, if DMA engine is pending Date: Wed, 30 Sep 2015 16:54:59 +0800 Message-ID: <20150930085458.GG2709@shlinux2> References: <42b82309e539e8a5523dca5364846c472ab9dcee.1442923630.git.anton_bondarenko@mentor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: muzaffar_mahmood@relay1.mentorg.com, jiada_wang@mentor.com, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, broonie@kernel.org, vladimir_zapolskiy@mentor.com, linux-arm-kernel@lists.infradead.org To: Anton Bondarenko Return-path: Content-Disposition: inline In-Reply-To: <42b82309e539e8a5523dca5364846c472ab9dcee.1442923630.git.anton_bondarenko@mentor.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org List-Id: linux-spi.vger.kernel.org On Fri, Sep 25, 2015 at 07:57:14PM +0200, Anton Bondarenko wrote: > If SPI device supports DMA mode, but DMA controller is not yet > available due to e.g. a delay in the corresponding kernel module > initialization, retry to initialize SPI driver later on instead of > falling back into PIO only mode. > > Signed-off-by: Vladimir Zapolskiy > Signed-off-by: Anton Bondarenko > --- > drivers/spi/spi-imx.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c > index 44d3cf0..1bf0739a 100644 > --- a/drivers/spi/spi-imx.c > +++ b/drivers/spi/spi-imx.c > @@ -1343,9 +1343,15 @@ static int spi_imx_probe(struct platform_device *pdev) > * Only validated on i.mx6 now, can remove the constrain if validated on > * other chips. > */ > - if (is_imx5x_ecspi(spi_imx) && > - spi_imx_sdma_init(&pdev->dev, spi_imx, master)) > - dev_err(&pdev->dev, "dma setup error,use pio instead\n"); > + if (is_imx5x_ecspi(spi_imx)) { > + ret = spi_imx_sdma_init(&pdev->dev, spi_imx, master); > + if (ret == -EPROBE_DEFER) > + goto out_clk_put; > + > + if (ret < 0) > + dev_err(&pdev->dev, "dma setup error %d, use pio\n", > + ret); > + } > > spi_imx->devtype_data->reset(spi_imx); > > -- > 2.5.2 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: b38343@freescale.com (Robin Gong) Date: Wed, 30 Sep 2015 16:54:59 +0800 Subject: [PATCH v2 7/8] spi: imx: defer spi initialization, if DMA engine is pending In-Reply-To: <42b82309e539e8a5523dca5364846c472ab9dcee.1442923630.git.anton_bondarenko@mentor.com> References: <42b82309e539e8a5523dca5364846c472ab9dcee.1442923630.git.anton_bondarenko@mentor.com> Message-ID: <20150930085458.GG2709@shlinux2> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Sep 25, 2015 at 07:57:14PM +0200, Anton Bondarenko wrote: > If SPI device supports DMA mode, but DMA controller is not yet > available due to e.g. a delay in the corresponding kernel module > initialization, retry to initialize SPI driver later on instead of > falling back into PIO only mode. > > Signed-off-by: Vladimir Zapolskiy > Signed-off-by: Anton Bondarenko > --- > drivers/spi/spi-imx.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c > index 44d3cf0..1bf0739a 100644 > --- a/drivers/spi/spi-imx.c > +++ b/drivers/spi/spi-imx.c > @@ -1343,9 +1343,15 @@ static int spi_imx_probe(struct platform_device *pdev) > * Only validated on i.mx6 now, can remove the constrain if validated on > * other chips. > */ > - if (is_imx5x_ecspi(spi_imx) && > - spi_imx_sdma_init(&pdev->dev, spi_imx, master)) > - dev_err(&pdev->dev, "dma setup error,use pio instead\n"); > + if (is_imx5x_ecspi(spi_imx)) { > + ret = spi_imx_sdma_init(&pdev->dev, spi_imx, master); > + if (ret == -EPROBE_DEFER) > + goto out_clk_put; > + > + if (ret < 0) > + dev_err(&pdev->dev, "dma setup error %d, use pio\n", > + ret); > + } > > spi_imx->devtype_data->reset(spi_imx); > > -- > 2.5.2 >