diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-08 14:19:11 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-08 14:19:11 -0400 |
| commit | 90621ed829ac64eb25b4d1214e9a5155e5c67ff2 (patch) | |
| tree | 472b2cb259bed27fc9ce7a3e6ca413b84830e58f /drivers | |
| parent | 9c0fc4e28b57c5a6da7b58d60f71476c64d457a6 (diff) | |
| parent | be305042b7a01a1ab03a8adfa95f57bc63e012e1 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
it8213: fix return value in it8213_init_one()
palm_bk3710: fix IDECLK period calculation
ide: add __ide_default_irq() inline helper
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ide/arm/palm_bk3710.c | 38 | ||||
| -rw-r--r-- | drivers/ide/ide-probe.c | 8 | ||||
| -rw-r--r-- | drivers/ide/pci/it8213.c | 3 | ||||
| -rw-r--r-- | drivers/ide/pci/ns87415.c | 6 |
4 files changed, 22 insertions, 33 deletions
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c index cc24803fadff..2f2b4f4cf229 100644 --- a/drivers/ide/arm/palm_bk3710.c +++ b/drivers/ide/arm/palm_bk3710.c | |||
| @@ -76,7 +76,7 @@ struct palm_bk3710_udmatiming { | |||
| 76 | 76 | ||
| 77 | #include "../ide-timing.h" | 77 | #include "../ide-timing.h" |
| 78 | 78 | ||
| 79 | static long ide_palm_clk; | 79 | static unsigned ideclk_period; /* in nanoseconds */ |
| 80 | 80 | ||
| 81 | static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = { | 81 | static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = { |
| 82 | {160, 240}, /* UDMA Mode 0 */ | 82 | {160, 240}, /* UDMA Mode 0 */ |
| @@ -86,8 +86,6 @@ static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = { | |||
| 86 | {85, 60}, /* UDMA Mode 4 */ | 86 | {85, 60}, /* UDMA Mode 4 */ |
| 87 | }; | 87 | }; |
| 88 | 88 | ||
| 89 | static struct clk *ideclkp; | ||
| 90 | |||
| 91 | static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev, | 89 | static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev, |
| 92 | unsigned int mode) | 90 | unsigned int mode) |
| 93 | { | 91 | { |
| @@ -97,10 +95,10 @@ static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev, | |||
| 97 | 95 | ||
| 98 | /* DMA Data Setup */ | 96 | /* DMA Data Setup */ |
| 99 | t0 = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].cycletime, | 97 | t0 = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].cycletime, |
| 100 | ide_palm_clk) - 1; | 98 | ideclk_period) - 1; |
| 101 | tenv = DIV_ROUND_UP(20, ide_palm_clk) - 1; | 99 | tenv = DIV_ROUND_UP(20, ideclk_period) - 1; |
| 102 | trp = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].rptime, | 100 | trp = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].rptime, |
| 103 | ide_palm_clk) - 1; | 101 | ideclk_period) - 1; |
| 104 | 102 | ||
| 105 | /* udmatim Register */ | 103 | /* udmatim Register */ |
| 106 | val16 = readw(base + BK3710_UDMATIM) & (dev ? 0xFF0F : 0xFFF0); | 104 | val16 = readw(base + BK3710_UDMATIM) & (dev ? 0xFF0F : 0xFFF0); |
| @@ -141,8 +139,8 @@ static void palm_bk3710_setdmamode(void __iomem *base, unsigned int dev, | |||
| 141 | cycletime = max_t(int, t->cycle, min_cycle); | 139 | cycletime = max_t(int, t->cycle, min_cycle); |
| 142 | 140 | ||
| 143 | /* DMA Data Setup */ | 141 | /* DMA Data Setup */ |
| 144 | t0 = DIV_ROUND_UP(cycletime, ide_palm_clk); | 142 | t0 = DIV_ROUND_UP(cycletime, ideclk_period); |
| 145 | td = DIV_ROUND_UP(t->active, ide_palm_clk); | 143 | td = DIV_ROUND_UP(t->active, ideclk_period); |
| 146 | tkw = t0 - td - 1; | 144 | tkw = t0 - td - 1; |
| 147 | td -= 1; | 145 | td -= 1; |
| 148 | 146 | ||
| @@ -168,9 +166,9 @@ static void palm_bk3710_setpiomode(void __iomem *base, ide_drive_t *mate, | |||
| 168 | struct ide_timing *t; | 166 | struct ide_timing *t; |
| 169 | 167 | ||
| 170 | /* PIO Data Setup */ | 168 | /* PIO Data Setup */ |
| 171 | t0 = DIV_ROUND_UP(cycletime, ide_palm_clk); | 169 | t0 = DIV_ROUND_UP(cycletime, ideclk_period); |
| 172 | t2 = DIV_ROUND_UP(ide_timing_find_mode(XFER_PIO_0 + mode)->active, | 170 | t2 = DIV_ROUND_UP(ide_timing_find_mode(XFER_PIO_0 + mode)->active, |
| 173 | ide_palm_clk); | 171 | ideclk_period); |
| 174 | 172 | ||
| 175 | t2i = t0 - t2 - 1; | 173 | t2i = t0 - t2 - 1; |
| 176 | t2 -= 1; | 174 | t2 -= 1; |
| @@ -192,8 +190,8 @@ static void palm_bk3710_setpiomode(void __iomem *base, ide_drive_t *mate, | |||
| 192 | 190 | ||
| 193 | /* TASKFILE Setup */ | 191 | /* TASKFILE Setup */ |
| 194 | t = ide_timing_find_mode(XFER_PIO_0 + mode); | 192 | t = ide_timing_find_mode(XFER_PIO_0 + mode); |
| 195 | t0 = DIV_ROUND_UP(t->cyc8b, ide_palm_clk); | 193 | t0 = DIV_ROUND_UP(t->cyc8b, ideclk_period); |
| 196 | t2 = DIV_ROUND_UP(t->act8b, ide_palm_clk); | 194 | t2 = DIV_ROUND_UP(t->act8b, ideclk_period); |
| 197 | 195 | ||
| 198 | t2i = t0 - t2 - 1; | 196 | t2i = t0 - t2 - 1; |
| 199 | t2 -= 1; | 197 | t2 -= 1; |
| @@ -350,22 +348,22 @@ static const struct ide_port_info __devinitdata palm_bk3710_port_info = { | |||
| 350 | 348 | ||
| 351 | static int __devinit palm_bk3710_probe(struct platform_device *pdev) | 349 | static int __devinit palm_bk3710_probe(struct platform_device *pdev) |
| 352 | { | 350 | { |
| 353 | struct clk *clkp; | 351 | struct clk *clk; |
| 354 | struct resource *mem, *irq; | 352 | struct resource *mem, *irq; |
| 355 | ide_hwif_t *hwif; | 353 | ide_hwif_t *hwif; |
| 356 | unsigned long base; | 354 | unsigned long base, rate; |
| 357 | int i; | 355 | int i; |
| 358 | hw_regs_t hw; | 356 | hw_regs_t hw; |
| 359 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | 357 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; |
| 360 | 358 | ||
| 361 | clkp = clk_get(NULL, "IDECLK"); | 359 | clk = clk_get(NULL, "IDECLK"); |
| 362 | if (IS_ERR(clkp)) | 360 | if (IS_ERR(clk)) |
| 363 | return -ENODEV; | 361 | return -ENODEV; |
| 364 | 362 | ||
| 365 | ideclkp = clkp; | 363 | clk_enable(clk); |
| 366 | clk_enable(ideclkp); | 364 | rate = clk_get_rate(clk); |
| 367 | ide_palm_clk = clk_get_rate(ideclkp)/100000; | 365 | ideclk_period = 1000000000UL / rate; |
| 368 | ide_palm_clk = (10000/ide_palm_clk) + 1; | 366 | |
| 369 | /* Register the IDE interface with Linux ATA Interface */ | 367 | /* Register the IDE interface with Linux ATA Interface */ |
| 370 | memset(&hw, 0, sizeof(hw)); | 368 | memset(&hw, 0, sizeof(hw)); |
| 371 | 369 | ||
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index d27061b39324..26e68b65b7cf 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
| @@ -1218,16 +1218,12 @@ static void drive_release_dev (struct device *dev) | |||
| 1218 | complete(&drive->gendev_rel_comp); | 1218 | complete(&drive->gendev_rel_comp); |
| 1219 | } | 1219 | } |
| 1220 | 1220 | ||
| 1221 | #ifndef ide_default_irq | ||
| 1222 | #define ide_default_irq(irq) 0 | ||
| 1223 | #endif | ||
| 1224 | |||
| 1225 | static int hwif_init(ide_hwif_t *hwif) | 1221 | static int hwif_init(ide_hwif_t *hwif) |
| 1226 | { | 1222 | { |
| 1227 | int old_irq; | 1223 | int old_irq; |
| 1228 | 1224 | ||
| 1229 | if (!hwif->irq) { | 1225 | if (!hwif->irq) { |
| 1230 | hwif->irq = ide_default_irq(hwif->io_ports.data_addr); | 1226 | hwif->irq = __ide_default_irq(hwif->io_ports.data_addr); |
| 1231 | if (!hwif->irq) { | 1227 | if (!hwif->irq) { |
| 1232 | printk("%s: DISABLED, NO IRQ\n", hwif->name); | 1228 | printk("%s: DISABLED, NO IRQ\n", hwif->name); |
| 1233 | return 0; | 1229 | return 0; |
| @@ -1257,7 +1253,7 @@ static int hwif_init(ide_hwif_t *hwif) | |||
| 1257 | * It failed to initialise. Find the default IRQ for | 1253 | * It failed to initialise. Find the default IRQ for |
| 1258 | * this port and try that. | 1254 | * this port and try that. |
| 1259 | */ | 1255 | */ |
| 1260 | hwif->irq = ide_default_irq(hwif->io_ports.data_addr); | 1256 | hwif->irq = __ide_default_irq(hwif->io_ports.data_addr); |
| 1261 | if (!hwif->irq) { | 1257 | if (!hwif->irq) { |
| 1262 | printk("%s: Disabled unable to get IRQ %d.\n", | 1258 | printk("%s: Disabled unable to get IRQ %d.\n", |
| 1263 | hwif->name, old_irq); | 1259 | hwif->name, old_irq); |
diff --git a/drivers/ide/pci/it8213.c b/drivers/ide/pci/it8213.c index 9053c8771e6e..2b71bdf74e73 100644 --- a/drivers/ide/pci/it8213.c +++ b/drivers/ide/pci/it8213.c | |||
| @@ -184,8 +184,7 @@ static const struct ide_port_info it8213_chipsets[] __devinitdata = { | |||
| 184 | 184 | ||
| 185 | static int __devinit it8213_init_one(struct pci_dev *dev, const struct pci_device_id *id) | 185 | static int __devinit it8213_init_one(struct pci_dev *dev, const struct pci_device_id *id) |
| 186 | { | 186 | { |
| 187 | ide_setup_pci_device(dev, &it8213_chipsets[id->driver_data]); | 187 | return ide_setup_pci_device(dev, &it8213_chipsets[id->driver_data]); |
| 188 | return 0; | ||
| 189 | } | 188 | } |
| 190 | 189 | ||
| 191 | static const struct pci_device_id it8213_pci_tbl[] = { | 190 | static const struct pci_device_id it8213_pci_tbl[] = { |
diff --git a/drivers/ide/pci/ns87415.c b/drivers/ide/pci/ns87415.c index fec4955f449b..a7a41bb82778 100644 --- a/drivers/ide/pci/ns87415.c +++ b/drivers/ide/pci/ns87415.c | |||
| @@ -225,10 +225,6 @@ static int ns87415_dma_setup(ide_drive_t *drive) | |||
| 225 | return 1; | 225 | return 1; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | #ifndef ide_default_irq | ||
| 229 | #define ide_default_irq(irq) 0 | ||
| 230 | #endif | ||
| 231 | |||
| 232 | static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif) | 228 | static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif) |
| 233 | { | 229 | { |
| 234 | struct pci_dev *dev = to_pci_dev(hwif->dev); | 230 | struct pci_dev *dev = to_pci_dev(hwif->dev); |
| @@ -288,7 +284,7 @@ static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif) | |||
| 288 | } | 284 | } |
| 289 | 285 | ||
| 290 | if (!using_inta) | 286 | if (!using_inta) |
| 291 | hwif->irq = ide_default_irq(hwif->io_ports.data_addr); | 287 | hwif->irq = __ide_default_irq(hwif->io_ports.data_addr); |
| 292 | else if (!hwif->irq && hwif->mate && hwif->mate->irq) | 288 | else if (!hwif->irq && hwif->mate && hwif->mate->irq) |
| 293 | hwif->irq = hwif->mate->irq; /* share IRQ with mate */ | 289 | hwif->irq = hwif->mate->irq; /* share IRQ with mate */ |
| 294 | 290 | ||
