Hi Mark, thanks for the review. On Mon, Jun 14, 2010 at 12:50:32PM +0100, Mark Brown wrote: > On Mon, Jun 14, 2010 at 12:32:36PM +0200, Luotao Fu wrote: > > > +static void stmpe811_mask_work(struct work_struct *work) > > +{ > > + struct stmpe811 *stm = container_of(work, struct stmpe811, mask_work); > > + > > + stmpe811_reg_write(stm, STMPE811_REG_INT_EN, stm->int_en_mask); > > + > > + mutex_unlock(&stm->irq_mask_lock); > > +} > > Why are you doing this in a workqueue? You shouldn't need to do this - > you should implement the bus_lock() and bus_unlock() callbacks instead. Right, will replace the stuff with bus_lock/unlock > > > + ret = request_threaded_irq(client->irq, NULL, stmpe811_irq, > > + pdata->irq_flags, "stmpe811", stm); > > + if (ret) { > > + dev_err(&client->dev, "failed to request IRQ: %d\n", ret); > > + goto err_free; > > + } > > I suspect you should be unconditionally putting IRQF_ONESHOT here since > the threaded IRQ requires it. oh, oversaw this one, will fix. Thanks regards Luotao Fu -- Pengutronix e.K. | Dipl.-Ing. Luotao Fu | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Attachment:
signature.asc
Description: Digital signature