
On Wed, Apr 27, 2011 at 2:12 PM, Wolfgang Denk wd@denx.de wrote:
Dear Andy Fleming,
In message BANLkTimmtV9L9P75A-PLez5rhVy4hYg=gA@mail.gmail.com you wrote:
From now on, follow the general rule "mmc dev [dev]" to change the mmc command applied device, like ide and usb...
...
I'd really prefer if there were still the option to specify the device in the read/write commands. I appreciate the convenience of not having to specify it every time, but I feel that by doing things this way, we create an artificial separation between a transaction, and the target of the transaction. It tends to encourage a notion that a transaction can only be done to the global-current device, which is fine for command-line interfaces, but can result in broken programming interfaces
PLease see the preceeding thread for the reasons for this interface (make it the same as what we have with USB, IDE, etc.).
Yes, it is not a nice one. We really want a beter device model.
I'm fine with supporting a consistent interface, but I think what I'm suggesting doesn't break that. After all, if we follow my suggestion, one can quite happily pretend that the command line interface requires:
mmc dev x:y mmc read <addr> <blk> <cnt>
It's just that the other way would also be possible. I re-read the thread where this was discussed, and while I definitely agree that the originally proposed solution was highly error-prone, I think *allowing* users to do this is fine:
mmc read <dev>:<part> <addr> <blk> <cnt>
Is there a reason that this wouldn't work with the current model?
Andy