Re: [PATCH] usb otg: use atomic notifier instead of blocking notifier

From: Grazvydas Ignotas
Date: Fri Jan 21 2011 - 10:34:14 EST


On Wed, Jan 19, 2011 at 12:33 PM, Heikki Krogerus
<heikki.krogerus@xxxxxxxxx> wrote:
> On Wed, Jan 19, 2011 at 05:20:11PM +0800, ext Yang Ruirui wrote:
>> --- linux-2.6.orig/include/linux/usb/otg.h      2011-01-17 09:39:11.000000000 +0800
>> +++ linux-2.6/include/linux/usb/otg.h   2011-01-19 16:38:06.649546989 +0800
>> @@ -74,7 +74,7 @@ struct otg_transceiver {
>>         void __iomem                    *io_priv;
>>
>>         /* for notification of usb_xceiv_events */
>> -       struct blocking_notifier_head   notifier;
>> +       struct atomic_notifier_head     notifier;
>>
>>         /* to pass extra port status to the root hub */
>>         u16                     port_status;
>> @@ -234,13 +234,13 @@ otg_start_srp(struct otg_transceiver *ot
>>  static inline int
>>  otg_register_notifier(struct otg_transceiver *otg, struct notifier_block *nb)
>>  {
>> -       return blocking_notifier_chain_register(&otg->notifier, nb);
>> +       return atomic_notifier_chain_register(&otg->notifier, nb);
>>  }
>>
>>  static inline void
>>  otg_unregister_notifier(struct otg_transceiver *otg, struct notifier_block *nb)
>>  {
>> -       blocking_notifier_chain_unregister(&otg->notifier, nb);
>> +       atomic_notifier_chain_unregister(&otg->notifier, nb);
>>  }
>>
>>  /* for OTG controller drivers (and maybe other stuff) */
>
> Is drivers/power/twl4030_charger.c ready for atomic notifiers?

No it is not, it's doing some i2c stuff. With twl4030 it's called from
threaded_irq in twl4030-usb instead of musb core and is working fine..
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/