[U-Boot] [U-Boot PATCH V2 6/9] usb: ums: add do_extra_command

Lukasz Majewski lukma at denx.de
Wed Apr 19 22:14:23 UTC 2017


Hi Eddie,

> add do_extra_command to let people deal with customized command
> 
> Signed-off-by: Eddie Cai <eddie.cai.linux at gmail.com>
> ---
>  drivers/usb/gadget/f_mass_storage.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/gadget/f_mass_storage.c
> b/drivers/usb/gadget/f_mass_storage.c index 333f069..d431e53 100644
> --- a/drivers/usb/gadget/f_mass_storage.c
> +++ b/drivers/usb/gadget/f_mass_storage.c
> @@ -2168,6 +2168,10 @@ unknown_cmnd:
>  	return 0;
>  }
>  
> +int __weak do_extra_command(struct fsg_common *common)
> +{
> +	return -EINVAL;
> +}
>  /*-------------------------------------------------------------------------*/
>  
>  static int received_cbw(struct fsg_dev *fsg, struct fsg_buffhd *bh)
> @@ -2540,8 +2544,10 @@ int fsg_main_thread(void *common_)
>  		if (!exception_in_progress(common))
>  			common->state = FSG_STATE_DATA_PHASE;
>  
> -		if (do_scsi_command(common) || finish_reply(common))
> +		if ((do_extra_command(common) &&
> do_scsi_command(common)) ||

I must admit that I'm against mixing things. Let's leave f_mass_storage
for mass storage and add f_rockchip_* for separate function.

If possible we can reuse as much as possible from f_*.c and g_dnl.*
files.

> +		    finish_reply(common)) {
>  			continue;
> +		}
>  
>  		if (!exception_in_progress(common))
>  			common->state = FSG_STATE_STATUS_PHASE;




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de


More information about the U-Boot mailing list