Merge git://www.denx.de/git/u-boot-imx
[oweals/u-boot.git] / drivers / net / phy / cortina.c
index 447ecfbeb6dfe9b378d3c7c5789f33a5518b38f9..637d89a1e1bcaa21509a25e6da996fac0d03ddb5 100644 (file)
@@ -139,8 +139,9 @@ void cs4340_upload_firmware(struct phy_device *phydev)
        size_t fw_length = CONFIG_CORTINA_FW_LENGTH;
 
        addr = malloc(CONFIG_CORTINA_FW_LENGTH);
-       ret = nand_read(&nand_info[0], (loff_t)CONFIG_CORTINA_FW_ADDR,
-                      &fw_length, (u_char *)addr);
+       ret = nand_read(get_nand_dev_by_index(0),
+                       (loff_t)CONFIG_CORTINA_FW_ADDR,
+                       &fw_length, (u_char *)addr);
        if (ret == -EUCLEAN) {
                printf("NAND read of Cortina firmware at 0x%x failed %d\n",
                       CONFIG_CORTINA_FW_ADDR, ret);
@@ -176,8 +177,6 @@ void cs4340_upload_firmware(struct phy_device *phydev)
                mmc_init(mmc);
                (void)mmc->block_dev.block_read(&mmc->block_dev, blk, cnt,
                                                addr);
-               /* flush cache after read */
-               flush_cache((ulong)addr, cnt * 512);
        }
 #endif
 
@@ -257,6 +256,12 @@ int cs4340_config(struct phy_device *phydev)
        return 0;
 }
 
+int cs4340_probe(struct phy_device *phydev)
+{
+       phydev->flags = PHY_FLAG_BROKEN_RESET;
+       return 0;
+}
+
 int cs4340_startup(struct phy_device *phydev)
 {
        phydev->link = 1;
@@ -276,6 +281,7 @@ struct phy_driver cs4340_driver = {
                 MDIO_DEVS_PHYXS | MDIO_DEVS_AN |
                 MDIO_DEVS_VEND1 | MDIO_DEVS_VEND2),
        .config = &cs4340_config,
+       .probe  = &cs4340_probe,
        .startup = &cs4340_startup,
        .shutdown = &gen10g_shutdown,
 };