mirror of
https://github.com/Ahwxorg/nixos-config.git
synced 2026-07-16 22:21:55 +08:00
feat: import fairydust kernel patches
This commit is contained in:
parent
126e9bb75c
commit
cb468cbc4c
13 changed files with 897 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
From 881fca1e2f58f0b53f470346c78df0ea72a5d7d8 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Thu, 11 Sep 2025 00:01:39 +0200
|
||||
Subject: [PATCH 01/13] usb: typec: tipd: Track data_status changes for CD321x
|
||||
|
||||
HDP status for DisplayPort alt-mode is signaled data_status. Track
|
||||
changes to have a debounced HPD to forward to the DRM KMS driver.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
drivers/usb/typec/tipd/core.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c
|
||||
index e2b26af2b84a..607d0876ee79 100644
|
||||
--- a/drivers/usb/typec/tipd/core.c
|
||||
+++ b/drivers/usb/typec/tipd/core.c
|
||||
@@ -194,6 +194,7 @@ struct cd321x_status {
|
||||
u32 pwr_status;
|
||||
u32 data_status;
|
||||
u32 status_changed;
|
||||
+ u32 data_status_changed;
|
||||
struct usb_pd_identity partner_identity;
|
||||
struct tps6598x_dp_sid_status_reg dp_sid_status;
|
||||
struct tps6598x_intel_vid_status_reg intel_vid_status;
|
||||
@@ -745,6 +746,7 @@ static void cd321x_update_work(struct work_struct *work)
|
||||
|
||||
st = cd321x->update_status;
|
||||
cd321x->update_status.status_changed = 0;
|
||||
+ cd321x->update_status.data_status_changed = 0;
|
||||
|
||||
bool old_connected = !!tps->partner;
|
||||
bool new_connected = st.status & TPS_STATUS_PLUG_PRESENT;
|
||||
@@ -841,6 +843,7 @@ static void cd321x_update_work(struct work_struct *work)
|
||||
static void cd321x_queue_status(struct cd321x *cd321x)
|
||||
{
|
||||
cd321x->update_status.status_changed |= cd321x->update_status.status ^ cd321x->tps.status;
|
||||
+ cd321x->update_status.data_status_changed |= cd321x->update_status.data_status ^ cd321x->tps.data_status;
|
||||
|
||||
cd321x->update_status.status = cd321x->tps.status;
|
||||
cd321x->update_status.pwr_status = cd321x->tps.pwr_status;
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
From d9b201ca8e20a4b160c3f77c951c27414b506f8c Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Mon, 22 Dec 2025 22:08:35 +0100
|
||||
Subject: [PATCH 02/13] usb: typec: tipd: HACK: Use drm oob hotplug event
|
||||
|
||||
This is not how dp-altmode support should be implemented but it works
|
||||
for new. Requires a "displayport" property in the connector node with a
|
||||
phandle of the connector.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
drivers/usb/typec/tipd/core.c | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c
|
||||
index 607d0876ee79..aad526d0ce47 100644
|
||||
--- a/drivers/usb/typec/tipd/core.c
|
||||
+++ b/drivers/usb/typec/tipd/core.c
|
||||
@@ -6,6 +6,8 @@
|
||||
* Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
||||
*/
|
||||
|
||||
+#include <drm/drm_connector.h>
|
||||
+
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
@@ -217,6 +219,8 @@ struct cd321x {
|
||||
struct cd321x_status update_status;
|
||||
struct delayed_work update_work;
|
||||
struct usb_pd_identity cur_partner_identity;
|
||||
+
|
||||
+ struct fwnode_handle *connector_fwnode;
|
||||
};
|
||||
|
||||
static enum power_supply_property tps6598x_psy_props[] = {
|
||||
@@ -755,6 +759,9 @@ static void cd321x_update_work(struct work_struct *work)
|
||||
bool usb_connection = st.data_status &
|
||||
(TPS_DATA_STATUS_USB2_CONNECTION | TPS_DATA_STATUS_USB3_CONNECTION);
|
||||
|
||||
+ bool dp_hpd = st.data_status & CD321X_DATA_STATUS_HPD_LEVEL;
|
||||
+ bool dp_hpd_changed = st.data_status_changed & CD321X_DATA_STATUS_HPD_LEVEL;
|
||||
+
|
||||
enum usb_role old_role = usb_role_switch_get_role(tps->role_sw);
|
||||
enum usb_role new_role = USB_ROLE_NONE;
|
||||
enum typec_pwr_opmode pwr_opmode = TYPEC_PWR_MODE_USB;
|
||||
@@ -783,6 +790,10 @@ static void cd321x_update_work(struct work_struct *work)
|
||||
if (old_role != USB_ROLE_NONE && (new_role != old_role || was_disconnected))
|
||||
usb_role_switch_set_role(tps->role_sw, USB_ROLE_NONE);
|
||||
|
||||
+ if (cd321x->connector_fwnode && (!dp_hpd || dp_hpd_changed)) {
|
||||
+ drm_connector_oob_hotplug_event(cd321x->connector_fwnode, connector_status_disconnected);
|
||||
+ }
|
||||
+
|
||||
/* Process partner disconnection or change */
|
||||
if (!new_connected || partner_changed) {
|
||||
if (!IS_ERR(tps->partner))
|
||||
@@ -837,6 +848,9 @@ static void cd321x_update_work(struct work_struct *work)
|
||||
/* Launch the USB role switch */
|
||||
usb_role_switch_set_role(tps->role_sw, new_role);
|
||||
|
||||
+ if (cd321x->connector_fwnode && dp_hpd)
|
||||
+ drm_connector_oob_hotplug_event(cd321x->connector_fwnode, connector_status_connected);
|
||||
+
|
||||
power_supply_changed(tps->psy);
|
||||
}
|
||||
|
||||
@@ -1271,6 +1285,7 @@ static int
|
||||
cd321x_register_port(struct tps6598x *tps, struct fwnode_handle *fwnode)
|
||||
{
|
||||
struct cd321x *cd321x = container_of(tps, struct cd321x, tps);
|
||||
+ struct fwnode_handle *connector_fwnode = NULL;
|
||||
int ret;
|
||||
|
||||
INIT_DELAYED_WORK(&cd321x->update_work, cd321x_update_work);
|
||||
@@ -1289,6 +1304,11 @@ cd321x_register_port(struct tps6598x *tps, struct fwnode_handle *fwnode)
|
||||
goto err_unregister_altmodes;
|
||||
}
|
||||
|
||||
+ if (fwnode_property_present(fwnode, "displayport"))
|
||||
+ connector_fwnode = fwnode_find_reference(fwnode, "displayport", 0);
|
||||
+ if (!IS_ERR_OR_NULL(connector_fwnode))
|
||||
+ cd321x->connector_fwnode = connector_fwnode;
|
||||
+
|
||||
cd321x->state.alt = NULL;
|
||||
cd321x->state.mode = TYPEC_STATE_SAFE;
|
||||
cd321x->state.data = NULL;
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
From 8710bf540afd5a936933e137116eed6f86efc151 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Sat, 3 Dec 2022 21:26:42 +0100
|
||||
Subject: [PATCH 03/13] arm64: dts: apple: t8103: Add dp-altmode dts hacks
|
||||
|
||||
Enable DP alt mode for all M1 devices:
|
||||
- Mac Mini (M1): USB-C port next to the HDMI port
|
||||
- Macbook Pro (M1, 13-inch): front left USB-C port
|
||||
- Macbook Air (M1, 13-inch): front left USB-C port
|
||||
- iMac (M1, 2 USB-C ports): back left USB-C port
|
||||
- iMac (M1, 4 USB-C ports): back right middle USB-C port
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 45 +++++++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
|
||||
index 67a57fc507df..0d4ff6fd0933 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
|
||||
@@ -9,10 +9,15 @@
|
||||
* Copyright The Asahi Linux Contributors
|
||||
*/
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
/ {
|
||||
aliases {
|
||||
bluetooth0 = &bluetooth0;
|
||||
dcp = &dcp;
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ dcpext = &dcpext;
|
||||
+#endif
|
||||
disp0 = &display;
|
||||
disp0_piodma = &disp0_piodma;
|
||||
serial0 = &serial0;
|
||||
@@ -103,6 +108,11 @@ typec1: connector {
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ /* hacks */
|
||||
+ displayport = <&dcpext>;
|
||||
+#endif
|
||||
+
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -123,6 +133,41 @@ typec1_connector_ss: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+&display {
|
||||
+ iommus = <&disp0_dart 0>, <&dispext0_dart 0>;
|
||||
+};
|
||||
+
|
||||
+&dispext0_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext_mbox {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext {
|
||||
+ status = "okay";
|
||||
+ apple,connector-type = "DP";
|
||||
+
|
||||
+ /* hacks */
|
||||
+ apple,dptx-phy = <1>;
|
||||
+ phys = <&atcphy1 PHY_TYPE_DP>;
|
||||
+ phy-names = "dp-phy";
|
||||
+ mux-controls = <&atcphy1_xbar 0>;
|
||||
+ mux-control-names = "dp-xbar";
|
||||
+ mux-index = <0>;
|
||||
+};
|
||||
+
|
||||
+&dpaudio1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
/* USB controllers */
|
||||
&dwc3_0 {
|
||||
ports {
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 59a43872360afe62880e80949395adbddacb971d Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Thu, 25 Dec 2025 18:49:55 +0100
|
||||
Subject: [PATCH 04/13] HACK: arm64: dts: apple: t8103: Mark ps_atc1_common as
|
||||
always on
|
||||
|
||||
Works around missing suspend/resume handling in ATC phy for DP-altmode.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
|
||||
index 0d4ff6fd0933..bf92d3e2c775 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
|
||||
@@ -166,6 +166,10 @@ &dcpext {
|
||||
&dpaudio1 {
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&ps_atc1_common {
|
||||
+ apple,always-on; /* Needs to stay on for DP-alt suspend/resume */
|
||||
+};
|
||||
#endif
|
||||
|
||||
/* USB controllers */
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
From 65061fcd844e58c4295b8461080381917d7c03b7 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Sat, 3 Dec 2022 22:19:44 +0100
|
||||
Subject: [PATCH 05/13] arm64: dts: apple: t8112: Add dp-altmode dts hacks
|
||||
|
||||
Enable DP alt mode for the front left USB-C port of Macbook Air 13 (M2,
|
||||
13/15-inch) and Macbook Pro (M2, 13-inch).
|
||||
Can't easily enabled on on the M2 Mac Mini since dcpext is used for the
|
||||
HDMI port and dcp bringup is troublesome.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t8112-j413.dts | 2 +
|
||||
arch/arm64/boot/dts/apple/t8112-j415.dts | 2 +
|
||||
arch/arm64/boot/dts/apple/t8112-j493.dts | 2 +
|
||||
arch/arm64/boot/dts/apple/t8112-jxxx.dtsi | 46 +++++++++++++++++++++++
|
||||
4 files changed, 52 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-j413.dts b/arch/arm64/boot/dts/apple/t8112-j413.dts
|
||||
index f36d40cb7fe6..312a54cb7f21 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-j413.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-j413.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t8112.dtsi"
|
||||
#include "t8112-jxxx.dtsi"
|
||||
#include <dt-bindings/leds/common.h>
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-j415.dts b/arch/arm64/boot/dts/apple/t8112-j415.dts
|
||||
index 7f63969ede2a..5fe5b2ba5dab 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-j415.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-j415.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t8112.dtsi"
|
||||
#include "t8112-jxxx.dtsi"
|
||||
#include <dt-bindings/leds/common.h>
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-j493.dts b/arch/arm64/boot/dts/apple/t8112-j493.dts
|
||||
index 61bbb7a3c6f4..9859375f8fa1 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-j493.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-j493.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t8112.dtsi"
|
||||
#include "t8112-jxxx.dtsi"
|
||||
#include <dt-bindings/leds/common.h>
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi
|
||||
index fb957f785d82..344042877adb 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi
|
||||
@@ -96,6 +96,11 @@ typec1: connector {
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ /* hacks */
|
||||
+ displayport = <&dcpext>;
|
||||
+#endif
|
||||
+
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -116,6 +121,47 @@ typec1_connector_ss: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+/ {
|
||||
+ aliases {
|
||||
+ dcpext = &dcpext;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&display {
|
||||
+ iommus = <&disp0_dart 0>, <&dispext0_dart 0>;
|
||||
+};
|
||||
+
|
||||
+&dispext0_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext_mbox {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext {
|
||||
+ status = "okay";
|
||||
+ apple,connector-type = "DP";
|
||||
+
|
||||
+ /* hacks */
|
||||
+ apple,dptx-phy = <1>;
|
||||
+ phys = <&atcphy1 PHY_TYPE_DP>;
|
||||
+ phy-names = "dp-phy";
|
||||
+ mux-controls = <&atcphy1_xbar 0>;
|
||||
+ mux-control-names = "dp-xbar";
|
||||
+ mux-index = <2>;
|
||||
+};
|
||||
+
|
||||
+&dpaudio1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
/* USB controllers */
|
||||
&dwc3_0 {
|
||||
ports {
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 5cb09bf01895825292587640e625dca9fc3dc4e9 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Thu, 25 Dec 2025 18:49:55 +0100
|
||||
Subject: [PATCH 06/13] HACK: arm64: dts: apple: t8112: Mark ps_atc1_common as
|
||||
always on
|
||||
|
||||
Works around missing suspend/resume handling in ATC phy for DP-altmode.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t8112-jxxx.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi
|
||||
index 344042877adb..62fa3bc8f99f 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-jxxx.dtsi
|
||||
@@ -160,6 +160,10 @@ &dcpext {
|
||||
&dpaudio1 {
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&ps_atc1_common {
|
||||
+ apple,always-on; /* Needs to stay on for DP-alt suspend/resume */
|
||||
+};
|
||||
#endif
|
||||
|
||||
/* USB controllers */
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
From f8fd296869cac5f9d2112ae91ffcfe89e543a050 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Sun, 4 Aug 2024 18:42:36 +0200
|
||||
Subject: [PATCH 07/13] arm64: apple: t8112-j473: Add DP-altmode on typec1
|
||||
|
||||
Needs more testing, maybe a little unstable and somehow limits the HDMI
|
||||
out to 1280x720 (to be verified).
|
||||
Using dcp as display coproc since dcpext is used for the HDMI port.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t8112-j473.dts | 43 ++++++++++++++++++++++++
|
||||
1 file changed, 43 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-j473.dts b/arch/arm64/boot/dts/apple/t8112-j473.dts
|
||||
index 48f268bce7d3..855e3bbf89ca 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-j473.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-j473.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t8112.dtsi"
|
||||
#include "t8112-jxxx.dtsi"
|
||||
|
||||
@@ -66,6 +68,47 @@ &dcpext {
|
||||
apple,dptx-phy = <5>;
|
||||
};
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+/ {
|
||||
+ aliases {
|
||||
+ dcp = &dcp;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&display {
|
||||
+ /* dispext0_dart needs to be first for m1n1's */
|
||||
+ iommus = <&dispext0_dart 0>, <&disp0_dart 0>;
|
||||
+};
|
||||
+
|
||||
+&disp0_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcp {
|
||||
+ status = "okay";
|
||||
+ apple,connector-type = "DP";
|
||||
+
|
||||
+ /* hacks */
|
||||
+ apple,dptx-phy = <1>;
|
||||
+ phys = <&atcphy1 PHY_TYPE_DP>;
|
||||
+ phy-names = "dp-phy";
|
||||
+ mux-controls = <&atcphy1_xbar 0>;
|
||||
+ mux-control-names = "dp-xbar";
|
||||
+ mux-index = <0>;
|
||||
+};
|
||||
+
|
||||
+&dcpext {
|
||||
+ /delete-property/ mux-controls;
|
||||
+ /delete-property/ mux-control-names;
|
||||
+ /delete-property/ mux-index;
|
||||
+};
|
||||
+
|
||||
+&typec1 {
|
||||
+ /* hacks */
|
||||
+ displayport = <&dcp>;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
/* remove once m1n1 enables sio nodes after setup */
|
||||
&sio {
|
||||
status = "okay";
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From b04b3bc51b8aa57880256b0c2fd99e19c6236f9e Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Thu, 25 Dec 2025 18:49:55 +0100
|
||||
Subject: [PATCH 08/13] HACK: arm64: apple: t8112-j473: Mark ps_atc1_common as
|
||||
always on
|
||||
|
||||
Works around missing suspend/resume handling in ATC phy for DP-altmode.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t8112-j473.dts | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t8112-j473.dts b/arch/arm64/boot/dts/apple/t8112-j473.dts
|
||||
index 855e3bbf89ca..6c3b04fa6553 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t8112-j473.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t8112-j473.dts
|
||||
@@ -107,6 +107,10 @@ &typec1 {
|
||||
/* hacks */
|
||||
displayport = <&dcp>;
|
||||
};
|
||||
+
|
||||
+&ps_atc1_common {
|
||||
+ apple,always-on; /* Needs to stay on for DP-alt suspend/resume */
|
||||
+};
|
||||
#endif
|
||||
|
||||
/* remove once m1n1 enables sio nodes after setup */
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
From cfe8c9c8efbf4e453f9a512b37c2be0f7434ac4f Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Sat, 5 Nov 2022 21:22:50 +0100
|
||||
Subject: [PATCH 09/13] arm64: dts: apple: t60xx: j[34]1[46]: Add dp-altmode
|
||||
hacks
|
||||
|
||||
Blessed dp-altmode port is front left port on j314/j316/j414/j416.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
.../arm64/boot/dts/apple/t600x-j314-j316.dtsi | 50 +++++++++++++++++++
|
||||
1 file changed, 50 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
|
||||
index cea603e5c2d9..b16c9fdc7233 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
|
||||
@@ -9,6 +9,8 @@
|
||||
* Copyright The Asahi Linux Contributors
|
||||
*/
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
@@ -22,6 +24,9 @@ aliases {
|
||||
bluetooth0 = &bluetooth0;
|
||||
dcp = &dcp;
|
||||
dcpext0 = &dcpext0;
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ dcpext1 = &dcpext1;
|
||||
+#endif
|
||||
disp0 = &display;
|
||||
disp0_piodma = &disp0_piodma;
|
||||
serial0 = &serial0;
|
||||
@@ -186,6 +191,11 @@ typec1: connector {
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ /* hacks */
|
||||
+ displayport = <&dcpext1>;
|
||||
+#endif
|
||||
+
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -247,6 +257,46 @@ hpm5: usb-pd@3a {
|
||||
};
|
||||
};
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
+&display {
|
||||
+ iommus = <&disp0_dart 0>, <&dispext0_dart 0>, <&dispext1_dart 0>;
|
||||
+};
|
||||
+
|
||||
+&dispext1_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext1_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext1_mbox {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext1 {
|
||||
+ status = "okay";
|
||||
+ apple,connector-type = "DP";
|
||||
+
|
||||
+ /* hacks */
|
||||
+ apple,dptx-phy = <1>;
|
||||
+ phys = <&atcphy1 PHY_TYPE_DP>;
|
||||
+ phy-names = "dp-phy";
|
||||
+ mux-controls = <&atcphy1_xbar 0>;
|
||||
+ mux-control-names = "dp-xbar";
|
||||
+ mux-index = <2>;
|
||||
+};
|
||||
+
|
||||
+&dpaudio2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&atcphy1_xbar {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
/* Virtual regulator representing the shared shutdown GPIO */
|
||||
/ {
|
||||
speaker_sdz: fixed-regulator-sn012776-sdz {
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 3af556775051897bf01f8148e222a1cca0d69b01 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Thu, 25 Dec 2025 18:50:32 +0100
|
||||
Subject: [PATCH 10/13] HACK: arm64: dts: apple: t60xx: j[34]1[46]: Mark
|
||||
ps_atc1_common as always on
|
||||
|
||||
Works around missing suspend/resume handling in ATC phy for DP-altmode.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
|
||||
index b16c9fdc7233..6424eabacfb9 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
|
||||
@@ -295,6 +295,10 @@ &dpaudio2 {
|
||||
&atcphy1_xbar {
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&ps_atc1_common {
|
||||
+ apple,always-on; /* Needs to stay on for DP-alt suspend/resume */
|
||||
+};
|
||||
#endif
|
||||
|
||||
/* Virtual regulator representing the shared shutdown GPIO */
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
From 21ac5e639a4e07ac944a020c78835dfd76758ff0 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Sun, 9 Jun 2024 23:35:29 +0200
|
||||
Subject: [PATCH 11/13] arm64: dts: apple: t60xx: j[34]75: Add dp-altmode hacks
|
||||
|
||||
DP alt mode for Mac Studio, the blessed port is the back left middle port
|
||||
(second closest USB-C port to the power connector).
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t6001-j375c.dts | 2 +
|
||||
arch/arm64/boot/dts/apple/t6002-j375d.dts | 2 +
|
||||
arch/arm64/boot/dts/apple/t600x-j375.dtsi | 47 ++++++++++++++++++++++
|
||||
arch/arm64/boot/dts/apple/t6021-j475c.dts | 6 +++
|
||||
arch/arm64/boot/dts/apple/t6022-j475d.dts | 2 +
|
||||
arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi | 4 ++
|
||||
6 files changed, 63 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t6001-j375c.dts b/arch/arm64/boot/dts/apple/t6001-j375c.dts
|
||||
index f3f98f038009..844bee0c4fdf 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t6001-j375c.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t6001-j375c.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t6001.dtsi"
|
||||
#include "t600x-j375.dtsi"
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t6002-j375d.dts b/arch/arm64/boot/dts/apple/t6002-j375d.dts
|
||||
index 5cf30cd162b6..1eedbfecfc38 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t6002-j375d.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t6002-j375d.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t6002.dtsi"
|
||||
#include "t600x-j375.dtsi"
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t600x-j375.dtsi b/arch/arm64/boot/dts/apple/t600x-j375.dtsi
|
||||
index ce339c0855bc..167306974939 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t600x-j375.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t600x-j375.dtsi
|
||||
@@ -23,6 +23,9 @@ aliases {
|
||||
disp0 = &display;
|
||||
disp0_piodma = &disp0_piodma;
|
||||
#endif
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ dcpext1 = &dcpext1;
|
||||
+#endif
|
||||
ethernet0 = ðernet0;
|
||||
serial0 = &serial0;
|
||||
sio = &sio;
|
||||
@@ -111,6 +114,11 @@ typec1: connector {
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ /* hacks */
|
||||
+ displayport = <&dcpext1>;
|
||||
+#endif
|
||||
+
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -195,6 +203,45 @@ typec3_connector_ss: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+&display {
|
||||
+ iommus = <&disp0_dart 0>, <&dispext1_dart 0>;
|
||||
+};
|
||||
+
|
||||
+&dispext1_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext1_dart {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext1_mbox {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&dcpext1 {
|
||||
+ status = "okay";
|
||||
+ apple,connector-type = "DP";
|
||||
+
|
||||
+ /* hacks */
|
||||
+ apple,dptx-phy = <1>;
|
||||
+ phys = <&atcphy1 PHY_TYPE_DP>;
|
||||
+ phy-names = "dp-phy";
|
||||
+ mux-controls = <&atcphy1_xbar 0>;
|
||||
+ mux-control-names = "dp-xbar";
|
||||
+ mux-index = <2>;
|
||||
+};
|
||||
+
|
||||
+&dpaudio2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&atcphy1_xbar {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
/* USB controllers */
|
||||
&dwc3_0 {
|
||||
ports {
|
||||
diff --git a/arch/arm64/boot/dts/apple/t6021-j475c.dts b/arch/arm64/boot/dts/apple/t6021-j475c.dts
|
||||
index e4321cfc5568..ce08d5a42761 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t6021-j475c.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t6021-j475c.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t6021.dtsi"
|
||||
#include "t602x-j474-j475.dtsi"
|
||||
|
||||
@@ -81,7 +83,11 @@ &dcp {
|
||||
status = "disabled";
|
||||
};
|
||||
&display {
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ iommus = <&dispext0_dart 0>, <&dispext1_dart 0>;
|
||||
+#else
|
||||
iommus = <&dispext0_dart 0>;
|
||||
+#endif
|
||||
};
|
||||
&dispext0_dart {
|
||||
status = "okay";
|
||||
diff --git a/arch/arm64/boot/dts/apple/t6022-j475d.dts b/arch/arm64/boot/dts/apple/t6022-j475d.dts
|
||||
index cdfc78a1703c..1ab639556cb0 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t6022-j475d.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t6022-j475d.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#define NO_DCP
|
||||
|
||||
#include "t6022.dtsi"
|
||||
diff --git a/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi b/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi
|
||||
index fa0183441d79..eee0c83f7f7d 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi
|
||||
@@ -22,7 +22,11 @@ &lpdptxphy_die1 {
|
||||
};
|
||||
|
||||
&display {
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ iommus = <&dispext0_dart_die1 0>, <&dispext1_dart 0>;
|
||||
+#else
|
||||
iommus = <&dispext0_dart_die1 0>;
|
||||
+#endif
|
||||
};
|
||||
|
||||
&dispext0_dart_die1 {
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 34f2f0780387e1971b5662bddb99a7dba33641a1 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Thu, 25 Dec 2025 18:49:55 +0100
|
||||
Subject: [PATCH 12/13] HACK: arm64: dts: apple: t60xx: j[34]75: Mark
|
||||
ps_atc1_common as always on
|
||||
|
||||
Works around missing suspend/resume handling in ATC phy for DP-altmode.
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t600x-j375.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t600x-j375.dtsi b/arch/arm64/boot/dts/apple/t600x-j375.dtsi
|
||||
index 167306974939..03b335d0cc53 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t600x-j375.dtsi
|
||||
+++ b/arch/arm64/boot/dts/apple/t600x-j375.dtsi
|
||||
@@ -240,6 +240,10 @@ &dpaudio2 {
|
||||
&atcphy1_xbar {
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&ps_atc1_common {
|
||||
+ apple,always-on; /* Needs to stay on for DP-alt suspend/resume */
|
||||
+};
|
||||
#endif
|
||||
|
||||
/* USB controllers */
|
||||
--
|
||||
2.53.0
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
From 4e84610e5722c34e48fef3f33f7bd8faedb13348 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Grunau <j@jannau.net>
|
||||
Date: Sat, 5 Nov 2022 21:22:50 +0100
|
||||
Subject: [PATCH 13/13] arm64: dts: apple: t6020-j474s: Add dp-altmode hacks
|
||||
|
||||
DP alt mode for Mac Mini M2 Pro, the blessed port is the back right
|
||||
middle port (second closest USB-C port to the power connector).
|
||||
|
||||
Signed-off-by: Janne Grunau <j@jannau.net>
|
||||
---
|
||||
arch/arm64/boot/dts/apple/t6020-j474s.dts | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/apple/t6020-j474s.dts b/arch/arm64/boot/dts/apple/t6020-j474s.dts
|
||||
index 12dfe9693502..cfe7f8ac7306 100644
|
||||
--- a/arch/arm64/boot/dts/apple/t6020-j474s.dts
|
||||
+++ b/arch/arm64/boot/dts/apple/t6020-j474s.dts
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#define ENABLE_DCPEXT_TYPEC
|
||||
+
|
||||
#include "t6020.dtsi"
|
||||
|
||||
/*
|
||||
@@ -85,7 +87,11 @@ &dcp {
|
||||
status = "disabled";
|
||||
};
|
||||
&display {
|
||||
+#ifdef ENABLE_DCPEXT_TYPEC
|
||||
+ iommus = <&dispext0_dart 0>, <&dispext1_dart 0>;
|
||||
+#else
|
||||
iommus = <&dispext0_dart 0>;
|
||||
+#endif
|
||||
};
|
||||
&dispext0_dart {
|
||||
status = "okay";
|
||||
--
|
||||
2.53.0
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue