From 17b463cb934a4853e6127878aba6fabe7afde2c4 Mon Sep 17 00:00:00 2001 From: Thomas Makin Date: Sat, 1 Nov 2025 23:32:22 +0000 Subject: [PATCH] [DEBUG] xusb-tegra --- drivers/phy/tegra/xusb.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c index 7e8fec3109d6..0670b1718bbd 100644 --- a/drivers/phy/tegra/xusb.c +++ b/drivers/phy/tegra/xusb.c @@ -525,6 +525,8 @@ static void tegra_xusb_port_release(struct device *dev) { struct tegra_xusb_port *port = to_tegra_xusb_port(dev); + printk("release\n"); + if (port->ops->release) port->ops->release(port); } @@ -541,19 +543,23 @@ static int tegra_xusb_port_init(struct tegra_xusb_port *port, { int err; + printk("init list\n"); INIT_LIST_HEAD(&port->list); port->padctl = padctl; port->index = index; + printk("init device\n"); device_initialize(&port->dev); port->dev.type = &tegra_xusb_port_type; port->dev.of_node = of_node_get(np); port->dev.parent = padctl->dev; + printk("set name\n"); err = dev_set_name(&port->dev, "%s-%u", name, index); if (err < 0) goto put_device; + printk("device add\n"); err = device_add(&port->dev); if (err < 0) goto put_device; @@ -561,6 +567,7 @@ static int tegra_xusb_port_init(struct tegra_xusb_port *port, return 0; put_device: + printk("put device\n"); put_device(&port->dev); return err; } @@ -969,6 +976,7 @@ static int tegra_xusb_usb3_port_parse_dt(struct tegra_xusb_usb3_port *usb3) u32 value; int err; + printk("check usb2-companion\n"); err = of_property_read_u32(np, "nvidia,usb2-companion", &value); if (err < 0) { dev_err(&port->dev, "failed to read port: %d\n", err); @@ -1004,6 +1012,7 @@ static int tegra_xusb_add_usb3_port(struct tegra_xusb_padctl *padctl, * port is unusable. But it is valid to configure only a single port, * hence return 0 instead of an error to allow ports to be optional. */ + printk("find port node usb3\n"); np = tegra_xusb_find_port_node(padctl, "usb3", index); if (!np || !of_device_is_available(np)) goto out; @@ -1014,6 +1023,7 @@ static int tegra_xusb_add_usb3_port(struct tegra_xusb_padctl *padctl, goto out; } + printk("xusb port init\n"); err = tegra_xusb_port_init(&usb3->base, padctl, np, "usb3", index); if (err < 0) goto out; @@ -1026,6 +1036,7 @@ static int tegra_xusb_add_usb3_port(struct tegra_xusb_padctl *padctl, goto out; } + printk("xusb usb3 port parse dt\n"); err = tegra_xusb_usb3_port_parse_dt(usb3); if (err < 0) { tegra_xusb_port_unregister(&usb3->base); @@ -1118,24 +1129,28 @@ static int tegra_xusb_setup_ports(struct tegra_xusb_padctl *padctl) mutex_lock(&padctl->lock); for (i = 0; i < padctl->soc->ports.usb2.count; i++) { + printk("add usb2 port %d\n", i); err = tegra_xusb_add_usb2_port(padctl, i); if (err < 0) goto remove_ports; } for (i = 0; i < padctl->soc->ports.ulpi.count; i++) { + printk("add ulpi port %d\n", i); err = tegra_xusb_add_ulpi_port(padctl, i); if (err < 0) goto remove_ports; } for (i = 0; i < padctl->soc->ports.hsic.count; i++) { + printk("add hsic port %d\n", i); err = tegra_xusb_add_hsic_port(padctl, i); if (err < 0) goto remove_ports; } for (i = 0; i < padctl->soc->ports.usb3.count; i++) { + printk("add usb3 port %d\n", i); err = tegra_xusb_add_usb3_port(padctl, i); if (err < 0) goto remove_ports; @@ -1143,10 +1158,12 @@ static int tegra_xusb_setup_ports(struct tegra_xusb_padctl *padctl) if (padctl->soc->need_fake_usb3_port) { for (i = 0; i < padctl->soc->ports.usb2.count; i++) { + printk("checking usb2 port %d\n", i); usb2 = tegra_xusb_find_usb2_port(padctl, i); if (!usb2) continue; + printk("update usb3 fake port %d\n", i); err = tegra_xusb_update_usb3_fake_port(usb2); if (err < 0) goto remove_ports; @@ -1154,12 +1171,14 @@ static int tegra_xusb_setup_ports(struct tegra_xusb_padctl *padctl) } list_for_each_entry(port, &padctl->ports, list) { + printk("enable port\n"); err = port->ops->enable(port); if (err < 0) dev_err(padctl->dev, "failed to enable port %s: %d\n", dev_name(&port->dev), err); } + printk("unlock\n"); goto unlock; remove_ports: