|
@@ -129,6 +129,14 @@ static int slave_configure(struct scsi_device *sdev)
|
|
|
max_sectors);
|
|
|
}
|
|
|
|
|
|
+ /* Some USB host controllers can't do DMA; they have to use PIO.
|
|
|
+ * They indicate this by setting their dma_mask to NULL. For
|
|
|
+ * such controllers we need to make sure the block layer sets
|
|
|
+ * up bounce buffers in addressable memory.
|
|
|
+ */
|
|
|
+ if (!us->pusb_dev->bus->controller->dma_mask)
|
|
|
+ blk_queue_bounce_limit(sdev->request_queue, BLK_BOUNCE_HIGH);
|
|
|
+
|
|
|
/* We can't put these settings in slave_alloc() because that gets
|
|
|
* called before the device type is known. Consequently these
|
|
|
* settings can't be overridden via the scsi devinfo mechanism. */
|