From: matthieu castet <castet.matthieu@free.fr>
To: mdharm-kernel@one-eyed-alien.net, linux-usb@vger.kernel.org,
Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mass storage : emulation of sat scsi_pass_thru with ATACB
Date: Sat, 08 Mar 2008 21:08:26 +0100 [thread overview]
Message-ID: <47D2F23A.4020103@free.fr> (raw)
In-Reply-To: <20080308183125.GB2820@one-eyed-alien.net>
Hi Matthew,
thanks for your comments
Matthew Dharm wrote:
> Why are you using an initializer instead of a new protocol code?
Because using a new protocol code means I need to patch all the place
where there is a comparison between us->subclass and US_SC_SCSI.
After all I am US_SC_SCSI with a special case for ATA12 & ATA16 commands.
I don't translate all scsi to atacb (that's what does US_SC_ISD200).
>
> Most of this should probably be moved into it's own file, just like all of
> the other protocol handlers.
Ok, I will move it in another file.
>
> Actually, why do you even have a separate 'dispatcher' function? Why not
> just one protocol handler function which checks the command at the top and
> calls invoke_transport there?
What do you means by having a separate 'dispatcher' function?
You means why I have 2 functions emulate_pass_thru_with_atacb and
usb_stor_transparent_scsi_command_atacb ?
I did 2 functions for having a code more clean.
You suggest something like
void usb_stor_transparent_scsi_command_atacb(struct scsi_cmnd *srb,
struct us_data *us)
{
if (srb->cmnd[0] != ATA_16 && srb->cmnd[0] != ATA_12) {
usb_stor_invoke_transport(srb, us);
return;
}
copy emulate_pass_thru_with_atacb code here
}
>
> Also, unless ATACB is a new standard (and I don't think it is, as the
> Cypress datasheet uses the term 'vendor specific'), then your functions
> need renaming. Instead of 'emulate_pass_thru_with_atacb', how about
> something like 'cypress_atacb' -- since it's already a protocol handler,
> everyone already knows it's for passing commands.
But 'emulate_pass_thru_with_atacb' only handle ATA pass_thru scsi
commands. It doesn't translate all scsi commands to atacb like
'cypress_atacb' could suggest.
That's why I put 'usb_stor_transparent_scsi_command_atacb' saying it is
transparent_scsi_command + atacb support.
Matthieu
next prev parent reply other threads:[~2008-03-08 20:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-08 17:32 [PATCH] mass storage : emulation of sat scsi_pass_thru with ATACB matthieu castet
2008-03-08 18:31 ` Matthew Dharm
2008-03-08 20:08 ` matthieu castet [this message]
2008-03-08 21:21 ` Matthew Dharm
2008-03-09 8:21 ` matthieu castet
2008-03-09 18:45 ` Matthew Dharm
2008-03-09 21:42 ` matthieu castet
2008-03-10 1:20 ` Matthew Dharm
2008-03-13 21:22 ` matthieu castet
2008-03-14 0:51 ` Matthew Dharm
[not found] ` <20080318221207.GY2820@one-eyed-alien.net>
2008-03-19 18:40 ` matthieu castet
2008-03-19 20:02 ` Matthew Dharm
2008-03-20 21:39 ` patch usb-mass-storage-emulation-of-sat-scsi_pass_thru-with-atacb.patch added to gregkh-2.6 tree gregkh
2008-03-09 10:13 ` [PATCH] mass storage : emulation of sat scsi_pass_thru with ATACB Alan Cox
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=47D2F23A.4020103@free.fr \
--to=castet.matthieu@free.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mdharm-kernel@one-eyed-alien.net \
/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.