
Dear Lukasz Majewski,
[...]
Holy Moly ... can we not make this into simple calls to those subsystems ? Instead invoking command is crazy ;-)
Are they really simple? There's a few other places we do this, and so long as it's documented that DFU depends on CONFIG_FAT_WRITE for writing to fat and so forth.
Well ain't it easier to call fat_write() or similar?
I've decided to use run_command on a purpose.
This call provides clean and reliable API. It is very unlikely that the mmc write <dev> <addr> <start> <size> command will change (or any other). On the other hand the fields of struct mmc are changed from time to time.
I'm afraid it might change with the driver model soon.
Moreover, mmc drivers are also a subject to change (like adding dw_mmc recently). Using run_command also takes the burden of mmc_init() related calls.
Of course the run_command's downside is the speed of execution. But is it so important when one considers, the firmware update?
But as Stephen pointed out, the type checking is much better when used as function.
Side note: DFU uses only EP0 (for transfer and configuration), so this is rather slow communication link.
I see
I'm open for discussion.
Yes please, I think I started some bad flamewar in here :/
Best regards, Marek Vasut