All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Quadros <rogerq@ti.com>
To: <balbi@ti.com>, <sameo@linux.intel.com>, <tony@atomide.com>
Cc: <keshava_mgowda@ti.com>, <sshtylyov@mvista.com>, <bjorn@mork.no>,
	<rogerq@ti.com>, <linux-usb@vger.kernel.org>,
	<linux-omap@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v5 02/22] mfd: omap-usb-tll: Fix channel count detection
Date: Wed, 2 Jan 2013 17:00:22 +0200	[thread overview]
Message-ID: <1357138842-28964-3-git-send-email-rogerq@ti.com> (raw)
In-Reply-To: <1357138842-28964-1-git-send-email-rogerq@ti.com>

Fix channel count detecion for REV2. Also, don't give up
if we don't recognize the IP Revision. We assume the default
number of channels (i.e. 3) for unrecognized IPs.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 drivers/mfd/omap-usb-tll.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c
index a10dcd1..5d5595b 100644
--- a/drivers/mfd/omap-usb-tll.c
+++ b/drivers/mfd/omap-usb-tll.c
@@ -98,6 +98,7 @@
 struct usbtll_omap {
 	struct clk				*usbtll_p1_fck;
 	struct clk				*usbtll_p2_fck;
+	int					nch;	/* num. of channels */
 	struct usbtll_omap_platform_data	*pdata;
 	/* secure the register updates */
 	spinlock_t				lock;
@@ -210,7 +211,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 	unsigned				reg;
 	unsigned long				flags;
 	int					ret = 0;
-	int					i, ver, count;
+	int					i, ver;
 
 	dev_dbg(dev, "starting TI HSUSB TLL Controller\n");
 
@@ -262,16 +263,18 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 	ver =  usbtll_read(base, OMAP_USBTLL_REVISION);
 	switch (ver) {
 	case OMAP_USBTLL_REV1:
-	case OMAP_USBTLL_REV2:
-		count = OMAP_TLL_CHANNEL_COUNT;
+		tll->nch = OMAP_TLL_CHANNEL_COUNT;
 		break;
+	case OMAP_USBTLL_REV2:
 	case OMAP_USBTLL_REV3:
-		count = OMAP_REV2_TLL_CHANNEL_COUNT;
+		tll->nch = OMAP_REV2_TLL_CHANNEL_COUNT;
 		break;
 	default:
-		dev_err(dev, "TLL version failed\n");
-		ret = -ENODEV;
-		goto err_ioremap;
+		tll->nch = OMAP_TLL_CHANNEL_COUNT;
+		dev_dbg(dev,
+		 "USB TLL Rev : 0x%x not recognized, assuming %d channels\n",
+			ver, tll->nch);
+		break;
 	}
 
 	if (is_ehci_tll_mode(pdata->port_mode[0]) ||
@@ -291,7 +294,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		usbtll_write(base, OMAP_TLL_SHARED_CONF, reg);
 
 		/* Enable channels now */
-		for (i = 0; i < count; i++) {
+		for (i = 0; i < tll->nch; i++) {
 			reg = usbtll_read(base,	OMAP_TLL_CHANNEL_CONF(i));
 
 			if (is_ohci_port(pdata->port_mode[i])) {
@@ -319,7 +322,6 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		}
 	}
 
-err_ioremap:
 	spin_unlock_irqrestore(&tll->lock, flags);
 	iounmap(base);
 	pm_runtime_put_sync(dev);
-- 
1.7.4.1


WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@ti.com>
To: balbi@ti.com, sameo@linux.intel.com, tony@atomide.com
Cc: keshava_mgowda@ti.com, sshtylyov@mvista.com, bjorn@mork.no,
	rogerq@ti.com, linux-usb@vger.kernel.org,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v5 02/22] mfd: omap-usb-tll: Fix channel count detection
Date: Wed, 2 Jan 2013 17:00:22 +0200	[thread overview]
Message-ID: <1357138842-28964-3-git-send-email-rogerq@ti.com> (raw)
In-Reply-To: <1357138842-28964-1-git-send-email-rogerq@ti.com>

Fix channel count detecion for REV2. Also, don't give up
if we don't recognize the IP Revision. We assume the default
number of channels (i.e. 3) for unrecognized IPs.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 drivers/mfd/omap-usb-tll.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c
index a10dcd1..5d5595b 100644
--- a/drivers/mfd/omap-usb-tll.c
+++ b/drivers/mfd/omap-usb-tll.c
@@ -98,6 +98,7 @@
 struct usbtll_omap {
 	struct clk				*usbtll_p1_fck;
 	struct clk				*usbtll_p2_fck;
+	int					nch;	/* num. of channels */
 	struct usbtll_omap_platform_data	*pdata;
 	/* secure the register updates */
 	spinlock_t				lock;
@@ -210,7 +211,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 	unsigned				reg;
 	unsigned long				flags;
 	int					ret = 0;
-	int					i, ver, count;
+	int					i, ver;
 
 	dev_dbg(dev, "starting TI HSUSB TLL Controller\n");
 
@@ -262,16 +263,18 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 	ver =  usbtll_read(base, OMAP_USBTLL_REVISION);
 	switch (ver) {
 	case OMAP_USBTLL_REV1:
-	case OMAP_USBTLL_REV2:
-		count = OMAP_TLL_CHANNEL_COUNT;
+		tll->nch = OMAP_TLL_CHANNEL_COUNT;
 		break;
+	case OMAP_USBTLL_REV2:
 	case OMAP_USBTLL_REV3:
-		count = OMAP_REV2_TLL_CHANNEL_COUNT;
+		tll->nch = OMAP_REV2_TLL_CHANNEL_COUNT;
 		break;
 	default:
-		dev_err(dev, "TLL version failed\n");
-		ret = -ENODEV;
-		goto err_ioremap;
+		tll->nch = OMAP_TLL_CHANNEL_COUNT;
+		dev_dbg(dev,
+		 "USB TLL Rev : 0x%x not recognized, assuming %d channels\n",
+			ver, tll->nch);
+		break;
 	}
 
 	if (is_ehci_tll_mode(pdata->port_mode[0]) ||
@@ -291,7 +294,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		usbtll_write(base, OMAP_TLL_SHARED_CONF, reg);
 
 		/* Enable channels now */
-		for (i = 0; i < count; i++) {
+		for (i = 0; i < tll->nch; i++) {
 			reg = usbtll_read(base,	OMAP_TLL_CHANNEL_CONF(i));
 
 			if (is_ohci_port(pdata->port_mode[i])) {
@@ -319,7 +322,6 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		}
 	}
 
-err_ioremap:
 	spin_unlock_irqrestore(&tll->lock, flags);
 	iounmap(base);
 	pm_runtime_put_sync(dev);
-- 
1.7.4.1

WARNING: multiple messages have this Message-ID (diff)
From: rogerq@ti.com (Roger Quadros)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 02/22] mfd: omap-usb-tll: Fix channel count detection
Date: Wed, 2 Jan 2013 17:00:22 +0200	[thread overview]
Message-ID: <1357138842-28964-3-git-send-email-rogerq@ti.com> (raw)
In-Reply-To: <1357138842-28964-1-git-send-email-rogerq@ti.com>

Fix channel count detecion for REV2. Also, don't give up
if we don't recognize the IP Revision. We assume the default
number of channels (i.e. 3) for unrecognized IPs.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 drivers/mfd/omap-usb-tll.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c
index a10dcd1..5d5595b 100644
--- a/drivers/mfd/omap-usb-tll.c
+++ b/drivers/mfd/omap-usb-tll.c
@@ -98,6 +98,7 @@
 struct usbtll_omap {
 	struct clk				*usbtll_p1_fck;
 	struct clk				*usbtll_p2_fck;
+	int					nch;	/* num. of channels */
 	struct usbtll_omap_platform_data	*pdata;
 	/* secure the register updates */
 	spinlock_t				lock;
@@ -210,7 +211,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 	unsigned				reg;
 	unsigned long				flags;
 	int					ret = 0;
-	int					i, ver, count;
+	int					i, ver;
 
 	dev_dbg(dev, "starting TI HSUSB TLL Controller\n");
 
@@ -262,16 +263,18 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 	ver =  usbtll_read(base, OMAP_USBTLL_REVISION);
 	switch (ver) {
 	case OMAP_USBTLL_REV1:
-	case OMAP_USBTLL_REV2:
-		count = OMAP_TLL_CHANNEL_COUNT;
+		tll->nch = OMAP_TLL_CHANNEL_COUNT;
 		break;
+	case OMAP_USBTLL_REV2:
 	case OMAP_USBTLL_REV3:
-		count = OMAP_REV2_TLL_CHANNEL_COUNT;
+		tll->nch = OMAP_REV2_TLL_CHANNEL_COUNT;
 		break;
 	default:
-		dev_err(dev, "TLL version failed\n");
-		ret = -ENODEV;
-		goto err_ioremap;
+		tll->nch = OMAP_TLL_CHANNEL_COUNT;
+		dev_dbg(dev,
+		 "USB TLL Rev : 0x%x not recognized, assuming %d channels\n",
+			ver, tll->nch);
+		break;
 	}
 
 	if (is_ehci_tll_mode(pdata->port_mode[0]) ||
@@ -291,7 +294,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		usbtll_write(base, OMAP_TLL_SHARED_CONF, reg);
 
 		/* Enable channels now */
-		for (i = 0; i < count; i++) {
+		for (i = 0; i < tll->nch; i++) {
 			reg = usbtll_read(base,	OMAP_TLL_CHANNEL_CONF(i));
 
 			if (is_ohci_port(pdata->port_mode[i])) {
@@ -319,7 +322,6 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		}
 	}
 
-err_ioremap:
 	spin_unlock_irqrestore(&tll->lock, flags);
 	iounmap(base);
 	pm_runtime_put_sync(dev);
-- 
1.7.4.1

  parent reply	other threads:[~2013-01-02 15:01 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-02 15:00 [PATCH v5 00/22] OMAP USB Host cleanup Roger Quadros
2013-01-02 15:00 ` Roger Quadros
2013-01-02 15:00 ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 01/22] mfd: omap-usb-tll: Avoid creating copy of platform data Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` Roger Quadros [this message]
2013-01-02 15:00   ` [PATCH v5 02/22] mfd: omap-usb-tll: Fix channel count detection Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 03/22] mfd: omap-usb-tll: Use devm_kzalloc/ioremap and clean up error path Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 04/22] mfd: omap-usb-tll: Clean up clock handling Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 05/22] mfd: omap-usb-tll: introduce and use mode_needs_tll() Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 06/22] mfd: omap-usb-tll: Check for missing platform data in probe Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 07/22] mfd: omap-usb-tll: Fix error message Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 08/22] mfd: omap-usb-tll: serialize access to TLL device Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 09/22] mfd: omap-usb-tll: Add OMAP5 revision and HSIC support Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 10/22] mfd: omap_usb_host: Avoid creating copy of platform_data Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 11/22] mfd: omap-usb-host: Use devm_kzalloc() and devm_request_and_ioremap() Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 12/22] mfd: omap-usb-host: know about number of ports from revision register Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 13/22] mfd: omap-usb-host: override number of ports from platform data Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-03 12:52   ` Sergei Shtylyov
2013-01-03 12:52     ` Sergei Shtylyov
2013-01-03 12:52     ` Sergei Shtylyov
2013-01-04 14:06     ` Roger Quadros
2013-01-04 14:06       ` Roger Quadros
2013-01-04 14:06       ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 14/22] mfd: omap-usb-host: cleanup clock management code Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 15/22] mfd: omap-usb-host: Manage HSIC clocks for HSIC mode Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 16/22] mfd: omap-usb-host: Get rid of unnecessary spinlock Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 17/22] mfd: omap-usb-host: clean up omap_usbhs_init() Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 18/22] USB: ehci-omap: Don't free gpios that we didn't request Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 19/22] ARM: OMAP3: clock data: get rid of unused USB host clock aliases and dummies Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 20/22] ARM: OMAP4: clock data: get rid of unused USB host clock aliases Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 21/22] mfd: omap-usb-host: Don't spam console on clk_set_parent failure Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00 ` [PATCH v5 22/22] mdf: omap-usb-host: get rid of build warning Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-02 15:00   ` Roger Quadros
2013-01-04 14:17 ` [PATCH v5 00/22] OMAP USB Host cleanup Roger Quadros
2013-01-04 14:17   ` Roger Quadros
2013-01-04 14:17   ` Roger Quadros

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=1357138842-28964-3-git-send-email-rogerq@ti.com \
    --to=rogerq@ti.com \
    --cc=balbi@ti.com \
    --cc=bjorn@mork.no \
    --cc=keshava_mgowda@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=sameo@linux.intel.com \
    --cc=sshtylyov@mvista.com \
    --cc=tony@atomide.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.