mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
linux: add upstream patches, this fix #1841
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
c76d5574b7
commit
13afe88c7e
11
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch
vendored
Normal file
11
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=drivers%2Fmedia%2Fdvb-frontends%2Fds3000.c;h=c84cd98a91504dcf2995a75a1e8d6e5013cf4f2d;hp=5b639087ce45623f7a2f1be7e1b6216c1bc686a8;hb=feadd7d3eca4da531b35b2af3623dd992f2d988d;hpb=6c17c24d384ce69893e191c94b500c97bd263c27
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
|
||||
index 5b63908..c84cd98 100644
|
||||
--- a/drivers/media/dvb-frontends/ds3000.c
|
||||
+++ b/drivers/media/dvb-frontends/ds3000.c
|
||||
@@ -1316,3 +1316,4 @@ MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
|
||||
"DS3000/TS2020 hardware");
|
||||
MODULE_AUTHOR("Konstantin Dimitrov");
|
||||
MODULE_LICENSE("GPL");
|
||||
+MODULE_FIRMWARE(DS3000_DEFAULT_FIRMWARE);
|
87
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch
vendored
Normal file
87
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
From b41a536cf9806c3478b2fa68d59edafd0787e8aa Mon Sep 17 00:00:00 2001
|
||||
From: =?utf8?q?R=C3=A9mi=20Cardona?= <remi.cardona@smartjog.com>
|
||||
Date: Fri, 28 Sep 2012 08:59:27 -0300
|
||||
Subject: [PATCH] [media] ds3000: remove useless 'locking'
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=utf8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Since b9bf2eafaad9c1ef02fb3db38c74568be601a43a, the function
|
||||
ds3000_firmware_ondemand() is called only once during init. This
|
||||
locking scheme may have been useful when the firmware was loaded at
|
||||
each tune.
|
||||
Furthermore, it looks like this 'lock' was put in to prevent concurrent
|
||||
access (and not recursion as the comments suggest). However, this open-
|
||||
coded mechanism is anything but race-free and should have used a proper
|
||||
mutex.
|
||||
|
||||
Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>
|
||||
Reviewed-by: Antti Palosaari <crope@iki.fi>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
drivers/media/dvb-frontends/ds3000.c | 14 --------------
|
||||
1 files changed, 0 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
|
||||
index c84cd98..60a529e 100644
|
||||
--- a/drivers/media/dvb-frontends/ds3000.c
|
||||
+++ b/drivers/media/dvb-frontends/ds3000.c
|
||||
@@ -30,7 +30,6 @@
|
||||
#include "ds3000.h"
|
||||
|
||||
static int debug;
|
||||
-static int force_fw_upload;
|
||||
|
||||
#define dprintk(args...) \
|
||||
do { \
|
||||
@@ -234,7 +233,6 @@ struct ds3000_state {
|
||||
struct i2c_adapter *i2c;
|
||||
const struct ds3000_config *config;
|
||||
struct dvb_frontend frontend;
|
||||
- u8 skip_fw_load;
|
||||
/* previous uncorrected block counter for DVB-S2 */
|
||||
u16 prevUCBS2;
|
||||
};
|
||||
@@ -397,9 +395,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
- if (state->skip_fw_load || !force_fw_upload)
|
||||
- return 0; /* Firmware already uploaded, skipping */
|
||||
-
|
||||
/* Load firmware */
|
||||
/* request the firmware, this will block until someone uploads it */
|
||||
printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__,
|
||||
@@ -413,9 +408,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
|
||||
return ret;
|
||||
}
|
||||
|
||||
- /* Make sure we don't recurse back through here during loading */
|
||||
- state->skip_fw_load = 1;
|
||||
-
|
||||
ret = ds3000_load_firmware(fe, fw);
|
||||
if (ret)
|
||||
printk("%s: Writing firmware to device failed\n", __func__);
|
||||
@@ -425,9 +417,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
|
||||
dprintk("%s: Firmware upload %s\n", __func__,
|
||||
ret == 0 ? "complete" : "failed");
|
||||
|
||||
- /* Ensure firmware is always loaded if required */
|
||||
- state->skip_fw_load = 0;
|
||||
-
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1309,9 +1298,6 @@ static struct dvb_frontend_ops ds3000_ops = {
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
|
||||
|
||||
-module_param(force_fw_upload, int, 0644);
|
||||
-MODULE_PARM_DESC(force_fw_upload, "Force firmware upload (default:0)");
|
||||
-
|
||||
MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
|
||||
"DS3000/TS2020 hardware");
|
||||
MODULE_AUTHOR("Konstantin Dimitrov");
|
||||
--
|
||||
1.7.6.5
|
||||
|
Loading…
x
Reference in New Issue
Block a user