aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-timing.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-timing.h')
-rw-r--r--drivers/ide/ide-timing.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/ide/ide-timing.h b/drivers/ide/ide-timing.h
index c1196ce15b4d..2fcfac6e967a 100644
--- a/drivers/ide/ide-timing.h
+++ b/drivers/ide/ide-timing.h
@@ -27,6 +27,7 @@
27 * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic 27 * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
28 */ 28 */
29 29
30#include <linux/kernel.h>
30#include <linux/hdreg.h> 31#include <linux/hdreg.h>
31 32
32#define XFER_PIO_5 0x0d 33#define XFER_PIO_5 0x0d
@@ -96,11 +97,9 @@ static struct ide_timing ide_timing[] = {
96#define IDE_TIMING_UDMA 0x80 97#define IDE_TIMING_UDMA 0x80
97#define IDE_TIMING_ALL 0xff 98#define IDE_TIMING_ALL 0xff
98 99
99#define MIN(a,b) ((a)<(b)?(a):(b)) 100#define FIT(v,vmin,vmax) max_t(short,min_t(short,v,vmax),vmin)
100#define MAX(a,b) ((a)>(b)?(a):(b)) 101#define ENOUGH(v,unit) (((v)-1)/(unit)+1)
101#define FIT(v,min,max) MAX(MIN(v,max),min) 102#define EZ(v,unit) ((v)?ENOUGH(v,unit):0)
102#define ENOUGH(v,unit) (((v)-1)/(unit)+1)
103#define EZ(v,unit) ((v)?ENOUGH(v,unit):0)
104 103
105#define XFER_MODE 0xf0 104#define XFER_MODE 0xf0
106#define XFER_UDMA_133 0x48 105#define XFER_UDMA_133 0x48
@@ -188,14 +187,14 @@ static void ide_timing_quantize(struct ide_timing *t, struct ide_timing *q, int
188 187
189static void ide_timing_merge(struct ide_timing *a, struct ide_timing *b, struct ide_timing *m, unsigned int what) 188static void ide_timing_merge(struct ide_timing *a, struct ide_timing *b, struct ide_timing *m, unsigned int what)
190{ 189{
191 if (what & IDE_TIMING_SETUP ) m->setup = MAX(a->setup, b->setup); 190 if (what & IDE_TIMING_SETUP ) m->setup = max(a->setup, b->setup);
192 if (what & IDE_TIMING_ACT8B ) m->act8b = MAX(a->act8b, b->act8b); 191 if (what & IDE_TIMING_ACT8B ) m->act8b = max(a->act8b, b->act8b);
193 if (what & IDE_TIMING_REC8B ) m->rec8b = MAX(a->rec8b, b->rec8b); 192 if (what & IDE_TIMING_REC8B ) m->rec8b = max(a->rec8b, b->rec8b);
194 if (what & IDE_TIMING_CYC8B ) m->cyc8b = MAX(a->cyc8b, b->cyc8b); 193 if (what & IDE_TIMING_CYC8B ) m->cyc8b = max(a->cyc8b, b->cyc8b);
195 if (what & IDE_TIMING_ACTIVE ) m->active = MAX(a->active, b->active); 194 if (what & IDE_TIMING_ACTIVE ) m->active = max(a->active, b->active);
196 if (what & IDE_TIMING_RECOVER) m->recover = MAX(a->recover, b->recover); 195 if (what & IDE_TIMING_RECOVER) m->recover = max(a->recover, b->recover);
197 if (what & IDE_TIMING_CYCLE ) m->cycle = MAX(a->cycle, b->cycle); 196 if (what & IDE_TIMING_CYCLE ) m->cycle = max(a->cycle, b->cycle);
198 if (what & IDE_TIMING_UDMA ) m->udma = MAX(a->udma, b->udma); 197 if (what & IDE_TIMING_UDMA ) m->udma = max(a->udma, b->udma);
199} 198}
200 199
201static struct ide_timing* ide_timing_find_mode(short speed) 200static struct ide_timing* ide_timing_find_mode(short speed)