Re: [PATCH V7 6/7] spi: spi-qcom-qspi: Add interconnect support
From: Akash Asthana <hidden>
Date: 2020-06-09 05:55:28
Also in:
linux-arm-msm, linux-devicetree, linux-i2c, linux-spi
Hi Matthias, On 5/26/2020 11:06 PM, Matthias Kaehlcke wrote:
On Tue, May 26, 2020 at 06:24:49PM +0530, Akash Asthana wrote:quoted
Get the interconnect paths for QSPI device and vote according to the current bus speed of the driver. Signed-off-by: Akash Asthana <redacted> --- Changes in V2: - 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: - No Change. Changes in V4: - As per Mark's comment move peak_bw guess as twice of avg_bw if nothing mentioned explicitly to ICC core. Changes in V5: - Add icc_enable/disable to 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. Changes in V6: - As per Matthias's comment made print statement consistent across driver 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. - As per Matthias's comment improved print log. drivers/spi/spi-qcom-qspi.c | 57 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-)diff --git a/drivers/spi/spi-qcom-qspi.c b/drivers/spi/spi-qcom-qspi.c index 3c4f83b..092ac27 100644 --- a/drivers/spi/spi-qcom-qspi.c +++ b/drivers/spi/spi-qcom-qspi.c@@ -2,6 +2,7 @@ // Copyright (c) 2017-2018, The Linux foundation. All rights reserved. #include <linux/clk.h> +#include <linux/interconnect.h> #include <linux/interrupt.h> #include <linux/io.h> #include <linux/module.h>@@ -139,7 +140,9 @@ struct qcom_qspi { struct device *dev; struct clk_bulk_data *clks; struct qspi_xfer xfer; - /* Lock to protect xfer and IRQ accessed registers */ + struct icc_path *icc_path_cpu_to_qspi; + unsigned int avg_bw_cpu;I should have noticed this earlier, but the field isn't needed now that we have icc_enable/disable(). The bandwidth is set in qcom_qspi_transfer_one() and that's it. From my side it would be fine to remove the field in a follow up patch, to avoid respinning the series yet another time just for this. Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
I will resend patch V7 with the suggested change. Thankyou for reviewing Regards, Akash -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project