Re: USB 3.0 in Linux main stream kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 27/01/09 21:01, Sarah Sharp wrote:
I'm sorry to hear that.  Could you send a summary of the work you've done, and
any changes you had to make to the USB MSD driver, the SCSI core, or the USB
core?  I think you can't post the code because the UASP spec isn't ratified and
public yet, but I am interested in the changes.

OK.

All of the changes I've made are confined to the MSD driver.

The main change I've made is in extending the event model. The current thread function has a very simple event signalling model: when signalled through a semaphore, the action taken depends on whether us->srb is NULL or not - NULL signals exit, non-NULL signals process the SCSI command.

I added a new thread entry function with the driver selecting which function to use based on what kind of device we were talking to (so existing MSD functionality was unchanged).

This function processed an event list. There are 4 types of events to process: new command, packet from device on status pipe, shutdown and abort task.

Events on the event list may also have a parameter. F'r'instance, the new command event had information about the command to be executed and the receive packet event had a reference to the command context.

New command:
Command is sent and a "command context" is added to the command context list

Process packet:
The thread would have the packet received from the device and the command context (this would have been determined in the completion function). This would provide information as to what action was required next: send/receive bulk data or return status through scsi_done().

After processing events, the thread would issue an asynchronous read on the status pipe if there were commands in progress and there wasn't a status read in progress.

(Command and bulk data transactions were done synchronously for ease of implementation)

I think that's the main points.

--
Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux