patch-2.4.0-test8 linux/drivers/usb/dsbr100.c

Next file: linux/drivers/usb/hub.c
Previous file: linux/drivers/usb/devio.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test7/linux/drivers/usb/dsbr100.c linux/drivers/usb/dsbr100.c
@@ -33,6 +33,10 @@
 
  History:
 
+ Version 0.24:
+ 	Markus: Hope I got these silly VIDEO_TUNER_LOW issues finally
+	right.  Some minor cleanup, improved standalone compilation
+
  Version 0.23:
  	Markus: Sign extension bug fixed by declaring transfer_buffer unsigned
 
@@ -135,11 +139,11 @@
 
 static int dsbr100_setfreq(usb_dsbr100 *radio, int freq)
 {
-	freq = (freq*80)/16+856;
+	freq = (freq/16*80)/1000+856;
 	if (usb_control_msg(radio->dev, usb_rcvctrlpipe(radio->dev, 0),
-		0x01, 0xC0, (freq&0xff00)>>8, freq&0xff, 
-		radio->transfer_buffer, 8, 300)<0
-	 || usb_control_msg(radio->dev, usb_rcvctrlpipe(radio->dev, 0),
+		0x01, 0xC0, (freq>>8)&0x00ff, freq&0xff, 
+		radio->transfer_buffer, 8, 300)<0 ||
+	    usb_control_msg(radio->dev, usb_rcvctrlpipe(radio->dev, 0),
 		0x00, 0xC0, 0x96, 0xB7, radio->transfer_buffer, 8, 300)<0 ||
 	    usb_control_msg(radio->dev, usb_rcvctrlpipe(radio->dev, 0),
 		0x00, 0xC0, 0x00, 0x24, radio->transfer_buffer, 8, 300)<0) {
@@ -172,7 +176,7 @@
 	usb_dsbr100_radio.priv = radio;
 	radio->dev = dev;
 	radio->ifnum = ifnum;
-	radio->curfreq = 1454;
+	radio->curfreq = 1454000;
 	return (void*)radio;
 }
 
@@ -218,8 +222,8 @@
 				return -EFAULT;
 			if(v.tuner)	/* Only 1 tuner */ 
 				return -EINVAL;
-			v.rangelow = 87*16;
-			v.rangehigh = 108*16;
+			v.rangelow = 87*16000;
+			v.rangehigh = 108*16000;
 			v.flags = VIDEO_TUNER_LOW;
 			v.mode = VIDEO_MODE_AUTO;
 			v.signal = radio->stereo*0x7000;
@@ -321,7 +325,7 @@
 	MOD_DEC_USE_COUNT;
 }
 
-int __init dsbr100_init(void)
+static int __init dsbr100_init(void)
 {
 	usb_dsbr100_radio.priv = NULL;
 	usb_register(&usb_dsbr100_driver);
@@ -332,12 +336,7 @@
 	return 0;
 }
 
-int __init init_module(void)
-{
-	return dsbr100_init();
-}
-
-void cleanup_module(void)
+static void __exit dsbr100_exit(void)
 {
 	usb_dsbr100 *radio=usb_dsbr100_radio.priv;
 
@@ -346,6 +345,9 @@
 	video_unregister_device(&usb_dsbr100_radio);
 	usb_deregister(&usb_dsbr100_driver);
 }
+
+module_init (dsbr100_init);
+module_exit (dsbr100_exit);
 
 MODULE_AUTHOR("Markus Demleitner <msdemlei@tucana.harvard.edu>");
 MODULE_DESCRIPTION("D-Link DSB-R100 USB radio driver");

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)