From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDC311D5CFB for ; Sat, 14 Feb 2026 12:30:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771072235; cv=none; b=kYUYbSth6mm3RKC1SqEUSWFuaJFVFno7R0KLFSQSP6yQoUXlDkQfUr0cd4tU+Jv32OvyBP2qD7BhG/OMsWS243QLa6WLAtu0Nrm+aUxGGMagMsBp3ggnvLn0LbbSU9mbXvLVCE57pObCGwL3QRYFp2vvIKKL0904k2+6fk5S1To= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771072235; c=relaxed/simple; bh=NISToq9UzThDeT12tXmG2AS9C2a58f+HXzsZbGnrDR8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=BL+Szeag1+VCQmF7geY8Dm/0Kigxo+SMzni1kVhQjBsIXlWBE1Sdxoi7VwWkUQbvSAK0ZuQGRo9Uw+NBDRr8tnw3QvYlIex+S2ex+hYdaDLHrdaK2TW3pzyYF9OYzuJVXbhxgmS3zWl+M6xD0JmZ3gkluBksq3oz+eQ24B7E4a8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Jz3FTiLW; arc=none smtp.client-ip=209.85.167.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Jz3FTiLW" Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-59e60925251so2126247e87.3 for ; Sat, 14 Feb 2026 04:30:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771072232; x=1771677032; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=rU8KsLHRo5ZlxNTKDAHqj+wy/9XSKwf/xleKqlzrXX4=; b=Jz3FTiLWvxGPaJ1ZcjvBf0mDdRz1eTQtgEn6OywFYJXXMAgUTc/mnwTmRrSdHcPD79 s56cX3AwwvS9Mco55jnzHRgGjxm70wVrBKJFt4YWLxFTfZR9NUKpvKD/vEL4V71UJkVD GNauTGKT/r8xc9oaNuMosjn8tbD8q2UbRCgNsDrnWeH9Rh+/jAvwyEbm78NVHLw92vmY WX3KcYP+TPd3Q4+tIQ6zIG9DLEezvTBgTtBd7lIYdvtoeDry3JL3YpJ+K4Rs1+u4R5kX IWfv0W/CjNxJWT6EMYIta1OAugxmsrPZ+uJWe2SW4sfAI01PXFAaiXD6W/aFKU2cyS45 BQVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771072232; x=1771677032; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rU8KsLHRo5ZlxNTKDAHqj+wy/9XSKwf/xleKqlzrXX4=; b=u7hDcKHGKMjl+hCb5GBKIP2n7LTTHTmOr2FBCShOGHwhslbT7SgKPivgA/wyK5DhQp ILuvOaCfe6p+R+fndZTRz6d9k+PoWVgjsFzOvAovRc9+XHR4SR3OJXU/nc7mMh4SL8N2 lqF4QiEIakd5A5u3TdGYG86sgFkQ/Syh1qCSUScppKCk21d5zHDnLF4aVgbyLU8sa7rz Z6sOalLCznRcR1g9YXr8s+9gYqRlq1NS2fc2GUyXW+jKo1305rbMi7zydjVo0KM4CRWH Oh+t+XqpERUmwuChA0vTHMqLQSpwHEzJm7neuzif5toQDq3zSwDJVu/nKXYguRu+rpZ+ EEeQ== X-Forwarded-Encrypted: i=1; AJvYcCXxugQffcU1YdBRImoRogoXFd7ynA4D9oKGYZLqdLVVgnZD1VgKBI2LtcOcCf8+ohAXCO+rcIvwBINd15k=@vger.kernel.org X-Gm-Message-State: AOJu0YzHUk9vvvuB/FLe/P10fY3yUZRw1VW+uAzLA0PEHWW03Hx0QIxy RtLBL3xSuRyp9k21Vm2M6b79BaxKS/DTVLbYpYTVqW95+0Ude4OFbUNp X-Gm-Gg: AZuq6aJ6n/q/xFs1eDzSSC6b6iefErgwLMQZowpKci2wx2FcRbBnvdAL1ohygr/sbfX 1T/KfXUtTib6qxdwFnzSeF+OpgXR5wivf4LevXF7yGuOnZDSPneYvg/bZ34gu3H9E7tLcHlFwpg sWWyiRFFRXej+r/siTrgSyll1V6kmC7ZChD+ViHS1y/DlVqYlWKByR1IV0ZUHQJzFEVFT7R5MrP ttqv+f0R9cg7widOnQja6Zcdovd8xpcX/+6323aFKRX/+OHL1zplap64O7Q5xCcxljIT4ctM8aI A7aXj/oTUoI3PqRQhx6fvpCh1hMDBZkZFoVXSMPQZ9yJVAB33xtimttbvnz18sl/GwJwDAq0fK6 mpmL35kKTkTANdxrxBTS80jtiCPsgkc3umiXM9JNinkbEbEvJAUuAGPhnXQv/VWPFZF4TiB6oDA mYdc/sAHmR/ybnuayqs+aS2KJPihSQwe/XlQG4qoE6hI8bEOFw/ET5Xxgr48w1 X-Received: by 2002:a05:6512:234c:b0:59e:2242:fb9 with SMTP id 2adb3069b0e04-59f69c27962mr1550480e87.16.1771072231684; Sat, 14 Feb 2026 04:30:31 -0800 (PST) Received: from gmail.com (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59e5f5a4f8dsm2150105e87.49.2026.02.14.04.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Feb 2026 04:30:30 -0800 (PST) Date: Sat, 14 Feb 2026 13:30:29 +0100 From: Marcus Folkesson To: Andy Shevchenko Cc: Wolfram Sang , Peter Rosin , Michael Hennerich , Bartosz Golaszewski , Andi Shyti , Bartosz Golaszewski , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 2/5] i2c: mux: add support for per channel bus frequency Message-ID: References: <20260213-i2c-mux-v5-0-fb2cbf9979b3@gmail.com> <20260213-i2c-mux-v5-2-fb2cbf9979b3@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="l+WwOMVdoDQxRCoU" Content-Disposition: inline In-Reply-To: --l+WwOMVdoDQxRCoU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Andy! Thank you for your comments, good and observant as usual :-) On Fri, Feb 13, 2026 at 12:21:42PM +0100, Andy Shevchenko wrote: [...] > > +static int i2c_mux_select_chan(struct i2c_adapter *adap, u32 chan_id) > > +{ > > + struct i2c_mux_priv *priv =3D adap->algo_data; > > + struct i2c_mux_core *muxc =3D priv->muxc; > > + struct i2c_adapter *parent =3D muxc->parent; > > + struct i2c_mux_core *mux_locked_ancestor =3D NULL; > > + struct i2c_adapter *root; > > + int ret; > > + > > + if (priv->adap.clock_hz && priv->adap.clock_hz !=3D parent->clock_hz)= { > > + mux_locked_ancestor =3D i2c_mux_topmost_mux_locked(adap); > > + root =3D i2c_root_adapter(&adap->dev); > > + > > + /* > > + * If there's a mux-locked mux in our ancestry, lock the parent > > + * of the topmost one. Mux-locked muxes don't propagate locking > > + * to their parents, so we must explicitly acquire the lock above > > + * the highest mux-locked ancestor to reach the root adapter. > > + */ > > + if (mux_locked_ancestor) > > + i2c_lock_bus(mux_locked_ancestor->parent, I2C_LOCK_ROOT_ADAPTER); > > + > > + ret =3D i2c_adapter_set_clk_freq(root, priv->adap.clock_hz); > > + > > + if (mux_locked_ancestor) > > + i2c_unlock_bus(mux_locked_ancestor->parent, I2C_LOCK_ROOT_ADAPTER); >=20 > > + if (ret < 0) { >=20 > Would it (ever) have any positive returned values? > Ditto for other similar cases. Nope, I will change to if (ret). >=20 > > + dev_err(&adap->dev, > > + "Failed to set clock frequency %dHz on root adapter %s: %d\n", > > + priv->adap.clock_hz, root->name, ret); > > + > > + return ret; > > + } > > + } > > + > > + return muxc->select(muxc, priv->chan_id); > > +} >=20 > ... >=20 > > @@ -223,6 +317,7 @@ struct i2c_adapter *i2c_root_adapter(struct device = *dev) > > } > > EXPORT_SYMBOL_GPL(i2c_root_adapter); > > =20 > > + > > struct i2c_mux_core *i2c_mux_alloc(struct i2c_adapter *parent, >=20 > Stray and unneeded change. I will remove it. >=20 > > struct device *dev, int max_adapters, > > int sizeof_priv, u32 flags, >=20 > ... >=20 > > + of_property_read_u32(child, "clock-frequency", &priv->adap.clock_hz); >=20 > Why OF-centric APIs? Muxes may and do appear on other systems as well. > Okay, this function seems fully OF-centric :-( :-/ >=20 > --=20 > With Best Regards, > Andy Shevchenko >=20 Best regards, Marcus Folkesson --l+WwOMVdoDQxRCoU Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEBVGi6LZstU1kwSxliIBOb1ldUjIFAmmQauAACgkQiIBOb1ld UjKjRw//TDudQNFb5scI70oKQYlNoQXhaWf3LGN9vJybxeuMDXu5vWYqZWSLx1BP j7DsY/cHQFVA1E02tPCQfrhrhiezIkKd+Q/7PpjkW/0g0XxySG9wfdHpijZvbTz0 K/ROFizS2DsSuh74HdSUG2qWYyXVlNriZgR7JDJAmZarSTgRuKZ9q2I+uxIe73Ip eZrwGMM3eCZtMPOUKBa3WNRD4VH01+0x70t3LGWpdQMrlhQHdOYmGQ+/7UqJOee9 srjUXjXTMvstZvb30FSCr1qC6faTcKrbzpZU/9fJ8TgzgAU1K7SzKUBbt541babV okDQBZbtm//FRlLWP6WsX2Cjo8AKZ1aKURnXJBmJCW4FgYX6U0ZEuhBS7/uHqJwd N69T35fj2LbvF+sXjIcAeT8pDUx02lWwdfOu8xGt5X/ARPkFUWhpFo7YtreyK8Yn 6ER/LepKtCQ2jC3JF4I+zoDz+uJPz3S4SU7rhyV0ELPer+z1FljRIGQaGnfh0jzb OfVMPJxIBmxm7I6Ip7mnh9Ey20En+PjuyD1Hyv0rmh9FgSVhSDya4AyUP6VEmEw8 TLRKRH9F3Fo9hHUP+ilaMsABQAnpfUuduqof3Xy2rD9UgsMjS2xDrTe4oULvdaz9 mgDXYDPH99ttNZcCnFrsbz6x4TWawfTIcmfrLYhZmjVw0VIClfA= =vsIN -----END PGP SIGNATURE----- --l+WwOMVdoDQxRCoU--