* [pm-wip/uart][PATCH 3/4] Serial: Avoid using hwmod lookup using name string
@ 2010-06-04 13:43 Govindraj.R
2010-06-04 14:18 ` Gopinath, Thara
0 siblings, 1 reply; 3+ messages in thread
From: Govindraj.R @ 2010-06-04 13:43 UTC (permalink / raw)
To: linux-omap; +Cc: Kevin Hilman
Avoid using hwmod lookup using name string rather
retreive port info using the hwmod class interface.
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
---
arch/arm/mach-omap2/serial.c | 76 ++++++++++++++++++++----------------------
1 files changed, 36 insertions(+), 40 deletions(-)
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 70a9089..017332b 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -56,8 +56,6 @@
*/
#define DEFAULT_TIMEOUT 0
-#define MAX_UART_HWMOD_NAME_LEN 16
-
struct omap_uart_state {
int num;
int can_sleep;
@@ -596,52 +594,50 @@ static void serial_out_override(struct uart_port *up, int offset, int value)
}
#endif
-void __init omap_serial_early_init(void)
+static int omap_serial_port_init(struct omap_hwmod *oh, void *user)
{
- int i = 0;
+ struct omap_uart_state *uart;
+ static int i;
- do {
- char oh_name[MAX_UART_HWMOD_NAME_LEN];
- struct omap_hwmod *oh;
- struct omap_uart_state *uart;
+ uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL);
+ if (WARN_ON(!uart))
+ return -ENOMEM;
- snprintf(oh_name, MAX_UART_HWMOD_NAME_LEN,
- "uart%d", i + 1);
- oh = omap_hwmod_lookup(oh_name);
- if (!oh)
- break;
+ uart->oh = oh;
+ uart->num = i++;
+ list_add_tail(&uart->node, &uart_list);
+ num_uarts++;
- uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL);
- if (WARN_ON(!uart))
- return;
+ /*
+ * NOTE: omap_hwmod_init() has not yet been called,
+ * so no hwmod functions will work yet.
+ */
- uart->oh = oh;
- uart->num = i++;
- list_add_tail(&uart->node, &uart_list);
- num_uarts++;
+ /*
+ * During UART early init, device need to be probed
+ * to determine SoC specific init before omap_device
+ * is ready. Therefore, don't allow idle here
+ */
- /*
- * NOTE: omap_hwmod_init() has not yet been called,
- * so no hwmod functions will work yet.
- */
+ uart->oh->flags |= HWMOD_INIT_NO_IDLE;
- /*
- * During UART early init, device need to be probed
- * to determine SoC specific init before omap_device
- * is ready. Therefore, don't allow idle here
- */
- uart->oh->flags |= HWMOD_INIT_NO_IDLE;
-
- /*
- * Since UART hwmod is idle/enabled inside the
- * idle loop, interrupts are already disabled and
- * thus no locking is needed. Since the mutex-based
- * locking in hwmod might sleep, allowing locking
- * may introduce problems.
- */
- uart->oh->flags |= HWMOD_NO_IDLE_LOCKING;
+ /*
+ * Since UART hwmod is idle/enabled inside the
+ * idle loop, interrupts are already disabled and
+ * thus no locking is needed. Since the mutex-based
+ * locking in hwmod might sleep, allowing locking
+ * may introduce problems.
+ */
+
+ uart->oh->flags |= HWMOD_NO_IDLE_LOCKING;
- } while (1);
+ return 0;
+}
+
+void __init omap_serial_early_init(void)
+{
+ omap_hwmod_for_each_by_class("uart",
+ omap_serial_port_init, NULL);
}
/**
--
1.6.3.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [pm-wip/uart][PATCH 3/4] Serial: Avoid using hwmod lookup using name string
2010-06-04 13:43 [pm-wip/uart][PATCH 3/4] Serial: Avoid using hwmod lookup using name string Govindraj.R
@ 2010-06-04 14:18 ` Gopinath, Thara
2010-06-04 15:37 ` Kevin Hilman
0 siblings, 1 reply; 3+ messages in thread
From: Gopinath, Thara @ 2010-06-04 14:18 UTC (permalink / raw)
To: Raja, Govindraj, linux-omap@vger.kernel.org; +Cc: Kevin Hilman
>>-----Original Message-----
>>From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Raja,
>>Govindraj
>>Sent: Friday, June 04, 2010 7:14 PM
>>To: linux-omap@vger.kernel.org
>>Cc: Kevin Hilman
>>Subject: [pm-wip/uart][PATCH 3/4] Serial: Avoid using hwmod lookup using name string
>>
>>Avoid using hwmod lookup using name string rather
>>retreive port info using the hwmod class interface.
>>
>>Cc: Kevin Hilman <khilman@deeprootsystems.com>
>>Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
>>---
>> arch/arm/mach-omap2/serial.c | 76 ++++++++++++++++++++----------------------
>> 1 files changed, 36 insertions(+), 40 deletions(-)
>>
>>diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
>>index 70a9089..017332b 100644
>>--- a/arch/arm/mach-omap2/serial.c
>>+++ b/arch/arm/mach-omap2/serial.c
>>@@ -56,8 +56,6 @@
>> */
>> #define DEFAULT_TIMEOUT 0
>>
>>-#define MAX_UART_HWMOD_NAME_LEN 16
>>-
>> struct omap_uart_state {
>> int num;
>> int can_sleep;
>>@@ -596,52 +594,50 @@ static void serial_out_override(struct uart_port *up, int offset, int value)
>> }
>> #endif
>>
>>-void __init omap_serial_early_init(void)
>>+static int omap_serial_port_init(struct omap_hwmod *oh, void *user)
>> {
>>- int i = 0;
>>+ struct omap_uart_state *uart;
>>+ static int i;
>>
>>- do {
>>- char oh_name[MAX_UART_HWMOD_NAME_LEN];
>>- struct omap_hwmod *oh;
>>- struct omap_uart_state *uart;
>>+ uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL);
>>+ if (WARN_ON(!uart))
A better error message using pr_err ??
>>+ return -ENOMEM;
>>
>>- snprintf(oh_name, MAX_UART_HWMOD_NAME_LEN,
>>- "uart%d", i + 1);
>>- oh = omap_hwmod_lookup(oh_name);
>>- if (!oh)
>>- break;
>>+ uart->oh = oh;
>>+ uart->num = i++;
>>+ list_add_tail(&uart->node, &uart_list);
>>+ num_uarts++;
>>
>>- uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL);
>>- if (WARN_ON(!uart))
>>- return;
>>+ /*
>>+ * NOTE: omap_hwmod_init() has not yet been called,
>>+ * so no hwmod functions will work yet.
>>+ */
>>
>>- uart->oh = oh;
>>- uart->num = i++;
>>- list_add_tail(&uart->node, &uart_list);
>>- num_uarts++;
>>+ /*
>>+ * During UART early init, device need to be probed
>>+ * to determine SoC specific init before omap_device
>>+ * is ready. Therefore, don't allow idle here
>>+ */
You have two comment blocks back to back. Either make it into one block or put the first block appropriately above the intended code.
Regards
Thara
>>
>>- /*
>>- * NOTE: omap_hwmod_init() has not yet been called,
>>- * so no hwmod functions will work yet.
>>- */
>>+ uart->oh->flags |= HWMOD_INIT_NO_IDLE;
>>
>>- /*
>>- * During UART early init, device need to be probed
>>- * to determine SoC specific init before omap_device
>>- * is ready. Therefore, don't allow idle here
>>- */
>>- uart->oh->flags |= HWMOD_INIT_NO_IDLE;
>>-
>>- /*
>>- * Since UART hwmod is idle/enabled inside the
>>- * idle loop, interrupts are already disabled and
>>- * thus no locking is needed. Since the mutex-based
>>- * locking in hwmod might sleep, allowing locking
>>- * may introduce problems.
>>- */
>>- uart->oh->flags |= HWMOD_NO_IDLE_LOCKING;
>>+ /*
>>+ * Since UART hwmod is idle/enabled inside the
>>+ * idle loop, interrupts are already disabled and
>>+ * thus no locking is needed. Since the mutex-based
>>+ * locking in hwmod might sleep, allowing locking
>>+ * may introduce problems.
>>+ */
>>+
>>+ uart->oh->flags |= HWMOD_NO_IDLE_LOCKING;
>>
>>- } while (1);
>>+ return 0;
>>+}
>>+
>>+void __init omap_serial_early_init(void)
>>+{
>>+ omap_hwmod_for_each_by_class("uart",
>>+ omap_serial_port_init, NULL);
>> }
>>
>> /**
>>--
>>1.6.3.3
>>
>>
>>--
>>To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>>the body of a message to majordomo@vger.kernel.org
>>More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [pm-wip/uart][PATCH 3/4] Serial: Avoid using hwmod lookup using name string
2010-06-04 14:18 ` Gopinath, Thara
@ 2010-06-04 15:37 ` Kevin Hilman
0 siblings, 0 replies; 3+ messages in thread
From: Kevin Hilman @ 2010-06-04 15:37 UTC (permalink / raw)
To: Gopinath, Thara; +Cc: Raja, Govindraj, linux-omap@vger.kernel.org
"Gopinath, Thara" <thara@ti.com> writes:
>>>
>>>- uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL);
>>>- if (WARN_ON(!uart))
>>>- return;
>>>+ /*
>>>+ * NOTE: omap_hwmod_init() has not yet been called,
>>>+ * so no hwmod functions will work yet.
>>>+ */
>>>
>>>- uart->oh = oh;
>>>- uart->num = i++;
>>>- list_add_tail(&uart->node, &uart_list);
>>>- num_uarts++;
>>>+ /*
>>>+ * During UART early init, device need to be probed
>>>+ * to determine SoC specific init before omap_device
>>>+ * is ready. Therefore, don't allow idle here
>>>+ */
>
> You have two comment blocks back to back. Either make it into one block or put the first block appropriately above the intended code.
The latter please.
Kevin
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-06-04 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-04 13:43 [pm-wip/uart][PATCH 3/4] Serial: Avoid using hwmod lookup using name string Govindraj.R
2010-06-04 14:18 ` Gopinath, Thara
2010-06-04 15:37 ` Kevin Hilman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).