diff options
Diffstat (limited to 'drivers/net/dsa/microchip/ksz_common.c')
-rw-r--r-- | drivers/net/dsa/microchip/ksz_common.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index db828080ee93..b55f3649ff93 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c | |||
@@ -678,14 +678,6 @@ static int ksz_port_vlan_dump(struct dsa_switch *ds, int port, | |||
678 | return err; | 678 | return err; |
679 | } | 679 | } |
680 | 680 | ||
681 | static int ksz_port_fdb_prepare(struct dsa_switch *ds, int port, | ||
682 | const unsigned char *addr, u16 vid) | ||
683 | { | ||
684 | /* nothing needed */ | ||
685 | |||
686 | return 0; | ||
687 | } | ||
688 | |||
689 | struct alu_struct { | 681 | struct alu_struct { |
690 | /* entry 1 */ | 682 | /* entry 1 */ |
691 | u8 is_static:1; | 683 | u8 is_static:1; |
@@ -705,12 +697,13 @@ struct alu_struct { | |||
705 | u8 mac[ETH_ALEN]; | 697 | u8 mac[ETH_ALEN]; |
706 | }; | 698 | }; |
707 | 699 | ||
708 | static void ksz_port_fdb_add(struct dsa_switch *ds, int port, | 700 | static int ksz_port_fdb_add(struct dsa_switch *ds, int port, |
709 | const unsigned char *addr, u16 vid) | 701 | const unsigned char *addr, u16 vid) |
710 | { | 702 | { |
711 | struct ksz_device *dev = ds->priv; | 703 | struct ksz_device *dev = ds->priv; |
712 | u32 alu_table[4]; | 704 | u32 alu_table[4]; |
713 | u32 data; | 705 | u32 data; |
706 | int ret = 0; | ||
714 | 707 | ||
715 | mutex_lock(&dev->alu_mutex); | 708 | mutex_lock(&dev->alu_mutex); |
716 | 709 | ||
@@ -727,7 +720,8 @@ static void ksz_port_fdb_add(struct dsa_switch *ds, int port, | |||
727 | ksz_write32(dev, REG_SW_ALU_CTRL__4, ALU_READ | ALU_START); | 720 | ksz_write32(dev, REG_SW_ALU_CTRL__4, ALU_READ | ALU_START); |
728 | 721 | ||
729 | /* wait to be finished */ | 722 | /* wait to be finished */ |
730 | if (wait_alu_ready(dev, ALU_START, 1000) < 0) { | 723 | ret = wait_alu_ready(dev, ALU_START, 1000); |
724 | if (ret < 0) { | ||
731 | dev_dbg(dev->dev, "Failed to read ALU\n"); | 725 | dev_dbg(dev->dev, "Failed to read ALU\n"); |
732 | goto exit; | 726 | goto exit; |
733 | } | 727 | } |
@@ -750,11 +744,14 @@ static void ksz_port_fdb_add(struct dsa_switch *ds, int port, | |||
750 | ksz_write32(dev, REG_SW_ALU_CTRL__4, ALU_WRITE | ALU_START); | 744 | ksz_write32(dev, REG_SW_ALU_CTRL__4, ALU_WRITE | ALU_START); |
751 | 745 | ||
752 | /* wait to be finished */ | 746 | /* wait to be finished */ |
753 | if (wait_alu_ready(dev, ALU_START, 1000) < 0) | 747 | ret = wait_alu_ready(dev, ALU_START, 1000); |
754 | dev_dbg(dev->dev, "Failed to read ALU\n"); | 748 | if (ret < 0) |
749 | dev_dbg(dev->dev, "Failed to write ALU\n"); | ||
755 | 750 | ||
756 | exit: | 751 | exit: |
757 | mutex_unlock(&dev->alu_mutex); | 752 | mutex_unlock(&dev->alu_mutex); |
753 | |||
754 | return ret; | ||
758 | } | 755 | } |
759 | 756 | ||
760 | static int ksz_port_fdb_del(struct dsa_switch *ds, int port, | 757 | static int ksz_port_fdb_del(struct dsa_switch *ds, int port, |
@@ -1128,7 +1125,6 @@ static const struct dsa_switch_ops ksz_switch_ops = { | |||
1128 | .port_vlan_add = ksz_port_vlan_add, | 1125 | .port_vlan_add = ksz_port_vlan_add, |
1129 | .port_vlan_del = ksz_port_vlan_del, | 1126 | .port_vlan_del = ksz_port_vlan_del, |
1130 | .port_vlan_dump = ksz_port_vlan_dump, | 1127 | .port_vlan_dump = ksz_port_vlan_dump, |
1131 | .port_fdb_prepare = ksz_port_fdb_prepare, | ||
1132 | .port_fdb_dump = ksz_port_fdb_dump, | 1128 | .port_fdb_dump = ksz_port_fdb_dump, |
1133 | .port_fdb_add = ksz_port_fdb_add, | 1129 | .port_fdb_add = ksz_port_fdb_add, |
1134 | .port_fdb_del = ksz_port_fdb_del, | 1130 | .port_fdb_del = ksz_port_fdb_del, |