Beispiel #1
0
int wdprobe(int ioaddr,  struct device *dev)
{
    int *port, ports[] = {0x300, 0x280, 0x380, 0x240, 0};

    if (ioaddr > 0x100)
	return wdprobe1(ioaddr, dev);

    for (port = &ports[0]; *port; port++)
	if (inb(*port + 8) != 0xff && wdprobe1(*port, dev))
	    return *port;
    return 0;
}
Beispiel #2
0
int wd_probe(struct device *dev)
{
	int *port, ports[] = {0x300, 0x280, 0x380, 0x240, 0};
	short ioaddr = dev->base_addr;

	if (ioaddr < 0)
		return ENXIO;			/* Don't probe at all. */
	if (ioaddr > 0x100)
		return ! wdprobe1(ioaddr, dev);

	for (port = &ports[0]; *port; port++) {
		if (check_region(*port, 32))
			continue;
		if (inb(*port + 8) != 0xff
			&& inb(*port + 9) != 0xff /* Extra check to avoid soundcard. */
			&& wdprobe1(*port, dev))
			return 0;
	}
	dev->base_addr = ioaddr;
	return ENODEV;
}