2024-04-30 09:17:16

by Srinivas Kandagatla

[permalink] [raw]
Subject: [RESEND PATCH 0/3] slimbus: patches for v6.10

From: Srinivas Kandagatla <[email protected]>

Here are few patches in slimbus for 6.10 that includes
- fixing autoloading.
- coverting driver remove to return void
- reduce suspend delay

Can you please queue them up for 6.10

Thanks,
Srini

MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Krzysztof Kozlowski (1):
slimbus: qcom-ctrl: fix module autoloading

Uwe Kleine-König (1):
slimbus: Convert to platform remove callback returning void

Viken Dadhaniya (1):
slimbus: qcom-ngd-ctrl: Reduce auto suspend delay

drivers/slimbus/qcom-ctrl.c | 6 +++---
drivers/slimbus/qcom-ngd-ctrl.c | 14 +++++---------
2 files changed, 8 insertions(+), 12 deletions(-)

--
2.25.1



2024-04-30 09:17:24

by Srinivas Kandagatla

[permalink] [raw]
Subject: [RESEND PATCH 1/3] slimbus: qcom-ngd-ctrl: Reduce auto suspend delay

From: Viken Dadhaniya <[email protected]>

Currently we have auto suspend delay of 1s which is
very high and it takes long time to driver for runtime
suspend after use case is done.

Hence to optimize runtime PM ops, reduce auto suspend
delay to 100ms.

Signed-off-by: Viken Dadhaniya <[email protected]>
Acked-by: Konrad Dybcio <[email protected]>
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
drivers/slimbus/qcom-ngd-ctrl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c
index a09a26bf4988..ce28ac35b2b6 100644
--- a/drivers/slimbus/qcom-ngd-ctrl.c
+++ b/drivers/slimbus/qcom-ngd-ctrl.c
@@ -81,7 +81,6 @@
#define SLIM_USR_MC_DISCONNECT_PORT 0x2E
#define SLIM_USR_MC_REPEAT_CHANGE_VALUE 0x0

-#define QCOM_SLIM_NGD_AUTOSUSPEND MSEC_PER_SEC
#define SLIM_RX_MSGQ_TIMEOUT_VAL 0x10000

#define SLIM_LA_MGR 0xFF
@@ -1575,7 +1574,7 @@ static int qcom_slim_ngd_probe(struct platform_device *pdev)

platform_set_drvdata(pdev, ctrl);
pm_runtime_use_autosuspend(dev);
- pm_runtime_set_autosuspend_delay(dev, QCOM_SLIM_NGD_AUTOSUSPEND);
+ pm_runtime_set_autosuspend_delay(dev, 100);
pm_runtime_set_suspended(dev);
pm_runtime_enable(dev);
pm_runtime_get_noresume(dev);
--
2.25.1


2024-04-30 09:17:45

by Srinivas Kandagatla

[permalink] [raw]
Subject: [RESEND PATCH 3/3] slimbus: qcom-ctrl: fix module autoloading

From: Krzysztof Kozlowski <[email protected]>

Add MODULE_DEVICE_TABLE(), so the module could be properly autoloaded
based on the alias from of_device_id table. Pin controllers are
considered core components, so usually they are built-in, however these

Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
drivers/slimbus/qcom-ctrl.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c
index 7d632fad1300..0274bc285b60 100644
--- a/drivers/slimbus/qcom-ctrl.c
+++ b/drivers/slimbus/qcom-ctrl.c
@@ -717,6 +717,7 @@ static const struct of_device_id qcom_slim_dt_match[] = {
{ .compatible = "qcom,slim", },
{}
};
+MODULE_DEVICE_TABLE(of, qcom_slim_dt_match);

static struct platform_driver qcom_slim_driver = {
.probe = qcom_slim_probe,
--
2.25.1


2024-04-30 09:19:10

by Srinivas Kandagatla

[permalink] [raw]
Subject: [RESEND PATCH 2/3] slimbus: Convert to platform remove callback returning void

From: Uwe Kleine-König <[email protected]>

The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert the slimbus drivers from always returning zero in the
remove callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <[email protected]>
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
drivers/slimbus/qcom-ctrl.c | 5 ++---
drivers/slimbus/qcom-ngd-ctrl.c | 11 ++++-------
2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c
index 400b7b385a44..7d632fad1300 100644
--- a/drivers/slimbus/qcom-ctrl.c
+++ b/drivers/slimbus/qcom-ctrl.c
@@ -626,7 +626,7 @@ static int qcom_slim_probe(struct platform_device *pdev)
return ret;
}

-static int qcom_slim_remove(struct platform_device *pdev)
+static void qcom_slim_remove(struct platform_device *pdev)
{
struct qcom_slim_ctrl *ctrl = platform_get_drvdata(pdev);

@@ -635,7 +635,6 @@ static int qcom_slim_remove(struct platform_device *pdev)
clk_disable_unprepare(ctrl->rclk);
clk_disable_unprepare(ctrl->hclk);
destroy_workqueue(ctrl->rxwq);
- return 0;
}

/*
@@ -721,7 +720,7 @@ static const struct of_device_id qcom_slim_dt_match[] = {

static struct platform_driver qcom_slim_driver = {
.probe = qcom_slim_probe,
- .remove = qcom_slim_remove,
+ .remove_new = qcom_slim_remove,
.driver = {
.name = "qcom_slim_ctrl",
.of_match_table = qcom_slim_dt_match,
diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c
index ce28ac35b2b6..e0b21f0f79c1 100644
--- a/drivers/slimbus/qcom-ngd-ctrl.c
+++ b/drivers/slimbus/qcom-ngd-ctrl.c
@@ -1678,14 +1678,12 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev)
return ret;
}

-static int qcom_slim_ngd_ctrl_remove(struct platform_device *pdev)
+static void qcom_slim_ngd_ctrl_remove(struct platform_device *pdev)
{
platform_driver_unregister(&qcom_slim_ngd_driver);
-
- return 0;
}

-static int qcom_slim_ngd_remove(struct platform_device *pdev)
+static void qcom_slim_ngd_remove(struct platform_device *pdev)
{
struct qcom_slim_ngd_ctrl *ctrl = platform_get_drvdata(pdev);

@@ -1700,7 +1698,6 @@ static int qcom_slim_ngd_remove(struct platform_device *pdev)

kfree(ctrl->ngd);
ctrl->ngd = NULL;
- return 0;
}

static int __maybe_unused qcom_slim_ngd_runtime_idle(struct device *dev)
@@ -1743,7 +1740,7 @@ static const struct dev_pm_ops qcom_slim_ngd_dev_pm_ops = {

static struct platform_driver qcom_slim_ngd_ctrl_driver = {
.probe = qcom_slim_ngd_ctrl_probe,
- .remove = qcom_slim_ngd_ctrl_remove,
+ .remove_new = qcom_slim_ngd_ctrl_remove,
.driver = {
.name = "qcom,slim-ngd-ctrl",
.of_match_table = qcom_slim_ngd_dt_match,
@@ -1752,7 +1749,7 @@ static struct platform_driver qcom_slim_ngd_ctrl_driver = {

static struct platform_driver qcom_slim_ngd_driver = {
.probe = qcom_slim_ngd_probe,
- .remove = qcom_slim_ngd_remove,
+ .remove_new = qcom_slim_ngd_remove,
.driver = {
.name = QCOM_SLIM_NGD_DRV_NAME,
.pm = &qcom_slim_ngd_dev_pm_ops,
--
2.25.1