MIB_DESC(1, AR8236_STATS_TXDEFER, "TxDefer"),
MIB_DESC(1, AR8236_STATS_TXLATECOL, "TxLateCol"),
};
+EXPORT_SYMBOL(ar8236_mibs);
static DEFINE_MUTEX(ar8xxx_dev_list_lock);
static LIST_HEAD(ar8xxx_dev_list);
ar8xxx_phy_poll_reset(bus);
}
+EXPORT_SYMBOL(ar8xxx_phy_init);
u32
ar8xxx_mii_read32(struct ar8xxx_priv *priv, int phy_id, int regnum)
return (hi << 16) | lo;
}
+EXPORT_SYMBOL(ar8xxx_mii_read32);
void
ar8xxx_mii_write32(struct ar8xxx_priv *priv, int phy_id, int regnum, u32 val)
bus->write(bus, phy_id, regnum, lo);
}
}
+EXPORT_SYMBOL(ar8xxx_mii_write32);
u32
ar8xxx_read(struct ar8xxx_priv *priv, int reg)
return val;
}
+EXPORT_SYMBOL(ar8xxx_read);
void
ar8xxx_write(struct ar8xxx_priv *priv, int reg, u32 val)
mutex_unlock(&bus->mdio_lock);
}
+EXPORT_SYMBOL(ar8xxx_write);
u32
ar8xxx_rmw(struct ar8xxx_priv *priv, int reg, u32 mask, u32 val)
return ret;
}
+EXPORT_SYMBOL(ar8xxx_rmw);
void
ar8xxx_phy_dbg_write(struct ar8xxx_priv *priv, int phy_addr,
bus->write(bus, phy_addr, MII_ATH_DBG_DATA, dbg_data);
mutex_unlock(&bus->mdio_lock);
}
+EXPORT_SYMBOL(ar8xxx_phy_dbg_write);
static inline void
ar8xxx_phy_mmd_prep(struct mii_bus *bus, int phy_addr, u16 addr, u16 reg)
bus->write(bus, phy_addr, MII_ATH_MMD_DATA, data);
mutex_unlock(&bus->mdio_lock);
}
+EXPORT_SYMBOL(ar8xxx_phy_mmd_write);
u16
ar8xxx_phy_mmd_read(struct ar8xxx_priv *priv, int phy_addr, u16 addr, u16 reg)
return data;
}
+EXPORT_SYMBOL(ar8xxx_phy_mmd_read);
static int
ar8xxx_reg_wait(struct ar8xxx_priv *priv, u32 reg, u32 mask, u32 val,
(unsigned int) reg, t, mask, val);
return -ETIMEDOUT;
}
+EXPORT_SYMBOL(ar8216_wait_bit);
static void
ar8216_vtu_op(struct ar8xxx_priv *priv, u32 op, u32 val)
priv->vlan = !!val->value.i;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_vlan);
int
ar8xxx_sw_get_vlan(struct switch_dev *dev, const struct switch_attr *attr,
val->value.i = priv->vlan;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_vlan);
int
priv->pvid[port] = vlan;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_pvid);
int
ar8xxx_sw_get_pvid(struct switch_dev *dev, int port, int *vlan)
*vlan = priv->pvid[port];
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_pvid);
static int
ar8xxx_sw_set_vid(struct switch_dev *dev, const struct switch_attr *attr,
ar8216_read_port_link(priv, port, link);
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_port_link);
static int
ar8xxx_sw_get_ports(struct switch_dev *dev, struct switch_val *val)
mutex_unlock(&priv->reg_mutex);
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_hw_apply);
int
ar8xxx_sw_reset_switch(struct switch_dev *dev)
return chip->sw_hw_apply(dev);
}
+EXPORT_SYMBOL(ar8xxx_sw_reset_switch);
int
ar8xxx_sw_set_reset_mibs(struct switch_dev *dev,
mutex_unlock(&priv->mib_lock);
return ret;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_reset_mibs);
int
ar8xxx_sw_set_mirror_rx_enable(struct switch_dev *dev,
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_mirror_rx_enable);
int
ar8xxx_sw_get_mirror_rx_enable(struct switch_dev *dev,
val->value.i = priv->mirror_rx;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_mirror_rx_enable);
int
ar8xxx_sw_set_mirror_tx_enable(struct switch_dev *dev,
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_mirror_tx_enable);
int
ar8xxx_sw_get_mirror_tx_enable(struct switch_dev *dev,
val->value.i = priv->mirror_tx;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_mirror_tx_enable);
int
ar8xxx_sw_set_mirror_monitor_port(struct switch_dev *dev,
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_mirror_monitor_port);
int
ar8xxx_sw_get_mirror_monitor_port(struct switch_dev *dev,
val->value.i = priv->monitor_port;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_mirror_monitor_port);
int
ar8xxx_sw_set_mirror_source_port(struct switch_dev *dev,
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_mirror_source_port);
int
ar8xxx_sw_get_mirror_source_port(struct switch_dev *dev,
val->value.i = priv->source_port;
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_mirror_source_port);
int
ar8xxx_sw_set_port_reset_mib(struct switch_dev *dev,
mutex_unlock(&priv->mib_lock);
return ret;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_port_reset_mib);
static void
ar8xxx_byte_to_str(char *buf, int len, u64 byte)
mutex_unlock(&priv->mib_lock);
return ret;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_port_mib);
int
ar8xxx_sw_set_arl_age_time(struct switch_dev *dev, const struct switch_attr *attr,
return 0;
}
+EXPORT_SYMBOL(ar8xxx_sw_get_arl_table);
int
ar8xxx_sw_set_flush_arl_table(struct switch_dev *dev,
return ret;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_flush_arl_table);
int
ar8xxx_sw_set_flush_port_arl_table(struct switch_dev *dev,
return ret;
}
+EXPORT_SYMBOL(ar8xxx_sw_set_flush_port_arl_table);
static const struct switch_attr ar8xxx_sw_attr_globals[] = {
{
.max = 4094,
},
};
+EXPORT_SYMBOL(ar8xxx_sw_attr_vlan);
static const struct switch_dev_ops ar8xxx_sw_ops = {
.attr_global = {