alistair23-linux/drivers/gpu/drm/ast
Russell Currey 71f677a910 drm/ast: Handle configuration without P2A bridge
The ast driver configures a window to enable access into BMC
memory space in order to read some configuration registers.

If this window is disabled, which it can be from the BMC side,
the ast driver can't function.

Closing this window is a necessity for security if a machine's
host side and BMC side are controlled by different parties;
i.e. a cloud provider offering machines "bare metal".

A recent patch went in to try to check if that window is open
but it does so by trying to access the registers in question
and testing if the result is 0xffffffff.

This method will trigger a PCIe error when the window is closed
which on some systems will be fatal (it will trigger an EEH
for example on POWER which will take out the device).

This patch improves this in two ways:

 - First, if the firmware has put properties in the device-tree
containing the relevant configuration information, we use these.

 - Otherwise, a bit in one of the SCU scratch registers (which
are readable via the VGA register space and writeable by the BMC)
will indicate if the BMC has closed the window. This bit has been
defined by Y.C Chen from Aspeed.

If the window is closed and the configuration isn't available from
the device-tree, some sane defaults are used. Those defaults are
hopefully sufficient for standard video modes used on a server.

Signed-off-by: Russell Currey <ruscur@russell.cc>
Acked-by: Joel Stanley <joel@jms.id.au>
Cc: <stable@vger.kernel.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2017-02-28 13:09:50 +10:00
..
ast_dp501.c drm/ast: Cleanup analog init code path 2014-09-15 11:37:46 +10:00
ast_dram_tables.h drm: Initial KMS driver for AST (ASpeed Technologies) 2000 series (v2) 2012-05-17 10:53:37 +01:00
ast_drv.c drm: define drm_compat_ioctl NULL on CONFIG_COMPAT=n and reduce #ifdefs 2016-11-02 11:33:47 -04:00
ast_drv.h drm/ast: Handle configuration without P2A bridge 2017-02-28 13:09:50 +10:00
ast_fb.c drm: Rely on mode_config data for fb_helper initialization 2017-02-02 19:12:00 +01:00
ast_main.c drm/ast: Handle configuration without P2A bridge 2017-02-28 13:09:50 +10:00
ast_mode.c drm: Nuke fb->bits_per_pixel 2016-12-15 14:55:34 +02:00
ast_post.c drm/ast: Handle configuration without P2A bridge 2017-02-28 13:09:50 +10:00
ast_tables.h drm/ast: Add reduced blanking modes for wide screen mode 2014-09-16 14:57:47 +10:00
ast_ttm.c drm/ttm: revert "implement LRU add callbacks v2" 2017-01-27 12:20:34 -05:00
Kconfig drm: fix compilations issues introduced by "drm: allow to use mmuless SoC" 2017-01-09 11:30:30 +01:00
Makefile drm/ast: initial DP501 support (v0.2) 2014-05-19 11:13:57 +10:00