ide: remove ide_dma_enable()
* check ->speedproc return value in ide_tune_dma() * use ide_tune_dma() in cmd64x/cs5530/sc1200/siimage/sl82c105/scc_pata drivers * remove no longer needed ide_dma_enable() Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -792,9 +792,10 @@ int ide_tune_dma(ide_drive_t *drive)
|
|||||||
if (!speed)
|
if (!speed)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
drive->hwif->speedproc(drive, speed);
|
if (drive->hwif->speedproc(drive, speed))
|
||||||
|
return 0;
|
||||||
|
|
||||||
return ide_dma_enable(drive);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL_GPL(ide_tune_dma);
|
EXPORT_SYMBOL_GPL(ide_tune_dma);
|
||||||
|
@@ -111,18 +111,6 @@ u8 ide_rate_filter(ide_drive_t *drive, u8 speed)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(ide_rate_filter);
|
EXPORT_SYMBOL(ide_rate_filter);
|
||||||
|
|
||||||
int ide_dma_enable (ide_drive_t *drive)
|
|
||||||
{
|
|
||||||
ide_hwif_t *hwif = HWIF(drive);
|
|
||||||
struct hd_driveid *id = drive->id;
|
|
||||||
|
|
||||||
return ((int) ((((id->dma_ultra >> 8) & hwif->ultra_mask) ||
|
|
||||||
((id->dma_mword >> 8) & hwif->mwdma_mask) ||
|
|
||||||
((id->dma_1word >> 8) & hwif->swdma_mask)) ? 1 : 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(ide_dma_enable);
|
|
||||||
|
|
||||||
int ide_use_fast_pio(ide_drive_t *drive)
|
int ide_use_fast_pio(ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
struct hd_driveid *id = drive->id;
|
struct hd_driveid *id = drive->id;
|
||||||
|
@@ -352,22 +352,9 @@ static int cmd64x_tune_chipset (ide_drive_t *drive, u8 speed)
|
|||||||
return ide_config_drive_speed(drive, speed);
|
return ide_config_drive_speed(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int config_chipset_for_dma (ide_drive_t *drive)
|
|
||||||
{
|
|
||||||
u8 speed = ide_max_dma_mode(drive);
|
|
||||||
|
|
||||||
if (!speed)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (cmd64x_tune_chipset(drive, speed))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return ide_dma_enable(drive);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int cmd64x_config_drive_for_dma (ide_drive_t *drive)
|
static int cmd64x_config_drive_for_dma (ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
if (ide_use_dma(drive) && config_chipset_for_dma(drive))
|
if (ide_tune_dma(drive))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ide_use_fast_pio(drive))
|
if (ide_use_fast_pio(drive))
|
||||||
|
@@ -137,12 +137,8 @@ out:
|
|||||||
|
|
||||||
static int cs5530_config_dma(ide_drive_t *drive)
|
static int cs5530_config_dma(ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
if (ide_use_dma(drive)) {
|
if (ide_tune_dma(drive))
|
||||||
u8 mode = ide_max_dma_mode(drive);
|
return 0;
|
||||||
|
|
||||||
if (mode && drive->hwif->speedproc(drive, mode) == 0)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -240,12 +240,8 @@ static int sc1200_tune_chipset(ide_drive_t *drive, u8 mode)
|
|||||||
*/
|
*/
|
||||||
static int sc1200_config_dma (ide_drive_t *drive)
|
static int sc1200_config_dma (ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
if (ide_use_dma(drive)) {
|
if (ide_tune_dma(drive))
|
||||||
u8 mode = ide_max_dma_mode(drive);
|
return 0;
|
||||||
|
|
||||||
if (mode && drive->hwif->speedproc(drive, mode) == 0)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -321,26 +321,6 @@ static int scc_tune_chipset(ide_drive_t *drive, byte xferspeed)
|
|||||||
return ide_config_drive_speed(drive, speed);
|
return ide_config_drive_speed(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* scc_config_chipset_for_dma - configure for DMA
|
|
||||||
* @drive: drive to configure
|
|
||||||
*
|
|
||||||
* Called by scc_config_drive_for_dma().
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int scc_config_chipset_for_dma(ide_drive_t *drive)
|
|
||||||
{
|
|
||||||
u8 speed = ide_max_dma_mode(drive);
|
|
||||||
|
|
||||||
if (!speed)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (scc_tune_chipset(drive, speed))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return ide_dma_enable(drive);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* scc_configure_drive_for_dma - set up for DMA transfers
|
* scc_configure_drive_for_dma - set up for DMA transfers
|
||||||
* @drive: drive we are going to set up
|
* @drive: drive we are going to set up
|
||||||
@@ -354,7 +334,7 @@ static int scc_config_chipset_for_dma(ide_drive_t *drive)
|
|||||||
|
|
||||||
static int scc_config_drive_for_dma(ide_drive_t *drive)
|
static int scc_config_drive_for_dma(ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
if (ide_use_dma(drive) && scc_config_chipset_for_dma(drive))
|
if (ide_tune_dma(drive))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ide_use_fast_pio(drive))
|
if (ide_use_fast_pio(drive))
|
||||||
|
@@ -374,28 +374,6 @@ static int siimage_tune_chipset (ide_drive_t *drive, byte xferspeed)
|
|||||||
return (ide_config_drive_speed(drive, speed));
|
return (ide_config_drive_speed(drive, speed));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* config_chipset_for_dma - configure for DMA
|
|
||||||
* @drive: drive to configure
|
|
||||||
*
|
|
||||||
* Called by the IDE layer when it wants the timings set up.
|
|
||||||
* For the CMD680 we also need to set up the PIO timings and
|
|
||||||
* enable DMA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int config_chipset_for_dma (ide_drive_t *drive)
|
|
||||||
{
|
|
||||||
u8 speed = ide_max_dma_mode(drive);
|
|
||||||
|
|
||||||
if (!speed)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (siimage_tune_chipset(drive, speed))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return ide_dma_enable(drive);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* siimage_configure_drive_for_dma - set up for DMA transfers
|
* siimage_configure_drive_for_dma - set up for DMA transfers
|
||||||
* @drive: drive we are going to set up
|
* @drive: drive we are going to set up
|
||||||
@@ -408,7 +386,7 @@ static int config_chipset_for_dma (ide_drive_t *drive)
|
|||||||
|
|
||||||
static int siimage_config_drive_for_dma (ide_drive_t *drive)
|
static int siimage_config_drive_for_dma (ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
if (ide_use_dma(drive) && config_chipset_for_dma(drive))
|
if (ide_tune_dma(drive))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ide_use_fast_pio(drive))
|
if (ide_use_fast_pio(drive))
|
||||||
|
@@ -158,21 +158,6 @@ static int sl82c105_tune_chipset(ide_drive_t *drive, u8 speed)
|
|||||||
return ide_config_drive_speed(drive, speed);
|
return ide_config_drive_speed(drive, speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Configure the drive for DMA.
|
|
||||||
*/
|
|
||||||
static int config_for_dma(ide_drive_t *drive)
|
|
||||||
{
|
|
||||||
u8 speed = ide_max_dma_mode(drive);
|
|
||||||
|
|
||||||
DBG(("config_for_dma(drive:%s)\n", drive->name));
|
|
||||||
|
|
||||||
if (!speed || sl82c105_tune_chipset(drive, speed))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return ide_dma_enable(drive);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check to see if the drive and chipset are capable of DMA mode.
|
* Check to see if the drive and chipset are capable of DMA mode.
|
||||||
*/
|
*/
|
||||||
@@ -180,7 +165,7 @@ static int sl82c105_ide_dma_check(ide_drive_t *drive)
|
|||||||
{
|
{
|
||||||
DBG(("sl82c105_ide_dma_check(drive:%s)\n", drive->name));
|
DBG(("sl82c105_ide_dma_check(drive:%s)\n", drive->name));
|
||||||
|
|
||||||
if (ide_use_dma(drive) && config_for_dma(drive))
|
if (ide_tune_dma(drive))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -1357,7 +1357,6 @@ static inline void ide_set_hwifdata (ide_hwif_t * hwif, void *data)
|
|||||||
|
|
||||||
/* ide-lib.c */
|
/* ide-lib.c */
|
||||||
u8 ide_rate_filter(ide_drive_t *, u8);
|
u8 ide_rate_filter(ide_drive_t *, u8);
|
||||||
extern int ide_dma_enable(ide_drive_t *drive);
|
|
||||||
extern char *ide_xfer_verbose(u8 xfer_rate);
|
extern char *ide_xfer_verbose(u8 xfer_rate);
|
||||||
extern void ide_toggle_bounce(ide_drive_t *drive, int on);
|
extern void ide_toggle_bounce(ide_drive_t *drive, int on);
|
||||||
extern int ide_set_xfer_rate(ide_drive_t *drive, u8 rate);
|
extern int ide_set_xfer_rate(ide_drive_t *drive, u8 rate);
|
||||||
|
Reference in New Issue
Block a user