On Thu, 23 Aug 2007 18:12:19 +0200 Arnd Bergmann <[EMAIL PROTECTED]> wrote:
> On Thursday 23 August 2007, [EMAIL PROTECTED] wrote: > > Please check "unit-id" if "physical-id" doesn't exist. Because Celleb > > uses "unit-id" to provide spe_id. Sorry for the late answer, wasn't on cc and had to receive all mails of the last 6 month once again :-( Can you check if the patch below is working with celleb device tree ? ------ Subject: spu_manage: fix spu_unit_number for celleb device tree From: Christian Krafft <[EMAIL PROTECTED]> New device trees provide "physical-id". Celleb device tree provide the "unit-id". 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]> Index: linux/arch/powerpc/platforms/cell/spu_manage.c =================================================================== --- linux.orig/arch/powerpc/platforms/cell/spu_manage.c +++ linux/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; -- Mit freundlichen GrĂ¼ssen, kind regards, Christian Krafft IBM Systems & Technology Group, Linux Kernel Development IT Specialist _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev