• Kory Maincent (Dent Project)'s avatar
    net: pse-pd: Use regulator framework within PSE framework · d83e1376
    Kory Maincent (Dent Project) authored
    Integrate the regulator framework to the PSE framework for enhanced
    access to features such as voltage, power measurement, and limits, which
    are akin to regulators. Additionally, PSE features like port priorities
    could potentially enhance the regulator framework. Note that this
    integration introduces some implementation complexity, including wrapper
    callbacks, but the potential benefits make it worthwhile.
    
    Regulator are using enable counter with specific behavior.
    Two calls to regulator_disable will trigger kernel warnings.
    If the counter exceeds one, regulator_disable call won't disable the
    PSE PI. These behavior isn't suitable for PSE control.
    Added a boolean 'enabled' state to prevent multiple calls to
    regulator_enable/disable. These calls will only be called from PSE
    framework as it won't have any regulator children, therefore no mutex are
    needed to safeguards this boolean.
    
    regulator_get needs the consumer device pointer. Use PSE as regulator
    provider and consumer device until we have RJ45 ports represented in
    the Kernel.
    Signed-off-by: default avatarKory Maincent <kory.maincent@bootlin.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Link: https://lore.kernel.org/r/20240417-feature_poe-v9-10-242293fd1900@bootlin.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    d83e1376
pse_core.c 16.7 KB