rpms/kernel/F-12 linux-2.6-ath9k-fixes.patch, NONE, 1.1 kernel.spec, 1.1945, 1.1946
John W. Linville
linville at fedoraproject.org
Wed Dec 2 20:51:22 UTC 2009
- Previous message: rpms/kipi-plugins/devel .cvsignore, 1.33, 1.34 kipi-plugins.spec, 1.106, 1.107 sources, 1.33, 1.34
- Next message: rpms/gupnp-vala/F-12 .cvsignore, 1.4, 1.5 gupnp-vala.spec, 1.9, 1.10 sources, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: linville
Update of /cvs/pkgs/rpms/kernel/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24856
Modified Files:
kernel.spec
Added Files:
linux-2.6-ath9k-fixes.patch
Log Message:
ath9k: add fixes suggested by upstream maintainer
linux-2.6-ath9k-fixes.patch:
ath9k.h | 3 +++
hw.c | 11 ++++++++++-
hw.h | 1 +
mac.c | 38 ++++++++++++++++++++++++++++++++++++--
mac.h | 14 +++++++++++++-
main.c | 18 +++++++++++++++++-
rc.c | 12 ++++++++----
reg.h | 15 ++++++++++++---
xmit.c | 26 +++++++++++++++++++++++++-
9 files changed, 125 insertions(+), 13 deletions(-)
--- NEW FILE linux-2.6-ath9k-fixes.patch ---
Backports of the following commits pending for 2.6.33...
commit f4709fdf683e1ed37b321c258b614ebe39752bf3
Author: Luis R. Rodriguez <lrodriguez at atheros.com>
Date: Tue Nov 24 21:37:57 2009 -0500
ath9k: Fix maximum tx fifo settings for single stream devices
Atheros single stream AR9285 and AR9271 have half the PCU TX FIFO
buffer size of that of dual stream devices. Dual stream devices
have a max PCU TX FIFO size of 8 KB while single stream devices
have 4 KB. Single stream devices have an issue though and require
hardware only to use half of the amount of its capable PCU TX FIFO
size, 2 KB and this requires a change in software.
Technically a change would not have been required (except for frame
burst considerations of 128 bytes) if these devices would have been
able to use the full 4 KB of the PCU TX FIFO size but our systems
engineers recommend 2 KB to be used only. We enforce this through
software by reducing the max frame triggger level to 2 KB.
Fixing the max frame trigger level should then have a few benefits:
* The PER will now be adjusted as designed for underruns when the
max trigger level is reached. This should help alleviate the
bus as the rate control algorithm chooses a slower rate which
should ensure frames are transmitted properly under high system
bus load.
* The poll we use on our TX queues should now trigger and work
as designed for single stream devices. The hardware passes
data from each TX queue on the PCU TX FIFO queue respecting each
queue's priority. The new trigger level ensures this seeding of
the PCU TX FIFO queue occurs as designed which could mean avoiding
false resets and actually reseting hw correctly when a TX queue
is indeed stuck.
* Some undocumented / unsupported behaviour could have been triggered
when the max trigger level level was being set to 4 KB on single
stream devices. Its not clear what this issue was to me yet.
Cc: Kyungwan Nam <kyungwan.nam at atheros.com>
Cc: Bennyam Malavazi <bennyam.malavazi at atheros.com>
Cc: Stephen Chen <stephen.chen at atheros.com>
Cc: Shan Palanisamy <shan.palanisamy at atheros.com>
Cc: Paul Shaw <paul.shaw at atheros.com>
Signed-off-by: Vasanthakumar Thiagarajan <vasanth at atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez at atheros.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
commit e7824a50662f7f79b1a739f705b4d906c31cf221
Author: Luis R. Rodriguez <lrodriguez at atheros.com>
Date: Tue Nov 24 02:53:25 2009 -0500
ath9k: fix processing of TX PS null data frames
When mac80211 was telling us to go into Powersave we listened
and immediately turned RX off. This meant hardware would not
see the ACKs from the AP we're associated with and hardware
we'd end up retransmiting the null data frame in a loop
helplessly.
Fix this by keeping track of the transmitted nullfunc frames
and only when we are sure the AP has sent back an ACK do we
go ahead and shut RX off.
Signed-off-by: Vasanthakumar Thiagarajan <vasanth at atheros.com>
Signed-off-by: Vivek Natarajan <Vivek.Natarajan at atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez at atheros.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
commit 332c556633b8c5fb4e890b1783122f2315526590
Author: Sujith <Sujith.Manoharan at atheros.com>
Date: Fri Oct 9 09:51:28 2009 +0530
ath9k: Fix TX hang poll routine
When TX is hung, the chip is reset. Ensure that
the chip is awake by using the PS wrappers.
Signed-off-by: Sujith <Sujith.Manoharan at atheros.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/ath9k.h.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/ath9k.h
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/ath9k.h.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/ath9k.h 2009-12-02 15:24:37.000000000 -0500
@@ -137,6 +137,7 @@ struct ath_buf {
dma_addr_t bf_daddr; /* physical addr of desc */
dma_addr_t bf_buf_addr; /* physical addr of data buffer */
bool bf_stale;
+ bool bf_isnullfunc;
u16 bf_flags;
struct ath_buf_state bf_state;
dma_addr_t bf_dmacontext;
@@ -506,6 +507,8 @@ struct ath_led {
#define SC_OP_WAIT_FOR_PSPOLL_DATA BIT(17)
#define SC_OP_WAIT_FOR_TX_ACK BIT(18)
#define SC_OP_BEACON_SYNC BIT(19)
+#define SC_OP_NULLFUNC_COMPLETED BIT(22)
+#define SC_OP_PS_ENABLED BIT(23)
struct ath_bus_ops {
void (*read_cachesize)(struct ath_softc *sc, int *csz);
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.c.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.c
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.c.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.c 2009-12-02 15:13:27.000000000 -0500
@@ -657,6 +657,11 @@ static struct ath_hw *ath9k_hw_do_attach
DPRINTF(sc, ATH_DBG_RESET, "serialize_regmode is %d\n",
ah->config.serialize_regmode);
+ if (AR_SREV_9285(ah))
+ ah->config.max_txtrig_level = MAX_TX_FIFO_THRESHOLD >> 1;
+ else
+ ah->config.max_txtrig_level = MAX_TX_FIFO_THRESHOLD;
+
if ((ah->hw_version.macVersion != AR_SREV_VERSION_5416_PCI) &&
(ah->hw_version.macVersion != AR_SREV_VERSION_5416_PCIE) &&
(ah->hw_version.macVersion != AR_SREV_VERSION_9160) &&
@@ -3367,7 +3372,11 @@ void ath9k_hw_fill_cap_info(struct ath_h
pCap->keycache_size = AR_KEYTABLE_SIZE;
pCap->hw_caps |= ATH9K_HW_CAP_FASTCC;
- pCap->tx_triglevel_max = MAX_TX_FIFO_THRESHOLD;
+
+ if (AR_SREV_9285(ah))
+ pCap->tx_triglevel_max = MAX_TX_FIFO_THRESHOLD >> 1;
+ else
+ pCap->tx_triglevel_max = MAX_TX_FIFO_THRESHOLD;
if (AR_SREV_9285_10_OR_LATER(ah))
pCap->num_gpio_pins = AR9285_NUM_GPIO;
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.h.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.h
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.h.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/hw.h 2009-12-02 15:08:03.000000000 -0500
@@ -205,6 +205,7 @@ struct ath9k_ops_config {
#define AR_SPUR_FEEQ_BOUND_HT20 10
int spurmode;
u16 spurchans[AR_EEPROM_MODAL_SPURS][2];
+ u8 max_txtrig_level;
};
enum ath9k_int {
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.c.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.c
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.c.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.c 2009-12-02 15:13:56.000000000 -0500
@@ -70,12 +70,37 @@ u32 ath9k_hw_numtxpending(struct ath_hw
return npend;
}
+/**
+ * ath9k_hw_updatetxtriglevel - adjusts the frame trigger level
+ *
+ * @ah: atheros hardware struct
+ * @bIncTrigLevel: whether or not the frame trigger level should be updated
+ *
+ * The frame trigger level specifies the minimum number of bytes,
+ * in units of 64 bytes, that must be DMA'ed into the PCU TX FIFO
+ * before the PCU will initiate sending the frame on the air. This can
+ * mean we initiate transmit before a full frame is on the PCU TX FIFO.
+ * Resets to 0x1 (meaning 64 bytes or a full frame, whichever occurs
+ * first)
+ *
+ * Caution must be taken to ensure to set the frame trigger level based
+ * on the DMA request size. For example if the DMA request size is set to
+ * 128 bytes the trigger level cannot exceed 6 * 64 = 384. This is because
+ * there need to be enough space in the tx FIFO for the requested transfer
+ * size. Hence the tx FIFO will stop with 512 - 128 = 384 bytes. If we set
+ * the threshold to a value beyond 6, then the transmit will hang.
+ *
+ * Current dual stream devices have a PCU TX FIFO size of 8 KB.
+ * Current single stream devices have a PCU TX FIFO size of 4 KB, however,
+ * there is a hardware issue which forces us to use 2 KB instead so the
+ * frame trigger level must not exceed 2 KB for these chipsets.
+ */
bool ath9k_hw_updatetxtriglevel(struct ath_hw *ah, bool bIncTrigLevel)
{
u32 txcfg, curLevel, newLevel;
enum ath9k_int omask;
- if (ah->tx_trig_level >= MAX_TX_FIFO_THRESHOLD)
+ if (ah->tx_trig_level >= ah->config.max_txtrig_level)
return false;
omask = ath9k_hw_set_interrupts(ah, ah->mask_reg & ~ATH9K_INT_GLOBAL);
@@ -84,7 +109,7 @@ bool ath9k_hw_updatetxtriglevel(struct a
curLevel = MS(txcfg, AR_FTRIG);
newLevel = curLevel;
if (bIncTrigLevel) {
- if (curLevel < MAX_TX_FIFO_THRESHOLD)
+ if (curLevel < ah->config.max_txtrig_level)
newLevel++;
} else if (curLevel > MIN_TX_FIFO_THRESHOLD)
newLevel--;
@@ -229,6 +254,8 @@ int ath9k_hw_txprocdesc(struct ath_hw *a
ds->ds_txstat.ts_status = 0;
ds->ds_txstat.ts_flags = 0;
+ if (ads->ds_txstatus1 & AR_FrmXmitOK)
+ ds->ds_txstat.ts_status |= ATH9K_TX_ACKED;
if (ads->ds_txstatus1 & AR_ExcessiveRetries)
ds->ds_txstat.ts_status |= ATH9K_TXERR_XRETRY;
if (ads->ds_txstatus1 & AR_Filtered)
@@ -889,6 +916,13 @@ bool ath9k_hw_setuprxdesc(struct ath_hw
return true;
}
+/*
+ * This can stop or re-enables RX.
+ *
+ * If bool is set this will kill any frame which is currently being
+ * transferred between the MAC and baseband and also prevent any new
+ * frames from getting started.
+ */
bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set)
{
u32 reg;
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.h.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.h
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.h.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/mac.h 2009-12-02 15:13:56.000000000 -0500
@@ -76,6 +76,7 @@
#define ATH9K_TXERR_FIFO 0x04
#define ATH9K_TXERR_XTXOP 0x08
#define ATH9K_TXERR_TIMER_EXPIRED 0x10
+#define ATH9K_TX_ACKED 0x20
#define ATH9K_TX_BA 0x01
#define ATH9K_TX_PWRMGMT 0x02
@@ -85,9 +86,15 @@
#define ATH9K_TX_SW_ABORTED 0x40
#define ATH9K_TX_SW_FILTERED 0x80
+/* 64 bytes */
#define MIN_TX_FIFO_THRESHOLD 0x1
+
+/*
+ * Single stream device AR9285 and AR9271 require 2 KB
+ * to work around a hardware issue, all other devices
+ * have can use the max 4 KB limit.
+ */
#define MAX_TX_FIFO_THRESHOLD ((4096 / 64) - 1)
-#define INIT_TX_FIFO_THRESHOLD MIN_TX_FIFO_THRESHOLD
struct ath_tx_status {
u32 ts_tstamp;
@@ -380,6 +387,11 @@ struct ar5416_desc {
#define AR_TxBaStatus 0x40000000
#define AR_TxStatusRsvd01 0x80000000
+/*
+ * AR_FrmXmitOK - Frame transmission success flag. If set, the frame was
+ * transmitted successfully. If clear, no ACK or BA was received to indicate
+ * successful transmission when we were expecting an ACK or BA.
+ */
#define AR_FrmXmitOK 0x00000001
#define AR_ExcessiveRetries 0x00000002
#define AR_FIFOUnderrun 0x00000004
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/main.c.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/main.c
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/main.c.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/main.c 2009-12-02 15:23:02.000000000 -0500
@@ -2252,8 +2252,15 @@ static int ath9k_config(struct ieee80211
mutex_lock(&sc->mutex);
+ /*
+ * We just prepare to enable PS. We have to wait until our AP has
+ * ACK'd our null data frame to disable RX otherwise we'll ignore
+ * those ACKs and end up retransmitting the same null data frames.
+ * IEEE80211_CONF_CHANGE_PS is only passed by mac80211 for STA mode.
+ */
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) {
@@ -2261,11 +2268,20 @@ static int ath9k_config(struct ieee80211
ath9k_hw_set_interrupts(sc->sc_ah,
sc->imask);
}
+ }
+ /*
+ * At this point we know hardware has received an ACK
+ * of a previously sent null data frame.
+ */
+ if ((sc->sc_flags & SC_OP_NULLFUNC_COMPLETED)) {
+ sc->sc_flags &= ~SC_OP_NULLFUNC_COMPLETED;
+ ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_NETWORK_SLEEP);
ath9k_hw_setrxabort(sc->sc_ah, 1);
}
- ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_NETWORK_SLEEP);
} else {
ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
+ sc->sc_flags &= ~(SC_OP_PS_ENABLED |
+ SC_OP_NULLFUNC_COMPLETED);
if (!(ah->caps.hw_caps &
ATH9K_HW_CAP_AUTOSLEEP)) {
ath9k_hw_setrxabort(sc->sc_ah, 0);
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/rc.c.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/rc.c
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/rc.c.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/rc.c 2009-12-02 15:11:15.000000000 -0500
@@ -1519,10 +1519,14 @@ static void ath_tx_status(void *priv, st
goto exit;
/*
- * If underrun error is seen assume it as an excessive retry only
- * if prefetch trigger level have reached the max (0x3f for 5416)
- * Adjust the long retry as if the frame was tried ATH_11N_TXMAXTRY
- * times. This affects how ratectrl updates PER for the failed rate.
+ * If an underrun error is seen assume it as an excessive retry only
+ * if max frame trigger level has been reached (2 KB for singel stream,
+ * and 4 KB for dual stream). Adjust the long retry as if the frame was
+ * tried hw->max_rate_tries times to affect how ratectrl updates PER for
+ * the failed rate. In case of congestion on the bus penalizing these
+ * type of underruns should help hardware actually transmit new frames
+ * successfully by eventually preferring slower rates. This itself
+ * should also alleviate congestion on the bus.
*/
if (tx_info_priv->tx.ts_flags &
(ATH9K_TX_DATA_UNDERRUN | ATH9K_TX_DELIM_UNDERRUN) &&
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/reg.h.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/reg.h
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/reg.h.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/reg.h 2009-12-02 15:13:56.000000000 -0500
@@ -1216,13 +1216,22 @@ enum {
#define AR_MCAST_FIL0 0x8040
#define AR_MCAST_FIL1 0x8044
+/*
+ * AR_DIAG_SW - Register which can be used for diagnostics and testing purposes.
+ *
+ * The force RX abort (AR_DIAG_RX_ABORT, bit 25) can be used in conjunction with
+ * RX block (AR_DIAG_RX_DIS, bit 5) to help fast channel change to shut down
+ * receive. The force RX abort bit will kill any frame which is currently being
+ * transferred between the MAC and baseband. The RX block bit (AR_DIAG_RX_DIS)
+ * will prevent any new frames from getting started.
+ */
#define AR_DIAG_SW 0x8048
#define AR_DIAG_CACHE_ACK 0x00000001
#define AR_DIAG_ACK_DIS 0x00000002
#define AR_DIAG_CTS_DIS 0x00000004
#define AR_DIAG_ENCRYPT_DIS 0x00000008
#define AR_DIAG_DECRYPT_DIS 0x00000010
-#define AR_DIAG_RX_DIS 0x00000020
+#define AR_DIAG_RX_DIS 0x00000020 /* RX block */
#define AR_DIAG_LOOP_BACK 0x00000040
#define AR_DIAG_CORR_FCS 0x00000080
#define AR_DIAG_CHAN_INFO 0x00000100
@@ -1231,12 +1240,12 @@ enum {
#define AR_DIAG_FRAME_NV0 0x00020000
#define AR_DIAG_OBS_PT_SEL1 0x000C0000
#define AR_DIAG_OBS_PT_SEL1_S 18
-#define AR_DIAG_FORCE_RX_CLEAR 0x00100000
+#define AR_DIAG_FORCE_RX_CLEAR 0x00100000 /* force rx_clear high */
#define AR_DIAG_IGNORE_VIRT_CS 0x00200000
#define AR_DIAG_FORCE_CH_IDLE_HIGH 0x00400000
#define AR_DIAG_EIFS_CTRL_ENA 0x00800000
#define AR_DIAG_DUAL_CHAIN_INFO 0x01000000
-#define AR_DIAG_RX_ABORT 0x02000000
+#define AR_DIAG_RX_ABORT 0x02000000 /* Force RX abort */
#define AR_DIAG_SATURATE_CYCLE_CNT 0x04000000
#define AR_DIAG_OBS_PT_SEL2 0x08000000
#define AR_DIAG_RX_CLEAR_CTL_LOW 0x10000000
diff -up linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/xmit.c.orig linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/xmit.c
--- linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/xmit.c.orig 2009-09-09 18:13:59.000000000 -0400
+++ linux-2.6.31.noarch/drivers/net/wireless/ath/ath9k/xmit.c 2009-12-02 15:29:20.000000000 -0500
@@ -434,8 +434,11 @@ static void ath_tx_complete_aggr(struct
rcu_read_unlock();
- if (needreset)
+ if (needreset) {
+ ath9k_ps_wakeup(sc);
ath_reset(sc, false);
+ ath9k_ps_restore(sc);
+ }
}
static u32 ath_lookup_rate(struct ath_softc *sc, struct ath_buf *bf,
@@ -1587,6 +1590,14 @@ static int ath_tx_setup_buffer(struct ie
}
bf->bf_buf_addr = bf->bf_dmacontext;
+
+ /* tag if this is a nullfunc frame to enable PS when AP acks it */
+ if (ieee80211_is_nullfunc(fc) && ieee80211_has_pm(fc)) {
+ bf->bf_isnullfunc = true;
+ sc->sc_flags &= ~SC_OP_NULLFUNC_COMPLETED;
+ } else
+ bf->bf_isnullfunc = false;
+
return 0;
}
@@ -1996,6 +2007,19 @@ static void ath_tx_processq(struct ath_s
txq->axq_gatingds = NULL;
/*
+ * We now know the nullfunc frame has been ACKed so we
+ * can disable RX.
+ */
+ if (bf->bf_isnullfunc &&
+ (ds->ds_txstat.ts_status & ATH9K_TX_ACKED)) {
+ if ((sc->sc_flags & SC_OP_PS_ENABLED)) {
+ ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_NETWORK_SLEEP);
+ ath9k_hw_setrxabort(sc->sc_ah, 1);
+ } else
+ sc->sc_flags |= SC_OP_NULLFUNC_COMPLETED;
+ }
+
+ /*
* Remove ath_buf's of the same transmit unit from txq,
* however leave the last descriptor back as the holding
* descriptor for hw.
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/kernel.spec,v
retrieving revision 1.1945
retrieving revision 1.1946
diff -u -p -r1.1945 -r1.1946
--- kernel.spec 2 Dec 2009 07:34:17 -0000 1.1945
+++ kernel.spec 2 Dec 2009 20:51:22 -0000 1.1946
@@ -680,6 +680,7 @@ Patch670: linux-2.6-ata-quirk.patch
Patch671: linux-2.6-ahci-export-capabilities.patch
Patch680: prism54-remove-pci-dev-table.patch
+Patch681: linux-2.6-ath9k-fixes.patch
Patch800: linux-2.6-crash-driver.patch
@@ -1386,6 +1387,9 @@ ApplyPatch linux-2.6-ahci-export-capabil
# prism54: remove pci modinfo device table
ApplyPatch prism54-remove-pci-dev-table.patch
+# ath9k: add fixes suggested by upstream maintainer
+ApplyPatch linux-2.6-ath9k-fixes.patch
+
# /dev/crash driver.
ApplyPatch linux-2.6-crash-driver.patch
@@ -2155,6 +2159,9 @@ fi
# and build.
%changelog
+* Wed Dec 02 2009 John W. Linville <linville at redhat.com> 2.6.31.6-160
+- ath9k: add fixes suggested by upstream maintainer
+
* Wed Dec 02 2009 Dave Airlie <airlied at redhat.com> 2.6.31.6-159
- drm-radeon-misc-fixes.patch: r400 LVDS, r600 digital dpms, cursor fix, tv property
- Previous message: rpms/kipi-plugins/devel .cvsignore, 1.33, 1.34 kipi-plugins.spec, 1.106, 1.107 sources, 1.33, 1.34
- Next message: rpms/gupnp-vala/F-12 .cvsignore, 1.4, 1.5 gupnp-vala.spec, 1.9, 1.10 sources, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list