DAC960 2.5.67 add call to blk_queue_bounce_limit
PATCH 1/1 DAC960 2.5.67 add call to blk_queue_bounce_limit
The following patch adds a call to blk_queue_bounce_limit to the DAC960 driver. Otherwise, it uses bounce buffering more than it needs to.
-------------------------------------------------------------------------------
drivers/block/DAC960.c +3 -0
@@ -1069,6 +1069,7 @@if (pci_set_dma_mask (Controller->PCIDevice, DAC690_V1_PciDmaMask))return DAC960_Failure (Controller,"DMA mask out of range" ); + Controller->BounceBufferLimit = DAC690_V1_PciDmaMask;if ((hw_type == DAC960_PD_Controller) || (hw_type == DAC960_P_Controller)) { CommandMailboxesSize =0 ;
@@ -1271,6 +1272,7 @@if (pci_set_dma_mask (Controller->PCIDevice, DAC690_V2_PciDmaMask))return DAC960_Failure (Controller,"DMA mask out of range" ); + Controller->BounceBufferLimit = DAC690_V2_PciDmaMask;/* This is a temporary dma mapping, used only in the scope of this function */ CommandMailbox =
@@ -2386,6 +2388,7 @@*/ RequestQueue = &Controller->RequestQueue;blk_init_queue (RequestQueue, DAC960_RequestFunction, &Controller->queue_lock); +blk_queue_bounce_limit (RequestQueue, Controller->BounceBufferLimit); RequestQueue->queuedata = Controller;blk_queue_max_hw_segments (RequestQueue, Controller->DriverScatterGatherLimit);
drivers/block/DAC960.h +1 -5
@@ -62,11 +62,6 @@/* Define the pci dma mask supported by DAC960 V1 and V2 Firmware Controlers - -For now set the V2 mask to only 32 bits. The controller IS capable -of doing 64 bit dma. But I have yet to find out whether this needs to -be explicitely enabled in the controller, or of the controller adapts -automatically. */ #define DAC690_V1_PciDmaMask 0xffffffff
@@ -2370,6 +2365,7 @@unsigned short ControllerScatterGatherLimit;unsigned short DriverScatterGatherLimit;unsigned int ControllerUsageCount; +u64 BounceBufferLimit;unsigned int CombinedStatusBufferLength;unsigned int InitialStatusLength;unsigned int CurrentStatusLength;