From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Olivier Grenie <olivier.grenie@dibcom.fr>,
Patrick Boettcher <patrick.boettcher@dibcom.fr>,
Mauro Carvalho Chehab <mchehab@redhat.com>
Subject: [patch 29/29] [media] DiB7000M: add pid filtering
Date: Thu, 10 Mar 2011 15:54:35 -0800 [thread overview]
Message-ID: <20110310235538.934707753@clark.kroah.org> (raw)
In-Reply-To: <20110310235548.GA10103@kroah.com>
2.6.37-stable review patch. If anyone has any objections, please let us know.
------------------
From: Olivier Grenie <olivier.grenie@dibcom.fr>
commit e192a7cf0effe7680264a5bc35c0ad1bdcdc921c upstream.
This patch adds the pid filtering for the dib7000M demod. It also
corrects the pid filtering for the dib7700 based board. It should
prevent an oops, when using dib7700p based board.
References: https://bugzilla.novell.com/show_bug.cgi?id=644807
Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Tested-by: Pavel SKARKA <paul.sp@seznam.cz>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/media/dvb/dvb-usb/dib0700_devices.c | 21 +++++++++++++++++++--
drivers/media/dvb/frontends/dib7000m.c | 19 +++++++++++++++++++
drivers/media/dvb/frontends/dib7000m.h | 15 +++++++++++++++
3 files changed, 53 insertions(+), 2 deletions(-)
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -870,6 +870,23 @@ static int dib7070p_tuner_attach(struct
return 0;
}
+static int stk7700p_pid_filter(struct dvb_usb_adapter *adapter, int index,
+ u16 pid, int onoff)
+{
+ struct dib0700_state *st = adapter->dev->priv;
+ if (st->is_dib7000pc)
+ return dib7000p_pid_filter(adapter->fe, index, pid, onoff);
+ return dib7000m_pid_filter(adapter->fe, index, pid, onoff);
+}
+
+static int stk7700p_pid_filter_ctrl(struct dvb_usb_adapter *adapter, int onoff)
+{
+ struct dib0700_state *st = adapter->dev->priv;
+ if (st->is_dib7000pc)
+ return dib7000p_pid_filter_ctrl(adapter->fe, onoff);
+ return dib7000m_pid_filter_ctrl(adapter->fe, onoff);
+}
+
static int stk70x0p_pid_filter(struct dvb_usb_adapter *adapter, int index, u16 pid, int onoff)
{
return dib7000p_pid_filter(adapter->fe, index, pid, onoff);
@@ -1875,8 +1892,8 @@ struct dvb_usb_device_properties dib0700
{
.caps = DVB_USB_ADAP_HAS_PID_FILTER | DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
.pid_filter_count = 32,
- .pid_filter = stk70x0p_pid_filter,
- .pid_filter_ctrl = stk70x0p_pid_filter_ctrl,
+ .pid_filter = stk7700p_pid_filter,
+ .pid_filter_ctrl = stk7700p_pid_filter_ctrl,
.frontend_attach = stk7700p_frontend_attach,
.tuner_attach = stk7700p_tuner_attach,
--- a/drivers/media/dvb/frontends/dib7000m.c
+++ b/drivers/media/dvb/frontends/dib7000m.c
@@ -1285,6 +1285,25 @@ struct i2c_adapter * dib7000m_get_i2c_ma
}
EXPORT_SYMBOL(dib7000m_get_i2c_master);
+int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
+{
+ struct dib7000m_state *state = fe->demodulator_priv;
+ u16 val = dib7000m_read_word(state, 294 + state->reg_offs) & 0xffef;
+ val |= (onoff & 0x1) << 4;
+ dprintk("PID filter enabled %d", onoff);
+ return dib7000m_write_word(state, 294 + state->reg_offs, val);
+}
+EXPORT_SYMBOL(dib7000m_pid_filter_ctrl);
+
+int dib7000m_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
+{
+ struct dib7000m_state *state = fe->demodulator_priv;
+ dprintk("PID filter: index %x, PID %d, OnOff %d", id, pid, onoff);
+ return dib7000m_write_word(state, 300 + state->reg_offs + id,
+ onoff ? (1 << 13) | pid : 0);
+}
+EXPORT_SYMBOL(dib7000m_pid_filter);
+
#if 0
/* used with some prototype boards */
int dib7000m_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods,
--- a/drivers/media/dvb/frontends/dib7000m.h
+++ b/drivers/media/dvb/frontends/dib7000m.h
@@ -46,6 +46,8 @@ extern struct dvb_frontend *dib7000m_att
extern struct i2c_adapter *dib7000m_get_i2c_master(struct dvb_frontend *,
enum dibx000_i2c_interface,
int);
+extern int dib7000m_pid_filter(struct dvb_frontend *, u8 id, u16 pid, u8 onoff);
+extern int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff);
#else
static inline
struct dvb_frontend *dib7000m_attach(struct i2c_adapter *i2c_adap,
@@ -63,6 +65,19 @@ struct i2c_adapter *dib7000m_get_i2c_mas
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
return NULL;
}
+static inline int dib7000m_pid_filter(struct dvb_frontend *fe, u8 id,
+ u16 pid, u8 onoff)
+{
+ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
+ return -ENODEV;
+}
+
+static inline int dib7000m_pid_filter_ctrl(struct dvb_frontend *fe,
+ uint8_t onoff)
+{
+ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
+ return -ENODEV;
+}
#endif
/* TODO
next prev parent reply other threads:[~2011-03-10 23:57 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-10 23:55 [patch 00/29] 2.6.37.4-stable review Greg KH
2011-03-10 23:54 ` [patch 01/29] cpuset: add a missing unlock in cpuset_write_resmask() Greg KH
2011-03-10 23:54 ` [patch 02/29] virtio: console: Dont access vqs if device was unplugged Greg KH
2011-03-10 23:54 ` [patch 03/29] [S390] keyboard: integer underflow bug Greg KH
2011-03-10 23:54 ` [patch 04/29] ASoC: Fix WM9081 platform data initialisation Greg KH
2011-03-10 23:54 ` [patch 05/29] ALSA: HDA: Realtek: Fixup jack detection to input subsystem Greg KH
2011-03-10 23:54 ` [patch 06/29] ALSA: hda - Dont set to D3 in Cirrus errata init verbs Greg KH
2011-03-10 23:54 ` [patch 07/29] drivers/misc/bmp085.c: add MODULE_DEVICE_TABLE Greg KH
2011-03-10 23:54 ` [patch 08/29] nfs4: Ensure that ACL pages sent over NFS were not allocated from the slab (v3) Greg KH
2011-03-10 23:54 ` [patch 09/29] RxRPC: Fix v1 keys Greg KH
2011-03-10 23:54 ` [patch 10/29] ath9k: Fix ath9k prevents CPU to enter C3 states Greg KH
2011-03-10 23:54 ` [patch 11/29] ixgbe: fix for 82599 erratum on Header Splitting Greg KH
2011-03-10 23:54 ` [patch 12/29] mm: fix possible cause of a page_mapped BUG Greg KH
2011-03-10 23:54 ` [patch 13/29] netfilter: nf_log: avoid oops in (un)bind with invalid nfproto values Greg KH
2011-03-10 23:54 ` [patch 14/29] [CPUFREQ] pcc-cpufreq: dont load driver if get_freq fails during init Greg KH
2011-03-10 23:54 ` [patch 15/29] nfsd: wrong index used in inner loop Greg KH
2011-03-10 23:54 ` [patch 16/29] HID: hid-mosart: ignore buttons report Greg KH
2011-03-10 23:54 ` [patch 17/29] NFS: NFSv4 readdir loses entries Greg KH
2011-03-10 23:54 ` [patch 18/29] ipvs: fix dst_lock locking on dest update Greg KH
2011-03-10 23:54 ` [patch 19/29] net: dont allow CAP_NET_ADMIN to load non-netdev kernel modules Greg KH
2011-03-10 23:54 ` [patch 20/29] netfilter: arpt_mangle: fix return values of checkentry Greg KH
2011-03-10 23:54 ` [patch 21/29] r8169: use RxFIFO overflow workaround for 8168c chipset Greg KH
2011-03-10 23:54 ` [patch 22/29] r8169: RxFIFO overflow oddities with 8168 chipsets Greg KH
2011-03-10 23:54 ` [patch 23/29] r8169: prevent RxFIFO induced loops in the irq handler Greg KH
2011-03-10 23:54 ` [patch 24/29] drivers/net: Call netif_carrier_off at the end of the probe Greg KH
2011-03-10 23:54 ` [patch 25/29] sched: Fix sched rt group scheduling when hierachy is enabled Greg KH
2011-03-10 23:54 ` [patch 26/29] [media] ivtv: Fix corrective action taken upon DMA ERR interrupt to avoid hang Greg KH
2011-03-10 23:54 ` [patch 27/29] [media] cx23885: Revert "Check for slave nack on all transactions" Greg KH
2011-03-10 23:54 ` [patch 28/29] [media] cx25840: fix probing of cx2583x chips Greg KH
2011-03-10 23:54 ` Greg KH [this message]
2011-03-11 15:02 ` [patch 00/29] 2.6.37.4-stable review Stefan Lippers-Hollmann
2011-03-11 15:46 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110310235538.934707753@clark.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab@redhat.com \
--cc=olivier.grenie@dibcom.fr \
--cc=patrick.boettcher@dibcom.fr \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®