|
@@ -83,6 +83,7 @@ static void cvm_oct_rgmii_poll(struct net_device *dev)
|
|
int interface = INTERFACE(priv->port);
|
|
int interface = INTERFACE(priv->port);
|
|
int index = INDEX(priv->port);
|
|
int index = INDEX(priv->port);
|
|
union cvmx_gmxx_rxx_int_reg gmxx_rxx_int_reg;
|
|
union cvmx_gmxx_rxx_int_reg gmxx_rxx_int_reg;
|
|
|
|
+
|
|
gmxx_rxx_int_reg.u64 =
|
|
gmxx_rxx_int_reg.u64 =
|
|
cvmx_read_csr(CVMX_GMXX_RXX_INT_REG
|
|
cvmx_read_csr(CVMX_GMXX_RXX_INT_REG
|
|
(index, interface));
|
|
(index, interface));
|
|
@@ -217,6 +218,7 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id)
|
|
|
|
|
|
/* Read the GMX interrupt status bits */
|
|
/* Read the GMX interrupt status bits */
|
|
union cvmx_gmxx_rxx_int_reg gmx_rx_int_reg;
|
|
union cvmx_gmxx_rxx_int_reg gmx_rx_int_reg;
|
|
|
|
+
|
|
gmx_rx_int_reg.u64 =
|
|
gmx_rx_int_reg.u64 =
|
|
cvmx_read_csr(CVMX_GMXX_RXX_INT_REG
|
|
cvmx_read_csr(CVMX_GMXX_RXX_INT_REG
|
|
(index, interface));
|
|
(index, interface));
|
|
@@ -261,6 +263,7 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id)
|
|
|
|
|
|
/* Read the GMX interrupt status bits */
|
|
/* Read the GMX interrupt status bits */
|
|
union cvmx_gmxx_rxx_int_reg gmx_rx_int_reg;
|
|
union cvmx_gmxx_rxx_int_reg gmx_rx_int_reg;
|
|
|
|
+
|
|
gmx_rx_int_reg.u64 =
|
|
gmx_rx_int_reg.u64 =
|
|
cvmx_read_csr(CVMX_GMXX_RXX_INT_REG
|
|
cvmx_read_csr(CVMX_GMXX_RXX_INT_REG
|
|
(index, interface));
|
|
(index, interface));
|
|
@@ -316,6 +319,7 @@ int cvm_oct_rgmii_open(struct net_device *dev)
|
|
if (!octeon_is_simulation()) {
|
|
if (!octeon_is_simulation()) {
|
|
if (priv->phydev) {
|
|
if (priv->phydev) {
|
|
int r = phy_read_status(priv->phydev);
|
|
int r = phy_read_status(priv->phydev);
|
|
|
|
+
|
|
if (r == 0 && priv->phydev->link == 0)
|
|
if (r == 0 && priv->phydev->link == 0)
|
|
netif_carrier_off(dev);
|
|
netif_carrier_off(dev);
|
|
cvm_oct_adjust_link(dev);
|
|
cvm_oct_adjust_link(dev);
|
|
@@ -407,6 +411,7 @@ int cvm_oct_rgmii_init(struct net_device *dev)
|
|
void cvm_oct_rgmii_uninit(struct net_device *dev)
|
|
void cvm_oct_rgmii_uninit(struct net_device *dev)
|
|
{
|
|
{
|
|
struct octeon_ethernet *priv = netdev_priv(dev);
|
|
struct octeon_ethernet *priv = netdev_priv(dev);
|
|
|
|
+
|
|
cvm_oct_common_uninit(dev);
|
|
cvm_oct_common_uninit(dev);
|
|
|
|
|
|
/*
|
|
/*
|