Skip to contentSkip to conversation

PS3 patches for 2.6.26

PATCH New Geoff Levand 1 participant 2 messages Mar 27, 2008 – Mar 28, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover PS3 patches for 2.6.26

Paul and Jeff,

This is a small set of PS3 patches for 2.6.26. Patches 1-5 are ready to apply to the powerpc tree.

Patch 6 for the network driver needs an ACK by Jeff.

[1/6] PS3: Fix unlikely typo in ps3_get_irq [2/6] PS3: Add ps3_get_speid routine
[3/6] PS3: Bootwrapper improvements
[4/6] PS3: Save power in busy loops on halt [5/6] PS3: Sys-manager Wake-on-LAN support [6/6] PS3: Gelic network driver Wake-on-LAN support

-Geoff

#1 lore raw

PATCH 1/1 PS3: Split device setup for static vs. dynamic devices

From: Geert Uytterhoeven <[email protected]>

Split the device setup code in ps3_register_repository_device() in two routines:
1. ps3_setup_static_device(), to handle the setup of static devices in the PS3 repository, which can be __init,
2. ps3_setup_dynamic_device(), to handle the setup of storage devices that may appear later in the PS3 repository.

This fixes a few section mismatch warnings.

---

Hi Paul,

Here is another one for 2.6.26 that Geert just sent me. Please apply.

-Geoff

 arch/powerpc/platforms/ps3/device-init.c |   78 ++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 32 deletions(-)
arch/powerpc/platforms/ps3/device-init.c +46 -32
@@ -499,41 +499,14 @@ static int __init ps3_register_graphics_
 }
 
 /**
- * ps3_register_repository_device - Register a device from the repositiory info.
- *
+ * ps3_setup_dynamic_device - Setup a dynamic device from the repository
  */
 
-static int ps3_register_repository_device(
-	const struct ps3_repository_device *repo)
+static int ps3_setup_dynamic_device(const struct ps3_repository_device *repo)
 {
 	int result;
 
 	switch (repo->dev_type) {
-	case PS3_DEV_TYPE_SB_GELIC:
-		result = ps3_setup_gelic_device(repo);
-		if (result) {
-			pr_debug("%s:%d ps3_setup_gelic_device failed\n",
-				__func__, __LINE__);
-		}
-		break;
-	case PS3_DEV_TYPE_SB_USB:
-
-		/* Each USB device has both an EHCI and an OHCI HC */
-
-		result = ps3_setup_ehci_device(repo);
-
-		if (result) {
-			pr_debug("%s:%d ps3_setup_ehci_device failed\n",
-				__func__, __LINE__);
-		}
-
-		result = ps3_setup_ohci_device(repo);
-
-		if (result) {
-			pr_debug("%s:%d ps3_setup_ohci_device failed\n",
-				__func__, __LINE__);
-		}
-		break;
 	case PS3_DEV_TYPE_STOR_DISK:
 		result = ps3_setup_storage_dev(repo, PS3_MATCH_ID_STOR_DISK);
 
@@ -572,6 +545,48 @@ static int ps3_register_repository_devic
 	return result;
 }
 
+/**
+ * ps3_setup_static_device - Setup a static device from the repository
+ */
+
+static int __init ps3_setup_static_device(const struct ps3_repository_device *repo)
+{
+	int result;
+
+	switch (repo->dev_type) {
+	case PS3_DEV_TYPE_SB_GELIC:
+		result = ps3_setup_gelic_device(repo);
+		if (result) {
+			pr_debug("%s:%d ps3_setup_gelic_device failed\n",
+				__func__, __LINE__);
+		}
+		break;
+	case PS3_DEV_TYPE_SB_USB:
+
+		/* Each USB device has both an EHCI and an OHCI HC */
+
+		result = ps3_setup_ehci_device(repo);
+
+		if (result) {
+			pr_debug("%s:%d ps3_setup_ehci_device failed\n",
+				__func__, __LINE__);
+		}
+
+		result = ps3_setup_ohci_device(repo);
+
+		if (result) {
+			pr_debug("%s:%d ps3_setup_ohci_device failed\n",
+				__func__, __LINE__);
+		}
+		break;
+
+	default:
+		return ps3_setup_dynamic_device(repo);
+	}
+
+	return result;
+}
+
 static void ps3_find_and_add_device(u64 bus_id, u64 dev_id)
 {
 	struct ps3_repository_device repo;
@@ -601,7 +616,7 @@ found:
 		pr_debug("%s:%u: device %lu:%lu found after %u retries\n",
 			 __func__, __LINE__, bus_id, dev_id, retries);
 
-	ps3_register_repository_device(&repo);
+	ps3_setup_dynamic_device(&repo);
 	return;
 }
 
@@ -905,8 +920,7 @@ static int __init ps3_register_devices(v
 
 	ps3_register_graphics_devices();
 
-	ps3_repository_find_devices(PS3_BUS_TYPE_SB,
-		ps3_register_repository_device);
+	ps3_repository_find_devices(PS3_BUS_TYPE_SB, ps3_setup_static_device);
 
 	ps3_register_sound_devices();