Re: Linux USB file storage gadget with new UDC

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

 



Hi,

>> How to set "bh->state" to BUF_STATE_EMPTY after the buffer is processed?
>
> It gets set to BUF_STATE_EMPTY in several different places, depending
> on the purpose the buffer was used for.  See bulk_in_complete (your UDC
> driver should call this routine for every request over a bulk-IN
> endpoint, when it is safe for the gadget driver to overwrite the data
> in the transfer buffer and re-use the request). See also
> get_next_command, the line just after the call to received_cbw.

Thanks, i added in UDC driver to call bulk_in_complete for every
request over a bulk in ep, now the gadget driver is able to process
the SCSI Inquiry command. When it comes to SCSI Read Format Capacities
command, the gadget driver gives attention condition error in
check_command() in the code snippet below, and the command is not
processed by do_read_format_capacities().

        if (curlun && curlun->unit_attention_data != SS_NO_SENSE &&
                        fsg->cmnd[0] != INQUIRY &&
                        fsg->cmnd[0] != REQUEST_SENSE) {
                curlun->sense_data = curlun->unit_attention_data;
                curlun->unit_attention_data = SS_NO_SENSE;
                return -EINVAL;
        }

Besides the code snippet, the only place that sets unit_attention data
to SS_NO_SENSE is in handle_exception(). How is UDC driver able to
overcome this problem?

victor
--
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