Re: [PATCH V2 7/8] spi: spi-qcom-qspi: Add interconnect support
From: Akash Asthana <hidden>
Date: 2020-03-17 12:13:22
Also in:
linux-arm-msm, linux-i2c, linux-serial, linux-spi
Hi Matthias, On 3/14/2020 6:28 AM, Matthias Kaehlcke wrote:
Hi, On Fri, Mar 13, 2020 at 06:42:13PM +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> --- - 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 drivers/spi/spi-qcom-qspi.c | 46 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-)diff --git a/drivers/spi/spi-qcom-qspi.c b/drivers/spi/spi-qcom-qspi.c index 3c4f83b..ad48f43 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,10 @@ 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; + unsigned int peak_bw_cpu;This triplet is a recurring pattern, and is probably not limited to geni SE/QSPI. On https://patchwork.kernel.org/patch/11436889/#23221925 I suggested the creation of a geni SE specific struct, however adding a generic convenience struct to 'linux/interconnect.h' might be the better solution: struct icc_client { struct icc_path *path; unsigned int avg_bw; unsigned int peak_bw; }; I'm sure there are better names for it, but this would be the idea.
Yeah, I think introducing this to ICC header would be better solution. Regards, Akash -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project