net-next: mediatek: add support for MT7623 ethernet
authorJohn Crispin <blogic@openwrt.org>
Tue, 8 Mar 2016 10:29:55 +0000 (11:29 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Mar 2016 21:22:12 +0000 (16:22 -0500)
commit656e705243fd0c2864b89634ea16ed444ef64dc6
tree91b5f18702da809741c5da88db0c6987ef901fec
parent58ff9865b75dab73ccfae89bc8313ca2497b4c8f
net-next: mediatek: add support for MT7623 ethernet

Add ethernet support for MediaTek SoCs from the MT7623 family. These have
dual GMAC. Depending on the exact version, there might be a built-in
Gigabit switch (MT7530). The core does not have the typical DMA ring setup.
Instead there is a linked list that we add descriptors to. There is only
one linked list that both MACs use together. There is a special field
inside the TX descriptors called the VQID. This allows us to assign packets
to different internal queues. By using a separate id for each MAC we are
able to get deterministic results for BQL. Additionally we need to
provide the core with a block of scratch memory that is the same size as
the RX ring and data buffer. This is really needed to make the HW datapath
work. Although the driver does not support this yet, we still need to
assign the memory and tell the core about it for RX to work.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Michael Lee <igvtee@gmail.com>
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c [new file with mode: 0644]
drivers/net/ethernet/mediatek/mtk_eth_soc.h [new file with mode: 0644]