Hi, On Mon, Jun 8, 2020 at 10:57 PM Akash Asthana <akashast@xxxxxxxxxxxxxx> wrote: > > Get the interconnect paths for SPI based Serial Engine device > and vote according to the current bus speed of the driver. > > Signed-off-by: Akash Asthana <akashast@xxxxxxxxxxxxxx> > Reviewed-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > --- > Changes in V2: > - As per Bjorn's comment, removed se == NULL check from geni_spi_icc_get > - As per Bjorn's comment, removed code to set se->icc_path* to NULL in failure > - As per Bjorn's comment, introduced and using devm_of_icc_get API for getting > path handle > - As per Matthias comment, added error handling for icc_set_bw call > > Changes in V3: > - As per Matthias's comment, use helper ICC function from geni-se driver. > > Changes in V4: > - Move peak_bw guess as twice of avg_bw if nothing mentioned explicitly > to ICC core. > > Changes in V5: > - Use icc_enable/disable in power on/off call. > - Save some non-zero avg/peak value to ICC core by calling geni_icc_set_bw > from probe so that when resume/icc_enable is called NOC are running at > some non-zero value. No need to call icc_disable after BW vote because > device will resume and suspend before probe return and will leave ICC in > disabled state. > > Changes in V6: > - No change > > Changes in V7: > - As per Matthias's comment removed usage of peak_bw variable because we don't > have explicit peak requirement, we were voting peak = avg and this can be > tracked using single variable for avg bw. > > drivers/spi/spi-geni-qcom.c | 29 ++++++++++++++++++++++++++++- > 1 file changed, 28 insertions(+), 1 deletion(-) > > diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c > index c397242..2ace5c5 100644 > --- a/drivers/spi/spi-geni-qcom.c > +++ b/drivers/spi/spi-geni-qcom.c > @@ -234,6 +234,12 @@ static int setup_fifo_params(struct spi_device *spi_slv, > return ret; > } > > + /* Set BW quota for CPU as driver supports FIFO mode only. */ > + se->icc_paths[CPU_TO_GENI].avg_bw = Bps_to_icc(mas->cur_speed_hz); > + ret = geni_icc_set_bw(se); > + if (ret) > + return ret; > + I haven't done a deep review of your patch, but a quick drive-by review since I happened to notice it while looking at this driver. You should probably also update the other path that's adjusting the "mas->cur_speed_hz" variable. Specifically see setup_fifo_xfer(). For bonus points, you could even unify the two paths. Perhaps you could pick <https://crrev.com/c/2259624> and include it in your series (remove the WIP if you do). -Doug