Message ID | 20110221214906.GA27284@mess.org (mailing list archive) |
---|---|
State | Rejected |
Headers | show |
Hi Sean, Em 21-02-2011 18:49, Sean Young escreveu: > I have a SheevaPlug which has no (human) input or output devices, with a > DVB USB device connected with a mythtv backend running. The DVB USB drivers > pull in the remote control tree, which is unneeded in this case; the > mythtv client runs elsewhere (where RC is used). However the RC tree depends > on input which also has dependants. > > This can save a reasonable amount of memory: > > $ ./scripts/bloat-o-meter vmlinux vmlinux-no-rc add/remove: 0/909 grow/shrink: 1/20 up/down: 4/-159171 (-159167) Sorry for a late review. The problem with this patch is that it is too much intrusive. It is a bad practice to fill the code with lots of #ifdef's, because it makes harder to analyse the source code and find bugs there. Also, while it saves some memory, this strategy forces that all DVB drivers to have a check for RC_CORE, being very easy that someone would forget about that, causing compilation breakages if this option is disabled. The proper way is to have a separate module for RC and just making such module as dependent of RC_CORE. Mauro. > > Diff against current mainline. > > Signed-off-by: Sean Young <sean@mess.org> > --- > diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig > index 3d48ba0..a03bcf5 100644 > --- a/drivers/media/dvb/dvb-usb/Kconfig > +++ b/drivers/media/dvb/dvb-usb/Kconfig > @@ -1,6 +1,6 @@ > config DVB_USB > tristate "Support for various USB DVB devices" > - depends on DVB_CORE && USB && I2C && RC_CORE > + depends on DVB_CORE && USB && I2C > help > By enabling this you will be able to choose the various supported > USB1.1 and USB2.0 DVB devices. > diff --git a/drivers/media/dvb/dvb-usb/a800.c b/drivers/media/dvb/dvb-usb/a800.c > index 53b93a4..b4b6387 100644 > --- a/drivers/media/dvb/dvb-usb/a800.c > +++ b/drivers/media/dvb/dvb-usb/a800.c > @@ -37,6 +37,7 @@ static int a800_identify_state(struct usb_device *udev, struct dvb_usb_device_pr > return 0; > } > > +#ifdef CONFIG_RC_CORE > static struct rc_map_table rc_map_a800_table[] = { > { 0x0201, KEY_PROG1 }, /* SOURCE */ > { 0x0200, KEY_POWER }, /* POWER */ > @@ -90,6 +91,7 @@ static int a800_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > deb_rc("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]); > return 0; > } > +#endif > > /* USB Driver stuff */ > static struct dvb_usb_device_properties a800_properties; > @@ -146,12 +148,14 @@ static struct dvb_usb_device_properties a800_properties = { > .power_ctrl = a800_power_ctrl, > .identify_state = a800_identify_state, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_map_table = rc_map_a800_table, > .rc_map_size = ARRAY_SIZE(rc_map_a800_table), > .rc_query = a800_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/af9005.c b/drivers/media/dvb/dvb-usb/af9005.c > index 51f6439..0f1503e 100644 > --- a/drivers/media/dvb/dvb-usb/af9005.c > +++ b/drivers/media/dvb/dvb-usb/af9005.c > @@ -42,10 +42,12 @@ MODULE_PARM_DESC(dump_eeprom, "dump contents of the eeprom."); > DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); > > /* remote control decoder */ > +#ifdef CONFIG_RC_CORE > static int (*rc_decode) (struct dvb_usb_device *d, u8 *data, int len, > u32 *event, int *state); > static void *rc_keys; > static int *rc_keys_size; > +#endif > > u8 regmask[8] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff }; > > @@ -819,6 +821,7 @@ static int af9005_frontend_attach(struct dvb_usb_adapter *adap) > return 0; > } > > +#ifdef CONFIG_RC_CORE > static int af9005_rc_query(struct dvb_usb_device *d, u32 * event, int *state) > { > struct af9005_device_state *st = d->priv; > @@ -871,6 +874,7 @@ static int af9005_rc_query(struct dvb_usb_device *d, u32 * event, int *state) > } > return 0; > } > +#endif > > static int af9005_power_ctrl(struct dvb_usb_device *d, int onoff) > { > @@ -1025,12 +1029,14 @@ static struct dvb_usb_device_properties af9005_properties = { > > .i2c_algo = &af9005_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 200, > .rc_map_table = NULL, > .rc_map_size = 0, > .rc_query = af9005_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 2, > .generic_bulk_ctrl_endpoint_response = 1, > @@ -1069,6 +1075,7 @@ static int __init af9005_usb_module_init(void) > err("usb_register failed. (%d)", result); > return result; > } > +#ifdef CONFIG_RC_CORE > rc_decode = symbol_request(af9005_rc_decode); > rc_keys = symbol_request(rc_map_af9005_table); > rc_keys_size = symbol_request(rc_map_af9005_table_size); > @@ -1079,12 +1086,14 @@ static int __init af9005_usb_module_init(void) > af9005_properties.rc.legacy.rc_map_table = rc_keys; > af9005_properties.rc.legacy.rc_map_size = *rc_keys_size; > } > +#endif > > return 0; > } > > static void __exit af9005_usb_module_exit(void) > { > +#ifdef CONFIG_RC_CORE > /* release rc decode symbols */ > if (rc_decode != NULL) > symbol_put(af9005_rc_decode); > @@ -1092,6 +1101,7 @@ static void __exit af9005_usb_module_exit(void) > symbol_put(rc_map_af9005_table); > if (rc_keys_size != NULL) > symbol_put(rc_map_af9005_table_size); > +#endif > /* deregister this driver from the USB subsystem */ > usb_deregister(&af9005_usb_driver); > } > diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c > index 8671ca3..fe01d13 100644 > --- a/drivers/media/dvb/dvb-usb/af9015.c > +++ b/drivers/media/dvb/dvb-usb/af9015.c > @@ -37,9 +37,11 @@ > static int dvb_usb_af9015_debug; > module_param_named(debug, dvb_usb_af9015_debug, int, 0644); > MODULE_PARM_DESC(debug, "set debugging level" DVB_USB_DEBUG_STATUS); > +#ifdef CONFIG_IR_CORE > static int dvb_usb_af9015_remote; > module_param_named(remote, dvb_usb_af9015_remote, int, 0644); > MODULE_PARM_DESC(remote, "select remote"); > +#endif > DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); > > static DEFINE_MUTEX(af9015_usb_mutex); > @@ -707,6 +709,7 @@ error: > return ret; > } > > +#ifdef CONFIG_IR_CORE > struct af9015_rc_setup { > unsigned int id; > char *rc_codes; > @@ -804,6 +807,7 @@ static void af9015_set_remote_config(struct usb_device *udev, > > return; > } > +#endif > > static int af9015_read_config(struct usb_device *udev) > { > @@ -826,6 +830,7 @@ static int af9015_read_config(struct usb_device *udev) > if (ret) > goto error; > > +#ifdef CONFIG_IR_CORE > deb_info("%s: IR mode:%d\n", __func__, val); > for (i = 0; i < af9015_properties_count; i++) { > if (val == AF9015_IR_MODE_DISABLED) > @@ -833,6 +838,7 @@ static int af9015_read_config(struct usb_device *udev) > else > af9015_set_remote_config(udev, &af9015_properties[i]); > } > +#endif > > /* TS mode - one or two receivers */ > req.addr = AF9015_EEPROM_TS_MODE; > @@ -1012,6 +1018,7 @@ static int af9015_identify_state(struct usb_device *udev, > return ret; > } > > +#ifdef CONFIG_IR_CORE > static int af9015_rc_query(struct dvb_usb_device *d) > { > struct af9015_state *priv = d->priv; > @@ -1060,6 +1067,7 @@ error: > > return ret; > } > +#endif > > /* init 2nd I2C adapter */ > static int af9015_i2c_init(struct dvb_usb_device *d) > @@ -1343,6 +1351,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { > > .identify_state = af9015_identify_state, > > +#ifdef CONFIG_IR_CORE > .rc.core = { > .protocol = RC_TYPE_NEC, > .module_name = "af9015", > @@ -1350,6 +1359,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { > .rc_interval = AF9015_RC_INTERVAL, > .allowed_protos = RC_TYPE_NEC, > }, > +#endif > > .i2c_algo = &af9015_i2c_algo, > > @@ -1471,6 +1481,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { > > .identify_state = af9015_identify_state, > > +#ifdef CONFIG_IR_CORE > .rc.core = { > .protocol = RC_TYPE_NEC, > .module_name = "af9015", > @@ -1478,6 +1489,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { > .rc_interval = AF9015_RC_INTERVAL, > .allowed_protos = RC_TYPE_NEC, > }, > +#endif > > .i2c_algo = &af9015_i2c_algo, > > @@ -1583,6 +1595,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { > > .identify_state = af9015_identify_state, > > +#ifdef CONFIG_IR_CORE > .rc.core = { > .protocol = RC_TYPE_NEC, > .module_name = "af9015", > @@ -1590,6 +1603,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { > .rc_interval = AF9015_RC_INTERVAL, > .allowed_protos = RC_TYPE_NEC, > }, > +#endif > > .i2c_algo = &af9015_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c > index 6b402e9..972a208 100644 > --- a/drivers/media/dvb/dvb-usb/anysee.c > +++ b/drivers/media/dvb/dvb-usb/anysee.c > @@ -374,6 +374,7 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap) > return 0; > } > > +#ifdef CONFIG_RC_CORE > static int anysee_rc_query(struct dvb_usb_device *d) > { > u8 buf[] = {CMD_GET_IR_CODE}; > @@ -399,6 +400,7 @@ static int anysee_rc_query(struct dvb_usb_device *d) > > return 0; > } > +#endif > > /* DVB USB Driver stuff */ > static struct dvb_usb_device_properties anysee_properties; > @@ -474,6 +476,7 @@ static struct dvb_usb_device_properties anysee_properties = { > } > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_codes = RC_MAP_ANYSEE, > .protocol = RC_TYPE_OTHER, > @@ -481,6 +484,7 @@ static struct dvb_usb_device_properties anysee_properties = { > .rc_query = anysee_rc_query, > .rc_interval = 250, /* windows driver uses 500ms */ > }, > +#endif > > .i2c_algo = &anysee_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/az6027.c b/drivers/media/dvb/dvb-usb/az6027.c > index 57e2444..8a478ef 100644 > --- a/drivers/media/dvb/dvb-usb/az6027.c > +++ b/drivers/media/dvb/dvb-usb/az6027.c > @@ -385,6 +385,7 @@ static int az6027_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) > return ret; > } > > +#ifdef CONFIG_RC_CORE > /* keys for the enclosed remote control */ > static struct rc_map_table rc_map_az6027_table[] = { > { 0x01, KEY_1 }, > @@ -396,6 +397,7 @@ static int az6027_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > { > return 0; > } > +#endif > > /* > int az6027_power_ctrl(struct dvb_usb_device *d, int onoff) > @@ -1126,12 +1128,14 @@ static struct dvb_usb_device_properties az6027_properties = { > .power_ctrl = az6027_power_ctrl, > .read_mac_address = az6027_read_mac_addr, > */ > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_az6027_table, > .rc_map_size = ARRAY_SIZE(rc_map_az6027_table), > .rc_interval = 400, > .rc_query = az6027_rc_query, > }, > +#endif > > .i2c_algo = &az6027_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/cinergyT2-core.c b/drivers/media/dvb/dvb-usb/cinergyT2-core.c > index 16f2ce2..82e106f 100644 > --- a/drivers/media/dvb/dvb-usb/cinergyT2-core.c > +++ b/drivers/media/dvb/dvb-usb/cinergyT2-core.c > @@ -84,6 +84,7 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap) > return 0; > } > > +#ifdef CONFIG_RC_CORE > static struct rc_map_table rc_map_cinergyt2_table[] = { > { 0x0401, KEY_POWER }, > { 0x0402, KEY_1 }, > @@ -177,6 +178,7 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > } > return 0; > } > +#endif > > static int cinergyt2_usb_probe(struct usb_interface *intf, > const struct usb_device_id *id) > @@ -217,12 +219,14 @@ static struct dvb_usb_device_properties cinergyt2_properties = { > > .power_ctrl = cinergyt2_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 50, > .rc_map_table = rc_map_cinergyt2_table, > .rc_map_size = ARRAY_SIZE(rc_map_cinergyt2_table), > .rc_query = cinergyt2_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 1, > > diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c > index acb5fb2..fe926c6 100644 > --- a/drivers/media/dvb/dvb-usb/cxusb.c > +++ b/drivers/media/dvb/dvb-usb/cxusb.c > @@ -383,6 +383,7 @@ static int cxusb_d680_dmb_streaming_ctrl( > } > } > > +#ifdef CONFIG_RC_CORE > static int cxusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > { > struct rc_map_table *keymap = d->props.rc.legacy.rc_map_table; > @@ -585,6 +586,7 @@ static struct rc_map_table rc_map_d680_dmb_table[] = { > { 0x0814, KEY_UNKNOWN }, /* Shuffle */ > { 0x0025, KEY_POWER }, > }; > +#endif > > static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) > { > @@ -902,11 +904,6 @@ static int cxusb_dee1601_frontend_attach(struct dvb_usb_adapter *adap) > > static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap) > { > - u8 ircode[4]; > - int i; > - struct i2c_msg msg = { .addr = 0x6b, .flags = I2C_M_RD, > - .buf = ircode, .len = 4 }; > - > if (usb_set_interface(adap->dev->udev, 0, 1) < 0) > err("set interface failed"); > > @@ -922,6 +919,12 @@ static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap) > &adap->dev->i2c_adap)) == NULL) > return -EIO; > > +#ifdef CONFIG_RC_CORE > + int i; > + u8 ircode[4]; > + struct i2c_msg msg = { .addr = 0x6b, .flags = I2C_M_RD, > + .buf = ircode, .len = 4 }; > + > /* try to determine if there is no IR decoder on the I2C bus */ > for (i = 0; adap->dev->props.rc.legacy.rc_map_table != NULL && i < 5; i++) { > msleep(20); > @@ -936,6 +939,7 @@ no_IR: > break; > } > } > +#endif > > return 0; > } > @@ -1451,12 +1455,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgh064f_properties = { > > .i2c_algo = &cxusb_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_portable_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), > .rc_query = cxusb_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > @@ -1504,12 +1510,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_dee1601_properties = { > > .i2c_algo = &cxusb_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 150, > .rc_map_table = rc_map_dvico_mce_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table), > .rc_query = cxusb_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > @@ -1565,12 +1573,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgz201_properties = { > > .i2c_algo = &cxusb_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_portable_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), > .rc_query = cxusb_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > .num_device_descs = 1, > @@ -1617,12 +1627,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_dtt7579_properties = { > > .i2c_algo = &cxusb_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_portable_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), > .rc_query = cxusb_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > @@ -1668,12 +1680,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_dualdig4_properties = { > > .generic_bulk_ctrl_endpoint = 0x01, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_mce_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table), > .rc_query = cxusb_bluebird2_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > @@ -1718,12 +1732,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_properties = { > > .generic_bulk_ctrl_endpoint = 0x01, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_portable_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), > .rc_query = cxusb_bluebird2_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > @@ -1770,12 +1786,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_needsfirmware_prope > > .generic_bulk_ctrl_endpoint = 0x01, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_portable_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), > .rc_query = cxusb_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > @@ -1863,12 +1881,14 @@ struct dvb_usb_device_properties cxusb_bluebird_dualdig4_rev2_properties = { > > .generic_bulk_ctrl_endpoint = 0x01, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_dvico_mce_table, > .rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table), > .rc_query = cxusb_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > @@ -1913,12 +1933,14 @@ static struct dvb_usb_device_properties cxusb_d680_dmb_properties = { > > .generic_bulk_ctrl_endpoint = 0x01, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_d680_dmb_table, > .rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table), > .rc_query = cxusb_d680_dmb_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > @@ -1964,12 +1986,14 @@ static struct dvb_usb_device_properties cxusb_mygica_d689_properties = { > > .generic_bulk_ctrl_endpoint = 0x01, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_d680_dmb_table, > .rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table), > .rc_query = cxusb_d680_dmb_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c > index 98ffb40..b53c8f0 100644 > --- a/drivers/media/dvb/dvb-usb/dib0700_core.c > +++ b/drivers/media/dvb/dvb-usb/dib0700_core.c > @@ -471,6 +471,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) > return dib0700_ctrl_wr(adap->dev, b, 4); > } > > +#ifdef CONFIG_RC_CORE > int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) > { > struct dvb_usb_device *d = rc->priv; > @@ -645,6 +646,7 @@ int dib0700_rc_setup(struct dvb_usb_device *d) > > return ret; > } > +#endif > > static int dib0700_probe(struct usb_interface *intf, > const struct usb_device_id *id) > @@ -667,6 +669,7 @@ static int dib0700_probe(struct usb_interface *intf, > st->fw_version = fw_version; > st->nb_packet_buffer_size = (u32)nb_packet_buffer_size; > > +#ifdef CONFIG_RC_CORE > /* Disable polling mode on newer firmwares */ > if (st->fw_version >= 0x10200) > dev->props.rc.core.bulk_mode = true; > @@ -674,6 +677,7 @@ static int dib0700_probe(struct usb_interface *intf, > dev->props.rc.core.bulk_mode = false; > > dib0700_rc_setup(dev); > +#endif > > return 0; > } > diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c > index defd839..fc7dc6e 100644 > --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c > +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c > @@ -466,6 +466,8 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap) > == NULL ? -ENODEV : 0; > } > > +#ifdef CONFIG_RC_CORE > + > #define DEFAULT_RC_INTERVAL 50 > > static u8 rc_request[] = { REQUEST_POLL_RC, 0 }; > @@ -532,6 +534,7 @@ static int dib0700_rc_query_old_firmware(struct dvb_usb_device *d) > } > return 0; > } > +#endif > > /* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */ > static struct dibx000_agc_config stk7700p_7000m_mt2060_agc_config = { > @@ -1920,6 +1923,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > } > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -1929,6 +1933,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 2, > @@ -1954,6 +1959,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -1963,6 +1969,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 2, > @@ -2013,6 +2020,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2022,6 +2030,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 1, > @@ -2054,6 +2063,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > } > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2064,6 +2074,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 1, > @@ -2130,6 +2141,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2140,6 +2152,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 1, > @@ -2174,6 +2187,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2184,6 +2198,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 2, > @@ -2242,6 +2257,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2252,6 +2268,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 2, > @@ -2289,6 +2306,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_NEC_TABLE, > @@ -2299,6 +2317,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > > .num_adapters = 1, > @@ -2358,6 +2377,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2368,6 +2388,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > .num_adapters = 1, > .adapter = { > @@ -2394,6 +2415,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2404,6 +2426,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > .num_adapters = 1, > .adapter = { > @@ -2462,6 +2485,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2472,6 +2496,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > .num_adapters = 1, > .adapter = { > @@ -2506,6 +2531,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_NEC_TABLE, > @@ -2516,6 +2542,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > .num_adapters = 2, > .adapter = { > @@ -2555,6 +2582,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2565,6 +2593,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, > .num_adapters = 1, > .adapter = { > @@ -2592,6 +2621,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > }, > }, > > +#ifdef CONFIG_RC_CORE > .rc.core = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_codes = RC_MAP_DIB0700_RC5_TABLE, > @@ -2602,6 +2632,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { > RC_TYPE_NEC, > .change_protocol = dib0700_change_protocol, > }, > +#endif > }, > }; > > diff --git a/drivers/media/dvb/dvb-usb/dibusb-common.c b/drivers/media/dvb/dvb-usb/dibusb-common.c > index 956f7ae..7bd029f 100644 > --- a/drivers/media/dvb/dvb-usb/dibusb-common.c > +++ b/drivers/media/dvb/dvb-usb/dibusb-common.c > @@ -324,6 +324,7 @@ int dibusb_dib3000mc_tuner_attach(struct dvb_usb_adapter *adap) > EXPORT_SYMBOL(dibusb_dib3000mc_tuner_attach); > #endif > > +#ifdef CONFIG_RC_CORE > /* > * common remote control stuff > */ > @@ -468,3 +469,4 @@ int dibusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > return 0; > } > EXPORT_SYMBOL(dibusb_rc_query); > +#endif > diff --git a/drivers/media/dvb/dvb-usb/dibusb-mb.c b/drivers/media/dvb/dvb-usb/dibusb-mb.c > index 04d91bd..08b6267 100644 > --- a/drivers/media/dvb/dvb-usb/dibusb-mb.c > +++ b/drivers/media/dvb/dvb-usb/dibusb-mb.c > @@ -211,12 +211,14 @@ static struct dvb_usb_device_properties dibusb1_1_properties = { > > .power_ctrl = dibusb_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_map_table = rc_map_dibusb_table, > .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ > .rc_query = dibusb_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > @@ -297,12 +299,14 @@ static struct dvb_usb_device_properties dibusb1_1_an2235_properties = { > }, > .power_ctrl = dibusb_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_map_table = rc_map_dibusb_table, > .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ > .rc_query = dibusb_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > @@ -363,12 +367,14 @@ static struct dvb_usb_device_properties dibusb2_0b_properties = { > }, > .power_ctrl = dibusb2_0_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_map_table = rc_map_dibusb_table, > .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ > .rc_query = dibusb_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > @@ -422,12 +428,14 @@ static struct dvb_usb_device_properties artec_t1_usb2_properties = { > }, > .power_ctrl = dibusb2_0_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_map_table = rc_map_dibusb_table, > .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ > .rc_query = dibusb_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/dibusb-mc.c b/drivers/media/dvb/dvb-usb/dibusb-mc.c > index c1d9094..6ad1c23 100644 > --- a/drivers/media/dvb/dvb-usb/dibusb-mc.c > +++ b/drivers/media/dvb/dvb-usb/dibusb-mc.c > @@ -81,12 +81,14 @@ static struct dvb_usb_device_properties dibusb_mc_properties = { > }, > .power_ctrl = dibusb2_0_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = DEFAULT_RC_INTERVAL, > .rc_map_table = rc_map_dibusb_table, > .rc_map_size = 111, /* FIXME */ > .rc_query = dibusb_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c > index f2dbce7..dc81cc2 100644 > --- a/drivers/media/dvb/dvb-usb/digitv.c > +++ b/drivers/media/dvb/dvb-usb/digitv.c > @@ -161,6 +161,7 @@ static int digitv_tuner_attach(struct dvb_usb_adapter *adap) > return 0; > } > > +#ifdef CONFIG_RC_CORE > static struct rc_map_table rc_map_digitv_table[] = { > { 0x5f55, KEY_0 }, > { 0x6f55, KEY_1 }, > @@ -251,6 +252,7 @@ static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > deb_rc("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]); > return 0; > } > +#endif > > /* DVB USB Driver stuff */ > static struct dvb_usb_device_properties digitv_properties; > @@ -310,12 +312,14 @@ static struct dvb_usb_device_properties digitv_properties = { > }, > .identify_state = digitv_identify_state, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 1000, > .rc_map_table = rc_map_digitv_table, > .rc_map_size = ARRAY_SIZE(rc_map_digitv_table), > .rc_query = digitv_rc_query, > }, > +#endif > > .i2c_algo = &digitv_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c > index ecd86ec..4082fb2 100644 > --- a/drivers/media/dvb/dvb-usb/dtt200u.c > +++ b/drivers/media/dvb/dvb-usb/dtt200u.c > @@ -55,6 +55,7 @@ static int dtt200u_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid, > return dvb_usb_generic_write(adap->dev, b_pid, 4); > } > > +#ifdef CONFIG_RC_CORE > /* remote control */ > /* key list for the tiny remote control (Yakumo, don't know about the others) */ > static struct rc_map_table rc_map_dtt200u_table[] = { > @@ -87,6 +88,7 @@ static int dtt200u_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > deb_info("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]); > return 0; > } > +#endif > > static int dtt200u_frontend_attach(struct dvb_usb_adapter *adap) > { > @@ -161,12 +163,14 @@ static struct dvb_usb_device_properties dtt200u_properties = { > }, > .power_ctrl = dtt200u_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 300, > .rc_map_table = rc_map_dtt200u_table, > .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), > .rc_query = dtt200u_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > @@ -208,12 +212,14 @@ static struct dvb_usb_device_properties wt220u_properties = { > }, > .power_ctrl = dtt200u_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 300, > .rc_map_table = rc_map_dtt200u_table, > .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), > .rc_query = dtt200u_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > @@ -255,12 +261,14 @@ static struct dvb_usb_device_properties wt220u_fc_properties = { > }, > .power_ctrl = dtt200u_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 300, > .rc_map_table = rc_map_dtt200u_table, > .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), > .rc_query = dtt200u_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > @@ -302,12 +310,14 @@ static struct dvb_usb_device_properties wt220u_zl0353_properties = { > }, > .power_ctrl = dtt200u_power_ctrl, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 300, > .rc_map_table = rc_map_dtt200u_table, > .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), > .rc_query = dtt200u_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x01, > > diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c > index 23005b3..4a5de7a 100644 > --- a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c > +++ b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c > @@ -8,6 +8,7 @@ > #include "dvb-usb-common.h" > #include <linux/usb/input.h> > > +#ifdef CONFIG_RC_CORE > static int legacy_dvb_usb_getkeycode(struct input_dev *dev, > unsigned int scancode, unsigned int *keycode) > { > @@ -362,3 +363,7 @@ int dvb_usb_nec_rc_key_to_event(struct dvb_usb_device *d, > return 0; > } > EXPORT_SYMBOL(dvb_usb_nec_rc_key_to_event); > +#else > +int dvb_usb_remote_init(struct dvb_usb_device *d) { return 0; } > +int dvb_usb_remote_exit(struct dvb_usb_device *d) { return 0; } > +#endif > diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h > index 65fa926..0920ba1 100644 > --- a/drivers/media/dvb/dvb-usb/dvb-usb.h > +++ b/drivers/media/dvb/dvb-usb/dvb-usb.h > @@ -270,11 +270,13 @@ struct dvb_usb_device_properties { > int (*identify_state) (struct usb_device *, struct dvb_usb_device_properties *, > struct dvb_usb_device_description **, int *); > > +#ifdef CONFIG_RC_CORE > struct { > enum dvb_usb_mode mode; /* Drivers shouldn't touch on it */ > struct dvb_rc_legacy legacy; > struct dvb_rc core; > } rc; > +#endif > > struct i2c_algorithm *i2c_algo; > > diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c > index 2c307ba..9a61a3f 100644 > --- a/drivers/media/dvb/dvb-usb/dw2102.c > +++ b/drivers/media/dvb/dvb-usb/dw2102.c > @@ -83,11 +83,12 @@ static int dvb_usb_dw2102_debug; > module_param_named(debug, dvb_usb_dw2102_debug, int, 0644); > MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer 4=rc(or-able))." > DVB_USB_DEBUG_STATUS); > - > +#ifdef CONFIG_RC_CORE > /* keymaps */ > static int ir_keymap; > module_param_named(keymap, ir_keymap, int, 0644); > MODULE_PARM_DESC(keymap, "set keymap 0=default 1=dvbworld 2=tevii 3=tbs ..."); > +#endif > > /* demod probe */ > static int demod_probe = 1; > @@ -948,6 +949,7 @@ static int dw3101_tuner_attach(struct dvb_usb_adapter *adap) > return 0; > } > > +#ifdef CONFIG_RC_CORE > static struct rc_map_table rc_map_dw210x_table[] = { > { 0xf80a, KEY_Q }, /*power*/ > { 0xf80c, KEY_M }, /*mute*/ > @@ -1113,6 +1115,7 @@ static int dw2102_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > > return 0; > } > +#endif > > static struct usb_device_id dw2102_table[] = { > {USB_DEVICE(USB_VID_CYPRESS, USB_PID_DW2102)}, > @@ -1185,14 +1188,18 @@ static int dw2102_load_firmware(struct usb_device *dev, > /* init registers */ > switch (dev->descriptor.idProduct) { > case USB_PID_PROF_1100: > +#ifdef CONFIG_RC_CORE > s6x0_properties.rc.legacy.rc_map_table = rc_map_tbs_table; > s6x0_properties.rc.legacy.rc_map_size = > ARRAY_SIZE(rc_map_tbs_table); > +#endif > break; > case USB_PID_TEVII_S650: > +#ifdef CONFIG_RC_CORE > dw2104_properties.rc.legacy.rc_map_table = rc_map_tevii_table; > dw2104_properties.rc.legacy.rc_map_size = > ARRAY_SIZE(rc_map_tevii_table); > +#endif > case USB_PID_DW2104: > reset = 1; > dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1, > @@ -1256,12 +1263,14 @@ static struct dvb_usb_device_properties dw2102_properties = { > > .i2c_algo = &dw2102_serit_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_dw210x_table, > .rc_map_size = ARRAY_SIZE(rc_map_dw210x_table), > .rc_interval = 150, > .rc_query = dw2102_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x81, > /* parameter for the MPEG2-data transfer */ > @@ -1309,12 +1318,14 @@ static struct dvb_usb_device_properties dw2104_properties = { > .no_reconnect = 1, > > .i2c_algo = &dw2104_i2c_algo, > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_dw210x_table, > .rc_map_size = ARRAY_SIZE(rc_map_dw210x_table), > .rc_interval = 150, > .rc_query = dw2102_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x81, > /* parameter for the MPEG2-data transfer */ > @@ -1358,12 +1369,14 @@ static struct dvb_usb_device_properties dw3101_properties = { > .no_reconnect = 1, > > .i2c_algo = &dw3101_i2c_algo, > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_dw210x_table, > .rc_map_size = ARRAY_SIZE(rc_map_dw210x_table), > .rc_interval = 150, > .rc_query = dw2102_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x81, > /* parameter for the MPEG2-data transfer */ > @@ -1403,12 +1416,14 @@ static struct dvb_usb_device_properties s6x0_properties = { > .no_reconnect = 1, > > .i2c_algo = &s6x0_i2c_algo, > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_tevii_table, > .rc_map_size = ARRAY_SIZE(rc_map_tevii_table), > .rc_interval = 150, > .rc_query = dw2102_rc_query, > }, > +#endif > > .generic_bulk_ctrl_endpoint = 0x81, > .num_adapters = 1, > @@ -1468,8 +1483,10 @@ static int dw2102_probe(struct usb_interface *intf, > /* fill only different fields */ > p7500->firmware = "dvb-usb-p7500.fw"; > p7500->devices[0] = d7500; > +#ifdef CONFIG_RC_CORE > p7500->rc.legacy.rc_map_table = rc_map_tbs_table; > p7500->rc.legacy.rc_map_size = ARRAY_SIZE(rc_map_tbs_table); > +#endif > p7500->adapter->frontend_attach = prof_7500_frontend_attach; > > if (0 == dvb_usb_device_init(intf, &dw2102_properties, > diff --git a/drivers/media/dvb/dvb-usb/lmedm04.c b/drivers/media/dvb/dvb-usb/lmedm04.c > index 9eea418..caceda5 100644 > --- a/drivers/media/dvb/dvb-usb/lmedm04.c > +++ b/drivers/media/dvb/dvb-usb/lmedm04.c > @@ -193,12 +193,14 @@ static int lme2510_stream_restart(struct dvb_usb_device *d) > } > static int lme2510_remote_keypress(struct dvb_usb_adapter *adap, u16 keypress) > { > +#ifdef CONFIG_RC_CORE > struct dvb_usb_device *d = adap->dev; > > deb_info(1, "INT Key Keypress =%04x", keypress); > > if (keypress > 0) > rc_keydown(d->rc_dev, keypress, 0); > +#endif > > return 0; > } > @@ -554,6 +556,8 @@ static int lme2510_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) > > static int lme2510_int_service(struct dvb_usb_adapter *adap) > { > + int ret; > +#ifdef CONFIG_RC_CORE > struct dvb_usb_device *d = adap->dev; > struct rc_dev *rc; > int ret; > @@ -579,14 +583,17 @@ static int lme2510_int_service(struct dvb_usb_adapter *adap) > return ret; > } > d->rc_dev = rc; > +#endif > > /* Start the Interupt */ > ret = lme2510_int_read(adap); > +#ifdef CONFIG_RC_CORE > if (ret < 0) { > rc_unregister_device(rc); > info("INT Unable to start Interupt Service"); > return -ENODEV; > } > +#endif > > return 0; > } > @@ -1061,7 +1068,9 @@ void *lme2510_exit_int(struct dvb_usb_device *d) > usb_free_coherent(d->udev, 5000, st->buffer, > st->lme_urb->transfer_dma); > info("Interupt Service Stopped"); > +#ifdef CONFIG_RC_CORE > rc_unregister_device(d->rc_dev); > +#endif > info("Remote Stopped"); > } > return buffer; > diff --git a/drivers/media/dvb/dvb-usb/m920x.c b/drivers/media/dvb/dvb-usb/m920x.c > index da9dc91..63c873a 100644 > --- a/drivers/media/dvb/dvb-usb/m920x.c > +++ b/drivers/media/dvb/dvb-usb/m920x.c > @@ -68,6 +68,7 @@ static int m920x_init(struct dvb_usb_device *d, struct m920x_inits *rc_seq) > int ret = 0, i, epi, flags = 0; > int adap_enabled[M9206_MAX_ADAPTERS] = { 0 }; > > +#ifdef CONFIG_RC_CORE > /* Remote controller init. */ > if (d->props.rc.legacy.rc_query) { > deb("Initialising remote control\n"); > @@ -84,6 +85,7 @@ static int m920x_init(struct dvb_usb_device *d, struct m920x_inits *rc_seq) > > deb("Initialising remote control success\n"); > } > +#endif > > for (i = 0; i < d->props.num_adapters; i++) > flags |= d->adapter[i].props.caps; > @@ -130,6 +132,7 @@ static int m920x_init_ep(struct usb_interface *intf) > alt->desc.bAlternateSetting); > } > > +#ifdef CONFIG_RC_CORE > static int m920x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > { > struct m920x_state *m = d->priv; > @@ -192,6 +195,7 @@ static int m920x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > > return ret; > } > +#endif > > /* I2C */ > static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int num) > @@ -588,6 +592,7 @@ static struct m920x_inits pinnacle310e_init[] = { > { } /* terminating entry */ > }; > > +#ifdef CONFIG_RC_CORE > /* ir keymaps */ > static struct rc_map_table rc_map_megasky_table[] = { > { 0x0012, KEY_POWER }, > @@ -683,6 +688,7 @@ static struct rc_map_table rc_map_pinnacle310e_table[] = { > { 0x5e, KEY_SAT }, /* Yellow */ > { 0x5f, KEY_PLAYER }, /* Blue */ > }; > +#endif > > /* DVB USB Driver stuff */ > static struct dvb_usb_device_properties megasky_properties; > @@ -784,12 +790,14 @@ static struct dvb_usb_device_properties megasky_properties = { > .firmware = "dvb-usb-megasky-02.fw", > .download_firmware = m920x_firmware_download, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_megasky_table, > .rc_map_size = ARRAY_SIZE(rc_map_megasky_table), > .rc_query = m920x_rc_query, > }, > +#endif > > .size_of_priv = sizeof(struct m920x_state), > > @@ -887,12 +895,14 @@ static struct dvb_usb_device_properties tvwalkertwin_properties = { > .firmware = "dvb-usb-tvwalkert.fw", > .download_firmware = m920x_firmware_download, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_tvwalkertwin_table, > .rc_map_size = ARRAY_SIZE(rc_map_tvwalkertwin_table), > .rc_query = m920x_rc_query, > }, > +#endif > > .size_of_priv = sizeof(struct m920x_state), > > @@ -996,12 +1006,14 @@ static struct dvb_usb_device_properties pinnacle_pctv310e_properties = { > .usb_ctrl = DEVICE_SPECIFIC, > .download_firmware = NULL, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_pinnacle310e_table, > .rc_map_size = ARRAY_SIZE(rc_map_pinnacle310e_table), > .rc_query = m920x_rc_query, > }, > +#endif > > .size_of_priv = sizeof(struct m920x_state), > > diff --git a/drivers/media/dvb/dvb-usb/nova-t-usb2.c b/drivers/media/dvb/dvb-usb/nova-t-usb2.c > index 9d3cd2d..267e259 100644 > --- a/drivers/media/dvb/dvb-usb/nova-t-usb2.c > +++ b/drivers/media/dvb/dvb-usb/nova-t-usb2.c > @@ -20,6 +20,7 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); > #define deb_rc(args...) dprintk(debug,0x01,args) > #define deb_ee(args...) dprintk(debug,0x02,args) > > +#ifdef CONFIG_RC_CORE > /* Hauppauge NOVA-T USB2 keys */ > static struct rc_map_table rc_map_haupp_table[] = { > { 0x1e00, KEY_0 }, > @@ -119,6 +120,7 @@ static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > > return 0; > } > +#endif > > static int nova_t_read_mac_address (struct dvb_usb_device *d, u8 mac[6]) > { > @@ -195,12 +197,14 @@ static struct dvb_usb_device_properties nova_t_properties = { > .power_ctrl = dibusb2_0_power_ctrl, > .read_mac_address = nova_t_read_mac_address, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 100, > .rc_map_table = rc_map_haupp_table, > .rc_map_size = ARRAY_SIZE(rc_map_haupp_table), > .rc_query = nova_t_rc_query, > }, > +#endif > > .i2c_algo = &dibusb_i2c_algo, > > diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c > index 1f1b7d6..1a66bcf 100644 > --- a/drivers/media/dvb/dvb-usb/opera1.c > +++ b/drivers/media/dvb/dvb-usb/opera1.c > @@ -331,6 +331,7 @@ static int opera1_pid_filter_control(struct dvb_usb_adapter *adap, int onoff) > return 0; > } > > +#ifdef CONFIG_RC_CORE > static struct rc_map_table rc_map_opera1_table[] = { > {0x5fa0, KEY_1}, > {0x51af, KEY_2}, > @@ -418,6 +419,7 @@ static int opera1_rc_query(struct dvb_usb_device *dev, u32 * event, int *state) > *state = REMOTE_NO_KEY_PRESSED; > return 0; > } > +#endif > > static struct usb_device_id opera1_table[] = { > {USB_DEVICE(USB_VID_CYPRESS, USB_PID_OPERA1_COLD)}, > @@ -496,12 +498,14 @@ static struct dvb_usb_device_properties opera1_properties = { > .power_ctrl = opera1_power_ctrl, > .i2c_algo = &opera1_i2c_algo, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_opera1_table, > .rc_map_size = ARRAY_SIZE(rc_map_opera1_table), > .rc_interval = 200, > .rc_query = opera1_rc_query, > }, > +#endif > .read_mac_address = opera1_read_mac_address, > .generic_bulk_ctrl_endpoint = 0x00, > /* parameter for the MPEG2-data transfer */ > diff --git a/drivers/media/dvb/dvb-usb/ttusb2.c b/drivers/media/dvb/dvb-usb/ttusb2.c > index 0d4709f..88e435f 100644 > --- a/drivers/media/dvb/dvb-usb/ttusb2.c > +++ b/drivers/media/dvb/dvb-usb/ttusb2.c > @@ -129,6 +129,8 @@ static struct i2c_algorithm ttusb2_i2c_algo = { > .functionality = ttusb2_i2c_func, > }; > > +#ifdef CONFIG_RC_CORE > + > /* command to poll IR receiver (copied from pctv452e.c) */ > #define CMD_GET_IR_CODE 0x1b > > @@ -154,7 +156,7 @@ static int tt3650_rc_query(struct dvb_usb_device *d) > > return 0; > } > - > +#endif > > /* Callbacks for DVB USB */ > static int ttusb2_identify_state (struct usb_device *udev, struct > @@ -373,12 +375,14 @@ static struct dvb_usb_device_properties ttusb2_properties_ct3650 = { > > .size_of_priv = sizeof(struct ttusb2_state), > > +#ifdef CONFIG_RC_OCRE > .rc.core = { > .rc_interval = 150, /* Less than IR_KEYPRESS_TIMEOUT */ > .rc_codes = RC_MAP_TT_1500, > .rc_query = tt3650_rc_query, > .allowed_protos = RC_TYPE_UNKNOWN, > }, > +#endif > > .num_adapters = 1, > .adapter = { > diff --git a/drivers/media/dvb/dvb-usb/vp702x.c b/drivers/media/dvb/dvb-usb/vp702x.c > index 7890e75..6de2397 100644 > --- a/drivers/media/dvb/dvb-usb/vp702x.c > +++ b/drivers/media/dvb/dvb-usb/vp702x.c > @@ -173,6 +173,7 @@ static int vp702x_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) > return 0; > } > > +#ifdef CONFIG_RC_CORE > /* keys for the enclosed remote control */ > static struct rc_map_table rc_map_vp702x_table[] = { > { 0x0001, KEY_1 }, > @@ -205,7 +206,7 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > } > return 0; > } > - > +#endif > > static int vp702x_read_mac_addr(struct dvb_usb_device *d,u8 mac[6]) > { > @@ -283,12 +284,14 @@ static struct dvb_usb_device_properties vp702x_properties = { > }, > .read_mac_address = vp702x_read_mac_addr, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_map_table = rc_map_vp702x_table, > .rc_map_size = ARRAY_SIZE(rc_map_vp702x_table), > .rc_interval = 400, > .rc_query = vp702x_rc_query, > }, > +#endif > > .num_device_descs = 1, > .devices = { > diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c > index ab0ab3c..a7c1fac 100644 > --- a/drivers/media/dvb/dvb-usb/vp7045.c > +++ b/drivers/media/dvb/dvb-usb/vp7045.c > @@ -95,6 +95,7 @@ static int vp7045_power_ctrl(struct dvb_usb_device *d, int onoff) > return vp7045_usb_op(d,SET_TUNER_POWER,&v,1,NULL,0,150); > } > > +#ifdef CONFIG_RC_CORE > /* remote control stuff */ > > /* The keymapping struct. Somehow this should be loaded to the driver, but > @@ -173,6 +174,7 @@ static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state) > } > return 0; > } > +#endif > > static int vp7045_read_eeprom(struct dvb_usb_device *d,u8 *buf, int len, int offset) > { > @@ -259,12 +261,14 @@ static struct dvb_usb_device_properties vp7045_properties = { > .power_ctrl = vp7045_power_ctrl, > .read_mac_address = vp7045_read_mac_addr, > > +#ifdef CONFIG_RC_CORE > .rc.legacy = { > .rc_interval = 400, > .rc_map_table = rc_map_vp7045_table, > .rc_map_size = ARRAY_SIZE(rc_map_vp7045_table), > .rc_query = vp7045_rc_query, > }, > +#endif > > .num_device_descs = 2, > .devices = { > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Apr 29, 2011 at 5:51 AM, Mauro Carvalho Chehab <mchehab@redhat.com> wrote: > Hi Sean, > > Em 21-02-2011 18:49, Sean Young escreveu: >> I have a SheevaPlug which has no (human) input or output devices, with a >> DVB USB device connected with a mythtv backend running. The DVB USB drivers >> pull in the remote control tree, which is unneeded in this case; the >> mythtv client runs elsewhere (where RC is used). However the RC tree depends >> on input which also has dependants. >> >> This can save a reasonable amount of memory: >> >> Â $ ./scripts/bloat-o-meter vmlinux vmlinux-no-rc add/remove: 0/909 grow/shrink: 1/20 up/down: 4/-159171 (-159167) > > Sorry for a late review. The problem with this patch is that it is too much intrusive. > It is a bad practice to fill the code with lots of #ifdef's, because it makes harder > to analyse the source code and find bugs there. > > Also, while it saves some memory, this strategy forces that all DVB drivers to have a > check for RC_CORE, being very easy that someone would forget about that, causing compilation > breakages if this option is disabled. > > The proper way is to have a separate module for RC and just making such module as dependent > of RC_CORE. Sean, could you possibly rework your patch in accordance with what Mauro stated above? -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig index 3d48ba0..a03bcf5 100644 --- a/drivers/media/dvb/dvb-usb/Kconfig +++ b/drivers/media/dvb/dvb-usb/Kconfig @@ -1,6 +1,6 @@ config DVB_USB tristate "Support for various USB DVB devices" - depends on DVB_CORE && USB && I2C && RC_CORE + depends on DVB_CORE && USB && I2C help By enabling this you will be able to choose the various supported USB1.1 and USB2.0 DVB devices. diff --git a/drivers/media/dvb/dvb-usb/a800.c b/drivers/media/dvb/dvb-usb/a800.c index 53b93a4..b4b6387 100644 --- a/drivers/media/dvb/dvb-usb/a800.c +++ b/drivers/media/dvb/dvb-usb/a800.c @@ -37,6 +37,7 @@ static int a800_identify_state(struct usb_device *udev, struct dvb_usb_device_pr return 0; } +#ifdef CONFIG_RC_CORE static struct rc_map_table rc_map_a800_table[] = { { 0x0201, KEY_PROG1 }, /* SOURCE */ { 0x0200, KEY_POWER }, /* POWER */ @@ -90,6 +91,7 @@ static int a800_rc_query(struct dvb_usb_device *d, u32 *event, int *state) deb_rc("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]); return 0; } +#endif /* USB Driver stuff */ static struct dvb_usb_device_properties a800_properties; @@ -146,12 +148,14 @@ static struct dvb_usb_device_properties a800_properties = { .power_ctrl = a800_power_ctrl, .identify_state = a800_identify_state, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_map_table = rc_map_a800_table, .rc_map_size = ARRAY_SIZE(rc_map_a800_table), .rc_query = a800_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/af9005.c b/drivers/media/dvb/dvb-usb/af9005.c index 51f6439..0f1503e 100644 --- a/drivers/media/dvb/dvb-usb/af9005.c +++ b/drivers/media/dvb/dvb-usb/af9005.c @@ -42,10 +42,12 @@ MODULE_PARM_DESC(dump_eeprom, "dump contents of the eeprom."); DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); /* remote control decoder */ +#ifdef CONFIG_RC_CORE static int (*rc_decode) (struct dvb_usb_device *d, u8 *data, int len, u32 *event, int *state); static void *rc_keys; static int *rc_keys_size; +#endif u8 regmask[8] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff }; @@ -819,6 +821,7 @@ static int af9005_frontend_attach(struct dvb_usb_adapter *adap) return 0; } +#ifdef CONFIG_RC_CORE static int af9005_rc_query(struct dvb_usb_device *d, u32 * event, int *state) { struct af9005_device_state *st = d->priv; @@ -871,6 +874,7 @@ static int af9005_rc_query(struct dvb_usb_device *d, u32 * event, int *state) } return 0; } +#endif static int af9005_power_ctrl(struct dvb_usb_device *d, int onoff) { @@ -1025,12 +1029,14 @@ static struct dvb_usb_device_properties af9005_properties = { .i2c_algo = &af9005_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 200, .rc_map_table = NULL, .rc_map_size = 0, .rc_query = af9005_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 2, .generic_bulk_ctrl_endpoint_response = 1, @@ -1069,6 +1075,7 @@ static int __init af9005_usb_module_init(void) err("usb_register failed. (%d)", result); return result; } +#ifdef CONFIG_RC_CORE rc_decode = symbol_request(af9005_rc_decode); rc_keys = symbol_request(rc_map_af9005_table); rc_keys_size = symbol_request(rc_map_af9005_table_size); @@ -1079,12 +1086,14 @@ static int __init af9005_usb_module_init(void) af9005_properties.rc.legacy.rc_map_table = rc_keys; af9005_properties.rc.legacy.rc_map_size = *rc_keys_size; } +#endif return 0; } static void __exit af9005_usb_module_exit(void) { +#ifdef CONFIG_RC_CORE /* release rc decode symbols */ if (rc_decode != NULL) symbol_put(af9005_rc_decode); @@ -1092,6 +1101,7 @@ static void __exit af9005_usb_module_exit(void) symbol_put(rc_map_af9005_table); if (rc_keys_size != NULL) symbol_put(rc_map_af9005_table_size); +#endif /* deregister this driver from the USB subsystem */ usb_deregister(&af9005_usb_driver); } diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c index 8671ca3..fe01d13 100644 --- a/drivers/media/dvb/dvb-usb/af9015.c +++ b/drivers/media/dvb/dvb-usb/af9015.c @@ -37,9 +37,11 @@ static int dvb_usb_af9015_debug; module_param_named(debug, dvb_usb_af9015_debug, int, 0644); MODULE_PARM_DESC(debug, "set debugging level" DVB_USB_DEBUG_STATUS); +#ifdef CONFIG_IR_CORE static int dvb_usb_af9015_remote; module_param_named(remote, dvb_usb_af9015_remote, int, 0644); MODULE_PARM_DESC(remote, "select remote"); +#endif DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); static DEFINE_MUTEX(af9015_usb_mutex); @@ -707,6 +709,7 @@ error: return ret; } +#ifdef CONFIG_IR_CORE struct af9015_rc_setup { unsigned int id; char *rc_codes; @@ -804,6 +807,7 @@ static void af9015_set_remote_config(struct usb_device *udev, return; } +#endif static int af9015_read_config(struct usb_device *udev) { @@ -826,6 +830,7 @@ static int af9015_read_config(struct usb_device *udev) if (ret) goto error; +#ifdef CONFIG_IR_CORE deb_info("%s: IR mode:%d\n", __func__, val); for (i = 0; i < af9015_properties_count; i++) { if (val == AF9015_IR_MODE_DISABLED) @@ -833,6 +838,7 @@ static int af9015_read_config(struct usb_device *udev) else af9015_set_remote_config(udev, &af9015_properties[i]); } +#endif /* TS mode - one or two receivers */ req.addr = AF9015_EEPROM_TS_MODE; @@ -1012,6 +1018,7 @@ static int af9015_identify_state(struct usb_device *udev, return ret; } +#ifdef CONFIG_IR_CORE static int af9015_rc_query(struct dvb_usb_device *d) { struct af9015_state *priv = d->priv; @@ -1060,6 +1067,7 @@ error: return ret; } +#endif /* init 2nd I2C adapter */ static int af9015_i2c_init(struct dvb_usb_device *d) @@ -1343,6 +1351,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { .identify_state = af9015_identify_state, +#ifdef CONFIG_IR_CORE .rc.core = { .protocol = RC_TYPE_NEC, .module_name = "af9015", @@ -1350,6 +1359,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { .rc_interval = AF9015_RC_INTERVAL, .allowed_protos = RC_TYPE_NEC, }, +#endif .i2c_algo = &af9015_i2c_algo, @@ -1471,6 +1481,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { .identify_state = af9015_identify_state, +#ifdef CONFIG_IR_CORE .rc.core = { .protocol = RC_TYPE_NEC, .module_name = "af9015", @@ -1478,6 +1489,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { .rc_interval = AF9015_RC_INTERVAL, .allowed_protos = RC_TYPE_NEC, }, +#endif .i2c_algo = &af9015_i2c_algo, @@ -1583,6 +1595,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { .identify_state = af9015_identify_state, +#ifdef CONFIG_IR_CORE .rc.core = { .protocol = RC_TYPE_NEC, .module_name = "af9015", @@ -1590,6 +1603,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { .rc_interval = AF9015_RC_INTERVAL, .allowed_protos = RC_TYPE_NEC, }, +#endif .i2c_algo = &af9015_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c index 6b402e9..972a208 100644 --- a/drivers/media/dvb/dvb-usb/anysee.c +++ b/drivers/media/dvb/dvb-usb/anysee.c @@ -374,6 +374,7 @@ static int anysee_tuner_attach(struct dvb_usb_adapter *adap) return 0; } +#ifdef CONFIG_RC_CORE static int anysee_rc_query(struct dvb_usb_device *d) { u8 buf[] = {CMD_GET_IR_CODE}; @@ -399,6 +400,7 @@ static int anysee_rc_query(struct dvb_usb_device *d) return 0; } +#endif /* DVB USB Driver stuff */ static struct dvb_usb_device_properties anysee_properties; @@ -474,6 +476,7 @@ static struct dvb_usb_device_properties anysee_properties = { } }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_codes = RC_MAP_ANYSEE, .protocol = RC_TYPE_OTHER, @@ -481,6 +484,7 @@ static struct dvb_usb_device_properties anysee_properties = { .rc_query = anysee_rc_query, .rc_interval = 250, /* windows driver uses 500ms */ }, +#endif .i2c_algo = &anysee_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/az6027.c b/drivers/media/dvb/dvb-usb/az6027.c index 57e2444..8a478ef 100644 --- a/drivers/media/dvb/dvb-usb/az6027.c +++ b/drivers/media/dvb/dvb-usb/az6027.c @@ -385,6 +385,7 @@ static int az6027_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) return ret; } +#ifdef CONFIG_RC_CORE /* keys for the enclosed remote control */ static struct rc_map_table rc_map_az6027_table[] = { { 0x01, KEY_1 }, @@ -396,6 +397,7 @@ static int az6027_rc_query(struct dvb_usb_device *d, u32 *event, int *state) { return 0; } +#endif /* int az6027_power_ctrl(struct dvb_usb_device *d, int onoff) @@ -1126,12 +1128,14 @@ static struct dvb_usb_device_properties az6027_properties = { .power_ctrl = az6027_power_ctrl, .read_mac_address = az6027_read_mac_addr, */ +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_az6027_table, .rc_map_size = ARRAY_SIZE(rc_map_az6027_table), .rc_interval = 400, .rc_query = az6027_rc_query, }, +#endif .i2c_algo = &az6027_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/cinergyT2-core.c b/drivers/media/dvb/dvb-usb/cinergyT2-core.c index 16f2ce2..82e106f 100644 --- a/drivers/media/dvb/dvb-usb/cinergyT2-core.c +++ b/drivers/media/dvb/dvb-usb/cinergyT2-core.c @@ -84,6 +84,7 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap) return 0; } +#ifdef CONFIG_RC_CORE static struct rc_map_table rc_map_cinergyt2_table[] = { { 0x0401, KEY_POWER }, { 0x0402, KEY_1 }, @@ -177,6 +178,7 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state) } return 0; } +#endif static int cinergyt2_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) @@ -217,12 +219,14 @@ static struct dvb_usb_device_properties cinergyt2_properties = { .power_ctrl = cinergyt2_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 50, .rc_map_table = rc_map_cinergyt2_table, .rc_map_size = ARRAY_SIZE(rc_map_cinergyt2_table), .rc_query = cinergyt2_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 1, diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index acb5fb2..fe926c6 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c @@ -383,6 +383,7 @@ static int cxusb_d680_dmb_streaming_ctrl( } } +#ifdef CONFIG_RC_CORE static int cxusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) { struct rc_map_table *keymap = d->props.rc.legacy.rc_map_table; @@ -585,6 +586,7 @@ static struct rc_map_table rc_map_d680_dmb_table[] = { { 0x0814, KEY_UNKNOWN }, /* Shuffle */ { 0x0025, KEY_POWER }, }; +#endif static int cxusb_dee1601_demod_init(struct dvb_frontend* fe) { @@ -902,11 +904,6 @@ static int cxusb_dee1601_frontend_attach(struct dvb_usb_adapter *adap) static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap) { - u8 ircode[4]; - int i; - struct i2c_msg msg = { .addr = 0x6b, .flags = I2C_M_RD, - .buf = ircode, .len = 4 }; - if (usb_set_interface(adap->dev->udev, 0, 1) < 0) err("set interface failed"); @@ -922,6 +919,12 @@ static int cxusb_dualdig4_frontend_attach(struct dvb_usb_adapter *adap) &adap->dev->i2c_adap)) == NULL) return -EIO; +#ifdef CONFIG_RC_CORE + int i; + u8 ircode[4]; + struct i2c_msg msg = { .addr = 0x6b, .flags = I2C_M_RD, + .buf = ircode, .len = 4 }; + /* try to determine if there is no IR decoder on the I2C bus */ for (i = 0; adap->dev->props.rc.legacy.rc_map_table != NULL && i < 5; i++) { msleep(20); @@ -936,6 +939,7 @@ no_IR: break; } } +#endif return 0; } @@ -1451,12 +1455,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgh064f_properties = { .i2c_algo = &cxusb_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_portable_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), .rc_query = cxusb_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, @@ -1504,12 +1510,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_dee1601_properties = { .i2c_algo = &cxusb_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 150, .rc_map_table = rc_map_dvico_mce_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table), .rc_query = cxusb_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, @@ -1565,12 +1573,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgz201_properties = { .i2c_algo = &cxusb_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_portable_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), .rc_query = cxusb_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, .num_device_descs = 1, @@ -1617,12 +1627,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_dtt7579_properties = { .i2c_algo = &cxusb_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_portable_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), .rc_query = cxusb_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, @@ -1668,12 +1680,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_dualdig4_properties = { .generic_bulk_ctrl_endpoint = 0x01, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_mce_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table), .rc_query = cxusb_bluebird2_rc_query, }, +#endif .num_device_descs = 1, .devices = { @@ -1718,12 +1732,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_properties = { .generic_bulk_ctrl_endpoint = 0x01, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_portable_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), .rc_query = cxusb_bluebird2_rc_query, }, +#endif .num_device_descs = 1, .devices = { @@ -1770,12 +1786,14 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_needsfirmware_prope .generic_bulk_ctrl_endpoint = 0x01, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_portable_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_portable_table), .rc_query = cxusb_rc_query, }, +#endif .num_device_descs = 1, .devices = { @@ -1863,12 +1881,14 @@ struct dvb_usb_device_properties cxusb_bluebird_dualdig4_rev2_properties = { .generic_bulk_ctrl_endpoint = 0x01, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_dvico_mce_table, .rc_map_size = ARRAY_SIZE(rc_map_dvico_mce_table), .rc_query = cxusb_rc_query, }, +#endif .num_device_descs = 1, .devices = { @@ -1913,12 +1933,14 @@ static struct dvb_usb_device_properties cxusb_d680_dmb_properties = { .generic_bulk_ctrl_endpoint = 0x01, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_d680_dmb_table, .rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table), .rc_query = cxusb_d680_dmb_rc_query, }, +#endif .num_device_descs = 1, .devices = { @@ -1964,12 +1986,14 @@ static struct dvb_usb_device_properties cxusb_mygica_d689_properties = { .generic_bulk_ctrl_endpoint = 0x01, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_d680_dmb_table, .rc_map_size = ARRAY_SIZE(rc_map_d680_dmb_table), .rc_query = cxusb_d680_dmb_rc_query, }, +#endif .num_device_descs = 1, .devices = { diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c index 98ffb40..b53c8f0 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_core.c +++ b/drivers/media/dvb/dvb-usb/dib0700_core.c @@ -471,6 +471,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) return dib0700_ctrl_wr(adap->dev, b, 4); } +#ifdef CONFIG_RC_CORE int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) { struct dvb_usb_device *d = rc->priv; @@ -645,6 +646,7 @@ int dib0700_rc_setup(struct dvb_usb_device *d) return ret; } +#endif static int dib0700_probe(struct usb_interface *intf, const struct usb_device_id *id) @@ -667,6 +669,7 @@ static int dib0700_probe(struct usb_interface *intf, st->fw_version = fw_version; st->nb_packet_buffer_size = (u32)nb_packet_buffer_size; +#ifdef CONFIG_RC_CORE /* Disable polling mode on newer firmwares */ if (st->fw_version >= 0x10200) dev->props.rc.core.bulk_mode = true; @@ -674,6 +677,7 @@ static int dib0700_probe(struct usb_interface *intf, dev->props.rc.core.bulk_mode = false; dib0700_rc_setup(dev); +#endif return 0; } diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c index defd839..fc7dc6e 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c @@ -466,6 +466,8 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap) == NULL ? -ENODEV : 0; } +#ifdef CONFIG_RC_CORE + #define DEFAULT_RC_INTERVAL 50 static u8 rc_request[] = { REQUEST_POLL_RC, 0 }; @@ -532,6 +534,7 @@ static int dib0700_rc_query_old_firmware(struct dvb_usb_device *d) } return 0; } +#endif /* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */ static struct dibx000_agc_config stk7700p_7000m_mt2060_agc_config = { @@ -1920,6 +1923,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { } }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -1929,6 +1933,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 2, @@ -1954,6 +1959,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -1963,6 +1969,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 2, @@ -2013,6 +2020,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2022,6 +2030,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, @@ -2054,6 +2063,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { } }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2064,6 +2074,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, @@ -2130,6 +2141,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2140,6 +2152,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, @@ -2174,6 +2187,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2184,6 +2198,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 2, @@ -2242,6 +2257,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2252,6 +2268,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 2, @@ -2289,6 +2306,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_NEC_TABLE, @@ -2299,6 +2317,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, @@ -2358,6 +2377,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2368,6 +2388,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, .adapter = { @@ -2394,6 +2415,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2404,6 +2426,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, .adapter = { @@ -2462,6 +2485,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2472,6 +2496,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, .adapter = { @@ -2506,6 +2531,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_NEC_TABLE, @@ -2516,6 +2542,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 2, .adapter = { @@ -2555,6 +2582,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2565,6 +2593,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, .num_adapters = 1, .adapter = { @@ -2592,6 +2621,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, +#ifdef CONFIG_RC_CORE .rc.core = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_codes = RC_MAP_DIB0700_RC5_TABLE, @@ -2602,6 +2632,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { RC_TYPE_NEC, .change_protocol = dib0700_change_protocol, }, +#endif }, }; diff --git a/drivers/media/dvb/dvb-usb/dibusb-common.c b/drivers/media/dvb/dvb-usb/dibusb-common.c index 956f7ae..7bd029f 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-common.c +++ b/drivers/media/dvb/dvb-usb/dibusb-common.c @@ -324,6 +324,7 @@ int dibusb_dib3000mc_tuner_attach(struct dvb_usb_adapter *adap) EXPORT_SYMBOL(dibusb_dib3000mc_tuner_attach); #endif +#ifdef CONFIG_RC_CORE /* * common remote control stuff */ @@ -468,3 +469,4 @@ int dibusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) return 0; } EXPORT_SYMBOL(dibusb_rc_query); +#endif diff --git a/drivers/media/dvb/dvb-usb/dibusb-mb.c b/drivers/media/dvb/dvb-usb/dibusb-mb.c index 04d91bd..08b6267 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-mb.c +++ b/drivers/media/dvb/dvb-usb/dibusb-mb.c @@ -211,12 +211,14 @@ static struct dvb_usb_device_properties dibusb1_1_properties = { .power_ctrl = dibusb_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_map_table = rc_map_dibusb_table, .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ .rc_query = dibusb_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, @@ -297,12 +299,14 @@ static struct dvb_usb_device_properties dibusb1_1_an2235_properties = { }, .power_ctrl = dibusb_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_map_table = rc_map_dibusb_table, .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ .rc_query = dibusb_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, @@ -363,12 +367,14 @@ static struct dvb_usb_device_properties dibusb2_0b_properties = { }, .power_ctrl = dibusb2_0_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_map_table = rc_map_dibusb_table, .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ .rc_query = dibusb_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, @@ -422,12 +428,14 @@ static struct dvb_usb_device_properties artec_t1_usb2_properties = { }, .power_ctrl = dibusb2_0_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_map_table = rc_map_dibusb_table, .rc_map_size = 111, /* wow, that is ugly ... I want to load it to the driver dynamically */ .rc_query = dibusb_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/dibusb-mc.c b/drivers/media/dvb/dvb-usb/dibusb-mc.c index c1d9094..6ad1c23 100644 --- a/drivers/media/dvb/dvb-usb/dibusb-mc.c +++ b/drivers/media/dvb/dvb-usb/dibusb-mc.c @@ -81,12 +81,14 @@ static struct dvb_usb_device_properties dibusb_mc_properties = { }, .power_ctrl = dibusb2_0_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = DEFAULT_RC_INTERVAL, .rc_map_table = rc_map_dibusb_table, .rc_map_size = 111, /* FIXME */ .rc_query = dibusb_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c index f2dbce7..dc81cc2 100644 --- a/drivers/media/dvb/dvb-usb/digitv.c +++ b/drivers/media/dvb/dvb-usb/digitv.c @@ -161,6 +161,7 @@ static int digitv_tuner_attach(struct dvb_usb_adapter *adap) return 0; } +#ifdef CONFIG_RC_CORE static struct rc_map_table rc_map_digitv_table[] = { { 0x5f55, KEY_0 }, { 0x6f55, KEY_1 }, @@ -251,6 +252,7 @@ static int digitv_rc_query(struct dvb_usb_device *d, u32 *event, int *state) deb_rc("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]); return 0; } +#endif /* DVB USB Driver stuff */ static struct dvb_usb_device_properties digitv_properties; @@ -310,12 +312,14 @@ static struct dvb_usb_device_properties digitv_properties = { }, .identify_state = digitv_identify_state, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 1000, .rc_map_table = rc_map_digitv_table, .rc_map_size = ARRAY_SIZE(rc_map_digitv_table), .rc_query = digitv_rc_query, }, +#endif .i2c_algo = &digitv_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c index ecd86ec..4082fb2 100644 --- a/drivers/media/dvb/dvb-usb/dtt200u.c +++ b/drivers/media/dvb/dvb-usb/dtt200u.c @@ -55,6 +55,7 @@ static int dtt200u_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid, return dvb_usb_generic_write(adap->dev, b_pid, 4); } +#ifdef CONFIG_RC_CORE /* remote control */ /* key list for the tiny remote control (Yakumo, don't know about the others) */ static struct rc_map_table rc_map_dtt200u_table[] = { @@ -87,6 +88,7 @@ static int dtt200u_rc_query(struct dvb_usb_device *d, u32 *event, int *state) deb_info("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]); return 0; } +#endif static int dtt200u_frontend_attach(struct dvb_usb_adapter *adap) { @@ -161,12 +163,14 @@ static struct dvb_usb_device_properties dtt200u_properties = { }, .power_ctrl = dtt200u_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 300, .rc_map_table = rc_map_dtt200u_table, .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), .rc_query = dtt200u_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, @@ -208,12 +212,14 @@ static struct dvb_usb_device_properties wt220u_properties = { }, .power_ctrl = dtt200u_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 300, .rc_map_table = rc_map_dtt200u_table, .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), .rc_query = dtt200u_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, @@ -255,12 +261,14 @@ static struct dvb_usb_device_properties wt220u_fc_properties = { }, .power_ctrl = dtt200u_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 300, .rc_map_table = rc_map_dtt200u_table, .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), .rc_query = dtt200u_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, @@ -302,12 +310,14 @@ static struct dvb_usb_device_properties wt220u_zl0353_properties = { }, .power_ctrl = dtt200u_power_ctrl, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 300, .rc_map_table = rc_map_dtt200u_table, .rc_map_size = ARRAY_SIZE(rc_map_dtt200u_table), .rc_query = dtt200u_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x01, diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c index 23005b3..4a5de7a 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c @@ -8,6 +8,7 @@ #include "dvb-usb-common.h" #include <linux/usb/input.h> +#ifdef CONFIG_RC_CORE static int legacy_dvb_usb_getkeycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode) { @@ -362,3 +363,7 @@ int dvb_usb_nec_rc_key_to_event(struct dvb_usb_device *d, return 0; } EXPORT_SYMBOL(dvb_usb_nec_rc_key_to_event); +#else +int dvb_usb_remote_init(struct dvb_usb_device *d) { return 0; } +int dvb_usb_remote_exit(struct dvb_usb_device *d) { return 0; } +#endif diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h index 65fa926..0920ba1 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb.h @@ -270,11 +270,13 @@ struct dvb_usb_device_properties { int (*identify_state) (struct usb_device *, struct dvb_usb_device_properties *, struct dvb_usb_device_description **, int *); +#ifdef CONFIG_RC_CORE struct { enum dvb_usb_mode mode; /* Drivers shouldn't touch on it */ struct dvb_rc_legacy legacy; struct dvb_rc core; } rc; +#endif struct i2c_algorithm *i2c_algo; diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c index 2c307ba..9a61a3f 100644 --- a/drivers/media/dvb/dvb-usb/dw2102.c +++ b/drivers/media/dvb/dvb-usb/dw2102.c @@ -83,11 +83,12 @@ static int dvb_usb_dw2102_debug; module_param_named(debug, dvb_usb_dw2102_debug, int, 0644); MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer 4=rc(or-able))." DVB_USB_DEBUG_STATUS); - +#ifdef CONFIG_RC_CORE /* keymaps */ static int ir_keymap; module_param_named(keymap, ir_keymap, int, 0644); MODULE_PARM_DESC(keymap, "set keymap 0=default 1=dvbworld 2=tevii 3=tbs ..."); +#endif /* demod probe */ static int demod_probe = 1; @@ -948,6 +949,7 @@ static int dw3101_tuner_attach(struct dvb_usb_adapter *adap) return 0; } +#ifdef CONFIG_RC_CORE static struct rc_map_table rc_map_dw210x_table[] = { { 0xf80a, KEY_Q }, /*power*/ { 0xf80c, KEY_M }, /*mute*/ @@ -1113,6 +1115,7 @@ static int dw2102_rc_query(struct dvb_usb_device *d, u32 *event, int *state) return 0; } +#endif static struct usb_device_id dw2102_table[] = { {USB_DEVICE(USB_VID_CYPRESS, USB_PID_DW2102)}, @@ -1185,14 +1188,18 @@ static int dw2102_load_firmware(struct usb_device *dev, /* init registers */ switch (dev->descriptor.idProduct) { case USB_PID_PROF_1100: +#ifdef CONFIG_RC_CORE s6x0_properties.rc.legacy.rc_map_table = rc_map_tbs_table; s6x0_properties.rc.legacy.rc_map_size = ARRAY_SIZE(rc_map_tbs_table); +#endif break; case USB_PID_TEVII_S650: +#ifdef CONFIG_RC_CORE dw2104_properties.rc.legacy.rc_map_table = rc_map_tevii_table; dw2104_properties.rc.legacy.rc_map_size = ARRAY_SIZE(rc_map_tevii_table); +#endif case USB_PID_DW2104: reset = 1; dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1, @@ -1256,12 +1263,14 @@ static struct dvb_usb_device_properties dw2102_properties = { .i2c_algo = &dw2102_serit_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_dw210x_table, .rc_map_size = ARRAY_SIZE(rc_map_dw210x_table), .rc_interval = 150, .rc_query = dw2102_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x81, /* parameter for the MPEG2-data transfer */ @@ -1309,12 +1318,14 @@ static struct dvb_usb_device_properties dw2104_properties = { .no_reconnect = 1, .i2c_algo = &dw2104_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_dw210x_table, .rc_map_size = ARRAY_SIZE(rc_map_dw210x_table), .rc_interval = 150, .rc_query = dw2102_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x81, /* parameter for the MPEG2-data transfer */ @@ -1358,12 +1369,14 @@ static struct dvb_usb_device_properties dw3101_properties = { .no_reconnect = 1, .i2c_algo = &dw3101_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_dw210x_table, .rc_map_size = ARRAY_SIZE(rc_map_dw210x_table), .rc_interval = 150, .rc_query = dw2102_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x81, /* parameter for the MPEG2-data transfer */ @@ -1403,12 +1416,14 @@ static struct dvb_usb_device_properties s6x0_properties = { .no_reconnect = 1, .i2c_algo = &s6x0_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_tevii_table, .rc_map_size = ARRAY_SIZE(rc_map_tevii_table), .rc_interval = 150, .rc_query = dw2102_rc_query, }, +#endif .generic_bulk_ctrl_endpoint = 0x81, .num_adapters = 1, @@ -1468,8 +1483,10 @@ static int dw2102_probe(struct usb_interface *intf, /* fill only different fields */ p7500->firmware = "dvb-usb-p7500.fw"; p7500->devices[0] = d7500; +#ifdef CONFIG_RC_CORE p7500->rc.legacy.rc_map_table = rc_map_tbs_table; p7500->rc.legacy.rc_map_size = ARRAY_SIZE(rc_map_tbs_table); +#endif p7500->adapter->frontend_attach = prof_7500_frontend_attach; if (0 == dvb_usb_device_init(intf, &dw2102_properties, diff --git a/drivers/media/dvb/dvb-usb/lmedm04.c b/drivers/media/dvb/dvb-usb/lmedm04.c index 9eea418..caceda5 100644 --- a/drivers/media/dvb/dvb-usb/lmedm04.c +++ b/drivers/media/dvb/dvb-usb/lmedm04.c @@ -193,12 +193,14 @@ static int lme2510_stream_restart(struct dvb_usb_device *d) } static int lme2510_remote_keypress(struct dvb_usb_adapter *adap, u16 keypress) { +#ifdef CONFIG_RC_CORE struct dvb_usb_device *d = adap->dev; deb_info(1, "INT Key Keypress =%04x", keypress); if (keypress > 0) rc_keydown(d->rc_dev, keypress, 0); +#endif return 0; } @@ -554,6 +556,8 @@ static int lme2510_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) static int lme2510_int_service(struct dvb_usb_adapter *adap) { + int ret; +#ifdef CONFIG_RC_CORE struct dvb_usb_device *d = adap->dev; struct rc_dev *rc; int ret; @@ -579,14 +583,17 @@ static int lme2510_int_service(struct dvb_usb_adapter *adap) return ret; } d->rc_dev = rc; +#endif /* Start the Interupt */ ret = lme2510_int_read(adap); +#ifdef CONFIG_RC_CORE if (ret < 0) { rc_unregister_device(rc); info("INT Unable to start Interupt Service"); return -ENODEV; } +#endif return 0; } @@ -1061,7 +1068,9 @@ void *lme2510_exit_int(struct dvb_usb_device *d) usb_free_coherent(d->udev, 5000, st->buffer, st->lme_urb->transfer_dma); info("Interupt Service Stopped"); +#ifdef CONFIG_RC_CORE rc_unregister_device(d->rc_dev); +#endif info("Remote Stopped"); } return buffer; diff --git a/drivers/media/dvb/dvb-usb/m920x.c b/drivers/media/dvb/dvb-usb/m920x.c index da9dc91..63c873a 100644 --- a/drivers/media/dvb/dvb-usb/m920x.c +++ b/drivers/media/dvb/dvb-usb/m920x.c @@ -68,6 +68,7 @@ static int m920x_init(struct dvb_usb_device *d, struct m920x_inits *rc_seq) int ret = 0, i, epi, flags = 0; int adap_enabled[M9206_MAX_ADAPTERS] = { 0 }; +#ifdef CONFIG_RC_CORE /* Remote controller init. */ if (d->props.rc.legacy.rc_query) { deb("Initialising remote control\n"); @@ -84,6 +85,7 @@ static int m920x_init(struct dvb_usb_device *d, struct m920x_inits *rc_seq) deb("Initialising remote control success\n"); } +#endif for (i = 0; i < d->props.num_adapters; i++) flags |= d->adapter[i].props.caps; @@ -130,6 +132,7 @@ static int m920x_init_ep(struct usb_interface *intf) alt->desc.bAlternateSetting); } +#ifdef CONFIG_RC_CORE static int m920x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) { struct m920x_state *m = d->priv; @@ -192,6 +195,7 @@ static int m920x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) return ret; } +#endif /* I2C */ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int num) @@ -588,6 +592,7 @@ static struct m920x_inits pinnacle310e_init[] = { { } /* terminating entry */ }; +#ifdef CONFIG_RC_CORE /* ir keymaps */ static struct rc_map_table rc_map_megasky_table[] = { { 0x0012, KEY_POWER }, @@ -683,6 +688,7 @@ static struct rc_map_table rc_map_pinnacle310e_table[] = { { 0x5e, KEY_SAT }, /* Yellow */ { 0x5f, KEY_PLAYER }, /* Blue */ }; +#endif /* DVB USB Driver stuff */ static struct dvb_usb_device_properties megasky_properties; @@ -784,12 +790,14 @@ static struct dvb_usb_device_properties megasky_properties = { .firmware = "dvb-usb-megasky-02.fw", .download_firmware = m920x_firmware_download, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_megasky_table, .rc_map_size = ARRAY_SIZE(rc_map_megasky_table), .rc_query = m920x_rc_query, }, +#endif .size_of_priv = sizeof(struct m920x_state), @@ -887,12 +895,14 @@ static struct dvb_usb_device_properties tvwalkertwin_properties = { .firmware = "dvb-usb-tvwalkert.fw", .download_firmware = m920x_firmware_download, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_tvwalkertwin_table, .rc_map_size = ARRAY_SIZE(rc_map_tvwalkertwin_table), .rc_query = m920x_rc_query, }, +#endif .size_of_priv = sizeof(struct m920x_state), @@ -996,12 +1006,14 @@ static struct dvb_usb_device_properties pinnacle_pctv310e_properties = { .usb_ctrl = DEVICE_SPECIFIC, .download_firmware = NULL, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_pinnacle310e_table, .rc_map_size = ARRAY_SIZE(rc_map_pinnacle310e_table), .rc_query = m920x_rc_query, }, +#endif .size_of_priv = sizeof(struct m920x_state), diff --git a/drivers/media/dvb/dvb-usb/nova-t-usb2.c b/drivers/media/dvb/dvb-usb/nova-t-usb2.c index 9d3cd2d..267e259 100644 --- a/drivers/media/dvb/dvb-usb/nova-t-usb2.c +++ b/drivers/media/dvb/dvb-usb/nova-t-usb2.c @@ -20,6 +20,7 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); #define deb_rc(args...) dprintk(debug,0x01,args) #define deb_ee(args...) dprintk(debug,0x02,args) +#ifdef CONFIG_RC_CORE /* Hauppauge NOVA-T USB2 keys */ static struct rc_map_table rc_map_haupp_table[] = { { 0x1e00, KEY_0 }, @@ -119,6 +120,7 @@ static int nova_t_rc_query(struct dvb_usb_device *d, u32 *event, int *state) return 0; } +#endif static int nova_t_read_mac_address (struct dvb_usb_device *d, u8 mac[6]) { @@ -195,12 +197,14 @@ static struct dvb_usb_device_properties nova_t_properties = { .power_ctrl = dibusb2_0_power_ctrl, .read_mac_address = nova_t_read_mac_address, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 100, .rc_map_table = rc_map_haupp_table, .rc_map_size = ARRAY_SIZE(rc_map_haupp_table), .rc_query = nova_t_rc_query, }, +#endif .i2c_algo = &dibusb_i2c_algo, diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c index 1f1b7d6..1a66bcf 100644 --- a/drivers/media/dvb/dvb-usb/opera1.c +++ b/drivers/media/dvb/dvb-usb/opera1.c @@ -331,6 +331,7 @@ static int opera1_pid_filter_control(struct dvb_usb_adapter *adap, int onoff) return 0; } +#ifdef CONFIG_RC_CORE static struct rc_map_table rc_map_opera1_table[] = { {0x5fa0, KEY_1}, {0x51af, KEY_2}, @@ -418,6 +419,7 @@ static int opera1_rc_query(struct dvb_usb_device *dev, u32 * event, int *state) *state = REMOTE_NO_KEY_PRESSED; return 0; } +#endif static struct usb_device_id opera1_table[] = { {USB_DEVICE(USB_VID_CYPRESS, USB_PID_OPERA1_COLD)}, @@ -496,12 +498,14 @@ static struct dvb_usb_device_properties opera1_properties = { .power_ctrl = opera1_power_ctrl, .i2c_algo = &opera1_i2c_algo, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_opera1_table, .rc_map_size = ARRAY_SIZE(rc_map_opera1_table), .rc_interval = 200, .rc_query = opera1_rc_query, }, +#endif .read_mac_address = opera1_read_mac_address, .generic_bulk_ctrl_endpoint = 0x00, /* parameter for the MPEG2-data transfer */ diff --git a/drivers/media/dvb/dvb-usb/ttusb2.c b/drivers/media/dvb/dvb-usb/ttusb2.c index 0d4709f..88e435f 100644 --- a/drivers/media/dvb/dvb-usb/ttusb2.c +++ b/drivers/media/dvb/dvb-usb/ttusb2.c @@ -129,6 +129,8 @@ static struct i2c_algorithm ttusb2_i2c_algo = { .functionality = ttusb2_i2c_func, }; +#ifdef CONFIG_RC_CORE + /* command to poll IR receiver (copied from pctv452e.c) */ #define CMD_GET_IR_CODE 0x1b @@ -154,7 +156,7 @@ static int tt3650_rc_query(struct dvb_usb_device *d) return 0; } - +#endif /* Callbacks for DVB USB */ static int ttusb2_identify_state (struct usb_device *udev, struct @@ -373,12 +375,14 @@ static struct dvb_usb_device_properties ttusb2_properties_ct3650 = { .size_of_priv = sizeof(struct ttusb2_state), +#ifdef CONFIG_RC_OCRE .rc.core = { .rc_interval = 150, /* Less than IR_KEYPRESS_TIMEOUT */ .rc_codes = RC_MAP_TT_1500, .rc_query = tt3650_rc_query, .allowed_protos = RC_TYPE_UNKNOWN, }, +#endif .num_adapters = 1, .adapter = { diff --git a/drivers/media/dvb/dvb-usb/vp702x.c b/drivers/media/dvb/dvb-usb/vp702x.c index 7890e75..6de2397 100644 --- a/drivers/media/dvb/dvb-usb/vp702x.c +++ b/drivers/media/dvb/dvb-usb/vp702x.c @@ -173,6 +173,7 @@ static int vp702x_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) return 0; } +#ifdef CONFIG_RC_CORE /* keys for the enclosed remote control */ static struct rc_map_table rc_map_vp702x_table[] = { { 0x0001, KEY_1 }, @@ -205,7 +206,7 @@ static int vp702x_rc_query(struct dvb_usb_device *d, u32 *event, int *state) } return 0; } - +#endif static int vp702x_read_mac_addr(struct dvb_usb_device *d,u8 mac[6]) { @@ -283,12 +284,14 @@ static struct dvb_usb_device_properties vp702x_properties = { }, .read_mac_address = vp702x_read_mac_addr, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_map_table = rc_map_vp702x_table, .rc_map_size = ARRAY_SIZE(rc_map_vp702x_table), .rc_interval = 400, .rc_query = vp702x_rc_query, }, +#endif .num_device_descs = 1, .devices = { diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c index ab0ab3c..a7c1fac 100644 --- a/drivers/media/dvb/dvb-usb/vp7045.c +++ b/drivers/media/dvb/dvb-usb/vp7045.c @@ -95,6 +95,7 @@ static int vp7045_power_ctrl(struct dvb_usb_device *d, int onoff) return vp7045_usb_op(d,SET_TUNER_POWER,&v,1,NULL,0,150); } +#ifdef CONFIG_RC_CORE /* remote control stuff */ /* The keymapping struct. Somehow this should be loaded to the driver, but @@ -173,6 +174,7 @@ static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state) } return 0; } +#endif static int vp7045_read_eeprom(struct dvb_usb_device *d,u8 *buf, int len, int offset) { @@ -259,12 +261,14 @@ static struct dvb_usb_device_properties vp7045_properties = { .power_ctrl = vp7045_power_ctrl, .read_mac_address = vp7045_read_mac_addr, +#ifdef CONFIG_RC_CORE .rc.legacy = { .rc_interval = 400, .rc_map_table = rc_map_vp7045_table, .rc_map_size = ARRAY_SIZE(rc_map_vp7045_table), .rc_query = vp7045_rc_query, }, +#endif .num_device_descs = 2, .devices = {