Re: [PATCH v7 4/4] soc/tegra: pmc: Use the new reset APIs to manage reset controllers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 20, 2017 at 04:51:24PM +0100, Jon Hunter wrote:
> Hi Philipp,
> 
> On 19/10/17 16:17, Philipp Zabel wrote:
> > Hi Jon, Thierry,
> > 
> > On Wed, 2017-07-19 at 17:59 +0200, Philipp Zabel wrote:
> >> From: Vivek Gautam <vivek.gautam@xxxxxxxxxxxxxx>
> >>
> >> Make use of of_reset_control_array_get_exclusive() to manage
> >> an array of reset controllers available with the device.
> >>
> >> Cc: Jon Hunter <jonathanh@xxxxxxxxxx>
> >> Cc: Thierry Reding <treding@xxxxxxxxxx>
> >> Signed-off-by: Vivek Gautam <vivek.gautam@xxxxxxxxxxxxxx>
> >> [p.zabel@xxxxxxxxxxxxxx: switch to hidden reset control array]
> >> Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
> > 
> > will you pick this up now that the prerequisite patch 1 is contained in
> > master?
> > Please let me know if there are any issues with this patch.
> > 
> > regards
> > Philipp
> > 
> >> ---
> >> No changes since v6.
> >> ---
> >>  drivers/soc/tegra/pmc.c | 82 ++++++++++++-------------------------------------
> >>  1 file changed, 20 insertions(+), 62 deletions(-)
> >>
> >> diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
> >> index e233dd5dcab3d..749b218147a19 100644
> >> --- a/drivers/soc/tegra/pmc.c
> >> +++ b/drivers/soc/tegra/pmc.c
> >> @@ -124,8 +124,7 @@ struct tegra_powergate {
> >>  	unsigned int id;
> >>  	struct clk **clks;
> >>  	unsigned int num_clks;
> >> -	struct reset_control **resets;
> >> -	unsigned int num_resets;
> >> +	struct reset_control *reset;
> >>  };
> >>  
> >>  struct tegra_io_pad_soc {
> >> @@ -348,32 +347,14 @@ static int tegra_powergate_enable_clocks(struct tegra_powergate *pg)
> >>  	return err;
> >>  }
> >>  
> >> -static int tegra_powergate_reset_assert(struct tegra_powergate *pg)
> >> +static inline int tegra_powergate_reset_assert(struct tegra_powergate *pg)
> >>  {
> >> -	unsigned int i;
> >> -	int err;
> >> -
> >> -	for (i = 0; i < pg->num_resets; i++) {
> >> -		err = reset_control_assert(pg->resets[i]);
> >> -		if (err)
> >> -			return err;
> >> -	}
> >> -
> >> -	return 0;
> >> +	return reset_control_assert(pg->reset);
> >>  }
> >>  
> >> -static int tegra_powergate_reset_deassert(struct tegra_powergate *pg)
> >> +static inline int tegra_powergate_reset_deassert(struct tegra_powergate *pg)
> >>  {
> >> -	unsigned int i;
> >> -	int err;
> >> -
> >> -	for (i = 0; i < pg->num_resets; i++) {
> >> -		err = reset_control_deassert(pg->resets[i]);
> >> -		if (err)
> >> -			return err;
> >> -	}
> >> -
> >> -	return 0;
> >> +	return reset_control_deassert(pg->reset);
> >>  }
> 
> Nit-pick ... I think we should just get rid of this inline functions now
> and just call reset_control_assert/deassert() where these are used.
> 
[...]
> 
> Otherwise ...
> 
> Acked-by: Jon Hunter <jonathanh@xxxxxxxxxx>
> 
> Thierry has just sent out his pull requests for v4.15 so we may have
> missed this release :-(

Thanks, I'll drop the inline functions and send a new version, then.

regards
Philipp
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux