diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
index 4e597ebb5ea77657d4e61cb1993f39067760afde..fc838f45b4b5c923af13e4998cdfd27838eed67a 100644
--- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
+++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
@@ -573,13 +573,15 @@ static void ag71xx_hw_stop(struct ag71xx *ag)
 static int ag71xx_open(struct net_device *dev)
 {
 	struct ag71xx *ag = netdev_priv(dev);
+	struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
 	int ret;
 
 	ret = ag71xx_rings_init(ag);
 	if (ret)
 		goto err;
 
-	ag71xx_hw_init(ag);
+	if (pdata->is_ar724x)
+		ag71xx_hw_init(ag);
 
 	napi_enable(&ag->napi);