On Wed, 22 May 2013, victor yeo wrote:
> I am able to solve the SCSI command timeout problem by adding a code
> to check the hardware register busy bit continuously, in
> kagen2_ep_queue():
>
> do {
> read_hardware_register_busy_bit
> } while (hardware_is_busy)
This is silly. Drivers shouldn't poll in this way. That's what
interrupts are for.
> however, it causes the linux prompt to be non-responsive because the
> checking hardware register code is run continuously. If i add a
> schedule() to the do-while loop, the kagen2_ep_queue() will not be
> continued. How to go about fixing this dilemma?
I can't say much more without seeing the code. However, you should not
need to wait for the hardware to do something -- instead the interrupt
handler routine should be called when the hardware is finished.
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html