diff options
Diffstat (limited to 'drivers/ide/cs5536.c')
| -rw-r--r-- | drivers/ide/cs5536.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/ide/cs5536.c b/drivers/ide/cs5536.c index 9623b852c616..24214ab60ac0 100644 --- a/drivers/ide/cs5536.c +++ b/drivers/ide/cs5536.c @@ -125,11 +125,11 @@ static u8 cs5536_cable_detect(ide_hwif_t *hwif)  /**   *	cs5536_set_pio_mode		-	PIO timing setup + *	@hwif: ATA port   *	@drive: ATA device - *	@pio: PIO mode number   */ -static void cs5536_set_pio_mode(ide_drive_t *drive, const u8 pio) +static void cs5536_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive)  {  	static const u8 drv_timings[5] = {  		0x98, 0x55, 0x32, 0x21, 0x20, @@ -143,15 +143,16 @@ static void cs5536_set_pio_mode(ide_drive_t *drive, const u8 pio)  		0x99, 0x92, 0x90, 0x22, 0x20,  	}; -	struct pci_dev *pdev = to_pci_dev(drive->hwif->dev); +	struct pci_dev *pdev = to_pci_dev(hwif->dev);  	ide_drive_t *pair = ide_get_pair_dev(drive);  	int cshift = (drive->dn & 1) ? IDE_CAST_D1_SHIFT : IDE_CAST_D0_SHIFT;  	unsigned long timings = (unsigned long)ide_get_drivedata(drive);  	u32 cast; +	const u8 pio = drive->pio_mode - XFER_PIO_0;  	u8 cmd_pio = pio;  	if (pair) -		cmd_pio = min(pio, ide_get_best_pio_mode(pair, 255, 4)); +		cmd_pio = min_t(u8, pio, pair->pio_mode - XFER_PIO_0);  	timings &= (IDE_DRV_MASK << 8);  	timings |= drv_timings[pio]; @@ -172,11 +173,11 @@ static void cs5536_set_pio_mode(ide_drive_t *drive, const u8 pio)  /**   *	cs5536_set_dma_mode		-	DMA timing setup + *	@hwif: ATA port   *	@drive: ATA device - *	@mode: DMA mode   */ -static void cs5536_set_dma_mode(ide_drive_t *drive, const u8 mode) +static void cs5536_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive)  {  	static const u8 udma_timings[6] = {  		0xc2, 0xc1, 0xc0, 0xc4, 0xc5, 0xc6, @@ -186,10 +187,11 @@ static void cs5536_set_dma_mode(ide_drive_t *drive, const u8 mode)  		0x67, 0x21, 0x20,  	}; -	struct pci_dev *pdev = to_pci_dev(drive->hwif->dev); +	struct pci_dev *pdev = to_pci_dev(hwif->dev);  	int dshift = (drive->dn & 1) ? IDE_D1_SHIFT : IDE_D0_SHIFT;  	unsigned long timings = (unsigned long)ide_get_drivedata(drive);  	u32 etc; +	const u8 mode = drive->dma_mode;  	cs5536_read(pdev, ETC, &etc);  |