On 07/05/11 10:04, Sylvain Munaut wrote:
The enums
should never be changed; that is the meaning of it all. The idea
is to have consistent ids for the type of uart across the whole tree and
have it mapped to the correct uart only in the platform specific uart.c
But it is not "platform" specific, it is _board_ specific. So the same
driver uart.c must deal with several mapping.
Yes, I know. Ultimately, there should be something like "#include
<mach/uart.h>" which will pull in the correct settings per board. But
that seemed overkill to me for now (seeing that there might be a move to
an RTOS anyway). I thought board differences can be easier handled on a
per-platform basis until then.
IMHO drivers should get as parameter the index of the
device you want
to address and not some global id and map it internally to the driver.
What if I want for debug to output something on UART3 or something,
adding something like uart_putc(3, 'b') is much easier than having to
go add a new value for the enum and its mapping ...
That is easier, but not portable. What if some other board doesn't have
a UART3? Adding MY_DEBUG_UART does not really hurt IMHO and other boards
will notice that there is something to take care of.
If something doesn't get recompiled when a header
change or something,
you must fix the build system.
This is true, of course...
The current system of trying to build for all
platforms at once is
unsustainable IMHO and we should just have something like
make TARGET=compal_e88 make TARGET=sciphone_g2 or something and if
... right, too ...
the TARGET is != from the last built target, just
assume everything is
dirty.
... though in my book, lib/console.c should not recompile if the
underlying platform changes (arch is something different, of course ;)).
If lib/* depends on the platform (like with UART numbering), to me this
sounds like something to be fixed.
I don't feel strong about this patch, though. If it is not good enough,
we can just skip it. I start to wonder if it makes sense to do such kind
of work before the RTOS comes along?
Regards,
Wolfram