Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv

This commit is contained in:
Stephan Raue 2014-01-02 13:21:04 +01:00
commit dcb58eabe0
8 changed files with 140 additions and 180 deletions

View File

@ -55,6 +55,13 @@ setup_toolchain() {
fi fi
} }
apply_patch() {
patch -d "$2" -p0 -f --dry-run < $1 &> /dev/null && patch -d "$2" -p0 < $1 && return 0
patch -d "$2" -p1 -f --dry-run < $1 &> /dev/null && patch -d "$2" -p1 < $1 && return 0
echo "*** Failed to apply '$1'! ***"
return 1
}
kernel_path() { kernel_path() {
if [ -f $ROOT/packages/linux/package.mk ] ; then if [ -f $ROOT/packages/linux/package.mk ] ; then
. $ROOT/packages/linux/package.mk . $ROOT/packages/linux/package.mk

View File

@ -1,35 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. config/options $1
cd $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers
[ "$TARGET_ARCH" = "i386" ] && ./v4l/tbs-x86_r3.sh
[ "$TARGET_ARCH" = "x86_64" ] && ./v4l/tbs-x86_64.sh
LDFLAGS="" make DIR=$(kernel_path) prepare
# TODO: removee me after 3 or 4 tbs driver versions
#for cfg in CONFIG_VIDEO_SH_MOBILE_CEU CONFIG_VIDEO_SH_MOBILE_CSI2 ; do
# sed -i -e "s|^$cfg=.*$|# $cfg is not set|" v4l/.config
#done
LDFLAGS="" make DIR=$(kernel_path)

View File

@ -1,27 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. config/options $1
mkdir -p $INSTALL/lib/modules/`kernel_version`/updates/tbs
find $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers/ -name \*.ko -exec cp {} $INSTALL/lib/modules/`kernel_version`/updates/tbs \;
mkdir -p $INSTALL/lib/firmware/
cp $BUILD/${PKG_NAME}-${PKG_VERSION}/*.fw $INSTALL/lib/firmware/

View File

@ -1,34 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="tbs-linux-drivers"
PKG_VERSION="130802"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.tbsdtv.com/english/Download.html"
PKG_URL="http://www.tbsdtv.com/download/document/common/tbs-linux-drivers_v${PKG_VERSION}.zip"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain linux"
PKG_NEED_UNPACK="$LINUX_DEPENDS"
PKG_PRIORITY="optional"
PKG_SECTION="driver"
PKG_SHORTDESC="Linux TBS tuner drivers"
PKG_LONGDESC="Linux TBS tuner drivers"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -1,38 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. config/options $1
ZIP_PKG="`echo $PKG_URL | sed 's%.*/\(.*\)$%\1%'`"
mkdir -p $BUILD/${PKG_NAME}-${PKG_VERSION}
# unzip main archive
unzip $SOURCES/$1/$ZIP_PKG -d $BUILD/${PKG_NAME}-${PKG_VERSION} >/dev/null 2>&1
# extract .tar.bz2
tar xjf $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers.tar.bz2 -C $BUILD/${PKG_NAME}-${PKG_VERSION}
# fix permissions
chmod -R u+rwX $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers/*
for patch in `ls $PKG_DIR/patches.upstream/*.patch`; do
cat $patch | patch -d \
`echo $BUILD/$PKG_NAME-$PKG_VERSION | cut -f1 -d\ ` -p1
done

View File

@ -1,6 +1,6 @@
From df12e0a5e0527c8f5bf1618db1e34fdfafb1ece1 Mon Sep 17 00:00:00 2001 From a6ff662a6e838d8f21c0ccb1261bd6a894435b96 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca> From: Stefan Saraev <stefan@saraev.ca>
Date: Thu, 28 Nov 2013 15:40:09 +0200 Date: Thu, 2 Jan 2014 00:40:06 +0200
Subject: [PATCH] dvb: ngene/octopus Subject: [PATCH] dvb: ngene/octopus
source: http://linuxtv.org/hg/~endriss/media_build_experimental/ source: http://linuxtv.org/hg/~endriss/media_build_experimental/
@ -15,7 +15,7 @@ note: SYS_DVBC2 not added. ci extensions (en50221) not added.
drivers/media/dvb-frontends/Makefile | 3 + drivers/media/dvb-frontends/Makefile | 3 +
drivers/media/dvb-frontends/cxd2843.c | 1646 ++++++++++++ drivers/media/dvb-frontends/cxd2843.c | 1646 ++++++++++++
drivers/media/dvb-frontends/cxd2843.h | 14 + drivers/media/dvb-frontends/cxd2843.h | 14 +
drivers/media/dvb-frontends/drxk_hard.c | 3600 ++++++++++++-------------- drivers/media/dvb-frontends/drxk_hard.c | 3616 ++++++++++++--------------
drivers/media/dvb-frontends/drxk_hard.h | 298 +-- drivers/media/dvb-frontends/drxk_hard.h | 298 +--
drivers/media/dvb-frontends/drxk_map.h | 3 - drivers/media/dvb-frontends/drxk_map.h | 3 -
drivers/media/dvb-frontends/stv0367dd.c | 2331 +++++++++++++++++ drivers/media/dvb-frontends/stv0367dd.c | 2331 +++++++++++++++++
@ -23,7 +23,7 @@ note: SYS_DVBC2 not added. ci extensions (en50221) not added.
drivers/media/dvb-frontends/stv0367dd_regs.h | 3431 ++++++++++++++++++++++++ drivers/media/dvb-frontends/stv0367dd_regs.h | 3431 ++++++++++++++++++++++++
drivers/media/dvb-frontends/tda18212dd.c | 936 +++++++ drivers/media/dvb-frontends/tda18212dd.c | 936 +++++++
drivers/media/dvb-frontends/tda18212dd.h | 5 + drivers/media/dvb-frontends/tda18212dd.h | 5 +
drivers/media/dvb-frontends/tda18271c2dd.c | 1 - drivers/media/dvb-frontends/tda18271c2dd.c | 15 +-
drivers/media/dvb-frontends/tda18271c2dd.h | 6 +- drivers/media/dvb-frontends/tda18271c2dd.h | 6 +-
drivers/media/pci/ddbridge/Kconfig | 11 +- drivers/media/pci/ddbridge/Kconfig | 11 +-
drivers/media/pci/ddbridge/Makefile | 2 - drivers/media/pci/ddbridge/Makefile | 2 -
@ -34,20 +34,20 @@ note: SYS_DVBC2 not added. ci extensions (en50221) not added.
drivers/media/pci/ddbridge/ddbridge-ns.c | 465 ++++ drivers/media/pci/ddbridge/ddbridge-ns.c | 465 ++++
drivers/media/pci/ddbridge/ddbridge-regs.h | 310 ++- drivers/media/pci/ddbridge/ddbridge-regs.h | 310 ++-
drivers/media/pci/ddbridge/ddbridge.c | 432 +++ drivers/media/pci/ddbridge/ddbridge.c | 432 +++
drivers/media/pci/ddbridge/ddbridge.h | 388 +++- drivers/media/pci/ddbridge/ddbridge.h | 388 ++-
drivers/media/pci/ddbridge/octonet.c | 176 ++ drivers/media/pci/ddbridge/octonet.c | 176 ++
drivers/media/pci/ngene/Kconfig | 3 + drivers/media/pci/ngene/Kconfig | 3 +
drivers/media/pci/ngene/Makefile | 3 +- drivers/media/pci/ngene/Makefile | 3 +-
drivers/media/pci/ngene/ngene-av.c | 348 +++ drivers/media/pci/ngene/ngene-av.c | 348 +++
drivers/media/pci/ngene/ngene-cards.c | 778 ++++-- drivers/media/pci/ngene/ngene-cards.c | 778 ++++--
drivers/media/pci/ngene/ngene-core.c | 378 +++- drivers/media/pci/ngene/ngene-core.c | 382 ++-
drivers/media/pci/ngene/ngene-dvb.c | 372 +++ drivers/media/pci/ngene/ngene-dvb.c | 372 +++
drivers/media/pci/ngene/ngene-eeprom.c | 284 ++ drivers/media/pci/ngene/ngene-eeprom.c | 284 ++
drivers/media/pci/ngene/ngene-i2c.c | 113 + drivers/media/pci/ngene/ngene-i2c.c | 113 +
drivers/media/pci/ngene/ngene.h | 40 + drivers/media/pci/ngene/ngene.h | 40 +
include/uapi/linux/dvb/mod.h | 23 + include/uapi/linux/dvb/mod.h | 23 +
include/uapi/linux/dvb/ns.h | 68 + include/uapi/linux/dvb/ns.h | 68 +
40 files changed, 18315 insertions(+), 3458 deletions(-) 40 files changed, 18328 insertions(+), 3479 deletions(-)
create mode 100644 drivers/media/dvb-core/dvb_netstream.c create mode 100644 drivers/media/dvb-core/dvb_netstream.c
create mode 100644 drivers/media/dvb-core/dvb_netstream.h create mode 100644 drivers/media/dvb-core/dvb_netstream.h
create mode 100644 drivers/media/dvb-frontends/cxd2843.c create mode 100644 drivers/media/dvb-frontends/cxd2843.c
@ -386,7 +386,7 @@ index 0000000..5da101e
+ +
+#endif +#endif
diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
index 401ef64..273666e 100644 index 983db75..a813389 100644
--- a/drivers/media/dvb-core/dvbdev.c --- a/drivers/media/dvb-core/dvbdev.c
+++ b/drivers/media/dvb-core/dvbdev.c +++ b/drivers/media/dvb-core/dvbdev.c
@@ -47,7 +47,7 @@ static DEFINE_MUTEX(dvbdev_register_lock); @@ -47,7 +47,7 @@ static DEFINE_MUTEX(dvbdev_register_lock);
@ -407,9 +407,9 @@ index 401ef64..273666e 100644
down_read(&minor_rwsem); down_read(&minor_rwsem);
dvbdev = dvb_minors[iminor(inode)]; dvbdev = dvb_minors[iminor(inode)];
@@ -91,12 +91,12 @@ static int dvb_device_open(struct inode *inode, struct file *file) @@ -84,12 +84,12 @@ static int dvb_device_open(struct inode *inode, struct file *file)
} if (file->f_op->open)
fops_put(old_fops); err = file->f_op->open(inode,file);
up_read(&minor_rwsem); up_read(&minor_rwsem);
- mutex_unlock(&dvbdev_mutex); - mutex_unlock(&dvbdev_mutex);
+ //mutex_unlock(&dvbdev_mutex); + //mutex_unlock(&dvbdev_mutex);
@ -422,7 +422,7 @@ index 401ef64..273666e 100644
return -ENODEV; return -ENODEV;
} }
@@ -418,8 +418,10 @@ int dvb_usercopy(struct file *file, @@ -411,8 +411,10 @@ int dvb_usercopy(struct file *file,
} }
/* call driver */ /* call driver */
@ -433,7 +433,7 @@ index 401ef64..273666e 100644
if (err < 0) if (err < 0)
goto out; goto out;
@@ -438,6 +440,7 @@ out: @@ -431,6 +433,7 @@ out:
kfree(mbuf); kfree(mbuf);
return err; return err;
} }
@ -457,10 +457,10 @@ index 93a9470..e534ef1 100644
#define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \ #define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \
static short adapter_nr[] = \ static short adapter_nr[] = \
diff --git a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig diff --git a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig
index 9a07da1..c14fab7 100644 index bddbab4..e0cf4c8 100644
--- a/drivers/media/dvb-frontends/Kconfig --- a/drivers/media/dvb-frontends/Kconfig
+++ b/drivers/media/dvb-frontends/Kconfig +++ b/drivers/media/dvb-frontends/Kconfig
@@ -63,6 +63,33 @@ config DVB_TDA18271C2DD @@ -56,6 +56,33 @@ config DVB_TDA18271C2DD
Say Y when you want to support this tuner. Say Y when you want to support this tuner.
@ -495,10 +495,10 @@ index 9a07da1..c14fab7 100644
depends on DVB_CORE depends on DVB_CORE
diff --git a/drivers/media/dvb-frontends/Makefile b/drivers/media/dvb-frontends/Makefile diff --git a/drivers/media/dvb-frontends/Makefile b/drivers/media/dvb-frontends/Makefile
index 7ac8c64..25f2694 100644 index f9cb43d..90cad36 100644
--- a/drivers/media/dvb-frontends/Makefile --- a/drivers/media/dvb-frontends/Makefile
+++ b/drivers/media/dvb-frontends/Makefile +++ b/drivers/media/dvb-frontends/Makefile
@@ -100,6 +100,9 @@ obj-$(CONFIG_DVB_STV0367) += stv0367.o @@ -97,6 +97,9 @@ obj-$(CONFIG_DVB_STV0367) += stv0367.o
obj-$(CONFIG_DVB_CXD2820R) += cxd2820r.o obj-$(CONFIG_DVB_CXD2820R) += cxd2820r.o
obj-$(CONFIG_DVB_DRXK) += drxk.o obj-$(CONFIG_DVB_DRXK) += drxk.o
obj-$(CONFIG_DVB_TDA18271C2DD) += tda18271c2dd.o obj-$(CONFIG_DVB_TDA18271C2DD) += tda18271c2dd.o
@ -2181,7 +2181,7 @@ index 0000000..d3a3f92
+ +
+#endif +#endif
diff --git a/drivers/media/dvb-frontends/drxk_hard.c b/drivers/media/dvb-frontends/drxk_hard.c diff --git a/drivers/media/dvb-frontends/drxk_hard.c b/drivers/media/dvb-frontends/drxk_hard.c
index 082014d..91a7f9f 100644 index bf29a3f..91a7f9f 100644
--- a/drivers/media/dvb-frontends/drxk_hard.c --- a/drivers/media/dvb-frontends/drxk_hard.c
+++ b/drivers/media/dvb-frontends/drxk_hard.c +++ b/drivers/media/dvb-frontends/drxk_hard.c
@@ -21,8 +21,6 @@ @@ -21,8 +21,6 @@
@ -3503,7 +3503,7 @@ index 082014d..91a7f9f 100644
+ status = write16(state, SIO_HI_RA_RAM_PAR_1__A, SIO_HI_RA_RAM_PAR_1_PAR1_SEC_KEY); + status = write16(state, SIO_HI_RA_RAM_PAR_1__A, SIO_HI_RA_RAM_PAR_1_PAR1_SEC_KEY);
if (status < 0) if (status < 0)
goto error; goto error;
- status = hi_command(state, SIO_HI_RA_RAM_CMD_CONFIG, 0); - status = hi_command(state, SIO_HI_RA_RAM_CMD_CONFIG, NULL);
+ status = HI_Command(state, SIO_HI_RA_RAM_CMD_CONFIG, 0); + status = HI_Command(state, SIO_HI_RA_RAM_CMD_CONFIG, 0);
if (status < 0) if (status < 0)
goto error; goto error;
@ -3599,10 +3599,11 @@ index 082014d..91a7f9f 100644
goto error; goto error;
- if (state->m_enable_parallel == true) { - if (state->m_enable_parallel == true) {
+ if (state->m_enableParallel == true) { - /* parallel -> enable MD1 to MD7 */
/* paralel -> enable MD1 to MD7 */
- status = write16(state, SIO_PDR_MD1_CFG__A, - status = write16(state, SIO_PDR_MD1_CFG__A,
- sio_pdr_mdx_cfg); - sio_pdr_mdx_cfg);
+ if (state->m_enableParallel == true) {
+ /* paralel -> enable MD1 to MD7 */
+ status = write16(state, SIO_PDR_MD1_CFG__A, sioPdrMdxCfg); + status = write16(state, SIO_PDR_MD1_CFG__A, sioPdrMdxCfg);
if (status < 0) if (status < 0)
goto error; goto error;
@ -3877,8 +3878,9 @@ index 082014d..91a7f9f 100644
dprintk(1, "\n"); dprintk(1, "\n");
/* Gracefull shutdown (byte boundaries) */ - /* Graceful shutdown (byte boundaries) */
- status = read16(state, FEC_OC_SNC_MODE__A, &fec_oc_snc_mode); - status = read16(state, FEC_OC_SNC_MODE__A, &fec_oc_snc_mode);
+ /* Gracefull shutdown (byte boundaries) */
+ status = read16(state, FEC_OC_SNC_MODE__A, &fecOcSncMode); + status = read16(state, FEC_OC_SNC_MODE__A, &fecOcSncMode);
if (status < 0) if (status < 0)
goto error; goto error;
@ -4496,9 +4498,10 @@ index 082014d..91a7f9f 100644
+ fecOcDtoBurstLen = 204; + fecOcDtoBurstLen = 204;
} }
/* Check serial or parrallel output */ - /* Check serial or parallel output */
- fec_oc_reg_ipr_mode &= (~(FEC_OC_IPR_MODE_SERIAL__M)); - fec_oc_reg_ipr_mode &= (~(FEC_OC_IPR_MODE_SERIAL__M));
- if (state->m_enable_parallel == false) { - if (state->m_enable_parallel == false) {
+ /* Check serial or parrallel output */
+ fecOcRegIprMode &= (~(FEC_OC_IPR_MODE_SERIAL__M)); + fecOcRegIprMode &= (~(FEC_OC_IPR_MODE_SERIAL__M));
+ if (state->m_enableParallel == false) { + if (state->m_enableParallel == false) {
/* MPEG data output is serial -> set ipr_mode[0] */ /* MPEG data output is serial -> set ipr_mode[0] */
@ -5362,7 +5365,7 @@ index 082014d..91a7f9f 100644
goto error; goto error;
} }
- status = hi_command(state, SIO_HI_RA_RAM_CMD_BRDCTRL, 0); - status = hi_command(state, SIO_HI_RA_RAM_CMD_BRDCTRL, NULL);
+ status = HI_Command(state, SIO_HI_RA_RAM_CMD_BRDCTRL, 0); + status = HI_Command(state, SIO_HI_RA_RAM_CMD_BRDCTRL, 0);
error: error:
@ -5488,8 +5491,9 @@ index 082014d..91a7f9f 100644
goto error; goto error;
if (count == 1) { if (count == 1) {
/* Try sampling on a diffrent edge */ - /* Try sampling on a different edge */
- u16 clk_neg = 0; - u16 clk_neg = 0;
+ /* Try sampling on a diffrent edge */
+ u16 clkNeg = 0; + u16 clkNeg = 0;
- status = read16(state, IQM_AF_CLKNEG__A, &clk_neg); - status = read16(state, IQM_AF_CLKNEG__A, &clk_neg);
@ -5875,7 +5879,7 @@ index 082014d..91a7f9f 100644
goto error; goto error;
/* Write sub-command */ /* Write sub-command */
@@ -3288,18 +3345,18 @@ static int dvbt_sc_command(struct drxk_state *state, @@ -3288,25 +3345,25 @@ static int dvbt_sc_command(struct drxk_state *state,
goto error; goto error;
/* Wait until sc is ready processing command */ /* Wait until sc is ready processing command */
@ -5902,6 +5906,14 @@ index 082014d..91a7f9f 100644
/* illegal command */ /* illegal command */
status = -EINVAL; status = -EINVAL;
} }
if (status < 0)
goto error;
- /* Retrieve results parameters from SC */
+ /* Retreive results parameters from SC */
switch (cmd) {
/* All commands yielding 5 results */
/* All commands yielding 4 results */
@@ -3331,23 +3388,23 @@ static int dvbt_sc_command(struct drxk_state *state, @@ -3331,23 +3388,23 @@ static int dvbt_sc_command(struct drxk_state *state,
} /* switch (cmd->cmd) */ } /* switch (cmd->cmd) */
error: error:
@ -6326,7 +6338,7 @@ index 082014d..91a7f9f 100644
break; break;
} }
@@ -3836,16 +3880,16 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, @@ -3836,30 +3880,30 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz,
switch (state->props.modulation) { switch (state->props.modulation) {
case QAM_AUTO: case QAM_AUTO:
default: default:
@ -6347,7 +6359,8 @@ index 082014d..91a7f9f 100644
break; break;
} }
#if 0 #if 0
@@ -3853,13 +3897,13 @@ static int set_dvbt(struct drxk_state *state, u16 intermediate_freqk_hz, - /* No hierarchical channels support in BDA */
+ /* No hierachical channels support in BDA */
/* Priority (only for hierarchical channels) */ /* Priority (only for hierarchical channels) */
switch (channel->priority) { switch (channel->priority) {
case DRX_PRIORITY_LOW: case DRX_PRIORITY_LOW:
@ -6612,7 +6625,14 @@ index 082014d..91a7f9f 100644
return status; return status;
} }
@@ -4087,7 +4104,7 @@ error: @@ -4081,13 +4098,13 @@ error:
/*============================================================================*/
/**
-* \brief Retrieve lock status .
+* \brief Retreive lock status .
* \param demod Pointer to demodulator instance.
* \param lockStat Pointer to lock status structure.
* \return DRXStatus_t. * \return DRXStatus_t.
* *
*/ */
@ -7862,7 +7882,7 @@ index 082014d..91a7f9f 100644
if (status < 0) if (status < 0)
goto error; goto error;
@@ -6162,14 +6086,14 @@ static int init_drxk(struct drxk_state *state) @@ -6162,55 +6086,50 @@ static int init_drxk(struct drxk_state *state)
status = write16(state, SCU_COMM_EXEC__A, SCU_COMM_EXEC_ACTIVE); status = write16(state, SCU_COMM_EXEC__A, SCU_COMM_EXEC_ACTIVE);
if (status < 0) if (status < 0)
goto error; goto error;
@ -7880,7 +7900,10 @@ index 082014d..91a7f9f 100644
if (status < 0) if (status < 0)
goto error; goto error;
@@ -6179,38 +6103,33 @@ static int init_drxk(struct drxk_state *state) /* Stamp driver version number in SCU data RAM in BCD code
- Done to enable field application engineers to retrieve drxdriver version
+ Done to enable field application engineers to retreive drxdriver version
via I2C from SCU RAM.
Not using SCU command interface for SCU register access since no Not using SCU command interface for SCU register access since no
microcode may be present. microcode may be present.
*/ */
@ -8119,7 +8142,7 @@ index 082014d..91a7f9f 100644
fe->ops.tuner_ops.get_if_frequency(fe, &IF); fe->ops.tuner_ops.get_if_frequency(fe, &IF);
- start(state, 0, IF); - start(state, 0, IF);
- -
- /* After set_frontend, stats aren't avaliable */ - /* After set_frontend, stats aren't available */
- p->strength.stat[0].scale = FE_SCALE_RELATIVE; - p->strength.stat[0].scale = FE_SCALE_RELATIVE;
- p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE; - p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
- p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; - p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
@ -15811,17 +15834,41 @@ index 0000000..687fab4
+ struct i2c_adapter *i2c, u8 adr); + struct i2c_adapter *i2c, u8 adr);
+#endif +#endif
diff --git a/drivers/media/dvb-frontends/tda18271c2dd.c b/drivers/media/dvb-frontends/tda18271c2dd.c diff --git a/drivers/media/dvb-frontends/tda18271c2dd.c b/drivers/media/dvb-frontends/tda18271c2dd.c
index d281f77..ad7c72e 100644 index 2c54586..ad7c72e 100644
--- a/drivers/media/dvb-frontends/tda18271c2dd.c --- a/drivers/media/dvb-frontends/tda18271c2dd.c
+++ b/drivers/media/dvb-frontends/tda18271c2dd.c +++ b/drivers/media/dvb-frontends/tda18271c2dd.c
@@ -32,7 +32,6 @@ @@ -32,10 +32,6 @@
#include <asm/div64.h> #include <asm/div64.h>
#include "dvb_frontend.h" #include "dvb_frontend.h"
-#include "tda18271c2dd.h" -#include "tda18271c2dd.h"
-
-/* Max transfer size done by I2C transfer functions */
-#define MAX_XFER_SIZE 64
struct SStandardParam { struct SStandardParam {
s32 m_IFFrequency; s32 m_IFFrequency;
@@ -142,18 +138,11 @@ static int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len)
static int WriteRegs(struct tda_state *state,
u8 SubAddr, u8 *Regs, u16 nRegs)
{
- u8 data[MAX_XFER_SIZE];
-
- if (1 + nRegs > sizeof(data)) {
- printk(KERN_WARNING
- "%s: i2c wr: len=%d is too big!\n",
- KBUILD_MODNAME, nRegs);
- return -EINVAL;
- }
+ u8 data[nRegs+1];
data[0] = SubAddr;
memcpy(data + 1, Regs, nRegs);
- return i2c_write(state->i2c, state->adr, data, nRegs + 1);
+ return i2c_write(state->i2c, state->adr, data, nRegs+1);
}
static int WriteReg(struct tda_state *state, u8 SubAddr, u8 Reg)
diff --git a/drivers/media/dvb-frontends/tda18271c2dd.h b/drivers/media/dvb-frontends/tda18271c2dd.h diff --git a/drivers/media/dvb-frontends/tda18271c2dd.h b/drivers/media/dvb-frontends/tda18271c2dd.h
index dd84f7b..1389c74 100644 index dd84f7b..1389c74 100644
--- a/drivers/media/dvb-frontends/tda18271c2dd.h --- a/drivers/media/dvb-frontends/tda18271c2dd.h
@ -15883,7 +15930,7 @@ index 7446c8b..2610161 100644
ccflags-y += -Idrivers/media/dvb-core/ ccflags-y += -Idrivers/media/dvb-core/
diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci/ddbridge/ddbridge-core.c diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci/ddbridge/ddbridge-core.c
index 36e3452..3e4a696 100644 index 9375f30..f29332b 100644
--- a/drivers/media/pci/ddbridge/ddbridge-core.c --- a/drivers/media/pci/ddbridge/ddbridge-core.c
+++ b/drivers/media/pci/ddbridge/ddbridge-core.c +++ b/drivers/media/pci/ddbridge/ddbridge-core.c
@@ -1,288 +1,239 @@ @@ -1,288 +1,239 @@
@ -19574,7 +19621,7 @@ index 36e3452..3e4a696 100644
+ +
+static ssize_t mod_show(struct device *device, struct device_attribute *attr, char *buf) +static ssize_t mod_show(struct device *device, struct device_attribute *attr, char *buf)
{ {
- struct ddb *dev = (struct ddb *) pci_get_drvdata(pdev); - struct ddb *dev = pci_get_drvdata(pdev);
+ struct ddb *dev = dev_get_drvdata(device); + struct ddb *dev = dev_get_drvdata(device);
+ int num = attr->attr.name[3] - 0x30; + int num = attr->attr.name[3] - 0x30;
@ -19913,7 +19960,7 @@ index 36e3452..3e4a696 100644
+static struct class ddb_class = { +static struct class ddb_class = {
+ .name = "ddbridge", + .name = "ddbridge",
+ .owner = THIS_MODULE, + .owner = THIS_MODULE,
+ .dev_attrs = ddb_attrs, + //.dev_attrs = ddb_attrs,
+ .devnode = ddb_devnode, + .devnode = ddb_devnode,
}; };
@ -24760,7 +24807,7 @@ index 9e82d21..c9b1bd4 100644
.link_reset = ngene_link_reset, .link_reset = ngene_link_reset,
.slot_reset = ngene_slot_reset, .slot_reset = ngene_slot_reset,
diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c
index 37ebc42..84510db 100644 index 970e833..84510db 100644
--- a/drivers/media/pci/ngene/ngene-core.c --- a/drivers/media/pci/ngene/ngene-core.c
+++ b/drivers/media/pci/ngene/ngene-core.c +++ b/drivers/media/pci/ngene/ngene-core.c
@@ -86,6 +86,14 @@ static void event_tasklet(unsigned long data) @@ -86,6 +86,14 @@ static void event_tasklet(unsigned long data)
@ -25233,7 +25280,24 @@ index 37ebc42..84510db 100644
fail: fail:
ngwritel(0, NGENE_INT_ENABLE); ngwritel(0, NGENE_INT_ENABLE);
free_irq(dev->pci_dev->irq, dev); free_irq(dev->pci_dev->irq, dev);
@@ -1688,10 +2022,36 @@ int ngene_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) @@ -1622,7 +1956,7 @@ static void ngene_unlink(struct ngene *dev)
void ngene_shutdown(struct pci_dev *pdev)
{
- struct ngene *dev = pci_get_drvdata(pdev);
+ struct ngene *dev = (struct ngene *)pci_get_drvdata(pdev);
if (!dev || !shutdown_workaround)
return;
@@ -1648,6 +1982,7 @@ void ngene_remove(struct pci_dev *pdev)
cxd_detach(dev);
ngene_stop(dev);
ngene_release_buffers(dev);
+ pci_set_drvdata(pdev, NULL);
pci_disable_device(pdev);
}
@@ -1687,10 +2022,36 @@ int ngene_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
dev->i2c_current_bus = -1; dev->i2c_current_bus = -1;
@ -25272,6 +25336,13 @@ index 37ebc42..84510db 100644
goto fail2; goto fail2;
return 0; return 0;
@@ -1701,5 +2062,6 @@ fail1:
ngene_release_buffers(dev);
fail0:
pci_disable_device(pci_dev);
+ pci_set_drvdata(pci_dev, NULL);
return stat;
}
diff --git a/drivers/media/pci/ngene/ngene-dvb.c b/drivers/media/pci/ngene/ngene-dvb.c diff --git a/drivers/media/pci/ngene/ngene-dvb.c b/drivers/media/pci/ngene/ngene-dvb.c
index fcb16a6..8049e2b 100644 index fcb16a6..8049e2b 100644
--- a/drivers/media/pci/ngene/ngene-dvb.c --- a/drivers/media/pci/ngene/ngene-dvb.c
@ -26294,5 +26365,5 @@ index 0000000..691c65d
+ +
+#endif /*_UAPI_DVBNS_H_*/ +#endif /*_UAPI_DVBNS_H_*/
-- --
1.7.2.5 1.8.3.2

View File

@ -0,0 +1,16 @@
diff --git a/kernel/nv-acpi.c b/kernel/nv-acpi.c
index b0138cd..756f330 100644
--- a/kernel/nv-acpi.c
+++ b/kernel/nv-acpi.c
@@ -303,8 +303,11 @@ static int nv_acpi_remove(struct acpi_device *device, int type)
if (pNvAcpiObject->notify_handler_installed)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+/* beginning with 3.13, acpi_remove_notify_handler() waits for events to finish */
NV_ACPI_OS_WAIT_EVENTS_COMPLETE();
+#endif
// remove event notifier
status = acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, nv_acpi_event);
}

View File

@ -74,6 +74,9 @@ fi
printf "%${BUILD_INDENT}c ${boldcyan}UNPACK${endcolor} $1\n" ' '>&$SILENT_OUT printf "%${BUILD_INDENT}c ${boldcyan}UNPACK${endcolor} $1\n" ' '>&$SILENT_OUT
export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE))
# todo: deprecated
[ -f "$PKG_DIR/unpack" ] && $PKG_DIR/unpack $@ >&$VERBOSE_OUT
if [ -n "$PKG_URL" ]; then if [ -n "$PKG_URL" ]; then
$SCRIPTS/extract $1 "$1*.tar.bz2" $BUILD $SCRIPTS/extract $1 "$1*.tar.bz2" $BUILD
$SCRIPTS/extract $1 "$1*.tbz" $BUILD $SCRIPTS/extract $1 "$1*.tbz" $BUILD
@ -103,7 +106,7 @@ for i in $PKG_DIR/patches/$PKG_NAME-*.patch ; do
continue; continue;
else else
printf "%${BUILD_INDENT}c ${boldgreen}APPLY PATCH${endcolor} ${boldwhite}(common)${endcolor} $i\n" ' '>&$SILENT_OUT printf "%${BUILD_INDENT}c ${boldgreen}APPLY PATCH${endcolor} ${boldwhite}(common)${endcolor} $i\n" ' '>&$SILENT_OUT
cat $i | patch -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT apply_patch $i $PKG_BUILD || exit 1
fi fi
fi fi
done done
@ -117,7 +120,7 @@ for i in $PKG_DIR/patches/$PKG_VERSION/*.patch ; do
continue; continue;
else else
printf "%${BUILD_INDENT}c ${boldgreen}APPLY PATCH${endcolor} ${boldwhite}($PKG_VERSION)${endcolor} $i\n" ' '>&$SILENT_OUT printf "%${BUILD_INDENT}c ${boldgreen}APPLY PATCH${endcolor} ${boldwhite}($PKG_VERSION)${endcolor} $i\n" ' '>&$SILENT_OUT
cat $i | patch -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT apply_patch $i $PKG_BUILD || exit 1
fi fi
fi fi
done done
@ -131,7 +134,7 @@ for i in $PROJECT_DIR/$PROJECT/patches/$PKG_NAME/*.patch ; do
continue; continue;
else else
printf "%${BUILD_INDENT}c ${boldgreen}APPLY PATCH${endcolor} ${boldwhite}(project)${endcolor} $i\n" ' '>&$SILENT_OUT printf "%${BUILD_INDENT}c ${boldgreen}APPLY PATCH${endcolor} ${boldwhite}(project)${endcolor} $i\n" ' '>&$SILENT_OUT
cat $i | patch -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT apply_patch $i $PKG_BUILD || exit 1
fi fi
fi fi
done done
@ -151,9 +154,6 @@ if [ -f $PKG_DIR/package.mk ]; then
fi fi
fi fi
# todo: deprecated
[ -f "$PKG_DIR/unpack" ] && $PKG_DIR/unpack $@ >&$VERBOSE_OUT
for config in `find $BUILD/$1* -name config.guess | sed 's/config.guess//'`; do for config in `find $BUILD/$1* -name config.guess | sed 's/config.guess//'`; do
printf "%${BUILD_INDENT}c ${boldyellow}FIXCONFIG${endcolor} $config\n" ' '>&$SILENT_OUT printf "%${BUILD_INDENT}c ${boldyellow}FIXCONFIG${endcolor} $config\n" ' '>&$SILENT_OUT