diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-08-31 16:39:58 -0400 |
---|---|---|
committer | Michael Krufky <mkrufky@linuxtv.org> | 2008-08-31 16:39:58 -0400 |
commit | 7d89270edcc221ddc81a48fb810066488b224b25 (patch) | |
tree | c18e0ef41bde52c3a2bcc5ff5054ccd53d8291a6 /linux/drivers | |
parent | 319b736506ba8f695f973876299c72930508f68c (diff) | |
download | mediapointer-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')
-rw-r--r-- | linux/drivers/media/dvb/siano/sms-cards.c | 17 | ||||
-rw-r--r-- | linux/drivers/media/dvb/siano/sms-cards.h | 2 | ||||
-rw-r--r-- | linux/drivers/media/dvb/siano/smsusb.c | 1 |
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; } |