diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-02-02 09:58:02 +1100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-02-02 09:58:02 +1100 |
commit | f3191248bf1bf6627c04c5624904df45e0a979ed (patch) | |
tree | ad7a49bf947f849740999702204373c3c12caea7 /drivers/ide/legacy/ide_platform.c | |
parent | cbb51afa6d69be003cc827a89e023906885f241e (diff) | |
parent | a14dc57495899175a0827673fe23ed17b5653896 (diff) | |
download | kernel-crypto-f3191248bf1bf6627c04c5624904df45e0a979ed.tar.gz kernel-crypto-f3191248bf1bf6627c04c5624904df45e0a979ed.tar.xz kernel-crypto-f3191248bf1bf6627c04c5624904df45e0a979ed.zip |
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: (100 commits)
ide: move hwif_register() call out of ide_probe_port()
ide: factor out code for tuning devices from ide_probe_port()
ide: move handling of I/O resources out of ide_probe_port()
ide: make probe_hwif() return an error value
ide: use ide_remove_port_from_hwgroup in init_irq()
ide: prepare init_irq() for using ide_remove_port_from_hwgroup()
ide: factor out code removing port from hwgroup from ide_unregister()
ide: I/O resources are released too early in ide_unregister()
ide: cleanup ide_system_bus_speed()
ide: remove needless zeroing of hwgroup fields from init_irq()
ide: remove unused ide_hwgroup_t fields
ide_platform: remove struct hwif_prop
ide: remove hwif->present manipulations from hwif_init()
ide: move wait_hwif_ready() documentation in the right place
ide: fix handling of busy I/O resources in probe_hwif()
<linux/hdsmart.h> is not used by kernel code
ide: don't include <linux/hdsmart.h>
ide-floppy: cleanup header
ide: update/add my Copyrights
ide: delete filenames/versions from comments
...
Diffstat (limited to 'drivers/ide/legacy/ide_platform.c')
-rw-r--r-- | drivers/ide/legacy/ide_platform.c | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/drivers/ide/legacy/ide_platform.c b/drivers/ide/legacy/ide_platform.c index 69a0fb0e564..7c3231a21d1 100644 --- a/drivers/ide/legacy/ide_platform.c +++ b/drivers/ide/legacy/ide_platform.c @@ -21,13 +21,6 @@ #include <linux/platform_device.h> #include <linux/io.h> -static struct { - void __iomem *plat_ide_mapbase; - void __iomem *plat_ide_alt_mapbase; - ide_hwif_t *hwif; - int index; -} hwif_prop; - static void __devinit plat_ide_setup_ports(hw_regs_t *hw, void __iomem *base, void __iomem *ctrl, @@ -54,6 +47,7 @@ static void __devinit plat_ide_setup_ports(hw_regs_t *hw, static int __devinit plat_ide_probe(struct platform_device *pdev) { struct resource *res_base, *res_alt, *res_irq; + void __iomem *base, *alt_base; ide_hwif_t *hwif; struct pata_platform_info *pdata; u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; @@ -84,27 +78,25 @@ static int __devinit plat_ide_probe(struct platform_device *pdev) } if (mmio) { - hwif_prop.plat_ide_mapbase = devm_ioremap(&pdev->dev, + base = devm_ioremap(&pdev->dev, res_base->start, res_base->end - res_base->start + 1); - hwif_prop.plat_ide_alt_mapbase = devm_ioremap(&pdev->dev, + alt_base = devm_ioremap(&pdev->dev, res_alt->start, res_alt->end - res_alt->start + 1); } else { - hwif_prop.plat_ide_mapbase = devm_ioport_map(&pdev->dev, + base = devm_ioport_map(&pdev->dev, res_base->start, res_base->end - res_base->start + 1); - hwif_prop.plat_ide_alt_mapbase = devm_ioport_map(&pdev->dev, + alt_base = devm_ioport_map(&pdev->dev, res_alt->start, res_alt->end - res_alt->start + 1); } - hwif = ide_find_port((unsigned long)hwif_prop.plat_ide_mapbase); + hwif = ide_find_port((unsigned long)base); if (!hwif) { ret = -ENODEV; goto out; } memset(&hw, 0, sizeof(hw)); - plat_ide_setup_ports(&hw, hwif_prop.plat_ide_mapbase, - hwif_prop.plat_ide_alt_mapbase, - pdata, res_irq->start); + plat_ide_setup_ports(&hw, base, alt_base, pdata, res_irq->start); hw.dev = &pdev->dev; ide_init_port_hw(hwif, &hw); @@ -114,9 +106,6 @@ static int __devinit plat_ide_probe(struct platform_device *pdev) default_hwif_mmiops(hwif); } - hwif_prop.hwif = hwif; - hwif_prop.index = hwif->index; - idx[0] = hwif->index; ide_device_add(idx); @@ -133,14 +122,7 @@ static int __devexit plat_ide_remove(struct platform_device *pdev) { ide_hwif_t *hwif = pdev->dev.driver_data; - if (hwif != hwif_prop.hwif) { - dev_printk(KERN_DEBUG, &pdev->dev, "%s: hwif value error", - pdev->name); - } else { - ide_unregister(hwif_prop.index); - hwif_prop.index = 0; - hwif_prop.hwif = NULL; - } + ide_unregister(hwif->index); return 0; } |