diff --git a/buildroot b/buildroot
index 3c8df8b..13f9e11 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit 3c8df8b8a7e9151a51b84296b73644786b21f7f1
+Subproject commit 13f9e110cb6243092b25b95c870d3c88503e1aac
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 211b99d..eb4eb30 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -6,6 +6,7 @@
 BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
 BR2_TOOLCHAIN_BUILDROOT_CXX=y
 # BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+BR2_GLIBC_VERSION_2_22=y
 
 BR2_OPENPOWER_CONFIG_NAME="firestone"
 BR2_OPENPOWER_XML_PACKAGE="firestone-xml"
@@ -44,8 +45,8 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
-BR2_KERNEL_HEADERS_4_2=y
-BR2_DEFAULT_KERNEL_HEADERS="4.2.6"
+BR2_KERNEL_HEADERS_4_4=y
+BR2_DEFAULT_KERNEL_HEADERS="4.4"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index 1a95416..1b5dc49 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -6,6 +6,7 @@
 BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
 BR2_TOOLCHAIN_BUILDROOT_CXX=y
 # BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+BR2_GLIBC_VERSION_2_22=y
 
 BR2_OPENPOWER_CONFIG_NAME="garrison"
 BR2_OPENPOWER_XML_PACKAGE="garrison-xml"
@@ -46,8 +47,8 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
-BR2_KERNEL_HEADERS_4_2=y
-BR2_DEFAULT_KERNEL_HEADERS="4.2.6"
+BR2_KERNEL_HEADERS_4_4=y
+BR2_DEFAULT_KERNEL_HEADERS="4.4"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index 6ccb972..8cf6bd3 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -6,6 +6,7 @@
 BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
 BR2_TOOLCHAIN_BUILDROOT_CXX=y
 # BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+BR2_GLIBC_VERSION_2_22=y
 
 BR2_OPENPOWER_CONFIG_NAME="habanero"
 BR2_OPENPOWER_XML_PACKAGE="habanero-xml"
@@ -44,8 +45,8 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
-BR2_KERNEL_HEADERS_4_2=y
-BR2_DEFAULT_KERNEL_HEADERS="4.2.6"
+BR2_KERNEL_HEADERS_4_4=y
+BR2_DEFAULT_KERNEL_HEADERS="4.4"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index 1a80631..56d80ed 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -35,7 +35,6 @@
 CONFIG_PARTITION_ADVANCED=y
 # CONFIG_IOSCHED_DEADLINE is not set
 # CONFIG_PPC_PSERIES is not set
-# CONFIG_PPC_PMAC is not set
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
 CONFIG_HZ_100=y
 CONFIG_KEXEC=y
@@ -159,7 +158,6 @@
 CONFIG_FB_MATROX_MILLENIUM=y
 CONFIG_FB_MATROX_MYSTIQUE=y
 CONFIG_FB_MATROX_G=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
 # CONFIG_LCD_CLASS_DEVICE is not set
 # CONFIG_BACKLIGHT_GENERIC is not set
 # CONFIG_VGA_CONSOLE is not set
@@ -210,4 +208,5 @@
 # CONFIG_FTRACE is not set
 CONFIG_XMON=y
 CONFIG_XMON_DEFAULT=y
+# CONFIG_CRYPTO_ECHAINIV is not set
 # CONFIG_CRYPTO_HW is not set
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index 82fe9e5..eb2ccbc 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -4,6 +4,7 @@
 
 BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
 BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_GLIBC_VERSION_2_22=y
 
 # No HostBoot for Mambo
 BR2_PACKAGE_HOSTBOOT=n
@@ -32,8 +33,8 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
-BR2_KERNEL_HEADERS_4_2=y
-BR2_DEFAULT_KERNEL_HEADERS="4.2.6"
+BR2_KERNEL_HEADERS_4_4=y
+BR2_DEFAULT_KERNEL_HEADERS="4.4"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 6942589..26857e9 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -6,6 +6,7 @@
 BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
 BR2_TOOLCHAIN_BUILDROOT_CXX=y
 # BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+BR2_GLIBC_VERSION_2_22=y
 
 BR2_OPENPOWER_CONFIG_NAME="palmetto"
 BR2_OPENPOWER_XML_PACKAGE="palmetto-xml"
@@ -43,8 +44,8 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
-BR2_KERNEL_HEADERS_4_2=y
-BR2_DEFAULT_KERNEL_HEADERS="4.2.6"
+BR2_KERNEL_HEADERS_4_4=y
+BR2_DEFAULT_KERNEL_HEADERS="4.4"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
diff --git a/openpower/linux/linux-0001-powerpc-Add-openpower_defconfig.patch b/openpower/linux/linux-0001-powerpc-Add-openpower_defconfig.patch
deleted file mode 100644
index 5724b60..0000000
--- a/openpower/linux/linux-0001-powerpc-Add-openpower_defconfig.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-From bbf8dfe1ddb782c0ed75a14c3dcbb473c8563987 Mon Sep 17 00:00:00 2001
-From: Jeremy Kerr <jk@ozlabs.org>
-Date: Fri, 12 Dec 2014 08:03:11 +0800
-Subject: [PATCH 01/15] powerpc: Add openpower_defconfig
-
-Simplifies building an openpower kernel a little. It is based on the
-configuration used by the op-build openpower buildroot overlay.
-
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/configs/openpower_defconfig | 217 +++++++++++++++++++++++++++++++
- 1 file changed, 217 insertions(+)
- create mode 100644 arch/powerpc/configs/openpower_defconfig
-
-diff --git a/arch/powerpc/configs/openpower_defconfig b/arch/powerpc/configs/openpower_defconfig
-new file mode 100644
-index 000000000000..4d6779a3c753
---- /dev/null
-+++ b/arch/powerpc/configs/openpower_defconfig
-@@ -0,0 +1,217 @@
-+CONFIG_PPC64=y
-+CONFIG_ALTIVEC=y
-+CONFIG_VSX=y
-+CONFIG_SMP=y
-+CONFIG_NR_CPUS=2048
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_POSIX_MQUEUE=y
-+# CONFIG_CROSS_MEMORY_ATTACH is not set
-+CONFIG_IRQ_DOMAIN_DEBUG=y
-+CONFIG_NO_HZ=y
-+CONFIG_HIGH_RES_TIMERS=y
-+CONFIG_TASKSTATS=y
-+CONFIG_TASK_DELAY_ACCT=y
-+CONFIG_TASK_XACCT=y
-+CONFIG_TASK_IO_ACCOUNTING=y
-+CONFIG_IKCONFIG=y
-+CONFIG_IKCONFIG_PROC=y
-+CONFIG_LOG_BUF_SHIFT=20
-+CONFIG_RELAY=y
-+CONFIG_BLK_DEV_INITRD=y
-+# CONFIG_RD_GZIP is not set
-+# CONFIG_RD_BZIP2 is not set
-+# CONFIG_RD_LZMA is not set
-+# CONFIG_RD_LZO is not set
-+# CONFIG_RD_LZ4 is not set
-+CONFIG_KALLSYMS_ALL=y
-+CONFIG_PERF_EVENTS=y
-+# CONFIG_COMPAT_BRK is not set
-+CONFIG_JUMP_LABEL=y
-+CONFIG_MODULES=y
-+CONFIG_MODULE_UNLOAD=y
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_PPC_PMAC is not set
-+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-+CONFIG_HZ_100=y
-+CONFIG_KEXEC=y
-+CONFIG_IRQ_ALL_CPUS=y
-+# CONFIG_COMPACTION is not set
-+# CONFIG_MIGRATION is not set
-+# CONFIG_BOUNCE is not set
-+CONFIG_PPC_64K_PAGES=y
-+CONFIG_SCHED_SMT=y
-+# CONFIG_SUSPEND is not set
-+# CONFIG_SECCOMP is not set
-+CONFIG_NET=y
-+CONFIG_PACKET=y
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+CONFIG_NET_IPIP=y
-+CONFIG_SYN_COOKIES=y
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_WIRELESS is not set
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_DEVTMPFS=y
-+CONFIG_DEVTMPFS_MOUNT=y
-+CONFIG_BLK_DEV_LOOP=y
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_SIZE=65536
-+CONFIG_ATA_OVER_ETH=y
-+CONFIG_VIRTIO_BLK=y
-+CONFIG_EEPROM_AT24=y
-+CONFIG_CXL=y
-+CONFIG_BLK_DEV_SD=y
-+CONFIG_CHR_DEV_ST=y
-+CONFIG_BLK_DEV_SR=y
-+CONFIG_BLK_DEV_SR_VENDOR=y
-+CONFIG_CHR_DEV_SG=y
-+CONFIG_SCSI_CONSTANTS=y
-+CONFIG_SCSI_SCAN_ASYNC=y
-+CONFIG_SCSI_FC_ATTRS=y
-+CONFIG_SCSI_CXGB3_ISCSI=y
-+CONFIG_SCSI_CXGB4_ISCSI=y
-+CONFIG_SCSI_BNX2_ISCSI=y
-+CONFIG_BE2ISCSI=y
-+CONFIG_SCSI_AACRAID=y
-+CONFIG_SCSI_MPT2SAS=y
-+CONFIG_SCSI_IBMVSCSI=y
-+CONFIG_SCSI_SYM53C8XX_2=y
-+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
-+CONFIG_SCSI_IPR=y
-+# CONFIG_SCSI_IPR_TRACE is not set
-+# CONFIG_SCSI_IPR_DUMP is not set
-+CONFIG_SCSI_QLA_FC=y
-+CONFIG_SCSI_QLA_ISCSI=y
-+CONFIG_SCSI_LPFC=y
-+CONFIG_SCSI_VIRTIO=y
-+CONFIG_SCSI_DH=y
-+CONFIG_SCSI_DH_ALUA=y
-+CONFIG_ATA=y
-+CONFIG_SATA_AHCI=y
-+# CONFIG_ATA_SFF is not set
-+CONFIG_MD=y
-+CONFIG_BLK_DEV_MD=y
-+CONFIG_MD_LINEAR=y
-+CONFIG_MD_RAID0=y
-+CONFIG_MD_RAID1=y
-+CONFIG_MD_RAID10=y
-+CONFIG_MD_RAID456=y
-+CONFIG_MD_MULTIPATH=y
-+CONFIG_MD_FAULTY=y
-+CONFIG_BLK_DEV_DM=y
-+CONFIG_DM_CRYPT=y
-+CONFIG_DM_SNAPSHOT=y
-+CONFIG_DM_MIRROR=y
-+CONFIG_DM_ZERO=y
-+CONFIG_DM_MULTIPATH=y
-+CONFIG_NETCONSOLE=y
-+CONFIG_TUN=y
-+CONFIG_VIRTIO_NET=y
-+CONFIG_VORTEX=y
-+CONFIG_ACENIC=y
-+CONFIG_ACENIC_OMIT_TIGON_I=y
-+CONFIG_PCNET32=y
-+CONFIG_TIGON3=y
-+CONFIG_BNX2X=y
-+CONFIG_CHELSIO_T1=y
-+CONFIG_BE2NET=y
-+CONFIG_S2IO=y
-+CONFIG_IBMVETH=y
-+CONFIG_E100=y
-+CONFIG_E1000=y
-+CONFIG_E1000E=y
-+CONFIG_IXGB=y
-+CONFIG_IXGBE=y
-+CONFIG_MLX4_EN=y
-+CONFIG_MYRI10GE=y
-+CONFIG_QLGE=y
-+CONFIG_NETXEN_NIC=y
-+CONFIG_SFC=y
-+# CONFIG_WLAN is not set
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_EVDEV=y
-+CONFIG_INPUT_MISC=y
-+# CONFIG_SERIO_SERPORT is not set
-+CONFIG_SERIAL_8250=y
-+CONFIG_SERIAL_8250_CONSOLE=y
-+CONFIG_HVC_CONSOLE=y
-+CONFIG_IPMI_HANDLER=y
-+CONFIG_IPMI_DEVICE_INTERFACE=y
-+CONFIG_IPMI_POWERNV=y
-+CONFIG_HW_RANDOM=y
-+CONFIG_GEN_RTC=y
-+CONFIG_RAW_DRIVER=y
-+CONFIG_MAX_RAW_DEVS=1024
-+# CONFIG_I2C_COMPAT is not set
-+CONFIG_I2C_CHARDEV=y
-+# CONFIG_I2C_HELPER_AUTO is not set
-+CONFIG_DRM=y
-+CONFIG_DRM_RADEON=y
-+CONFIG_DRM_AST=y
-+CONFIG_FIRMWARE_EDID=y
-+CONFIG_FB_MODE_HELPERS=y
-+CONFIG_FB_OF=y
-+CONFIG_FB_MATROX=y
-+CONFIG_FB_MATROX_MILLENIUM=y
-+CONFIG_FB_MATROX_MYSTIQUE=y
-+CONFIG_FB_MATROX_G=y
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+# CONFIG_LCD_CLASS_DEVICE is not set
-+# CONFIG_BACKLIGHT_GENERIC is not set
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_LOGO=y
-+CONFIG_USB_HIDDEV=y
-+CONFIG_USB=y
-+CONFIG_USB_MON=y
-+CONFIG_USB_XHCI_HCD=y
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_EHCI_HCD_PPC_OF is not set
-+CONFIG_USB_OHCI_HCD=y
-+CONFIG_USB_STORAGE=y
-+CONFIG_VIRT_DRIVERS=y
-+CONFIG_VIRTIO_PCI=y
-+# CONFIG_IOMMU_SUPPORT is not set
-+CONFIG_EXT4_FS=y
-+CONFIG_EXT4_FS_POSIX_ACL=y
-+CONFIG_EXT4_FS_SECURITY=y
-+CONFIG_XFS_FS=y
-+CONFIG_XFS_POSIX_ACL=y
-+CONFIG_BTRFS_FS=y
-+CONFIG_BTRFS_FS_POSIX_ACL=y
-+CONFIG_AUTOFS4_FS=y
-+CONFIG_ISO9660_FS=y
-+CONFIG_UDF_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_PROC_KCORE=y
-+CONFIG_TMPFS=y
-+CONFIG_TMPFS_POSIX_ACL=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3_ACL=y
-+CONFIG_NFS_V4=y
-+CONFIG_CIFS=y
-+# CONFIG_CIFS_DEBUG is not set
-+CONFIG_NLS_DEFAULT="utf8"
-+CONFIG_NLS_CODEPAGE_437=y
-+CONFIG_NLS_ASCII=y
-+CONFIG_NLS_ISO8859_1=y
-+CONFIG_NLS_UTF8=y
-+CONFIG_PRINTK_TIME=y
-+CONFIG_DEBUG_FS=y
-+CONFIG_MAGIC_SYSRQ=y
-+CONFIG_DEBUG_KERNEL=y
-+CONFIG_DEBUG_STACKOVERFLOW=y
-+CONFIG_LOCKUP_DETECTOR=y
-+CONFIG_SCHEDSTATS=y
-+# CONFIG_FTRACE is not set
-+CONFIG_XMON=y
-+CONFIG_XMON_DEFAULT=y
-+CONFIG_CRYPTO_ECHAINIV=y
-+# CONFIG_CRYPTO_HW is not set
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0002-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch b/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
similarity index 71%
rename from openpower/linux/linux-0002-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
rename to openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
index edfa9d2..98a6a9e 100644
--- a/openpower/linux/linux-0002-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
+++ b/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
@@ -1,7 +1,7 @@
-From fedf5abf0669ce6e812d4dd095e74ef65eec9058 Mon Sep 17 00:00:00 2001
+From 78b652c3a955cb9700abebff725a041cb805e193 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 02/15] xhci: Use xhci_pci_remove for xhci device shutdown
+Subject: [PATCH 1/5] 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>
@@ -10,10 +10,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index c47d3e480586..a7447462b663 100644
+index c62109091d12..6d5b32c298bc 100644
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -420,7 +420,7 @@ static struct pci_driver xhci_pci_driver = {
+@@ -426,7 +426,7 @@ static struct pci_driver xhci_pci_driver = {
  	.remove =	xhci_pci_remove,
  	/* suspend and resume implemented later */
  
@@ -23,5 +23,5 @@
  	.driver = {
  		.pm = &usb_hcd_pci_pm_ops
 -- 
-2.6.2
+2.7.0.rc3
 
diff --git a/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch b/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch
new file mode 100644
index 0000000..63ac296
--- /dev/null
+++ b/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch
@@ -0,0 +1,62 @@
+From 8afabdc0db0f80e45c9bfdeb3faadaa89d4dd775 Mon Sep 17 00:00:00 2001
+From: Joel Stanley <joel@jms.id.au>
+Date: Thu, 28 Jan 2016 13:07:06 +1030
+Subject: [PATCH 2/5] Revert "usb: xhci: stop everything on the first call to
+ xhci_stop"
+
+This reverts commit 8c24d6d7b09deee3036ddc4f2b81b53b28c8f877.
+
+With this patch, the driver stops everything at the first call to
+xhci_stop, which is always for the secondary HCD when executing the
+.remove handler. We instead want to only stop when the primray HCD is
+shutting down.
+
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/usb/host/xhci.c | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
+index 3f912705dcef..2cc689a3b549 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -665,6 +665,15 @@ int xhci_run(struct usb_hcd *hcd)
+ }
+ EXPORT_SYMBOL_GPL(xhci_run);
+ 
++static void xhci_only_stop_hcd(struct usb_hcd *hcd)
++{
++	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
++
++	spin_lock_irq(&xhci->lock);
++	xhci_halt(xhci);
++	spin_unlock_irq(&xhci->lock);
++}
++
+ /*
+  * Stop xHCI driver.
+  *
+@@ -679,14 +688,15 @@ void xhci_stop(struct usb_hcd *hcd)
+ 	u32 temp;
+ 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+ 
+-	if (xhci->xhc_state & XHCI_STATE_HALTED)
++	mutex_lock(&xhci->mutex);
++
++	if (!usb_hcd_is_primary_hcd(hcd)) {
++		xhci_only_stop_hcd(xhci->shared_hcd);
++		mutex_unlock(&xhci->mutex);
+ 		return;
++	}
+ 
+-	mutex_lock(&xhci->mutex);
+ 	spin_lock_irq(&xhci->lock);
+-	xhci->xhc_state |= XHCI_STATE_HALTED;
+-	xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
+-
+ 	/* Make sure the xHC is halted for a USB3 roothub
+ 	 * (xhci_stop() could be called as part of failed init).
+ 	 */
+-- 
+2.7.0.rc3
+
diff --git a/openpower/linux/linux-0003-powerpc-kexec-Reset-secondary-cpu-endianess-before-k.patch b/openpower/linux/linux-0003-powerpc-kexec-Reset-secondary-cpu-endianess-before-k.patch
deleted file mode 100644
index 78d6a8b..0000000
--- a/openpower/linux/linux-0003-powerpc-kexec-Reset-secondary-cpu-endianess-before-k.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From a0fa3be3772983f7b96cc4133542a0eac25f6ed9 Mon Sep 17 00:00:00 2001
-From: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
-Date: Mon, 29 Jun 2015 13:43:51 +1000
-Subject: [PATCH 03/15] powerpc/kexec: Reset secondary cpu endianess before
- kexec
-
-If the target kernel does not inlcude the FIXUP_ENDIAN check, coming
-from a different-endian kernel will cause the target kernel to panic.
-All ppc64 kernels can handle starting in big-endian mode, so return to
-big-endian before branching into the target kernel.
-
-This mainly affects pseries as secondaries on powernv are returned to
-OPAL.
-
-Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/kernel/misc_64.S | 13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
-index 4e314b90c75d..6e4168cf4698 100644
---- a/arch/powerpc/kernel/misc_64.S
-+++ b/arch/powerpc/kernel/misc_64.S
-@@ -475,9 +475,18 @@ _GLOBAL(kexec_wait)
- #ifdef CONFIG_KEXEC		/* use no memory without kexec */
- 	lwz	r4,0(r5)
- 	cmpwi	0,r4,0
--	bnea	0x60
-+	beq	99b
-+#ifdef CONFIG_PPC_BOOK3S_64
-+	li	r10,0x60
-+	mfmsr	r11
-+	clrrdi	r11,r11,1	/* Clear MSR_LE */
-+	mtsrr0	r10
-+	mtsrr1	r11
-+	rfid
-+#else
-+	ba	0x60
-+#endif
- #endif
--	b	99b
- 
- /* this can be in text because we won't change it until we are
-  * running in real anyways
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch
new file mode 100644
index 0000000..3ad6157
--- /dev/null
+++ b/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch
@@ -0,0 +1,42 @@
+From 82addbe4d27c12454572e1200f962cd5ee25523f Mon Sep 17 00:00:00 2001
+From: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
+Date: Mon, 10 Mar 2014 13:02:13 -0300
+Subject: [PATCH 3/5] 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
+HCD, like a keyboard.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/usb/host/xhci.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
+index 2cc689a3b549..aa6d1e0b4bea 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -670,7 +670,18 @@ static void xhci_only_stop_hcd(struct usb_hcd *hcd)
+ 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+ 
+ 	spin_lock_irq(&xhci->lock);
+-	xhci_halt(xhci);
++	/*
++	 * 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 HCD, like a keyboard.
++	 */
++	/*xhci_halt(xhci);*/
++
++	/* The shared_hcd is going to be deallocated shortly (the USB core only
++	 * calls this function when allocation fails in usb_add_hcd(), or
++	 * usb_remove_hcd() is called).  So we need to unset xHCI's pointer.
++	 */
++	xhci->shared_hcd = NULL;
+ 	spin_unlock_irq(&xhci->lock);
+ }
+ 
+-- 
+2.7.0.rc3
+
diff --git a/openpower/linux/linux-0004-powerpc-eeh-Fix-PE-location-code.patch b/openpower/linux/linux-0004-powerpc-eeh-Fix-PE-location-code.patch
new file mode 100644
index 0000000..155133c
--- /dev/null
+++ b/openpower/linux/linux-0004-powerpc-eeh-Fix-PE-location-code.patch
@@ -0,0 +1,75 @@
+From 3cbe4777b9d0640df25fa4eb41b15199f78f9e99 Mon Sep 17 00:00:00 2001
+From: Gavin Shan <gwshan@linux.vnet.ibm.com>
+Date: Thu, 28 Jan 2016 16:18:37 +1100
+Subject: [PATCH 4/5] powerpc/eeh: Fix PE location code
+
+In eeh_pe_loc_get(), the PE location code is retrieved from the
+"ibm,loc-code" property of the device node for the bridge of the
+PE's primary bus. It's not correct because the property indicates
+the parent PE's location code.
+
+This reads the correct PE location code from "ibm,io-base-loc-code"
+or "ibm,slot-location-code" property of PE parent bus's device node.
+
+Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
+Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ arch/powerpc/kernel/eeh_pe.c | 33 +++++++++++++++------------------
+ 1 file changed, 15 insertions(+), 18 deletions(-)
+
+diff --git a/arch/powerpc/kernel/eeh_pe.c b/arch/powerpc/kernel/eeh_pe.c
+index 8654cb166c19..ca9e5371930e 100644
+--- a/arch/powerpc/kernel/eeh_pe.c
++++ b/arch/powerpc/kernel/eeh_pe.c
+@@ -883,32 +883,29 @@ void eeh_pe_restore_bars(struct eeh_pe *pe)
+ const char *eeh_pe_loc_get(struct eeh_pe *pe)
+ {
+ 	struct pci_bus *bus = eeh_pe_bus_get(pe);
+-	struct device_node *dn = pci_bus_to_OF_node(bus);
++	struct device_node *dn;
+ 	const char *loc = NULL;
+ 
+-	if (!dn)
+-		goto out;
++	while (bus) {
++		dn = pci_bus_to_OF_node(bus);
++		if (!dn) {
++			bus = bus->parent;
++			continue;
++		}
+ 
+-	/* PHB PE or root PE ? */
+-	if (pci_is_root_bus(bus)) {
+-		loc = of_get_property(dn, "ibm,loc-code", NULL);
+-		if (!loc)
++		if (pci_is_root_bus(bus))
+ 			loc = of_get_property(dn, "ibm,io-base-loc-code", NULL);
++		else
++			loc = of_get_property(dn, "ibm,slot-location-code",
++					      NULL);
++
+ 		if (loc)
+-			goto out;
++			return loc;
+ 
+-		/* Check the root port */
+-		dn = dn->child;
+-		if (!dn)
+-			goto out;
++		bus = bus->parent;
+ 	}
+ 
+-	loc = of_get_property(dn, "ibm,loc-code", NULL);
+-	if (!loc)
+-		loc = of_get_property(dn, "ibm,slot-location-code", NULL);
+-
+-out:
+-	return loc ? loc : "N/A";
++	return "N/A";
+ }
+ 
+ /**
+-- 
+2.7.0.rc3
+
diff --git a/openpower/linux/linux-0004-powerpc-kexec-Reset-HILE-before-kexec_sequence.patch b/openpower/linux/linux-0004-powerpc-kexec-Reset-HILE-before-kexec_sequence.patch
deleted file mode 100644
index 89e25f2..0000000
--- a/openpower/linux/linux-0004-powerpc-kexec-Reset-HILE-before-kexec_sequence.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3ac7b2ce48a25617a838b58dce149244c5f216ef Mon Sep 17 00:00:00 2001
-From: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
-Date: Wed, 22 Jul 2015 11:09:15 +1000
-Subject: [PATCH 04/15] powerpc/kexec: Reset HILE before kexec_sequence
-
-On powernv secondary cpus are returned to OPAL, and will then enter
-the target kernel in big-endian. However if it is set the HILE bit
-will persist, causing the first exception in the target kernel to be
-delivered in litte-endian regardless of the current endianess.
-
-If running on top of OPAL make sure the HILE bit is reset once we've
-finished waiting for all of the secondaries to be returned to OPAL.
-
-Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/platforms/powernv/setup.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
-index 53737e019ae3..59076db194c0 100644
---- a/arch/powerpc/platforms/powernv/setup.c
-+++ b/arch/powerpc/platforms/powernv/setup.c
-@@ -243,6 +243,13 @@ static void pnv_kexec_cpu_down(int crash_shutdown, int secondary)
- 	} else {
- 		/* Primary waits for the secondaries to have reached OPAL */
- 		pnv_kexec_wait_secondaries_down();
-+
-+		/*
-+		 * We might be running as little-endian - now that interrupts
-+		 * are disabled, reset the HILE bit to big-endian so we don't
-+		 * take interrupts in the wrong endian later
-+		 */
-+		opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE);
- 	}
- }
- #endif /* CONFIG_KEXEC */
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0005-Release-4.4.0-openpower2.patch b/openpower/linux/linux-0005-Release-4.4.0-openpower2.patch
new file mode 100644
index 0000000..7e3759a
--- /dev/null
+++ b/openpower/linux/linux-0005-Release-4.4.0-openpower2.patch
@@ -0,0 +1,26 @@
+From dd90dddefe4b9fc7996ce37c18bd88210ebbe898 Mon Sep 17 00:00:00 2001
+From: Joel Stanley <joel@jms.id.au>
+Date: Tue, 20 Oct 2015 15:01:06 +1030
+Subject: [PATCH 5/5] Release 4.4.0-openpower2
+
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 70dea02f1346..93c4379da8ed 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ VERSION = 4
+ PATCHLEVEL = 4
+ SUBLEVEL = 0
+-EXTRAVERSION =
++EXTRAVERSION = -openpower2
+ NAME = Blurry Fish Butt
+ 
+ # *DOCUMENTATION*
+-- 
+2.7.0.rc3
+
diff --git a/openpower/linux/linux-0005-Revert-powerpc-Reject-binutils-2.24-when-building-li.patch b/openpower/linux/linux-0005-Revert-powerpc-Reject-binutils-2.24-when-building-li.patch
deleted file mode 100644
index c0d298b..0000000
--- a/openpower/linux/linux-0005-Revert-powerpc-Reject-binutils-2.24-when-building-li.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 8ff76b10e7d83cb4ac2ec13e792644493613a2c2 Mon Sep 17 00:00:00 2001
-From: Joel Stanley <joel@jms.id.au>
-Date: Fri, 11 Sep 2015 14:43:18 +0930
-Subject: [PATCH 05/15] Revert "powerpc: Reject binutils 2.24 when building
- little endian"
-
-This reverts commit 60e065f70bdb0b0e916389024922ad40f3270c96.
-
-We know better than Michael does; we carry a patch that fixes our
-binutils.
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/Makefile | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
-index 05f464eb6952..b2ae85dca1f7 100644
---- a/arch/powerpc/Makefile
-+++ b/arch/powerpc/Makefile
-@@ -358,14 +358,6 @@ checkbin:
- 		echo 'disable kernel modules' ; \
- 		false ; \
- 	fi
--	@if test "x${CONFIG_CPU_LITTLE_ENDIAN}" = "xy" \
--	    && $(LD) --version | head -1 | grep ' 2\.24$$' >/dev/null ; then \
--		echo -n '*** binutils 2.24 miscompiles weak symbols ' ; \
--		echo 'in some circumstances.' ; \
--		echo -n '*** Please use a different binutils version.' ; \
--		false ; \
--	fi
--
- 
- CLEAN_FILES += $(TOUT)
- 
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0006-aacraid-Fix-for-LD-name-and-UID-not-exposed-to-OS.patch b/openpower/linux/linux-0006-aacraid-Fix-for-LD-name-and-UID-not-exposed-to-OS.patch
deleted file mode 100644
index 712e090..0000000
--- a/openpower/linux/linux-0006-aacraid-Fix-for-LD-name-and-UID-not-exposed-to-OS.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5c0ce63abf423b06ad4a9dd0340dc691cf6af7ea Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:33 -0400
-Subject: [PATCH 06/15] aacraid: Fix for LD name and UID not exposed to OS
-
-Driver sends the right size of the response buffer.
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aachba.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
-index 9b3dd6ef6a0b..fe59b0084575 100644
---- a/drivers/scsi/aacraid/aachba.c
-+++ b/drivers/scsi/aacraid/aachba.c
-@@ -570,7 +570,7 @@ static int aac_get_container_name(struct scsi_cmnd * scsicmd)
- 
- 	status = aac_fib_send(ContainerCommand,
- 		  cmd_fibcontext,
--		  sizeof (struct aac_get_name),
-+		  sizeof(struct aac_get_name_resp),
- 		  FsaNormal,
- 		  0, 1,
- 		  (fib_callback)get_container_name_callback,
-@@ -1052,7 +1052,7 @@ static int aac_get_container_serial(struct scsi_cmnd * scsicmd)
- 
- 	status = aac_fib_send(ContainerCommand,
- 		  cmd_fibcontext,
--		  sizeof (struct aac_get_serial),
-+		  sizeof(struct aac_get_serial_resp),
- 		  FsaNormal,
- 		  0, 1,
- 		  (fib_callback) get_container_serial_callback,
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0007-aacraid-Add-Power-Management-support.patch b/openpower/linux/linux-0007-aacraid-Add-Power-Management-support.patch
deleted file mode 100644
index c26a5ba..0000000
--- a/openpower/linux/linux-0007-aacraid-Add-Power-Management-support.patch
+++ /dev/null
@@ -1,441 +0,0 @@
-From fd4cc1e0ec6ca370ece67af9e6a3cde5cb9becb6 Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:34 -0400
-Subject: [PATCH 07/15] aacraid: Add Power Management support
-
-* .suspend() and .resume() routines implemented in the driver
-* aac_release_resources() initiates firmware shutdown
-* aac_acquire_resources re-initializes the host interface
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aacraid.h  |   5 ++
- drivers/scsi/aacraid/comminit.c | 154 ++++++++++++++++++++--------------------
- drivers/scsi/aacraid/linit.c    | 147 ++++++++++++++++++++++++++++++++++++++
- drivers/scsi/aacraid/rx.c       |   1 +
- drivers/scsi/aacraid/sa.c       |   1 +
- drivers/scsi/aacraid/src.c      |   2 +
- 6 files changed, 232 insertions(+), 78 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
-index 40fe65c91b41..62b099940345 100644
---- a/drivers/scsi/aacraid/aacraid.h
-+++ b/drivers/scsi/aacraid/aacraid.h
-@@ -547,6 +547,7 @@ struct adapter_ops
- 	int  (*adapter_sync_cmd)(struct aac_dev *dev, u32 command, u32 p1, u32 p2, u32 p3, u32 p4, u32 p5, u32 p6, u32 *status, u32 *r1, u32 *r2, u32 *r3, u32 *r4);
- 	int  (*adapter_check_health)(struct aac_dev *dev);
- 	int  (*adapter_restart)(struct aac_dev *dev, int bled);
-+	void (*adapter_start)(struct aac_dev *dev);
- 	/* Transport operations */
- 	int  (*adapter_ioremap)(struct aac_dev * dev, u32 size);
- 	irq_handler_t adapter_intr;
-@@ -1247,6 +1248,9 @@ struct aac_dev
- #define aac_adapter_restart(dev,bled) \
- 	(dev)->a_ops.adapter_restart(dev,bled)
- 
-+#define aac_adapter_start(dev) \
-+	((dev)->a_ops.adapter_start(dev))
-+
- #define aac_adapter_ioremap(dev, size) \
- 	(dev)->a_ops.adapter_ioremap(dev, size)
- 
-@@ -2127,6 +2131,7 @@ int aac_sa_init(struct aac_dev *dev);
- int aac_src_init(struct aac_dev *dev);
- int aac_srcv_init(struct aac_dev *dev);
- int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw_fib, int wait, struct fib * fibptr, unsigned long *nonotify);
-+void aac_define_int_mode(struct aac_dev *dev);
- unsigned int aac_response_normal(struct aac_queue * q);
- unsigned int aac_command_normal(struct aac_queue * q);
- unsigned int aac_intr_normal(struct aac_dev *dev, u32 Index,
-diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
-index 45db84ad322f..45a0a044dfdb 100644
---- a/drivers/scsi/aacraid/comminit.c
-+++ b/drivers/scsi/aacraid/comminit.c
-@@ -43,8 +43,6 @@
- 
- #include "aacraid.h"
- 
--static void aac_define_int_mode(struct aac_dev *dev);
--
- struct aac_common aac_config = {
- 	.irq_mod = 1
- };
-@@ -338,6 +336,82 @@ static int aac_comm_init(struct aac_dev * dev)
- 	return 0;
- }
- 
-+void aac_define_int_mode(struct aac_dev *dev)
-+{
-+	int i, msi_count;
-+
-+	msi_count = i = 0;
-+	/* max. vectors from GET_COMM_PREFERRED_SETTINGS */
-+	if (dev->max_msix == 0 ||
-+	    dev->pdev->device == PMC_DEVICE_S6 ||
-+	    dev->sync_mode) {
-+		dev->max_msix = 1;
-+		dev->vector_cap =
-+			dev->scsi_host_ptr->can_queue +
-+			AAC_NUM_MGT_FIB;
-+		return;
-+	}
-+
-+	/* Don't bother allocating more MSI-X vectors than cpus */
-+	msi_count = min(dev->max_msix,
-+		(unsigned int)num_online_cpus());
-+
-+	dev->max_msix = msi_count;
-+
-+	if (msi_count > AAC_MAX_MSIX)
-+		msi_count = AAC_MAX_MSIX;
-+
-+	for (i = 0; i < msi_count; i++)
-+		dev->msixentry[i].entry = i;
-+
-+	if (msi_count > 1 &&
-+	    pci_find_capability(dev->pdev, PCI_CAP_ID_MSIX)) {
-+		i = pci_enable_msix(dev->pdev,
-+				    dev->msixentry,
-+				    msi_count);
-+		 /* Check how many MSIX vectors are allocated */
-+		if (i >= 0) {
-+			dev->msi_enabled = 1;
-+			if (i) {
-+				msi_count = i;
-+				if (pci_enable_msix(dev->pdev,
-+				    dev->msixentry,
-+				    msi_count)) {
-+					dev->msi_enabled = 0;
-+					printk(KERN_ERR "%s%d: MSIX not supported!! Will try MSI 0x%x.\n",
-+							dev->name, dev->id, i);
-+				}
-+			}
-+		} else {
-+			dev->msi_enabled = 0;
-+			printk(KERN_ERR "%s%d: MSIX not supported!! Will try MSI 0x%x.\n",
-+					dev->name, dev->id, i);
-+		}
-+	}
-+
-+	if (!dev->msi_enabled) {
-+		msi_count = 1;
-+		i = pci_enable_msi(dev->pdev);
-+
-+		if (!i) {
-+			dev->msi_enabled = 1;
-+			dev->msi = 1;
-+		} else {
-+			printk(KERN_ERR "%s%d: MSI not supported!! Will try INTx 0x%x.\n",
-+					dev->name, dev->id, i);
-+		}
-+	}
-+
-+	if (!dev->msi_enabled)
-+		dev->max_msix = msi_count = 1;
-+	else {
-+		if (dev->max_msix > msi_count)
-+			dev->max_msix = msi_count;
-+	}
-+	dev->vector_cap =
-+		(dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB) /
-+		msi_count;
-+}
- struct aac_dev *aac_init_adapter(struct aac_dev *dev)
- {
- 	u32 status[5];
-@@ -508,79 +582,3 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
- 	return dev;
- }
- 
--static void aac_define_int_mode(struct aac_dev *dev)
--{
--
--	int i, msi_count;
--
--	msi_count = i = 0;
--	/* max. vectors from GET_COMM_PREFERRED_SETTINGS */
--	if (dev->max_msix == 0 ||
--	    dev->pdev->device == PMC_DEVICE_S6 ||
--	    dev->sync_mode) {
--		dev->max_msix = 1;
--		dev->vector_cap =
--			dev->scsi_host_ptr->can_queue +
--			AAC_NUM_MGT_FIB;
--		return;
--	}
--
--	msi_count = min(dev->max_msix,
--		(unsigned int)num_online_cpus());
--
--	dev->max_msix = msi_count;
--
--	if (msi_count > AAC_MAX_MSIX)
--		msi_count = AAC_MAX_MSIX;
--
--	for (i = 0; i < msi_count; i++)
--		dev->msixentry[i].entry = i;
--
--	if (msi_count > 1 &&
--	    pci_find_capability(dev->pdev, PCI_CAP_ID_MSIX)) {
--		i = pci_enable_msix(dev->pdev,
--				    dev->msixentry,
--				    msi_count);
--		 /* Check how many MSIX vectors are allocated */
--		if (i >= 0) {
--			dev->msi_enabled = 1;
--			if (i) {
--				msi_count = i;
--				if (pci_enable_msix(dev->pdev,
--				    dev->msixentry,
--				    msi_count)) {
--					dev->msi_enabled = 0;
--					printk(KERN_ERR "%s%d: MSIX not supported!! Will try MSI 0x%x.\n",
--							dev->name, dev->id, i);
--				}
--			}
--		} else {
--			dev->msi_enabled = 0;
--			printk(KERN_ERR "%s%d: MSIX not supported!! Will try MSI 0x%x.\n",
--					dev->name, dev->id, i);
--		}
--	}
--
--	if (!dev->msi_enabled) {
--		msi_count = 1;
--		i = pci_enable_msi(dev->pdev);
--
--		if (!i) {
--			dev->msi_enabled = 1;
--			dev->msi = 1;
--		} else {
--			printk(KERN_ERR "%s%d: MSI not supported!! Will try INTx 0x%x.\n",
--					dev->name, dev->id, i);
--		}
--	}
--
--	if (!dev->msi_enabled)
--		dev->max_msix = msi_count = 1;
--	else {
--		if (dev->max_msix > msi_count)
--			dev->max_msix = msi_count;
--	}
--	dev->vector_cap =
--		(dev->scsi_host_ptr->can_queue + AAC_NUM_MGT_FIB) /
--		msi_count;
--}
-diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
-index 9eec02733c86..37375cf7d126 100644
---- a/drivers/scsi/aacraid/linit.c
-+++ b/drivers/scsi/aacraid/linit.c
-@@ -1317,6 +1317,149 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
- 	return error;
- }
- 
-+#if (defined(CONFIG_PM))
-+void aac_release_resources(struct aac_dev *aac)
-+{
-+	int i;
-+
-+	aac_adapter_disable_int(aac);
-+	if (aac->pdev->device == PMC_DEVICE_S6 ||
-+	    aac->pdev->device == PMC_DEVICE_S7 ||
-+	    aac->pdev->device == PMC_DEVICE_S8 ||
-+	    aac->pdev->device == PMC_DEVICE_S9) {
-+		if (aac->max_msix > 1) {
-+			for (i = 0; i < aac->max_msix; i++)
-+				free_irq(aac->msixentry[i].vector,
-+					&(aac->aac_msix[i]));
-+		} else {
-+			free_irq(aac->pdev->irq, &(aac->aac_msix[0]));
-+		}
-+	} else {
-+		free_irq(aac->pdev->irq, aac);
-+	}
-+	if (aac->msi)
-+		pci_disable_msi(aac->pdev);
-+	else if (aac->max_msix > 1)
-+		pci_disable_msix(aac->pdev);
-+
-+}
-+
-+static int aac_acquire_resources(struct aac_dev *dev)
-+{
-+	int i, j;
-+	int instance = dev->id;
-+	const char *name = dev->name;
-+	unsigned long status;
-+	/*
-+	 *	First clear out all interrupts.  Then enable the one's that we
-+	 *	can handle.
-+	 */
-+	while (!((status = src_readl(dev, MUnit.OMR)) & KERNEL_UP_AND_RUNNING)
-+		|| status == 0xffffffff)
-+			msleep(20);
-+
-+	aac_adapter_disable_int(dev);
-+	aac_adapter_enable_int(dev);
-+
-+
-+	if ((dev->pdev->device == PMC_DEVICE_S7 ||
-+	     dev->pdev->device == PMC_DEVICE_S8 ||
-+	     dev->pdev->device == PMC_DEVICE_S9))
-+		aac_define_int_mode(dev);
-+
-+	if (dev->msi_enabled)
-+		aac_src_access_devreg(dev, AAC_ENABLE_MSIX);
-+
-+	if (!dev->sync_mode && dev->msi_enabled && dev->max_msix > 1) {
-+		for (i = 0; i < dev->max_msix; i++) {
-+			dev->aac_msix[i].vector_no = i;
-+			dev->aac_msix[i].dev = dev;
-+
-+			if (request_irq(dev->msixentry[i].vector,
-+					dev->a_ops.adapter_intr,
-+					0, "aacraid", &(dev->aac_msix[i]))) {
-+				printk(KERN_ERR "%s%d: Failed to register IRQ for vector %d.\n",
-+						name, instance, i);
-+				for (j = 0 ; j < i ; j++)
-+					free_irq(dev->msixentry[j].vector,
-+						 &(dev->aac_msix[j]));
-+				pci_disable_msix(dev->pdev);
-+				goto error_iounmap;
-+			}
-+		}
-+	} else {
-+		dev->aac_msix[0].vector_no = 0;
-+		dev->aac_msix[0].dev = dev;
-+
-+		if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
-+			IRQF_SHARED, "aacraid",
-+			&(dev->aac_msix[0])) < 0) {
-+			if (dev->msi)
-+				pci_disable_msi(dev->pdev);
-+			printk(KERN_ERR "%s%d: Interrupt unavailable.\n",
-+					name, instance);
-+			goto error_iounmap;
-+		}
-+	}
-+
-+	aac_adapter_enable_int(dev);
-+
-+	if (!dev->sync_mode)
-+		aac_adapter_start(dev);
-+	return 0;
-+
-+error_iounmap:
-+	return -1;
-+
-+}
-+static int aac_suspend(struct pci_dev *pdev, pm_message_t state)
-+{
-+
-+	struct Scsi_Host *shost = pci_get_drvdata(pdev);
-+	struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
-+
-+	scsi_block_requests(shost);
-+	aac_send_shutdown(aac);
-+
-+	aac_release_resources(aac);
-+
-+	pci_set_drvdata(pdev, shost);
-+	pci_save_state(pdev);
-+	pci_disable_device(pdev);
-+	pci_set_power_state(pdev, pci_choose_state(pdev, state));
-+
-+	return 0;
-+}
-+
-+static int aac_resume(struct pci_dev *pdev)
-+{
-+	struct Scsi_Host *shost = pci_get_drvdata(pdev);
-+	struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
-+	int r;
-+
-+	pci_set_power_state(pdev, PCI_D0);
-+	pci_enable_wake(pdev, PCI_D0, 0);
-+	pci_restore_state(pdev);
-+	r = pci_enable_device(pdev);
-+
-+	if (r)
-+		goto fail_device;
-+
-+	pci_set_master(pdev);
-+	if (aac_acquire_resources(aac))
-+		goto fail_device;
-+	scsi_unblock_requests(shost);
-+
-+	return 0;
-+
-+fail_device:
-+	printk(KERN_INFO "%s%d: resume failed.\n", aac->name, aac->id);
-+	scsi_host_put(shost);
-+	pci_disable_device(pdev);
-+	return -ENODEV;
-+}
-+#endif
-+
- static void aac_shutdown(struct pci_dev *dev)
- {
- 	struct Scsi_Host *shost = pci_get_drvdata(dev);
-@@ -1356,6 +1499,10 @@ static struct pci_driver aac_pci_driver = {
- 	.id_table	= aac_pci_tbl,
- 	.probe		= aac_probe_one,
- 	.remove		= aac_remove_one,
-+#if (defined(CONFIG_PM))
-+	.suspend	= aac_suspend,
-+	.resume		= aac_resume,
-+#endif
- 	.shutdown	= aac_shutdown,
- };
- 
-diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
-index 9570612b80ce..ac1638069335 100644
---- a/drivers/scsi/aacraid/rx.c
-+++ b/drivers/scsi/aacraid/rx.c
-@@ -623,6 +623,7 @@ int _aac_rx_init(struct aac_dev *dev)
- 	dev->a_ops.adapter_sync_cmd = rx_sync_cmd;
- 	dev->a_ops.adapter_check_health = aac_rx_check_health;
- 	dev->a_ops.adapter_restart = aac_rx_restart_adapter;
-+	dev->a_ops.adapter_start = aac_rx_start_adapter;
- 
- 	/*
- 	 *	First clear out all interrupts.  Then enable the one's that we
-diff --git a/drivers/scsi/aacraid/sa.c b/drivers/scsi/aacraid/sa.c
-index e66477c98240..869aea23c041 100644
---- a/drivers/scsi/aacraid/sa.c
-+++ b/drivers/scsi/aacraid/sa.c
-@@ -372,6 +372,7 @@ int aac_sa_init(struct aac_dev *dev)
- 	dev->a_ops.adapter_sync_cmd = sa_sync_cmd;
- 	dev->a_ops.adapter_check_health = aac_sa_check_health;
- 	dev->a_ops.adapter_restart = aac_sa_restart_adapter;
-+	dev->a_ops.adapter_start = aac_sa_start_adapter;
- 	dev->a_ops.adapter_intr = aac_sa_intr;
- 	dev->a_ops.adapter_deliver = aac_rx_deliver_producer;
- 	dev->a_ops.adapter_ioremap = aac_sa_ioremap;
-diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c
-index e63cf9f22f36..b147341ac24d 100644
---- a/drivers/scsi/aacraid/src.c
-+++ b/drivers/scsi/aacraid/src.c
-@@ -726,6 +726,7 @@ int aac_src_init(struct aac_dev *dev)
- 	dev->a_ops.adapter_sync_cmd = src_sync_cmd;
- 	dev->a_ops.adapter_check_health = aac_src_check_health;
- 	dev->a_ops.adapter_restart = aac_src_restart_adapter;
-+	dev->a_ops.adapter_start = aac_src_start_adapter;
- 
- 	/*
- 	 *	First clear out all interrupts.  Then enable the one's that we
-@@ -892,6 +893,7 @@ int aac_srcv_init(struct aac_dev *dev)
- 	dev->a_ops.adapter_sync_cmd = src_sync_cmd;
- 	dev->a_ops.adapter_check_health = aac_src_check_health;
- 	dev->a_ops.adapter_restart = aac_src_restart_adapter;
-+	dev->a_ops.adapter_start = aac_src_start_adapter;
- 
- 	/*
- 	 *	First clear out all interrupts.  Then enable the one's that we
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0008-aacraid-Change-interrupt-mode-to-MSI-for-Series-6.patch b/openpower/linux/linux-0008-aacraid-Change-interrupt-mode-to-MSI-for-Series-6.patch
deleted file mode 100644
index 872fdc7..0000000
--- a/openpower/linux/linux-0008-aacraid-Change-interrupt-mode-to-MSI-for-Series-6.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 3b9ff8cca5a7d0745311e06c71286090ffd17392 Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:35 -0400
-Subject: [PATCH 08/15] aacraid: Change interrupt mode to MSI for Series 6
-
-This change always sets MSI interrupt mode for series-6 controller.
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aachba.c | 2 +-
- drivers/scsi/aacraid/src.c    | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
-index fe59b0084575..05f2a0295f4d 100644
---- a/drivers/scsi/aacraid/aachba.c
-+++ b/drivers/scsi/aacraid/aachba.c
-@@ -259,7 +259,7 @@ MODULE_PARM_DESC(commit, "Control whether a COMMIT_CONFIG is issued to the"
- 	" 0=off, 1=on");
- module_param_named(msi, aac_msi, int, S_IRUGO|S_IWUSR);
- MODULE_PARM_DESC(msi, "IRQ handling."
--	" 0=PIC(default), 1=MSI, 2=MSI-X(unsupported, uses MSI)");
-+	" 0=PIC(default), 1=MSI, 2=MSI-X)");
- module_param(startup_timeout, int, S_IRUGO|S_IWUSR);
- MODULE_PARM_DESC(startup_timeout, "The duration of time in seconds to wait for"
- 	" adapter to have it's kernel up and\n"
-diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c
-index b147341ac24d..eb07b3d4ed38 100644
---- a/drivers/scsi/aacraid/src.c
-+++ b/drivers/scsi/aacraid/src.c
-@@ -742,7 +742,7 @@ int aac_src_init(struct aac_dev *dev)
- 	if (dev->comm_interface != AAC_COMM_MESSAGE_TYPE1)
- 		goto error_iounmap;
- 
--	dev->msi = aac_msi && !pci_enable_msi(dev->pdev);
-+	dev->msi = !pci_enable_msi(dev->pdev);
- 
- 	dev->aac_msix[0].vector_no = 0;
- 	dev->aac_msix[0].dev = dev;
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0009-aacraid-Tune-response-path-if-IsFastPath-bit-set.patch b/openpower/linux/linux-0009-aacraid-Tune-response-path-if-IsFastPath-bit-set.patch
deleted file mode 100644
index 81d0dcf..0000000
--- a/openpower/linux/linux-0009-aacraid-Tune-response-path-if-IsFastPath-bit-set.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-From abcbb5d7d8e9e6144487bfcc22d14efe3f76de40 Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:37 -0400
-Subject: [PATCH 09/15] aacraid: Tune response path if IsFastPath bit set
-
-If 'IsFastPath' bit is set, then response path assumes no error and skips error check.
-
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aachba.c | 259 ++++++++++++++++++++++--------------------
- 1 file changed, 137 insertions(+), 122 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
-index 05f2a0295f4d..e4c243748a97 100644
---- a/drivers/scsi/aacraid/aachba.c
-+++ b/drivers/scsi/aacraid/aachba.c
-@@ -2977,11 +2977,16 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
- 		return;
- 
- 	BUG_ON(fibptr == NULL);
--
- 	dev = fibptr->dev;
- 
--	srbreply = (struct aac_srb_reply *) fib_data(fibptr);
-+	scsi_dma_unmap(scsicmd);
- 
-+	/* expose physical device if expose_physicald flag is on */
-+	if (scsicmd->cmnd[0] == INQUIRY && !(scsicmd->cmnd[1] & 0x01)
-+	  && expose_physicals > 0)
-+		aac_expose_phy_device(scsicmd);
-+
-+	srbreply = (struct aac_srb_reply *) fib_data(fibptr);
- 	scsicmd->sense_buffer[0] = '\0';  /* Initialize sense valid flag to false */
- 
- 	if (fibptr->flags & FIB_CONTEXT_FLAG_FASTRESP) {
-@@ -2994,147 +2999,157 @@ static void aac_srb_callback(void *context, struct fib * fibptr)
- 		 */
- 		scsi_set_resid(scsicmd, scsi_bufflen(scsicmd)
- 				   - le32_to_cpu(srbreply->data_xfer_length));
--	}
--
--	scsi_dma_unmap(scsicmd);
--
--	/* expose physical device if expose_physicald flag is on */
--	if (scsicmd->cmnd[0] == INQUIRY && !(scsicmd->cmnd[1] & 0x01)
--	  && expose_physicals > 0)
--		aac_expose_phy_device(scsicmd);
-+		/*
-+		 * First check the fib status
-+		 */
- 
--	/*
--	 * First check the fib status
--	 */
-+		if (le32_to_cpu(srbreply->status) != ST_OK) {
-+			int len;
- 
--	if (le32_to_cpu(srbreply->status) != ST_OK){
--		int len;
--		printk(KERN_WARNING "aac_srb_callback: srb failed, status = %d\n", le32_to_cpu(srbreply->status));
--		len = min_t(u32, le32_to_cpu(srbreply->sense_data_size),
--			    SCSI_SENSE_BUFFERSIZE);
--		scsicmd->result = DID_ERROR << 16 | COMMAND_COMPLETE << 8 | SAM_STAT_CHECK_CONDITION;
--		memcpy(scsicmd->sense_buffer, srbreply->sense_data, len);
--	}
-+			printk(KERN_WARNING "aac_srb_callback: srb failed, status = %d\n", le32_to_cpu(srbreply->status));
-+			len = min_t(u32, le32_to_cpu(srbreply->sense_data_size),
-+				    SCSI_SENSE_BUFFERSIZE);
-+			scsicmd->result = DID_ERROR << 16
-+						| COMMAND_COMPLETE << 8
-+						| SAM_STAT_CHECK_CONDITION;
-+			memcpy(scsicmd->sense_buffer,
-+					srbreply->sense_data, len);
-+		}
- 
--	/*
--	 * Next check the srb status
--	 */
--	switch( (le32_to_cpu(srbreply->srb_status))&0x3f){
--	case SRB_STATUS_ERROR_RECOVERY:
--	case SRB_STATUS_PENDING:
--	case SRB_STATUS_SUCCESS:
--		scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8;
--		break;
--	case SRB_STATUS_DATA_OVERRUN:
--		switch(scsicmd->cmnd[0]){
--		case  READ_6:
--		case  WRITE_6:
--		case  READ_10:
--		case  WRITE_10:
--		case  READ_12:
--		case  WRITE_12:
--		case  READ_16:
--		case  WRITE_16:
--			if (le32_to_cpu(srbreply->data_xfer_length) < scsicmd->underflow) {
--				printk(KERN_WARNING"aacraid: SCSI CMD underflow\n");
--			} else {
--				printk(KERN_WARNING"aacraid: SCSI CMD Data Overrun\n");
-+		/*
-+		 * Next check the srb status
-+		 */
-+		switch ((le32_to_cpu(srbreply->srb_status))&0x3f) {
-+		case SRB_STATUS_ERROR_RECOVERY:
-+		case SRB_STATUS_PENDING:
-+		case SRB_STATUS_SUCCESS:
-+			scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8;
-+			break;
-+		case SRB_STATUS_DATA_OVERRUN:
-+			switch (scsicmd->cmnd[0]) {
-+			case  READ_6:
-+			case  WRITE_6:
-+			case  READ_10:
-+			case  WRITE_10:
-+			case  READ_12:
-+			case  WRITE_12:
-+			case  READ_16:
-+			case  WRITE_16:
-+				if (le32_to_cpu(srbreply->data_xfer_length)
-+							< scsicmd->underflow)
-+					printk(KERN_WARNING"aacraid: SCSI CMD underflow\n");
-+				else
-+					printk(KERN_WARNING"aacraid: SCSI CMD Data Overrun\n");
-+				scsicmd->result = DID_ERROR << 16
-+							| COMMAND_COMPLETE << 8;
-+				break;
-+			case INQUIRY: {
-+				scsicmd->result = DID_OK << 16
-+							| COMMAND_COMPLETE << 8;
-+				break;
-+			}
-+			default:
-+				scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8;
-+				break;
- 			}
--			scsicmd->result = DID_ERROR << 16 | COMMAND_COMPLETE << 8;
- 			break;
--		case INQUIRY: {
--			scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8;
-+		case SRB_STATUS_ABORTED:
-+			scsicmd->result = DID_ABORT << 16 | ABORT << 8;
- 			break;
--		}
--		default:
--			scsicmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8;
-+		case SRB_STATUS_ABORT_FAILED:
-+			/*
-+			 * Not sure about this one - but assuming the
-+			 * hba was trying to abort for some reason
-+			 */
-+			scsicmd->result = DID_ERROR << 16 | ABORT << 8;
-+			break;
-+		case SRB_STATUS_PARITY_ERROR:
-+			scsicmd->result = DID_PARITY << 16
-+						| MSG_PARITY_ERROR << 8;
-+			break;
-+		case SRB_STATUS_NO_DEVICE:
-+		case SRB_STATUS_INVALID_PATH_ID:
-+		case SRB_STATUS_INVALID_TARGET_ID:
-+		case SRB_STATUS_INVALID_LUN:
-+		case SRB_STATUS_SELECTION_TIMEOUT:
-+			scsicmd->result = DID_NO_CONNECT << 16
-+						| COMMAND_COMPLETE << 8;
- 			break;
--		}
--		break;
--	case SRB_STATUS_ABORTED:
--		scsicmd->result = DID_ABORT << 16 | ABORT << 8;
--		break;
--	case SRB_STATUS_ABORT_FAILED:
--		// Not sure about this one - but assuming the hba was trying to abort for some reason
--		scsicmd->result = DID_ERROR << 16 | ABORT << 8;
--		break;
--	case SRB_STATUS_PARITY_ERROR:
--		scsicmd->result = DID_PARITY << 16 | MSG_PARITY_ERROR << 8;
--		break;
--	case SRB_STATUS_NO_DEVICE:
--	case SRB_STATUS_INVALID_PATH_ID:
--	case SRB_STATUS_INVALID_TARGET_ID:
--	case SRB_STATUS_INVALID_LUN:
--	case SRB_STATUS_SELECTION_TIMEOUT:
--		scsicmd->result = DID_NO_CONNECT << 16 | COMMAND_COMPLETE << 8;
--		break;
- 
--	case SRB_STATUS_COMMAND_TIMEOUT:
--	case SRB_STATUS_TIMEOUT:
--		scsicmd->result = DID_TIME_OUT << 16 | COMMAND_COMPLETE << 8;
--		break;
-+		case SRB_STATUS_COMMAND_TIMEOUT:
-+		case SRB_STATUS_TIMEOUT:
-+			scsicmd->result = DID_TIME_OUT << 16
-+						| COMMAND_COMPLETE << 8;
-+			break;
- 
--	case SRB_STATUS_BUSY:
--		scsicmd->result = DID_BUS_BUSY << 16 | COMMAND_COMPLETE << 8;
--		break;
-+		case SRB_STATUS_BUSY:
-+			scsicmd->result = DID_BUS_BUSY << 16
-+						| COMMAND_COMPLETE << 8;
-+			break;
- 
--	case SRB_STATUS_BUS_RESET:
--		scsicmd->result = DID_RESET << 16 | COMMAND_COMPLETE << 8;
--		break;
-+		case SRB_STATUS_BUS_RESET:
-+			scsicmd->result = DID_RESET << 16
-+						| COMMAND_COMPLETE << 8;
-+			break;
- 
--	case SRB_STATUS_MESSAGE_REJECTED:
--		scsicmd->result = DID_ERROR << 16 | MESSAGE_REJECT << 8;
--		break;
--	case SRB_STATUS_REQUEST_FLUSHED:
--	case SRB_STATUS_ERROR:
--	case SRB_STATUS_INVALID_REQUEST:
--	case SRB_STATUS_REQUEST_SENSE_FAILED:
--	case SRB_STATUS_NO_HBA:
--	case SRB_STATUS_UNEXPECTED_BUS_FREE:
--	case SRB_STATUS_PHASE_SEQUENCE_FAILURE:
--	case SRB_STATUS_BAD_SRB_BLOCK_LENGTH:
--	case SRB_STATUS_DELAYED_RETRY:
--	case SRB_STATUS_BAD_FUNCTION:
--	case SRB_STATUS_NOT_STARTED:
--	case SRB_STATUS_NOT_IN_USE:
--	case SRB_STATUS_FORCE_ABORT:
--	case SRB_STATUS_DOMAIN_VALIDATION_FAIL:
--	default:
-+		case SRB_STATUS_MESSAGE_REJECTED:
-+			scsicmd->result = DID_ERROR << 16
-+						| MESSAGE_REJECT << 8;
-+			break;
-+		case SRB_STATUS_REQUEST_FLUSHED:
-+		case SRB_STATUS_ERROR:
-+		case SRB_STATUS_INVALID_REQUEST:
-+		case SRB_STATUS_REQUEST_SENSE_FAILED:
-+		case SRB_STATUS_NO_HBA:
-+		case SRB_STATUS_UNEXPECTED_BUS_FREE:
-+		case SRB_STATUS_PHASE_SEQUENCE_FAILURE:
-+		case SRB_STATUS_BAD_SRB_BLOCK_LENGTH:
-+		case SRB_STATUS_DELAYED_RETRY:
-+		case SRB_STATUS_BAD_FUNCTION:
-+		case SRB_STATUS_NOT_STARTED:
-+		case SRB_STATUS_NOT_IN_USE:
-+		case SRB_STATUS_FORCE_ABORT:
-+		case SRB_STATUS_DOMAIN_VALIDATION_FAIL:
-+		default:
- #ifdef AAC_DETAILED_STATUS_INFO
--		printk("aacraid: SRB ERROR(%u) %s scsi cmd 0x%x - scsi status 0x%x\n",
--			le32_to_cpu(srbreply->srb_status) & 0x3F,
--			aac_get_status_string(
--				le32_to_cpu(srbreply->srb_status) & 0x3F),
--			scsicmd->cmnd[0],
--			le32_to_cpu(srbreply->scsi_status));
-+			printk(KERN_INFO "aacraid: SRB ERROR(%u) %s scsi cmd 0x%x - scsi status 0x%x\n",
-+				le32_to_cpu(srbreply->srb_status) & 0x3F,
-+				aac_get_status_string(
-+					le32_to_cpu(srbreply->srb_status) & 0x3F),
-+				scsicmd->cmnd[0],
-+				le32_to_cpu(srbreply->scsi_status));
- #endif
--		if ((scsicmd->cmnd[0] == ATA_12)
--		  || (scsicmd->cmnd[0] == ATA_16)) {
--			if (scsicmd->cmnd[2] & (0x01 << 5)) {
--				scsicmd->result = DID_OK << 16
--						| COMMAND_COMPLETE << 8;
-+			if ((scsicmd->cmnd[0] == ATA_12)
-+				|| (scsicmd->cmnd[0] == ATA_16)) {
-+					if (scsicmd->cmnd[2] & (0x01 << 5)) {
-+						scsicmd->result = DID_OK << 16
-+							| COMMAND_COMPLETE << 8;
- 				break;
-+				} else {
-+					scsicmd->result = DID_ERROR << 16
-+						| COMMAND_COMPLETE << 8;
-+					break;
-+				}
- 			} else {
- 				scsicmd->result = DID_ERROR << 16
--						| COMMAND_COMPLETE << 8;
-+					| COMMAND_COMPLETE << 8;
- 				break;
- 			}
--		} else {
--			scsicmd->result = DID_ERROR << 16
--					| COMMAND_COMPLETE << 8;
--			break;
- 		}
--	}
--	if (le32_to_cpu(srbreply->scsi_status) == SAM_STAT_CHECK_CONDITION) {
--		int len;
--		scsicmd->result |= SAM_STAT_CHECK_CONDITION;
--		len = min_t(u32, le32_to_cpu(srbreply->sense_data_size),
--			    SCSI_SENSE_BUFFERSIZE);
-+		if (le32_to_cpu(srbreply->scsi_status)
-+				== SAM_STAT_CHECK_CONDITION) {
-+			int len;
-+
-+			scsicmd->result |= SAM_STAT_CHECK_CONDITION;
-+			len = min_t(u32, le32_to_cpu(srbreply->sense_data_size),
-+				    SCSI_SENSE_BUFFERSIZE);
- #ifdef AAC_DETAILED_STATUS_INFO
--		printk(KERN_WARNING "aac_srb_callback: check condition, status = %d len=%d\n",
--					le32_to_cpu(srbreply->status), len);
-+			printk(KERN_WARNING "aac_srb_callback: check condition, status = %d len=%d\n",
-+						le32_to_cpu(srbreply->status), len);
- #endif
--		memcpy(scsicmd->sense_buffer, srbreply->sense_data, len);
-+			memcpy(scsicmd->sense_buffer,
-+					srbreply->sense_data, len);
-+		}
- 	}
- 	/*
- 	 * OR in the scsi status (already shifted up a bit)
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0010-aacraid-Enable-64bit-write-to-controller-register.patch b/openpower/linux/linux-0010-aacraid-Enable-64bit-write-to-controller-register.patch
deleted file mode 100644
index ec349ff..0000000
--- a/openpower/linux/linux-0010-aacraid-Enable-64bit-write-to-controller-register.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 2eed91e90f6fa1bfdc21c5c84eeff9d656cfb2f6 Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:36 -0400
-Subject: [PATCH 10/15] aacraid: Enable 64bit write to controller register
-
-If writeq() not supported, then do atomic two 32bit write
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aacraid.h  |  9 +++++++++
- drivers/scsi/aacraid/comminit.c |  1 +
- drivers/scsi/aacraid/src.c      | 12 ++++++++++--
- 3 files changed, 20 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
-index 62b099940345..e54f597a058d 100644
---- a/drivers/scsi/aacraid/aacraid.h
-+++ b/drivers/scsi/aacraid/aacraid.h
-@@ -844,6 +844,10 @@ struct src_registers {
- 						&((AEP)->regs.src.bar0->CSR))
- #define src_writel(AEP, CSR, value)	writel(value, \
- 						&((AEP)->regs.src.bar0->CSR))
-+#if defined(writeq)
-+#define	src_writeq(AEP, CSR, value)	writeq(value, \
-+						&((AEP)->regs.src.bar0->CSR))
-+#endif
- 
- #define SRC_ODR_SHIFT		12
- #define SRC_IDR_SHIFT		9
-@@ -1163,6 +1167,11 @@ struct aac_dev
- 	struct fsa_dev_info	*fsa_dev;
- 	struct task_struct	*thread;
- 	int			cardtype;
-+	/*
-+	 *This lock will protect the two 32-bit
-+	 *writes to the Inbound Queue
-+	 */
-+	spinlock_t		iq_lock;
- 
- 	/*
- 	 *	The following is the device specific extension.
-diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
-index 45a0a044dfdb..b4b6088fcb33 100644
---- a/drivers/scsi/aacraid/comminit.c
-+++ b/drivers/scsi/aacraid/comminit.c
-@@ -424,6 +424,7 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
- 	dev->management_fib_count = 0;
- 	spin_lock_init(&dev->manage_lock);
- 	spin_lock_init(&dev->sync_lock);
-+	spin_lock_init(&dev->iq_lock);
- 	dev->max_fib_size = sizeof(struct hw_fib);
- 	dev->sg_tablesize = host->sg_tablesize = (dev->max_fib_size
- 		- sizeof(struct aac_fibhdr)
-diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c
-index eb07b3d4ed38..1409a0b945ea 100644
---- a/drivers/scsi/aacraid/src.c
-+++ b/drivers/scsi/aacraid/src.c
-@@ -447,6 +447,10 @@ static int aac_src_deliver_message(struct fib *fib)
- 	u32 fibsize;
- 	dma_addr_t address;
- 	struct aac_fib_xporthdr *pFibX;
-+#if !defined(writeq)
-+	unsigned long flags;
-+#endif
-+
- 	u16 hdr_size = le16_to_cpu(fib->hw_fib_va->header.Size);
- 
- 	atomic_inc(&q->numpending);
-@@ -511,10 +515,14 @@ static int aac_src_deliver_message(struct fib *fib)
- 			return -EINVAL;
- 		address |= fibsize;
- 	}
--
-+#if defined(writeq)
-+	src_writeq(dev, MUnit.IQ_L, (u64)address);
-+#else
-+	spin_lock_irqsave(&fib->dev->iq_lock, flags);
- 	src_writel(dev, MUnit.IQ_H, upper_32_bits(address) & 0xffffffff);
- 	src_writel(dev, MUnit.IQ_L, address & 0xffffffff);
--
-+	spin_unlock_irqrestore(&fib->dev->iq_lock, flags);
-+#endif
- 	return 0;
- }
- 
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0011-aacraid-IOCTL-fix.patch b/openpower/linux/linux-0011-aacraid-IOCTL-fix.patch
deleted file mode 100644
index a06e485..0000000
--- a/openpower/linux/linux-0011-aacraid-IOCTL-fix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 21b4be79f2475bc5acd600400c47110695675ac0 Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:39 -0400
-Subject: [PATCH 11/15] aacraid: IOCTL fix
-
-Driver blocks ioctls once it received shutdown/suspend request during
-suspend/hybernation. This patch unblocks ioctls on resume path.
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/linit.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
-index 37375cf7d126..3b6e5c67e853 100644
---- a/drivers/scsi/aacraid/linit.c
-+++ b/drivers/scsi/aacraid/linit.c
-@@ -1448,6 +1448,11 @@ static int aac_resume(struct pci_dev *pdev)
- 	pci_set_master(pdev);
- 	if (aac_acquire_resources(aac))
- 		goto fail_device;
-+	/*
-+	* reset this flag to unblock ioctl() as it was set at
-+	* aac_send_shutdown() to block ioctls from upperlayer
-+	*/
-+	aac->adapter_shutdown = 0;
- 	scsi_unblock_requests(shost);
- 
- 	return 0;
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0012-aacraid-Reset-irq-affinity-hints.patch b/openpower/linux/linux-0012-aacraid-Reset-irq-affinity-hints.patch
deleted file mode 100644
index 3434b4b..0000000
--- a/openpower/linux/linux-0012-aacraid-Reset-irq-affinity-hints.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-From 691bc6c6570ffbd9e1c4733dd12cd513ff6e19ec Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:38 -0400
-Subject: [PATCH 12/15] aacraid: Reset irq affinity hints
-
-Reset irq affinity hints before releasing IRQ.
-Removed duplicate code of IRQ acquire/release.
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aacraid.h |   2 +
- drivers/scsi/aacraid/commsup.c | 113 ++++++++++++++++++++++++++++++-----------
- drivers/scsi/aacraid/src.c     |  48 ++---------------
- 3 files changed, 88 insertions(+), 75 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
-index e54f597a058d..7b95227af478 100644
---- a/drivers/scsi/aacraid/aacraid.h
-+++ b/drivers/scsi/aacraid/aacraid.h
-@@ -2110,6 +2110,8 @@ static inline unsigned int cap_to_cyls(sector_t capacity, unsigned divisor)
- #define AAC_OWNER_ERROR_HANDLER	0x103
- #define AAC_OWNER_FIRMWARE	0x106
- 
-+int aac_acquire_irq(struct aac_dev *dev);
-+void aac_free_irq(struct aac_dev *dev);
- const char *aac_driverinfo(struct Scsi_Host *);
- struct fib *aac_fib_alloc(struct aac_dev *dev);
- int aac_fib_setup(struct aac_dev *dev);
-diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
-index 4da574925284..a1f90fe849c9 100644
---- a/drivers/scsi/aacraid/commsup.c
-+++ b/drivers/scsi/aacraid/commsup.c
-@@ -1270,13 +1270,12 @@ retry_next:
- static int _aac_reset_adapter(struct aac_dev *aac, int forced)
- {
- 	int index, quirks;
--	int retval, i;
-+	int retval;
- 	struct Scsi_Host *host;
- 	struct scsi_device *dev;
- 	struct scsi_cmnd *command;
- 	struct scsi_cmnd *command_list;
- 	int jafo = 0;
--	int cpu;
- 
- 	/*
- 	 * Assumptions:
-@@ -1339,35 +1338,7 @@ static int _aac_reset_adapter(struct aac_dev *aac, int forced)
- 	aac->comm_phys = 0;
- 	kfree(aac->queues);
- 	aac->queues = NULL;
--	cpu = cpumask_first(cpu_online_mask);
--	if (aac->pdev->device == PMC_DEVICE_S6 ||
--	    aac->pdev->device == PMC_DEVICE_S7 ||
--	    aac->pdev->device == PMC_DEVICE_S8 ||
--	    aac->pdev->device == PMC_DEVICE_S9) {
--		if (aac->max_msix > 1) {
--			for (i = 0; i < aac->max_msix; i++) {
--				if (irq_set_affinity_hint(
--				    aac->msixentry[i].vector,
--				    NULL)) {
--					printk(KERN_ERR "%s%d: Failed to reset IRQ affinity for cpu %d\n",
--						aac->name,
--						aac->id,
--						cpu);
--				}
--				cpu = cpumask_next(cpu,
--						cpu_online_mask);
--				free_irq(aac->msixentry[i].vector,
--					 &(aac->aac_msix[i]));
--			}
--			pci_disable_msix(aac->pdev);
--		} else {
--			free_irq(aac->pdev->irq, &(aac->aac_msix[0]));
--		}
--	} else {
--		free_irq(aac->pdev->irq, aac);
--	}
--	if (aac->msi)
--		pci_disable_msi(aac->pdev);
-+	aac_free_irq(aac);
- 	kfree(aac->fsa_dev);
- 	aac->fsa_dev = NULL;
- 	quirks = aac_get_driver_ident(index)->quirks;
-@@ -1978,3 +1949,83 @@ int aac_command_thread(void *data)
- 	dev->aif_thread = 0;
- 	return 0;
- }
-+
-+int aac_acquire_irq(struct aac_dev *dev)
-+{
-+	int i;
-+	int j;
-+	int ret = 0;
-+	int cpu;
-+
-+	cpu = cpumask_first(cpu_online_mask);
-+	if (!dev->sync_mode && dev->msi_enabled && dev->max_msix > 1) {
-+		for (i = 0; i < dev->max_msix; i++) {
-+			dev->aac_msix[i].vector_no = i;
-+			dev->aac_msix[i].dev = dev;
-+			if (request_irq(dev->msixentry[i].vector,
-+					dev->a_ops.adapter_intr,
-+					0, "aacraid", &(dev->aac_msix[i]))) {
-+				printk(KERN_ERR "%s%d: Failed to register IRQ for vector %d.\n",
-+						dev->name, dev->id, i);
-+				for (j = 0 ; j < i ; j++)
-+					free_irq(dev->msixentry[j].vector,
-+						 &(dev->aac_msix[j]));
-+				pci_disable_msix(dev->pdev);
-+				ret = -1;
-+			}
-+			if (irq_set_affinity_hint(dev->msixentry[i].vector,
-+							get_cpu_mask(cpu))) {
-+				printk(KERN_ERR "%s%d: Failed to set IRQ affinity for cpu %d\n",
-+					    dev->name, dev->id, cpu);
-+			}
-+			cpu = cpumask_next(cpu, cpu_online_mask);
-+		}
-+	} else {
-+		dev->aac_msix[0].vector_no = 0;
-+		dev->aac_msix[0].dev = dev;
-+
-+		if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
-+			IRQF_SHARED, "aacraid",
-+			&(dev->aac_msix[0])) < 0) {
-+			if (dev->msi)
-+				pci_disable_msi(dev->pdev);
-+			printk(KERN_ERR "%s%d: Interrupt unavailable.\n",
-+					dev->name, dev->id);
-+			ret = -1;
-+		}
-+	}
-+	return ret;
-+}
-+
-+void aac_free_irq(struct aac_dev *dev)
-+{
-+	int i;
-+	int cpu;
-+
-+	cpu = cpumask_first(cpu_online_mask);
-+	if (dev->pdev->device == PMC_DEVICE_S6 ||
-+	    dev->pdev->device == PMC_DEVICE_S7 ||
-+	    dev->pdev->device == PMC_DEVICE_S8 ||
-+	    dev->pdev->device == PMC_DEVICE_S9) {
-+		if (dev->max_msix > 1) {
-+			for (i = 0; i < dev->max_msix; i++) {
-+				if (irq_set_affinity_hint(
-+					dev->msixentry[i].vector, NULL)) {
-+					printk(KERN_ERR "%s%d: Failed to reset IRQ affinity for cpu %d\n",
-+					    dev->name, dev->id, cpu);
-+				}
-+				cpu = cpumask_next(cpu, cpu_online_mask);
-+				free_irq(dev->msixentry[i].vector,
-+						&(dev->aac_msix[i]));
-+			}
-+		} else {
-+			free_irq(dev->pdev->irq, &(dev->aac_msix[0]));
-+		}
-+	} else {
-+		free_irq(dev->pdev->irq, dev);
-+	}
-+	if (dev->msi)
-+		pci_disable_msi(dev->pdev);
-+	else if (dev->max_msix > 1)
-+		pci_disable_msix(dev->pdev);
-+}
-diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c
-index 1409a0b945ea..2aa34ea8ceb1 100644
---- a/drivers/scsi/aacraid/src.c
-+++ b/drivers/scsi/aacraid/src.c
-@@ -798,9 +798,7 @@ int aac_srcv_init(struct aac_dev *dev)
- 	unsigned long status;
- 	int restart = 0;
- 	int instance = dev->id;
--	int i, j;
- 	const char *name = dev->name;
--	int cpu;
- 
- 	dev->a_ops.adapter_ioremap = aac_srcv_ioremap;
- 	dev->a_ops.adapter_comm = aac_src_select_comm;
-@@ -918,48 +916,10 @@ int aac_srcv_init(struct aac_dev *dev)
- 		goto error_iounmap;
- 	if (dev->msi_enabled)
- 		aac_src_access_devreg(dev, AAC_ENABLE_MSIX);
--	if (!dev->sync_mode && dev->msi_enabled && dev->max_msix > 1) {
--		cpu = cpumask_first(cpu_online_mask);
--		for (i = 0; i < dev->max_msix; i++) {
--			dev->aac_msix[i].vector_no = i;
--			dev->aac_msix[i].dev = dev;
--
--			if (request_irq(dev->msixentry[i].vector,
--					dev->a_ops.adapter_intr,
--					0,
--					"aacraid",
--					&(dev->aac_msix[i]))) {
--				printk(KERN_ERR "%s%d: Failed to register IRQ for vector %d.\n",
--						name, instance, i);
--				for (j = 0 ; j < i ; j++)
--					free_irq(dev->msixentry[j].vector,
--						 &(dev->aac_msix[j]));
--				pci_disable_msix(dev->pdev);
--				goto error_iounmap;
--			}
--			if (irq_set_affinity_hint(
--			   dev->msixentry[i].vector,
--			   get_cpu_mask(cpu))) {
--				printk(KERN_ERR "%s%d: Failed to set IRQ affinity for cpu %d\n",
--						name, instance, cpu);
--			}
--			cpu = cpumask_next(cpu, cpu_online_mask);
--		}
--	} else {
--		dev->aac_msix[0].vector_no = 0;
--		dev->aac_msix[0].dev = dev;
--
--		if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
--				IRQF_SHARED,
--				"aacraid",
--				&(dev->aac_msix[0])) < 0) {
--			if (dev->msi)
--				pci_disable_msi(dev->pdev);
--			printk(KERN_ERR "%s%d: Interrupt unavailable.\n",
--					name, instance);
--			goto error_iounmap;
--		}
--	}
-+
-+	if (aac_acquire_irq(dev))
-+		goto error_iounmap;
-+
- 	dev->dbg_base = dev->base_start;
- 	dev->dbg_base_mapped = dev->base;
- 	dev->dbg_size = dev->base_size;
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0013-aacraid-Use-pci_enable_msix_range.patch b/openpower/linux/linux-0013-aacraid-Use-pci_enable_msix_range.patch
deleted file mode 100644
index 69621fa..0000000
--- a/openpower/linux/linux-0013-aacraid-Use-pci_enable_msix_range.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 9db12f2808069bb0d284cf3745d3aad2727d8efa Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:40 -0400
-Subject: [PATCH 13/15] aacraid: Use pci_enable_msix_range()
-
-As pci_enable_msix() deprecated, replaced with pci_enable_msix_range()
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aacraid.h  |  2 +-
- drivers/scsi/aacraid/comminit.c | 20 ++++++--------------
- 2 files changed, 7 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
-index 7b95227af478..2de5ebcce138 100644
---- a/drivers/scsi/aacraid/aacraid.h
-+++ b/drivers/scsi/aacraid/aacraid.h
-@@ -12,7 +12,7 @@
-  *              D E F I N E S
-  *----------------------------------------------------------------------------*/
- 
--#define AAC_MAX_MSIX		8	/* vectors */
-+#define AAC_MAX_MSIX		32	/* vectors */
- #define AAC_PCI_MSI_ENABLE	0x8000
- 
- enum {
-diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
-index b4b6088fcb33..0e954e37f0b5 100644
---- a/drivers/scsi/aacraid/comminit.c
-+++ b/drivers/scsi/aacraid/comminit.c
-@@ -338,7 +338,7 @@ static int aac_comm_init(struct aac_dev * dev)
- 
- void aac_define_int_mode(struct aac_dev *dev)
- {
--	int i, msi_count;
-+	int i, msi_count, min_msix;
- 
- 	msi_count = i = 0;
- 	/* max. vectors from GET_COMM_PREFERRED_SETTINGS */
-@@ -366,22 +366,14 @@ void aac_define_int_mode(struct aac_dev *dev)
- 
- 	if (msi_count > 1 &&
- 	    pci_find_capability(dev->pdev, PCI_CAP_ID_MSIX)) {
--		i = pci_enable_msix(dev->pdev,
-+		min_msix = 2;
-+		i = pci_enable_msix_range(dev->pdev,
- 				    dev->msixentry,
-+				    min_msix,
- 				    msi_count);
--		 /* Check how many MSIX vectors are allocated */
--		if (i >= 0) {
-+		if (i > 0) {
- 			dev->msi_enabled = 1;
--			if (i) {
--				msi_count = i;
--				if (pci_enable_msix(dev->pdev,
--				    dev->msixentry,
--				    msi_count)) {
--					dev->msi_enabled = 0;
--					printk(KERN_ERR "%s%d: MSIX not supported!! Will try MSI 0x%x.\n",
--							dev->name, dev->id, i);
--				}
--			}
-+			msi_count = i;
- 		} else {
- 			dev->msi_enabled = 0;
- 			printk(KERN_ERR "%s%d: MSIX not supported!! Will try MSI 0x%x.\n",
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0014-aacraid-Update-driver-version.patch b/openpower/linux/linux-0014-aacraid-Update-driver-version.patch
deleted file mode 100644
index 5eeed92..0000000
--- a/openpower/linux/linux-0014-aacraid-Update-driver-version.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4ce229595057fb71ff775bd9b84a9f72848275b3 Mon Sep 17 00:00:00 2001
-From: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Date: Fri, 28 Aug 2015 06:38:41 -0400
-Subject: [PATCH 14/15] aacraid: Update driver version
-
-Reviewed-by: Tomas Henzl <thenzl@redhat.com>
-Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
-Reviewed-by: Karthikeya Sunkesula <Karthikeya.Sunkesula@pmcs.com>
-Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/aacraid/aacraid.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
-index 2de5ebcce138..074878b55a0b 100644
---- a/drivers/scsi/aacraid/aacraid.h
-+++ b/drivers/scsi/aacraid/aacraid.h
-@@ -62,7 +62,7 @@ enum {
- #define	PMC_GLOBAL_INT_BIT0		0x00000001
- 
- #ifndef AAC_DRIVER_BUILD
--# define AAC_DRIVER_BUILD 40709
-+# define AAC_DRIVER_BUILD 41010
- # define AAC_DRIVER_BRANCH "-ms"
- #endif
- #define MAXIMUM_NUM_CONTAINERS	32
--- 
-2.6.2
-
diff --git a/openpower/linux/linux-0015-Release-4.2.6-openpower1.patch b/openpower/linux/linux-0015-Release-4.2.6-openpower1.patch
deleted file mode 100644
index dcbb6cb..0000000
--- a/openpower/linux/linux-0015-Release-4.2.6-openpower1.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 56015eb38198431a6fe83f8d0d516242ce05e3df Mon Sep 17 00:00:00 2001
-From: Joel Stanley <joel@jms.id.au>
-Date: Tue, 20 Oct 2015 15:01:06 +1030
-Subject: [PATCH 15/15] Release 4.2.6-openpower1
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 9ef37399b4e8..028e6976b210 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,7 +1,7 @@
- VERSION = 4
- PATCHLEVEL = 2
- SUBLEVEL = 6
--EXTRAVERSION =
-+EXTRAVERSION = -openpower1
- NAME = Hurr durr I'ma sheep
- 
- # *DOCUMENTATION*
--- 
-2.6.2
-
