+diff -Naur media_build-bst-160430.orig/linux/drivers/media/dvb-core/dvbdev.c media_build-bst-160430/linux/drivers/media/dvb-core/dvbdev.c
+--- media_build-bst-160430.orig/linux/drivers/media/dvb-core/dvbdev.c 2014-12-19 04:09:58.000000000 +0100
++++ media_build-bst-160430/linux/drivers/media/dvb-core/dvbdev.c 2017-07-06 14:59:10.952547108 +0200
+@@ -190,6 +190,7 @@
+ int minor;
+ int id;
+
++ char *vu_name = strstr(name, "_vuplus_");
+ mutex_lock(&dvbdev_register_lock);
+
+ if ((id = dvbdev_get_free_id (adap, type)) < 0){
+@@ -296,9 +297,9 @@
+ return 1;
+ }
+
+-static int dvbdev_get_free_adapter_num (void)
++static int dvbdev_get_free_adapter_num (int start_num)
+ {
+- int num = 0;
++ int num = start_num;
+
+ while (num < DVB_MAX_ADAPTERS) {
+ if (dvbdev_check_free_adapter_num(num))
+@@ -320,12 +321,12 @@
+
+ for (i = 0; i < DVB_MAX_ADAPTERS; ++i) {
+ num = adapter_nums[i];
+- if (num >= 0 && num < DVB_MAX_ADAPTERS) {
++ if (num >= vu_name? 0:1 && num < DVB_MAX_ADAPTERS) {
+ /* use the one the driver asked for */
+ if (dvbdev_check_free_adapter_num(num))
+ break;
+ } else {
+- num = dvbdev_get_free_adapter_num();
++ num = dvbdev_get_free_adapter_num(vu_name? 0:1);
+ break;
+ }
+ num = -1;
+@@ -455,7 +456,7 @@
+ {
+ int retval;
+ dev_t dev = MKDEV(DVB_MAJOR, 0);
+- printk(KERN_ERR "WARNING: You are using an experimental version of the media stack.\n\tAs the driver is backported to an older kernel, it doesn't offer\n\tenough quality for its usage in production.\n\tUse it with care.\nLatest git patches (needed if you report a bug to linux-media@vger.kernel.org):\n\t427ae153c65ad7a08288d86baf99000569627d03 [media] bq/c-qcam, w9966, pms: move to staging in preparation for removal\n\tea2e813e8cc3492c951b9895724fd47187e04a6f [media] tlg2300: move to staging in preparation for removal\n\tc1d9e03d4ef47de60b414fa25f05f9c867f43c5a [media] vino/saa7191: move to staging in preparation for removal\n");
++ //printk(KERN_ERR "WARNING: You are using an experimental version of the media stack.\n\tAs the driver is backported to an older kernel, it doesn't offer\n\tenough quality for its usage in production.\n\tUse it with care.\nLatest git patches (needed if you report a bug to linux-media@vger.kernel.org):\n\t427ae153c65ad7a08288d86baf99000569627d03 [media] bq/c-qcam, w9966, pms: move to staging in preparation for removal\n\tea2e813e8cc3492c951b9895724fd47187e04a6f [media] tlg2300: move to staging in preparation for removal\n\tc1d9e03d4ef47de60b414fa25f05f9c867f43c5a [media] vino/saa7191: move to staging in preparation for removal\n");
+
+ if ((retval = register_chrdev_region(dev, MAX_DVB_MINORS, "DVB")) != 0) {
+ printk(KERN_ERR "dvb-core: unable to get major %d\n", DVB_MAJOR);
+diff -Naur media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvbsky.c media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvbsky.c
+--- media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvbsky.c 2014-12-19 06:46:31.000000000 +0100
++++ media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvbsky.c 2017-07-06 15:01:22.810443706 +0200
+@@ -58,7 +58,7 @@
+ if (wlen != 0)
+ memcpy(state->obuf, wbuf, wlen);
+
+- ret = dvb_usbv2_generic_rw_locked(d, state->obuf, wlen,
++ ret = dvb_usbv2_mediatree_generic_rw_locked(d, state->obuf, wlen,
+ state->ibuf, rlen);
+
+ if (!ret && (rlen != 0))
+@@ -733,11 +733,11 @@
+ static struct usb_driver dvbsky_usb_driver = {
+ .name = KBUILD_MODNAME,
+ .id_table = dvbsky_id_table,
+- .probe = dvb_usbv2_probe,
+- .disconnect = dvb_usbv2_disconnect,
+- .suspend = dvb_usbv2_suspend,
+- .resume = dvb_usbv2_resume,
+- .reset_resume = dvb_usbv2_reset_resume,
++ .probe = dvb_usbv2_mediatree_probe,
++ .disconnect = dvb_usbv2_mediatree_disconnect,
++ .suspend = dvb_usbv2_mediatree_suspend,
++ .resume = dvb_usbv2_mediatree_resume,
++ .reset_resume = dvb_usbv2_mediatree_reset_resume,
+ .no_dynamic_id = 1,
+ .soft_unbind = 1,
+ };
+diff -Naur media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+--- media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2014-12-19 08:09:03.000000000 +0100
++++ media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2017-07-06 15:10:19.488125119 +0200
+@@ -21,8 +21,8 @@
+
+ #include "dvb_usb_common.h"
+
+-static int dvb_usbv2_disable_rc_polling;
+-module_param_named(disable_rc_polling, dvb_usbv2_disable_rc_polling, int, 0644);
++static int dvb_usbv2_mediatree_disable_rc_polling;
++module_param_named(disable_rc_polling, dvb_usbv2_mediatree_disable_rc_polling, int, 0644);
+ MODULE_PARM_DESC(disable_rc_polling,
+ "disable remote control polling (default: 0)");
+ static int dvb_usb_force_pid_filter_usage;
+@@ -31,7 +31,7 @@
+ MODULE_PARM_DESC(force_pid_filter_usage,
+ "force all DVB USB devices to use a PID filter, if any (default: 0)");
+
+-static int dvb_usbv2_download_firmware(struct dvb_usb_device *d,
++static int dvb_usbv2_mediatree_download_firmware(struct dvb_usb_device *d,
+ const char *name)
+ {
+ int ret;
+@@ -65,7 +65,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_i2c_init(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_i2c_init(struct dvb_usb_device *d)
+ {
+ int ret;
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+@@ -92,7 +92,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_i2c_exit(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_i2c_exit(struct dvb_usb_device *d)
+ {
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+@@ -113,7 +113,7 @@
+ * When the parameter has been set to 1 via sysfs while the
+ * driver was running, or when bulk mode is enabled after IR init.
+ */
+- if (dvb_usbv2_disable_rc_polling || d->rc.bulk_mode) {
++ if (dvb_usbv2_mediatree_disable_rc_polling || d->rc.bulk_mode) {
+ d->rc_polling_active = false;
+ return;
+ }
+@@ -130,13 +130,13 @@
+ msecs_to_jiffies(d->rc.interval));
+ }
+
+-static int dvb_usbv2_remote_init(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_remote_init(struct dvb_usb_device *d)
+ {
+ int ret;
+ struct rc_dev *dev;
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+- if (dvb_usbv2_disable_rc_polling || !d->props->get_rc_config)
++ if (dvb_usbv2_mediatree_disable_rc_polling || !d->props->get_rc_config)
+ return 0;
+
+ d->rc.map_name = d->rc_map;
+@@ -195,7 +195,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_remote_exit(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_remote_exit(struct dvb_usb_device *d)
+ {
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+@@ -208,8 +208,8 @@
+ return 0;
+ }
+ #else
+- #define dvb_usbv2_remote_init(args...) 0
+- #define dvb_usbv2_remote_exit(args...)
++ #define dvb_usbv2_mediatree_remote_init(args...) 0
++ #define dvb_usbv2_mediatree_remote_exit(args...)
+ #endif
+
+ static void dvb_usb_data_complete(struct usb_data_stream *stream, u8 *buf,
+@@ -233,7 +233,7 @@
+ dvb_dmx_swfilter_raw(&adap->demux, buf, len);
+ }
+
+-static int dvb_usbv2_adapter_stream_init(struct dvb_usb_adapter *adap)
++static int dvb_usbv2_mediatree_adapter_stream_init(struct dvb_usb_adapter *adap)
+ {
+ dev_dbg(&adap_to_d(adap)->udev->dev, "%s: adap=%d\n", __func__,
+ adap->id);
+@@ -245,7 +245,7 @@
+ return usb_urb_initv2(&adap->stream, &adap->props->stream);
+ }
+
+-static int dvb_usbv2_adapter_stream_exit(struct dvb_usb_adapter *adap)
++static int dvb_usbv2_mediatree_adapter_stream_exit(struct dvb_usb_adapter *adap)
+ {
+ dev_dbg(&adap_to_d(adap)->udev->dev, "%s: adap=%d\n", __func__,
+ adap->id);
+@@ -400,7 +400,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap)
++static int dvb_usbv2_mediatree_adapter_dvb_init(struct dvb_usb_adapter *adap)
+ {
+ int ret;
+ struct dvb_usb_device *d = adap_to_d(adap);
+@@ -470,7 +470,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_adapter_dvb_exit(struct dvb_usb_adapter *adap)
++static int dvb_usbv2_mediatree_adapter_dvb_exit(struct dvb_usb_adapter *adap)
+ {
+ dev_dbg(&adap_to_d(adap)->udev->dev, "%s: adap=%d\n", __func__,
+ adap->id);
+@@ -486,7 +486,7 @@
+ return 0;
+ }
+
+-static int dvb_usbv2_device_power_ctrl(struct dvb_usb_device *d, int onoff)
++static int dvb_usbv2_mediatree_device_power_ctrl(struct dvb_usb_device *d, int onoff)
+ {
+ int ret;
+
+@@ -524,7 +524,7 @@
+ set_bit(ADAP_INIT, &adap->state_bits);
+ }
+
+- ret = dvb_usbv2_device_power_ctrl(d, 1);
++ ret = dvb_usbv2_mediatree_device_power_ctrl(d, 1);
+ if (ret < 0)
+ goto err;
+
+@@ -576,7 +576,7 @@
+ goto err;
+ }
+
+- ret = dvb_usbv2_device_power_ctrl(d, 0);
++ ret = dvb_usbv2_mediatree_device_power_ctrl(d, 0);
+ if (ret < 0)
+ goto err;
+ err:
+@@ -591,7 +591,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap)
++static int dvb_usbv2_mediatree_adapter_frontend_init(struct dvb_usb_adapter *adap)
+ {
+ int ret, i, count_registered = 0;
+ struct dvb_usb_device *d = adap_to_d(adap);
+@@ -662,7 +662,7 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_adapter_frontend_exit(struct dvb_usb_adapter *adap)
++static int dvb_usbv2_mediatree_adapter_frontend_exit(struct dvb_usb_adapter *adap)
+ {
+ int ret, i;
+ struct dvb_usb_device *d = adap_to_d(adap);
+@@ -696,7 +696,7 @@
+ return 0;
+ }
+
+-static int dvb_usbv2_adapter_init(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_adapter_init(struct dvb_usb_device *d)
+ {
+ struct dvb_usb_adapter *adap;
+ int ret, i, adapter_count;
+@@ -750,15 +750,15 @@
+ adap->max_feed_count = adap->props->pid_filter_count;
+ }
+
+- ret = dvb_usbv2_adapter_stream_init(adap);
++ ret = dvb_usbv2_mediatree_adapter_stream_init(adap);
+ if (ret)
+ goto err;
+
+- ret = dvb_usbv2_adapter_dvb_init(adap);
++ ret = dvb_usbv2_mediatree_adapter_dvb_init(adap);
+ if (ret)
+ goto err;
+
+- ret = dvb_usbv2_adapter_frontend_init(adap);
++ ret = dvb_usbv2_mediatree_adapter_frontend_init(adap);
+ if (ret)
+ goto err;
+
+@@ -773,16 +773,16 @@
+ return ret;
+ }
+
+-static int dvb_usbv2_adapter_exit(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_adapter_exit(struct dvb_usb_device *d)
+ {
+ int i;
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+ for (i = MAX_NO_OF_ADAPTER_PER_DEVICE - 1; i >= 0; i--) {
+ if (d->adapter[i].props) {
+- dvb_usbv2_adapter_dvb_exit(&d->adapter[i]);
+- dvb_usbv2_adapter_stream_exit(&d->adapter[i]);
+- dvb_usbv2_adapter_frontend_exit(&d->adapter[i]);
++ dvb_usbv2_mediatree_adapter_dvb_exit(&d->adapter[i]);
++ dvb_usbv2_mediatree_adapter_stream_exit(&d->adapter[i]);
++ dvb_usbv2_mediatree_adapter_frontend_exit(&d->adapter[i]);
+ }
+ }
+
+@@ -790,25 +790,25 @@
+ }
+
+ /* general initialization functions */
+-static int dvb_usbv2_exit(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_exit(struct dvb_usb_device *d)
+ {
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+- dvb_usbv2_remote_exit(d);
+- dvb_usbv2_adapter_exit(d);
+- dvb_usbv2_i2c_exit(d);
++ dvb_usbv2_mediatree_remote_exit(d);
++ dvb_usbv2_mediatree_adapter_exit(d);
++ dvb_usbv2_mediatree_i2c_exit(d);
+ kfree(d->priv);
+ kfree(d);
+
+ return 0;
+ }
+
+-static int dvb_usbv2_init(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_init(struct dvb_usb_device *d)
+ {
+ int ret;
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+- dvb_usbv2_device_power_ctrl(d, 1);
++ dvb_usbv2_mediatree_device_power_ctrl(d, 1);
+
+ if (d->props->read_config) {
+ ret = d->props->read_config(d);
+@@ -816,11 +816,11 @@
+ goto err;
+ }
+
+- ret = dvb_usbv2_i2c_init(d);
++ ret = dvb_usbv2_mediatree_i2c_init(d);
+ if (ret < 0)
+ goto err;
+
+- ret = dvb_usbv2_adapter_init(d);
++ ret = dvb_usbv2_mediatree_adapter_init(d);
+ if (ret < 0)
+ goto err;
+
+@@ -830,20 +830,20 @@
+ goto err;
+ }
+
+- ret = dvb_usbv2_remote_init(d);
++ ret = dvb_usbv2_mediatree_remote_init(d);
+ if (ret < 0)
+ goto err;
+
+- dvb_usbv2_device_power_ctrl(d, 0);
++ dvb_usbv2_mediatree_device_power_ctrl(d, 0);
+
+ return 0;
+ err:
+- dvb_usbv2_device_power_ctrl(d, 0);
++ dvb_usbv2_mediatree_device_power_ctrl(d, 0);
+ dev_dbg(&d->udev->dev, "%s: failed=%d\n", __func__, ret);
+ return ret;
+ }
+
+-int dvb_usbv2_probe(struct usb_interface *intf,
++int dvb_usbv2_mediatree_probe(struct usb_interface *intf,
+ const struct usb_device_id *id)
+ {
+ int ret;
+@@ -905,7 +905,7 @@
+ if (!name)
+ name = d->props->firmware;
+
+- ret = dvb_usbv2_download_firmware(d, name);
++ ret = dvb_usbv2_mediatree_download_firmware(d, name);
+ if (ret == 0) {
+ /* device is warm, continue initialization */
+ ;
+@@ -930,7 +930,7 @@
+ dev_info(&d->udev->dev, "%s: found a '%s' in warm state\n",
+ KBUILD_MODNAME, d->name);
+
+- ret = dvb_usbv2_init(d);
++ ret = dvb_usbv2_mediatree_init(d);
+ if (ret < 0)
+ goto err_free_all;
+
+@@ -942,14 +942,14 @@
+
+ return 0;
+ err_free_all:
+- dvb_usbv2_exit(d);
++ dvb_usbv2_mediatree_exit(d);
+ err:
+ dev_dbg(&udev->dev, "%s: failed=%d\n", __func__, ret);
+ return ret;
+ }
+-EXPORT_SYMBOL(dvb_usbv2_probe);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_probe);
+
+-void dvb_usbv2_disconnect(struct usb_interface *intf)
++void dvb_usbv2_mediatree_disconnect(struct usb_interface *intf)
+ {
+ struct dvb_usb_device *d = usb_get_intfdata(intf);
+ const char *name = d->name;
+@@ -960,14 +960,14 @@
+ if (d->props->exit)
+ d->props->exit(d);
+
+- dvb_usbv2_exit(d);
++ dvb_usbv2_mediatree_exit(d);
+
+ dev_info(&dev, "%s: '%s' successfully deinitialized and disconnected\n",
+ KBUILD_MODNAME, name);
+ }
+-EXPORT_SYMBOL(dvb_usbv2_disconnect);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_disconnect);
+
+-int dvb_usbv2_suspend(struct usb_interface *intf, pm_message_t msg)
++int dvb_usbv2_mediatree_suspend(struct usb_interface *intf, pm_message_t msg)
+ {
+ struct dvb_usb_device *d = usb_get_intfdata(intf);
+ int ret = 0, i, active_fe;
+@@ -996,9 +996,9 @@
+
+ return ret;
+ }
+-EXPORT_SYMBOL(dvb_usbv2_suspend);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_suspend);
+
+-static int dvb_usbv2_resume_common(struct dvb_usb_device *d)
++static int dvb_usbv2_mediatree_resume_common(struct dvb_usb_device *d)
+ {
+ int ret = 0, i, active_fe;
+ struct dvb_frontend *fe;
+@@ -1029,33 +1029,33 @@
+ return ret;
+ }
+
+-int dvb_usbv2_resume(struct usb_interface *intf)
++int dvb_usbv2_mediatree_resume(struct usb_interface *intf)
+ {
+ struct dvb_usb_device *d = usb_get_intfdata(intf);
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+- return dvb_usbv2_resume_common(d);
++ return dvb_usbv2_mediatree_resume_common(d);
+ }
+-EXPORT_SYMBOL(dvb_usbv2_resume);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_resume);
+
+-int dvb_usbv2_reset_resume(struct usb_interface *intf)
++int dvb_usbv2_mediatree_reset_resume(struct usb_interface *intf)
+ {
+ struct dvb_usb_device *d = usb_get_intfdata(intf);
+ int ret;
+ dev_dbg(&d->udev->dev, "%s:\n", __func__);
+
+- dvb_usbv2_device_power_ctrl(d, 1);
++ dvb_usbv2_mediatree_device_power_ctrl(d, 1);
+
+ if (d->props->init)
+ d->props->init(d);
+
+- ret = dvb_usbv2_resume_common(d);
++ ret = dvb_usbv2_mediatree_resume_common(d);
+
+- dvb_usbv2_device_power_ctrl(d, 0);
++ dvb_usbv2_mediatree_device_power_ctrl(d, 0);
+
+ return ret;
+ }
+-EXPORT_SYMBOL(dvb_usbv2_reset_resume);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_reset_resume);
+
+ MODULE_VERSION("2.0");
+ MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
+diff -Naur media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvb_usb.h media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvb_usb.h
+--- media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvb_usb.h 2014-09-26 11:57:42.000000000 +0200
++++ media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvb_usb.h 2017-07-06 15:11:20.500125396 +0200
+@@ -391,19 +391,19 @@
+ void *priv;
+ };
+
+-extern int dvb_usbv2_probe(struct usb_interface *,
++extern int dvb_usbv2_mediatree_probe(struct usb_interface *,
+ const struct usb_device_id *);
+-extern void dvb_usbv2_disconnect(struct usb_interface *);
+-extern int dvb_usbv2_suspend(struct usb_interface *, pm_message_t);
+-extern int dvb_usbv2_resume(struct usb_interface *);
+-extern int dvb_usbv2_reset_resume(struct usb_interface *);
++extern void dvb_usbv2_mediatree_disconnect(struct usb_interface *);
++extern int dvb_usbv2_mediatree_suspend(struct usb_interface *, pm_message_t);
++extern int dvb_usbv2_mediatree_resume(struct usb_interface *);
++extern int dvb_usbv2_mediatree_reset_resume(struct usb_interface *);
+
+ /* the generic read/write method for device control */
+-extern int dvb_usbv2_generic_rw(struct dvb_usb_device *, u8 *, u16, u8 *, u16);
+-extern int dvb_usbv2_generic_write(struct dvb_usb_device *, u8 *, u16);
++extern int dvb_usbv2_mediatree_generic_rw(struct dvb_usb_device *, u8 *, u16, u8 *, u16);
++extern int dvb_usbv2_mediatree_generic_write(struct dvb_usb_device *, u8 *, u16);
+ /* caller must hold lock when locked versions are called */
+-extern int dvb_usbv2_generic_rw_locked(struct dvb_usb_device *,
++extern int dvb_usbv2_mediatree_generic_rw_locked(struct dvb_usb_device *,
+ u8 *, u16, u8 *, u16);
+-extern int dvb_usbv2_generic_write_locked(struct dvb_usb_device *, u8 *, u16);
++extern int dvb_usbv2_mediatree_generic_write_locked(struct dvb_usb_device *, u8 *, u16);
+
+ #endif
+diff -Naur media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c
+--- media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c 2014-09-03 05:45:14.000000000 +0200
++++ media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c 2017-07-06 15:12:26.776125697 +0200
+@@ -65,7 +65,7 @@
+ return ret;
+ }
+
+-int dvb_usbv2_generic_rw(struct dvb_usb_device *d,
++int dvb_usbv2_mediatree_generic_rw(struct dvb_usb_device *d,
+ u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen)
+ {
+ int ret;
+@@ -76,9 +76,9 @@
+
+ return ret;
+ }
+-EXPORT_SYMBOL(dvb_usbv2_generic_rw);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_generic_rw);
+
+-int dvb_usbv2_generic_write(struct dvb_usb_device *d, u8 *buf, u16 len)
++int dvb_usbv2_mediatree_generic_write(struct dvb_usb_device *d, u8 *buf, u16 len)
+ {
+ int ret;
+
+@@ -88,17 +88,17 @@
+
+ return ret;
+ }
+-EXPORT_SYMBOL(dvb_usbv2_generic_write);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_generic_write);
+
+-int dvb_usbv2_generic_rw_locked(struct dvb_usb_device *d,
++int dvb_usbv2_mediatree_generic_rw_locked(struct dvb_usb_device *d,
+ u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen)
+ {
+ return dvb_usb_v2_generic_io(d, wbuf, wlen, rbuf, rlen);
+ }
+-EXPORT_SYMBOL(dvb_usbv2_generic_rw_locked);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_generic_rw_locked);
+
+-int dvb_usbv2_generic_write_locked(struct dvb_usb_device *d, u8 *buf, u16 len)
++int dvb_usbv2_mediatree_generic_write_locked(struct dvb_usb_device *d, u8 *buf, u16 len)
+ {
+ return dvb_usb_v2_generic_io(d, buf, len, NULL, 0);
+ }
+-EXPORT_SYMBOL(dvb_usbv2_generic_write_locked);
++EXPORT_SYMBOL(dvb_usbv2_mediatree_generic_write_locked);
+diff -Naur media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/Makefile media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/Makefile
+--- media_build-bst-160430.orig/linux/drivers/media/usb/dvb-usb-v2/Makefile 2014-09-26 11:57:42.000000000 +0200
++++ media_build-bst-160430/linux/drivers/media/usb/dvb-usb-v2/Makefile 2017-07-06 14:55:22.353096069 +0200
+@@ -1,5 +1,5 @@
+-dvb_usb_v2-objs := dvb_usb_core.o dvb_usb_urb.o usb_urb.o
+-obj-$(CONFIG_DVB_USB_V2) += dvb_usb_v2.o
++dvb_usb_v2_media_tree-objs := dvb_usb_core.o dvb_usb_urb.o usb_urb.o
++obj-$(CONFIG_DVB_USB_V2) += dvb_usb_v2_media_tree.o
+
+ dvb-usb-af9015-objs := af9015.o
+ obj-$(CONFIG_DVB_USB_AF9015) += dvb-usb-af9015.o
+diff -Naur media_build-bst-160430.orig/v4l/Makefile media_build-bst-160430/v4l/Makefile
+--- media_build-bst-160430.orig/v4l/Makefile 2015-02-11 04:31:06.000000000 +0100
++++ media_build-bst-160430/v4l/Makefile 2017-07-06 15:14:10.452126168 +0200
+@@ -202,7 +202,7 @@
+ #################################################
+ # installation invocation rules
+
+-modules_install install:: media-install firmware_install
++modules_install install:: media-install
+
+ remove rminstall:: media-rminstall
+
+diff -Naur media_build-bst-160430.orig/v4l/scripts/make_makefile.pl media_build-bst-160430/v4l/scripts/make_makefile.pl
+--- media_build-bst-160430.orig/v4l/scripts/make_makefile.pl 2014-12-19 04:07:10.000000000 +0100
++++ media_build-bst-160430/v4l/scripts/make_makefile.pl 2017-07-06 15:22:45.025441093 +0200
+@@ -253,11 +253,11 @@
+ print OUT "echo -n \"\$\$i \"; ";
+ print OUT "install -m 644 -c \$\$i \$(DESTDIR)\$(KDIR26)/$dir; fi; done; ";
+ print OUT "if [ \$\$n -ne 0 ]; then echo; ";
+- print OUT "strip --strip-debug \$(DESTDIR)\$(KDIR26)/$dir/*.ko; ";
++ print OUT "\$(CROSS_COMPILE)strip --strip-debug \$(DESTDIR)\$(KDIR26)/$dir/*.ko; ";
+ print OUT "fi;\n\n";
+ }
+ print OUT "\t@echo\n";
+-print OUT "\t/sbin/depmod -a \$(KERNELRELEASE) \$(if \$(DESTDIR),-b \$(DESTDIR))\n\n";
++
+
+ # Creating Remove rule
+ print OUT "media-rminstall::\n";