|
@@ -162,6 +162,9 @@ int phy_init(struct phy *phy)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ if (!phy)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
ret = phy_pm_runtime_get_sync(phy);
|
|
ret = phy_pm_runtime_get_sync(phy);
|
|
if (ret < 0 && ret != -ENOTSUPP)
|
|
if (ret < 0 && ret != -ENOTSUPP)
|
|
return ret;
|
|
return ret;
|
|
@@ -187,6 +190,9 @@ int phy_exit(struct phy *phy)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ if (!phy)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
ret = phy_pm_runtime_get_sync(phy);
|
|
ret = phy_pm_runtime_get_sync(phy);
|
|
if (ret < 0 && ret != -ENOTSUPP)
|
|
if (ret < 0 && ret != -ENOTSUPP)
|
|
return ret;
|
|
return ret;
|
|
@@ -212,6 +218,9 @@ int phy_power_on(struct phy *phy)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ if (!phy)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
ret = phy_pm_runtime_get_sync(phy);
|
|
ret = phy_pm_runtime_get_sync(phy);
|
|
if (ret < 0 && ret != -ENOTSUPP)
|
|
if (ret < 0 && ret != -ENOTSUPP)
|
|
return ret;
|
|
return ret;
|
|
@@ -240,6 +249,9 @@ int phy_power_off(struct phy *phy)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ if (!phy)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
mutex_lock(&phy->mutex);
|
|
mutex_lock(&phy->mutex);
|
|
if (phy->power_count == 1 && phy->ops->power_off) {
|
|
if (phy->power_count == 1 && phy->ops->power_off) {
|
|
ret = phy->ops->power_off(phy);
|
|
ret = phy->ops->power_off(phy);
|
|
@@ -308,7 +320,7 @@ err0:
|
|
*/
|
|
*/
|
|
void phy_put(struct phy *phy)
|
|
void phy_put(struct phy *phy)
|
|
{
|
|
{
|
|
- if (IS_ERR(phy))
|
|
|
|
|
|
+ if (!phy || IS_ERR(phy))
|
|
return;
|
|
return;
|
|
|
|
|
|
module_put(phy->ops->owner);
|
|
module_put(phy->ops->owner);
|
|
@@ -328,6 +340,9 @@ void devm_phy_put(struct device *dev, struct phy *phy)
|
|
{
|
|
{
|
|
int r;
|
|
int r;
|
|
|
|
|
|
|
|
+ if (!phy)
|
|
|
|
+ return;
|
|
|
|
+
|
|
r = devres_destroy(dev, devm_phy_release, devm_phy_match, phy);
|
|
r = devres_destroy(dev, devm_phy_release, devm_phy_match, phy);
|
|
dev_WARN_ONCE(dev, r, "couldn't find PHY resource\n");
|
|
dev_WARN_ONCE(dev, r, "couldn't find PHY resource\n");
|
|
}
|
|
}
|