On Wednesday 27 September 2006 20:45, Michael Buesch wrote:
> On Wednesday 27 September 2006 20:25, Larry Finger wrote:
> > Michael Buesch wrote:
> > > On Tuesday 26 September 2006 22:19, Igor Korot wrote:
> > >> Hi, Larry,
> > >> I applied the 10-pcs patch to the kernel (gentoo-sources 2.6.17-r7), and 
> > >> it did recognize
> > >> the card.
> > >> I will put the output of the files here:
> > >>
> > >> [EMAIL PROTECTED] ~ $ su
> > >> Password:
> > >> localhost igor # modprobe bcm43xx
> > >> localhost igor # dmesg |tail
> > >> bcm43xx: Number of cores: 4
> > >> bcm43xx: Core 0: ID 0x800, rev 0x1000, vendor 0x4243, enabled
> > >                                  ^^^^^^
> > > WTF??
> > > 
> > 
> > The appropriate code section is
> > 
> >          core_id = (sb_id_hi & 0x8FF0) >> 4;
> >          core_rev = (sb_id_hi & 0x7000) >> 8 | (sb_id_hi & 0xF);
> >          core_vendor = (sb_id_hi & 0xFFFF0000) >> 16;
> > 
> > 
> > Is this a compiler error?
> > 
> > Igor, what do you get with a 'gcc --version' command?
> 
> Uh, oh. Does someone know from the top of the head if
> the | operator has precedence over the >> operator? I guess so...
> 
> Please try this:
>       core_rev = ((sb_id_hi & 0x7000) >> 8) | (sb_id_hi & 0xF);


Hm, testing on my compiler
gcc (GCC) 4.0.4 20060630 (prerelease) (Ubuntu 4.0.3-4)
Indicates that >> has higher precedence than |. So the code
correctly compiles here.
Might be some compiler bug, though.

-- 
Greetings Michael.
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to