diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index 63c7d38..fe06069 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/firenze_defconfig b/openpower/configs/firenze_defconfig
index 39a6fc5..49360e6 100644
--- a/openpower/configs/firenze_defconfig
+++ b/openpower/configs/firenze_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index c5bbef8..93de9af 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index 09ca66b..3ffcc92 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index 0951980..f198f64 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index c85fd6a..e72fc34 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -31,6 +31,9 @@
 CONFIG_JUMP_LABEL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_FORCE=y
+CONFIG_MODULE_SIG_SHA512=y
 CONFIG_PARTITION_ADVANCED=y
 # CONFIG_IOSCHED_DEADLINE is not set
 # CONFIG_PPC_PSERIES is not set
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index e420017..8aa9704 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/openpower_p9_mambo_defconfig b/openpower/configs/openpower_p9_mambo_defconfig
index a74325b..b8fb374 100644
--- a/openpower/configs/openpower_p9_mambo_defconfig
+++ b/openpower/configs/openpower_p9_mambo_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 4bb4359..d71f68a 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/romulus_defconfig b/openpower/configs/romulus_defconfig
index 40f70aa..60a1e4e 100644
--- a/openpower/configs/romulus_defconfig
+++ b/openpower/configs/romulus_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig
index 44dba50..0e2f5d0 100644
--- a/openpower/configs/witherspoon_defconfig
+++ b/openpower/configs/witherspoon_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index ecd3cdf..f2acc86 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig
index d0e8217..a74e63e 100644
--- a/openpower/configs/zz_defconfig
+++ b/openpower/configs/zz_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.1"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.3"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch b/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
index 97fe3f6..b6226cf 100644
--- a/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
+++ b/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Thadeu Lima De Souza Cascardo <thadeul@br.ibm.com>
 Date: Tue, 25 Mar 2014 10:45:16 -0400
-Subject: [PATCH 01/15] xhci: Use xhci_pci_remove for xhci device shutdown
+Subject: [PATCH 01/12] xhci: Use xhci_pci_remove for xhci device shutdown
 
 Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
 Signed-off-by: Joel Stanley <joel@jms.id.au>
diff --git a/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
index 44cb3f0..92c5a95 100644
--- a/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
+++ b/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Joel Stanley <joel@jms.id.au>
 Date: Tue, 19 Jul 2016 22:43:26 +0930
-Subject: [PATCH 02/15] xhci: do not halt the secondary HCD
+Subject: [PATCH 02/12] xhci: do not halt the secondary HCD
 
 We can't halt the secondary HCD, because it's also the primary HCD,
 which will cause problems if we have devices attached to the primary
diff --git a/openpower/linux/0003-drm-ast-Fix-AST2400-POST-failure-without-BMC-FW-or-V.patch b/openpower/linux/0003-drm-ast-Fix-AST2400-POST-failure-without-BMC-FW-or-V.patch
deleted file mode 100644
index f988f8a..0000000
--- a/openpower/linux/0003-drm-ast-Fix-AST2400-POST-failure-without-BMC-FW-or-V.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Y.C. Chen" <yc_chen@aspeedtech.com>
-Date: Thu, 23 Feb 2017 15:52:33 +0800
-Subject: [PATCH 03/15] drm/ast: Fix AST2400 POST failure without BMC FW or
- VBIOS
-
-The current POST code for the AST2300/2400 family doesn't work properly
-if the chip hasn't been initialized previously by either the BMC own FW
-or the VBIOS. This fixes it.
-
-Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_post.c | 38 +++++++++++++++++++++++++++++++++++---
- 1 file changed, 35 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 5331ee1df086..6c5391cb90eb 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -1638,12 +1638,44 @@ static void ast_init_dram_2300(struct drm_device *dev)
- 		temp |= 0x73;
- 		ast_write32(ast, 0x12008, temp);
- 
-+		param.dram_freq = 396;
- 		param.dram_type = AST_DDR3;
-+		temp = ast_mindwm(ast, 0x1e6e2070);
- 		if (temp & 0x01000000)
- 			param.dram_type = AST_DDR2;
--		param.dram_chipid = ast->dram_type;
--		param.dram_freq = ast->mclk;
--		param.vram_size = ast->vram_size;
-+                switch (temp & 0x18000000) {
-+		case 0:
-+			param.dram_chipid = AST_DRAM_512Mx16;
-+			break;
-+		default:
-+		case 0x08000000:
-+			param.dram_chipid = AST_DRAM_1Gx16;
-+			break;
-+		case 0x10000000:
-+			param.dram_chipid = AST_DRAM_2Gx16;
-+			break;
-+		case 0x18000000:
-+			param.dram_chipid = AST_DRAM_4Gx16;
-+			break;
-+		}
-+                switch (temp & 0x0c) {
-+                default:
-+		case 0x00:
-+			param.vram_size = AST_VIDMEM_SIZE_8M;
-+			break;
-+
-+		case 0x04:
-+			param.vram_size = AST_VIDMEM_SIZE_16M;
-+			break;
-+
-+		case 0x08:
-+			param.vram_size = AST_VIDMEM_SIZE_32M;
-+			break;
-+
-+		case 0x0c:
-+			param.vram_size = AST_VIDMEM_SIZE_64M;
-+			break;
-+		}
- 
- 		if (param.dram_type == AST_DDR3) {
- 			get_ddr3_info(ast, &param);
--- 
-2.11.0
-
diff --git a/openpower/linux/0005-drm-ast-const-ify-mode-setting-tables.patch b/openpower/linux/0003-drm-ast-const-ify-mode-setting-tables.patch
similarity index 99%
rename from openpower/linux/0005-drm-ast-const-ify-mode-setting-tables.patch
rename to openpower/linux/0003-drm-ast-const-ify-mode-setting-tables.patch
index c14c5a3..c9670e5 100644
--- a/openpower/linux/0005-drm-ast-const-ify-mode-setting-tables.patch
+++ b/openpower/linux/0003-drm-ast-const-ify-mode-setting-tables.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 Date: Fri, 17 Feb 2017 13:45:24 +1100
-Subject: [PATCH 05/15] drm/ast: const'ify mode setting tables
+Subject: [PATCH 03/12] drm/ast: const'ify mode setting tables
 
 And fix some comment alignment & space/tabs while at it
 
diff --git a/openpower/linux/0004-drm-ast-Handle-configuration-without-P2A-bridge.patch b/openpower/linux/0004-drm-ast-Handle-configuration-without-P2A-bridge.patch
deleted file mode 100644
index acc3fbd..0000000
--- a/openpower/linux/0004-drm-ast-Handle-configuration-without-P2A-bridge.patch
+++ /dev/null
@@ -1,434 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Russell Currey <ruscur@russell.cc>
-Date: Fri, 17 Feb 2017 14:33:01 +1100
-Subject: [PATCH 04/15] 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>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
-
-v2. [BenH]
-    - Reworked on top of Aspeed P2A patch
-    - Cleanup overall detection via a "config_mode" and log the
-      selected mode for diagnostics purposes
-    - Add a property for the SCU straps
-
-v3. [BenH]
-    - Moved the config mode detection to a separate functionn
-    - Add reading of SCU 0x40 D[12] to detect the window is
-      closed as to not trigger a bus error by just "trying".
-      (change provided by Y.C. Chen)
-v4. [BenH]
-    - Only devices with the AST2000 PCI ID have a P2A bridge
-    - Update the P2A presence test to account for VGA only
-      mode as provided by Y.C. Chen.
-v5. [BenH]
-    - Fixup prefix of OF properties based on Joel Stanley
-      review comments.
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_drv.h  |   6 +-
- drivers/gpu/drm/ast/ast_main.c | 264 +++++++++++++++++++++++++----------------
- drivers/gpu/drm/ast/ast_post.c |   7 +-
- 3 files changed, 168 insertions(+), 109 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
-index 7abda94fc2cf..3bedcf7ddd2a 100644
---- a/drivers/gpu/drm/ast/ast_drv.h
-+++ b/drivers/gpu/drm/ast/ast_drv.h
-@@ -113,7 +113,11 @@ struct ast_private {
- 	struct ttm_bo_kmap_obj cache_kmap;
- 	int next_cursor;
- 	bool support_wide_screen;
--	bool DisableP2A;
-+	enum {
-+		ast_use_p2a,
-+		ast_use_dt,
-+		ast_use_defaults
-+	} config_mode;
- 
- 	enum ast_tx_chip tx_chip_type;
- 	u8 dp501_maxclk;
-diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
-index 533e762d036d..fb9976254224 100644
---- a/drivers/gpu/drm/ast/ast_main.c
-+++ b/drivers/gpu/drm/ast/ast_main.c
-@@ -62,13 +62,84 @@ uint8_t ast_get_index_reg_mask(struct ast_private *ast,
- 	return ret;
- }
- 
-+static void ast_detect_config_mode(struct drm_device *dev, u32 *scu_rev)
-+{
-+	struct device_node *np = dev->pdev->dev.of_node;
-+	struct ast_private *ast = dev->dev_private;
-+	uint32_t data, jregd0, jregd1;
-+
-+	/* Defaults */
-+	ast->config_mode = ast_use_defaults;
-+	*scu_rev = 0xffffffff;
-+
-+	/* Check if we have device-tree properties */
-+	if (np && !of_property_read_u32(np, "aspeed,scu-revision-id",
-+					scu_rev)) {
-+		/* We do, disable P2A access */
-+		ast->config_mode = ast_use_dt;
-+		DRM_INFO("Using device-tree for configuration\n");
-+		return;
-+	}
-+
-+	/* Not all families have a P2A bridge */
-+	if (dev->pdev->device != PCI_CHIP_AST2000)
-+		return;
-+
-+	/*
-+	 * The BMC will set SCU 0x40 D[12] to 1 if the P2 bridge
-+	 * is disabled. We force using P2A if VGA only mode bit
-+	 * is set D[7]
-+	 */
-+	jregd0 = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd0, 0xff);
-+	jregd1 = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd1, 0xff);
-+	if (!(jregd0 & 0x80) || !(jregd1 & 0x10)) {
-+		/* Double check it's actually working */
-+		data = ast_read32(ast, 0xf004);
-+		if (data != 0xFFFFFFFF) {
-+			/* P2A works, grab silicon revision */
-+			ast->config_mode = ast_use_p2a;
-+
-+			DRM_INFO("Using P2A bridge for configuration\n");
-+
-+			/* Read SCU7c (silicon revision register) */
-+			ast_write32(ast, 0xf004, 0x1e6e0000);
-+			ast_write32(ast, 0xf000, 0x1);
-+			*scu_rev = ast_read32(ast, 0x1207c);
-+			return;
-+		}
-+	}
-+
-+	/* We have a P2A bridge but it's disabled */
-+	DRM_INFO("P2A bridge disabled, using default configuration\n");
-+}
- 
- static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- {
- 	struct ast_private *ast = dev->dev_private;
--	uint32_t data, jreg;
-+	uint32_t jreg, scu_rev;
-+
-+	/*
-+	 * If VGA isn't enabled, we need to enable now or subsequent
-+	 * access to the scratch registers will fail. We also inform
-+	 * our caller that it needs to POST the chip
-+	 * (Assumption: VGA not enabled -> need to POST)
-+	 */
-+	if (!ast_is_vga_enabled(dev)) {
-+		ast_enable_vga(dev);
-+		DRM_INFO("VGA not enabled on entry, requesting chip POST\n");
-+		*need_post = true;
-+	} else
-+		*need_post = false;
-+
-+
-+	/* Enable extended register access */
-+	ast_enable_mmio(dev);
- 	ast_open_key(ast);
- 
-+	/* Find out whether P2A works or whether to use device-tree */
-+	ast_detect_config_mode(dev, &scu_rev);
-+
-+	/* Identify chipset */
- 	if (dev->pdev->device == PCI_CHIP_AST1180) {
- 		ast->chip = AST1100;
- 		DRM_INFO("AST 1180 detected\n");
-@@ -80,12 +151,7 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- 			ast->chip = AST2300;
- 			DRM_INFO("AST 2300 detected\n");
- 		} else if (dev->pdev->revision >= 0x10) {
--			uint32_t data;
--			ast_write32(ast, 0xf004, 0x1e6e0000);
--			ast_write32(ast, 0xf000, 0x1);
--
--			data = ast_read32(ast, 0x1207c);
--			switch (data & 0x0300) {
-+			switch (scu_rev & 0x0300) {
- 			case 0x0200:
- 				ast->chip = AST1100;
- 				DRM_INFO("AST 1100 detected\n");
-@@ -110,26 +176,6 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- 		}
- 	}
- 
--	/*
--	 * If VGA isn't enabled, we need to enable now or subsequent
--	 * access to the scratch registers will fail. We also inform
--	 * our caller that it needs to POST the chip
--	 * (Assumption: VGA not enabled -> need to POST)
--	 */
--	if (!ast_is_vga_enabled(dev)) {
--		ast_enable_vga(dev);
--		ast_enable_mmio(dev);
--		DRM_INFO("VGA not enabled on entry, requesting chip POST\n");
--		*need_post = true;
--	} else
--		*need_post = false;
--
--	/* Check P2A Access */
--	ast->DisableP2A = true;
--	data = ast_read32(ast, 0xf004);
--	if (data != 0xFFFFFFFF)
--		ast->DisableP2A = false;
--
- 	/* Check if we support wide screen */
- 	switch (ast->chip) {
- 	case AST1180:
-@@ -146,17 +192,12 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- 			ast->support_wide_screen = true;
- 		else {
- 			ast->support_wide_screen = false;
--			if (ast->DisableP2A == false) {
--				/* Read SCU7c (silicon revision register) */
--				ast_write32(ast, 0xf004, 0x1e6e0000);
--				ast_write32(ast, 0xf000, 0x1);
--				data = ast_read32(ast, 0x1207c);
--				data &= 0x300;
--				if (ast->chip == AST2300 && data == 0x0) /* ast1300 */
--					ast->support_wide_screen = true;
--				if (ast->chip == AST2400 && data == 0x100) /* ast1400 */
--					ast->support_wide_screen = true;
--			}
-+			if (ast->chip == AST2300 &&
-+			    (scu_rev & 0x300) == 0x0) /* ast1300 */
-+				ast->support_wide_screen = true;
-+			if (ast->chip == AST2400 &&
-+			    (scu_rev & 0x300) == 0x100) /* ast1400 */
-+				ast->support_wide_screen = true;
- 		}
- 		break;
- 	}
-@@ -220,85 +261,102 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- 
- static int ast_get_dram_info(struct drm_device *dev)
- {
-+	struct device_node *np = dev->pdev->dev.of_node;
- 	struct ast_private *ast = dev->dev_private;
--	uint32_t data, data2;
--	uint32_t denum, num, div, ref_pll;
-+	uint32_t mcr_cfg, mcr_scu_mpll, mcr_scu_strap;
-+	uint32_t denum, num, div, ref_pll, dsel;
- 
--	if (ast->DisableP2A)
--	{
-+	switch (ast->config_mode) {
-+	case ast_use_dt:
-+		/*
-+		 * If some properties are missing, use reasonable
-+		 * defaults for AST2400
-+		 */
-+		if (of_property_read_u32(np, "aspeed,mcr-configuration",
-+					 &mcr_cfg))
-+			mcr_cfg = 0x00000577;
-+		if (of_property_read_u32(np, "aspeed,mcr-scu-mpll",
-+					 &mcr_scu_mpll))
-+			mcr_scu_mpll = 0x000050C0;
-+		if (of_property_read_u32(np, "aspeed,mcr-scu-strap",
-+					 &mcr_scu_strap))
-+			mcr_scu_strap = 0;
-+		break;
-+	case ast_use_p2a:
-+		ast_write32(ast, 0xf004, 0x1e6e0000);
-+		ast_write32(ast, 0xf000, 0x1);
-+		mcr_cfg = ast_read32(ast, 0x10004);
-+		mcr_scu_mpll = ast_read32(ast, 0x10120);
-+		mcr_scu_strap = ast_read32(ast, 0x10170);
-+		break;
-+	case ast_use_defaults:
-+	default:
- 		ast->dram_bus_width = 16;
- 		ast->dram_type = AST_DRAM_1Gx16;
- 		ast->mclk = 396;
-+		return 0;
- 	}
--	else
--	{
--		ast_write32(ast, 0xf004, 0x1e6e0000);
--		ast_write32(ast, 0xf000, 0x1);
--		data = ast_read32(ast, 0x10004);
--
--		if (data & 0x40)
--			ast->dram_bus_width = 16;
--		else
--			ast->dram_bus_width = 32;
- 
--		if (ast->chip == AST2300 || ast->chip == AST2400) {
--			switch (data & 0x03) {
--			case 0:
--				ast->dram_type = AST_DRAM_512Mx16;
--				break;
--			default:
--			case 1:
--				ast->dram_type = AST_DRAM_1Gx16;
--				break;
--			case 2:
--				ast->dram_type = AST_DRAM_2Gx16;
--				break;
--			case 3:
--				ast->dram_type = AST_DRAM_4Gx16;
--				break;
--			}
--		} else {
--			switch (data & 0x0c) {
--			case 0:
--			case 4:
--				ast->dram_type = AST_DRAM_512Mx16;
--				break;
--			case 8:
--				if (data & 0x40)
--					ast->dram_type = AST_DRAM_1Gx16;
--				else
--					ast->dram_type = AST_DRAM_512Mx32;
--				break;
--			case 0xc:
--				ast->dram_type = AST_DRAM_1Gx32;
--				break;
--			}
--		}
-+	if (mcr_cfg & 0x40)
-+		ast->dram_bus_width = 16;
-+	else
-+		ast->dram_bus_width = 32;
- 
--		data = ast_read32(ast, 0x10120);
--		data2 = ast_read32(ast, 0x10170);
--		if (data2 & 0x2000)
--			ref_pll = 14318;
--		else
--			ref_pll = 12000;
--
--		denum = data & 0x1f;
--		num = (data & 0x3fe0) >> 5;
--		data = (data & 0xc000) >> 14;
--		switch (data) {
--		case 3:
--			div = 0x4;
-+	if (ast->chip == AST2300 || ast->chip == AST2400) {
-+		switch (mcr_cfg & 0x03) {
-+		case 0:
-+			ast->dram_type = AST_DRAM_512Mx16;
- 			break;
--		case 2:
-+		default:
- 		case 1:
--			div = 0x2;
-+			ast->dram_type = AST_DRAM_1Gx16;
- 			break;
--		default:
--			div = 0x1;
-+		case 2:
-+			ast->dram_type = AST_DRAM_2Gx16;
-+			break;
-+		case 3:
-+			ast->dram_type = AST_DRAM_4Gx16;
-+			break;
-+		}
-+	} else {
-+		switch (mcr_cfg & 0x0c) {
-+		case 0:
-+		case 4:
-+			ast->dram_type = AST_DRAM_512Mx16;
-+			break;
-+		case 8:
-+			if (mcr_cfg & 0x40)
-+				ast->dram_type = AST_DRAM_1Gx16;
-+			else
-+				ast->dram_type = AST_DRAM_512Mx32;
-+			break;
-+		case 0xc:
-+			ast->dram_type = AST_DRAM_1Gx32;
- 			break;
- 		}
--		ast->mclk = ref_pll * (num + 2) / (denum + 2) * (div * 1000);
- 	}
-+
-+	if (mcr_scu_strap & 0x2000)
-+		ref_pll = 14318;
-+	else
-+		ref_pll = 12000;
-+
-+	denum = mcr_scu_mpll & 0x1f;
-+	num = (mcr_scu_mpll & 0x3fe0) >> 5;
-+	dsel = (mcr_scu_mpll & 0xc000) >> 14;
-+	switch (dsel) {
-+	case 3:
-+		div = 0x4;
-+		break;
-+	case 2:
-+	case 1:
-+		div = 0x2;
-+		break;
-+	default:
-+		div = 0x1;
-+		break;
-+	}
-+	ast->mclk = ref_pll * (num + 2) / (denum + 2) * (div * 1000);
- 	return 0;
- }
- 
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 6c5391cb90eb..64549cebcc5b 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -379,17 +379,14 @@ void ast_post_gpu(struct drm_device *dev)
- 	ast_open_key(ast);
- 	ast_set_def_ext_reg(dev);
- 
--	if (ast->DisableP2A == false)
--	{
-+	if (ast->config_mode == ast_use_p2a) {
- 		if (ast->chip == AST2300 || ast->chip == AST2400)
- 			ast_init_dram_2300(dev);
- 		else
- 			ast_init_dram_reg(dev);
- 
- 		ast_init_3rdtx(dev);
--	}
--	else
--	{
-+	} else {
- 		if (ast->tx_chip_type != AST_TX_NONE)
- 			ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xa3, 0xcf, 0x80);	/* Enable DVO */
- 	}
--- 
-2.11.0
-
diff --git a/openpower/linux/0006-drm-ast-Remove-spurrious-include.patch b/openpower/linux/0004-drm-ast-Remove-spurrious-include.patch
similarity index 93%
rename from openpower/linux/0006-drm-ast-Remove-spurrious-include.patch
rename to openpower/linux/0004-drm-ast-Remove-spurrious-include.patch
index 9b6d7a1..ffa2606 100644
--- a/openpower/linux/0006-drm-ast-Remove-spurrious-include.patch
+++ b/openpower/linux/0004-drm-ast-Remove-spurrious-include.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 Date: Fri, 17 Feb 2017 13:55:58 +1100
-Subject: [PATCH 06/15] drm/ast: Remove spurrious include
+Subject: [PATCH 04/12] drm/ast: Remove spurrious include
 
 Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 Signed-off-by: Joel Stanley <joel@jms.id.au>
diff --git a/openpower/linux/0007-drm-ast-Fix-calculation-of-MCLK.patch b/openpower/linux/0005-drm-ast-Fix-calculation-of-MCLK.patch
similarity index 96%
rename from openpower/linux/0007-drm-ast-Fix-calculation-of-MCLK.patch
rename to openpower/linux/0005-drm-ast-Fix-calculation-of-MCLK.patch
index 5cc3e2c..e72a789 100644
--- a/openpower/linux/0007-drm-ast-Fix-calculation-of-MCLK.patch
+++ b/openpower/linux/0005-drm-ast-Fix-calculation-of-MCLK.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 Date: Fri, 17 Feb 2017 13:57:30 +1100
-Subject: [PATCH 07/15] drm/ast: Fix calculation of MCLK
+Subject: [PATCH 05/12] drm/ast: Fix calculation of MCLK
 
 Some braces were missing causing an incorrect calculation.
 
diff --git a/openpower/linux/0008-drm-ast-Base-support-for-AST2500.patch b/openpower/linux/0006-drm-ast-Base-support-for-AST2500.patch
similarity index 99%
rename from openpower/linux/0008-drm-ast-Base-support-for-AST2500.patch
rename to openpower/linux/0006-drm-ast-Base-support-for-AST2500.patch
index c081740..34fb54a 100644
--- a/openpower/linux/0008-drm-ast-Base-support-for-AST2500.patch
+++ b/openpower/linux/0006-drm-ast-Base-support-for-AST2500.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: "Y.C. Chen" <yc_chen@aspeedtech.com>
 Date: Fri, 17 Feb 2017 14:36:46 +1100
-Subject: [PATCH 08/15] drm/ast: Base support for AST2500
+Subject: [PATCH 06/12] drm/ast: Base support for AST2500
 
 Add detection and mode setting updates for AST2500 generation chip,
 code originally from Aspeed and slightly reworked for coding style
diff --git a/openpower/linux/0009-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch b/openpower/linux/0007-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
similarity index 90%
rename from openpower/linux/0009-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
rename to openpower/linux/0007-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
index 0879919..da79871 100644
--- a/openpower/linux/0009-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
+++ b/openpower/linux/0007-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: "Y.C. Chen" <yc_chen@aspeedtech.com>
 Date: Fri, 17 Feb 2017 10:56:47 +0800
-Subject: [PATCH 09/15] drm/ast: Fixed vram size incorrect issue on POWER
+Subject: [PATCH 07/12] drm/ast: Fixed vram size incorrect issue on POWER
 
 The default value of VGA scratch may incorrect.
 Should initial h/w before get vram info.
@@ -38,10 +38,10 @@
  	if (ret)
  		goto out_free;
 diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 64549cebcc5b..e8024502e749 100644
+index c7c58becb25d..5b7db846a2c1 100644
 --- a/drivers/gpu/drm/ast/ast_post.c
 +++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -79,7 +79,7 @@ ast_set_def_ext_reg(struct drm_device *dev)
+@@ -75,7 +75,7 @@ ast_set_def_ext_reg(struct drm_device *dev)
  	const u8 *ext_reg_info;
  
  	/* reset scratch */
diff --git a/openpower/linux/0010-drm-ast-Factor-mmc_test-code-in-POST-code.patch b/openpower/linux/0008-drm-ast-Factor-mmc_test-code-in-POST-code.patch
similarity index 94%
rename from openpower/linux/0010-drm-ast-Factor-mmc_test-code-in-POST-code.patch
rename to openpower/linux/0008-drm-ast-Factor-mmc_test-code-in-POST-code.patch
index 855c7d8..f85a1ce 100644
--- a/openpower/linux/0010-drm-ast-Factor-mmc_test-code-in-POST-code.patch
+++ b/openpower/linux/0008-drm-ast-Factor-mmc_test-code-in-POST-code.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 Date: Sat, 18 Feb 2017 14:19:10 +1100
-Subject: [PATCH 10/15] drm/ast: Factor mmc_test code in POST code
+Subject: [PATCH 08/12] drm/ast: Factor mmc_test code in POST code
 
 There's a some duplication for what's essentially copies of
 two loops, so factor it. The upcoming AST2500 POST code adds
@@ -22,10 +22,10 @@
  1 file changed, 31 insertions(+), 51 deletions(-)
 
 diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index e8024502e749..c55067ccb0b1 100644
+index 5b7db846a2c1..89b09d60b2be 100644
 --- a/drivers/gpu/drm/ast/ast_post.c
 +++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -445,85 +445,65 @@ static const u32 pattern[8] = {
+@@ -441,85 +441,65 @@ static const u32 pattern[8] = {
  	0x7C61D253
  };
  
@@ -135,7 +135,7 @@
  }
  
  static int cbr_test(struct ast_private *ast)
-@@ -601,16 +581,16 @@ static u32 cbr_scan2(struct ast_private *ast)
+@@ -597,16 +577,16 @@ static u32 cbr_scan2(struct ast_private *ast)
  	return data2;
  }
  
@@ -157,7 +157,7 @@
  {
  	u32 patcnt, loop;
  
-@@ -621,9 +601,9 @@ static u32 cbr_scan3(struct ast_private *ast)
+@@ -617,9 +597,9 @@ static u32 cbr_scan3(struct ast_private *ast)
  				break;
  		}
  		if (loop == 2)
diff --git a/openpower/linux/0011-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch b/openpower/linux/0009-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
similarity index 86%
rename from openpower/linux/0011-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
rename to openpower/linux/0009-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
index 0bdfc10..d0dc48f 100644
--- a/openpower/linux/0011-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
+++ b/openpower/linux/0009-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 Date: Fri, 17 Feb 2017 13:51:34 +1100
-Subject: [PATCH 11/15] drm/ast: Rename ast_init_dram_2300 to
+Subject: [PATCH 09/12] drm/ast: Rename ast_init_dram_2300 to
  ast_post_chip_2300
 
 The function does more than initializing the DRAM and in turns
@@ -15,7 +15,7 @@
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index c55067ccb0b1..561fd7d3a0cf 100644
+index 89b09d60b2be..3716795d27c8 100644
 --- a/drivers/gpu/drm/ast/ast_post.c
 +++ b/drivers/gpu/drm/ast/ast_post.c
 @@ -31,7 +31,7 @@
@@ -27,7 +27,7 @@
  
  void ast_enable_vga(struct drm_device *dev)
  {
-@@ -381,7 +381,7 @@ void ast_post_gpu(struct drm_device *dev)
+@@ -377,7 +377,7 @@ void ast_post_gpu(struct drm_device *dev)
  
  	if (ast->config_mode == ast_use_p2a) {
  		if (ast->chip == AST2300 || ast->chip == AST2400)
@@ -36,7 +36,7 @@
  		else
  			ast_init_dram_reg(dev);
  
-@@ -1589,7 +1589,7 @@ static void ddr2_init(struct ast_private *ast, struct ast2300_dram_param *param)
+@@ -1585,7 +1585,7 @@ static void ddr2_init(struct ast_private *ast, struct ast2300_dram_param *param)
  
  }
  
diff --git a/openpower/linux/0012-drm-ast-POST-code-for-the-new-AST2500.patch b/openpower/linux/0010-drm-ast-POST-code-for-the-new-AST2500.patch
similarity index 97%
rename from openpower/linux/0012-drm-ast-POST-code-for-the-new-AST2500.patch
rename to openpower/linux/0010-drm-ast-POST-code-for-the-new-AST2500.patch
index 34ad9aa..6e42f86 100644
--- a/openpower/linux/0012-drm-ast-POST-code-for-the-new-AST2500.patch
+++ b/openpower/linux/0010-drm-ast-POST-code-for-the-new-AST2500.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: "Y.C. Chen" <yc_chen@aspeedtech.com>
 Date: Fri, 17 Feb 2017 14:45:07 +1100
-Subject: [PATCH 12/15] drm/ast: POST code for the new AST2500
+Subject: [PATCH 10/12] drm/ast: POST code for the new AST2500
 
 This is used when the BMC isn't running any code and thus has
 to be initialized by the host.
@@ -95,7 +95,7 @@
 +
  #endif
 diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 561fd7d3a0cf..c15f643915af 100644
+index 3716795d27c8..f7d421359d56 100644
 --- a/drivers/gpu/drm/ast/ast_post.c
 +++ b/drivers/gpu/drm/ast/ast_post.c
 @@ -32,6 +32,7 @@
@@ -106,7 +106,7 @@
  
  void ast_enable_vga(struct drm_device *dev)
  {
-@@ -82,7 +83,8 @@ ast_set_def_ext_reg(struct drm_device *dev)
+@@ -78,7 +79,8 @@ ast_set_def_ext_reg(struct drm_device *dev)
  	for (i = 0x81; i <= 0x9f; i++)
  		ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, 0x00);
  
@@ -116,7 +116,7 @@
  		if (dev->pdev->revision >= 0x20)
  			ext_reg_info = extreginfo_ast2300;
  		else
-@@ -106,7 +108,8 @@ ast_set_def_ext_reg(struct drm_device *dev)
+@@ -102,7 +104,8 @@ ast_set_def_ext_reg(struct drm_device *dev)
  
  	/* Enable RAMDAC for A1 */
  	reg = 0x04;
@@ -126,7 +126,7 @@
  		reg |= 0x20;
  	ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0xff, reg);
  }
-@@ -380,7 +383,9 @@ void ast_post_gpu(struct drm_device *dev)
+@@ -376,7 +379,9 @@ void ast_post_gpu(struct drm_device *dev)
  	ast_set_def_ext_reg(dev);
  
  	if (ast->config_mode == ast_use_p2a) {
@@ -137,7 +137,7 @@
  			ast_post_chip_2300(dev);
  		else
  			ast_init_dram_reg(dev);
-@@ -506,6 +511,11 @@ static u32 mmc_test_single2(struct ast_private *ast, u32 datagen)
+@@ -502,6 +507,11 @@ static u32 mmc_test_single2(struct ast_private *ast, u32 datagen)
  	return mmc_test2(ast, datagen, 0x05);
  }
  
@@ -149,7 +149,7 @@
  static int cbr_test(struct ast_private *ast)
  {
  	u32 data;
-@@ -1672,3 +1682,404 @@ static void ast_post_chip_2300(struct drm_device *dev)
+@@ -1668,3 +1678,404 @@ static void ast_post_chip_2300(struct drm_device *dev)
  	} while ((reg & 0x40) == 0);
  }
  
diff --git a/openpower/linux/0011-scsi-lpfc-Add-shutdown-method-for-kexec.patch b/openpower/linux/0011-scsi-lpfc-Add-shutdown-method-for-kexec.patch
new file mode 100644
index 0000000..f4600c2
--- /dev/null
+++ b/openpower/linux/0011-scsi-lpfc-Add-shutdown-method-for-kexec.patch
@@ -0,0 +1,33 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Thu, 2 Mar 2017 10:20:30 -0300
+Subject: [PATCH 11/12] scsi: lpfc: Add shutdown method for kexec
+
+We see lpfc devices regularly fail during kexec. Fix this by adding
+a shutdown method which mirrors the remove method.
+
+( mfoliveira: this patch has been submitted upstream at: )
+( http://www.spinics.net/lists/linux-scsi/msg105102.html )
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/scsi/lpfc/lpfc_init.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
+index 4776fd85514f..10f75ad2b9e8 100644
+--- a/drivers/scsi/lpfc/lpfc_init.c
++++ b/drivers/scsi/lpfc/lpfc_init.c
+@@ -11447,6 +11447,7 @@ static struct pci_driver lpfc_driver = {
+ 	.id_table	= lpfc_id_table,
+ 	.probe		= lpfc_pci_probe_one,
+ 	.remove		= lpfc_pci_remove_one,
++	.shutdown	= lpfc_pci_remove_one,
+ 	.suspend        = lpfc_pci_suspend_one,
+ 	.resume		= lpfc_pci_resume_one,
+ 	.err_handler    = &lpfc_err_handler,
+-- 
+2.11.0
+
diff --git a/openpower/linux/0015-Release-OpenPower-kernel.patch b/openpower/linux/0012-Release-OpenPower-kernel.patch
similarity index 82%
rename from openpower/linux/0015-Release-OpenPower-kernel.patch
rename to openpower/linux/0012-Release-OpenPower-kernel.patch
index db8831f..552c6b5 100644
--- a/openpower/linux/0015-Release-OpenPower-kernel.patch
+++ b/openpower/linux/0012-Release-OpenPower-kernel.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Joel Stanley <joel@jms.id.au>
 Date: Tue, 28 Feb 2017 12:15:10 +1030
-Subject: [PATCH 15/15] Release OpenPower kernel
+Subject: [PATCH 12/12] Release OpenPower kernel
 
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
@@ -9,13 +9,13 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index 09eccff4f569..e291929b4fd0 100644
+index 190a684303c1..f0aedaf5fabb 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,7 +1,7 @@
  VERSION = 4
  PATCHLEVEL = 10
- SUBLEVEL = 1
+ SUBLEVEL = 3
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
  NAME = Fearless Coyote
diff --git a/openpower/linux/0013-drm-ast-Fix-test-for-VGA-enabled.patch b/openpower/linux/0013-drm-ast-Fix-test-for-VGA-enabled.patch
deleted file mode 100644
index f27d6c1..0000000
--- a/openpower/linux/0013-drm-ast-Fix-test-for-VGA-enabled.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Y.C. Chen" <yc_chen@aspeedtech.com>
-Date: Wed, 22 Feb 2017 15:10:50 +1100
-Subject: [PATCH 13/15] drm/ast: Fix test for VGA enabled
-
-The test to see if VGA was already enabled is doing an unnecessary
-second test from a register that may or may not have been initialized
-to a valid value. Remove it.
-
-Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_post.c | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index c15f643915af..a5a780921553 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -59,13 +59,9 @@ bool ast_is_vga_enabled(struct drm_device *dev)
- 		/* TODO 1180 */
- 	} else {
- 		ch = ast_io_read8(ast, AST_IO_VGA_ENABLE_PORT);
--		if (ch) {
--			ast_open_key(ast);
--			ch = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0xff);
--			return ch & 0x04;
--		}
-+		return !!(ch & 0x01);
- 	}
--	return 0;
-+	return false;
- }
- 
- static const u8 extreginfo[] = { 0x0f, 0x04, 0x1c, 0xff };
--- 
-2.11.0
-
diff --git a/openpower/linux/0014-drm-ast-Call-open_key-before-enable_mmio-in-POST-cod.patch b/openpower/linux/0014-drm-ast-Call-open_key-before-enable_mmio-in-POST-cod.patch
deleted file mode 100644
index b84131e..0000000
--- a/openpower/linux/0014-drm-ast-Call-open_key-before-enable_mmio-in-POST-cod.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Y.C. Chen" <yc_chen@aspeedtech.com>
-Date: Wed, 22 Feb 2017 15:14:19 +1100
-Subject: [PATCH 14/15] drm/ast: Call open_key before enable_mmio in POST code
-
-open_key enables access the registers used by enable_mmio
-
-Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_post.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index a5a780921553..f7d421359d56 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -374,8 +374,8 @@ void ast_post_gpu(struct drm_device *dev)
- 	pci_write_config_dword(ast->dev->pdev, 0x04, reg);
- 
- 	ast_enable_vga(dev);
--	ast_enable_mmio(dev);
- 	ast_open_key(ast);
-+	ast_enable_mmio(dev);
- 	ast_set_def_ext_reg(dev);
- 
- 	if (ast->config_mode == ast_use_p2a) {
--- 
-2.11.0
-
