Commit 193c5b26 authored by Pavana Sharma's avatar Pavana Sharma Committed by David S. Miller

net: dsa: mv88e6xxx: change serdes lane parameter type from u8 type to int

Returning 0 is no more an error case with MV88E6393 family
which has serdes lane numbers 0, 9 or 10.
So with this change .serdes_get_lane will return lane number
or -errno (-ENODEV or -EOPNOTSUPP).
Signed-off-by: default avatarPavana Sharma <pavana.sharma@digi.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarMarek Behún <kabel@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ac1bbf8a
...@@ -485,12 +485,12 @@ static int mv88e6xxx_serdes_pcs_get_state(struct dsa_switch *ds, int port, ...@@ -485,12 +485,12 @@ static int mv88e6xxx_serdes_pcs_get_state(struct dsa_switch *ds, int port,
struct phylink_link_state *state) struct phylink_link_state *state)
{ {
struct mv88e6xxx_chip *chip = ds->priv; struct mv88e6xxx_chip *chip = ds->priv;
u8 lane; int lane;
int err; int err;
mv88e6xxx_reg_lock(chip); mv88e6xxx_reg_lock(chip);
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane && chip->info->ops->serdes_pcs_get_state) if (lane >= 0 && chip->info->ops->serdes_pcs_get_state)
err = chip->info->ops->serdes_pcs_get_state(chip, port, lane, err = chip->info->ops->serdes_pcs_get_state(chip, port, lane,
state); state);
else else
...@@ -506,11 +506,11 @@ static int mv88e6xxx_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, ...@@ -506,11 +506,11 @@ static int mv88e6xxx_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
const unsigned long *advertise) const unsigned long *advertise)
{ {
const struct mv88e6xxx_ops *ops = chip->info->ops; const struct mv88e6xxx_ops *ops = chip->info->ops;
u8 lane; int lane;
if (ops->serdes_pcs_config) { if (ops->serdes_pcs_config) {
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane) if (lane >= 0)
return ops->serdes_pcs_config(chip, port, lane, mode, return ops->serdes_pcs_config(chip, port, lane, mode,
interface, advertise); interface, advertise);
} }
...@@ -523,14 +523,14 @@ static void mv88e6xxx_serdes_pcs_an_restart(struct dsa_switch *ds, int port) ...@@ -523,14 +523,14 @@ static void mv88e6xxx_serdes_pcs_an_restart(struct dsa_switch *ds, int port)
struct mv88e6xxx_chip *chip = ds->priv; struct mv88e6xxx_chip *chip = ds->priv;
const struct mv88e6xxx_ops *ops; const struct mv88e6xxx_ops *ops;
int err = 0; int err = 0;
u8 lane; int lane;
ops = chip->info->ops; ops = chip->info->ops;
if (ops->serdes_pcs_an_restart) { if (ops->serdes_pcs_an_restart) {
mv88e6xxx_reg_lock(chip); mv88e6xxx_reg_lock(chip);
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane) if (lane >= 0)
err = ops->serdes_pcs_an_restart(chip, port, lane); err = ops->serdes_pcs_an_restart(chip, port, lane);
mv88e6xxx_reg_unlock(chip); mv88e6xxx_reg_unlock(chip);
...@@ -544,11 +544,11 @@ static int mv88e6xxx_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, ...@@ -544,11 +544,11 @@ static int mv88e6xxx_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
int speed, int duplex) int speed, int duplex)
{ {
const struct mv88e6xxx_ops *ops = chip->info->ops; const struct mv88e6xxx_ops *ops = chip->info->ops;
u8 lane; int lane;
if (!phylink_autoneg_inband(mode) && ops->serdes_pcs_link_up) { if (!phylink_autoneg_inband(mode) && ops->serdes_pcs_link_up) {
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane) if (lane >= 0)
return ops->serdes_pcs_link_up(chip, port, lane, return ops->serdes_pcs_link_up(chip, port, lane,
speed, duplex); speed, duplex);
} }
...@@ -2460,11 +2460,11 @@ static irqreturn_t mv88e6xxx_serdes_irq_thread_fn(int irq, void *dev_id) ...@@ -2460,11 +2460,11 @@ static irqreturn_t mv88e6xxx_serdes_irq_thread_fn(int irq, void *dev_id)
struct mv88e6xxx_chip *chip = mvp->chip; struct mv88e6xxx_chip *chip = mvp->chip;
irqreturn_t ret = IRQ_NONE; irqreturn_t ret = IRQ_NONE;
int port = mvp->port; int port = mvp->port;
u8 lane; int lane;
mv88e6xxx_reg_lock(chip); mv88e6xxx_reg_lock(chip);
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane) if (lane >= 0)
ret = mv88e6xxx_serdes_irq_status(chip, port, lane); ret = mv88e6xxx_serdes_irq_status(chip, port, lane);
mv88e6xxx_reg_unlock(chip); mv88e6xxx_reg_unlock(chip);
...@@ -2472,7 +2472,7 @@ static irqreturn_t mv88e6xxx_serdes_irq_thread_fn(int irq, void *dev_id) ...@@ -2472,7 +2472,7 @@ static irqreturn_t mv88e6xxx_serdes_irq_thread_fn(int irq, void *dev_id)
} }
static int mv88e6xxx_serdes_irq_request(struct mv88e6xxx_chip *chip, int port, static int mv88e6xxx_serdes_irq_request(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
struct mv88e6xxx_port *dev_id = &chip->ports[port]; struct mv88e6xxx_port *dev_id = &chip->ports[port];
unsigned int irq; unsigned int irq;
...@@ -2501,7 +2501,7 @@ static int mv88e6xxx_serdes_irq_request(struct mv88e6xxx_chip *chip, int port, ...@@ -2501,7 +2501,7 @@ static int mv88e6xxx_serdes_irq_request(struct mv88e6xxx_chip *chip, int port,
} }
static int mv88e6xxx_serdes_irq_free(struct mv88e6xxx_chip *chip, int port, static int mv88e6xxx_serdes_irq_free(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
struct mv88e6xxx_port *dev_id = &chip->ports[port]; struct mv88e6xxx_port *dev_id = &chip->ports[port];
unsigned int irq = dev_id->serdes_irq; unsigned int irq = dev_id->serdes_irq;
...@@ -2526,11 +2526,11 @@ static int mv88e6xxx_serdes_irq_free(struct mv88e6xxx_chip *chip, int port, ...@@ -2526,11 +2526,11 @@ static int mv88e6xxx_serdes_irq_free(struct mv88e6xxx_chip *chip, int port,
static int mv88e6xxx_serdes_power(struct mv88e6xxx_chip *chip, int port, static int mv88e6xxx_serdes_power(struct mv88e6xxx_chip *chip, int port,
bool on) bool on)
{ {
u8 lane; int lane;
int err; int err;
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (!lane) if (lane < 0)
return 0; return 0;
if (on) { if (on) {
......
...@@ -513,30 +513,30 @@ struct mv88e6xxx_ops { ...@@ -513,30 +513,30 @@ struct mv88e6xxx_ops {
int (*mgmt_rsvd2cpu)(struct mv88e6xxx_chip *chip); int (*mgmt_rsvd2cpu)(struct mv88e6xxx_chip *chip);
/* Power on/off a SERDES interface */ /* Power on/off a SERDES interface */
int (*serdes_power)(struct mv88e6xxx_chip *chip, int port, u8 lane, int (*serdes_power)(struct mv88e6xxx_chip *chip, int port, int lane,
bool up); bool up);
/* SERDES lane mapping */ /* SERDES lane mapping */
u8 (*serdes_get_lane)(struct mv88e6xxx_chip *chip, int port); int (*serdes_get_lane)(struct mv88e6xxx_chip *chip, int port);
int (*serdes_pcs_get_state)(struct mv88e6xxx_chip *chip, int port, int (*serdes_pcs_get_state)(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state); int lane, struct phylink_link_state *state);
int (*serdes_pcs_config)(struct mv88e6xxx_chip *chip, int port, int (*serdes_pcs_config)(struct mv88e6xxx_chip *chip, int port,
u8 lane, unsigned int mode, int lane, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
const unsigned long *advertise); const unsigned long *advertise);
int (*serdes_pcs_an_restart)(struct mv88e6xxx_chip *chip, int port, int (*serdes_pcs_an_restart)(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
int (*serdes_pcs_link_up)(struct mv88e6xxx_chip *chip, int port, int (*serdes_pcs_link_up)(struct mv88e6xxx_chip *chip, int port,
u8 lane, int speed, int duplex); int lane, int speed, int duplex);
/* SERDES interrupt handling */ /* SERDES interrupt handling */
unsigned int (*serdes_irq_mapping)(struct mv88e6xxx_chip *chip, unsigned int (*serdes_irq_mapping)(struct mv88e6xxx_chip *chip,
int port); int port);
int (*serdes_irq_enable)(struct mv88e6xxx_chip *chip, int port, u8 lane, int (*serdes_irq_enable)(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable); bool enable);
irqreturn_t (*serdes_irq_status)(struct mv88e6xxx_chip *chip, int port, irqreturn_t (*serdes_irq_status)(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
/* Statistics from the SERDES interface */ /* Statistics from the SERDES interface */
int (*serdes_get_sset_count)(struct mv88e6xxx_chip *chip, int port); int (*serdes_get_sset_count)(struct mv88e6xxx_chip *chip, int port);
......
...@@ -429,8 +429,8 @@ phy_interface_t mv88e6390x_port_max_speed_mode(int port) ...@@ -429,8 +429,8 @@ phy_interface_t mv88e6390x_port_max_speed_mode(int port)
static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port, static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
phy_interface_t mode, bool force) phy_interface_t mode, bool force)
{ {
u8 lane;
u16 cmode; u16 cmode;
int lane;
u16 reg; u16 reg;
int err; int err;
...@@ -466,7 +466,7 @@ static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port, ...@@ -466,7 +466,7 @@ static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
return 0; return 0;
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane) { if (lane >= 0) {
if (chip->ports[port].serdes_irq) { if (chip->ports[port].serdes_irq) {
err = mv88e6xxx_serdes_irq_disable(chip, port, lane); err = mv88e6xxx_serdes_irq_disable(chip, port, lane);
if (err) if (err)
...@@ -495,8 +495,8 @@ static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port, ...@@ -495,8 +495,8 @@ static int mv88e6xxx_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
chip->ports[port].cmode = cmode; chip->ports[port].cmode = cmode;
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (!lane) if (lane < 0)
return -ENODEV; return lane;
err = mv88e6xxx_serdes_power_up(chip, port, lane); err = mv88e6xxx_serdes_power_up(chip, port, lane);
if (err) if (err)
......
...@@ -95,7 +95,7 @@ static int mv88e6xxx_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, ...@@ -95,7 +95,7 @@ static int mv88e6xxx_serdes_pcs_get_state(struct mv88e6xxx_chip *chip,
return 0; return 0;
} }
int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, int lane,
bool up) bool up)
{ {
u16 val, new_val; u16 val, new_val;
...@@ -117,7 +117,7 @@ int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, ...@@ -117,7 +117,7 @@ int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane,
} }
int mv88e6352_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
u8 lane, unsigned int mode, int lane, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
const unsigned long *advertise) const unsigned long *advertise)
{ {
...@@ -166,7 +166,7 @@ int mv88e6352_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, ...@@ -166,7 +166,7 @@ int mv88e6352_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
} }
int mv88e6352_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state) int lane, struct phylink_link_state *state)
{ {
u16 lpa, status; u16 lpa, status;
int err; int err;
...@@ -187,7 +187,7 @@ int mv88e6352_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, ...@@ -187,7 +187,7 @@ int mv88e6352_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
} }
int mv88e6352_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
u16 bmcr; u16 bmcr;
int err; int err;
...@@ -200,7 +200,7 @@ int mv88e6352_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port, ...@@ -200,7 +200,7 @@ int mv88e6352_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port,
} }
int mv88e6352_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
u8 lane, int speed, int duplex) int lane, int speed, int duplex)
{ {
u16 val, bmcr; u16 val, bmcr;
int err; int err;
...@@ -230,10 +230,10 @@ int mv88e6352_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, ...@@ -230,10 +230,10 @@ int mv88e6352_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
return mv88e6352_serdes_write(chip, MII_BMCR, bmcr); return mv88e6352_serdes_write(chip, MII_BMCR, bmcr);
} }
u8 mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) int mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
u8 lane = 0; int lane = -ENODEV;
if ((cmode == MV88E6XXX_PORT_STS_CMODE_100BASEX) || if ((cmode == MV88E6XXX_PORT_STS_CMODE_100BASEX) ||
(cmode == MV88E6XXX_PORT_STS_CMODE_1000BASEX) || (cmode == MV88E6XXX_PORT_STS_CMODE_1000BASEX) ||
...@@ -245,7 +245,7 @@ u8 mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) ...@@ -245,7 +245,7 @@ u8 mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
static bool mv88e6352_port_has_serdes(struct mv88e6xxx_chip *chip, int port) static bool mv88e6352_port_has_serdes(struct mv88e6xxx_chip *chip, int port)
{ {
if (mv88e6xxx_serdes_get_lane(chip, port)) if (mv88e6xxx_serdes_get_lane(chip, port) >= 0)
return true; return true;
return false; return false;
...@@ -354,7 +354,7 @@ static void mv88e6352_serdes_irq_link(struct mv88e6xxx_chip *chip, int port) ...@@ -354,7 +354,7 @@ static void mv88e6352_serdes_irq_link(struct mv88e6xxx_chip *chip, int port)
} }
irqreturn_t mv88e6352_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, irqreturn_t mv88e6352_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
irqreturn_t ret = IRQ_NONE; irqreturn_t ret = IRQ_NONE;
u16 status; u16 status;
...@@ -372,7 +372,7 @@ irqreturn_t mv88e6352_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, ...@@ -372,7 +372,7 @@ irqreturn_t mv88e6352_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
return ret; return ret;
} }
int mv88e6352_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6352_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable) bool enable)
{ {
u16 val = 0; u16 val = 0;
...@@ -413,10 +413,10 @@ void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p) ...@@ -413,10 +413,10 @@ void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p)
} }
} }
u8 mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) int mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
u8 lane = 0; int lane = -ENODEV;
switch (port) { switch (port) {
case 5: case 5:
...@@ -430,7 +430,7 @@ u8 mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) ...@@ -430,7 +430,7 @@ u8 mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
return lane; return lane;
} }
int mv88e6185_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6185_serdes_power(struct mv88e6xxx_chip *chip, int port, int lane,
bool up) bool up)
{ {
/* The serdes power can't be controlled on this switch chip but we need /* The serdes power can't be controlled on this switch chip but we need
...@@ -440,7 +440,7 @@ int mv88e6185_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, ...@@ -440,7 +440,7 @@ int mv88e6185_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane,
return 0; return 0;
} }
u8 mv88e6185_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) int mv88e6185_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
{ {
/* There are no configurable serdes lanes on this switch chip but we /* There are no configurable serdes lanes on this switch chip but we
* need to return non-zero so that callers of * need to return non-zero so that callers of
...@@ -456,7 +456,7 @@ u8 mv88e6185_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) ...@@ -456,7 +456,7 @@ u8 mv88e6185_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
} }
int mv88e6185_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, int mv88e6185_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state) int lane, struct phylink_link_state *state)
{ {
int err; int err;
u16 status; u16 status;
...@@ -492,7 +492,7 @@ int mv88e6185_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, ...@@ -492,7 +492,7 @@ int mv88e6185_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
return 0; return 0;
} }
int mv88e6097_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6097_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable) bool enable)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
...@@ -525,7 +525,7 @@ static void mv88e6097_serdes_irq_link(struct mv88e6xxx_chip *chip, int port) ...@@ -525,7 +525,7 @@ static void mv88e6097_serdes_irq_link(struct mv88e6xxx_chip *chip, int port)
} }
irqreturn_t mv88e6097_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, irqreturn_t mv88e6097_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
...@@ -539,10 +539,10 @@ irqreturn_t mv88e6097_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, ...@@ -539,10 +539,10 @@ irqreturn_t mv88e6097_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
return IRQ_NONE; return IRQ_NONE;
} }
u8 mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) int mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
u8 lane = 0; int lane = -ENODEV;
switch (port) { switch (port) {
case 9: case 9:
...@@ -562,12 +562,12 @@ u8 mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) ...@@ -562,12 +562,12 @@ u8 mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
return lane; return lane;
} }
u8 mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) int mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
{ {
u8 cmode_port = chip->ports[port].cmode; u8 cmode_port = chip->ports[port].cmode;
u8 cmode_port10 = chip->ports[10].cmode; u8 cmode_port10 = chip->ports[10].cmode;
u8 cmode_port9 = chip->ports[9].cmode; u8 cmode_port9 = chip->ports[9].cmode;
u8 lane = 0; int lane = -ENODEV;
switch (port) { switch (port) {
case 2: case 2:
...@@ -638,7 +638,7 @@ u8 mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port) ...@@ -638,7 +638,7 @@ u8 mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port)
} }
/* Set power up/down for 10GBASE-R and 10GBASE-X4/X2 */ /* Set power up/down for 10GBASE-R and 10GBASE-X4/X2 */
static int mv88e6390_serdes_power_10g(struct mv88e6xxx_chip *chip, u8 lane, static int mv88e6390_serdes_power_10g(struct mv88e6xxx_chip *chip, int lane,
bool up) bool up)
{ {
u16 val, new_val; u16 val, new_val;
...@@ -665,7 +665,7 @@ static int mv88e6390_serdes_power_10g(struct mv88e6xxx_chip *chip, u8 lane, ...@@ -665,7 +665,7 @@ static int mv88e6390_serdes_power_10g(struct mv88e6xxx_chip *chip, u8 lane,
} }
/* Set power up/down for SGMII and 1000Base-X */ /* Set power up/down for SGMII and 1000Base-X */
static int mv88e6390_serdes_power_sgmii(struct mv88e6xxx_chip *chip, u8 lane, static int mv88e6390_serdes_power_sgmii(struct mv88e6xxx_chip *chip, int lane,
bool up) bool up)
{ {
u16 val, new_val; u16 val, new_val;
...@@ -701,7 +701,7 @@ static struct mv88e6390_serdes_hw_stat mv88e6390_serdes_hw_stats[] = { ...@@ -701,7 +701,7 @@ static struct mv88e6390_serdes_hw_stat mv88e6390_serdes_hw_stats[] = {
int mv88e6390_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port) int mv88e6390_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port)
{ {
if (mv88e6390_serdes_get_lane(chip, port) == 0) if (mv88e6390_serdes_get_lane(chip, port) < 0)
return 0; return 0;
return ARRAY_SIZE(mv88e6390_serdes_hw_stats); return ARRAY_SIZE(mv88e6390_serdes_hw_stats);
...@@ -713,7 +713,7 @@ int mv88e6390_serdes_get_strings(struct mv88e6xxx_chip *chip, ...@@ -713,7 +713,7 @@ int mv88e6390_serdes_get_strings(struct mv88e6xxx_chip *chip,
struct mv88e6390_serdes_hw_stat *stat; struct mv88e6390_serdes_hw_stat *stat;
int i; int i;
if (mv88e6390_serdes_get_lane(chip, port) == 0) if (mv88e6390_serdes_get_lane(chip, port) < 0)
return 0; return 0;
for (i = 0; i < ARRAY_SIZE(mv88e6390_serdes_hw_stats); i++) { for (i = 0; i < ARRAY_SIZE(mv88e6390_serdes_hw_stats); i++) {
...@@ -750,7 +750,7 @@ int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, ...@@ -750,7 +750,7 @@ int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
int i; int i;
lane = mv88e6390_serdes_get_lane(chip, port); lane = mv88e6390_serdes_get_lane(chip, port);
if (lane == 0) if (lane < 0)
return 0; return 0;
for (i = 0; i < ARRAY_SIZE(mv88e6390_serdes_hw_stats); i++) { for (i = 0; i < ARRAY_SIZE(mv88e6390_serdes_hw_stats); i++) {
...@@ -761,7 +761,7 @@ int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port, ...@@ -761,7 +761,7 @@ int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
return ARRAY_SIZE(mv88e6390_serdes_hw_stats); return ARRAY_SIZE(mv88e6390_serdes_hw_stats);
} }
static int mv88e6390_serdes_enable_checker(struct mv88e6xxx_chip *chip, u8 lane) static int mv88e6390_serdes_enable_checker(struct mv88e6xxx_chip *chip, int lane)
{ {
u16 reg; u16 reg;
int err; int err;
...@@ -776,7 +776,7 @@ static int mv88e6390_serdes_enable_checker(struct mv88e6xxx_chip *chip, u8 lane) ...@@ -776,7 +776,7 @@ static int mv88e6390_serdes_enable_checker(struct mv88e6xxx_chip *chip, u8 lane)
MV88E6390_PG_CONTROL, reg); MV88E6390_PG_CONTROL, reg);
} }
int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, int lane,
bool up) bool up)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
...@@ -801,7 +801,7 @@ int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, ...@@ -801,7 +801,7 @@ int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane,
} }
int mv88e6390_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
u8 lane, unsigned int mode, int lane, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
const unsigned long *advertise) const unsigned long *advertise)
{ {
...@@ -860,7 +860,7 @@ int mv88e6390_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, ...@@ -860,7 +860,7 @@ int mv88e6390_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
} }
static int mv88e6390_serdes_pcs_get_state_sgmii(struct mv88e6xxx_chip *chip, static int mv88e6390_serdes_pcs_get_state_sgmii(struct mv88e6xxx_chip *chip,
int port, u8 lane, struct phylink_link_state *state) int port, int lane, struct phylink_link_state *state)
{ {
u16 lpa, status; u16 lpa, status;
int err; int err;
...@@ -883,7 +883,7 @@ static int mv88e6390_serdes_pcs_get_state_sgmii(struct mv88e6xxx_chip *chip, ...@@ -883,7 +883,7 @@ static int mv88e6390_serdes_pcs_get_state_sgmii(struct mv88e6xxx_chip *chip,
} }
static int mv88e6390_serdes_pcs_get_state_10g(struct mv88e6xxx_chip *chip, static int mv88e6390_serdes_pcs_get_state_10g(struct mv88e6xxx_chip *chip,
int port, u8 lane, struct phylink_link_state *state) int port, int lane, struct phylink_link_state *state)
{ {
u16 status; u16 status;
int err; int err;
...@@ -903,7 +903,7 @@ static int mv88e6390_serdes_pcs_get_state_10g(struct mv88e6xxx_chip *chip, ...@@ -903,7 +903,7 @@ static int mv88e6390_serdes_pcs_get_state_10g(struct mv88e6xxx_chip *chip,
} }
int mv88e6390_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state) int lane, struct phylink_link_state *state)
{ {
switch (state->interface) { switch (state->interface) {
case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_SGMII:
...@@ -922,7 +922,7 @@ int mv88e6390_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, ...@@ -922,7 +922,7 @@ int mv88e6390_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
} }
int mv88e6390_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
u16 bmcr; u16 bmcr;
int err; int err;
...@@ -938,7 +938,7 @@ int mv88e6390_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port, ...@@ -938,7 +938,7 @@ int mv88e6390_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port,
} }
int mv88e6390_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
u8 lane, int speed, int duplex) int lane, int speed, int duplex)
{ {
u16 val, bmcr; u16 val, bmcr;
int err; int err;
...@@ -972,7 +972,7 @@ int mv88e6390_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, ...@@ -972,7 +972,7 @@ int mv88e6390_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
} }
static void mv88e6390_serdes_irq_link_sgmii(struct mv88e6xxx_chip *chip, static void mv88e6390_serdes_irq_link_sgmii(struct mv88e6xxx_chip *chip,
int port, u8 lane) int port, int lane)
{ {
u16 bmsr; u16 bmsr;
int err; int err;
...@@ -989,7 +989,7 @@ static void mv88e6390_serdes_irq_link_sgmii(struct mv88e6xxx_chip *chip, ...@@ -989,7 +989,7 @@ static void mv88e6390_serdes_irq_link_sgmii(struct mv88e6xxx_chip *chip,
} }
static int mv88e6390_serdes_irq_enable_sgmii(struct mv88e6xxx_chip *chip, static int mv88e6390_serdes_irq_enable_sgmii(struct mv88e6xxx_chip *chip,
u8 lane, bool enable) int lane, bool enable)
{ {
u16 val = 0; u16 val = 0;
...@@ -1001,7 +1001,7 @@ static int mv88e6390_serdes_irq_enable_sgmii(struct mv88e6xxx_chip *chip, ...@@ -1001,7 +1001,7 @@ static int mv88e6390_serdes_irq_enable_sgmii(struct mv88e6xxx_chip *chip,
MV88E6390_SGMII_INT_ENABLE, val); MV88E6390_SGMII_INT_ENABLE, val);
} }
int mv88e6390_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6390_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable) bool enable)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
...@@ -1017,7 +1017,7 @@ int mv88e6390_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, ...@@ -1017,7 +1017,7 @@ int mv88e6390_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane,
} }
static int mv88e6390_serdes_irq_status_sgmii(struct mv88e6xxx_chip *chip, static int mv88e6390_serdes_irq_status_sgmii(struct mv88e6xxx_chip *chip,
u8 lane, u16 *status) int lane, u16 *status)
{ {
int err; int err;
...@@ -1028,7 +1028,7 @@ static int mv88e6390_serdes_irq_status_sgmii(struct mv88e6xxx_chip *chip, ...@@ -1028,7 +1028,7 @@ static int mv88e6390_serdes_irq_status_sgmii(struct mv88e6xxx_chip *chip,
} }
irqreturn_t mv88e6390_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, irqreturn_t mv88e6390_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
u8 lane) int lane)
{ {
u8 cmode = chip->ports[port].cmode; u8 cmode = chip->ports[port].cmode;
irqreturn_t ret = IRQ_NONE; irqreturn_t ret = IRQ_NONE;
...@@ -1087,7 +1087,7 @@ static const u16 mv88e6390_serdes_regs[] = { ...@@ -1087,7 +1087,7 @@ static const u16 mv88e6390_serdes_regs[] = {
int mv88e6390_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port) int mv88e6390_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port)
{ {
if (mv88e6xxx_serdes_get_lane(chip, port) == 0) if (mv88e6xxx_serdes_get_lane(chip, port) < 0)
return 0; return 0;
return ARRAY_SIZE(mv88e6390_serdes_regs) * sizeof(u16); return ARRAY_SIZE(mv88e6390_serdes_regs) * sizeof(u16);
...@@ -1102,7 +1102,7 @@ void mv88e6390_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p) ...@@ -1102,7 +1102,7 @@ void mv88e6390_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p)
int i; int i;
lane = mv88e6xxx_serdes_get_lane(chip, port); lane = mv88e6xxx_serdes_get_lane(chip, port);
if (lane == 0) if (lane < 0)
return; return;
for (i = 0 ; i < ARRAY_SIZE(mv88e6390_serdes_regs); i++) { for (i = 0 ; i < ARRAY_SIZE(mv88e6390_serdes_regs); i++) {
......
...@@ -73,55 +73,55 @@ ...@@ -73,55 +73,55 @@
#define MV88E6390_PG_CONTROL 0xf010 #define MV88E6390_PG_CONTROL 0xf010
#define MV88E6390_PG_CONTROL_ENABLE_PC BIT(0) #define MV88E6390_PG_CONTROL_ENABLE_PC BIT(0)
u8 mv88e6185_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6185_serdes_get_lane(struct mv88e6xxx_chip *chip, int port);
u8 mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6341_serdes_get_lane(struct mv88e6xxx_chip *chip, int port);
u8 mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6352_serdes_get_lane(struct mv88e6xxx_chip *chip, int port);
u8 mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6390_serdes_get_lane(struct mv88e6xxx_chip *chip, int port);
u8 mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port); int mv88e6390x_serdes_get_lane(struct mv88e6xxx_chip *chip, int port);
int mv88e6352_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
u8 lane, unsigned int mode, int lane, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
const unsigned long *advertise); const unsigned long *advertise);
int mv88e6390_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_config(struct mv88e6xxx_chip *chip, int port,
u8 lane, unsigned int mode, int lane, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
const unsigned long *advertise); const unsigned long *advertise);
int mv88e6185_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, int mv88e6185_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state); int lane, struct phylink_link_state *state);
int mv88e6352_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state); int lane, struct phylink_link_state *state);
int mv88e6390_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_get_state(struct mv88e6xxx_chip *chip, int port,
u8 lane, struct phylink_link_state *state); int lane, struct phylink_link_state *state);
int mv88e6352_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
int mv88e6390_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_an_restart(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
int mv88e6352_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, int mv88e6352_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
u8 lane, int speed, int duplex); int lane, int speed, int duplex);
int mv88e6390_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port, int mv88e6390_serdes_pcs_link_up(struct mv88e6xxx_chip *chip, int port,
u8 lane, int speed, int duplex); int lane, int speed, int duplex);
unsigned int mv88e6352_serdes_irq_mapping(struct mv88e6xxx_chip *chip, unsigned int mv88e6352_serdes_irq_mapping(struct mv88e6xxx_chip *chip,
int port); int port);
unsigned int mv88e6390_serdes_irq_mapping(struct mv88e6xxx_chip *chip, unsigned int mv88e6390_serdes_irq_mapping(struct mv88e6xxx_chip *chip,
int port); int port);
int mv88e6185_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6185_serdes_power(struct mv88e6xxx_chip *chip, int port, int lane,
bool up); bool up);
int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, int lane,
bool on); bool on);
int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, int lane,
bool on); bool on);
int mv88e6097_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6097_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable); bool enable);
int mv88e6352_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6352_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable); bool enable);
int mv88e6390_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, u8 lane, int mv88e6390_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, int lane,
bool enable); bool enable);
irqreturn_t mv88e6097_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, irqreturn_t mv88e6097_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
irqreturn_t mv88e6352_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, irqreturn_t mv88e6352_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
irqreturn_t mv88e6390_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, irqreturn_t mv88e6390_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
u8 lane); int lane);
int mv88e6352_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port); int mv88e6352_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port);
int mv88e6352_serdes_get_strings(struct mv88e6xxx_chip *chip, int mv88e6352_serdes_get_strings(struct mv88e6xxx_chip *chip,
int port, uint8_t *data); int port, uint8_t *data);
...@@ -138,18 +138,18 @@ void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p); ...@@ -138,18 +138,18 @@ void mv88e6352_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p);
int mv88e6390_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port); int mv88e6390_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port);
void mv88e6390_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p); void mv88e6390_serdes_get_regs(struct mv88e6xxx_chip *chip, int port, void *_p);
/* Return the (first) SERDES lane address a port is using, 0 otherwise. */ /* Return the (first) SERDES lane address a port is using, -errno otherwise. */
static inline u8 mv88e6xxx_serdes_get_lane(struct mv88e6xxx_chip *chip, static inline int mv88e6xxx_serdes_get_lane(struct mv88e6xxx_chip *chip,
int port) int port)
{ {
if (!chip->info->ops->serdes_get_lane) if (!chip->info->ops->serdes_get_lane)
return 0; return -EOPNOTSUPP;
return chip->info->ops->serdes_get_lane(chip, port); return chip->info->ops->serdes_get_lane(chip, port);
} }
static inline int mv88e6xxx_serdes_power_up(struct mv88e6xxx_chip *chip, static inline int mv88e6xxx_serdes_power_up(struct mv88e6xxx_chip *chip,
int port, u8 lane) int port, int lane)
{ {
if (!chip->info->ops->serdes_power) if (!chip->info->ops->serdes_power)
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -158,7 +158,7 @@ static inline int mv88e6xxx_serdes_power_up(struct mv88e6xxx_chip *chip, ...@@ -158,7 +158,7 @@ static inline int mv88e6xxx_serdes_power_up(struct mv88e6xxx_chip *chip,
} }
static inline int mv88e6xxx_serdes_power_down(struct mv88e6xxx_chip *chip, static inline int mv88e6xxx_serdes_power_down(struct mv88e6xxx_chip *chip,
int port, u8 lane) int port, int lane)
{ {
if (!chip->info->ops->serdes_power) if (!chip->info->ops->serdes_power)
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -176,7 +176,7 @@ mv88e6xxx_serdes_irq_mapping(struct mv88e6xxx_chip *chip, int port) ...@@ -176,7 +176,7 @@ mv88e6xxx_serdes_irq_mapping(struct mv88e6xxx_chip *chip, int port)
} }
static inline int mv88e6xxx_serdes_irq_enable(struct mv88e6xxx_chip *chip, static inline int mv88e6xxx_serdes_irq_enable(struct mv88e6xxx_chip *chip,
int port, u8 lane) int port, int lane)
{ {
if (!chip->info->ops->serdes_irq_enable) if (!chip->info->ops->serdes_irq_enable)
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -185,7 +185,7 @@ static inline int mv88e6xxx_serdes_irq_enable(struct mv88e6xxx_chip *chip, ...@@ -185,7 +185,7 @@ static inline int mv88e6xxx_serdes_irq_enable(struct mv88e6xxx_chip *chip,
} }
static inline int mv88e6xxx_serdes_irq_disable(struct mv88e6xxx_chip *chip, static inline int mv88e6xxx_serdes_irq_disable(struct mv88e6xxx_chip *chip,
int port, u8 lane) int port, int lane)
{ {
if (!chip->info->ops->serdes_irq_enable) if (!chip->info->ops->serdes_irq_enable)
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -194,7 +194,7 @@ static inline int mv88e6xxx_serdes_irq_disable(struct mv88e6xxx_chip *chip, ...@@ -194,7 +194,7 @@ static inline int mv88e6xxx_serdes_irq_disable(struct mv88e6xxx_chip *chip,
} }
static inline irqreturn_t static inline irqreturn_t
mv88e6xxx_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, u8 lane) mv88e6xxx_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, int lane)
{ {
if (!chip->info->ops->serdes_irq_status) if (!chip->info->ops->serdes_irq_status)
return IRQ_NONE; return IRQ_NONE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment