Skip to content

Commit

Permalink
[WATCHDOG] Mixcom Watchdog - checkcard
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Wim Van Sebroeck committed Jun 3, 2007
1 parent 63e6e17 commit 4194db1
Showing 1 changed file with 11 additions and 24 deletions.
35 changes: 11 additions & 24 deletions drivers/char/watchdog/mixcomwd.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,23 +217,7 @@ static struct miscdevice mixcomwd_miscdev=
.fops = &mixcomwd_fops,
};

static int __init mixcomwd_checkcard(int port)
{
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)
static int __init checkcard(int port, int card_id)
{
int id;

Expand All @@ -242,12 +226,15 @@ static int __init flashcom_checkcard(int port)
}

id=inb_p(port);
if(id!=FLASHCOM_ID) {
if (card_id==MIXCOM_ID)
id &= 0x3f;

if (id!=card_id) {
release_region(port, 1);
return 0;
}
return port;
}
return 1;
}

static int __init mixcomwd_init(void)
{
Expand All @@ -256,17 +243,17 @@ static int __init mixcomwd_init(void)
int found=0;

for (i = 0; !found && mixcomwd_ioports[i] != 0; i++) {
watchdog_port = mixcomwd_checkcard(mixcomwd_ioports[i]);
if (watchdog_port) {
if (checkcard(mixcomwd_ioports[i], MIXCOM_ID)) {
found = 1;
watchdog_port = mixcomwd_ioports[i];
}
}

/* The FlashCOM card can be set up at 0x304 -> 0x37c, in 0x8 jumps */
for (i = 0x304; !found && i < 0x380; i+=0x8) {
watchdog_port = flashcom_checkcard(i);
if (watchdog_port) {
if (checkcard(i, FLASHCOM_ID)) {
found = 1;
watchdog_port = i;
}
}

Expand Down

0 comments on commit 4194db1

Please sign in to comment.