From: Roger Quadros <roger.quadros@nokia.com>
To: ext Sergei Shtylyov <sshtylyov@mvista.com>
Cc: <gregkh@suse.de>, <linux-usb@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/3] usb: gadget: storage: Add fsg_get_toc helper
Date: Wed, 9 Mar 2011 16:08:50 +0200 [thread overview]
Message-ID: <4D7789F2.7000203@nokia.com> (raw)
In-Reply-To: <4D77836D.30009@ru.mvista.com>
Hi,
On 03/09/2011 03:41 PM, ext Sergei Shtylyov wrote:
> Hello.
>
>> --- a/drivers/usb/gadget/storage_common.c
>> +++ b/drivers/usb/gadget/storage_common.c
>> @@ -655,6 +655,85 @@ static void store_cdrom_address(u8 *dest, int msf, u32 addr)
>> }
>> }
>>
>> +/*
>
> The kerneldoc comments should start with "/**".
OK.
>
>> + * put_toc() - Builds a TOC with required format @format.
>
> The function is called gsg_get_toc, isn't it?
Yes :). My initial version was named put_toc(). will correct it.
>
>> + * @curlun: The LUN for which the TOC has to be built
>> + * @msf: Min Sec Frame format or LBA format for address
>> + * @format: TOC format code
>> + * @buf: the buffer into which the TOC is built
>> + *
>> + * Builds a Table of Content which can be used as data for READ_TOC command.
>> + * The TOC simulates a single session, single track CD-ROM mode 1 disc.
>> + *
>> + * Returns number of bytes written to @buf, -EINVAL if format not supported.
>> + */
>> +static int fsg_get_toc(struct fsg_lun *curlun, int msf, int format, u8 *buf)
>> +{
>> + switch (format) {
>> + case 0:
>> + /* Formatted TOC */
>> + memset(buf, 0, 20);
>> + buf[1] = (20-2); /* TOC data length */
>
> Parens not needed here. And kernel style assumes putting spacves around operators.
I copied case 0: code from file_storage.c. But will correct it.
>
>> + buf[2] = 1; /* First track number */
>> + buf[3] = 1; /* Last track number */
>> + buf[5] = 0x16; /* Data track, copying allowed */
>> + buf[6] = 0x01; /* Only track is number 1 */
>> + store_cdrom_address(&buf[8], msf, 0);
>> +
>> + buf[13] = 0x16; /* Lead-out track is data */
>> + buf[14] = 0xAA; /* Lead-out track number */
>> + store_cdrom_address(&buf[16], msf, curlun->num_sectors);
>> + return 20;
>> + break;
>> +
>> + case 2:
>> + /* Raw TOC */
>> + memset(buf, 0, 37); /* Header + A0, A1& A2 descriptors */
>> + buf[1] = 37; /* 4 + 3*11 */
>> + buf[2] = 1; /* First complete session */
>> + buf[3] = 2; /* Last complete session */
>> +
>> + buf += 4;
>> + /* A0 point */
>> + buf[0] = 1; /* Session number */
>> + buf[1] = 0x16; /* Data track, copying alowed */
>> + /* 2 - Track number 0 -> TOC */
>> + buf[3] = 0xA0; /* Point A0 */
>> + /* 4, 5, 6 - Min, sec, frame is zero */
>> + /* 7 - zero */
>> + buf[8] = 1; /* Pmin: 1st track number */
>> + /* 9 - disc type 0: CD-ROM/DA with 1st track in mode 1 */
>> + /* 10 - pframe 0 */
>> +
>> + buf += 11;
>> + /* A1 point*/
>> + buf[0] = 1; /* Session number */
>> + buf[1] = 0x16; /* Data track, copying alowed */
>> + /* 2 - Track number 0 -> TOC */
>> + buf[3] = 0xA1; /* Point A1 */
>> + /* 4, 5, 6 - Min, sec, frame is zero */
>> + /* 7, zero */
>> + buf[8] = 1; /* Pmin: last track number */
>> + /* 9, 10 - pmin and pframe are 0 */
>
> The above code is repetitive -- might be worth factoring out into a function.
>
I would leave it as it is as nobody else would use the function.
> OK, but where this function is called from?
>
from file_storage.c and f_mass_storage.c in the next two patches of this series.
--
regards,
-roger
next prev parent reply other threads:[~2011-03-09 14:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-09 12:21 [PATCH 0/3] usb: gadget: storage: Make CD-ROM emulation work with Mac OS-X Roger Quadros
2011-03-09 12:21 ` [PATCH 1/3] usb: gadget: storage: Add fsg_get_toc helper Roger Quadros
2011-03-09 12:21 ` [PATCH 2/3] usb: gadget: file_storage: Make CD-ROM emulation work with Mac OS-X Roger Quadros
2011-03-09 12:21 ` [PATCH 3/3] usb: gadget: f_mass_storage: " Roger Quadros
2011-03-09 13:41 ` [PATCH 1/3] usb: gadget: storage: Add fsg_get_toc helper Sergei Shtylyov
2011-03-09 14:08 ` Roger Quadros [this message]
2011-03-09 15:10 ` Alan Stern
2011-03-09 15:37 ` Roger Quadros
2011-03-09 16:07 ` Alan Stern
2011-03-10 14:54 ` Roger Quadros
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D7789F2.7000203@nokia.com \
--to=roger.quadros@nokia.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=sshtylyov@mvista.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.