diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index 57a98c8..580545e 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -42,7 +42,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15"
 BR2_KERNEL_HEADERS_4_4=y
 BR2_BINUTILS_VERSION_2_26_X=y
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 001000d..8f9bf97 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -42,7 +42,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15"
 BR2_KERNEL_HEADERS_4_4=y
 BR2_BINUTILS_VERSION_2_26_X=y
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index 25980f7..4a9f46a 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -46,7 +46,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15"
 BR2_KERNEL_HEADERS_4_4=y
 BR2_BINUTILS_VERSION_2_26_X=y
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index 7c302f0..17dbed1 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -42,7 +42,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15"
 BR2_KERNEL_HEADERS_4_4=y
 BR2_BINUTILS_VERSION_2_26_X=y
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index 96b88de..76cce6a 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -31,7 +31,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15"
 BR2_KERNEL_HEADERS_4_4=y
 BR2_BINUTILS_VERSION_2_26_X=y
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 546c378..693439b 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -40,7 +40,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.14"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15"
 BR2_KERNEL_HEADERS_4_4=y
 BR2_BINUTILS_VERSION_2_26_X=y
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
diff --git a/openpower/linux/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
similarity index 72%
rename from openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
rename to openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
index df50449..cda2606 100644
--- a/openpower/linux/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 54a36cc9957899eb7ac261c783e80ce93f7bfd64 Mon Sep 17 00:00:00 2001
+From c4c563c6614ddc53c320d1b7e4abbb8d88e65dea 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 1/7] xhci: Use xhci_pci_remove for xhci device shutdown
+Subject: [PATCH 01/10] 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 ea4fb4b0cd44..186a544e1d1f 100644
+index de644e56aa3b..f398ed390ff8 100644
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -441,7 +441,7 @@ static struct pci_driver xhci_pci_driver = {
+@@ -446,7 +446,7 @@ static struct pci_driver xhci_pci_driver = {
  	.remove =	xhci_pci_remove,
  	/* suspend and resume implemented later */
  
diff --git a/openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch b/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
similarity index 92%
rename from openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
rename to openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
index df69843..6008ffe 100644
--- a/openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
+++ b/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
@@ -1,7 +1,7 @@
-From 96be60fe30d5971486126da3e7b8dfc84f25b8ae Mon Sep 17 00:00:00 2001
+From 634b76812d457f154bc6cba7f58c0f4936f130f9 Mon Sep 17 00:00:00 2001
 From: Jeremy Kerr <jk@ozlabs.org>
 Date: Wed, 2 Mar 2016 11:25:47 +0800
-Subject: [PATCH 4/7] drivers/drm/ast: Switch SCU to VGA output on POST
+Subject: [PATCH 02/10] drivers/drm/ast: Switch SCU to VGA output on POST
 
 On AST BMC platforms, the BMC may be using the VGA device for UART
 mirroring. In this case, we need to switch the DAC output to
diff --git a/openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch b/openpower/linux/0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
similarity index 90%
rename from openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch
rename to openpower/linux/0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
index 0bff5f7..9828241 100644
--- a/openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch
+++ b/openpower/linux/0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
@@ -1,7 +1,7 @@
-From 2ed71195852b81ad37938dfc4e3d7750d7046561 Mon Sep 17 00:00:00 2001
+From b8daa0f11a65954d918cbbd9af96a03e29202bc9 Mon Sep 17 00:00:00 2001
 From: Hannes Reinecke <hare@suse.de>
 Date: Tue, 1 Mar 2016 13:57:59 +1100
-Subject: [PATCH 5/7] scsi: ignore errors from scsi_dh_add_device()
+Subject: [PATCH 03/10] scsi: ignore errors from scsi_dh_add_device()
 
 device handler initialisation might fail due to a number of
 reasons. But as device_handlers are optional this shouldn't
diff --git a/openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch b/openpower/linux/0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
similarity index 98%
rename from openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
rename to openpower/linux/0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
index 3e55a7c..838637b 100644
--- a/openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
+++ b/openpower/linux/0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
@@ -1,7 +1,7 @@
-From 41418e470987141e3ee03d0cf862284a25ba8217 Mon Sep 17 00:00:00 2001
+From 3b638a338635a0d073c53f84e10a900798e88079 Mon Sep 17 00:00:00 2001
 From: Huy Nguyen <huyn@mellanox.com>
 Date: Wed, 17 Feb 2016 17:24:26 +0200
-Subject: [PATCH 6/7] net/mlx4_core: Set UAR page size to 4KB regardless of
+Subject: [PATCH 04/10] net/mlx4_core: Set UAR page size to 4KB regardless of
  system page size
 
 problem description:
diff --git a/openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch
new file mode 100644
index 0000000..10c74f2
--- /dev/null
+++ b/openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch
@@ -0,0 +1,56 @@
+From 2216c4ebe95d9ee82536b0b758478dec59ffb702 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 05/10] 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.
+
+Sined-off-by: Joel Stanley <joel@jms.id.au>
+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 6fe0174da226..8f48dd84ddd2 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -682,6 +682,21 @@ void xhci_stop(struct usb_hcd *hcd)
+ 
+ 	mutex_lock(&xhci->mutex);
+ 
++	/*
++	 * 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.
++	 */
++	if (!usb_hcd_is_primary_hcd(hcd)) {
++		/* 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;
++		mutex_unlock(&xhci->mutex);
++		return;
++	}
++
+ 	if (!(xhci->xhc_state & XHCI_STATE_HALTED)) {
+ 		spin_lock_irq(&xhci->lock);
+ 
+@@ -693,11 +708,6 @@ void xhci_stop(struct usb_hcd *hcd)
+ 		spin_unlock_irq(&xhci->lock);
+ 	}
+ 
+-	if (!usb_hcd_is_primary_hcd(hcd)) {
+-		mutex_unlock(&xhci->mutex);
+-		return;
+-	}
+-
+ 	xhci_cleanup_msix(xhci);
+ 
+ 	/* Deleting Compliance Mode Recovery Timer */
+-- 
+2.8.1
+
diff --git a/openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch b/openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch
new file mode 100644
index 0000000..9fc3fb2
--- /dev/null
+++ b/openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch
@@ -0,0 +1,161 @@
+From 89d994ee9504a2a7abbfe3b57022b5e2a2ed4c85 Mon Sep 17 00:00:00 2001
+From: Carol L Soto <clsoto@linux.vnet.ibm.com>
+Date: Tue, 12 Jul 2016 17:04:07 -0500
+Subject: [PATCH 06/10] net/mlx5: Add pci shutdown callback
+
+Backport of commit 5fc7197d3a256 ("net/mlx5: Add pci shutdown callback")
+so we can use for the OpenPower kernel.
+
+This patch introduces kexec support for mlx5.
+When switching kernels, kexec() calls shutdown, which unloads
+the driver and cleans its resources.
+
+In addition, remove unregister netdev from shutdown flow. This will
+allow a clean shutdown, even if some netdev clients did not release their
+reference from this netdev. Releasing The HW resources only is enough as
+the kernel is shutting down
+
+Signed-off-by: Majd Dibbiny <majd@mellanox.com>
+Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
+Signed-off-by: Haggai Abramovsky <hagaya@mellanox.com>
+Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Carol L Soto <clsoto@linux.vnet.ibm.com>
+(cherry picked from commit 5fc7197d3a256d9c5de3134870304b24892a4908)
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++++++++++--
+ drivers/net/ethernet/mellanox/mlx5/core/main.c    | 23 +++++++++++++++++++----
+ include/linux/mlx5/driver.h                       |  7 ++++---
+ 3 files changed, 36 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+index cbd17e25beeb..887a54c8e98b 100644
+--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
++++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+@@ -2241,7 +2241,16 @@ static void mlx5e_destroy_netdev(struct mlx5_core_dev *mdev, void *vpriv)
+ 	schedule_work(&priv->set_rx_mode_work);
+ 	mlx5e_disable_async_events(priv);
+ 	flush_scheduled_work();
+-	unregister_netdev(netdev);
++	if (test_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &mdev->intf_state)) {
++		netif_device_detach(netdev);
++		mutex_lock(&priv->state_lock);
++		if (test_bit(MLX5E_STATE_OPENED, &priv->state))
++			mlx5e_close_locked(netdev);
++		mutex_unlock(&priv->state_lock);
++	} else {
++		unregister_netdev(netdev);
++	}
++
+ 	mlx5e_destroy_flow_tables(priv);
+ 	mlx5e_destroy_tirs(priv);
+ 	mlx5e_destroy_rqt(priv, MLX5E_SINGLE_RQ_RQT);
+@@ -2252,7 +2261,9 @@ static void mlx5e_destroy_netdev(struct mlx5_core_dev *mdev, void *vpriv)
+ 	mlx5_dealloc_transport_domain(priv->mdev, priv->tdn);
+ 	mlx5_core_dealloc_pd(priv->mdev, priv->pdn);
+ 	mlx5_unmap_free_uar(priv->mdev, &priv->cq_uar);
+-	free_netdev(netdev);
++
++	if (!test_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &mdev->intf_state))
++		free_netdev(netdev);
+ }
+ 
+ static void *mlx5e_get_netdev(void *vpriv)
+diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
+index 6cf6d93d8831..8a371bdb823e 100644
+--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
++++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
+@@ -914,7 +914,7 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ 	int err;
+ 
+ 	mutex_lock(&dev->intf_state_mutex);
+-	if (dev->interface_state == MLX5_INTERFACE_STATE_UP) {
++	if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) {
+ 		dev_warn(&dev->pdev->dev, "%s: interface is up, NOP\n",
+ 			 __func__);
+ 		goto out;
+@@ -1063,7 +1063,8 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ 	if (err)
+ 		pr_info("failed request module on %s\n", MLX5_IB_MOD);
+ 
+-	dev->interface_state = MLX5_INTERFACE_STATE_UP;
++	clear_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state);
++	set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state);
+ out:
+ 	mutex_unlock(&dev->intf_state_mutex);
+ 
+@@ -1125,7 +1126,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ 	int err = 0;
+ 
+ 	mutex_lock(&dev->intf_state_mutex);
+-	if (dev->interface_state == MLX5_INTERFACE_STATE_DOWN) {
++	if (test_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state)) {
+ 		dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n",
+ 			 __func__);
+ 		goto out;
+@@ -1155,7 +1156,8 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ 	mlx5_cmd_cleanup(dev);
+ 
+ out:
+-	dev->interface_state = MLX5_INTERFACE_STATE_DOWN;
++	clear_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state);
++	set_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state);
+ 	mutex_unlock(&dev->intf_state_mutex);
+ 	return err;
+ }
+@@ -1365,6 +1367,18 @@ static const struct pci_error_handlers mlx5_err_handler = {
+ 	.resume		= mlx5_pci_resume
+ };
+ 
++static void shutdown(struct pci_dev *pdev)
++{
++	struct mlx5_core_dev *dev  = pci_get_drvdata(pdev);
++	struct mlx5_priv *priv = &dev->priv;
++
++	dev_info(&pdev->dev, "Shutdown was called\n");
++	/* Notify mlx5 clients that the kernel is being shut down */
++	set_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &dev->intf_state);
++	mlx5_unload_one(dev, priv);
++	mlx5_pci_disable_device(dev);
++}
++
+ static const struct pci_device_id mlx5_core_pci_table[] = {
+ 	{ PCI_VDEVICE(MELLANOX, 0x1011) }, /* Connect-IB */
+ 	{ PCI_VDEVICE(MELLANOX, 0x1012) }, /* Connect-IB VF */
+@@ -1382,6 +1396,7 @@ static struct pci_driver mlx5_core_driver = {
+ 	.id_table       = mlx5_core_pci_table,
+ 	.probe          = init_one,
+ 	.remove         = remove_one,
++	.shutdown       = shutdown,
+ 	.err_handler	= &mlx5_err_handler
+ };
+ 
+diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
+index 412aa988c6ad..dc26d9942120 100644
+--- a/include/linux/mlx5/driver.h
++++ b/include/linux/mlx5/driver.h
+@@ -493,8 +493,9 @@ enum mlx5_device_state {
+ };
+ 
+ enum mlx5_interface_state {
+-	MLX5_INTERFACE_STATE_DOWN,
+-	MLX5_INTERFACE_STATE_UP,
++	MLX5_INTERFACE_STATE_DOWN = BIT(0),
++	MLX5_INTERFACE_STATE_UP = BIT(1),
++	MLX5_INTERFACE_STATE_SHUTDOWN = BIT(2),
+ };
+ 
+ enum mlx5_pci_status {
+@@ -518,7 +519,7 @@ struct mlx5_core_dev {
+ 	enum mlx5_device_state	state;
+ 	/* sync interface state */
+ 	struct mutex		intf_state_mutex;
+-	enum mlx5_interface_state interface_state;
++	unsigned long		intf_state;
+ 	void			(*event) (struct mlx5_core_dev *dev,
+ 					  enum mlx5_dev_event event,
+ 					  unsigned long param);
+-- 
+2.8.1
+
diff --git a/openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch b/openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch
new file mode 100644
index 0000000..d13a84b
--- /dev/null
+++ b/openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch
@@ -0,0 +1,286 @@
+From 8bd7120ec00b9f7bcf233a92972e50b4c312fe7a Mon Sep 17 00:00:00 2001
+From: Oliver O'Halloran <oohall@gmail.com>
+Date: Fri, 24 Jun 2016 17:28:43 +1000
+Subject: [PATCH 07/10] powerpc/boot: Add OPAL console to epapr wrappers
+
+This patch adds an OPAL console backend to the powerpc boot wrapper so
+that decompression failures inside the wrapper can be reported to the
+user. This is important since it typically indicates data corruption in
+the firmware and other nasty things.
+
+Currently this only works when building a little endian kernel. When
+compiling a 64 bit BE kernel the wrapper is always build 32 bit to be
+compatible with some 32 bit firmwares. BE support will be added at a
+later date. Another limitation of this is that only the "raw" type of
+OPAL console is supported, however machines that provide a hvsi console
+also provide a raw console so this is not an issue in practice.
+
+Actually-written-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
+Cc: Stewart Smith <stewart@linux.vnet.ibm.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ arch/powerpc/boot/Makefile     |  4 +-
+ arch/powerpc/boot/opal-calls.S | 58 +++++++++++++++++++++++++
+ arch/powerpc/boot/opal.c       | 97 ++++++++++++++++++++++++++++++++++++++++++
+ arch/powerpc/boot/ops.h        |  1 +
+ arch/powerpc/boot/ppc_asm.h    |  4 ++
+ arch/powerpc/boot/serial.c     |  2 +
+ arch/powerpc/boot/types.h      | 10 +++++
+ 7 files changed, 174 insertions(+), 2 deletions(-)
+ create mode 100644 arch/powerpc/boot/opal-calls.S
+ create mode 100644 arch/powerpc/boot/opal.c
+
+diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
+index 99e4487248ff..321a603f6ae3 100644
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
+@@ -70,7 +70,7 @@ $(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o): \
+ libfdt       := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
+ libfdtheader := fdt.h libfdt.h libfdt_internal.h
+ 
+-$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \
++$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o opal.o): \
+ 	$(addprefix $(obj)/,$(libfdtheader))
+ 
+ src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
+@@ -78,7 +78,7 @@ src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
+ 		ns16550.c serial.c simple_alloc.c div64.S util.S \
+ 		gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \
+ 		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
+-		uartlite.c mpc52xx-psc.c
++		uartlite.c mpc52xx-psc.c opal.c opal-calls.S
+ src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
+ src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
+ src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c
+diff --git a/arch/powerpc/boot/opal-calls.S b/arch/powerpc/boot/opal-calls.S
+new file mode 100644
+index 000000000000..ff2f1b97bc53
+--- /dev/null
++++ b/arch/powerpc/boot/opal-calls.S
+@@ -0,0 +1,58 @@
++/*
++ * Copyright (c) 2016 IBM Corporation.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++
++#include "ppc_asm.h"
++#include "../include/asm/opal-api.h"
++
++	.text
++
++#define OPAL_CALL(name, token)				\
++	.globl name;					\
++name:							\
++	li	r0, token;				\
++	b	opal_call;
++
++opal_call:
++	mflr	r11
++	std	r11,16(r1)
++	mfcr	r12
++	stw	r12,8(r1)
++	mr	r13,r2
++
++	/* Set opal return address */
++	ld	r11,opal_return@got(r2)
++	mtlr	r11
++	mfmsr	r12
++
++	/* switch to BE when we enter OPAL */
++	li	r11,MSR_LE
++	andc	r12,r12,r11
++	mtspr	SPRN_HSRR1,r12
++
++	/* load the opal call entry point and base */
++	ld	r11,opal@got(r2)
++	ld	r12,8(r11)
++	ld	r2,0(r11)
++	mtspr	SPRN_HSRR0,r12
++	hrfid
++
++opal_return:
++	FIXUP_ENDIAN
++	mr	r2,r13;
++	lwz	r11,8(r1);
++	ld	r12,16(r1)
++	mtcr	r11;
++	mtlr	r12
++	blr
++
++OPAL_CALL(opal_console_write,			OPAL_CONSOLE_WRITE);
++OPAL_CALL(opal_console_read,			OPAL_CONSOLE_READ);
++OPAL_CALL(opal_console_write_buffer_space,	OPAL_CONSOLE_WRITE_BUFFER_SPACE);
++OPAL_CALL(opal_poll_events,			OPAL_POLL_EVENTS);
++OPAL_CALL(opal_console_flush,			OPAL_CONSOLE_FLUSH);
+diff --git a/arch/powerpc/boot/opal.c b/arch/powerpc/boot/opal.c
+new file mode 100644
+index 000000000000..3a2ce1e1f048
+--- /dev/null
++++ b/arch/powerpc/boot/opal.c
+@@ -0,0 +1,97 @@
++/*
++ * Copyright (c) 2016 IBM Corporation.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++
++#include "ops.h"
++#include "stdio.h"
++#include "io.h"
++#include <libfdt.h>
++#include "../include/asm/opal-api.h"
++
++/* Global OPAL struct used by opal-call.S */
++struct opal {
++	u64 base;
++	u64 entry;
++} opal;
++
++static u32 opal_con_id;
++
++int64_t opal_console_write(int64_t term_number, u64 *length, const u8 *buffer);
++int64_t opal_console_read(int64_t term_number, uint64_t *length, u8 *buffer);
++int64_t opal_console_write_buffer_space(uint64_t term_number, uint64_t *length);
++int64_t opal_console_flush(uint64_t term_number);
++int64_t opal_poll_events(uint64_t *outstanding_event_mask);
++
++static int opal_con_open(void)
++{
++	return 0;
++}
++
++static void opal_con_putc(unsigned char c)
++{
++	int64_t rc;
++	uint64_t olen, len;
++
++	do {
++		rc = opal_console_write_buffer_space(opal_con_id, &olen);
++		len = be64_to_cpu(olen);
++		if (rc)
++			return;
++		opal_poll_events(NULL);
++	} while (len < 1);
++
++
++	olen = cpu_to_be64(1);
++	opal_console_write(opal_con_id, &olen, &c);
++}
++
++static void opal_con_close(void)
++{
++	opal_console_flush(opal_con_id);
++}
++
++static void opal_init(void)
++{
++	void *opal_node;
++
++	opal_node = finddevice("/ibm,opal");
++	if (!opal_node)
++		return;
++	if (getprop(opal_node, "opal-base-address", &opal.base, sizeof(u64)) < 0)
++		return;
++	opal.base = be64_to_cpu(opal.base);
++	if (getprop(opal_node, "opal-entry-address", &opal.entry, sizeof(u64)) < 0)
++		return;
++	opal.entry = be64_to_cpu(opal.entry);
++}
++
++#ifdef __powerpc64__
++int opal_console_init(void *devp, struct serial_console_data *scdp)
++{
++	opal_init();
++
++	if (devp) {
++		int n = getprop(devp, "reg", &opal_con_id, sizeof(u32));
++		if (n != sizeof(u32))
++			return -1;
++		opal_con_id = be32_to_cpu(opal_con_id);
++	} else
++		opal_con_id = 0;
++
++	scdp->open = opal_con_open;
++	scdp->putc = opal_con_putc;
++	scdp->close = opal_con_close;
++
++	return 0;
++}
++#else
++int opal_console_init(void *devp, struct serial_console_data *scdp)
++{
++	return -1;
++}
++#endif
+diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h
+index 5e75e1c5518e..e19b64ef977a 100644
+--- a/arch/powerpc/boot/ops.h
++++ b/arch/powerpc/boot/ops.h
+@@ -89,6 +89,7 @@ int mpsc_console_init(void *devp, struct serial_console_data *scdp);
+ int cpm_console_init(void *devp, struct serial_console_data *scdp);
+ int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp);
+ int uartlite_console_init(void *devp, struct serial_console_data *scdp);
++int opal_console_init(void *devp, struct serial_console_data *scdp);
+ void *simple_alloc_init(char *base, unsigned long heap_size,
+ 			unsigned long granularity, unsigned long max_allocs);
+ extern void flush_cache(void *, unsigned long);
+diff --git a/arch/powerpc/boot/ppc_asm.h b/arch/powerpc/boot/ppc_asm.h
+index 35ea60c1f070..b03373d8b386 100644
+--- a/arch/powerpc/boot/ppc_asm.h
++++ b/arch/powerpc/boot/ppc_asm.h
+@@ -61,6 +61,10 @@
+ 
+ #define SPRN_TBRL	268
+ #define SPRN_TBRU	269
++#define SPRN_HSRR0	0x13A	/* Hypervisor Save/Restore 0 */
++#define SPRN_HSRR1	0x13B	/* Hypervisor Save/Restore 1 */
++
++#define MSR_LE		0x0000000000000001
+ 
+ #define FIXUP_ENDIAN						   \
+ 	tdi   0, 0, 0x48; /* Reverse endian of b . + 8		*/ \
+diff --git a/arch/powerpc/boot/serial.c b/arch/powerpc/boot/serial.c
+index 167ee9433de6..e04c1e4063ae 100644
+--- a/arch/powerpc/boot/serial.c
++++ b/arch/powerpc/boot/serial.c
+@@ -132,6 +132,8 @@ int serial_console_init(void)
+ 	else if (dt_is_compatible(devp, "xlnx,opb-uartlite-1.00.b") ||
+ 		 dt_is_compatible(devp, "xlnx,xps-uartlite-1.00.a"))
+ 		rc = uartlite_console_init(devp, &serial_cd);
++	else if (dt_is_compatible(devp, "ibm,opal-console-raw"))
++		rc = opal_console_init(devp, &serial_cd);
+ 
+ 	/* Add other serial console driver calls here */
+ 
+diff --git a/arch/powerpc/boot/types.h b/arch/powerpc/boot/types.h
+index 31393d17a9c1..85565a89bcc2 100644
+--- a/arch/powerpc/boot/types.h
++++ b/arch/powerpc/boot/types.h
+@@ -12,6 +12,16 @@ typedef short			s16;
+ typedef int			s32;
+ typedef long long		s64;
+ 
++/* required for opal-api.h */
++typedef u8  uint8_t;
++typedef u16 uint16_t;
++typedef u32 uint32_t;
++typedef u64 uint64_t;
++typedef s8  int8_t;
++typedef s16 int16_t;
++typedef s32 int32_t;
++typedef s64 int64_t;
++
+ #define min(x,y) ({ \
+ 	typeof(x) _x = (x);	\
+ 	typeof(y) _y = (y);	\
+-- 
+2.8.1
+
diff --git a/openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch b/openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch
new file mode 100644
index 0000000..dde125d
--- /dev/null
+++ b/openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch
@@ -0,0 +1,38 @@
+From b2126431287488f416104f1b97926ec2e0d8fae6 Mon Sep 17 00:00:00 2001
+From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Date: Wed, 13 Jul 2016 11:15:42 +1000
+Subject: [PATCH 08/10] tty/hvc: Use opal irqchip interface if available
+
+Update the hvc driver to use the OPAL irqchip if made available by the
+running firmware. If it is not present, the driver falls back to the
+existing OPAL event number.
+
+Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Cc: <stable@vger.kernel.org> # 4.1.x-
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/tty/hvc/hvc_opal.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
+index 47b54c6aefd2..276b796b24e4 100644
+--- a/drivers/tty/hvc/hvc_opal.c
++++ b/drivers/tty/hvc/hvc_opal.c
+@@ -214,7 +214,13 @@ static int hvc_opal_probe(struct platform_device *dev)
+ 		dev->dev.of_node->full_name,
+ 		boot ? " (boot console)" : "");
+ 
+-	irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
++	irq = irq_of_parse_and_map(dev->dev.of_node, 0);
++	if (!irq) {
++		pr_info("hvc%d: No interrupts property, using OPAL event\n",
++				termno);
++		irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
++	}
++
+ 	if (!irq) {
+ 		pr_err("hvc_opal: Unable to map interrupt for device %s\n",
+ 			dev->dev.of_node->full_name);
+-- 
+2.8.1
+
diff --git a/openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch b/openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch
new file mode 100644
index 0000000..82fabee
--- /dev/null
+++ b/openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch
@@ -0,0 +1,88 @@
+From e51e878aac1ea5018c7accac28afa4db8c620489 Mon Sep 17 00:00:00 2001
+From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Date: Wed, 13 Jul 2016 11:15:41 +1000
+Subject: [PATCH 09/10] tty/hvc: Use IRQF_SHARED for OPAL hvc consoles
+
+Commit 2def86a7200c
+("hvc: Convert to using interrupts instead of opal events")
+enabled the use of interrupts in the hvc_driver for OPAL platforms.
+However on machines with more than one hvc console, any console after
+the first will fail to register an interrupt handler in
+notifier_add_irq() since all consoles share the same IRQ number but do
+not set the IRQF_SHARED flag:
+
+[   51.179907] genirq: Flags mismatch irq 31. 00000000 (hvc_console) vs.
+00000000 (hvc_console)
+[   51.180010] hvc_open: request_irq failed with rc -16.
+
+This error propagates up to hvc_open() and the console is closed, but
+OPAL will still generate interrupts that are not handled, leading to
+rcu_sched stall warnings.
+
+Set IRQF_SHARED when calling request_irq, allowing additional consoles
+to start properly. This is only set for consoles handled by
+hvc_opal_probe(), leaving other types unaffected.
+
+Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Cc: <stable@vger.kernel.org> # 4.1.x-
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/tty/hvc/hvc_console.h | 1 +
+ drivers/tty/hvc/hvc_irq.c     | 7 +++++--
+ drivers/tty/hvc/hvc_opal.c    | 3 +++
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/tty/hvc/hvc_console.h b/drivers/tty/hvc/hvc_console.h
+index 913101980827..798c48d0d32c 100644
+--- a/drivers/tty/hvc/hvc_console.h
++++ b/drivers/tty/hvc/hvc_console.h
+@@ -60,6 +60,7 @@ struct hvc_struct {
+ 	struct winsize ws;
+ 	struct work_struct tty_resize;
+ 	struct list_head next;
++	unsigned long flags;
+ };
+ 
+ /* implemented by a low level driver */
+diff --git a/drivers/tty/hvc/hvc_irq.c b/drivers/tty/hvc/hvc_irq.c
+index c9adb0559f61..57d9df7ee1c9 100644
+--- a/drivers/tty/hvc/hvc_irq.c
++++ b/drivers/tty/hvc/hvc_irq.c
+@@ -14,6 +14,9 @@ static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance)
+ 	/* if hvc_poll request a repoll, then kick the hvcd thread */
+ 	if (hvc_poll(dev_instance))
+ 		hvc_kick();
++	/* We're safe to always return IRQ_HANDLED as the hvcd thread will
++	 * iterate through each hvc_struct
++	 */
+ 	return IRQ_HANDLED;
+ }
+ 
+@@ -28,8 +31,8 @@ int notifier_add_irq(struct hvc_struct *hp, int irq)
+ 		hp->irq_requested = 0;
+ 		return 0;
+ 	}
+-	rc = request_irq(irq, hvc_handle_interrupt, 0,
+-			   "hvc_console", hp);
++	rc = request_irq(irq, hvc_handle_interrupt, hp->flags,
++			"hvc_console", hp);
+ 	if (!rc)
+ 		hp->irq_requested = 1;
+ 	return rc;
+diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
+index 276b796b24e4..510799311099 100644
+--- a/drivers/tty/hvc/hvc_opal.c
++++ b/drivers/tty/hvc/hvc_opal.c
+@@ -230,6 +230,9 @@ static int hvc_opal_probe(struct platform_device *dev)
+ 	hp = hvc_alloc(termno, irq, ops, MAX_VIO_PUT_CHARS);
+ 	if (IS_ERR(hp))
+ 		return PTR_ERR(hp);
++
++	/* hvc consoles on powernv may need to share a single irq */
++	hp->flags = IRQF_SHARED;
+ 	dev_set_drvdata(&dev->dev, hp);
+ 
+ 	return 0;
+-- 
+2.8.1
+
diff --git a/openpower/linux/linux-0007-Release-4.4.14-openpower1.patch b/openpower/linux/0010-Release-4.4.15-openpower1.patch
similarity index 70%
rename from openpower/linux/linux-0007-Release-4.4.14-openpower1.patch
rename to openpower/linux/0010-Release-4.4.15-openpower1.patch
index 7656f4b..812f58a 100644
--- a/openpower/linux/linux-0007-Release-4.4.14-openpower1.patch
+++ b/openpower/linux/0010-Release-4.4.15-openpower1.patch
@@ -1,7 +1,7 @@
-From 916185a5a9dab937e0d2e4cea3f7a8f000f9e021 Mon Sep 17 00:00:00 2001
+From 7404d19736cc4c31ab104b3f4755a929dc3da5f1 Mon Sep 17 00:00:00 2001
 From: Joel Stanley <joel@jms.id.au>
 Date: Thu, 14 Apr 2016 21:40:26 +0930
-Subject: [PATCH 7/7] Release 4.4.14-openpower1
+Subject: [PATCH 10/10] Release 4.4.15-openpower1
 
 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 fadbb9d73c6d..33c5654b1805 100644
+index 979088079338..8b282dddf291 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,7 +1,7 @@
  VERSION = 4
  PATCHLEVEL = 4
- SUBLEVEL = 14
+ SUBLEVEL = 15
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
  NAME = Blurry Fish Butt
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
deleted file mode 100644
index 5c10436..0000000
--- a/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 2481d9f7a822f3e5273c9bd4e273685eeb939b26 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/7] 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 ec9e758d5fcd..0e66476d4866 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -666,6 +666,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.
-  *
-@@ -680,14 +689,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.8.1
-
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
deleted file mode 100644
index 6e1430e..0000000
--- a/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 855a1108e1dc8f18121e16fce490c590c4a51bf8 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/7] 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 0e66476d4866..ce7b10506bac 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -671,7 +671,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.8.1
-
