aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2011-01-30 07:18:13 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-01-31 15:06:23 -0500
commitc8e15a1e2c93880160f31ed2e6b02c1322f7f48d (patch)
tree2019999e956bfe9b6edd4ac1e84c855fbbd8db94
parentc5c65761839e3d85cc620cc1c85db8d4a7173f53 (diff)
rt2x00: Disable txstatus tasklet by default
Enable the txstatus tasklet when interrupts are enabled and disable it together with the interrupts. Also make the txstatus tasklet useful even without the tx status FIFO and make use of the generic rt2x00 tasklet initialization macro. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.c5
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c8
2 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index 54e37e08c114..e4d97ad25bf4 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -416,7 +416,10 @@ static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev,
416 if (state == STATE_RADIO_IRQ_ON) { 416 if (state == STATE_RADIO_IRQ_ON) {
417 rt2800_register_read(rt2x00dev, INT_SOURCE_CSR, &reg); 417 rt2800_register_read(rt2x00dev, INT_SOURCE_CSR, &reg);
418 rt2800_register_write(rt2x00dev, INT_SOURCE_CSR, reg); 418 rt2800_register_write(rt2x00dev, INT_SOURCE_CSR, reg);
419 } 419
420 tasklet_enable(&rt2x00dev->txstatus_tasklet);
421 } else if (state == STATE_RADIO_IRQ_OFF)
422 tasklet_disable(&rt2x00dev->txstatus_tasklet);
420 423
421 rt2800_register_read(rt2x00dev, INT_MASK_CSR, &reg); 424 rt2800_register_read(rt2x00dev, INT_MASK_CSR, &reg);
422 rt2x00_set_field32(&reg, INT_MASK_CSR_RXDELAYINT, 0); 425 rt2x00_set_field32(&reg, INT_MASK_CSR_RXDELAYINT, 0);
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 7d4dece64c1a..5812a4e05c7f 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -821,13 +821,6 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
821 GFP_KERNEL); 821 GFP_KERNEL);
822 if (status) 822 if (status)
823 return status; 823 return status;
824
825 /* tasklet for processing the tx status reports. */
826 if (rt2x00dev->ops->lib->txstatus_tasklet)
827 tasklet_init(&rt2x00dev->txstatus_tasklet,
828 rt2x00dev->ops->lib->txstatus_tasklet,
829 (unsigned long)rt2x00dev);
830
831 } 824 }
832 825
833 /* 826 /*
@@ -843,6 +836,7 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
843 tasklet_disable(&rt2x00dev->taskletname); \ 836 tasklet_disable(&rt2x00dev->taskletname); \
844 } 837 }
845 838
839 RT2X00_TASKLET_INIT(txstatus_tasklet);
846 RT2X00_TASKLET_INIT(pretbtt_tasklet); 840 RT2X00_TASKLET_INIT(pretbtt_tasklet);
847 RT2X00_TASKLET_INIT(tbtt_tasklet); 841 RT2X00_TASKLET_INIT(tbtt_tasklet);
848 RT2X00_TASKLET_INIT(rxdone_tasklet); 842 RT2X00_TASKLET_INIT(rxdone_tasklet);