Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 93574
b: refs/heads/master
c: 0905bc9
h: refs/heads/master
v: v3
  • Loading branch information
Paolo Ciarrocchi authored and Bartlomiej Zolnierkiewicz committed Apr 26, 2008
1 parent dfd3c08 commit 4f2ec39
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 17deabdcded322c04c5ec2baf8cf38c58017f08e
refs/heads/master: 0905bc94d5ad8a928eed26e0896857fb54dcb366
58 changes: 29 additions & 29 deletions trunk/drivers/ide/legacy/umc8672.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*/

/*
* VLB Controller Support from
* VLB Controller Support from
* Wolfram Podien
* Rohoefe 3
* D28832 Achim
Expand All @@ -32,7 +32,7 @@
* #define UMC_DRIVE0 11
* in the beginning of the driver, which sets the speed of drive 0 to 11 (there
* are some lines present). 0 - 11 are allowed speed values. These values are
* the results from the DOS speed test program supplied from UMC. 11 is the
* the results from the DOS speed test program supplied from UMC. 11 is the
* highest speed (about PIO mode 3)
*/
#define REALLY_SLOW_IO /* some systems can safely undef this */
Expand Down Expand Up @@ -60,46 +60,46 @@
#define UMC_DRIVE3 1 /* In case of crash reduce speed */

static u8 current_speeds[4] = {UMC_DRIVE0, UMC_DRIVE1, UMC_DRIVE2, UMC_DRIVE3};
static const u8 pio_to_umc [5] = {0,3,7,10,11}; /* rough guesses */
static const u8 pio_to_umc [5] = {0, 3, 7, 10, 11}; /* rough guesses */

/* 0 1 2 3 4 5 6 7 8 9 10 11 */
static const u8 speedtab [3][12] = {
{0xf, 0xb, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1 },
{0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1 },
{0xff,0xcb,0xc0,0x58,0x36,0x33,0x23,0x22,0x21,0x11,0x10,0x0}};
{0x0f, 0x0b, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1},
{0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1},
{0xff, 0xcb, 0xc0, 0x58, 0x36, 0x33, 0x23, 0x22, 0x21, 0x11, 0x10, 0x0}
};

static void out_umc (char port,char wert)
static void out_umc(char port, char wert)
{
outb_p(port,0x108);
outb_p(wert,0x109);
outb_p(port, 0x108);
outb_p(wert, 0x109);
}

static inline u8 in_umc (char port)
static inline u8 in_umc(char port)
{
outb_p(port,0x108);
outb_p(port, 0x108);
return inb_p(0x109);
}

static void umc_set_speeds (u8 speeds[])
static void umc_set_speeds(u8 speeds[])
{
int i, tmp;

outb_p(0x5A,0x108); /* enable umc */
outb_p(0x5A, 0x108); /* enable umc */

out_umc (0xd7,(speedtab[0][speeds[2]] | (speedtab[0][speeds[3]]<<4)));
out_umc (0xd6,(speedtab[0][speeds[0]] | (speedtab[0][speeds[1]]<<4)));
out_umc(0xd7, (speedtab[0][speeds[2]] | (speedtab[0][speeds[3]]<<4)));
out_umc(0xd6, (speedtab[0][speeds[0]] | (speedtab[0][speeds[1]]<<4)));
tmp = 0;
for (i = 3; i >= 0; i--) {
for (i = 3; i >= 0; i--)
tmp = (tmp << 2) | speedtab[1][speeds[i]];
out_umc(0xdc, tmp);
for (i = 0; i < 4; i++) {
out_umc(0xd0 + i, speedtab[2][speeds[i]]);
out_umc(0xd8 + i, speedtab[2][speeds[i]]);
}
out_umc (0xdc,tmp);
for (i = 0;i < 4; i++) {
out_umc (0xd0+i,speedtab[2][speeds[i]]);
out_umc (0xd8+i,speedtab[2][speeds[i]]);
}
outb_p(0xa5,0x108); /* disable umc */
outb_p(0xa5, 0x108); /* disable umc */

printk ("umc8672: drive speeds [0 to 11]: %d %d %d %d\n",
printk("umc8672: drive speeds [0 to 11]: %d %d %d %d\n",
speeds[0], speeds[1], speeds[2], speeds[3]);
}

Expand All @@ -115,7 +115,7 @@ static void umc_set_pio_mode(ide_drive_t *drive, const u8 pio)
printk(KERN_ERR "umc8672: other interface is busy: exiting tune_umc()\n");
} else {
current_speeds[drive->name[2] - 'a'] = pio_to_umc[pio];
umc_set_speeds (current_speeds);
umc_set_speeds(current_speeds);
}
spin_unlock_irqrestore(&ide_lock, flags);
}
Expand All @@ -138,16 +138,16 @@ static int __init umc8672_probe(void)
return 1;
}
local_irq_save(flags);
outb_p(0x5A,0x108); /* enable umc */
outb_p(0x5A, 0x108); /* enable umc */
if (in_umc (0xd5) != 0xa0) {
local_irq_restore(flags);
printk(KERN_ERR "umc8672: not found\n");
release_region(0x108, 2);
return 1;
return 1;
}
outb_p(0xa5,0x108); /* disable umc */
outb_p(0xa5, 0x108); /* disable umc */

umc_set_speeds (current_speeds);
umc_set_speeds(current_speeds);
local_irq_restore(flags);

memset(&hw, 0, sizeof(hw));
Expand Down Expand Up @@ -177,7 +177,7 @@ static int __init umc8672_probe(void)
return 0;
}

int probe_umc8672 = 0;
int probe_umc8672;

module_param_named(probe, probe_umc8672, bool, 0);
MODULE_PARM_DESC(probe, "probe for UMC8672 chipset");
Expand Down

0 comments on commit 4f2ec39

Please sign in to comment.