Skip to content

Commit 24e2c51

Browse files
committed
wip: Add sm8550-7.0 patches
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
1 parent fae29b6 commit 24e2c51

44 files changed

Lines changed: 31637 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
From f6b159fbdf6cafafa80c58f707f10e50103e112f Mon Sep 17 00:00:00 2001
2+
From: Philippe Simons <simons.philippe@gmail.com>
3+
Date: Mon, 21 Jul 2025 00:00:34 +0200
4+
Subject: [PATCH 01/44] msm/adreno: enable A32
5+
6+
---
7+
drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 5 ++++-
8+
1 file changed, 4 insertions(+), 1 deletion(-)
9+
10+
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
11+
index 38561f26837e..8767ab22f624 100644
12+
--- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
13+
+++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
14+
@@ -1501,7 +1501,10 @@ static const struct adreno_info a7xx_gpus[] = {
15+
},
16+
.preempt_record_size = 2860 * SZ_1K,
17+
}, {
18+
- .chip_ids = ADRENO_CHIP_IDS(0x43050a01), /* "C510v2" */
19+
+ .chip_ids = ADRENO_CHIP_IDS(
20+
+ 0x43050a01,
21+
+ 0x43050a00
22+
+ ),
23+
.family = ADRENO_7XX_GEN2,
24+
.fw = {
25+
[ADRENO_FW_SQE] = "a740_sqe.fw",
26+
--
27+
2.43.0
28+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
From bea0caae0753ada4c4e06e6ee08351e253daa39b Mon Sep 17 00:00:00 2001
2+
From: Philippe Simons <simons.philippe@gmail.com>
3+
Date: Wed, 8 Oct 2025 21:06:15 +0200
4+
Subject: [PATCH 02/44] qcom: dispcc-sm8550: Fix disp_cc_mdss_mdp_clk_src
5+
6+
Set CLK_OPS_PARENT_ENABLE to ensure the parent gets prepared and enabled
7+
when switching to it, fixing an "rcg didn't update its configuration"
8+
warning.
9+
10+
Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
11+
---
12+
drivers/clk/qcom/dispcc-sm8550.c | 2 +-
13+
1 file changed, 1 insertion(+), 1 deletion(-)
14+
15+
diff --git a/drivers/clk/qcom/dispcc-sm8550.c b/drivers/clk/qcom/dispcc-sm8550.c
16+
index f27140c649f5..5f75e1ccf38f 100644
17+
--- a/drivers/clk/qcom/dispcc-sm8550.c
18+
+++ b/drivers/clk/qcom/dispcc-sm8550.c
19+
@@ -622,7 +622,7 @@ static struct clk_rcg2 disp_cc_mdss_mdp_clk_src = {
20+
.name = "disp_cc_mdss_mdp_clk_src",
21+
.parent_data = disp_cc_parent_data_8,
22+
.num_parents = ARRAY_SIZE(disp_cc_parent_data_8),
23+
- .flags = CLK_SET_RATE_PARENT,
24+
+ .flags = CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
25+
.ops = &clk_rcg2_shared_ops,
26+
},
27+
};
28+
--
29+
2.43.0
30+
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
From 7b9fd594eb77f3bfa7d1c927f874dd8118471aa0 Mon Sep 17 00:00:00 2001
2+
From: Philippe Simons <simons.philippe@gmail.com>
3+
Date: Thu, 21 Aug 2025 22:29:26 +0200
4+
Subject: [PATCH 03/44] input: rmi4: add reset-gpio
5+
6+
---
7+
drivers/input/rmi4/rmi_driver.c | 1 -
8+
drivers/input/rmi4/rmi_driver.h | 2 ++
9+
drivers/input/rmi4/rmi_i2c.c | 22 ++++++++++++++++++++++
10+
3 files changed, 24 insertions(+), 1 deletion(-)
11+
12+
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
13+
index ccd9338a44db..083cb56cf867 100644
14+
--- a/drivers/input/rmi4/rmi_driver.c
15+
+++ b/drivers/input/rmi4/rmi_driver.c
16+
@@ -31,7 +31,6 @@
17+
#define RMI4_PAGE_MASK 0xFF00
18+
19+
#define RMI_DEVICE_RESET_CMD 0x01
20+
-#define DEFAULT_RESET_DELAY_MS 100
21+
22+
void rmi_free_function_list(struct rmi_device *rmi_dev)
23+
{
24+
diff --git a/drivers/input/rmi4/rmi_driver.h b/drivers/input/rmi4/rmi_driver.h
25+
index e84495caab15..5af5a82128a7 100644
26+
--- a/drivers/input/rmi4/rmi_driver.h
27+
+++ b/drivers/input/rmi4/rmi_driver.h
28+
@@ -16,6 +16,8 @@
29+
#define SYNAPTICS_INPUT_DEVICE_NAME "Synaptics RMI4 Touch Sensor"
30+
#define SYNAPTICS_VENDOR_ID 0x06cb
31+
32+
+#define DEFAULT_RESET_DELAY_MS 100
33+
+
34+
#define GROUP(_attrs) { \
35+
.attrs = _attrs, \
36+
}
37+
diff --git a/drivers/input/rmi4/rmi_i2c.c b/drivers/input/rmi4/rmi_i2c.c
38+
index 3c0c5fd44702..9707710a93f2 100644
39+
--- a/drivers/input/rmi4/rmi_i2c.c
40+
+++ b/drivers/input/rmi4/rmi_i2c.c
41+
@@ -4,6 +4,7 @@
42+
* Copyright (c) 2011 Unixphere
43+
*/
44+
45+
+#include <linux/gpio/consumer.h>
46+
#include <linux/i2c.h>
47+
#include <linux/rmi.h>
48+
#include <linux/of.h>
49+
@@ -26,6 +27,7 @@
50+
* @tx_buf_size: Size of the buffer
51+
*
52+
* @supplies: Array of voltage regulators
53+
+ * @reset_gpio: Reference to the reset GPIO
54+
* @startup_delay: Milliseconds to pause after powering up the regulators
55+
*/
56+
struct rmi_i2c_xport {
57+
@@ -39,7 +41,9 @@ struct rmi_i2c_xport {
58+
size_t tx_buf_size;
59+
60+
struct regulator_bulk_data supplies[2];
61+
+ struct gpio_desc *reset_gpio;
62+
u32 startup_delay;
63+
+ u32 reset_delay;
64+
};
65+
66+
#define RMI_PAGE_SELECT_REGISTER 0xff
67+
@@ -227,6 +231,15 @@ static int rmi_i2c_probe(struct i2c_client *client)
68+
return -ENODEV;
69+
}
70+
71+
+ rmi_i2c->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset",
72+
+ GPIOD_OUT_HIGH);
73+
+ if (IS_ERR(rmi_i2c->reset_gpio)) {
74+
+ error = PTR_ERR(rmi_i2c->reset_gpio);
75+
+ dev_err(&client->dev, "failed to get reset GPIO: %d\n", error);
76+
+ return error;
77+
+ }
78+
+ gpiod_set_consumer_name(rmi_i2c->reset_gpio, "rmi4 reset");
79+
+
80+
rmi_i2c->supplies[0].supply = "vdd";
81+
rmi_i2c->supplies[1].supply = "vio";
82+
error = devm_regulator_bulk_get(&client->dev,
83+
@@ -251,6 +264,15 @@ static int rmi_i2c_probe(struct i2c_client *client)
84+
85+
msleep(rmi_i2c->startup_delay);
86+
87+
+ if (rmi_i2c->reset_gpio) {
88+
+ of_property_read_u32(client->dev.of_node, "syna,reset-delay-ms",
89+
+ &rmi_i2c->reset_delay);
90+
+ gpiod_set_value_cansleep(rmi_i2c->reset_gpio, 0);
91+
+ usleep_range(10000, 20000);
92+
+ gpiod_set_value_cansleep(rmi_i2c->reset_gpio, 1);
93+
+ msleep(rmi_i2c->reset_delay ?: DEFAULT_RESET_DELAY_MS);
94+
+ }
95+
+
96+
rmi_i2c->client = client;
97+
mutex_init(&rmi_i2c->page_mutex);
98+
99+
--
100+
2.43.0
101+

0 commit comments

Comments
 (0)