On Wednesday 24 September 2008, Sergei Shtylyov wrote: [...] > > @@ -70,41 +59,18 @@ static const struct ide_port_info swarm_ > > * swarm_ide_probe - if the board header indicates the existence of > > * Generic Bus IDE, allocate a HWIF for it. > > */ > > -static int __devinit swarm_ide_probe(struct device *dev) > > +static int __devinit swarm_ide_probe(struct platform_device *pdev) > > { > > u8 __iomem *base; > > struct ide_host *host; > > phys_t offset, size; > > + struct resource *r; > > int i, rc; > > hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; > > > > - if (!SIBYTE_HAVE_IDE) > > - return -ENODEV; > > - > > - base = ioremap(A_IO_EXT_BASE, 0x800); > > - offset = __raw_readq(base + R_IO_EXT_REG(R_IO_EXT_START_ADDR, IDE_CS)); > > - size = __raw_readq(base + R_IO_EXT_REG(R_IO_EXT_MULT_SIZE, IDE_CS)); > > - iounmap(base); > > - > > - offset = G_IO_START_ADDR(offset) << S_IO_ADDRBASE; > > - size = (G_IO_MULT_SIZE(size) + 1) << S_IO_REGSIZE; > > - if (offset < A_PHYS_GENBUS || offset >= A_PHYS_GENBUS_END) { > > - printk(KERN_INFO DRV_NAME > > - ": IDE interface at GenBus disabled\n"); > > - return -EBUSY; > > - } > > - > > - printk(KERN_INFO DRV_NAME ": IDE interface at GenBus slot %i\n", > > - IDE_CS); > > - > > - swarm_ide_resource.start = offset; > > - swarm_ide_resource.end = offset + size - 1; > > - if (request_resource(&iomem_resource, &swarm_ide_resource)) { > > > > Why drop request_resource() completely? Replace it by > request_mem_region(). Yes, this needs fixing (otherwise everything looks good). Ralf: I guess that your next step will be dropping swarm-specific platform ide driver in favor of generic one (please see drivers/ide/legacy/ide_platform.c) as they are _very_ similar now? :) Thanks, Bart