RE: [PATCH RESEND] usb: gadget: f_mass_storage: Make CD-ROM emulation works with Windows OS

From: Neal Liu
Date: Thu Jun 23 2022 - 22:11:25 EST


> On Thu, Jun 23, 2022 at 11:04:05AM +0800, Neal Liu wrote:
> > Add read TOC with format 2 to support CD-ROM emulation with Windows
> > OS.
> > This patch is tested on Windows OS Server 2019.
>
> This description says "format 2", but the patch actually adds code for the case
> where format is 1. This sort of mistake is not acceptable.

Sorry for typo. I'll update it for next patch.

>
> > Signed-off-by: Neal Liu <neal_liu@xxxxxxxxxxxxxx>
> > ---
> > drivers/usb/gadget/function/f_mass_storage.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/usb/gadget/function/f_mass_storage.c
> > b/drivers/usb/gadget/function/f_mass_storage.c
> > index 3a77bca0ebe1..3c2a5f1e8b66 100644
> > --- a/drivers/usb/gadget/function/f_mass_storage.c
> > +++ b/drivers/usb/gadget/function/f_mass_storage.c
> > @@ -1209,6 +1209,7 @@ static int do_read_toc(struct fsg_common
> > *common, struct fsg_buffhd *bh)
> >
> > switch (format) {
> > case 0:
> > + case 1:
> > /* Formatted TOC */
> > len = 4 + 2*8; /* 4 byte header + 2 descriptors */
> > memset(buf, 0, len);
>
> When format is 1, the driver is supposed to ignore the start_track value. Your
> patch does not do this.
>
> The default case in this switch statement has a comment saying that
> Mutil-session is not supported. As a result of this change, it now _is_
> supported. The patch needs to update that comment.

Okay, thanks for pointing out. I'll update it as well.