From 6085c418e42063695cf895d7af008edc36f3fde2 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Wed, 9 Apr 2008 21:13:13 +0200 Subject: Adds selectable adapter numbers as per module option From: Janne Grunau The adapter_nr module options can be used to allocate static adapter numbers on a driver level. It avoids problems with changing DVB apapter numbers after warm/cold boot or device unplugging and repluging. Each driver holds DVB_MAX_ADAPTER long array of the preferred order of adapter numbers. options dvb-usb-dib0700 adapter_nr=7,6,5,4,3,2,1,0 would result in a reversed allocation of adapter numbers. With adapter_nr=2,5 it tries first to get adapter number 2 and 5. If both are already in use it will allocate the lowest free adapter number. Signed-off-by: Janne Grunau Acked-by: Hermann Pitton Signed-off-by: Michael Krufky --- linux/drivers/media/dvb/dvb-core/dvbdev.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'linux/drivers/media/dvb/dvb-core/dvbdev.h') diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.h b/linux/drivers/media/dvb/dvb-core/dvbdev.h index 6dff10ebf..5f9a737c6 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.h +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.h @@ -31,6 +31,10 @@ #define DVB_MAJOR 212 +#define DVB_MAX_ADAPTERS 8 + +#define DVB_UNSET (-1) + #define DVB_DEVICE_VIDEO 0 #define DVB_DEVICE_AUDIO 1 #define DVB_DEVICE_SEC 2 @@ -41,6 +45,11 @@ #define DVB_DEVICE_NET 7 #define DVB_DEVICE_OSD 8 +#define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \ + static short adapter_nr[] = \ + {[0 ... (DVB_MAX_ADAPTERS - 1)] = DVB_UNSET }; \ + module_param_array(adapter_nr, short, NULL, 0444); \ + MODULE_PARM_DESC(adapter_nr, "DVB adapter numbers") struct dvb_adapter { int num; @@ -78,7 +87,9 @@ struct dvb_device { }; -extern int dvb_register_adapter (struct dvb_adapter *adap, const char *name, struct module *module, struct device *device); +extern int dvb_register_adapter(struct dvb_adapter *adap, const char *name, + struct module *module, struct device *device, + short *adapter_nums); extern int dvb_unregister_adapter (struct dvb_adapter *adap); extern int dvb_register_device (struct dvb_adapter *adap, -- cgit v1.2.3 From c8566d4e92c2279fd31da9154b12034dd1d1984d Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 30 Apr 2008 00:09:25 -0300 Subject: Use the same name convention for all tuners under common/tuners From: Mauro Carvalho Chehab kernel-sync: Auto generated by this script: for i in `find drivers/media/ -name Kconfig`; do cat $i |\ sed s,DVB_CORE_ATTACH,MEDIA_ATTACH,g |\ sed s,VIDEO_TUNER,MEDIA_TUNER,g |\ sed s,TUNER_SIMPLE,MEDIA_TUNER_SIMPLE,g |\ sed s,TUNER_TDA8290,MEDIA_TUNER_TDA8290,g |\ sed s,DVB_TDA827X,MEDIA_TUNER_TDA827X,g |\ sed s,DVB_TDA18271,MEDIA_TUNER_TDA18271,g |\ sed s,TUNER_TDA9887,MEDIA_TUNER_TDA9887,g |\ sed s,TUNER_TEA5761,MEDIA_TUNER_TEA5761,g |\ sed s,TUNER_TEA5767,MEDIA_TUNER_TEA5767,g |\ sed s,TUNER_MT20XX,MEDIA_TUNER_MT20XX,g |\ sed s,DVB_TUNER_MT2060,MEDIA_TUNER_MT2060,g |\ sed s,DVB_TUNER_MT2266,MEDIA_TUNER_MT2266,g |\ sed s,DVB_TUNER_MT2131,MEDIA_TUNER_MT2131,g |\ sed s,DVB_TUNER_QT1010,MEDIA_TUNER_QT1010,g |\ sed s,TUNER_XC2028,MEDIA_TUNER_XC2028,g |\ sed s,DVB_TUNER_XC5000,MEDIA_TUNER_XC5000,g >/tmp/temp_mv$$ mv /tmp/temp_mv$$ $i done for i in `find drivers/media/ -type f`; do cat $i |\ sed s,CONFIG_DVB_CORE_ATTACH,CONFIG_MEDIA_ATTACH,g |\ sed s,CONFIG_VIDEO_TUNER,CONFIG_MEDIA_TUNER,g |\ sed s,CONFIG_TUNER_SIMPLE,CONFIG_MEDIA_TUNER_SIMPLE,g |\ sed s,CONFIG_TUNER_TDA8290,CONFIG_MEDIA_TUNER_TDA8290,g |\ sed s,CONFIG_DVB_TDA827X,CONFIG_MEDIA_TUNER_TDA827X,g |\ sed s,CONFIG_DVB_TDA18271,CONFIG_MEDIA_TUNER_TDA18271,g |\ sed s,CONFIG_TUNER_TDA9887,CONFIG_MEDIA_TUNER_TDA9887,g |\ sed s,CONFIG_TUNER_TEA5761,CONFIG_MEDIA_TUNER_TEA5761,g |\ sed s,CONFIG_TUNER_TEA5767,CONFIG_MEDIA_TUNER_TEA5767,g |\ sed s,CONFIG_TUNER_MT20XX,CONFIG_MEDIA_TUNER_MT20XX,g |\ sed s,CONFIG_DVB_TUNER_MT2060,CONFIG_MEDIA_TUNER_MT2060,g |\ sed s,CONFIG_DVB_TUNER_MT2266,CONFIG_MEDIA_TUNER_MT2266,g |\ sed s,CONFIG_DVB_TUNER_MT2131,CONFIG_MEDIA_TUNER_MT2131,g |\ sed s,CONFIG_DVB_TUNER_QT1010,CONFIG_MEDIA_TUNER_QT1010,g |\ sed s,CONFIG_TUNER_XC2028,CONFIG_MEDIA_TUNER_XC2028,g |\ sed s,CONFIG_DVB_TUNER_XC5000,CONFIG_MEDIA_TUNER_XC5000,g >/tmp/temp_mv$$ mv /tmp/temp_mv$$ $i done Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/dvb/dvb-core/dvbdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux/drivers/media/dvb/dvb-core/dvbdev.h') diff --git a/linux/drivers/media/dvb/dvb-core/dvbdev.h b/linux/drivers/media/dvb/dvb-core/dvbdev.h index 5f9a737c6..89d12dc47 100644 --- a/linux/drivers/media/dvb/dvb-core/dvbdev.h +++ b/linux/drivers/media/dvb/dvb-core/dvbdev.h @@ -115,7 +115,7 @@ extern int dvb_usercopy(struct inode *inode, struct file *file, unsigned int cmd, void *arg)); /** generic DVB attach function. */ -#ifdef CONFIG_DVB_CORE_ATTACH +#ifdef CONFIG_MEDIA_ATTACH #define dvb_attach(FUNCTION, ARGS...) ({ \ void *__r = NULL; \ typeof(&FUNCTION) __a = symbol_request(FUNCTION); \ -- cgit v1.2.3