• Thierry Reding's avatar
    phy: tegra: Fix regulator leak · 2f8da84d
    Thierry Reding authored
    Devices are created for each port of the XUSB pad controller. Each USB 2
    and USB 3 port can potentially have an associated VBUS power supply that
    needs to be removed when the device is removed.
    
    Since port devices never bind to a driver, the driver core will not get
    to perform the cleanup of device-managed resources that usually happens
    on driver unbind.
    
    Now, the driver core will also perform device-managed resource cleanup
    for driver-less devices when they are released. However, when a device
    link is created between the regulator and the port device, as part of
    regulator_get(), the regulator takes a reference to the port device and
    prevents it from being released unless regulator_put() is called, which
    will never happen.
    
    Avoid this by using the non-device-managed API and manually releasing
    the regulator reference when the port is unregistered.
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    2f8da84d
xusb-tegra186.c 27.4 KB