summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-08-31 16:39:58 -0400
committerMichael Krufky <mkrufky@linuxtv.org>2008-08-31 16:39:58 -0400
commit7d89270edcc221ddc81a48fb810066488b224b25 (patch)
treec18e0ef41bde52c3a2bcc5ff5054ccd53d8291a6 /linux/drivers/media
parent319b736506ba8f695f973876299c72930508f68c (diff)
downloadmediapointer-dvb-s2-7d89270edcc221ddc81a48fb810066488b224b25.tar.gz
mediapointer-dvb-s2-7d89270edcc221ddc81a48fb810066488b224b25.tar.bz2
sms1xxx: load smsdvb module automatically based on device id
From: Michael Krufky <mkrufky@linuxtv.org> The smsdvb module was separated from the core and usb code. This change loads smsdvb automatically for driver configurations that depend on it. Priority: normal Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/dvb/siano/sms-cards.c17
-rw-r--r--linux/drivers/media/dvb/siano/sms-cards.h2
-rw-r--r--linux/drivers/media/dvb/siano/smsusb.c1
3 files changed, 20 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/siano/sms-cards.c b/linux/drivers/media/dvb/siano/sms-cards.c
index 4fa86f5b7..44df81a81 100644
--- a/linux/drivers/media/dvb/siano/sms-cards.c
+++ b/linux/drivers/media/dvb/siano/sms-cards.c
@@ -204,3 +204,20 @@ int sms_board_lna_control(struct smscore_device_t *coredev, int onoff)
return -EINVAL;
}
EXPORT_SYMBOL(sms_board_lna_control);
+
+int sms_board_load_modules(int id)
+{
+ switch (id) {
+ case SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT:
+ case SMS1XXX_BOARD_HAUPPAUGE_OKEMO_A:
+ case SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B:
+ case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
+ request_module("smsdvb");
+ break;
+ default:
+ /* do nothing */
+ break;
+ }
+ return 0;
+}
+EXPORT_SYMBOL(sms_board_load_modules);
diff --git a/linux/drivers/media/dvb/siano/sms-cards.h b/linux/drivers/media/dvb/siano/sms-cards.h
index 8f539a2e5..64d74c59c 100644
--- a/linux/drivers/media/dvb/siano/sms-cards.h
+++ b/linux/drivers/media/dvb/siano/sms-cards.h
@@ -54,4 +54,6 @@ int sms_board_led_feedback(struct smscore_device_t *coredev, int led);
int sms_board_power(struct smscore_device_t *coredev, int onoff);
int sms_board_lna_control(struct smscore_device_t *coredev, int onoff);
+extern int sms_board_load_modules(int id);
+
#endif /* __SMS_CARDS_H__ */
diff --git a/linux/drivers/media/dvb/siano/smsusb.c b/linux/drivers/media/dvb/siano/smsusb.c
index e5c378e46..a2da36122 100644
--- a/linux/drivers/media/dvb/siano/smsusb.c
+++ b/linux/drivers/media/dvb/siano/smsusb.c
@@ -432,6 +432,7 @@ static int smsusb_probe(struct usb_interface *intf,
rc = smsusb_init_device(intf, id->driver_info);
sms_info("rc %d", rc);
+ sms_board_load_modules(id->driver_info);
return rc;
}