diff --git a/packages/linux/patches/default/linux-999-revert-dvb-t680ci-commit.patch b/packages/linux/patches/default/linux-999-revert-dvb-t680ci-commit.patch new file mode 100644 index 0000000000..41793d7173 --- /dev/null +++ b/packages/linux/patches/default/linux-999-revert-dvb-t680ci-commit.patch @@ -0,0 +1,60 @@ +From c24b2ad9c085685c2cace7733c22dbc80a95de27 Mon Sep 17 00:00:00 2001 +From: MilhouseVH +Date: Thu, 16 Aug 2018 21:24:14 +0100 +Subject: [PATCH] Revert "media: dvbsky: use just one mutex for serializing + device R/W ops" + +This reverts commit 7d95fb746c4eece67308f1642a666ea1ebdbd2cc. +--- + drivers/media/usb/dvb-usb-v2/dvbsky.c | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +diff --git a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c +index 1aa88d9..e28bd88 100644 +--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c ++++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c +@@ -31,6 +31,7 @@ MODULE_PARM_DESC(disable_rc, "Disable inbuilt IR receiver."); + DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); + + struct dvbsky_state { ++ struct mutex stream_mutex; + u8 ibuf[DVBSKY_BUF_LEN]; + u8 obuf[DVBSKY_BUF_LEN]; + u8 last_lock; +@@ -67,17 +68,18 @@ static int dvbsky_usb_generic_rw(struct dvb_usb_device *d, + + static int dvbsky_stream_ctrl(struct dvb_usb_device *d, u8 onoff) + { ++ struct dvbsky_state *state = d_to_priv(d); + int ret; +- static u8 obuf_pre[3] = { 0x37, 0, 0 }; +- static u8 obuf_post[3] = { 0x36, 3, 0 }; ++ u8 obuf_pre[3] = { 0x37, 0, 0 }; ++ u8 obuf_post[3] = { 0x36, 3, 0 }; + +- mutex_lock(&d->usb_mutex); +- ret = dvb_usbv2_generic_rw_locked(d, obuf_pre, 3, NULL, 0); ++ mutex_lock(&state->stream_mutex); ++ ret = dvbsky_usb_generic_rw(d, obuf_pre, 3, NULL, 0); + if (!ret && onoff) { + msleep(20); +- ret = dvb_usbv2_generic_rw_locked(d, obuf_post, 3, NULL, 0); ++ ret = dvbsky_usb_generic_rw(d, obuf_post, 3, NULL, 0); + } +- mutex_unlock(&d->usb_mutex); ++ mutex_unlock(&state->stream_mutex); + return ret; + } + +@@ -606,6 +608,8 @@ static int dvbsky_init(struct dvb_usb_device *d) + if (ret) + return ret; + */ ++ mutex_init(&state->stream_mutex); ++ + state->last_lock = 0; + + return 0; +-- +2.14.1 +