diff options
author | Baoyou Xie <baoyou.xie@linaro.org> | 2016-09-25 02:23:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-26 02:23:45 -0400 |
commit | e2072600a24161b7ddcfb26814f69f5fbc8ef85a (patch) | |
tree | 2bca48b4bad12fcd0605875e35e624e6ec661fa7 /drivers/net/ethernet/broadcom | |
parent | 50935857f878c014d92be49cbf651bcfbfdacdc0 (diff) |
net: bcmgenet: remove unused function in bcmgenet.c
We get 1 warning when building kernel with W=1:
drivers/net/ethernet/broadcom/genet/bcmgenet.c:2763:5: warning: no previous prototype for 'bcmgenet_hfb_add_filter' [-Wmissing-prototypes]
In fact, this function is implemented in
drivers/net/ethernet/broadcom/genet/bcmgenet.c, but be called
by no one, thus can be removed.
So this patch removes the unused functions.
Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmgenet.c | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 2013474bfdbf..7f478499b649 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c | |||
@@ -2664,128 +2664,6 @@ static void bcmgenet_enable_dma(struct bcmgenet_priv *priv, u32 dma_ctrl) | |||
2664 | bcmgenet_tdma_writel(priv, reg, DMA_CTRL); | 2664 | bcmgenet_tdma_writel(priv, reg, DMA_CTRL); |
2665 | } | 2665 | } |
2666 | 2666 | ||
2667 | static bool bcmgenet_hfb_is_filter_enabled(struct bcmgenet_priv *priv, | ||
2668 | u32 f_index) | ||
2669 | { | ||
2670 | u32 offset; | ||
2671 | u32 reg; | ||
2672 | |||
2673 | offset = HFB_FLT_ENABLE_V3PLUS + (f_index < 32) * sizeof(u32); | ||
2674 | reg = bcmgenet_hfb_reg_readl(priv, offset); | ||
2675 | return !!(reg & (1 << (f_index % 32))); | ||
2676 | } | ||
2677 | |||
2678 | static void bcmgenet_hfb_enable_filter(struct bcmgenet_priv *priv, u32 f_index) | ||
2679 | { | ||
2680 | u32 offset; | ||
2681 | u32 reg; | ||
2682 | |||
2683 | offset = HFB_FLT_ENABLE_V3PLUS + (f_index < 32) * sizeof(u32); | ||
2684 | reg = bcmgenet_hfb_reg_readl(priv, offset); | ||
2685 | reg |= (1 << (f_index % 32)); | ||
2686 | bcmgenet_hfb_reg_writel(priv, reg, offset); | ||
2687 | } | ||
2688 | |||
2689 | static void bcmgenet_hfb_set_filter_rx_queue_mapping(struct bcmgenet_priv *priv, | ||
2690 | u32 f_index, u32 rx_queue) | ||
2691 | { | ||
2692 | u32 offset; | ||
2693 | u32 reg; | ||
2694 | |||
2695 | offset = f_index / 8; | ||
2696 | reg = bcmgenet_rdma_readl(priv, DMA_INDEX2RING_0 + offset); | ||
2697 | reg &= ~(0xF << (4 * (f_index % 8))); | ||
2698 | reg |= ((rx_queue & 0xF) << (4 * (f_index % 8))); | ||
2699 | bcmgenet_rdma_writel(priv, reg, DMA_INDEX2RING_0 + offset); | ||
2700 | } | ||
2701 | |||
2702 | static void bcmgenet_hfb_set_filter_length(struct bcmgenet_priv *priv, | ||
2703 | u32 f_index, u32 f_length) | ||
2704 | { | ||
2705 | u32 offset; | ||
2706 | u32 reg; | ||
2707 | |||
2708 | offset = HFB_FLT_LEN_V3PLUS + | ||
2709 | ((priv->hw_params->hfb_filter_cnt - 1 - f_index) / 4) * | ||
2710 | sizeof(u32); | ||
2711 | reg = bcmgenet_hfb_reg_readl(priv, offset); | ||
2712 | reg &= ~(0xFF << (8 * (f_index % 4))); | ||
2713 | reg |= ((f_length & 0xFF) << (8 * (f_index % 4))); | ||
2714 | bcmgenet_hfb_reg_writel(priv, reg, offset); | ||
2715 | } | ||
2716 | |||
2717 | static int bcmgenet_hfb_find_unused_filter(struct bcmgenet_priv *priv) | ||
2718 | { | ||
2719 | u32 f_index; | ||
2720 | |||
2721 | for (f_index = 0; f_index < priv->hw_params->hfb_filter_cnt; f_index++) | ||
2722 | if (!bcmgenet_hfb_is_filter_enabled(priv, f_index)) | ||
2723 | return f_index; | ||
2724 | |||
2725 | return -ENOMEM; | ||
2726 | } | ||
2727 | |||
2728 | /* bcmgenet_hfb_add_filter | ||
2729 | * | ||
2730 | * Add new filter to Hardware Filter Block to match and direct Rx traffic to | ||
2731 | * desired Rx queue. | ||
2732 | * | ||
2733 | * f_data is an array of unsigned 32-bit integers where each 32-bit integer | ||
2734 | * provides filter data for 2 bytes (4 nibbles) of Rx frame: | ||
2735 | * | ||
2736 | * bits 31:20 - unused | ||
2737 | * bit 19 - nibble 0 match enable | ||
2738 | * bit 18 - nibble 1 match enable | ||
2739 | * bit 17 - nibble 2 match enable | ||
2740 | * bit 16 - nibble 3 match enable | ||
2741 | * bits 15:12 - nibble 0 data | ||
2742 | * bits 11:8 - nibble 1 data | ||
2743 | * bits 7:4 - nibble 2 data | ||
2744 | * bits 3:0 - nibble 3 data | ||
2745 | * | ||
2746 | * Example: | ||
2747 | * In order to match: | ||
2748 | * - Ethernet frame type = 0x0800 (IP) | ||
2749 | * - IP version field = 4 | ||
2750 | * - IP protocol field = 0x11 (UDP) | ||
2751 | * | ||
2752 | * The following filter is needed: | ||
2753 | * u32 hfb_filter_ipv4_udp[] = { | ||
2754 | * Rx frame offset 0x00: 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
2755 | * Rx frame offset 0x08: 0x00000000, 0x00000000, 0x000F0800, 0x00084000, | ||
2756 | * Rx frame offset 0x10: 0x00000000, 0x00000000, 0x00000000, 0x00030011, | ||
2757 | * }; | ||
2758 | * | ||
2759 | * To add the filter to HFB and direct the traffic to Rx queue 0, call: | ||
2760 | * bcmgenet_hfb_add_filter(priv, hfb_filter_ipv4_udp, | ||
2761 | * ARRAY_SIZE(hfb_filter_ipv4_udp), 0); | ||
2762 | */ | ||
2763 | int bcmgenet_hfb_add_filter(struct bcmgenet_priv *priv, u32 *f_data, | ||
2764 | u32 f_length, u32 rx_queue) | ||
2765 | { | ||
2766 | int f_index; | ||
2767 | u32 i; | ||
2768 | |||
2769 | f_index = bcmgenet_hfb_find_unused_filter(priv); | ||
2770 | if (f_index < 0) | ||
2771 | return -ENOMEM; | ||
2772 | |||
2773 | if (f_length > priv->hw_params->hfb_filter_size) | ||
2774 | return -EINVAL; | ||
2775 | |||
2776 | for (i = 0; i < f_length; i++) | ||
2777 | bcmgenet_hfb_writel(priv, f_data[i], | ||
2778 | (f_index * priv->hw_params->hfb_filter_size + i) * | ||
2779 | sizeof(u32)); | ||
2780 | |||
2781 | bcmgenet_hfb_set_filter_length(priv, f_index, 2 * f_length); | ||
2782 | bcmgenet_hfb_set_filter_rx_queue_mapping(priv, f_index, rx_queue); | ||
2783 | bcmgenet_hfb_enable_filter(priv, f_index); | ||
2784 | bcmgenet_hfb_reg_writel(priv, 0x1, HFB_CTRL); | ||
2785 | |||
2786 | return 0; | ||
2787 | } | ||
2788 | |||
2789 | /* bcmgenet_hfb_clear | 2667 | /* bcmgenet_hfb_clear |
2790 | * | 2668 | * |
2791 | * Clear Hardware Filter Block and disable all filtering. | 2669 | * Clear Hardware Filter Block and disable all filtering. |