From 1543e317f1da31b75942316931e8f491a8920811 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 04 Jan 2024 10:08:02 +0000
Subject: [PATCH] disable FB
---
kernel/drivers/media/i2c/maxim4c/maxim4c_v4l2.c | 34 +++++++++++++---------------------
1 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/kernel/drivers/media/i2c/maxim4c/maxim4c_v4l2.c b/kernel/drivers/media/i2c/maxim4c/maxim4c_v4l2.c
index 37df9a6..908045e 100644
--- a/kernel/drivers/media/i2c/maxim4c/maxim4c_v4l2.c
+++ b/kernel/drivers/media/i2c/maxim4c/maxim4c_v4l2.c
@@ -532,6 +532,11 @@
if (maxim4c->hot_plug_irq > 0)
enable_irq(maxim4c->hot_plug_irq);
+ if (maxim4c->link_lock_state != maxim4c->gmsl_link.link_enable_mask) {
+ dev_info(dev, "partial links are locked, start hot plug detect work.\n");
+ maxim4c_hot_plug_detect_work_start(maxim4c);
+ }
+
return 0;
}
@@ -589,21 +594,20 @@
goto unlock_and_return;
if (on) {
- ret = pm_runtime_get_sync(&client->dev);
- if (ret < 0) {
- pm_runtime_put_noidle(&client->dev);
+ ret = pm_runtime_resume_and_get(&client->dev);
+ if (ret < 0)
goto unlock_and_return;
- }
ret = __maxim4c_start_stream(maxim4c);
if (ret) {
v4l2_err(sd, "start stream failed while write regs\n");
- pm_runtime_put(&client->dev);
+ pm_runtime_put_sync(&client->dev);
goto unlock_and_return;
}
} else {
__maxim4c_stop_stream(maxim4c);
- pm_runtime_put(&client->dev);
+ pm_runtime_mark_last_busy(&client->dev);
+ pm_runtime_put_autosuspend(&client->dev);
}
maxim4c->streaming = on;
@@ -787,21 +791,9 @@
val |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
val |= (1 << (data_lanes - 1));
- switch (data_lanes) {
- case 4:
- val |= V4L2_MBUS_CSI2_CHANNEL_3;
- fallthrough;
- case 3:
- val |= V4L2_MBUS_CSI2_CHANNEL_2;
- fallthrough;
- case 2:
- val |= V4L2_MBUS_CSI2_CHANNEL_1;
- fallthrough;
- case 1:
- default:
- val |= V4L2_MBUS_CSI2_CHANNEL_0;
- break;
- }
+
+ val |= V4L2_MBUS_CSI2_CHANNEL_3 | V4L2_MBUS_CSI2_CHANNEL_2 |
+ V4L2_MBUS_CSI2_CHANNEL_1 | V4L2_MBUS_CSI2_CHANNEL_0;
config->type = V4L2_MBUS_CSI2_DPHY;
config->flags = val;
--
Gitblit v1.6.2