aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/alim15x3.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/alim15x3.c')
-rw-r--r--drivers/ide/pci/alim15x3.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c
index 8b24b4f2a839a0..d280f010c4169b 100644
--- a/drivers/ide/pci/alim15x3.c
+++ b/drivers/ide/pci/alim15x3.c
@@ -65,6 +65,16 @@ static char *fifo[4] = {
"PIO mode" };
static char *udmaT[8] = {
+#if defined(CONFIG_SH_MPC1211)
+ " 1T",
+ "1.5T",
+ " 2T",
+ " 3T",
+ " 4T",
+ "2.5T",
+ " 6T",
+ "3.5T"
+#else
"1.5T",
" 2T",
"2.5T",
@@ -73,6 +83,7 @@ static char *udmaT[8] = {
" 4T",
" 6T",
" 8T"
+#endif
};
static char *channel_status[8] = {
@@ -303,7 +314,11 @@ static void ali15x3_tune_drive (ide_drive_t *drive, u8 pio)
u8 cd_dma_fifo = 0;
int unit = drive->select.b.unit & 1;
+#if defined(CONFIG_SH_MPC1211)
+ pio = ide_get_best_pio_mode(drive, pio, 0, &d);
+#else
pio = ide_get_best_pio_mode(drive, pio, 5, &d);
+#endif
s_time = ide_pio_timings[pio].setup_time;
a_time = ide_pio_timings[pio].active_time;
if ((s_clc = (s_time * bus_speed + 999) / 1000) >= 8)
@@ -420,6 +435,10 @@ static u8 ali15x3_ratemask (ide_drive_t *drive)
return 0;
}
+#ifdef CONFIG_SH_MPC1211
+ mode = 1;
+#endif
+
/*
* If the drive sees no suitable cable then UDMA 33
* is the highest permitted mode