[PATCH] ppc44x: Remove PVR_440G* and change usages
Eugene Surovegin
ebs at ebshome.net
Tue Mar 29 15:14:14 EST 2005
On Mon, Mar 21, 2005 at 09:40:49AM -0800, Eugene Surovegin wrote:
[snip]
> > - u32 pvr = mfspr(PVR);
> > - if (pvr == PVR_440GX_RA || pvr == PVR_440GX_RB ||
> > - (pvr == PVR_440GX_RC && p->cpu > 667000000))
> > + if (strcmp(cur_cpu_spec[0]->cpu_name, "440GX Rev. A") == 0 ||
> > + strcmp(cur_cpu_spec[0]->cpu_name, "440GX Rev. B") == 0
> > + || (strcmp(cur_cpu_spec[0]->cpu_name, "440GX Rev. C")
> > + == 0 && p->cpu > 667000000))
>
>
> While I applaud Tom's quest to eliminate _useless_ PVR defines I think
> this change looks strange.
>
> It substitutes simple and clear (for those who are reading this code)
> check to something more involved without good reason, IMHO.
>
> Also, it adds additional "point of failure" making this code more
> fragile. We never used those CPU ID strings anywhere in the kernel
> code before, people are used to the fact that they don't matter much
> (maybe only for user-mode) and it's possible that during some future
> "cleanup" code will break. One could say that we aren't allowed to
> change such strings because something in user-mode could break, and
> while I agree with that, I don't think it's good argument to _add_
> additional point where code could break.
While talking with galak today on IRC, he mentioned one of the reason,
why we may want to use string comparison instead of PVR.
For some chips, e.g. for 8272 family, there is NO way (even if we use
IMMR[16-31] and REV_NUM in addition to PVR) to detect correctly CPU
(which I think is pretty lame, but I digress :). For such cases, board
port can "fixup" CPU name, if this information can be implied by the
board type/revision/etc.
So, I think having a way to specify/name/detect CPU which is more
general and even can solve some real problems, is beneficial.
Therefore, I don't object anymore to such changes :).
--
Eugene
More information about the Linuxppc-embedded
mailing list