From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4610BEB64DA for ; Thu, 22 Jun 2023 16:29:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JbeI7qPIlVFfYo77w66AffSTkktfavKMDTRK0MOTVUU=; b=jcRYoVuahybIDe fXQzt1q6vjeu/K7LvljTYNGl5X833r+wCn/d5rLSaMUyelJXt5ALwglRDIHp7x7feBEVn4NoATUS3 6WPWDSaA5m2Gy/5wgSN3FE1x6GJbQpUG+YMy/MGQRZn4VIvCJTQ391uPqHDj+ngOxxO/igI3VwZ84 4hpwtZDOFm+P/zKO4peHAp1jM3ITSU7/6PfZljx6PN+dVpGzzXb/B8ed3VgYNFeuBVQ59fitxVsgu plj1wA16GOb/5DZ4jAxbZ/U9iRi7KIula94V02hSLkvu38vx1k4SQFx7Kp1mqtw4Sg1LK2mKA4LJ9 a/Hu6xdN9cVVE6pk9AYw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qCNBL-001EES-0Z; Thu, 22 Jun 2023 16:29:15 +0000 Received: from esa.microchip.iphmx.com ([68.232.153.233]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qCNBH-001EDv-1v for linux-arm-kernel@lists.infradead.org; Thu, 22 Jun 2023 16:29:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1687451351; x=1718987351; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=GRm1a9MaIZKZJD2PZa2dV+rdTjSJoCRrZ4avhCvMgWo=; b=Qc5EgzGm29EzPjNpH4SvE7Bcz5kkmM3WUBHPHbNQQQTyOG8odpz57vKG fGpRs1CaKCDJU5TphNfhhJNuF065ya+IUWwCkcw1cnovBcAnC+VYOJLJj 2BWg7XNePciz7HO05pm58DlN7BB0Yc/4mYvG3PTulbIl/bdudJUSx2cPY P9PXrC3Drq1TQhXXM/jiqkvvbma4R93UrQex4/F6jlTOnaaqW25PA4z2P 4ZVxQ1mee5EOGat3a3uKW49fKOWdRPAgMpPlBYGeC4UHgbNjcMIR4Bmf1 dZVFtwXy1F+ceHJJYedzU7Pt3biUM1XgpX5GnBwPj/YiW86xlS4NIyYZa Q==; X-IronPort-AV: E=Sophos;i="6.01,149,1684825200"; d="scan'208";a="219980090" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 22 Jun 2023 09:29:08 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 22 Jun 2023 09:29:08 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 22 Jun 2023 09:29:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oQR0K/zOI0MhuhUvLztfODNkNKCZrJUE32BNdmfoitZYQaV9RgsP6B3JU11ZCBygICpaUEkkHT4Gj6K5Wf+cFhebX4nexpcMNteIubh69VZ7Te+Y774bM//nIY9u6XT2nnxZ8bqYhHGgbDabPWgDWEoB/J38QEnb4CztCeF8n9I23aqZOTZ6yWZxeD3+ZV/Yt+C0XQgE8vkTFFPoYrhtSyr+QfZCUnocwNipJnyR35DyyZO8N8bx04tpHNizGk04uwdc/RKY6O0z2e7pEixoavgfjZFOowlZBzxnPgvmNRXf/WeauvGFkzd0c6N037lfxsWD6vp2IYaU4ZGzsfOBbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GRm1a9MaIZKZJD2PZa2dV+rdTjSJoCRrZ4avhCvMgWo=; b=lS/U8XzvAa21BcFL+JV7j9eN94zUjqu+R/0sdCb0oUF1lOD8DqzadDE8nLD5J4/LM+25ZEySF+bfXPM88KZF+17jjYeWNClbg3VqfDIROaCYbnLQ9MCfOYfgWC9C6Djnj9UBk/8Rxw/hcuEFIazIxdlRbCd4NYCGBc4QGc7UJQiJVYopnKlWEZsEQG6IqevKUt/uSCNQrBf/0ALJz/BxNpzs0JdZXjc9sTLSsqhNL3v02X8dkDNXT9K8+oibK3Z76Q68KDCDwGAtcofDl/nc1GaGzm7I/y1ynr8OTWX2oVFopOFXyYAAFkGOoG35euiYEMTdvrCJQCCPgKNq0NUMtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GRm1a9MaIZKZJD2PZa2dV+rdTjSJoCRrZ4avhCvMgWo=; b=rQenKotK4DIexsUfIBUfN8DKNKWSvGfACXpCO7vDFYdWXwBPxuDgfXBJkMWbom6g8NcLfjz6Fe6pY8e02Z2xSm7NRHfKYQuAnvpEUrbfuovPqnCXDuqYwZO/8J7cbbDfv7Xiyomvr6aSSyD9vyoKvpOO0okpFNxKCc4IVKJl380= Received: from BN7PR11MB2657.namprd11.prod.outlook.com (2603:10b6:406:b1::19) by MW4PR11MB7104.namprd11.prod.outlook.com (2603:10b6:303:22b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Thu, 22 Jun 2023 16:29:05 +0000 Received: from BN7PR11MB2657.namprd11.prod.outlook.com ([fe80::7b00:791c:2eb:8602]) by BN7PR11MB2657.namprd11.prod.outlook.com ([fe80::7b00:791c:2eb:8602%7]) with mapi id 15.20.6521.024; Thu, 22 Jun 2023 16:29:05 +0000 From: To: , , CC: , , , , , , Subject: Re: [PATCH v3 2/3] spi: atmel: Prevent false timeouts on long transfers Thread-Topic: [PATCH v3 2/3] spi: atmel: Prevent false timeouts on long transfers Thread-Index: AQHZpOkDTGOYb2E+h0q7UcGO8Uz6Pa+XA5OA Date: Thu, 22 Jun 2023 16:29:05 +0000 Message-ID: <035e89d4-03da-e8b3-bbd3-2301548f142d@microchip.com> References: <20230622090634.3411468-1-miquel.raynal@bootlin.com> <20230622090634.3411468-3-miquel.raynal@bootlin.com> In-Reply-To: <20230622090634.3411468-3-miquel.raynal@bootlin.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN7PR11MB2657:EE_|MW4PR11MB7104:EE_ x-ms-office365-filtering-correlation-id: 0c22c841-c0ee-4eca-a9e6-08db733dcc15 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qv2ywWDFqlhLxeA0x2zM1jMOekhPIxlWla5HqQn2p4gXk5sEsKOM2rITFKUDovJ9iSetFrStd7alZbpoHQYxfVfOqAqlgF4+BBbokQDHGFCCCEas8ze+rcURig1iuIV/E9EYXrf0yrkdAAyD2KvLg22DjZsh0pHkfHxlRLycse/rOU6IQ+KveNJ7OV9ZT5WYG645Wwhqb/bfNik9MUJGpv6xPMqKQcz313k1dbRkPkIfj2E8Lp0PZYa0spGX4h+uoEE7TEr8bctTT49pQS4RyOOwZ6zH6NGpQ4u5stjUUeC30vhJiG65qsNDBMu8tRU1SM1qtjmAFfyKKDH0nF5b8JF6+yXCew3UeAyDJkVkCxXsP7iAI+JIqXyKzgDraxAWCpYAlhWVJqKI3Y2kthUtt/f/LOKHwu/qftCUlKHh0t5TCRxPcoVvqOhBNFAfu/VQAJpbacQN34K/MDZENtHoeCFIKkoF2htYorf02rWC80lq2/+4E7yxIvZ2U91ZFXAicBtT5G6pZILufcLBKfpzFbtw+s7M64j8B91ObCmywA9/wjfj+ME7mEB6zfFPAvceK8Y1ch0GB2DjYtBJWFbXcvplss0vgJ15giOMnPvUiC3yECY/pyGn1Ivi6UZyEdY4 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN7PR11MB2657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(366004)(39860400002)(346002)(376002)(136003)(451199021)(54906003)(6486002)(110136005)(71200400001)(66946007)(66446008)(76116006)(66556008)(66476007)(478600001)(91956017)(64756008)(2616005)(26005)(186003)(6512007)(53546011)(6506007)(966005)(4326008)(8936002)(66899021)(41300700001)(8676002)(316002)(5660300002)(2906002)(38070700005)(38100700002)(122000001)(36756003)(31686004)(86362001)(31696002)(83380400001)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YlNZMGQwYnlEdW5jSEhtSU9CcDJBOWRSY2trNVpoQ2c5S1p6REtmcDhzV2h2?= =?utf-8?B?SzNZeTluRXROODZIb0RycjN2Y3h0Sy9nS3JQSkM1QUZ4YU9UUjhkeFE2VGx2?= =?utf-8?B?bzBsMS9JdzhPdHRrWU9ySFZQVkZFRHkzL2xsTXY0RHVGYlVtVUsxQmZCMXpO?= =?utf-8?B?RmxVZ0pDV2lTVmxVL0hZSGF1bmRaTzJFcE5wclpkcStDZHJIeURob3R1MDFP?= =?utf-8?B?ZTdMYlhKK3prcE5UdFZqQXlxZEgwT1pJQkNycUtKeU5uMzNoY3duY1lTb0x5?= =?utf-8?B?TjdBN0Z3SXJWQzR2bFBJeVJTOTRuYnVhV1VqY3lMeCsyamR4ZG00Ny9CTFdU?= =?utf-8?B?SitiOENQVDdxWVB5UHpnVHJpK2c2L3dRSFhQc0prS0ZaNnVoMDg1aFFsMXRL?= =?utf-8?B?R0doaVZ2K3JCVDlYRGN6UXhIUUFPaTcxaFVSOFM1QzVCc2d6cGZtaVVJQ1dL?= =?utf-8?B?Z1dGYW1PQ3NyNFRoN2FsdmN4bUVxMW5uamI1RzFqa09CUjNwVk93QVIrcFVT?= =?utf-8?B?N05nT0ZqdTA1bDlEb01IQStnMkpvcXR5YW9yVDZBbGx0c3RLY29ndFBXSThW?= =?utf-8?B?RTF6QU0weGNLblE5VE1oZGJWQU5GeENvNnpGNUg0clFzTlhkcUkxY0MwdmN5?= =?utf-8?B?Y2lwalFRakFPNUhvRTdRK0lwWVdBT2NESm43TE5kNkxJekhWSVdnQXd5cXFq?= =?utf-8?B?NGVPOEkrcFQzaGowYkxiVnBqRVdvTHlaL01GOVFySUJWK3UwdXdKTTJFNDht?= =?utf-8?B?SCtJYjh5aWlhQzVCRVltUjZFSVk1MlhUYmc3OVdMb0RNMUFMTGxJN1FXV1Rq?= =?utf-8?B?UUxkR0trbHdvQmIvN29keHE0dElTWHFVM2ZUd093K2dWeFJtU3JnZ3FUbUpu?= =?utf-8?B?NTdoS20zdWdTZjd5RW04M3hjcjlSM3VuUUdjdWJKeG9nZ25sRGhJdTFub004?= =?utf-8?B?Q2VxY0xaQ2FIdG5YcDE2bWdLV1I5c3ZXM3dGa25hZmlWbmd0bnBBTVZCNXRL?= =?utf-8?B?ZDV3SWJ4QzlNenN1aEE2T1RPVHBha2IxVEk5TFgrZzQ0TVpybjdiVW1Ibm9K?= =?utf-8?B?bXFaMWcrQU1uaTdBZjR3TXJpbDBpdDJEZkZLb1BXRzhMSXN6QkFYVGRlZWhq?= =?utf-8?B?SUxNeGt1cHM5UXMzRkxYMGRBU0JORzZiNkpIQS9MOUlJS00vZ1ZGenFVdjZK?= =?utf-8?B?SElYNGJUSlZISFNEMTNmaEgrdmZxUGZWbGg2YWkrMDBMZHJqOVdBdjhVc1pv?= =?utf-8?B?c1VxQllCbld1akR4Mjh2bUhuOXpYYndzQ3hWNnFwYWVzOTMwQWd4bW96UEls?= =?utf-8?B?eGVQWkREZzBZV09Uc2hYT0FwQ2xSRzI4QXd0bmxNVTRyZGhmdGZFWnpoajBW?= =?utf-8?B?RzM2cEhkUUNOMlNnK3FRcFdvcWYxN2l6Z1dYWjcxS2U3YlpTUlRHa21NaUJm?= =?utf-8?B?eUJYUzZ2bmNaMGVUa0E3UE9HUUZOQTJ4aTdzN2xMa3FTRUVTbFJUZjlkWXk5?= =?utf-8?B?b3ZZY1c1RWR6V2NLUW9BTHpGVm8reDE2UGxOa1FFeFpmUWVPQ3RVRDJFemRU?= =?utf-8?B?b09MM3BzcmRSbGcybHhYaWhRSnlyUkE2RVdsWGlsTDhUTXNYOUpvMmlFcGx0?= =?utf-8?B?N2pZWUlHR3NvUGNyWTZGUEJ2b2Nld2E5ZXFQTytoWjJkM3kyWGxZTGY2Yy9x?= =?utf-8?B?Uit6ZXdWdU0yRmN4b0RBcE5NZ2dIUjlFZ0xXSjdaTnNJb1NQSmtTUHdOaVYz?= =?utf-8?B?UXVYWFZGUDFyTGtZMUVoblhvWXNFZlhDR1A1cEozeC9HS2VweExWRkRYOTJX?= =?utf-8?B?THU5OGgvbjJoOTdjUXhwNDdJaTJZOStSY1NqYWwzTEJyYzNmSTFGTlNUU0l3?= =?utf-8?B?SWc5am5RNHBTeHFQcVRSTHdUNXIyL1k4OGhzZ2JKWUs0ZmY1V1pUOG5SdThs?= =?utf-8?B?dDhnd21PR2YxQ0pZcFdsOW1Kb2szenpmUEt6VFB0M2QxeVJQYUFza3NvSlBs?= =?utf-8?B?VlRwdG91WHFLMUpqNTdaTDFSbXBLR0FtZjg2cWIrQVdoQTl3TDdkUzlPb3pW?= =?utf-8?B?cnZsWDZoYml2dVhGWTdtNHM4SE11MW50MSs3SmpwWFpUVlcwWTB0TWlXSWFK?= =?utf-8?Q?I2//YaHcO+cLuhm8DLBvOarVs?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN7PR11MB2657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c22c841-c0ee-4eca-a9e6-08db733dcc15 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2023 16:29:05.6645 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hAvuisCRHrYH6383cxKOyS+Q1C4ecQo/ZG5XISPk3Qwm5rlfMnKsZ0XEjw1MNXXxZJ7iPtf+lo5RkqmBRZQ8rP/8btjCpXeVpHmoapWx5Qk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB7104 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230622_092911_823365_C0B43176 X-CRM114-Status: GOOD ( 27.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 6/22/23 02:06, Miquel Raynal wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > A slow SPI bus clocks at ~20MHz, which means it would transfer about > 2500 bytes per second with a single data line. Big transfers, like when > dealing with flashes can easily reach a few MiB. The current DMA timeout > is set to 1 second, which means any working transfer of about 4MiB will > always be cancelled. > > With the above derivations, on a slow bus, we can assume every byte will > take at most 0.4ms. Said otherwise, we could add 4ms to the 1-second > timeout delay every 10kiB. On a 4MiB transfer, it would bring the > timeout delay up to 2.6s which still seems rather acceptable for a > timeout. > > The consequence of this is that long transfers might be allowed, which > hence requires the need to interrupt the transfer if wanted by the > user. We can hence switch to the _interruptible variant of > wait_for_completion. This leads to a little bit more handling to also > handle the interrupted case but looks really acceptable overall. > > While at it, we drop the useless, noisy and redundant WARN_ON() call. > > Signed-off-by: Miquel Raynal Acked-by: Ryan Wanner > --- > drivers/spi/spi-atmel.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c > index 943548aab8af..d87be2890597 100644 > --- a/drivers/spi/spi-atmel.c > +++ b/drivers/spi/spi-atmel.c > @@ -233,7 +233,8 @@ > */ > #define DMA_MIN_BYTES 16 > > -#define SPI_DMA_TIMEOUT (msecs_to_jiffies(1000)) > +#define SPI_DMA_MIN_TIMEOUT (msecs_to_jiffies(1000)) > +#define SPI_DMA_TIMEOUT_PER_10K (msecs_to_jiffies(4)) > > #define AUTOSUSPEND_TIMEOUT 2000 > > @@ -1279,7 +1280,8 @@ static int atmel_spi_one_transfer(struct spi_controller *host, > struct atmel_spi_device *asd; > int timeout; > int ret; > - unsigned long dma_timeout; > + unsigned int dma_timeout; > + long ret_timeout; > > as = spi_controller_get_devdata(host); > > @@ -1333,11 +1335,13 @@ static int atmel_spi_one_transfer(struct spi_controller *host, > atmel_spi_unlock(as); > } > > - dma_timeout = wait_for_completion_timeout(&as->xfer_completion, > - SPI_DMA_TIMEOUT); > - if (WARN_ON(dma_timeout == 0)) { > - dev_err(&spi->dev, "spi transfer timeout\n"); > - as->done_status = -EIO; > + dma_timeout = msecs_to_jiffies(spi_controller_xfer_timeout(host, xfer)); > + ret_timeout = wait_for_completion_interruptible_timeout(&as->xfer_completion, > + dma_timeout); > + if (ret_timeout <= 0) { > + dev_err(&spi->dev, "spi transfer %s\n", > + !ret_timeout ? "timeout" : "canceled"); > + as->done_status = ret_timeout < 0 ? ret_timeout : -EIO; > } > > if (as->done_status) > -- > 2.34.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel