[WATCHDOG] Mixcom Watchdog - checkcard
Simplify the mixcomwd_checkcard and flashcom_checkcard functions to one checkcard function as part of the port to an isa watchdog device driver. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
63e6e17ead
commit
4194db10fa
@ -217,23 +217,7 @@ static struct miscdevice mixcomwd_miscdev=
|
|||||||
.fops = &mixcomwd_fops,
|
.fops = &mixcomwd_fops,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init mixcomwd_checkcard(int port)
|
static int __init checkcard(int port, int card_id)
|
||||||
{
|
|
||||||
int id;
|
|
||||||
|
|
||||||
if (!request_region(port, 1, "MixCOM watchdog")) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
id=inb_p(port) & 0x3f;
|
|
||||||
if(id!=MIXCOM_ID) {
|
|
||||||
release_region(port, 1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int __init flashcom_checkcard(int port)
|
|
||||||
{
|
{
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
@ -242,12 +226,15 @@ static int __init flashcom_checkcard(int port)
|
|||||||
}
|
}
|
||||||
|
|
||||||
id=inb_p(port);
|
id=inb_p(port);
|
||||||
if(id!=FLASHCOM_ID) {
|
if (card_id==MIXCOM_ID)
|
||||||
|
id &= 0x3f;
|
||||||
|
|
||||||
|
if (id!=card_id) {
|
||||||
release_region(port, 1);
|
release_region(port, 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return port;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init mixcomwd_init(void)
|
static int __init mixcomwd_init(void)
|
||||||
{
|
{
|
||||||
@ -256,17 +243,17 @@ static int __init mixcomwd_init(void)
|
|||||||
int found=0;
|
int found=0;
|
||||||
|
|
||||||
for (i = 0; !found && mixcomwd_ioports[i] != 0; i++) {
|
for (i = 0; !found && mixcomwd_ioports[i] != 0; i++) {
|
||||||
watchdog_port = mixcomwd_checkcard(mixcomwd_ioports[i]);
|
if (checkcard(mixcomwd_ioports[i], MIXCOM_ID)) {
|
||||||
if (watchdog_port) {
|
|
||||||
found = 1;
|
found = 1;
|
||||||
|
watchdog_port = mixcomwd_ioports[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The FlashCOM card can be set up at 0x304 -> 0x37c, in 0x8 jumps */
|
/* The FlashCOM card can be set up at 0x304 -> 0x37c, in 0x8 jumps */
|
||||||
for (i = 0x304; !found && i < 0x380; i+=0x8) {
|
for (i = 0x304; !found && i < 0x380; i+=0x8) {
|
||||||
watchdog_port = flashcom_checkcard(i);
|
if (checkcard(i, FLASHCOM_ID)) {
|
||||||
if (watchdog_port) {
|
|
||||||
found = 1;
|
found = 1;
|
||||||
|
watchdog_port = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user