* jeffy <jeffy.chen@xxxxxxxxxxxxxx> [170818 11:05]: > On 08/19/2017 01:01 AM, Brian Norris wrote: > > BTW, in another context, Tony suggested we might need to fix up the IRQ flags > > like this: > > > > int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq) > > { > > ... > > err = request_threaded_irq(irq, NULL, handle_threaded_wake_irq, > > - IRQF_ONESHOT, dev_name(dev), wirq); > > + IRQF_ONESHOT | irq_get_trigger_type(irq), dev_name(dev), wirq); > > > > But IIUC, that's not actually necessary, because __setup_irq() > > automatically configures the trigger type if the driver didn't request > > one explicitly. > > actually this would not work...irq_get_trigger_type would return zero due to > a bug which we have a patch for it already: > > 9908207 New [tip:irq/urgent] genirq: Restore trigger settings in > irq_modify_status() Thanks for that information. So it seems we can leave out the irq_get_trigger_type() here then? Might be worth checking that it really does get populated though :) > BTW, using dev_name for the name of this wake irq seems not very > convenient...maybe add a ":wake" suffix? Good idea, will take a look. Regards, Tony