lkml.org 
[lkml]   [2011]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH v3] usb langwell otg: use notifier chain of struct otg_transceiver
Use notifier chain in otg_transceiver instead of own notifier chain.

Signed-off-by: Yang Ruirui <ruirui.r.yang@tieto.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
---
This patch depends on another patch which change otg_transceiver
notifier chain to atomic one, please see:
https://lkml.org/lkml/2011/1/19/72

drivers/usb/otg/langwell_otg.c | 7 +++----
include/linux/usb/intel_mid_otg.h | 17 -----------------
2 files changed, 3 insertions(+), 21 deletions(-)

--- linux-2.6.orig/drivers/usb/otg/langwell_otg.c 2010-12-15 15:43:36.000000000 +0800
+++ linux-2.6/drivers/usb/otg/langwell_otg.c 2011-01-20 13:33:28.346040564 +0800
@@ -2124,12 +2124,11 @@ static int langwell_otg_probe(struct pci
}

init_timer(&lnw->hsm_timer);
- ATOMIC_INIT_NOTIFIER_HEAD(&lnw->iotg.iotg_notifier);
+ ATOMIC_INIT_NOTIFIER_HEAD(&lnw->iotg.otg.notifier);

lnw->iotg_notifier.notifier_call = langwell_otg_iotg_notify;

- retval = intel_mid_otg_register_notifier(&lnw->iotg,
- &lnw->iotg_notifier);
+ retval = otg_register_notifier(&lnw->iotg.otg, &lnw->iotg_notifier);
if (retval) {
dev_dbg(lnw->dev, "Failed to register notifier\n");
goto err;
@@ -2187,7 +2186,7 @@ static void langwell_otg_remove(struct p
flush_workqueue(lnw->qwork);
destroy_workqueue(lnw->qwork);
}
- intel_mid_otg_unregister_notifier(&lnw->iotg, &lnw->iotg_notifier);
+ otg_unregister_notifier(&lnw->iotg.otg, &lnw->iotg_notifier);
langwell_otg_free_timers();

/* disable OTGSC interrupt as OTGSC doesn't change in reset */
--- linux-2.6.orig/include/linux/usb/intel_mid_otg.h 2010-12-15 15:43:38.000000000 +0800
+++ linux-2.6/include/linux/usb/intel_mid_otg.h 2011-01-20 13:23:48.809375229 +0800
@@ -117,9 +117,6 @@ struct intel_mid_otg_xceiv {
/* ops to access ulpi */
struct iotg_ulpi_access_ops ulpi_ops;

- /* atomic notifier for interrupt context */
- struct atomic_notifier_head iotg_notifier;
-
/* start/stop USB Host function */
int (*start_host)(struct intel_mid_otg_xceiv *iotg);
int (*stop_host)(struct intel_mid_otg_xceiv *iotg);
@@ -163,18 +160,4 @@ struct intel_mid_otg_xceiv *otg_to_mid_x
#define MID_OTG_NOTIFY_CLIENTADD 0x0009
#define MID_OTG_NOTIFY_CLIENTREMOVE 0x000a

-static inline int
-intel_mid_otg_register_notifier(struct intel_mid_otg_xceiv *iotg,
- struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&iotg->iotg_notifier, nb);
-}
-
-static inline void
-intel_mid_otg_unregister_notifier(struct intel_mid_otg_xceiv *iotg,
- struct notifier_block *nb)
-{
- atomic_notifier_chain_unregister(&iotg->iotg_notifier, nb);
-}
-
#endif /* __INTEL_MID_OTG_H */

\
 
 \ /
  Last update: 2011-01-21 02:57    [W:0.031 / U:16.588 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site