13 Jul
2017
13 Jul
'17
12:09 p.m.
On Thu, Jul 13, 2017 at 02:01:51AM +0000, Oder Chiou wrote:
+static irqreturn_t rt5514_spi_irq(int irq, void *data) {
- struct rt5514_dsp *rt5514_dsp = data;
- schedule_work(&rt5514_dsp->start_work);
- return IRQ_HANDLED;
+}
Why not just use a threaded interrupt handler for the start_work? That'd get you into process context.
Because of the SPI related function the work thread should be manipulated by the interrupt handler function. If the SPI related function is implemented to the interrupt handler directly, it will cause the runtime error while the interrupt handler is triggered.
Why will this cause an error?