All of lore.kernel.org
 help / color / mirror / Atom feed
From: Majunath Goudar <csmanjuvijay@gmail.com>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org, Greg KH <greg@kroah.com>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Majunath Goudar <csmanjuvijay@gmail.com>,
	Ben Dooks <ben-linux@fluff.org>,
	Kukjin Kim <kgene.kim@samsung.com>,
	nataraja.km@lge.com
Subject: [PATCH 3/6]  USB: OHCI: Properly handle ohci-s3c2410 suspend
Date: Wed, 13 Nov 2013 17:40:18 +0530	[thread overview]
Message-ID: <1384344621-6981-4-git-send-email-csmanjuvijay@gmail.com> (raw)
In-Reply-To: <1384344621-6981-1-git-send-email-csmanjuvijay@gmail.com>

Suspend scenario in case of ohci-s3c2410 glue was not
properly handled as it was not suspending generic part
of ohci controller. Alan Stern suggested, properly handle
ohci-s3c2410 suspend scenario.

Calling explicitly the ohci_suspend()
routine in ohci_hcd_s3c2410_drv_suspend() will ensure
proper handling of suspend scenario.

Signed-off-by: Manjunath Goudar <csmanjuvijay@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Greg KH <greg@kroah.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-usb@vger.kernel.org
---
 drivers/usb/host/ohci-s3c2410.c |   21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c
index be3429e..b5bf9b7 100644
--- a/drivers/usb/host/ohci-s3c2410.c
+++ b/drivers/usb/host/ohci-s3c2410.c
@@ -426,28 +426,15 @@ static int ohci_hcd_s3c2410_drv_remove(struct platform_device *pdev)
 static int ohci_hcd_s3c2410_drv_suspend(struct device *dev)
 {
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
-	struct ohci_hcd *ohci = hcd_to_ohci(hcd);
 	struct platform_device *pdev = to_platform_device(dev);
-	unsigned long flags;
+	bool do_wakeup = device_may_wakeup(dev);
 	int rc = 0;
 
-	/*
-	 * Root hub was already suspended. Disable irq emission and
-	 * mark HW unaccessible, bail out if RH has been resumed. Use
-	 * the spinlock to properly synchronize with possible pending
-	 * RH suspend or resume activity.
-	 */
-	spin_lock_irqsave(&ohci->lock, flags);
-	if (ohci->rh_state != OHCI_RH_SUSPENDED) {
-		rc = -EINVAL;
-		goto bail;
-	}
-
-	clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+	rc = ohci_suspend(hcd, do_wakeup);
+	if (rc)
+		return rc;
 
 	s3c2410_stop_hc(pdev);
-bail:
-	spin_unlock_irqrestore(&ohci->lock, flags);
 
 	return rc;
 }
-- 
1.7.9.5

WARNING: multiple messages have this Message-ID (diff)
From: csmanjuvijay@gmail.com (Majunath Goudar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/6]  USB: OHCI: Properly handle ohci-s3c2410 suspend
Date: Wed, 13 Nov 2013 17:40:18 +0530	[thread overview]
Message-ID: <1384344621-6981-4-git-send-email-csmanjuvijay@gmail.com> (raw)
In-Reply-To: <1384344621-6981-1-git-send-email-csmanjuvijay@gmail.com>

Suspend scenario in case of ohci-s3c2410 glue was not
properly handled as it was not suspending generic part
of ohci controller. Alan Stern suggested, properly handle
ohci-s3c2410 suspend scenario.

Calling explicitly the ohci_suspend()
routine in ohci_hcd_s3c2410_drv_suspend() will ensure
proper handling of suspend scenario.

Signed-off-by: Manjunath Goudar <csmanjuvijay@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Greg KH <greg@kroah.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-samsung-soc at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: linux-usb at vger.kernel.org
---
 drivers/usb/host/ohci-s3c2410.c |   21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c
index be3429e..b5bf9b7 100644
--- a/drivers/usb/host/ohci-s3c2410.c
+++ b/drivers/usb/host/ohci-s3c2410.c
@@ -426,28 +426,15 @@ static int ohci_hcd_s3c2410_drv_remove(struct platform_device *pdev)
 static int ohci_hcd_s3c2410_drv_suspend(struct device *dev)
 {
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
-	struct ohci_hcd *ohci = hcd_to_ohci(hcd);
 	struct platform_device *pdev = to_platform_device(dev);
-	unsigned long flags;
+	bool do_wakeup = device_may_wakeup(dev);
 	int rc = 0;
 
-	/*
-	 * Root hub was already suspended. Disable irq emission and
-	 * mark HW unaccessible, bail out if RH has been resumed. Use
-	 * the spinlock to properly synchronize with possible pending
-	 * RH suspend or resume activity.
-	 */
-	spin_lock_irqsave(&ohci->lock, flags);
-	if (ohci->rh_state != OHCI_RH_SUSPENDED) {
-		rc = -EINVAL;
-		goto bail;
-	}
-
-	clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+	rc = ohci_suspend(hcd, do_wakeup);
+	if (rc)
+		return rc;
 
 	s3c2410_stop_hc(pdev);
-bail:
-	spin_unlock_irqrestore(&ohci->lock, flags);
 
 	return rc;
 }
-- 
1.7.9.5

  parent reply	other threads:[~2013-11-13 12:10 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-02 10:15 [PATCH 00/11] USB: OHCI:Properly handle ohci_suspend()routine in bus glue Majunath Goudar
2013-10-02 10:15 ` [PATCH 01/11] USB: OHCI: Properly handle OHCI controller suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 02/11] USB: OHCI: Properly handle ohci-at91 suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 03/11] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 04/11] USB: OHCI: Properly handle ohci-da8xx suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 05/11] USB: OHCI: Properly handle ohci-ep93xx suspend Majunath Goudar
2013-10-14 15:49   ` Olof Johansson
2013-10-14 20:34     ` Alan Stern
2013-10-14 20:41       ` Greg KH
2013-10-14 20:42       ` Hartley Sweeten
2013-10-14 20:50         ` Alan Stern
2013-10-14 21:07           ` Hartley Sweeten
2013-10-15  4:32             ` Olof Johansson
     [not found]               ` <CAKsNYyzFe+o0ctNYyHhL7m71LnAC4WTKbkfN37WHmLBRjgj9+w@mail.gmail.com>
2013-10-15 15:15                 ` Greg KH
2013-10-02 10:15 ` [PATCH 06/11] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-02 11:34   ` Bartlomiej Zolnierkiewicz
2013-10-02 14:38     ` Alan Stern
2013-10-02 15:10       ` Bartlomiej Zolnierkiewicz
2013-10-02 15:52         ` Alan Stern
2013-10-02 10:15 ` [PATCH 07/11] USB: OHCI: Properly handle ohci-omap suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 08/11] USB: OHCI: Properly handle ohci-platform suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 09/11] USB: OHCI: Properly handle ohci-pxa27x suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 10/11] USB: OHCI: Properly handle ohci-sm501 suspend Majunath Goudar
2013-10-02 10:15 ` [PATCH 11/11] USB: OHCI: Properly handle ohci-spear suspend Majunath Goudar
2013-10-03 13:02 ` [PATCH V2 00/11] USB: OHCI :Properly handle ohci_suspend()routine in bus glue Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 01/11] USB: OHCI: Properly handle OHCI controller suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 02/11] USB: OHCI: Properly handle ohci-at91 suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 03/11] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 04/11] USB: OHCI: Properly handle ohci-da8xx suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 05/11] USB: OHCI: Properly handle ohci-ep93xx suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 06/11] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 07/11] USB: OHCI: Properly handle ohci-omap suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 08/11] USB: OHCI: Properly handle ohci-platform suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 09/11] USB: OHCI: Properly handle ohci-pxa27x suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 10/11] USB: OHCI: Properly handle ohci-sm501 suspend Majunath Goudar
2013-10-03 13:02   ` [PATCH V2 11/11] USB: OHCI: Properly handle ohci-spear suspend Majunath Goudar
2013-10-15 13:19 ` [PATCH V2 0/7] USB: OHCI:Properly handle ohci_suspend()routine in bus glue Majunath Goudar
2013-10-15 13:19   ` [PATCH V2 1/7] USB: OHCI: Properly handle OHCI controller suspend Majunath Goudar
2013-10-15 15:19     ` Greg KH
2013-10-15 13:19   ` [PATCH V2 2/7] USB: OHCI: Properly handle ohci-at91 suspend Majunath Goudar
2013-10-15 13:19   ` [PATCH V2 3/7] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-10-15 13:19   ` [PATCH V2 4/7] USB: OHCI: Properly handle ohci-da8xx suspend Majunath Goudar
2013-10-15 13:20   ` [PATCH V2 5/7] USB: OHCI: Properly handle ohci-ep93xx suspend Majunath Goudar
2013-10-15 15:26     ` Alan Stern
2013-10-15 13:20   ` [PATCH V2 6/7] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-15 13:20   ` [PATCH V2 7/7] USB: OHCI: Properly handle ohci-spear suspend Majunath Goudar
     [not found] ` <1382016913-10872-1-git-send-email-csmanjuvijay@gmail.com>
2013-10-17 13:35   ` [PATCH V3 3/6] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-10-17 13:35     ` Majunath Goudar
2013-10-17 13:35   ` [PATCH V3 5/6] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-17 13:35     ` Majunath Goudar
     [not found] ` <1382094376-31016-1-git-send-email-csmanjuvijay@gmail.com>
2013-10-18 11:06   ` [PATCH V3 3/6] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-10-18 11:06     ` Majunath Goudar
2013-10-18 11:06   ` [PATCH V3 5/6] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-18 11:06     ` Majunath Goudar
     [not found] ` <1382365136-24472-1-git-send-email-csmanjuvijay@gmail.com>
2013-10-21 14:18   ` [PATCH V4 3/6] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-10-21 14:18     ` Majunath Goudar
2013-10-21 14:18   ` [PATCH V4 5/6] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-10-21 14:18     ` Majunath Goudar
2013-10-21 14:18     ` Majunath Goudar
2013-11-13 12:10 ` [PATCH V4 0/6]USB: OHCI:Properly handle ohci_suspend()routine in bus glue Majunath Goudar
2013-11-13 12:10   ` [PATCH V4 1/6] USB: OHCI: Properly handle OHCI controller suspend Majunath Goudar
2013-11-13 12:10   ` [PATCH 2/6] USB: OHCI: Properly handle ohci-at91 suspend Majunath Goudar
2013-11-13 12:10   ` Majunath Goudar [this message]
2013-11-13 12:10     ` [PATCH 3/6] USB: OHCI: Properly handle ohci-s3c2410 suspend Majunath Goudar
2013-11-13 12:10   ` [PATCH 4/6] USB: OHCI: Properly handle ohci-da8xx suspend Majunath Goudar
2013-11-13 12:10   ` [PATCH 5/6] USB: OHCI: Properly handle ohci-exynos suspend Majunath Goudar
2013-11-13 12:10     ` Majunath Goudar
2013-11-13 12:10   ` [PATCH 6/6] USB: OHCI: Properly handle ohci-spear suspend Majunath Goudar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1384344621-6981-4-git-send-email-csmanjuvijay@gmail.com \
    --to=csmanjuvijay@gmail.com \
    --cc=ben-linux@fluff.org \
    --cc=greg@kroah.com \
    --cc=kgene.kim@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nataraja.km@lge.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.