Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8e15a1e authored by Helmut Schaa's avatar Helmut Schaa Committed by John W. Linville
Browse files

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: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c5c65761
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -416,7 +416,10 @@ static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev,
	if (state == STATE_RADIO_IRQ_ON) {
		rt2800_register_read(rt2x00dev, INT_SOURCE_CSR, &reg);
		rt2800_register_write(rt2x00dev, INT_SOURCE_CSR, reg);
	}

		tasklet_enable(&rt2x00dev->txstatus_tasklet);
	} else if (state == STATE_RADIO_IRQ_OFF)
		tasklet_disable(&rt2x00dev->txstatus_tasklet);

	rt2800_register_read(rt2x00dev, INT_MASK_CSR, &reg);
	rt2x00_set_field32(&reg, INT_MASK_CSR_RXDELAYINT, 0);
+1 −7
Original line number Diff line number Diff line
@@ -821,13 +821,6 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
				     GFP_KERNEL);
		if (status)
			return status;

		/* tasklet for processing the tx status reports. */
		if (rt2x00dev->ops->lib->txstatus_tasklet)
			tasklet_init(&rt2x00dev->txstatus_tasklet,
				     rt2x00dev->ops->lib->txstatus_tasklet,
				     (unsigned long)rt2x00dev);

	}

	/*
@@ -843,6 +836,7 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
		tasklet_disable(&rt2x00dev->taskletname); \
	}

	RT2X00_TASKLET_INIT(txstatus_tasklet);
	RT2X00_TASKLET_INIT(pretbtt_tasklet);
	RT2X00_TASKLET_INIT(tbtt_tasklet);
	RT2X00_TASKLET_INIT(rxdone_tasklet);