Re: [PATCH 3/3] usb: xhci-pci: Put PWRON_POLARITY on a defined state
From: Michal Pecio <hidden>
Date: 2026-09-09 14:43:45
Also in:
lkml
On Wed, 9 Sep 2026 09:58:42 -0300, Fabio Estevam wrote:
Currently, TUSB73X0_PWRON_POLARITY is set when the "ti,pwron-active-high" is present. However, when "ti,pwron-active-high" is absent, its status could have been set previously by a bootloader or by a previous running kernel.
or by EEPROM. Do they bother to put the chip in a wrong, non-default state at boot?
To make the state of PWRON_POLARITY deterministic, always write it when the "ti,pwron-active-high" is present.
That wouldn't be too dangereous, but...
quoted hunk ↗ jump to hunk
Signed-off-by: Fabio Estevam <festevam@gmail.com> --- drivers/usb/host/xhci-pci.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c index 75aa679f7d79..833c55c3213a 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c@@ -684,10 +684,16 @@ int xhci_pci_common_probe(struct pci_dev *dev, const struct pci_device_id *id) dma_set_max_seg_size(&dev->dev, UINT_MAX); if (dev->vendor == PCI_VENDOR_ID_TI && - dev->device == PCI_DEVICE_ID_TI_TUSB73X0) + dev->device == PCI_DEVICE_ID_TI_TUSB73X0) { + u32 pwron_polarity = 0; + if (device_property_read_bool(&dev->dev, "ti,pwron-active-high")) - pci_clear_and_set_config_dword(dev, TUSB73X0_USB_CTRL, 0, - TUSB73X0_PWRON_POLARITY); + pwron_polarity = TUSB73X0_PWRON_POLARITY; + + pci_clear_and_set_config_dword(dev, TUSB73X0_USB_CTRL, + TUSB73X0_PWRON_POLARITY, + pwron_polarity); + }
... isn't device_property_present() missing here? Also, I don't know those DT rules, but doesn't "ti,something" imply that this must be a TI chip, no need to check IDs? Regards, Michal