*/
if (phydev->state == PHY_NOLINK) {
- if (priv->gpiod_reset && !priv->phy_reset) {
-+ if ((priv->gpiod_reset || pdata->has_reset_gpio) &&
++ if ((priv->gpiod_reset || (pdata && pdata->has_reset_gpio)) &&
+ !priv->phy_reset) {
struct at803x_context context;
- msleep(1);
- gpiod_set_value(priv->gpiod_reset, 0);
- msleep(1);
-+ if (pdata->has_reset_gpio) {
++ if (pdata && pdata->has_reset_gpio) {
+ gpio_set_value_cansleep(pdata->reset_gpio, 0);
+ msleep(1);
+ gpio_set_value_cansleep(pdata->reset_gpio, 1);