[POWERPC] cell: Add spu shutdown method
authorGeoff Levand <geoffrey.levand@am.sony.com>
Fri, 15 Jun 2007 21:17:32 +0000 (07:17 +1000)
committerPaul Mackerras <paulus@samba.org>
Thu, 28 Jun 2007 09:16:32 +0000 (19:16 +1000)
Add a shutdown method to spu_sysdev_class to allow proper spu resource
cleanup on system shutdown.  This is needed to support kexec on the PS3
platform.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/spu_base.c

index a7f5a76..cadcc64 100644 (file)
@@ -462,8 +462,18 @@ void spu_free(struct spu *spu)
 }
 EXPORT_SYMBOL_GPL(spu_free);
 
+static int spu_shutdown(struct sys_device *sysdev)
+{
+       struct spu *spu = container_of(sysdev, struct spu, sysdev);
+
+       spu_free_irqs(spu);
+       spu_destroy_spu(spu);
+       return 0;
+}
+
 struct sysdev_class spu_sysdev_class = {
-       set_kset_name("spu")
+       set_kset_name("spu"),
+       .shutdown = spu_shutdown,
 };
 
 int spu_add_sysdev_attr(struct sysdev_attribute *attr)