amd74xx/via82cxxx: check ide_config_drive_speed() return value

* Check ide_config_drive_speed() return value.

* While at also call ide_config_drive_speed() if the transfer mode is
  XFER_PIO_SLOW (this case happens iff the transfer mode has already been
  set on the device by ide-proc.c::set_xfer_rate()) and remove redundant
  setting of ->{init,current}_speed.

* Bump driver version.
Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 0f458943
/* /*
* Version 2.22 * Version 2.23
* *
* AMD 755/756/766/8111 and nVidia nForce/2/2s/3/3s/CK804/MCP04 * AMD 755/756/766/8111 and nVidia nForce/2/2s/3/3s/CK804/MCP04
* IDE driver for Linux. * IDE driver for Linux.
...@@ -240,8 +240,8 @@ static int amd_set_drive(ide_drive_t *drive, const u8 speed) ...@@ -240,8 +240,8 @@ static int amd_set_drive(ide_drive_t *drive, const u8 speed)
struct ide_timing t, p; struct ide_timing t, p;
int T, UT; int T, UT;
if (speed != XFER_PIO_SLOW) if (ide_config_drive_speed(drive, speed))
ide_config_drive_speed(drive, speed); return 1;
T = 1000000000 / amd_clock; T = 1000000000 / amd_clock;
UT = (amd_config->udma_mask == ATA_UDMA2) ? T : (T / 2); UT = (amd_config->udma_mask == ATA_UDMA2) ? T : (T / 2);
...@@ -258,10 +258,6 @@ static int amd_set_drive(ide_drive_t *drive, const u8 speed) ...@@ -258,10 +258,6 @@ static int amd_set_drive(ide_drive_t *drive, const u8 speed)
amd_set_speed(HWIF(drive)->pci_dev, drive->dn, &t); amd_set_speed(HWIF(drive)->pci_dev, drive->dn, &t);
if (!drive->init_speed)
drive->init_speed = speed;
drive->current_speed = speed;
return 0; return 0;
} }
......
/* /*
* *
* Version 3.48 * Version 3.49
* *
* VIA IDE driver for Linux. Supported southbridges: * VIA IDE driver for Linux. Supported southbridges:
* *
...@@ -165,8 +165,8 @@ static int via_set_drive(ide_drive_t *drive, const u8 speed) ...@@ -165,8 +165,8 @@ static int via_set_drive(ide_drive_t *drive, const u8 speed)
struct ide_timing t, p; struct ide_timing t, p;
unsigned int T, UT; unsigned int T, UT;
if (speed != XFER_PIO_SLOW) if (ide_config_drive_speed(drive, speed))
ide_config_drive_speed(drive, speed); return 1;
T = 1000000000 / via_clock; T = 1000000000 / via_clock;
...@@ -187,10 +187,6 @@ static int via_set_drive(ide_drive_t *drive, const u8 speed) ...@@ -187,10 +187,6 @@ static int via_set_drive(ide_drive_t *drive, const u8 speed)
via_set_speed(HWIF(drive), drive->dn, &t); via_set_speed(HWIF(drive), drive->dn, &t);
if (!drive->init_speed)
drive->init_speed = speed;
drive->current_speed = speed;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment