sunxi: display: Give various display pipeline blocks time to settle

It seems the various display pipeline blocks need about one frame for their
about to become stable enough for the next block in the pipeline to be able
to sync to it. Without the delays this patch adds, things do not sync up
properly on some boards leading to a video-output with an unwanted x and y
offset.

Even with these delays sometimes (once about every 5 boots on my bananapi),
things still do not sync up properly, luckily this can be detected using the
hdmi fifo over / underrun bits. This commits also adds code to retry the
modeset when this happens.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
sunxi: Add support for the Mele M3 board

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
sunxi: Fix gmac not working reliable on the Bananapi

In order for the gmac nic to work reliable on the Bananapi, we need to set
bits 10-12 GTXDC "GMAC Transmit Clock Delay Chain" of the GMAC clk register
(0x01c20164) to 3.

Without this about 9 out of 10 ethernet packets get lost, with this setting
there is no packet loss.

So far setting these bits is only necessary on the Bananapi, so this commit
solves this with a bit of #ifdef CONFIG_BANANAPI code. If in the future we
need to do something similar for other boards, we can create a specific
CONFIG_FOO option for this then.

Reported-by: Karsten Merker <merker@debian.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Karsten Merker <merker@debian.org>
Tested-by: Zoltan HERPAI <wigyori@openwrt.org>
Tested-by: Tony Zhang <tony.zhang@lemaker.org>
Acked-by: Ian Campbell <ijc@hellion.org.uk>