[U-Boot] [PATCH 1/3] usb, dfu: extract flush code into seperate function
Heiko Schocher
hs at denx.de
Thu Mar 13 06:31:03 CET 2014
Hello Marek,
Am 12.03.2014 12:43, schrieb Marek Vasut:
> On Wednesday, March 12, 2014 at 11:01:19 AM, Heiko Schocher wrote:
>> move the flushing code into an extra function dfu_flush(),
>> so it can be used from other code.
>>
>> Signed-off-by: Heiko Schocher<hs at denx.de>
>> Cc: Lukasz Majewski<l.majewski at samsung.com>
>> Cc: Kyungmin Park<kyungmin.park at samsung.com>
>> Cc: Marek Vasut<marex at denx.de>
>> ---
>> drivers/dfu/dfu.c | 46 ++++++++++++++++++++++++++--------------------
>> include/dfu.h | 1 +
>> 2 files changed, 27 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
>> index 56e69fd..193e047 100644
>> --- a/drivers/dfu/dfu.c
>> +++ b/drivers/dfu/dfu.c
>> @@ -127,6 +127,31 @@ static int dfu_write_buffer_drain(struct dfu_entity
>> *dfu) return ret;
>> }
>>
>> +int dfu_flush(struct dfu_entity *dfu, void *buf, int size, int
>> blk_seq_num) +{
>> + int ret = 0;
>> +
>> + /* end? */
>
> What does this comment mean ? I don't understand it ...
Comes from original code... Thinking about it, it seems better to
let this comment and the below "if" in the dfu_write function...
>> + if (size == 0) {
>
> You can check this like so:
>
> if (size)
> return;
... as when moving this "if" back to dfu_write(), this "if" kindly
disappears in the patch 2/3 of this series, as calling dfu_flush()
is only in the new dfuMANIFEST state necessary, which is called at
the end of the dfu transfer, so no need for checking, if end of
size is reached!
>
> code
> code
> code
>
> This would cut down the indent, no ?
Yes. Did the above change and this "if" is no longer necessary ;-)
I will wait for comments from Lukasz before posting v2.
> Please let's fix this when this popped up, either in separate patch or wrap it
> into this one.
>
>> + /* Now try and flush to the medium if needed. */
>> + if (dfu->flush_medium)
>> + ret = dfu->flush_medium(dfu);
>> + printf("\nDFU complete CRC32: 0x%08x\n", dfu->crc);
>> +
>> + /* clear everything */
>> + dfu_free_buf();
>> + dfu->crc = 0;
>> + dfu->offset = 0;
>> + dfu->i_blk_seq_num = 0;
>> + dfu->i_buf_start = dfu_buf;
>> + dfu->i_buf_end = dfu_buf;
>> + dfu->i_buf = dfu->i_buf_start;
>> +
>> + dfu->inited = 0;
>> + }
>> + return ret;
>> +}
> [...]
Thanks!
bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list