Hi Maxime, Thank you so much for reviewing the patch. Please see inline reply below.
> -----Original Message----- > From: Maxime Ripard <[email protected]> > Sent: Wednesday, April 29, 2020 5:58 PM > To: Yuti Suresh Amonkar <[email protected]> > Cc: [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; Milind Parab > <[email protected]>; Swapnil Kashinath Jakhade > <[email protected]> > Subject: Re: [PATCH v1 2/2] phy: phy-cadence-torrent: Use PHY kernel APIs to > set PHY attributes > > EXTERNAL MAIL > > > Hi, > > On Tue, Apr 28, 2020 at 09:10:04AM +0200, Yuti Amonkar wrote: > > From: Swapnil Jakhade <[email protected]> > > > > Use generic PHY framework function phy_set_bus_width() to set number > > of lanes and function phy_set_max_link_rate() to set maximum link rate > > supported by PHY. > > > > Signed-off-by: Swapnil Jakhade <[email protected]> > > This should have your SoB. > > > --- > > drivers/phy/cadence/phy-cadence-torrent.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/phy/cadence/phy-cadence-torrent.c > b/drivers/phy/cadence/phy-cadence-torrent.c > > index 7116127358ee..b914e5ddf93c 100644 > > --- a/drivers/phy/cadence/phy-cadence-torrent.c > > +++ b/drivers/phy/cadence/phy-cadence-torrent.c > > @@ -1852,6 +1852,9 @@ static int cdns_torrent_phy_probe(struct > platform_device *pdev) > > cdns_phy->phys[node].num_lanes, > > cdns_phy->max_bit_rate / 1000, > > cdns_phy->max_bit_rate % 1000); > > + > > + phy_set_bus_width(gphy, cdns_phy- > >phys[node].num_lanes); > > + phy_set_max_link_rate(gphy, cdns_phy- > >max_bit_rate); > > I think what Kishon meant in his previous mail is that it's not really clear > (to > me at least) how that function would be useful. > > In this particular case, what would the consumer make of that information? > Does > the phy needs to be reconfigured based on the max rate being changed? > > Some phy_configure_opts structures also have a somewhat similar field that > can > be negociated between the provider and the consumer using phy_validate, > wouldn't > that be redundant? > > Most of that discussion can only happen when you've provided a use-case > for that > series, so a consumer using it would help greatly there. Actually, for this particular case, consumer driver will be the Cadence MHDP bridge driver for DisplayPort which is also under review process for upstreaming [1]. So this DRM bridge driver will make use of the PHY APIs phy_get_bus_width() and phy_get_max_link_rate() during execution of probe function to get the number of lanes and maximum link rate supported by Cadence Torrent PHY. This information is required to set the host capabilities in the DRM bridge driver, based on which initial values for DisplayPort link training will be determined. The changes in this PHY patch series are based on suggestions in the review comments in [1] which asks to use kernel PHY APIs to read these properties instead of directly accessing PHY device node. The complete driver and actual use of these APIs can be found in [2]. This is how we are planning to use these APIs. [1] https://patchwork.freedesktop.org/patch/355362/?series=73996&rev=1 [2] https://github.com/t-c-collab/linux/blob/cdns-mhdp-upstream/drivers/gpu/drm/bridge/cdns-mhdp-core.c#L1594 Thanks & regards, Swapnil > > Maxime

