linux: Release 4.4.15-openpower1
New patches:
- powerpc/boot: Add OPAL console to epapr wrappers
- net/mlx5: Add pci shutdown callback, for kexec support
- tty/hvc: Use IRQF_SHARED for OPAL hvc consoles
- tty/hvc: Use opal irqchip interface if available
Reworked due to upstream fixes:
- xhci: do not halt the secondary HCD
Superseded by upstream fixes:
- Revert "usb: xhci: stop everything on the first call to xhci_stop"
- xhci: do not halt the secondary HCD
Signed-off-by: Joel Stanley <joel@jms.id.au>
diff --git a/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch b/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
new file mode 100644
index 0000000..6008ffe
--- /dev/null
+++ b/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
@@ -0,0 +1,72 @@
+From 634b76812d457f154bc6cba7f58c0f4936f130f9 Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Wed, 2 Mar 2016 11:25:47 +0800
+Subject: [PATCH 02/10] drivers/drm/ast: Switch SCU to VGA output on POST
+
+On AST BMC platforms, the BMC may be using the VGA device for UART
+mirroring. In this case, we need to switch the DAC output to
+VGA mode.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/gpu/drm/ast/ast_post.c | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
+index 810c51d92b99..703dba2ba84b 100644
+--- a/drivers/gpu/drm/ast/ast_post.c
++++ b/drivers/gpu/drm/ast/ast_post.c
+@@ -32,6 +32,7 @@
+ #include "ast_dram_tables.h"
+
+ static void ast_init_dram_2300(struct drm_device *dev);
++static void ast_init_output_control(struct drm_device *dev);
+
+ void ast_enable_vga(struct drm_device *dev)
+ {
+@@ -384,6 +385,9 @@ void ast_post_gpu(struct drm_device *dev)
+ else
+ ast_init_dram_reg(dev);
+
++ if (ast->chip == AST2400)
++ ast_init_output_control(dev);
++
+ ast_init_3rdtx(dev);
+ }
+
+@@ -1655,3 +1659,31 @@ static void ast_init_dram_2300(struct drm_device *dev)
+ } while ((reg & 0x40) == 0);
+ }
+
++static void ast_init_output_control(struct drm_device *dev)
++{
++ struct ast_private *ast = dev->dev_private;
++ const uint32_t scu_addr = 0x1e6e2000;
++ const uint32_t scu_key = 0x1688a8a8;
++ uint32_t val;
++
++ /* unlock write access to SCUs */
++ val = ast_mindwm(ast, scu_addr);
++ ast_moutdwm(ast, scu_addr, scu_key);
++
++ /* configure SCU2C with the appropriate video output mode */
++ val = ast_mindwm(ast, scu_addr | 0x2c);
++
++ switch (ast->tx_chip_type) {
++ case AST_TX_SIL164:
++ case AST_TX_DP501:
++ /* Enable DVO output */
++ val &= ~0x40000;
++ break;
++ default:
++ /* VGA only: enable DAC output */
++ val &= ~0x30000;
++ break;
++ }
++
++ ast_moutdwm(ast, scu_addr | 0x2c, val);
++}
+--
+2.8.1
+