PS3 patches for 2.6.24
Subsystems (2)
cover PS3 patches for 2.6.24
Paul,
This is a small set of patches for 2.6.24.
PATCH 1/3 PS3: Fix CONFIG_SMP=n, CONFIG_KEXEC=y build
From: Jeremy Kerr <[email protected]>
Currently, the ps3 kernel fails to build without smp but with kexec, as ps3_kexec_cpu_down needs ps3_smp_cleanup_cpu, which isn't defined on UP kernels. This change adds an empty ps3_smp_cleanup_cpu for UP kernels.
Booted on ps3.
Signed-off-by Jeremy Kerr <[email protected]>
Signed-off-by Geoff Levand <[email protected]>
--- arch/powerpc/platforms/ps3/platform.h | 4 ++++ 1 file changed, 4 insertions(+)
arch/powerpc/platforms/ps3/platform.h +4 -0
@@ -47,7 +47,11 @@ void __init ps3_register_ipi_debug_brk(u/* smp */ void smp_init_ps3 (void ); +#ifdef CONFIG_SMP void ps3_smp_cleanup_cpu (int cpu); +#else +static inline void ps3_smp_cleanup_cpu (int cpu) { } +#endif /* time */
PATCH 2/3 PS3: Add new LV1 error codes
In reply to [email protected]From: Geert Uytterhoeven <[email protected]>
PS3: Add new error codes that may be returned by the LV1 hypervisor
Signed-off-by Geert Uytterhoeven <[email protected]>
Signed-off-by Geoff Levand <[email protected]>
--- include/asm-powerpc/ps3.h | 9 +++++++++ 1 file changed, 9 insertions(+)
include/asm-powerpc/ps3.h +9 -0
@@ -229,6 +229,9 @@ enum lv1_result {LV1_INVALID_CLASS_ID =-21 ,LV1_CONSTRAINT_NOT_SATISFIED =-22 ,LV1_ALIGNMENT_ERROR =-23 , +LV1_HARDWARE_ERROR =-24 , +LV1_INVALID_DATA_FORMAT =-25 , +LV1_INVALID_OPERATION =-26 , LV1_INTERNAL_ERROR = -32768, };
@@ -284,6 +287,12 @@ static inline const char* ps3_result(intreturn "LV1_CONSTRAINT_NOT_SATISFIED (-22)" ;case LV1_ALIGNMENT_ERROR :return "LV1_ALIGNMENT_ERROR (-23)" ; +case LV1_HARDWARE_ERROR : +return "LV1_HARDWARE_ERROR (-24)" ; +case LV1_INVALID_DATA_FORMAT : +return "LV1_INVALID_DATA_FORMAT (-25)" ; +case LV1_INVALID_OPERATION : +return "LV1_INVALID_OPERATION (-26)" ;case LV1_INTERNAL_ERROR :return "LV1_INTERNAL_ERROR (-32768)" ;default :
PATCH 3/3 PS3: Enhance storage probe debug output
In reply to [email protected]Add some more info to the PS3 storage probe debug output.
Signed-off-by Geoff Levand <[email protected]>
--- arch/powerpc/platforms/ps3/device-init.c | 24 ++++++++++++++++-------- 1 files changed, 16 insertions(+), 8 deletions(-)
arch/powerpc/platforms/ps3/device-init.c +16 -8
@@ -297,8 +297,8 @@ static int ps3_storage_wait_for_device(cu64 dev_port; } *notify_event; -pr_debug (" -> %s:%u: bus_id %u, dev_id %u, dev_type %u\n" , __func__, - __LINE__, repo->bus_id, repo->dev_id, repo->dev_type); +pr_debug (" -> %s:%u: (%u:%u:%u)\n" , __func__, __LINE__, repo->bus_id, + repo->dev_id, repo->dev_type); buf =kzalloc (512 ,GFP_KERNEL );if (!buf)
@@ -359,6 +359,11 @@ static int ps3_storage_wait_for_device(cbreak ; } +pr_debug ("%s:%d: notify event (%u:%u:%u): event_type 0x%lx, " +"port %lu\n" , __func__, __LINE__, repo->bus_index, + repo->dev_index, repo->dev_type, + notify_event->event_type, notify_event->dev_port); +if (notify_event->event_type != notify_region_probe || notify_event->bus_id != repo->bus_id) { pr_debug("%s:%u: bad notify_event: event %lu, "
@@ -370,8 +375,9 @@ static int ps3_storage_wait_for_device(cif (notify_event->dev_id == repo->dev_id && notify_event->dev_type == repo->dev_type) { -pr_debug ("%s:%u: device ready: dev_id %u\n" , __func__, - __LINE__, repo->dev_id); +pr_debug ("%s:%u: device ready (%u:%u:%u)\n" , __func__, + __LINE__, repo->bus_index, repo->dev_index, + repo->dev_type); error =0 ;break ; }
@@ -412,9 +418,10 @@ static int ps3_setup_storage_dev(const sreturn -ENODEV ; } -pr_debug ("%s:%u: index %u:%u: port %lu blk_size %lu num_blocks %lu " +pr_debug ("%s:%u: (%u:%u:%u): port %lu blk_size %lu num_blocks %lu " "num_regions %u\n" , __func__, __LINE__, repo->bus_index, - repo->dev_index, port, blk_size, num_blocks, num_regions); + repo->dev_index, repo->dev_type, port, blk_size, num_blocks, + num_regions); p = kzalloc(sizeof(struct ps3_storage_device) + num_regions * sizeof(struct ps3_storage_region),
@@ -681,8 +688,9 @@ static int ps3_probe_thread(void *data)pr_debug ("%s:%u: find device error.\n" , __func__, __LINE__); else { -pr_debug ("%s:%u: found device\n" , __func__, - __LINE__); +pr_debug ("%s:%u: found device (%u:%u:%u)\n" , + __func__, __LINE__, repo->bus_index, + repo->dev_index, repo->dev_type);ps3_register_repository_device (repo);ps3_repository_bump_device (repo); ms =250 ;