From ccf507d91a680c1fb61fa39fb853dd2553421c46 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 29 Mar 2010 15:56:48 -0700 Subject: [PATCH] .32 patches --- ...rk-for-another-acer-model-0x1025007f.patch | 33 +++++++ ...beacon-only-if-the-sta-is-associated.patch | 36 +++++++ ...tim-timer-interrupt-only-when-needed.patch | 95 +++++++++++++++++++ queue-2.6.32/series | 3 + 4 files changed, 167 insertions(+) create mode 100644 queue-2.6.32/alsa-hda-use-alc260_will-quirk-for-another-acer-model-0x1025007f.patch create mode 100644 queue-2.6.32/ath9k-configure-the-beacon-only-if-the-sta-is-associated.patch create mode 100644 queue-2.6.32/ath9k-enable-tim-timer-interrupt-only-when-needed.patch diff --git a/queue-2.6.32/alsa-hda-use-alc260_will-quirk-for-another-acer-model-0x1025007f.patch b/queue-2.6.32/alsa-hda-use-alc260_will-quirk-for-another-acer-model-0x1025007f.patch new file mode 100644 index 00000000000..21482c8540c --- /dev/null +++ b/queue-2.6.32/alsa-hda-use-alc260_will-quirk-for-another-acer-model-0x1025007f.patch @@ -0,0 +1,33 @@ +From 950200e2ff11daae1c5d9426703bdd494603f38b Mon Sep 17 00:00:00 2001 +From: Daniel T Chen +Date: Sun, 13 Dec 2009 14:11:02 -0500 +Subject: ALSA: hda: Use ALC260_WILL quirk for another Acer model (0x1025007f) + +From: Daniel T Chen + +commit 950200e2ff11daae1c5d9426703bdd494603f38b upstream. + +BugLink: https://bugs.launchpad.net/bugs/418627 + +The original reporter states that this quirk is necessary to obtain +reasonable gain for playback. Without it, sound is inaudible. Tested +with playback (spkr and hp) and capture. + +Signed-off-by: Daniel T Chen +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -6252,6 +6252,7 @@ static const char *alc260_models[ALC260_ + + static struct snd_pci_quirk alc260_cfg_tbl[] = { + SND_PCI_QUIRK(0x1025, 0x007b, "Acer C20x", ALC260_ACER), ++ SND_PCI_QUIRK(0x1025, 0x007f, "Acer", ALC260_WILL), + SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_ACER), + SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FAVORIT100), + SND_PCI_QUIRK(0x103c, 0x2808, "HP d5700", ALC260_HP_3013), diff --git a/queue-2.6.32/ath9k-configure-the-beacon-only-if-the-sta-is-associated.patch b/queue-2.6.32/ath9k-configure-the-beacon-only-if-the-sta-is-associated.patch new file mode 100644 index 00000000000..637a6de971d --- /dev/null +++ b/queue-2.6.32/ath9k-configure-the-beacon-only-if-the-sta-is-associated.patch @@ -0,0 +1,36 @@ +From ec3a9974892956aec86a4065bf6e48bc2cd92d04 Mon Sep 17 00:00:00 2001 +From: Senthil Balasubramanian +Date: Wed, 3 Feb 2010 22:50:18 +0530 +Subject: ath9k: configure the beacon only if the STA is associated + +From: Senthil Balasubramanian + +commit 1a20034a73a40b8056731f9db0c535cec2961eb7 upstream. + +beacons configuration SHOULD be done only if the STA is associated. + +Signed-off-by: Senthil Balasubramanian +Signed-off-by: John W. Linville +Signed-off-by: Luis R. Rodriguez +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/beacon.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/net/wireless/ath/ath9k/beacon.c ++++ b/drivers/net/wireless/ath/ath9k/beacon.c +@@ -559,6 +559,13 @@ static void ath_beacon_config_sta(struct + u64 tsf; + int num_beacons, offset, dtim_dec_count, cfp_dec_count; + ++ /* No need to configure beacon if we are not associated */ ++ if (!common->curaid) { ++ ath_print(common, ATH_DBG_BEACON, ++ "STA is not yet associated..skipping beacon config\n"); ++ return; ++ } ++ + memset(&bs, 0, sizeof(bs)); + intval = conf->beacon_interval & ATH9K_BEACON_PERIOD; + diff --git a/queue-2.6.32/ath9k-enable-tim-timer-interrupt-only-when-needed.patch b/queue-2.6.32/ath9k-enable-tim-timer-interrupt-only-when-needed.patch new file mode 100644 index 00000000000..252afb23ad2 --- /dev/null +++ b/queue-2.6.32/ath9k-enable-tim-timer-interrupt-only-when-needed.patch @@ -0,0 +1,95 @@ +From e74a0bf39351c2c21c2d80e5af86e5b358c00d1d Mon Sep 17 00:00:00 2001 +From: Senthil Balasubramanian +Date: Thu, 11 Mar 2010 11:50:54 -0800 +Subject: ath9k: Enable TIM timer interrupt only when needed. + +From: Senthil Balasubramanian + +commit 3f7c5c10e9dc6bf90179eb9f7c06151d508fb324 upstream. + +The TIM timer interrupt is enabled even before the ACK of nullqos +is received which is unnecessary. + +Also clean up the CONF_PS part of config callback properly for +better readability. + +Signed-off-by: Senthil Balasubramanian +Signed-off-by: John W. Linville +Signed-off-by: Luis R. Rodriguez +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/ath/ath9k/ath9k.h | 1 + + drivers/net/wireless/ath/ath9k/main.c | 25 ++++++++++++++----------- + drivers/net/wireless/ath/ath9k/xmit.c | 7 +++---- + 3 files changed, 18 insertions(+), 15 deletions(-) + +--- a/drivers/net/wireless/ath/ath9k/ath9k.h ++++ b/drivers/net/wireless/ath/ath9k/ath9k.h +@@ -368,6 +368,7 @@ void ath_tx_aggr_start(struct ath_softc + u16 tid, u16 *ssn); + void ath_tx_aggr_stop(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid); + void ath_tx_aggr_resume(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid); ++void ath9k_enable_ps(struct ath_softc *sc); + + /********/ + /* VIFs */ +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -2305,6 +2305,19 @@ static void ath9k_remove_interface(struc + mutex_unlock(&sc->mutex); + } + ++void ath9k_enable_ps(struct ath_softc *sc) ++{ ++ sc->ps_enabled = true; ++ if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) { ++ if ((sc->imask & ATH9K_INT_TIM_TIMER) == 0) { ++ sc->imask |= ATH9K_INT_TIM_TIMER; ++ ath9k_hw_set_interrupts(sc->sc_ah, ++ sc->imask); ++ } ++ } ++ ath9k_hw_setrxabort(sc->sc_ah, 1); ++} ++ + static int ath9k_config(struct ieee80211_hw *hw, u32 changed) + { + struct ath_wiphy *aphy = hw->priv; +@@ -2336,19 +2349,9 @@ static int ath9k_config(struct ieee80211 + if (changed & IEEE80211_CONF_CHANGE_PS) { + if (conf->flags & IEEE80211_CONF_PS) { + sc->sc_flags |= SC_OP_PS_ENABLED; +- if (!(ah->caps.hw_caps & +- ATH9K_HW_CAP_AUTOSLEEP)) { +- if ((sc->imask & ATH9K_INT_TIM_TIMER) == 0) { +- sc->imask |= ATH9K_INT_TIM_TIMER; +- ath9k_hw_set_interrupts(sc->sc_ah, +- sc->imask); +- } +- } +- sc->ps_enabled = true; + if ((sc->sc_flags & SC_OP_NULLFUNC_COMPLETED)) { + sc->sc_flags &= ~SC_OP_NULLFUNC_COMPLETED; +- sc->ps_enabled = true; +- ath9k_hw_setrxabort(sc->sc_ah, 1); ++ ath9k_enable_ps(sc); + } + } else { + sc->ps_enabled = false; +--- a/drivers/net/wireless/ath/ath9k/xmit.c ++++ b/drivers/net/wireless/ath/ath9k/xmit.c +@@ -1979,10 +1979,9 @@ static void ath_tx_processq(struct ath_s + + if (bf->bf_isnullfunc && + (ds->ds_txstat.ts_status & ATH9K_TX_ACKED)) { +- if ((sc->sc_flags & SC_OP_PS_ENABLED)) { +- sc->ps_enabled = true; +- ath9k_hw_setrxabort(sc->sc_ah, 1); +- } else ++ if ((sc->sc_flags & SC_OP_PS_ENABLED)) ++ ath9k_enable_ps(sc); ++ else + sc->sc_flags |= SC_OP_NULLFUNC_COMPLETED; + } + diff --git a/queue-2.6.32/series b/queue-2.6.32/series index 7ebad0b7c03..1207f2789cc 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -98,3 +98,6 @@ hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch +alsa-hda-use-alc260_will-quirk-for-another-acer-model-0x1025007f.patch +ath9k-enable-tim-timer-interrupt-only-when-needed.patch +ath9k-configure-the-beacon-only-if-the-sta-is-associated.patch -- 2.47.3