Some pragmatic shortcuts are being taken by PHY consumer driver authors, which put a burden on the framework. A lot of these can be caught during review. Make sure the linux-phy list is copied on as many keywords that regexes can reasonably catch. Some considerations that led to this solution and not a simpler one: - Consumers may be located anywhere, and their file naming provides no indication whatsoever that they are PHY API consumers. - The network PHY API has similarly sounding API: phy_start(), phy_connect(), etc. Similarly, matching on "phy" would hit phys_addr_t, "cryptography", etc. - The header files themselves need attention to avoid matching on include/linux/phy.h (network PHY), include/linux/usb/phy.h, drivers/net/vendor/device/phy.h, etc. - At least for a transitional period, I suppose developers will still try to add PHY providers outside the subsystem (which is discouraged). So I used \b to try to match on actual word boundaries and I went for listing all markers of PHY API use as they may appear in patch contexts. Bit rot is a valid concern. I will add a test to the build automation that newly introduced struct and function names in include/linux/phy.h, include/linux/phy-props.h and drivers/phy/phy-provider.h are matched by the MAINTAINERS entry K: patterns. The keyword patterns were written with great help from Joe Perches . Signed-off-by: Vladimir Oltean --- Cc: Joe Perches v2->v3: - escape forward slash in linux/phy/phy.h in regex pattern: https://lore.kernel.org/linux-phy/9fd14d166e860f26febfbc9061a6dcae6a166961.camel@perches.com/ v1->v2: - split into multiple regex patterns - use matching-only (insted of capturing) regex patterns - adjust commit message to reflect the Q&A from v1 --- MAINTAINERS | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 55af015174a5..cd920f14abde 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10713,6 +10713,17 @@ F: Documentation/devicetree/bindings/phy/ F: drivers/phy/ F: include/dt-bindings/phy/ F: include/linux/phy/ +K: (?:linux\/phy\/phy\.h|phy-props\.h|phy-provider\.h) +K: \b(?:__)?(?:devm_)?(?:of_)?phy_(?:create|destroy|provider_(?:un)?register)\b +K: \bphy_(?:create|remove)_lookup\b +K: \bphy_(?:get|set)_drvdata\b +K: \b(?:devm_)?(?:of_)?phy_(?:optional_)?(?:get|put)(?:_by_index)?\b +K: \bphy_pm_runtime_(?:get|put)(?:_sync)?\b +K: \bphy_(?:init|exit|power_(?:on|off))\b +K: \bphy_(?:get|set)_(?:mode(?:_ext)?|media|speed|bus_width|max_link_rate)\b +K: \bphy_(?:reset|configure|validate|calibrate)\b +K: \bphy_notify_(?:connect|disconnect|state)\b +K: \bstruct\s+phy(?:_ops|_attrs|_lookup|_provider)?\b GENERIC PINCTRL I2C DEMULTIPLEXER DRIVER M: Wolfram Sang -- 2.43.0