summaryrefslogtreecommitdiffstats
path: root/drivers/char/radio-cadet.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/radio-cadet.c')
-rw-r--r--drivers/char/radio-cadet.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/char/radio-cadet.c b/drivers/char/radio-cadet.c
index 685a08a0d..ed2056dea 100644
--- a/drivers/char/radio-cadet.c
+++ b/drivers/char/radio-cadet.c
@@ -39,7 +39,6 @@ struct timer_list tunertimer,rdstimer,readtimer;
static __u8 rdsin=0,rdsout=0,rdsstat=0;
static unsigned char rdsbuf[RDS_BUFFER];
static int cadet_lock=0;
-static int cadet_probe(void);
/*
* Signal Strength Threshold Values
@@ -562,7 +561,7 @@ static int cadet_probe(void)
}
#endif
-int __init cadet_init(void)
+static int __init cadet_init(void)
{
#ifndef MODULE
io = cadet_probe ();
@@ -572,12 +571,14 @@ int __init cadet_init(void)
#ifdef MODULE
printk(KERN_ERR "You must set an I/O address with io=0x???\n");
#endif
- return EINVAL;
+ return -EINVAL;
}
- if(video_register_device(&cadet_radio,VFL_TYPE_RADIO)==-1)
+ if (!request_region(io,2,"cadet"))
+ return -EBUSY;
+ if(video_register_device(&cadet_radio,VFL_TYPE_RADIO)==-1) {
+ release_region(io,2);
return -EINVAL;
-
- request_region(io,2,"cadet");
+ }
printk(KERN_INFO "ADS Cadet Radio Card at 0x%x\n",io);
return 0;
}