Add a new phy_ops *release* invoked when the consumer relinquishes the PHY using phy_put/devm_phy_put. The initializations done by the PHY driver in of_xlate call back can be can be cleaned up here.
Showing the changes to include/linux/phy (1 of 2 files). Show all
Unified · Split
| @@ -64,6 +64,7 @@ union phy_configure_opts { · 63 unmodified lines | |||
| 64 | * @set_mode: set the mode of the phy | 64 | * @set_mode: set the mode of the phy |
| 65 | * @reset: resetting the phy | 65 | * @reset: resetting the phy |
| 66 | * @calibrate: calibrate the phy | 66 | * @calibrate: calibrate the phy |
| 67 | * @release: ops to be performed while the consumer relinquishes the PHY | ||
| 67 | * @owner: the module owner containing the ops | 68 | * @owner: the module owner containing the ops |
| 68 | */ | 69 | */ |
| 69 | struct phy_ops { | 70 | struct phy_ops { |
| @@ -105,6 +106,7 @@ struct phy_ops { · 35 unmodified lines | |||
| 105 | union phy_configure_opts *opts); | 106 | union phy_configure_opts *opts); |
| 106 | int (*reset)(struct phy *phy); | 107 | int (*reset)(struct phy *phy); |
| 107 | int (*calibrate)(struct phy *phy); | 108 | int (*calibrate)(struct phy *phy); |
| 109 | void (*release)(struct phy *phy); | ||
| 108 | struct module *owner; | 110 | struct module *owner; |
| 109 | }; | 111 | }; |
| 110 | 112 | ||