Re: [PATCH v4 4/5] OMAP: mailbox: build device using omap_device/omap_hwmod

2010-12-16 Thread Varadarajan, Charulatha
couple of comments.

On Thu, Dec 16, 2010 at 12:17, Omar Ramirez Luna omar.rami...@ti.com wrote:
 From: Felipe Contreras felipe.contre...@gmail.com

 Remove static platform_device and resource data within
 omap mailbox driver; use the one defined in the hwmod
 database along with omap_device framework for device
 build and registration.

 Add device latency functions to be used, so clock can be
 enabled and sysconfig is configured.

 Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
 Signed-off-by: Omar Ramirez Luna omar.rami...@ti.com
 ---
  arch/arm/mach-omap2/devices.c |  102 
 -
  1 files changed, 20 insertions(+), 82 deletions(-)

 diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
 index b5cafd3..7493c30 100644
 --- a/arch/arm/mach-omap2/devices.c
 +++ b/arch/arm/mach-omap2/devices.c
 @@ -142,95 +142,33 @@ static inline void omap_init_camera(void)
  #endif

snip

 +
 +       oh = omap_hwmod_lookup(mailbox);
 +       if (!oh) {
 +               pr_err(%s: unable to find hwmod\n, __func__);
 +               return;
 +       }
 +
 +       od = omap_device_build(omap-mailbox, -1, oh,
 +                       NULL, 0,
 +                       mbox_latencies, ARRAY_SIZE(mbox_latencies),
 +                       0);
 +       if (!od) {

Check for IS_ERR(od).

 +               pr_err(%s: could not build device\n, __func__);
                return;

This return can be removed.

        }
 -       platform_device_register(mbox_device);
  }
  #else
  static inline void omap_init_mbox(void) { }
 --
 1.7.1


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 4/5] OMAP: mailbox: build device using omap_device/omap_hwmod

2010-12-16 Thread Russell King - ARM Linux
On Thu, Dec 16, 2010 at 02:08:11PM +0530, Varadarajan, Charulatha wrote:
  +       oh = omap_hwmod_lookup(mailbox);
  +       if (!oh) {
  +               pr_err(%s: unable to find hwmod\n, __func__);
  +               return;
  +       }
  +
  +       od = omap_device_build(omap-mailbox, -1, oh,
  +                       NULL, 0,
  +                       mbox_latencies, ARRAY_SIZE(mbox_latencies),
  +                       0);
  +       if (!od) {
 
 Check for IS_ERR(od).
 
  +               pr_err(%s: could not build device\n, __func__);

If you have an API which returns errors, and you're bothering to print
something when an error occurs, it's often useful to print the returned
error code, so that people can find out _why_ the error occurred.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 4/5] OMAP: mailbox: build device using omap_device/omap_hwmod

2010-12-16 Thread Ramirez Luna, Omar
On Thu, Dec 16, 2010 at 2:44 AM, Russell King - ARM Linux
li...@arm.linux.org.uk wrote:
 On Thu, Dec 16, 2010 at 02:08:11PM +0530, Varadarajan, Charulatha wrote:
  +       oh = omap_hwmod_lookup(mailbox);
  +       if (!oh) {
  +               pr_err(%s: unable to find hwmod\n, __func__);
  +               return;
  +       }
  +
  +       od = omap_device_build(omap-mailbox, -1, oh,
  +                       NULL, 0,
  +                       mbox_latencies, ARRAY_SIZE(mbox_latencies),
  +                       0);
  +       if (!od) {

 Check for IS_ERR(od).

  +               pr_err(%s: could not build device\n, __func__);

 If you have an API which returns errors, and you're bothering to print
 something when an error occurs, it's often useful to print the returned
 error code, so that people can find out _why_ the error occurred.


Agree.

Thanks,

Omar
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 4/5] OMAP: mailbox: build device using omap_device/omap_hwmod

2010-12-15 Thread Omar Ramirez Luna
From: Felipe Contreras felipe.contre...@gmail.com

Remove static platform_device and resource data within
omap mailbox driver; use the one defined in the hwmod
database along with omap_device framework for device
build and registration.

Add device latency functions to be used, so clock can be
enabled and sysconfig is configured.

Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
Signed-off-by: Omar Ramirez Luna omar.rami...@ti.com
---
 arch/arm/mach-omap2/devices.c |  102 -
 1 files changed, 20 insertions(+), 82 deletions(-)

diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index b5cafd3..7493c30 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -142,95 +142,33 @@ static inline void omap_init_camera(void)
 #endif
 
 #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE)
-
-#define MBOX_REG_SIZE   0x120
-
-#ifdef CONFIG_ARCH_OMAP2
-static struct resource omap2_mbox_resources[] = {
-   {
-   .start  = OMAP24XX_MAILBOX_BASE,
-   .end= OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
-   .flags  = IORESOURCE_MEM,
-   },
-   {
-   .start  = INT_24XX_MAIL_U0_MPU,
-   .flags  = IORESOURCE_IRQ,
-   .name   = dsp,
-   },
-   {
-   .start  = INT_24XX_MAIL_U3_MPU,
-   .flags  = IORESOURCE_IRQ,
-   .name   = iva,
-   },
-};
-static int omap2_mbox_resources_sz = ARRAY_SIZE(omap2_mbox_resources);
-#else
-#define omap2_mbox_resources   NULL
-#define omap2_mbox_resources_sz0
-#endif
-
-#ifdef CONFIG_ARCH_OMAP3
-static struct resource omap3_mbox_resources[] = {
-   {
-   .start  = OMAP34XX_MAILBOX_BASE,
-   .end= OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
-   .flags  = IORESOURCE_MEM,
-   },
-   {
-   .start  = INT_24XX_MAIL_U0_MPU,
-   .flags  = IORESOURCE_IRQ,
-   .name   = dsp,
-   },
-};
-static int omap3_mbox_resources_sz = ARRAY_SIZE(omap3_mbox_resources);
-#else
-#define omap3_mbox_resources   NULL
-#define omap3_mbox_resources_sz0
-#endif
-
-#ifdef CONFIG_ARCH_OMAP4
-
-#define OMAP4_MBOX_REG_SIZE0x130
-static struct resource omap4_mbox_resources[] = {
-   {
-   .start  = OMAP44XX_MAILBOX_BASE,
-   .end= OMAP44XX_MAILBOX_BASE +
-   OMAP4_MBOX_REG_SIZE - 1,
-   .flags  = IORESOURCE_MEM,
-   },
-   {
-   .start  = OMAP44XX_IRQ_MAIL_U0,
-   .flags  = IORESOURCE_IRQ,
-   .name   = mbox,
+static struct omap_device_pm_latency mbox_latencies[] = {
+   [0] = {
+   .activate_func = omap_device_enable_hwmods,
+   .deactivate_func = omap_device_idle_hwmods,
+   .flags = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
},
 };
-static int omap4_mbox_resources_sz = ARRAY_SIZE(omap4_mbox_resources);
-#else
-#define omap4_mbox_resources   NULL
-#define omap4_mbox_resources_sz0
-#endif
-
-static struct platform_device mbox_device = {
-   .name   = omap-mailbox,
-   .id = -1,
-};
 
 static inline void omap_init_mbox(void)
 {
-   if (cpu_is_omap24xx()) {
-   mbox_device.resource = omap2_mbox_resources;
-   mbox_device.num_resources = omap2_mbox_resources_sz;
-   } else if (cpu_is_omap34xx()) {
-   mbox_device.resource = omap3_mbox_resources;
-   mbox_device.num_resources = omap3_mbox_resources_sz;
-   } else if (cpu_is_omap44xx()) {
-   mbox_device.resource = omap4_mbox_resources;
-   mbox_device.num_resources = omap4_mbox_resources_sz;
-   } else {
-   pr_err(%s: platform not supported\n, __func__);
+   struct omap_hwmod *oh;
+   struct omap_device *od;
+
+   oh = omap_hwmod_lookup(mailbox);
+   if (!oh) {
+   pr_err(%s: unable to find hwmod\n, __func__);
+   return;
+   }
+
+   od = omap_device_build(omap-mailbox, -1, oh,
+   NULL, 0,
+   mbox_latencies, ARRAY_SIZE(mbox_latencies),
+   0);
+   if (!od) {
+   pr_err(%s: could not build device\n, __func__);
return;
}
-   platform_device_register(mbox_device);
 }
 #else
 static inline void omap_init_mbox(void) { }
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html