From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752605Ab1AUBzX (ORCPT ); Thu, 20 Jan 2011 20:55:23 -0500 Received: from ebb05.tieto.com ([131.207.168.36]:45036 "EHLO ebb05.tieto.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750856Ab1AUBzV (ORCPT ); Thu, 20 Jan 2011 20:55:21 -0500 X-AuditID: 83cfa824-b7cf4ae000002241-32-4d38e788a1a7 Date: Fri, 21 Jan 2011 10:03:10 +0800 From: Yang Ruirui To: Felipe Balbi , Greg Kroah-Hartman , Hao Wu , Alan Cox , Alek Du , , , Sergei Shtylyov Subject: [PATCH v3] usb langwell otg: use notifier chain of struct otg_transceiver Message-ID: <20110121020310.GA29448@darkstar> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use notifier chain in otg_transceiver instead of own notifier chain. Signed-off-by: Yang Ruirui Reviewed-by: Felipe Balbi --- 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 */