unsigned char           mdio_mdiinv;
        unsigned char           mdio_mdc;
        unsigned char           mdio_phybaseaddr;
-       struct gmac            *gmac;
-       struct gphy            *gphy;
-       struct mdio_ops        *mdio_ops;
+       const struct gmac      *gmac;
+       const struct gphy      *gphy;
+       const struct mdio_ops  *mdio_ops;
        const char             *desc;
 };
 
 
 
        u32 elmer_gpo;
 
-       struct cphy_ops *ops;                /* PHY operations */
+       const struct cphy_ops *ops;            /* PHY operations */
        int (*mdio_read)(adapter_t *adapter, int phy_addr, int mmd_addr,
                         int reg_addr, unsigned int *val);
        int (*mdio_write)(adapter_t *adapter, int phy_addr, int mmd_addr,
 /* Convenience initializer */
 static inline void cphy_init(struct cphy *phy, adapter_t *adapter,
                             int phy_addr, struct cphy_ops *phy_ops,
-                            struct mdio_ops *mdio_ops)
+                            const struct mdio_ops *mdio_ops)
 {
        phy->adapter = adapter;
        phy->addr    = phy_addr;
 struct gphy {
        /* Construct a PHY instance with the given PHY address */
        struct cphy *(*create)(adapter_t *adapter, int phy_addr,
-                              struct mdio_ops *mdio_ops);
+                              const struct mdio_ops *mdio_ops);
 
        /*
         * Reset the PHY chip.  This resets the whole PHY chip, not individual
        int (*reset)(adapter_t *adapter);
 };
 
-extern struct gphy t1_my3126_ops;
-extern struct gphy t1_mv88e1xxx_ops;
-extern struct gphy t1_vsc8244_ops;
-extern struct gphy t1_xpak_ops;
-extern struct gphy t1_mv88x201x_ops;
-extern struct gphy t1_dummy_phy_ops;
+extern const struct gphy t1_my3126_ops;
+extern const struct gphy t1_mv88e1xxx_ops;
+extern const struct gphy t1_vsc8244_ops;
+extern const struct gphy t1_mv88x201x_ops;
 
 #endif /* _CXGB_CPHY_H_ */
 
 struct cmac {
        struct cmac_statistics stats;
        adapter_t *adapter;
-       struct cmac_ops *ops;
+       const struct cmac_ops *ops;
        cmac_instance *instance;
 };
 
        int (*reset)(adapter_t *);
 };
 
-extern struct gmac t1_pm3393_ops;
-extern struct gmac t1_chelsio_mac_ops;
-extern struct gmac t1_vsc7321_ops;
-extern struct gmac t1_vsc7326_ops;
-extern struct gmac t1_ixf1010_ops;
-extern struct gmac t1_dummy_mac_ops;
+extern const struct gmac t1_pm3393_ops;
+extern const struct gmac t1_vsc7326_ops;
 
 #endif /* _CXGB_GMAC_H_ */
 
        return mac;
 }
 
-struct gmac t1_chelsio_mac_ops = {
+const struct gmac t1_chelsio_mac_ops = {
        .create = mac_create
 };
 
 };
 
 static struct cphy *mv88e1xxx_phy_create(adapter_t *adapter, int phy_addr,
-                                        struct mdio_ops *mdio_ops)
+                                        const struct mdio_ops *mdio_ops)
 {
        struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL);
 
        return 0;
 }
 
-struct gphy t1_mv88e1xxx_ops = {
-       mv88e1xxx_phy_create,
-       mv88e1xxx_phy_reset
+const struct gphy t1_mv88e1xxx_ops = {
+       .create = mv88e1xxx_phy_create,
+       .reset =  mv88e1xxx_phy_reset
 };
 
 };
 
 static struct cphy *mv88x201x_phy_create(adapter_t *adapter, int phy_addr,
-                                        struct mdio_ops *mdio_ops)
+                                        const struct mdio_ops *mdio_ops)
 {
        u32 val;
        struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL);
        return 0;
 }
 
-struct gphy t1_mv88x201x_ops = {
-       mv88x201x_phy_create,
-       mv88x201x_phy_reset
+const struct gphy t1_mv88x201x_ops = {
+       .create = mv88x201x_phy_create,
+       .reset = mv88x201x_phy_reset
 };
 
 };
 
 static struct cphy *my3126_phy_create(adapter_t *adapter,
-                       int phy_addr, struct mdio_ops *mdio_ops)
+                       int phy_addr, const struct mdio_ops *mdio_ops)
 {
        struct cphy *cphy = kzalloc(sizeof (*cphy), GFP_KERNEL);
 
        return 0;
 }
 
-struct gphy t1_my3126_ops = {
-       my3126_phy_create,
-       my3126_phy_reset
+const struct gphy t1_my3126_ops = {
+       .create = my3126_phy_create,
+       .reset = my3126_phy_reset
 };
 
        return successful_reset ? 0 : 1;
 }
 
-struct gmac t1_pm3393_ops = {
-       STATS_TICK_SECS,
-       pm3393_mac_create,
-       pm3393_mac_reset
+const struct gmac t1_pm3393_ops = {
+       .stats_update_period = STATS_TICK_SECS,
+       .create              = pm3393_mac_create,
+       .reset               = pm3393_mac_reset,
 };
 
 }
 
 #if defined(CONFIG_CHELSIO_T1_1G) || defined(CONFIG_CHELSIO_T1_COUGAR)
-static struct mdio_ops mi1_mdio_ops = {
+static const struct mdio_ops mi1_mdio_ops = {
        .init = mi1_mdio_init,
        .read = mi1_mdio_read,
        .write = mi1_mdio_write
        return 0;
 }
 
-static struct mdio_ops mi1_mdio_ext_ops = {
+static const struct mdio_ops mi1_mdio_ext_ops = {
        .init = mi1_mdio_init,
        .read = mi1_mdio_ext_read,
        .write = mi1_mdio_ext_write
 
        return 0;
 }
 
-struct gmac t1_vsc7326_ops = {
+const struct gmac t1_vsc7326_ops = {
        .stats_update_period = STATS_TICK_SECS,
        .create              = vsc7326_mac_create,
        .reset               = vsc7326_mac_reset,