
On Wednesday, July 20, 2011 13:04:47 Andreas Pretzsch wrote:
I also thought about passing NULL for the read buffer, but a quick browse through the code showed that most, but not all SPI drivers are prepared for that. And as there is already a static rx buffer in the spi command code, I preferred to keep a few needless byte copies over fixing all the spi drivers...
those drivers are broken. the SPI API requires them to handle NULL rx or tx buffers. do not cater to broken code by avoiding fixing common code because of bugs in drivers.
Following the common U-Boot way to do this, I'd suggest sspi [<bus>:]<cs>[.<mode>] <bit_len> <dout> [din_env_var] and either never print the read result to the console (my favorite) or only if no env variable to store is passed. To be defined, comments welcome.
is this the common u-boot approach ? seems like extending every random func to take a supplementary env var is the wrong way. if the hush shell simply supported syntax like: foo="`sspi ......`" then every command would get this for free
along these lines, doesnt the general shell provide basic output redirection to support "silencing" all commands rather than having to add a "quiet" flag to them all ? then your script could simply do "sspi ... >/dev/null" (or however u-boot does it).
Not that I know of. Just tried on hush parser, no effect. Also looks like the whole redirect code is disabled by a #ifndef __U_BOOT__. Maybe one could change env stdout before and after, might work, but I'd call that grotesque...
yes, playing with stdout would be awful, but it would work today ;) -mike