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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 202ABC433F5 for ; Fri, 18 Mar 2022 08:04:40 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CB12183AFD; Fri, 18 Mar 2022 09:04:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="M3bSdkBR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B5A9D83B6E; Fri, 18 Mar 2022 09:04:35 +0100 (CET) Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com [IPv6:2607:f8b0:4864:20::331]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1A5AC831E0 for ; Fri, 18 Mar 2022 09:04:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rfried.dev@gmail.com Received: by mail-ot1-x331.google.com with SMTP id o20-20020a9d7194000000b005cb20cf4f1bso5127927otj.7 for ; Fri, 18 Mar 2022 01:04:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=NitRZ9E08EgF11HyiujXYSCE6GZ652e9vC091riMCao=; b=M3bSdkBRgDpdM0ut3URvcLBOm2QZPpOsIUn5xllUrq7Fe9ADUO1Cr+JI0ltq0FdS14 uvGAJ508M8A4LrlKiu55mh6z2LYKfDx1QMPALochuaqg86n80QowG8Bj+3aOk+VxqW7z B7O+LCTy6RfLXrl1LgdmlCRHSNbU7LFuvdgIYYsv0/+zg+qOQ0Np4DI/ACYukaf40G09 0xXaECH2dDLowamTEo3Ny1eVL9zAn05Wyb9ZMjSBx2TcEkxxopmGU0NGnZ4eb4MPtLwm PFrmFblBqeats3nUXIzOsu22XJqznhvjRP+tOcj2zu0EV2nMJrsXgpzVFCA+s/fS0Dl2 zuAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=NitRZ9E08EgF11HyiujXYSCE6GZ652e9vC091riMCao=; b=Bnsm0noeA/+PALUqRgf9TBkiuf62IB0cLO68McfIZjA42HovsQ17FdxWnfVNW/XvXR 6ClxOH2zDauf/8YpRbh5QY8OhivDn5kIfWp43ZJHSuez98QlIFMuApGcpfwIOXG5ciqX jYJCWJAcfsHn5jYeRh1xwqb2vAy3qxS+vftknwh3WJJ/MmbaVFQ4C3bLaqMt7+Vnlh7M 23hGbSjHDhnkSly3UG7NEXeQRDSZ+Phm195viiS7W/SmPtW0yMzrDe6mean5qaX4DeJU YphmqMHOwiqJ77rQPKmLSra7cNHyRnxN/nYz0isViWoH/mHanoqRC90Izl2bb1XoDEle /Hcg== X-Gm-Message-State: AOAM533NJHbIlt9UnHItdVYcRUVSltT8IZL/DHs7DaTM8UPFtqlz6m0Q 9/an0B+f5FqiysT5QetAjGVwMzIZA8k4tGSlmT4= X-Google-Smtp-Source: ABdhPJycxJFN/Jdt4MdIIMRAZD3oL99qWk+T0Duoc42+jTxaZGAKrrDVSjXh3TqN+VQbiAsL6KWAactiSGiTnakDDho= X-Received: by 2002:a05:6830:2709:b0:5b0:196:dcf with SMTP id j9-20020a056830270900b005b001960dcfmr2970992otu.357.1647590670732; Fri, 18 Mar 2022 01:04:30 -0700 (PDT) MIME-Version: 1.0 References: <20220317124958.27921-1-kabel@kernel.org> <20220317124958.27921-6-kabel@kernel.org> In-Reply-To: <20220317124958.27921-6-kabel@kernel.org> From: Ramon Fried Date: Fri, 18 Mar 2022 10:04:19 +0200 Message-ID: Subject: Re: [PATCH u-boot-net 05/14] treewide: use dm_mdio_read/write/reset() wrappers To: =?UTF-8?B?TWFyZWsgQmVow7pu?= Cc: Joe Hershberger , U-Boot Mailing List , =?UTF-8?B?TWFyZWsgQmVow7pu?= , Bin Meng , Priyanka Jain , Simon Glass , Vladimir Oltean Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On Thu, Mar 17, 2022 at 2:50 PM Marek Beh=C3=BAn wrote: > > From: Marek Beh=C3=BAn > > Use the new dm_mdio_read/write/reset() wrappers treewide, instead of > always getting and dereferencing MDIO operations structure pointer. > > Signed-off-by: Marek Beh=C3=BAn > --- > drivers/net/mdio_mux_sandbox.c | 6 ++---- > net/mdio-mux-uclass.c | 16 ++++------------ > net/mdio-uclass.c | 19 ++++--------------- > test/dm/mdio.c | 18 +++++++++--------- > test/dm/mdio_mux.c | 16 ++++++++-------- > 5 files changed, 27 insertions(+), 48 deletions(-) > > diff --git a/drivers/net/mdio_mux_sandbox.c b/drivers/net/mdio_mux_sandbo= x.c > index fff6ddb2f1..e1801c1426 100644 > --- a/drivers/net/mdio_mux_sandbox.c > +++ b/drivers/net/mdio_mux_sandbox.c > @@ -20,7 +20,6 @@ struct mdio_mux_sandbox_priv { > static int mdio_mux_sandbox_mark_selection(struct udevice *dev, int sel) > { > struct udevice *mdio; > - struct mdio_ops *ops; > int err; > > /* > @@ -30,9 +29,8 @@ static int mdio_mux_sandbox_mark_selection(struct udevi= ce *dev, int sel) > err =3D uclass_get_device_by_name(UCLASS_MDIO, "mdio-test", &mdio= ); > if (err) > return err; > - ops =3D mdio_get_ops(mdio); > - return ops->write(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG_CNT - 1, (u16)sel); > + return dm_mdio_write(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG_CNT - 1, (u16)sel); > } > > static int mdio_mux_sandbox_select(struct udevice *dev, int cur, int sel= ) > diff --git a/net/mdio-mux-uclass.c b/net/mdio-mux-uclass.c > index 780526c19e..94b90e0657 100644 > --- a/net/mdio-mux-uclass.c > +++ b/net/mdio-mux-uclass.c > @@ -54,11 +54,6 @@ static struct udevice *mmux_get_parent_mdio(struct ude= vice *mux) > return pdata->mdio_parent; > } > > -static struct mdio_ops *mmux_get_mdio_parent_ops(struct udevice *mux) > -{ > - return mdio_get_ops(mmux_get_parent_mdio(mux)); > -} > - > /* call driver select function before performing MDIO r/w */ > static int mmux_change_sel(struct udevice *ch, bool sel) > { > @@ -90,14 +85,13 @@ static int mmux_read(struct udevice *ch, int addr, in= t devad, > { > struct udevice *mux =3D ch->parent; > struct udevice *parent_mdio =3D mmux_get_parent_mdio(mux); > - struct mdio_ops *parent_ops =3D mmux_get_mdio_parent_ops(mux); > int err; > > err =3D mmux_change_sel(ch, true); > if (err) > return err; > > - err =3D parent_ops->read(parent_mdio, addr, devad, reg); > + err =3D dm_mdio_read(parent_mdio, addr, devad, reg); > mmux_change_sel(ch, false); > > return err; > @@ -109,14 +103,13 @@ static int mmux_write(struct udevice *ch, int addr,= int devad, > { > struct udevice *mux =3D ch->parent; > struct udevice *parent_mdio =3D mmux_get_parent_mdio(mux); > - struct mdio_ops *parent_ops =3D mmux_get_mdio_parent_ops(mux); > int err; > > err =3D mmux_change_sel(ch, true); > if (err) > return err; > > - err =3D parent_ops->write(parent_mdio, addr, devad, reg, val); > + err =3D dm_mdio_write(parent_mdio, addr, devad, reg, val); > mmux_change_sel(ch, false); > > return err; > @@ -127,18 +120,17 @@ static int mmux_reset(struct udevice *ch) > { > struct udevice *mux =3D ch->parent; > struct udevice *parent_mdio =3D mmux_get_parent_mdio(mux); > - struct mdio_ops *parent_ops =3D mmux_get_mdio_parent_ops(mux); > int err; > > /* reset is optional, if it's not implemented just exit */ > - if (!parent_ops->reset) > + if (!mdio_get_ops(parent_mdio)->reset) > return 0; > > err =3D mmux_change_sel(ch, true); > if (err) > return err; > > - err =3D parent_ops->reset(parent_mdio); > + err =3D dm_mdio_reset(parent_mdio); > mmux_change_sel(ch, false); > > return err; > diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c > index 887c228167..bef8280e21 100644 > --- a/net/mdio-uclass.c > +++ b/net/mdio-uclass.c > @@ -95,27 +95,18 @@ int dm_mdio_reset(struct udevice *mdio_dev) > */ > static int mdio_read(struct mii_dev *mii_bus, int addr, int devad, int r= eg) > { > - struct udevice *dev =3D mii_bus->priv; > - > - return mdio_get_ops(dev)->read(dev, addr, devad, reg); > + return dm_mdio_read(mii_bus->priv, addr, devad, reg); > } > > static int mdio_write(struct mii_dev *mii_bus, int addr, int devad, int = reg, > u16 val) > { > - struct udevice *dev =3D mii_bus->priv; > - > - return mdio_get_ops(dev)->write(dev, addr, devad, reg, val); > + return dm_mdio_write(mii_bus->priv, addr, devad, reg, val); > } > > static int mdio_reset(struct mii_dev *mii_bus) > { > - struct udevice *dev =3D mii_bus->priv; > - > - if (mdio_get_ops(dev)->reset) > - return mdio_get_ops(dev)->reset(dev); > - else > - return 0; > + return dm_mdio_reset(mii_bus->priv); > } > > static int dm_mdio_post_probe(struct udevice *dev) > @@ -135,10 +126,8 @@ static int dm_mdio_post_probe(struct udevice *dev) > static int dm_mdio_pre_remove(struct udevice *dev) > { > struct mdio_perdev_priv *pdata =3D dev_get_uclass_priv(dev); > - struct mdio_ops *ops =3D mdio_get_ops(dev); > > - if (ops->reset) > - ops->reset(dev); > + dm_mdio_reset(dev); > mdio_unregister(pdata->mii_bus); > mdio_free(pdata->mii_bus); > > diff --git a/test/dm/mdio.c b/test/dm/mdio.c > index 64347e1275..f863c52645 100644 > --- a/test/dm/mdio.c > +++ b/test/dm/mdio.c > @@ -38,18 +38,18 @@ static int dm_test_mdio(struct unit_test_state *uts) > ut_assertnonnull(ops->read); > ut_assertnonnull(ops->write); > > - ut_assertok(ops->write(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG, TEST_REG_VALUE)); > - reg =3D ops->read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG); > + ut_assertok(dm_mdio_write(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG, TEST_REG_VALUE)); > + reg =3D dm_mdio_read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG); > ut_asserteq(reg, TEST_REG_VALUE); > > - ut_assert(ops->read(dev, SANDBOX_PHY_ADDR + 1, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG) !=3D 0); > + ut_assert(dm_mdio_read(dev, SANDBOX_PHY_ADDR + 1, MDIO_DEVAD_NONE= , > + SANDBOX_PHY_REG) !=3D 0); > > - ut_assertok(ops->reset(dev)); > - reg =3D ops->read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG); > + ut_assertok(dm_mdio_reset(dev)); > + reg =3D dm_mdio_read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG); > ut_asserteq(reg, 0); > > return 0; > diff --git a/test/dm/mdio_mux.c b/test/dm/mdio_mux.c > index 950f385d17..bfe3518221 100644 > --- a/test/dm/mdio_mux.c > +++ b/test/dm/mdio_mux.c > @@ -57,22 +57,22 @@ static int dm_test_mdio_mux(struct unit_test_state *u= ts) > * is selected to the selection #. Just reading that register fr= om > * either of the child buses should return the id of the child bu= s > */ > - reg =3D ops->read(mdio_ch0, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG_CNT - 1); > + reg =3D dm_mdio_read(mdio_ch0, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG_CNT - 1); > ut_asserteq(reg, 0); > > - reg =3D ops->read(mdio_ch1, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG_CNT - 1); > + reg =3D dm_mdio_read(mdio_ch1, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG_CNT - 1); > ut_asserteq(reg, 1); > > mmops->select(mux, MDIO_MUX_SELECT_NONE, 5); > - reg =3D ops_parent->read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG_CNT - 1); > + reg =3D dm_mdio_read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG_CNT - 1); > ut_asserteq(reg, 5); > > mmops->deselect(mux, 5); > - reg =3D ops_parent->read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > - SANDBOX_PHY_REG_CNT - 1); > + reg =3D dm_mdio_read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE, > + SANDBOX_PHY_REG_CNT - 1); > ut_asserteq(reg, (u16)MDIO_MUX_SELECT_NONE); > > return 0; > -- > 2.34.1 > Reviewed-by: Ramon Fried