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 DD1BEE7718A for ; Wed, 18 Dec 2024 10:55:15 +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:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=V4U86Ny3+bohQmB4Qj+pTKk5PCiALSNjiQefCIOuf+M=; b=nk98jgIfWtPdDb gNjCrXbcm3RSfCs1QQ8zMBYOFj/5U0Tn9gFFMWDpRaTXMltHsD6yVWGi4YhO8LNTtGxlugSPpyhuQ nG0edEd25zNCIdhKKqXxMgLf6DwxZf7dZRFw4I5GKiFdSLeUGohzzE3AvSyc8DXDH7MqxcQh6aZX1 GT8MRoG/t7ZlvTvHy0e0pKq3bz89DPat/W0XWQZ/BokeAs4wKSVys+niVO+dCT94b3VJwGzwKGmkY 2UVVcNIZITB/CEcA89B8gfIocQIB1kFgF4Pvw0ghkrMAvU1NdWgfYmQMxjS5H2jATyxXAcYgcz8BY Z/tboPZYF6lCLqA2st3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tNrhw-0000000GLZ7-1QWp; Wed, 18 Dec 2024 10:55:12 +0000 Received: from relay6-d.mail.gandi.net ([217.70.183.198]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tNqUS-0000000G8VL-2Uwa for linux-mtd@lists.infradead.org; Wed, 18 Dec 2024 09:37:13 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 27210C0004; Wed, 18 Dec 2024 09:37:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1734514630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2IUfVG2ymBHDabdRbkyKDirMaGDsjbAhvPisQo1LMTg=; b=oHJB1j0NtAv+D4tmGyxnlDfgk+1kCVB/U6Zvzj5lmg8BFgIWR5HFLrsSzYBNySAFeRkzCn YAqJCAxsKdkoLcWZEX7+0VsZ89enQFWr+TgQ0QfSa2k0grs8B8efKr28p7L5RNvsrdkZOH PPVG+sVGVSolJDVndBqRRUvHX1xJbm5nBvgqmjiEQ7EsoOpd6u4A9iIVNkAn5b/JlCiwRR UGh8ivWr56F4v5VkwKPmFcYQ5sJIwQ0veXUGZoE2H0HKYO9wnSqOGYw7gR/EGRfcR+G1hs CjkxiSJ2Lf7giY5SnIwPOltUrU/Q+ac2636S0yFf93jnED9eEpt1Ejc3KwRM8g== From: Miquel Raynal To: Tudor Ambarus Cc: Richard Weinberger , Vignesh Raghavendra , Pratyush Yadav , Michael Walle , linux-mtd@lists.infradead.org, Mark Brown , linux-spi@vger.kernel.org, Steam Lin , Thomas Petazzoni , Sanjay R Mehta , Han Xu , Conor Dooley , Daire McNamara , Matthias Brugger , AngeloGioacchino Del Regno , Haibo Chen , Yogesh Gaur , Heiko Stuebner , Michal Simek Subject: Re: [PATCH 01/24] spi: spi-mem: Extend spi-mem operations with a per-operation maximum frequency In-Reply-To: <01f1bddd-7aee-4c90-9fa0-3b94c87eb469@linaro.org> (Tudor Ambarus's message of "Wed, 18 Dec 2024 08:07:24 +0000") References: <20241025161501.485684-1-miquel.raynal@bootlin.com> <20241025161501.485684-2-miquel.raynal@bootlin.com> <87jzc3oo6g.fsf@bootlin.com> <01f1bddd-7aee-4c90-9fa0-3b94c87eb469@linaro.org> User-Agent: mu4e 1.12.7; emacs 29.4 Date: Wed, 18 Dec 2024 10:37:07 +0100 Message-ID: <878qsde3i4.fsf@bootlin.com> MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241218_013712_892719_7FAFE72F X-CRM114-Status: GOOD ( 17.18 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gMTgvMTIvMjAyNCBhdCAwODowNzoyNCBHTVQsIFR1ZG9yIEFtYmFydXMgPHR1ZG9yLmFtYmFy dXNAbGluYXJvLm9yZz4gd3JvdGU6Cgo+IE9uIDEyLzEzLzI0IDEwOjQ2IEFNLCBNaXF1ZWwgUmF5 bmFsIHdyb3RlOgo+PiBIZWxsbyBUdWRvciwKPj4gCj4KPiBIaSEKPgo+PiBPbiAxMS8xMS8yMDI0 IGF0IDEzOjA3OjA5IEdNVCwgVHVkb3IgQW1iYXJ1cyA8dHVkb3IuYW1iYXJ1c0BsaW5hcm8ub3Jn PiB3cm90ZToKPj4gCj4+PiBPbiAxMC8yNS8yNCA1OjE0IFBNLCBNaXF1ZWwgUmF5bmFsIHdyb3Rl Ogo+Pj4KPj4+IGN1dAo+Pj4KPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGkt bWVtLmMgYi9kcml2ZXJzL3NwaS9zcGktbWVtLmMKPj4+PiBpbmRleCAxN2I4YmFmNzQ5ZTYuLmFi NjUwYWU5NTNiYiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL3NwaS9zcGktbWVtLmMKPj4+PiAr KysgYi9kcml2ZXJzL3NwaS9zcGktbWVtLmMKPgo+IGN1dAo+Cj4+Pj4gKwlpZiAoIW9wLT5tYXhf ZnJlcSB8fCBvcC0+bWF4X2ZyZXEgPiBtZW0tPnNwaS0+bWF4X3NwZWVkX2h6KQo+Pj4+ICsJCSgo c3RydWN0IHNwaV9tZW1fb3AgKilvcCktPm1heF9mcmVxID0gbWVtLT5zcGktPm1heF9zcGVlZF9o ejsKPj4+Cj4+PiBub3QgYSBiaWcgZmFuIG9mIGNhc3RpbmcgdGhlIGNvbnN0IG91dC4gSG93IGFi b3V0IGludHJvZHVjaW5nIGEKPj4+IHNwaV9tZW1fYWRqdXN0X29wX2ZyZXEoKT8gVGhlIHVwcGVy IGxheWVycyB3aWxsIHVzZSB0aGF0IHdlcmUgbmVlZGVkLAo+Pj4gYW5kIHlvdSdsbCBzdGlsbCBi ZSBhYmxlIHRvIHBhc3MgYSBjb25zdCBvcCB0byBzcGlfbWVtX2V4ZWNfb3AoKQo+PiAKPj4gSSBr bm93IGl0IGlzIG5vdCBpZGVhbCBzbyB0byBmb2xsb3cgeW91ciBpZGVhIEkgZHJhZnRlZCB0aGUg dXNlIG9mCj4+IHNwaV9tZW1fYWRqdXN0X29wX2ZyZXEoKS4gSW4gb3JkZXIgdG8gYXZvaWQgdGhl IGNhc3QsIHdlIGFjdHVhbGx5IG5lZWQKPj4gdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGV2ZXJ5d2hl cmUgaW4gdGhlIGNvcmUgYW5kIHRoZSBkcml2ZXJzIHRvIG1ha2UKPj4gc3VyZSB3ZSBuZXZlciBn ZXQgb3V0IG9mIGJvdW5kcywgYnV0IGhlcmUgaXMgdGhlIHByb2JsZW06Cj4+IAo+PiAgICAgJCBn aXQgZ3JlcCAtdyBzcGlfbWVtX2V4ZWNfb3AgLS0gZHJpdmVycy8gfCB3YyAtbAo+PiAgICAgNDIK Pj4gCj4+IFRoaXMgYXBwcm9hY2ggcmVxdWlyZXMgdG8gYWRkIGEgY2FsbCB0byBzcGlfbWVtX2Fk anVzdF9vcF9mcmVxKCkgYmVmb3JlCj4+ICpldmVyeSogc3BpX21lbV9leGVjX29wKCkuIFllcyBJ IGNhbiBkbyB0aGF0IGJ1dCB0aGF0IG1lYW5zIHRvIGJlIHZlcnkKPj4gYXR0ZW50aXZlIHRvIHRo ZSBmYWN0IHRoYXQgdGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgYWx3YXlzIGNhbGxlZAo+PiB0b2dl dGhlci4gSSBhbSBub3Qgc3VyZSBpdCBpcyBhIGdvb2QgaWRlYS4KPj4gCj4+IFdoYXQgYWJvdXQg ZG9pbmcgdGhlIGZvbGxvd2luZyBvbmNlIGluIHNwaV9tZW1fZXhlY19vcCgpIGluc3RlYWQ/Cj4+ IAo+PiAgICAgc3BpX21lbV9hZGp1c3Rfb3BfZnJlcShkZXNjLT5tZW0sIChzdHJ1Y3Qgc3BpX21l bV9vcCAqKW9wKTsKPj4gCj4+IEkga25vdyB3ZSBzdGlsbCBoYXZlIGEgY2FzdCwgYnV0IGl0IGZl ZWxzIG1vcmUgYWNjZXB0YWJsZSB0aGFuIHRoZSBvbmUgSQo+PiBpbml0aWFsbHkgcHJvcG9zZWQg YW5kIGNvdmVycyBhbGwgY2FzZXMuIEkgd291bGQgbm90IGFjY2VwdCB0aGF0IGluIGEKPj4gZHJp dmVyLCBidXQgaGVyZSB3ZSBhcmUgaW4gdGhlIGNvcmUsIHNvIHRoYXQgc291bmRzIGFjY2VwdGFi bGUuCj4+IAo+PiBBbm90aGVyIHBvc3NpYmlsaXR5IG90aGVyd2lzZSB3b3VsZCBiZSB0byBkcm9w IHRoZSBjb25zdCBmcm9tIHRoZQo+PiBzcGlfbWVtX29wIHN0cnVjdHVyZSBlbnRpcmVseS4gQnV0 IEkgcHJlZmVyIHRoZSBhYm92ZSBmdW5jdGlvbiBjYWxsLgo+Cj4gSG93IGFib3V0IGludHJvZHVj aW5nIGEgc3BpX25hbmRfc3BpbWVtX2V4ZWNfb3AoKSB3aGVyZSB5b3UgY2FsbAo+IHNwaV9tZW1f YWRqdXN0X29wX2ZyZXEoKSBhbmQgc3BpX21lbV9leGVjX29wKCk/CgpUaGF0IHdvdWxkIHdvcmsg dG8gbWFrZSB0aGUgY2FzdCBkaXNhcHBlYXIgYnV0IFRCSCB3b3VsZCBub3QgYmUgdG90YWxseQpy ZWxldmFudCBhcyBhZGp1c3RpbmcgdGhlIGZyZXF1ZW5jeSBpcyB0eXBpY2FsbHkgc29tZXRoaW5n IHRoYXQgd291bGQKYmVuZWZpdCB0byBzcGktbm9yIGFzIHdlbGwgKG1heWJlIGluIHRoZSBmdXR1 cmUpIGFuZCB0aGVyZWZvcmUgd291bGQKZnVsbHkgYXBwbHkgdG8gc3BpIG1lbW9yaWVzIGFzIGEg d2hvbGUsIG5vdCBqdXN0IHNwaS1uYW5kLiBXZSBjYW4gdGhpbmsKYWJvdXQgYW5vdGhlciBuYW1p bmcgbWF5YmUsIGJ1dCBJIGZpbmQgbGlrZSBzcGlfbWVtX2V4ZWNfb3AoKSBpcyB0aGUKcmlnaHQg bG9jYXRpb24gdG8gZG8gdGhpcy4KClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9u IG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LW10ZC8K From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20AB6165F16 for ; Wed, 18 Dec 2024 09:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.198 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734514634; cv=none; b=qjvm7BTTrliJHk8v1Rhkkd4DqXS9DZOnxyV76jjaQPV7+j5vIitnlSCk0qZslOlaVI78UFYzD8YiezIkcT3ir3VyQUG+rX6lcMC0lCl14Nh96QwmuyPk1nQ1YC2y1hhAUzgsGpRbgqiR82MY4DMitu9lDFrWTeP1HVgYEgoeLWA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734514634; c=relaxed/simple; bh=iUT5858rch9M7Sg8O/K72uKn0NAjabVvCmA5p9+Optg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=Zi6pEufD+SbIwzOxwB9rB7yhKuV67M17CCu7hDyGgPW9qMtemIovN4j6IIKwZe9yHeyq35DOShk4EFKQBvEGPmVunS4V5bUgozmcxv7z42XfNl0h4SlG1yptAXTOLzAq/4FycmWWUDCY5BMKI7rCWx+j89Gyf9EMd3mAN7TF2mY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=oHJB1j0N; arc=none smtp.client-ip=217.70.183.198 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="oHJB1j0N" Received: by mail.gandi.net (Postfix) with ESMTPSA id 27210C0004; Wed, 18 Dec 2024 09:37:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1734514630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2IUfVG2ymBHDabdRbkyKDirMaGDsjbAhvPisQo1LMTg=; b=oHJB1j0NtAv+D4tmGyxnlDfgk+1kCVB/U6Zvzj5lmg8BFgIWR5HFLrsSzYBNySAFeRkzCn YAqJCAxsKdkoLcWZEX7+0VsZ89enQFWr+TgQ0QfSa2k0grs8B8efKr28p7L5RNvsrdkZOH PPVG+sVGVSolJDVndBqRRUvHX1xJbm5nBvgqmjiEQ7EsoOpd6u4A9iIVNkAn5b/JlCiwRR UGh8ivWr56F4v5VkwKPmFcYQ5sJIwQ0veXUGZoE2H0HKYO9wnSqOGYw7gR/EGRfcR+G1hs CjkxiSJ2Lf7giY5SnIwPOltUrU/Q+ac2636S0yFf93jnED9eEpt1Ejc3KwRM8g== From: Miquel Raynal To: Tudor Ambarus Cc: Richard Weinberger , Vignesh Raghavendra , Pratyush Yadav , Michael Walle , linux-mtd@lists.infradead.org, Mark Brown , linux-spi@vger.kernel.org, Steam Lin , Thomas Petazzoni , Sanjay R Mehta , Han Xu , Conor Dooley , Daire McNamara , Matthias Brugger , AngeloGioacchino Del Regno , Haibo Chen , Yogesh Gaur , Heiko Stuebner , Michal Simek Subject: Re: [PATCH 01/24] spi: spi-mem: Extend spi-mem operations with a per-operation maximum frequency In-Reply-To: <01f1bddd-7aee-4c90-9fa0-3b94c87eb469@linaro.org> (Tudor Ambarus's message of "Wed, 18 Dec 2024 08:07:24 +0000") References: <20241025161501.485684-1-miquel.raynal@bootlin.com> <20241025161501.485684-2-miquel.raynal@bootlin.com> <87jzc3oo6g.fsf@bootlin.com> <01f1bddd-7aee-4c90-9fa0-3b94c87eb469@linaro.org> User-Agent: mu4e 1.12.7; emacs 29.4 Date: Wed, 18 Dec 2024 10:37:07 +0100 Message-ID: <878qsde3i4.fsf@bootlin.com> Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: miquel.raynal@bootlin.com On 18/12/2024 at 08:07:24 GMT, Tudor Ambarus wro= te: > On 12/13/24 10:46 AM, Miquel Raynal wrote: >> Hello Tudor, >>=20 > > Hi! > >> On 11/11/2024 at 13:07:09 GMT, Tudor Ambarus = wrote: >>=20 >>> On 10/25/24 5:14 PM, Miquel Raynal wrote: >>> >>> cut >>> >>>> >>>> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c >>>> index 17b8baf749e6..ab650ae953bb 100644 >>>> --- a/drivers/spi/spi-mem.c >>>> +++ b/drivers/spi/spi-mem.c > > cut > >>>> + if (!op->max_freq || op->max_freq > mem->spi->max_speed_hz) >>>> + ((struct spi_mem_op *)op)->max_freq =3D mem->spi->max_speed_hz; >>> >>> not a big fan of casting the const out. How about introducing a >>> spi_mem_adjust_op_freq()? The upper layers will use that were needed, >>> and you'll still be able to pass a const op to spi_mem_exec_op() >>=20 >> I know it is not ideal so to follow your idea I drafted the use of >> spi_mem_adjust_op_freq(). In order to avoid the cast, we actually need >> to call this function everywhere in the core and the drivers to make >> sure we never get out of bounds, but here is the problem: >>=20 >> $ git grep -w spi_mem_exec_op -- drivers/ | wc -l >> 42 >>=20 >> This approach requires to add a call to spi_mem_adjust_op_freq() before >> *every* spi_mem_exec_op(). Yes I can do that but that means to be very >> attentive to the fact that these two functions are always called >> together. I am not sure it is a good idea. >>=20 >> What about doing the following once in spi_mem_exec_op() instead? >>=20 >> spi_mem_adjust_op_freq(desc->mem, (struct spi_mem_op *)op); >>=20 >> I know we still have a cast, but it feels more acceptable than the one I >> initially proposed and covers all cases. I would not accept that in a >> driver, but here we are in the core, so that sounds acceptable. >>=20 >> Another possibility otherwise would be to drop the const from the >> spi_mem_op structure entirely. But I prefer the above function call. > > How about introducing a spi_nand_spimem_exec_op() where you call > spi_mem_adjust_op_freq() and spi_mem_exec_op()? That would work to make the cast disappear but TBH would not be totally relevant as adjusting the frequency is typically something that would benefit to spi-nor as well (maybe in the future) and therefore would fully apply to spi memories as a whole, not just spi-nand. We can think about another naming maybe, but I find like spi_mem_exec_op() is the right location to do this. Thanks, Miqu=C3=A8l