Samsung: linux: Remove patches included in 5.10.15

samsung-0001-FROMLIST-v1-serial-samsung-Re-factors-UART-IRQ-resou.patch
- deleted
- ref: https://www.spinics.net/lists/linux-serial/msg39463.html

samsung-0012-MEMEKA-phy-exynos5-usbdrd-Calibrating-makes-sense-on.patch
- deleted
- incorporated in 5.10.y

samsung-0013-MEMEKA-clk-samsung-exynos5420-Keep-top-G3D-clocks-en.patch
- deleted
- replaced by 67f96ff7c8
- included in kernel 5.10.y

samsung-0016-MEMEKA-thermal-add-irq-mode-configuration-for-trip-p.patch
- updated for 5.10.y, needs to be build/run tested.
This commit is contained in:
heitbaum 2021-02-14 03:10:49 +00:00
parent 771276758d
commit c846f6a87b
4 changed files with 11 additions and 169 deletions

View File

@ -1,46 +0,0 @@
From abda70cb93d3882dc22592c7a5179e739e56133b Mon Sep 17 00:00:00 2001
From: Tamseel Shams <m.shams@samsung.com>
Date: Sun, 5 Jul 2020 03:51:47 +0000
Subject: [PATCH 01/25] FROMLIST(v1): serial: samsung: Re-factors UART IRQ
resource for various Samsung SoC
In few older Samsung SoCs like s3c2410, s3c2412
and s3c2440, UART IP is having 2 interrupt lines.
However, in other SoCs like s3c6400, s5pv210,
exynos5433, and exynos4210 UART is having only 1
interrupt line. Due to this, "platform_get_irq(platdev, 1)"
call in the driver gives the following warning:
"IRQ index 1 not found" on recent platforms.
This patch re-factors the IRQ resources handling for
each platform and hence fixing the above warnings seen
on some platforms.
Signed-off-by: Tamseel Shams <m.shams@samsung.com>
---
drivers/tty/serial/samsung_tty.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
index 73f951d65b93..7f05335c3a1e 100644
--- a/drivers/tty/serial/samsung_tty.c
+++ b/drivers/tty/serial/samsung_tty.c
@@ -1885,10 +1885,13 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
else {
port->irq = ret;
ourport->rx_irq = ret;
- ourport->tx_irq = ret + 1;
+ if (s3c24xx_serial_has_interrupt_mask(port))
+ ourport->tx_irq = ret;
+ else
+ ourport->tx_irq = ret + 1;
}
- ret = platform_get_irq(platdev, 1);
+ ret = platform_get_irq_optional(platdev, 1);
if (ret > 0)
ourport->tx_irq = ret;
/*
--
2.17.1

View File

@ -1,34 +0,0 @@
From b67896608244f63641885f1e186c9f2add9447cc Mon Sep 17 00:00:00 2001
From: Marek Szyprowski <m.szyprowski@samsung.com>
Date: Fri, 19 Jul 2019 11:27:34 +0200
Subject: [PATCH 12/25] MEMEKA: phy: exynos5-usbdrd: Calibrating makes sense
only for USB2.0 PHY
PHY calibration is needed only for USB2.0 (UTMI) PHY, so skip calling
calibration code when phy_calibrate() is called for USB3.0 (PIPE3) PHY.
Fixes: d8c80bb3b55b ("phy: exynos5-usbdrd: Calibrate LOS levels for exynos5420/5800")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: memeka <mihailescu2m@gmail.com>
---
drivers/phy/samsung/phy-exynos5-usbdrd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c
index e510732afb8b..7f6279fb4f8f 100644
--- a/drivers/phy/samsung/phy-exynos5-usbdrd.c
+++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c
@@ -714,7 +714,9 @@ static int exynos5_usbdrd_phy_calibrate(struct phy *phy)
struct phy_usb_instance *inst = phy_get_drvdata(phy);
struct exynos5_usbdrd_phy *phy_drd = to_usbdrd_phy(inst);
- return exynos5420_usbdrd_phy_calibrate(phy_drd);
+ if (inst->phy_cfg->id == EXYNOS5_DRDPHY_UTMI)
+ return exynos5420_usbdrd_phy_calibrate(phy_drd);
+ return 0;
}
static const struct phy_ops exynos5_usbdrd_phy_ops = {
--
2.17.1

View File

@ -1,83 +0,0 @@
From 5e218f158f89780e48be29c11da270ff1f6f968d Mon Sep 17 00:00:00 2001
From: Marek Szyprowski <m.szyprowski@samsung.com>
Date: Thu, 21 Nov 2019 11:11:45 +0100
Subject: [PATCH 13/25] MEMEKA: clk: samsung: exynos5420: Keep top G3D clocks
enabled
All top clocks on G3D path has to be enabled all the time to allow proper
G3D power domain operation. This is achieved by adding CRITICAL flag to
"mout_sw_aclk_g3d" clock, what keeps this clock and all its parents
enabled.
This fixes following imprecise abort issue observed on Odroid XU3/XU4
after enabling Panfrost driver by commit 1a5a85c56402 "ARM: dts: exynos:
Add Mali/GPU node on Exynos5420 and enable it on Odroid XU3/4"):
panfrost 11800000.gpu: clock rate = 400000000
panfrost 11800000.gpu: failed to get regulator: -517
panfrost 11800000.gpu: regulator init failed -517
Power domain G3D disable failed
...
panfrost 11800000.gpu: clock rate = 400000000
8<--- cut here ---
Unhandled fault: imprecise external abort (0x1406) at 0x00000000
pgd = (ptrval)
[00000000] *pgd=00000000
Internal error: : 1406 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 7 PID: 53 Comm: kworker/7:1 Not tainted 5.4.0-rc8-next-20191119-00032-g56f1001191a6 #6923
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
Workqueue: events deferred_probe_work_func
PC is at panfrost_gpu_soft_reset+0x94/0x110
LR is at ___might_sleep+0x128/0x2dc
...
[<c05c231c>] (panfrost_gpu_soft_reset) from [<c05c2704>] (panfrost_gpu_init+0x10/0x67c)
[<c05c2704>] (panfrost_gpu_init) from [<c05c15d0>] (panfrost_device_init+0x158/0x2cc)
[<c05c15d0>] (panfrost_device_init) from [<c05c0cb0>] (panfrost_probe+0x80/0x178)
[<c05c0cb0>] (panfrost_probe) from [<c05cfaa0>] (platform_drv_probe+0x48/0x9c)
[<c05cfaa0>] (platform_drv_probe) from [<c05cd20c>] (really_probe+0x1c4/0x474)
[<c05cd20c>] (really_probe) from [<c05cd694>] (driver_probe_device+0x78/0x1bc)
[<c05cd694>] (driver_probe_device) from [<c05cb374>] (bus_for_each_drv+0x74/0xb8)
[<c05cb374>] (bus_for_each_drv) from [<c05ccfa8>] (__device_attach+0xd4/0x16c)
[<c05ccfa8>] (__device_attach) from [<c05cc110>] (bus_probe_device+0x88/0x90)
[<c05cc110>] (bus_probe_device) from [<c05cc634>] (deferred_probe_work_func+0x4c/0xd0)
[<c05cc634>] (deferred_probe_work_func) from [<c0149df0>] (process_one_work+0x300/0x864)
[<c0149df0>] (process_one_work) from [<c014a3ac>] (worker_thread+0x58/0x5a0)
[<c014a3ac>] (worker_thread) from [<c0151174>] (kthread+0x12c/0x160)
[<c0151174>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x20)
Exception stack(0xee03dfb0 to 0xee03dff8)
...
Code: e594300c e5933020 e3130c01 1a00000f (ebefff50).
---[ end trace badde2b74a65a540 ]---
In the above case, the Panfrost driver disables G3D clocks after failure
of getting the needed regulator and return with -EPROVE_DEFER code. This
causes G3D power domain disable failure and then, during second probe
an imprecise abort is triggered due to undefined power domain state.
Fixes: 45f10dabb56b ("clk: samsung: exynos5420: Add SET_RATE_PARENT flag to clocks on G3D path")
Fixes: c9f7567aff31 ("clk: samsung: exynos542x: Move G3D subsystem clocks to its sub-CMU")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
---
drivers/clk/samsung/clk-exynos5420.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index edb2363c735a..1a5289d81a9f 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -713,7 +713,7 @@ static const struct samsung_mux_clock exynos5x_mux_clks[] __initconst = {
MUX(0, "mout_sw_aclk266_g2d", mout_sw_aclk266_g2d_p,
SRC_TOP12, 12, 1),
MUX_F(0, "mout_sw_aclk_g3d", mout_sw_aclk_g3d_p, SRC_TOP12, 16, 1,
- CLK_SET_RATE_PARENT, 0),
+ CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 0),
MUX(0, "mout_sw_aclk300_jpeg", mout_sw_aclk300_jpeg_p,
SRC_TOP12, 20, 1),
MUX(CLK_MOUT_SW_ACLK300, "mout_sw_aclk300_disp1",
--
2.17.1

View File

@ -20,15 +20,15 @@ Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Lukasz Luba <l.luba@partner.samsung.com> Signed-off-by: Lukasz Luba <l.luba@partner.samsung.com>
Signed-off-by: memeka <mihailescu2m@gmail.com> Signed-off-by: memeka <mihailescu2m@gmail.com>
--- ---
drivers/thermal/of-thermal.c | 17 +++++++++++++++++ drivers/thermal/thermal_of.c | 17 +++++++++++++++++
drivers/thermal/thermal_core.c | 10 ++++++++-- drivers/thermal/thermal_core.c | 10 ++++++++--
include/linux/thermal.h | 5 +++++ include/linux/thermal.h | 5 +++++
3 files changed, 30 insertions(+), 2 deletions(-) 3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index 874a47d6923f..1549561e28b2 100644 index 874a47d6923f..1549561e28b2 100644
--- a/drivers/thermal/of-thermal.c --- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/of-thermal.c +++ b/drivers/thermal/thermal_of.c
@@ -315,6 +315,20 @@ static int of_thermal_get_trip_type(struct thermal_zone_device *tz, int trip, @@ -315,6 +315,20 @@ static int of_thermal_get_trip_type(struct thermal_zone_device *tz, int trip,
return 0; return 0;
} }
@ -71,10 +71,11 @@ diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 9a321dc548c8..ef23a33d34b6 100644 index 9a321dc548c8..ef23a33d34b6 100644
--- a/drivers/thermal/thermal_core.c --- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c
@@ -410,6 +410,7 @@ static void handle_critical_trips(struct thermal_zone_device *tz, @@ -410,7 +410,8 @@ static void handle_critical_trips(struct thermal_zone_device *tz,
static void handle_thermal_trip(struct thermal_zone_device *tz, int trip) static void handle_thermal_trip(struct thermal_zone_device *tz, int trip)
{ {
enum thermal_trip_type type; enum thermal_trip_type type;
int trip_temp, hyst = 0;
+ bool irq_mode = false; + bool irq_mode = false;
/* Ignore disabled trip points */ /* Ignore disabled trip points */
@ -113,9 +114,13 @@ index c91b1e344d56..c4ce2b875b73 100644
struct thermal_attr *trip_type_attrs; struct thermal_attr *trip_type_attrs;
struct thermal_attr *trip_hyst_attrs; struct thermal_attr *trip_hyst_attrs;
+ struct thermal_attr *trip_irq_mode_attrs; + struct thermal_attr *trip_irq_mode_attrs;
enum thermal_device_mode mode;
void *devdata; void *devdata;
int trips; int trips;
unsigned long trips_disabled; /* bitmap for disabled trips */ diff --git a/drivers/thermal/thermal_core.h b/drivers/thermal/thermal_core.h
index c91b1e344d56..c4ce2b875b73 100644
--- a/drivers/thermal/thermal_core.h
+++ b/drivers/thermal/thermal_core.h
@@ -353,6 +355,8 @@ struct thermal_zone_of_device_ops { @@ -353,6 +355,8 @@ struct thermal_zone_of_device_ops {
* @temperature: temperature value in miliCelsius * @temperature: temperature value in miliCelsius
* @hysteresis: relative hysteresis in miliCelsius * @hysteresis: relative hysteresis in miliCelsius