[U-Boot] [PATCH 1/3] usb, dfu: extract flush code into seperate function
Lukasz Majewski
l.majewski at samsung.com
Fri Mar 14 11:36:40 CET 2014
Hi Heiko,
I'm also CCing Pantelis to the loop.
> 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...
This comment doesn't bring any meaningful information, so can be
removed.
>
> >> + 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!
So, in my opinion, this if can be safely removed.
>
> >
> > 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
BTW: Thanks for proper extension of the DFU state machine in u-boot :-).
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list