linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Drop useless compatibles from the SCM driver
@ 2023-06-23 21:49 Konrad Dybcio
  2023-06-23 21:49 ` [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks Konrad Dybcio
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Konrad Dybcio @ 2023-06-23 21:49 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson
  Cc: Marijn Suijten, linux-arm-msm, linux-kernel, Konrad Dybcio

The compatibles, apart from some ancient ones kept for backwards compat
due to no generic fallback, are largely useless and we can easily remove
them. This series attempts to do that with hopefully no harm.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
Konrad Dybcio (3):
      firmware: qcom_scm: Always try to consume all three clocks
      firmware: qcom_scm: Always return devm_clk_get_optional errors
      firmware: qcom_scm: Drop useless compatibles

 drivers/firmware/qcom_scm.c | 87 +++++++++------------------------------------
 1 file changed, 16 insertions(+), 71 deletions(-)
---
base-commit: c87d46a9e8ebd2f2c3960927b1d21687096d1109
change-id: 20230623-topic-scm_cleanup-c4620461126a

Best regards,
-- 
Konrad Dybcio <konrad.dybcio@linaro.org>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks
  2023-06-23 21:49 [PATCH 0/3] Drop useless compatibles from the SCM driver Konrad Dybcio
@ 2023-06-23 21:49 ` Konrad Dybcio
  2023-06-24  0:15   ` kernel test robot
  2023-06-23 21:49 ` [PATCH 2/3] firmware: qcom_scm: Always return devm_clk_get_optional errors Konrad Dybcio
  2023-06-23 21:49 ` [PATCH 3/3] firmware: qcom_scm: Drop useless compatibles Konrad Dybcio
  2 siblings, 1 reply; 5+ messages in thread
From: Konrad Dybcio @ 2023-06-23 21:49 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson
  Cc: Marijn Suijten, linux-arm-msm, linux-kernel, Konrad Dybcio

The code for handling more than 1 clock is a bit messy and requires
one to add new, SoC-specific compatibles if one wants to attach a clock.

Switch devm_clk_get to devm_clk_get_optional to prevent throwing it
from throwing errors when the clock is absent and defer checking the
clock requirements to dt schema.

This lets us get rid of compatibles that aren't necessary for backwards
compatibility *and* will hopefully prevent the addition of meaningless
new compatibles.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 drivers/firmware/qcom_scm.c | 70 +++++++++------------------------------------
 1 file changed, 13 insertions(+), 57 deletions(-)

diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index fde33acd46b7..dfa298347041 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -26,10 +26,6 @@
 static bool download_mode = IS_ENABLED(CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT);
 module_param(download_mode, bool, 0);
 
-#define SCM_HAS_CORE_CLK	BIT(0)
-#define SCM_HAS_IFACE_CLK	BIT(1)
-#define SCM_HAS_BUS_CLK		BIT(2)
-
 struct qcom_scm {
 	struct device *dev;
 	struct clk *core_clk;
@@ -1425,43 +1421,22 @@ static int qcom_scm_probe(struct platform_device *pdev)
 		return dev_err_probe(&pdev->dev, PTR_ERR(scm->path),
 				     "failed to acquire interconnect path\n");
 
-	scm->core_clk = devm_clk_get(&pdev->dev, "core");
+	scm->core_clk = devm_clk_get_optional(&pdev->dev, "core");
 	if (IS_ERR(scm->core_clk)) {
 		if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
 			return PTR_ERR(scm->core_clk);
-
-		if (clks & SCM_HAS_CORE_CLK) {
-			dev_err(&pdev->dev, "failed to acquire core clk\n");
-			return PTR_ERR(scm->core_clk);
-		}
-
-		scm->core_clk = NULL;
 	}
 
-	scm->iface_clk = devm_clk_get(&pdev->dev, "iface");
+	scm->iface_clk = devm_clk_get_optional(&pdev->dev, "iface");
 	if (IS_ERR(scm->iface_clk)) {
 		if (PTR_ERR(scm->iface_clk) == -EPROBE_DEFER)
 			return PTR_ERR(scm->iface_clk);
-
-		if (clks & SCM_HAS_IFACE_CLK) {
-			dev_err(&pdev->dev, "failed to acquire iface clk\n");
-			return PTR_ERR(scm->iface_clk);
-		}
-
-		scm->iface_clk = NULL;
 	}
 
-	scm->bus_clk = devm_clk_get(&pdev->dev, "bus");
+	scm->bus_clk = devm_clk_get_optional(&pdev->dev, "bus");
 	if (IS_ERR(scm->bus_clk)) {
 		if (PTR_ERR(scm->bus_clk) == -EPROBE_DEFER)
 			return PTR_ERR(scm->bus_clk);
-
-		if (clks & SCM_HAS_BUS_CLK) {
-			dev_err(&pdev->dev, "failed to acquire bus clk\n");
-			return PTR_ERR(scm->bus_clk);
-		}
-
-		scm->bus_clk = NULL;
 	}
 
 	scm->reset.ops = &qcom_scm_pas_reset_ops;
@@ -1512,38 +1487,19 @@ static void qcom_scm_shutdown(struct platform_device *pdev)
 }
 
 static const struct of_device_id qcom_scm_dt_match[] = {
-	{ .compatible = "qcom,scm-apq8064",
-	  /* FIXME: This should have .data = (void *) SCM_HAS_CORE_CLK */
-	},
-	{ .compatible = "qcom,scm-apq8084", .data = (void *)(SCM_HAS_CORE_CLK |
-							     SCM_HAS_IFACE_CLK |
-							     SCM_HAS_BUS_CLK)
-	},
+	{ .compatible = "qcom,scm-apq8064" },
+	{ .compatible = "qcom,scm-apq8084" },
 	{ .compatible = "qcom,scm-ipq4019" },
-	{ .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK |
-							     SCM_HAS_IFACE_CLK |
-							     SCM_HAS_BUS_CLK) },
-	{ .compatible = "qcom,scm-msm8660", .data = (void *) SCM_HAS_CORE_CLK },
-	{ .compatible = "qcom,scm-msm8960", .data = (void *) SCM_HAS_CORE_CLK },
-	{ .compatible = "qcom,scm-msm8916", .data = (void *)(SCM_HAS_CORE_CLK |
-							     SCM_HAS_IFACE_CLK |
-							     SCM_HAS_BUS_CLK)
-	},
-	{ .compatible = "qcom,scm-msm8953", .data = (void *)(SCM_HAS_CORE_CLK |
-							     SCM_HAS_IFACE_CLK |
-							     SCM_HAS_BUS_CLK)
-	},
-	{ .compatible = "qcom,scm-msm8974", .data = (void *)(SCM_HAS_CORE_CLK |
-							     SCM_HAS_IFACE_CLK |
-							     SCM_HAS_BUS_CLK)
-	},
-	{ .compatible = "qcom,scm-msm8976", .data = (void *)(SCM_HAS_CORE_CLK |
-							     SCM_HAS_IFACE_CLK |
-							     SCM_HAS_BUS_CLK)
-	},
+	{ .compatible = "qcom,scm-mdm9607" },
+	{ .compatible = "qcom,scm-msm8660" },
+	{ .compatible = "qcom,scm-msm8960" },
+	{ .compatible = "qcom,scm-msm8916" },
+	{ .compatible = "qcom,scm-msm8953" },
+	{ .compatible = "qcom,scm-msm8974" },
+	{ .compatible = "qcom,scm-msm8976" },
 	{ .compatible = "qcom,scm-msm8994" },
 	{ .compatible = "qcom,scm-msm8996" },
-	{ .compatible = "qcom,scm-sm6375", .data = (void *)SCM_HAS_CORE_CLK },
+	{ .compatible = "qcom,scm-sm6375" },
 	{ .compatible = "qcom,scm" },
 	{}
 };

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] firmware: qcom_scm: Always return devm_clk_get_optional errors
  2023-06-23 21:49 [PATCH 0/3] Drop useless compatibles from the SCM driver Konrad Dybcio
  2023-06-23 21:49 ` [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks Konrad Dybcio
@ 2023-06-23 21:49 ` Konrad Dybcio
  2023-06-23 21:49 ` [PATCH 3/3] firmware: qcom_scm: Drop useless compatibles Konrad Dybcio
  2 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2023-06-23 21:49 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson
  Cc: Marijn Suijten, linux-arm-msm, linux-kernel, Konrad Dybcio

If devm_clk_get_optional throws an error, something is really wrong.
It may be a probe deferral, or it may be a problem with the clock
provider.

Regardless of what it may be, it should definitely not be ignored.
Stop doing that.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 drivers/firmware/qcom_scm.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index dfa298347041..d7fc972b20ab 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -1422,22 +1422,16 @@ static int qcom_scm_probe(struct platform_device *pdev)
 				     "failed to acquire interconnect path\n");
 
 	scm->core_clk = devm_clk_get_optional(&pdev->dev, "core");
-	if (IS_ERR(scm->core_clk)) {
-		if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
-			return PTR_ERR(scm->core_clk);
-	}
+	if (IS_ERR(scm->core_clk))
+		return PTR_ERR(scm->core_clk);
 
 	scm->iface_clk = devm_clk_get_optional(&pdev->dev, "iface");
-	if (IS_ERR(scm->iface_clk)) {
-		if (PTR_ERR(scm->iface_clk) == -EPROBE_DEFER)
-			return PTR_ERR(scm->iface_clk);
-	}
+	if (IS_ERR(scm->iface_clk))
+		return PTR_ERR(scm->iface_clk);
 
 	scm->bus_clk = devm_clk_get_optional(&pdev->dev, "bus");
-	if (IS_ERR(scm->bus_clk)) {
-		if (PTR_ERR(scm->bus_clk) == -EPROBE_DEFER)
-			return PTR_ERR(scm->bus_clk);
-	}
+	if (IS_ERR(scm->bus_clk))
+		return PTR_ERR(scm->bus_clk);
 
 	scm->reset.ops = &qcom_scm_pas_reset_ops;
 	scm->reset.nr_resets = 1;

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] firmware: qcom_scm: Drop useless compatibles
  2023-06-23 21:49 [PATCH 0/3] Drop useless compatibles from the SCM driver Konrad Dybcio
  2023-06-23 21:49 ` [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks Konrad Dybcio
  2023-06-23 21:49 ` [PATCH 2/3] firmware: qcom_scm: Always return devm_clk_get_optional errors Konrad Dybcio
@ 2023-06-23 21:49 ` Konrad Dybcio
  2 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2023-06-23 21:49 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson
  Cc: Marijn Suijten, linux-arm-msm, linux-kernel, Konrad Dybcio

There are three categories of compatibles within the driver:

1. Ones which were introduced without a qcom,scm fallback
2. Ones which were introduced with a qcom,scm fallback
3. Ones which were defined but never used

Keep 1 for backwards compatibility and axe 2 & 3.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 drivers/firmware/qcom_scm.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index d7fc972b20ab..ff0e8911499c 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -1481,20 +1481,15 @@ static void qcom_scm_shutdown(struct platform_device *pdev)
 }
 
 static const struct of_device_id qcom_scm_dt_match[] = {
+	{ .compatible = "qcom,scm" },
+
+	/* Legacy entries kept for backwards compatibility */
 	{ .compatible = "qcom,scm-apq8064" },
 	{ .compatible = "qcom,scm-apq8084" },
 	{ .compatible = "qcom,scm-ipq4019" },
-	{ .compatible = "qcom,scm-mdm9607" },
-	{ .compatible = "qcom,scm-msm8660" },
-	{ .compatible = "qcom,scm-msm8960" },
-	{ .compatible = "qcom,scm-msm8916" },
 	{ .compatible = "qcom,scm-msm8953" },
 	{ .compatible = "qcom,scm-msm8974" },
-	{ .compatible = "qcom,scm-msm8976" },
-	{ .compatible = "qcom,scm-msm8994" },
 	{ .compatible = "qcom,scm-msm8996" },
-	{ .compatible = "qcom,scm-sm6375" },
-	{ .compatible = "qcom,scm" },
 	{}
 };
 MODULE_DEVICE_TABLE(of, qcom_scm_dt_match);

-- 
2.41.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks
  2023-06-23 21:49 ` [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks Konrad Dybcio
@ 2023-06-24  0:15   ` kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2023-06-24  0:15 UTC (permalink / raw)
  To: Konrad Dybcio, Andy Gross, Bjorn Andersson
  Cc: oe-kbuild-all, Marijn Suijten, linux-arm-msm, linux-kernel,
	Konrad Dybcio

Hi Konrad,

kernel test robot noticed the following build warnings:

[auto build test WARNING on c87d46a9e8ebd2f2c3960927b1d21687096d1109]

url:    https://github.com/intel-lab-lkp/linux/commits/Konrad-Dybcio/firmware-qcom_scm-Always-try-to-consume-all-three-clocks/20230624-055215
base:   c87d46a9e8ebd2f2c3960927b1d21687096d1109
patch link:    https://lore.kernel.org/r/20230623-topic-scm_cleanup-v1-1-383089eae98d%40linaro.org
patch subject: [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks
config: arm64-randconfig-r023-20230622 (https://download.01.org/0day-ci/archive/20230624/202306240841.iVZhYL4l-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230624/202306240841.iVZhYL4l-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306240841.iVZhYL4l-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/firmware/qcom_scm.c: In function 'qcom_scm_probe':
>> drivers/firmware/qcom_scm.c:1404:23: warning: variable 'clks' set but not used [-Wunused-but-set-variable]
    1404 |         unsigned long clks;
         |                       ^~~~


vim +/clks +1404 drivers/firmware/qcom_scm.c

6bf32599223634 Guru Das Srinagesh 2023-01-13  1400  
d0f6fa7ba2d624 Andy Gross         2016-06-03  1401  static int qcom_scm_probe(struct platform_device *pdev)
d0f6fa7ba2d624 Andy Gross         2016-06-03  1402  {
d0f6fa7ba2d624 Andy Gross         2016-06-03  1403  	struct qcom_scm *scm;
ab0822d57d8ccd Sarangdhar Joshi   2016-11-15 @1404  	unsigned long clks;
6bf32599223634 Guru Das Srinagesh 2023-01-13  1405  	int irq, ret;
d0f6fa7ba2d624 Andy Gross         2016-06-03  1406  
d0f6fa7ba2d624 Andy Gross         2016-06-03  1407  	scm = devm_kzalloc(&pdev->dev, sizeof(*scm), GFP_KERNEL);
d0f6fa7ba2d624 Andy Gross         2016-06-03  1408  	if (!scm)
d0f6fa7ba2d624 Andy Gross         2016-06-03  1409  		return -ENOMEM;
d0f6fa7ba2d624 Andy Gross         2016-06-03  1410  
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1411  	ret = qcom_scm_find_dload_address(&pdev->dev, &scm->dload_mode_addr);
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1412  	if (ret < 0)
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1413  		return ret;
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1414  
65b7ebda502861 Sibi Sankar        2022-05-23  1415  	mutex_init(&scm->scm_bw_lock);
65b7ebda502861 Sibi Sankar        2022-05-23  1416  
ab0822d57d8ccd Sarangdhar Joshi   2016-11-15  1417  	clks = (unsigned long)of_device_get_match_data(&pdev->dev);
60cd420c91e28c Bjorn Andersson    2018-08-29  1418  
65b7ebda502861 Sibi Sankar        2022-05-23  1419  	scm->path = devm_of_icc_get(&pdev->dev, NULL);
65b7ebda502861 Sibi Sankar        2022-05-23  1420  	if (IS_ERR(scm->path))
65b7ebda502861 Sibi Sankar        2022-05-23  1421  		return dev_err_probe(&pdev->dev, PTR_ERR(scm->path),
65b7ebda502861 Sibi Sankar        2022-05-23  1422  				     "failed to acquire interconnect path\n");
65b7ebda502861 Sibi Sankar        2022-05-23  1423  
06987a4b9a3c31 Konrad Dybcio      2023-06-23  1424  	scm->core_clk = devm_clk_get_optional(&pdev->dev, "core");
d0f6fa7ba2d624 Andy Gross         2016-06-03  1425  	if (IS_ERR(scm->core_clk)) {
60cd420c91e28c Bjorn Andersson    2018-08-29  1426  		if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER)
60cd420c91e28c Bjorn Andersson    2018-08-29  1427  			return PTR_ERR(scm->core_clk);
ab0822d57d8ccd Sarangdhar Joshi   2016-11-15  1428  	}
d0f6fa7ba2d624 Andy Gross         2016-06-03  1429  
06987a4b9a3c31 Konrad Dybcio      2023-06-23  1430  	scm->iface_clk = devm_clk_get_optional(&pdev->dev, "iface");
d0f6fa7ba2d624 Andy Gross         2016-06-03  1431  	if (IS_ERR(scm->iface_clk)) {
60cd420c91e28c Bjorn Andersson    2018-08-29  1432  		if (PTR_ERR(scm->iface_clk) == -EPROBE_DEFER)
60cd420c91e28c Bjorn Andersson    2018-08-29  1433  			return PTR_ERR(scm->iface_clk);
d0f6fa7ba2d624 Andy Gross         2016-06-03  1434  	}
60cd420c91e28c Bjorn Andersson    2018-08-29  1435  
06987a4b9a3c31 Konrad Dybcio      2023-06-23  1436  	scm->bus_clk = devm_clk_get_optional(&pdev->dev, "bus");
d0f6fa7ba2d624 Andy Gross         2016-06-03  1437  	if (IS_ERR(scm->bus_clk)) {
60cd420c91e28c Bjorn Andersson    2018-08-29  1438  		if (PTR_ERR(scm->bus_clk) == -EPROBE_DEFER)
60cd420c91e28c Bjorn Andersson    2018-08-29  1439  			return PTR_ERR(scm->bus_clk);
d0f6fa7ba2d624 Andy Gross         2016-06-03  1440  	}
d0f6fa7ba2d624 Andy Gross         2016-06-03  1441  
dd4fe5b292226f Bjorn Andersson    2016-06-17  1442  	scm->reset.ops = &qcom_scm_pas_reset_ops;
dd4fe5b292226f Bjorn Andersson    2016-06-17  1443  	scm->reset.nr_resets = 1;
dd4fe5b292226f Bjorn Andersson    2016-06-17  1444  	scm->reset.of_node = pdev->dev.of_node;
bd4760ca031567 Wei Yongjun        2016-08-28  1445  	ret = devm_reset_controller_register(&pdev->dev, &scm->reset);
bd4760ca031567 Wei Yongjun        2016-08-28  1446  	if (ret)
bd4760ca031567 Wei Yongjun        2016-08-28  1447  		return ret;
dd4fe5b292226f Bjorn Andersson    2016-06-17  1448  
d0f6fa7ba2d624 Andy Gross         2016-06-03  1449  	/* vote for max clk rate for highest performance */
d0f6fa7ba2d624 Andy Gross         2016-06-03  1450  	ret = clk_set_rate(scm->core_clk, INT_MAX);
d0f6fa7ba2d624 Andy Gross         2016-06-03  1451  	if (ret)
d0f6fa7ba2d624 Andy Gross         2016-06-03  1452  		return ret;
d0f6fa7ba2d624 Andy Gross         2016-06-03  1453  
d0f6fa7ba2d624 Andy Gross         2016-06-03  1454  	__scm = scm;
d0f6fa7ba2d624 Andy Gross         2016-06-03  1455  	__scm->dev = &pdev->dev;
d0f6fa7ba2d624 Andy Gross         2016-06-03  1456  
6bf32599223634 Guru Das Srinagesh 2023-01-13  1457  	init_completion(&__scm->waitq_comp);
6bf32599223634 Guru Das Srinagesh 2023-01-13  1458  
f3d0fbad6765da Johan Hovold       2023-03-09  1459  	irq = platform_get_irq_optional(pdev, 0);
6bf32599223634 Guru Das Srinagesh 2023-01-13  1460  	if (irq < 0) {
6bf32599223634 Guru Das Srinagesh 2023-01-13  1461  		if (irq != -ENXIO)
6bf32599223634 Guru Das Srinagesh 2023-01-13  1462  			return irq;
6bf32599223634 Guru Das Srinagesh 2023-01-13  1463  	} else {
6bf32599223634 Guru Das Srinagesh 2023-01-13  1464  		ret = devm_request_threaded_irq(__scm->dev, irq, NULL, qcom_scm_irq_handler,
6bf32599223634 Guru Das Srinagesh 2023-01-13  1465  						IRQF_ONESHOT, "qcom-scm", __scm);
6bf32599223634 Guru Das Srinagesh 2023-01-13  1466  		if (ret < 0)
6bf32599223634 Guru Das Srinagesh 2023-01-13  1467  			return dev_err_probe(scm->dev, ret, "Failed to request qcom-scm irq\n");
6bf32599223634 Guru Das Srinagesh 2023-01-13  1468  	}
6bf32599223634 Guru Das Srinagesh 2023-01-13  1469  
f6ea568f0ddcdf Stephen Boyd       2021-02-23  1470  	__get_convention();
6b1751a86ce2eb Kumar Gala         2016-06-03  1471  
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1472  	/*
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1473  	 * If requested enable "download mode", from this point on warmboot
c19698a9e41bd6 Jiang Jian         2022-06-21  1474  	 * will cause the boot stages to enter download mode, unless
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1475  	 * disabled below by a clean shutdown/reboot.
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1476  	 */
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1477  	if (download_mode)
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1478  		qcom_scm_set_download_mode(true);
8c1b7dc9ba2294 Bjorn Andersson    2017-08-14  1479  
d0f6fa7ba2d624 Andy Gross         2016-06-03  1480  	return 0;
d0f6fa7ba2d624 Andy Gross         2016-06-03  1481  }
d0f6fa7ba2d624 Andy Gross         2016-06-03  1482  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-06-24  0:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-23 21:49 [PATCH 0/3] Drop useless compatibles from the SCM driver Konrad Dybcio
2023-06-23 21:49 ` [PATCH 1/3] firmware: qcom_scm: Always try to consume all three clocks Konrad Dybcio
2023-06-24  0:15   ` kernel test robot
2023-06-23 21:49 ` [PATCH 2/3] firmware: qcom_scm: Always return devm_clk_get_optional errors Konrad Dybcio
2023-06-23 21:49 ` [PATCH 3/3] firmware: qcom_scm: Drop useless compatibles Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).