Re: [PATCH v2 1/3] usb: phy: add usb phy notify port status API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 30, 2023 at 02:19:45AM +0000, Stanley Chang[昌育德] wrote:
> Hi Greg,
> 
> > > --- a/include/linux/usb/phy.h
> > > +++ b/include/linux/usb/phy.h
> > > @@ -144,6 +144,10 @@ struct usb_phy {
> > >        */
> > >       int     (*set_wakeup)(struct usb_phy *x, bool enabled);
> > >
> > > +     /* notify phy port status change */
> > > +     int     (*notify_port_status)(struct usb_phy *x,
> > > +             int port, u16 portstatus, u16 portchange);
> > > +
> > >       /* notify phy connect status change */
> > >       int     (*notify_connect)(struct usb_phy *x,
> > >                       enum usb_device_speed speed);
> > 
> > Why can't this be part of the same notify_connect() callback?
> 
> The notify connect is at device ready. But I want notify port status change before port reset.
> 
> > What makes it different somehow?  Please document this much better.
> 
> In Realtek phy driver, we have designed to dynamically adjust disconnection level and calibrate phy parameters.
> So we do this when the device connected bit changes and when the disconnected bit changes.
> Port status change notification:
> 1. Check if portstatus is USB_PORT_STAT_CONNECTION and portchange is USB_PORT_STAT_C_CONNECTION.
>   The device is connected, the driver lowers the disconnection level and calibrates the phy parameters.
> 2. The device disconnects, the driver increases the disconnect level and calibrates the phy parameters.
> 
> If we adjust the disconnection level in notify_connect , the disconnect may have been triggered at this stage. 
> So we need to change that as early as possible.

Please put this type of information in the changelog and in the comments
for the callback when you resubmit it.

thanks,

greg k-h



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux