Message ID | 20220623030405.1922980-1-neal_liu@aspeedtech.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [RESEND] usb: gadget: f_mass_storage: Make CD-ROM emulation works with Windows OS | expand |
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. > > Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> > --- > 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); > -- > 2.25.1 > Why was this a "RESEND"? Always put the reason why below the --- line so we know what is going on... thanks, greg k-h
> 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. > > > > Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> > > --- Reason for resend: mail recipient is broken. Resend it correctly. --- > > 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); > > -- > > 2.25.1 > > > > Why was this a "RESEND"? Always put the reason why below the --- line > so we know what is going on... > Add reason above, thanks.
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. > Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> > --- > 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. Alan Stern
> 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@aspeedtech.com> > > --- > > 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.
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);
Add read TOC with format 2 to support CD-ROM emulation with Windows OS. This patch is tested on Windows OS Server 2019. Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> --- drivers/usb/gadget/function/f_mass_storage.c | 1 + 1 file changed, 1 insertion(+)