From: Swapnil Kashinath Jakhade <sjakhade@cadence.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
"kishon@ti.com" <kishon@ti.com>
Cc: "vkoul@kernel.org" <vkoul@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"maxime@cerno.tech" <maxime@cerno.tech>,
Milind Parab <mparab@cadence.com>,
Yuti Suresh Amonkar <yamonkar@cadence.com>,
"nsekhar@ti.com" <nsekhar@ti.com>,
"tomi.valkeinen@ti.com" <tomi.valkeinen@ti.com>,
"jsarha@ti.com" <jsarha@ti.com>,
"praneeth@ti.com" <praneeth@ti.com>
Subject: RE: [PATCH v5 1/2] phy: Add new PHY attribute max_link_rate and APIs to get/set PHY attributes
Date: Wed, 2 Sep 2020 06:52:52 +0000 [thread overview]
Message-ID: <DM6PR07MB6154F083F7F1CB1368BC0FCCC52F0@DM6PR07MB6154.namprd07.prod.outlook.com> (raw)
In-Reply-To: <20200902002608.GD14351@pendragon.ideasonboard.com>
Hi Laurent,
Thank you for your review comments.
> -----Original Message-----
> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Sent: Wednesday, September 2, 2020 5:56 AM
> To: Swapnil Kashinath Jakhade <sjakhade@cadence.com>
> Cc: vkoul@kernel.org; kishon@ti.com; linux-kernel@vger.kernel.org;
> maxime@cerno.tech; Milind Parab <mparab@cadence.com>; Yuti Suresh
> Amonkar <yamonkar@cadence.com>; nsekhar@ti.com;
> tomi.valkeinen@ti.com; jsarha@ti.com; praneeth@ti.com
> Subject: Re: [PATCH v5 1/2] phy: Add new PHY attribute max_link_rate and
> APIs to get/set PHY attributes
>
> EXTERNAL MAIL
>
>
> Hi Swapnil,
>
> Thank you for the patch.
>
> On Mon, Aug 24, 2020 at 08:28:30PM +0200, Swapnil Jakhade wrote:
> > Add new PHY attribute max_link_rate to struct phy_attrs.
> > Add a pair of PHY APIs to get/set all the PHY attributes.
> > Use phy_get_attrs() to get attribute values and phy_set_attrs() to set
> > attribute values.
> >
> > Signed-off-by: Yuti Amonkar <yamonkar@cadence.com>
> > Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com>
> > Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
> > ---
> > include/linux/phy/phy.h | 43
> > +++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 43 insertions(+)
> >
> > diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index
> > bcee8eba62b3..924cd1a3deea 100644
> > --- a/include/linux/phy/phy.h
> > +++ b/include/linux/phy/phy.h
> > @@ -115,10 +115,12 @@ struct phy_ops {
> > /**
> > * struct phy_attrs - represents phy attributes
> > * @bus_width: Data path width implemented by PHY
> > + * @max_link_rate: Maximum link rate supported by PHY (in Mbps)
> > * @mode: PHY mode
> > */
> > struct phy_attrs {
> > u32 bus_width;
> > + u32 max_link_rate;
> > enum phy_mode mode;
> > };
> >
> > @@ -231,6 +233,37 @@ static inline void phy_set_bus_width(struct phy
> > *phy, int bus_width) {
> > phy->attrs.bus_width = bus_width;
> > }
> > +
> > +/**
> > + * phy_get_attrs() - get the values for PHY attributes.
> > + * @phy: the phy for which to get the attributes
> > + * @attrs: current PHY attributes that will be returned
> > + *
> > + * Intended to be used by phy consumers to get the current PHY
> > +attributes
> > + * stored in struct phy_attrs.
> > + */
> > +static inline void phy_get_attrs(struct phy *phy, struct phy_attrs
> > +*attrs) {
> > + mutex_lock(&phy->mutex);
> > + memcpy(attrs, &phy->attrs, sizeof(struct phy_attrs));
> > + mutex_unlock(&phy->mutex);
>
> Why is the mutex required, what does it guard against ?
Mutex protection is added in phy_get_attrs/phy_set_attrs APIs based on
review comments from Kishon for v3 of this patch series[1].
Also, please find below references to earlier versions of this patch series
and the discussions which are the basis for implementation in v5 of this
patch series.
v1 of the series can be found @ [2]
v2 of the series can be found @ [3]
v3 of the series can be found @ [4]
v4 of the series can be found @ [5]
[1] https://lkml.org/lkml/2020/7/13/529
[2] https://lkml.org/lkml/2020/4/28/140
[3] https://lkml.org/lkml/2020/5/26/507
[4] https://lkml.org/lkml/2020/7/13/380
[5] https://lkml.org/lkml/2020/7/17/158
>
> > +}
> > +
> > +/**
> > + * phy_set_attrs() - set PHY attributes with new values.
> > + * @phy: the phy for which to set the attributes
> > + * @attrs: the &struct phy_attrs containing new PHY attributes to be
> > +set
> > + *
> > + * This can be used by PHY providers or PHY consumers to set the PHY
> > + * attributes. The locking is used to protect updating attributes
> > +when
> > + * PHY consumer is doing some PHY ops.
> > + */
> > +static inline void phy_set_attrs(struct phy *phy, const struct
> > +phy_attrs *attrs) {
> > + mutex_lock(&phy->mutex);
> > + memcpy(&phy->attrs, attrs, sizeof(struct phy_attrs));
> > + mutex_unlock(&phy->mutex);
> > +}
> > struct phy *phy_get(struct device *dev, const char *string); struct
> > phy *phy_optional_get(struct device *dev, const char *string); struct
> > phy *devm_phy_get(struct device *dev, const char *string); @@ -389,6
> > +422,16 @@ static inline void phy_set_bus_width(struct phy *phy, int
> bus_width)
> > return;
> > }
> >
> > +static inline void phy_get_attrs(struct phy *phy, struct phy_attrs
> > +*attrs) {
> > + return;
>
> You can drop the return statement.
Okay.
>
> > +}
> > +
> > +static inline void phy_set_attrs(struct phy *phy, const struct
> > +phy_attrs *attrs) {
> > + return;
>
> Here too.
Okay.
Thanks & regards,
Swapnil
>
> > +}
> > +
> > static inline struct phy *phy_get(struct device *dev, const char
> > *string) {
> > return ERR_PTR(-ENOSYS);
>
> --
> Regards,
>
> Laurent Pinchart
next prev parent reply other threads:[~2020-09-02 6:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-24 18:28 [PATCH v5 0/2] Add new PHY APIs to framework " Swapnil Jakhade
2020-08-24 18:28 ` [PATCH v5 1/2] phy: Add new PHY attribute max_link_rate and APIs " Swapnil Jakhade
2020-09-02 0:26 ` Laurent Pinchart
2020-09-02 6:52 ` Swapnil Kashinath Jakhade [this message]
2020-08-24 18:28 ` [PATCH v5 2/2] phy: cadence-torrent: Use kernel PHY API to set " Swapnil Jakhade
2020-09-02 0:29 ` Laurent Pinchart
2020-09-02 7:09 ` Swapnil Kashinath Jakhade
2020-09-02 12:17 ` Laurent Pinchart
2020-09-03 10:59 ` Swapnil Kashinath Jakhade
2020-09-03 11:30 ` Kishon Vijay Abraham I
2020-09-03 15:29 ` Laurent Pinchart
2020-09-08 14:15 ` Milind Parab
2020-09-10 6:15 ` Kishon Vijay Abraham I
2020-09-11 10:54 ` Vinod Koul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DM6PR07MB6154F083F7F1CB1368BC0FCCC52F0@DM6PR07MB6154.namprd07.prod.outlook.com \
--to=sjakhade@cadence.com \
--cc=jsarha@ti.com \
--cc=kishon@ti.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime@cerno.tech \
--cc=mparab@cadence.com \
--cc=nsekhar@ti.com \
--cc=praneeth@ti.com \
--cc=tomi.valkeinen@ti.com \
--cc=vkoul@kernel.org \
--cc=yamonkar@cadence.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®