ide: remove CONFIG_BLK_DEV_IDEDMA_FORCED
This code doesn't use pci_assign_resource() and ide_get_or_set_dma_base() uses pci_resource_start() to get DMA base address so it has no chance of working. Moreover this belongs to PCI quirks (in case somebody would like to fix it). Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -435,14 +435,6 @@ config BLK_DEV_IDEDMA_PCI
|
|||||||
bool
|
bool
|
||||||
select BLK_DEV_IDEPCI
|
select BLK_DEV_IDEPCI
|
||||||
|
|
||||||
config BLK_DEV_IDEDMA_FORCED
|
|
||||||
bool "Force enable legacy 2.0.X HOSTS to use DMA"
|
|
||||||
depends on BLK_DEV_IDEDMA_PCI
|
|
||||||
help
|
|
||||||
This is an old piece of lost code from Linux 2.0 Kernels.
|
|
||||||
|
|
||||||
Generally say N here.
|
|
||||||
|
|
||||||
# TODO: remove it
|
# TODO: remove it
|
||||||
config IDEDMA_ONLYDISK
|
config IDEDMA_ONLYDISK
|
||||||
bool "Enable DMA only for disks "
|
bool "Enable DMA only for disks "
|
||||||
|
@@ -145,27 +145,13 @@ static int ide_setup_pci_baseregs (struct pci_dev *dev, const char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
|
#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_IDEDMA_FORCED
|
|
||||||
/*
|
|
||||||
* Long lost data from 2.0.34 that is now in 2.0.39
|
|
||||||
*
|
|
||||||
* This was used in ./drivers/block/triton.c to do DMA Base address setup
|
|
||||||
* when PnP failed. Oh the things we forget. I believe this was part
|
|
||||||
* of SFF-8038i that has been withdrawn from public access... :-((
|
|
||||||
*/
|
|
||||||
#define DEFAULT_BMIBA 0xe800 /* in case BIOS did not init it */
|
|
||||||
#define DEFAULT_BMCRBA 0xcc00 /* VIA's default value */
|
|
||||||
#define DEFAULT_BMALIBA 0xd400 /* ALI's default value */
|
|
||||||
#endif /* CONFIG_BLK_DEV_IDEDMA_FORCED */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ide_get_or_set_dma_base - setup BMIBA
|
* ide_get_or_set_dma_base - setup BMIBA
|
||||||
* @hwif: Interface
|
* @hwif: Interface
|
||||||
*
|
*
|
||||||
* Fetch the DMA Bus-Master-I/O-Base-Address (BMIBA) from PCI space:
|
* Fetch the DMA Bus-Master-I/O-Base-Address (BMIBA) from PCI space.
|
||||||
* If need be we set up the DMA base. Where a device has a partner that
|
* Where a device has a partner that is already in DMA mode we check
|
||||||
* is already in DMA mode we check and enforce IDE simplex rules.
|
* and enforce IDE simplex rules.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
|
static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
|
||||||
@@ -173,12 +159,6 @@ static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
|
|||||||
unsigned long dma_base = 0;
|
unsigned long dma_base = 0;
|
||||||
struct pci_dev *dev = hwif->pci_dev;
|
struct pci_dev *dev = hwif->pci_dev;
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_IDEDMA_FORCED
|
|
||||||
int second_chance = 0;
|
|
||||||
|
|
||||||
second_chance_to_dma:
|
|
||||||
#endif /* CONFIG_BLK_DEV_IDEDMA_FORCED */
|
|
||||||
|
|
||||||
if (hwif->mmio)
|
if (hwif->mmio)
|
||||||
return hwif->dma_base;
|
return hwif->dma_base;
|
||||||
|
|
||||||
@@ -192,26 +172,6 @@ second_chance_to_dma:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_IDEDMA_FORCED
|
|
||||||
/* FIXME - should use pci_assign_resource surely */
|
|
||||||
if ((!dma_base) && (!second_chance)) {
|
|
||||||
unsigned long set_bmiba = 0;
|
|
||||||
second_chance++;
|
|
||||||
switch(dev->vendor) {
|
|
||||||
case PCI_VENDOR_ID_AL:
|
|
||||||
set_bmiba = DEFAULT_BMALIBA; break;
|
|
||||||
case PCI_VENDOR_ID_VIA:
|
|
||||||
set_bmiba = DEFAULT_BMCRBA; break;
|
|
||||||
case PCI_VENDOR_ID_INTEL:
|
|
||||||
set_bmiba = DEFAULT_BMIBA; break;
|
|
||||||
default:
|
|
||||||
return dma_base;
|
|
||||||
}
|
|
||||||
pci_write_config_dword(dev, 0x20, set_bmiba|1);
|
|
||||||
goto second_chance_to_dma;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_BLK_DEV_IDEDMA_FORCED */
|
|
||||||
|
|
||||||
if (dma_base) {
|
if (dma_base) {
|
||||||
u8 simplex_stat = 0;
|
u8 simplex_stat = 0;
|
||||||
dma_base += hwif->channel ? 8 : 0;
|
dma_base += hwif->channel ? 8 : 0;
|
||||||
|
Reference in New Issue
Block a user