Thread (27 messages) flat view 27 messages, 6 authors, 1d ago

Re: [PATCH v8 07/16] usb: core: Move struct usb_port and related APIs to port.h

From: Chen-Yu Tsai <wens@kernel.org>
Date: 2026-09-07 09:11:20
Also in: driver-core, linux-acpi, linux-devicetree, linux-mediatek, linux-pm, linux-usb, lkml

On Sat, Sep 5, 2026 at 7:32 PM Greg Kroah-Hartman
[off-list ref] wrote:
On Sat, Sep 05, 2026 at 11:19:32AM +0300, Andy Shevchenko wrote:
quoted
On Fri, Sep 04, 2026 at 07:52:37PM +0200, Greg Kroah-Hartman wrote:
quoted
On Sat, Sep 05, 2026 at 01:24:20AM +0800, Chen-Yu Tsai wrote:
quoted
On Sat, Sep 5, 2026 at 12:47 AM Greg Kroah-Hartman
[off-list ref] wrote:
quoted
On Fri, Sep 04, 2026 at 04:41:46PM +0800, Chen-Yu Tsai wrote:
quoted
|struct usb_port| and its matching container_of() macro should live in
its own port.h, matching the split we have for .c files.
Why?
This was requested by Andy. And to me it sort of made sense.
quoted
quoted
Move them as described. Also move usb_port_is_power_on(), since in the
next change its |struct usb_hub *| parameter will be changed to
|struct usb_port *|, and becomes a non-static function that only
references |struct usb_port|.
No, please don't do that unless you have a really good reason.
Which part? Move the code?
Please don't make a new .h file.

Moving the function might make sense on its own if you need it in a
different file later on, but do a move only, and then change things if
you really need to do that.
Isn't this file to break possible circular dependencies?
If so, that was not stated here at all...
No. The code movement was purely done out of request by Andy [1]:

    At a brief look this will be the only function that takes usb_port
    instead of usb_hub in the entire hub.h (I don't count container_of()
    as a function). With that being said I would rather see it to be moved
    to port.c altogether (yes, it's more invasive change, but looks more
    consistent).  I would even dare to move struct usb_port (and container_of()
    accompanied with that) and this function to port.h. This might require
    a separate patch, though.

Putting the function in either .c file works, as it is referenced in both
files. Possible circular dependencies was the result, not the cause, of
the code movement.

And the main changes to usb_port_is_power_on() are in the next patch.
This one just moves the code and drops the "external".

If the maintainers feel that the code movement or header addition is
undesired, I will drop the movement. Or we can discuss reorganizing the
code in a separate series.


ChenYu

[1] https://lore.kernel.org/all/ake09vk4fEv1D9QC@ashevche-desk.local/ (local)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help