浏览代码

V4L/DVB (10752): sms1xxx: load smsdvb module automatically based on device id

The smsdvb module was separated from the core and usb code. This change loads
smsdvb automatically for driver configurations that depend on it.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Michael Krufky 17 年之前
父节点
当前提交
05860f2d96
共有 3 个文件被更改,包括 20 次插入0 次删除
  1. 17 0
      drivers/media/dvb/siano/sms-cards.c
  2. 2 0
      drivers/media/dvb/siano/sms-cards.h
  3. 1 0
      drivers/media/dvb/siano/smsusb.c

+ 17 - 0
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);

+ 2 - 0
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__ */

+ 1 - 0
drivers/media/dvb/siano/smsusb.c

@@ -424,6 +424,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;
 }