On Thursday 30 August 2007, Kumar Gala wrote: > Please pull from 'for-2.6.23' branch of > > master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc.git for-2.6.23 >
I also have a fix for the regression reported by Ishizaki Kou, see below. I've added that to Kumar's patches and uploaded to my git tree. Please pull from master.kernel.org:/pub/scm/linux/kernel/git/arnd/cell-2.6.git for-2.6.23 provided that Jeremy gives his OK. Arnd <>< --- Subject: spu_manage: fix spu_unit_number for celleb device tree From: Christian Krafft <[EMAIL PROTECTED]> This fixes a regression introduced with 2.6.23-rc4 after on some confusion about the device tree interfaces. IBM QS21 device trees provide "physical-id", so we changed the code to run on that and remain compatible with all IBM machines. However, the Toshiba Celleb device tree provides the "unit-id" property, which was in the Linux code, but never used in this way on IBM hardware. Legacy device tree used the reg property for the physical id of an spe. This patch fixes find_spu_unit_number to look for the spu id in that order. The length is checked to avoid misinterpretation in case the attributes unit-id or reg do not contain the id. Signed-off-by: Christian Krafft <[EMAIL PROTECTED]> Signed-off-by: Arnd Bergmann <[EMAIL PROTECTED]> Cc: Jeremy Kerr <[EMAIL PROTECTED]> Cc: Ishizaki Kou <[EMAIL PROTECTED]> Index: linux-2.6/arch/powerpc/platforms/cell/spu_manage.c =================================================================== --- linux-2.6.orig/arch/powerpc/platforms/cell/spu_manage.c +++ linux-2.6/arch/powerpc/platforms/cell/spu_manage.c @@ -48,10 +48,18 @@ static u64 __init find_spu_unit_number(s { const unsigned int *prop; int proplen; + + /* new device trees should provide the physical-id attribute */ prop = of_get_property(spe, "physical-id", &proplen); if (proplen == 4) return (u64)*prop; + /* celleb device tree provides the unit-id */ + prop = of_get_property(spe, "unit-id", &proplen); + if (proplen == 4) + return (u64)*prop; + + /* legacy device trees provide the id in the reg attribute */ prop = of_get_property(spe, "reg", &proplen); if (proplen == 4) return (u64)*prop; _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev