[PATCH V2 7/8] usb: host: xhci-tegra: Skip MBOX MSG_ENABLED on Tegra264
From: Wayne Chang <hidden>
Date: 2026-08-31 18:59:54
Also in:
linux-phy, linux-tegra, linux-usb, lkml
Subsystem:
the rest, usb subsystem, usb xhci driver · Maintainers:
Linus Torvalds, Greg Kroah-Hartman, Mathias Nyman
Tegra264 XUSB does not use the firmware mailbox handshake to enable controller messages (MBOX_CMD_MSG_ENABLED). Add a per-SoC flag and short-circuit __tegra_xusb_enable_firmware_messages() so both probe and resume avoid sending the command. Signed-off-by: Wayne Chang <redacted> --- V1 -> V2: No change drivers/usb/host/xhci-tegra.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
index e7e6d569f1db..7d56f35ec9e7 100644
--- a/drivers/usb/host/xhci-tegra.c
+++ b/drivers/usb/host/xhci-tegra.c@@ -250,6 +250,7 @@ struct tegra_xusb_soc { bool otg_set_port_power; bool has_bar2; + bool enable_firmware_messages; }; struct tegra_xusb_context {
@@ -1260,6 +1261,9 @@ static int __tegra_xusb_enable_firmware_messages(struct tegra_xusb *tegra) struct tegra_xusb_mbox_msg msg; int err; + if (!tegra->soc->enable_firmware_messages) + return 0; + /* Enable firmware messages from controller. */ msg.cmd = MBOX_CMD_MSG_ENABLED; msg.data = 0;
@@ -2580,6 +2584,7 @@ static const struct tegra_xusb_soc tegra124_soc = { .owner = 0xf0, .smi_intr = XUSB_CFG_ARU_SMI_INTR, }, + .enable_firmware_messages = true, }; #if IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) MODULE_FIRMWARE("nvidia/tegra124/xusb.bin");
@@ -2621,6 +2626,7 @@ static const struct tegra_xusb_soc tegra210_soc = { .owner = 0xf0, .smi_intr = XUSB_CFG_ARU_SMI_INTR, }, + .enable_firmware_messages = true, }; #if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) MODULE_FIRMWARE("nvidia/tegra210/xusb.bin");
@@ -2670,6 +2676,7 @@ static const struct tegra_xusb_soc tegra186_soc = { .smi_intr = XUSB_CFG_ARU_SMI_INTR, }, .lpm_support = true, + .enable_firmware_messages = true, }; static const char * const tegra194_supply_names[] = {
@@ -2704,6 +2711,7 @@ static const struct tegra_xusb_soc tegra194_soc = { .smi_intr = XUSB_CFG_ARU_SMI_INTR, }, .lpm_support = true, + .enable_firmware_messages = true, }; #if IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) MODULE_FIRMWARE("nvidia/tegra194/xusb.bin");
@@ -2741,6 +2749,7 @@ static const struct tegra_xusb_soc tegra234_soc = { }, .lpm_support = true, .has_bar2 = true, + .enable_firmware_messages = true, }; static const struct of_device_id tegra_xusb_of_match[] = {
--
2.25.1