From 05867ee1fbca3e470b236bd7bd0e38385cea1d32 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 11 Apr 2012 15:26:34 -0700 Subject: [PATCH] 3.3-stable patches added patches: asoc-ak4642-fixup-mute-needs-1-step.patch asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch cred-copy_process-should-clear-child-replacement_session_keyring.patch media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch --- .../asoc-ak4642-fixup-mute-needs-1-step.patch | 32 +++++++++ ...i2s-compilation-when-config_debug_fs.patch | 32 +++++++++ ...ar-child-replacement_session_keyring.patch | 41 ++++++++++++ ...vb-core-fix-dvbfe_algo_hw-retune-bug.patch | 65 ++++++++++++++++++ ...on-fix-userspace-abi-broken-for-xine.patch | 67 +++++++++++++++++++ queue-3.3/series | 5 ++ 6 files changed, 242 insertions(+) create mode 100644 queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch create mode 100644 queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch create mode 100644 queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch create mode 100644 queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch create mode 100644 queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch diff --git a/queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch b/queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch new file mode 100644 index 00000000000..6a2f8efde58 --- /dev/null +++ b/queue-3.3/asoc-ak4642-fixup-mute-needs-1-step.patch @@ -0,0 +1,32 @@ +From 1f99e44cf059d2ed43c5a0724fa738b83800f725 Mon Sep 17 00:00:00 2001 +From: Kuninori Morimoto +Date: Wed, 4 Apr 2012 23:28:01 -0700 +Subject: ASoC: ak4642: fixup: mute needs +1 step + +From: Kuninori Morimoto + +commit 1f99e44cf059d2ed43c5a0724fa738b83800f725 upstream. + +ak4642 out_tlv is +12.0dB to -115.0 dB, and it supports mute. +But current settings didn't care +1 step for mute. +This patch adds it + +Signed-off-by: Kuninori Morimoto +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/ak4642.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/soc/codecs/ak4642.c ++++ b/sound/soc/codecs/ak4642.c +@@ -140,7 +140,7 @@ + * min : 0xFE : -115.0 dB + * mute: 0xFF + */ +-static const DECLARE_TLV_DB_SCALE(out_tlv, -11500, 50, 1); ++static const DECLARE_TLV_DB_SCALE(out_tlv, -11550, 50, 1); + + static const struct snd_kcontrol_new ak4642_snd_controls[] = { + diff --git a/queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch b/queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch new file mode 100644 index 00000000000..4166d17070f --- /dev/null +++ b/queue-3.3/asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch @@ -0,0 +1,32 @@ +From 8abe05c6eb358967f16bce8a02c88d57c82cfbd6 Mon Sep 17 00:00:00 2001 +From: Stephen Warren +Date: Thu, 5 Apr 2012 23:11:16 -0600 +Subject: ASoC: tegra: fix i2s compilation when !CONFIG_DEBUG_FS + +From: Stephen Warren + +commit 8abe05c6eb358967f16bce8a02c88d57c82cfbd6 upstream. + +Commit d4a2eca "ASoC: Tegra I2S: Remove dependency on pdev->id" changed +the prototype of tegra_i2s_debug_add, but didn't update the dummy inline +used when !CONFIG_DEBUG_FS. Fix that. + +Signed-off-by: Stephen Warren +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/tegra/tegra_i2s.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/soc/tegra/tegra_i2s.c ++++ b/sound/soc/tegra/tegra_i2s.c +@@ -112,7 +112,7 @@ static void tegra_i2s_debug_remove(struc + debugfs_remove(i2s->debug); + } + #else +-static inline void tegra_i2s_debug_add(struct tegra_i2s *i2s, int id) ++static inline void tegra_i2s_debug_add(struct tegra_i2s *i2s) + { + } + diff --git a/queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch b/queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch new file mode 100644 index 00000000000..3e02e1cd6ba --- /dev/null +++ b/queue-3.3/cred-copy_process-should-clear-child-replacement_session_keyring.patch @@ -0,0 +1,41 @@ +From 79549c6dfda0603dba9a70a53467ce62d9335c33 Mon Sep 17 00:00:00 2001 +From: Oleg Nesterov +Date: Mon, 9 Apr 2012 21:03:50 +0200 +Subject: cred: copy_process() should clear child->replacement_session_keyring + +From: Oleg Nesterov + +commit 79549c6dfda0603dba9a70a53467ce62d9335c33 upstream. + +keyctl_session_to_parent(task) sets ->replacement_session_keyring, +it should be processed and cleared by key_replace_session_keyring(). + +However, this task can fork before it notices TIF_NOTIFY_RESUME and +the new child gets the bogus ->replacement_session_keyring copied by +dup_task_struct(). This is obviously wrong and, if nothing else, this +leads to put_cred(already_freed_cred). + +change copy_creds() to clear this member. If copy_process() fails +before this point the wrong ->replacement_session_keyring doesn't +matter, exit_creds() won't be called. + +Signed-off-by: Oleg Nesterov +Acked-by: David Howells +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/cred.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/kernel/cred.c ++++ b/kernel/cred.c +@@ -385,6 +385,8 @@ int copy_creds(struct task_struct *p, un + struct cred *new; + int ret; + ++ p->replacement_session_keyring = NULL; ++ + if ( + #ifdef CONFIG_KEYS + !p->cred->thread_keyring && diff --git a/queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch b/queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch new file mode 100644 index 00000000000..5f5ec6127e3 --- /dev/null +++ b/queue-3.3/media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch @@ -0,0 +1,65 @@ +From 45145b67f5895ff92207cffd74e65460a87920b2 Mon Sep 17 00:00:00 2001 +From: Simon Arlott +Date: Mon, 6 Feb 2012 17:57:01 -0300 +Subject: media: dvb-core: fix DVBFE_ALGO_HW retune bug + +From: Simon Arlott + +commit 45145b67f5895ff92207cffd74e65460a87920b2 upstream. + +Commit 7e07222 breaks DVBFE_ALGO_HW tuning after a retune is requested, +which causes bad tuning on my TBS 6920. + +[ 0.769091] pci 0000:06:00.0: [14f1:8852] type 0 class 0x000400 +[ 19.733530] CORE cx23885[0]: subsystem: 6920:8888, board: TurboSight TBS 6920 [card=14,autodetected] +[ 762.824912] cx24116_load_firmware: FW version 1.23.86.1 + +7e0722215a510921cbb73ab4c37477d4dcb91bf8 [media] dvb-core: Don't pass DVBv3 parameters on tune() fops + +Although re_tune is set to true when FESTATE_RETUNE occurs, it is never +set back to false which the old code used to do when !FESTATE_RETUNE. + +This patch sets re_tune to false if !(state & FESTATE_RETUNE). + +$ szap-s2 -a 2 "Channel 5" +reading channels from file '/home/simon/.szap/channels.conf' +zapping to 247 'Channel 5': +delivery DVB-S, modulation QPSK +sat 0, frequency 10964 MHz H, symbolrate 22000000, coderate 5/6, rolloff 0.35 +vpid 0x092a, apid 0x092b, sid 0x092d +using '/dev/dvb/adapter2/frontend0' and '/dev/dvb/adapter2/demux0' +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eb33 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cf40 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cec0 | snr eccd | ber 00000000 | unc 00000000 | FE_HAS_LOCK +status 1f | signal cec0 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK + +Signed-off-by: Simon Arlott +Signed-off-by: Mauro Carvalho Chehab + +--- + drivers/media/dvb/dvb-core/dvb_frontend.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/media/dvb/dvb-core/dvb_frontend.c ++++ b/drivers/media/dvb/dvb-core/dvb_frontend.c +@@ -657,6 +657,8 @@ restart: + dprintk("%s: Retune requested, FESTATE_RETUNE\n", __func__); + re_tune = true; + fepriv->state = FESTATE_TUNED; ++ } else { ++ re_tune = false; + } + + if (fe->ops.tune) diff --git a/queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch b/queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch new file mode 100644 index 00000000000..433f8c4ce61 --- /dev/null +++ b/queue-3.3/media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch @@ -0,0 +1,67 @@ +From 556a0442e08a8bc8541587a349cbf26ed14ec6de Mon Sep 17 00:00:00 2001 +From: Chris Rankin +Date: Fri, 6 Apr 2012 18:38:18 -0300 +Subject: media: dvb_frontend: regression fix: userspace ABI broken for xine + +From: Chris Rankin + +commit 556a0442e08a8bc8541587a349cbf26ed14ec6de upstream. + +The commit e399ce77e6e has broken the DVB ABI for xine: + +The problem is that xine is expecting every event after a successful +FE_SET_FRONTEND ioctl to have a non-zero frequency parameter, regardless +of whether the tuning process has LOCKed yet. What used to happen is +that the events inherited the initial tuning parameters from the +FE_SET_FRONTEND call. However, the fepriv->parameters_out struct is now +not initialised until the status contains the FE_HAS_LOCK bit. + +You might argue that this behaviour is intentional, except that if an +application other than xine uses the DVB adapter and manages to set the +parameters_out.frequency field to something other than zero, then xine +no longer has any problems until either the adapter is replugged or the +kernel modules reloaded. This can only mean that the +fepriv->parameters_out struct still contains the (stale) tuning +information from the previous application. + +Signed-off-by: Chris Rankin +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/dvb/dvb-core/dvb_frontend.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/drivers/media/dvb/dvb-core/dvb_frontend.c ++++ b/drivers/media/dvb/dvb-core/dvb_frontend.c +@@ -143,6 +143,8 @@ struct dvb_frontend_private { + static void dvb_frontend_wakeup(struct dvb_frontend *fe); + static int dtv_get_frontend(struct dvb_frontend *fe, + struct dvb_frontend_parameters *p_out); ++static int dtv_property_legacy_params_sync(struct dvb_frontend *fe, ++ struct dvb_frontend_parameters *p); + + static bool has_get_frontend(struct dvb_frontend *fe) + { +@@ -695,6 +697,7 @@ restart: + fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; + fepriv->delay = HZ / 2; + } ++ dtv_property_legacy_params_sync(fe, &fepriv->parameters_out); + fe->ops.read_status(fe, &s); + if (s != fepriv->status) { + dvb_frontend_add_event(fe, s); /* update event list */ +@@ -1831,6 +1834,13 @@ static int dtv_set_frontend(struct dvb_f + return -EINVAL; + + /* ++ * Initialize output parameters to match the values given by ++ * the user. FE_SET_FRONTEND triggers an initial frontend event ++ * with status = 0, which copies output parameters to userspace. ++ */ ++ dtv_property_legacy_params_sync(fe, &fepriv->parameters_out); ++ ++ /* + * Be sure that the bandwidth will be filled for all + * non-satellite systems, as tuners need to know what + * low pass/Nyquist half filter should be applied, in diff --git a/queue-3.3/series b/queue-3.3/series index 9665383ead1..257e85e522d 100644 --- a/queue-3.3/series +++ b/queue-3.3/series @@ -71,3 +71,8 @@ mfd-clear-twl6030-irq-status-register-only-once.patch usb-add-motorola-rokr-e6-id-to-the-usbnet-driver-zaurus.patch ioat-fix-size-of-completion-for-xen.patch uvcvideo-fix-race-related-crash-in-uvc_video_clock_update.patch +asoc-ak4642-fixup-mute-needs-1-step.patch +asoc-tegra-fix-i2s-compilation-when-config_debug_fs.patch +media-dvb_frontend-regression-fix-userspace-abi-broken-for-xine.patch +media-dvb-core-fix-dvbfe_algo_hw-retune-bug.patch +cred-copy_process-should-clear-child-replacement_session_keyring.patch -- 2.47.3