Re: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY

2009-03-05 Thread Paul Walmsley
Hello Eero,

On Thu, 5 Mar 2009, ext-eero.nurkk...@nokia.com wrote:

 From: Eero Nurkkala ext-eero.nurkk...@nokia.com
 
 It is the bit 8 that is for FCLK. All other blocks in
 OMAPs use the bit 8 for denying FCLK idling.

Hmm.  Looking at the 34xx Rev O TRM register tables, it looks like most 
modules use bit 9 to indicate that FCLK should be kept on and bit 8 to 
indicate that the ICLK should be kept on?  DSI, DISPC, SR, DMA4 are some 
examples.

This of course contradicts some of the text, such as Table 16-6, 16-60, 
and 18-4.  CLOCKACTIVITY bits seem to attract documentation bugs; Table 
4-554 and 15.3.1.4.1 are other examples.

 This is an RFC, I'd like some discussion. Somebody
 double-check this?

Suggest you doublecheck with TI.  Richard Woodruff cc'ed; he might be able 
to clarify.


- Paul

 
 Signed-off-by: Eero Nurkkala ext-eero.nurkk...@nokia.com
 ---
  drivers/i2c/busses/i2c-omap.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
 index 0258b55..11057eb 100644
 --- a/drivers/i2c/busses/i2c-omap.c
 +++ b/drivers/i2c/busses/i2c-omap.c
 @@ -157,7 +157,7 @@
  #define SYSC_AUTOIDLE_MASK   (1  0)
  
  #define SYSC_IDLEMODE_SMART  0x2
 -#define SYSC_CLOCKACTIVITY_FCLK  0x2
 +#define SYSC_CLOCKACTIVITY_FCLK  0x1
  
  
  struct omap_i2c_dev {
 -- 
 1.5.2
 
 --
 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
 
--
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: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY

2009-03-05 Thread Eero Nurkkala
On Thu, 2009-03-05 at 09:42 +0100, ext Paul Walmsley wrote:
 Hello Eero,
 Hmm.  Looking at the 34xx Rev O TRM register tables, it looks like most 
 modules use bit 9 to indicate that FCLK should be kept on and bit 8 to 
 indicate that the ICLK should be kept on?  DSI, DISPC, SR, DMA4 are some 
 examples.

How about McBSP? Same TRM.. I2C, Table 18-5 tells exactly the opposite
for I2C than what's said in Table 18-44: I2C_SYSC!!

Please, Richard?

- Eero

--
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: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY

2009-03-05 Thread Eero Nurkkala
On Thu, 2009-03-05 at 10:46 +0200, Eero Nurkkala wrote:
 
 How about McBSP? Same TRM.. I2C, Table 18-5 tells exactly the opposite
 for I2C than what's said in Table 18-44: I2C_SYSC!!
 
 Please, Richard?
 
 - Eero

To answer to myself, I am 100% certain the McBSP FCLK is the
bit 8. I should have sent a patch about that already..

Kind of worried as could they really change that much?
From page to page and block to block and within a block...=)

- Eero

--
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 A 09/10] OMAP2/3: Remove OMAP_PRM_REGADDR, OMAP_CM_REGADDR

2009-03-05 Thread Paul Walmsley
Hello Richard

On Tue, 3 Mar 2009, Russell King - ARM Linux wrote:

 On Tue, Mar 03, 2009 at 07:09:35AM -0800, Kevin Hilman wrote:
  Russell King - ARM Linux li...@arm.linux.org.uk writes:
  
   On Mon, Mar 02, 2009 at 07:48:07PM -0700, Paul Walmsley wrote:
   Hi Kevin,
   
   On Mon, 2 Mar 2009, Kevin Hilman wrote:
   
What about the rest of the *_PRM_REGADDR() accessor macro changes in
this patch?

The rest of the PM core code uses these and so does not build on top
of the Russell's omap-clks3 branch.
   
   yes, all of the *_{PRM,CM}_REGADDR() work should be kept.
  
   Well, in case it wasn't clear from my previous mail, I'm not merging this.
  
  It was clear why you weren't merging the couple pieces that you
  referenced, but it wasn't clear whether you had problems with the rest
  of the patch.
 
 Because it's just plain wrong.  It persists in creating new instances of
 crap that I've already removed, such as using 'u32' instead of void __iomem
 pointers for register addresses.
 It persists in the init-time fixup of addresses. 

Sounds like there has been some miscommunication.  From our previous 
E-mail on this topic, 

   http://lkml.org/lkml/2009/1/29/32

... we agreed that the register rewriting part of this patch should not be 
merged; and noted that the register base rewriting was removed by D 10.  
(At the end of the six series, all virtual addresses are typed as void 
__iomem *.)

 The clkdm.name-clkdm.ptr fixup is unreliable without having a flag to 
 say whether it's been done or not.

Could we just add a simple CLOCK_INITED clock flag to resolve your 
concerns here?  Or are you referring to a different problem?

 And so forth.

 While the powerdomain stuff can be (and has been) failed, clocks can't be
 failed as a result of the rewrites not working - since they're referenced
 by other clocks, we'd need some way to ensure all childs of a failed parent
 also fail.

This seems to be an inherent issue with the structure of the clock tree 
itself, with parent pointers to static structures, rather than with 
clockdomain rewriting.  Undoubtedly we could put plenty more validity 
checks into the clock code.  The question is whether they would be worth 
the code space/development time tradeoff.  Most of the validity problems 
observed during the last few years of work prompted checks to be added.

 Moreover, the approach taken in the series of patches introducing it
 requires some clocks to be split up just for the sake of supporting this
 alternative method - I'm referring here to the creation of the mcbsp
 src clocks.

It's true that the mcbsp_fck clocks needed to split to accomodate the PRCM 
module + register offset change, but as noted before, I don't think it 
affects anything in practice.  It's an internal clock tree structure 
detail that ultimately won't be exposed to the driver.  It doesn't involve 
any rewriting.

 If I look at the remaining patch dependencies, then it works out as
 something like this:
 
 +---[A 09] OMAP2/3: Remove OMAP_PRM_REGADDR, OMAP_CM_REGADDR
 +---[D 05] OMAP2 clock: add clk.prcm_mod field; annotate OMAP2xxx clocks
 +---[D 06] OMAP3 clock: add prcm_mod field to OMAP3xxx clocks
 +---[D 07] OMAP2/3 clock: add _omap2_clk_{read,write}_reg()
 +---[D 08] OMAP2/3 clock: use clk-prcm_mod for all struct clk register addres
 +---[D 09] OMAP2/3 clock: encode target IDLEST bits
 +---[F 05] OMAP clock: add OMAP chip family-specific clk_register() option
 +---[D 04] OMAP3 clock: split mcbspX_src_fck from mcbspX_fck
 |
 | +-[B 01] OMAP2/3 clock: combine clkdm, clkdm_name into union in struct clk
 | +-[B 03] OMAP2/3 clockdomains: add CM, PRM, virt_opp_clkdm clockdomains
 | +-[B 05] OMAP2/3 clock: add clockdomains to all remaining clocks; fix clkdm
 | |
 +-+-[F 12] OMAP2/3 McBSP: add temporary clockdomain fix for McBSP virtual cloc
   |
   +-[F 06] OMAP2/3 clock: every clock must have a clkdm
 
 where D4 is a side effect of the way register addresses are being handled
 (iow D6), and F12 is a side effect of requiring F6 and D4.  Moreover,
 the virt_opp_clkdm part of B03 is a side effect of F6.
 
 If we're having to introduce work-arounds for ways things are being done,
 that's a sure sign that the original change was not correct.

Or that we haven't yet had the opportunity to implement a more 
wide-ranging code change, as is the case with the virt_opp_clkdm.  That is 
slated for removal; it's currently removed for OMAP3 in development code.

The working model has been to work on individual pieces separately, to 
build towards an end-goal, rather than making a huge set of changes all at 
once with multiple interlocking code pieces.

Patch F 12 is no longer needed, as we discussed earlier.  It was only 
needed because the old McBSP driver used some buggy custom clocks, and 
this has already been fixed in the driver.

 Also, from what I've heard, the register access issue is going to be far
 larger and is going to require _significant_ rework when OMAP4 becomes
 

Re: [PATCH A 09/10] OMAP2/3: Remove OMAP_PRM_REGADDR, OMAP_CM_REGADDR

2009-03-05 Thread Paul Walmsley
On Thu, 5 Mar 2009, Paul Walmsley wrote:

 Hello Richard

(my apologies, of course this should have been, Hello Russell)


- Paul
--
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] DSPBRIDGE: Remove variables not used in cfgdefs.h

2009-03-05 Thread Ameya Palande
On Wed, Mar 4, 2009 at 8:11 PM, Fernando Guzman Lugo x0095...@ti.com wrote:
 This patch removes some variable that are not used.
 Signed-off-by: Guzman Lugo Fernando x0095...@ti.com
 ---
  arch/arm/plat-omap/include/dspbridge/cfgdefs.h |   10 --
  drivers/dsp/bridge/rmgr/drv.c                  |    2 --
  2 files changed, 0 insertions(+), 12 deletions(-)

 diff --git a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h 
 b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
 index e7633b5..34a28f8
 --- a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
 +++ b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
 @@ -77,15 +77,6 @@
                u8 bIRQAttrib;  /* IRQ Attribute */
                u32 dwOffsetForMonitor; /* The Shared memory starts from
                                         * dwMemBase + this offset */
 -               u32 dwBusType;  /* Bus type for this device */
 -               u32 dwProgBase; /* DSP ProgBase */
 -               u32 dwProgLength;       /* DSP ProgBase Length */
 -               u32 dwRegBase;  /* DSP memory mapped register base */
 -               u32 dwRegLength;        /* DSP Register Base Length */
 -               u32 ClientHandle;       /* Client Handle */
 -               u32 SocketHandle;       /* Socket and Function Pair */
 -               u32 CardInfo;   /* This will be used as a context data in
 -                                * in the CardRequestIRQ */
        /*
         *  Info needed by NODE for allocating channels to communicate with 
 RMS:
         *      dwChnlOffset:       Offset of RMS channels. Lower channels are
 @@ -102,7 +93,6 @@
                void __iomem *dwWdTimerDspBase;
                void __iomem *dwMboxBase;
                void __iomem *dwDmmuBase;
 -               u32 *dwDipiBase;
                void __iomem *dwSysCtrlBase;
        } ;

 diff --git a/drivers/dsp/bridge/rmgr/drv.c b/drivers/dsp/bridge/rmgr/drv.c
 index 2241f48..160d730
 --- a/drivers/dsp/bridge/rmgr/drv.c
 +++ b/drivers/dsp/bridge/rmgr/drv.c
 @@ -1733,7 +1733,6 @@ static DSP_STATUS RequestBridgeResources(u32 dwContext, 
 s32 bRequest)
                /* Second window is for DSP external memory shared with MPU */
                if (DSP_SUCCEEDED(status)) {
                        /* for Linux, these are hard-coded values */
 -                       pResources-dwBusType = 0;
                        pResources-bIRQRegisters = 0;
                        pResources-bIRQAttrib = 0;
                        pResources-dwOffsetForMonitor = 0;
 @@ -1856,7 +1855,6 @@ static DSP_STATUS RequestBridgeResourcesDSP(u32 
 dwContext, s32 bRequest)
                }
                if (DSP_SUCCEEDED(status)) {
                        /* for Linux, these are hard-coded values */
 -                       pResources-dwBusType = 0;
                        pResources-bIRQRegisters = 0;
                        pResources-bIRQAttrib = 0;
                        pResources-dwOffsetForMonitor = 0;
 --
 1.5.6.4

 --
 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


Couldn't apply :(
I guess you missed the following commit.

commit 3b313ff3e50d3c46c506e8939f92c406aa5b0bc6
Author: Ramesh Gupta G grgu...@ti.com
Date:   Fri Feb 13 14:51:19 2009 +0530

patching file arch/arm/plat-omap/include/dspbridge/cfgdefs.h
Hunk #2 FAILED at 93.
1 out of 2 hunks FAILED -- saving rejects to file
arch/arm/plat-omap/include/dspbridge/cfgdefs.h.rej
patching file drivers/dsp/bridge/rmgr/drv.c
Hunk #1 succeeded at 1736 (offset 3 lines).
Hunk #2 succeeded at 1862 (offset 7 lines).

Cheers,
Ameya.
--
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] DSPBRIDGE: Change address resources to void __iomem *

2009-03-05 Thread Ameya Palande
On Wed, Mar 4, 2009 at 8:11 PM, Fernando Guzman Lugo x0095...@ti.com wrote:
 This patch changes address resources to void __iomem *
 Signed-off-by: Guzman Lugo Fernando x0095...@ti.com
 ---
  arch/arm/plat-omap/include/dspbridge/cfgdefs.h |   16 
  drivers/dsp/bridge/hw/hw_dspssC64P.c           |    2 +-
  drivers/dsp/bridge/hw/hw_dspssC64P.h           |    2 +-
  drivers/dsp/bridge/hw/hw_mbox.c                |   30 +++--
  drivers/dsp/bridge/hw/hw_mbox.h                |   18 
  drivers/dsp/bridge/hw/hw_mmu.c                 |   43 ++--
  drivers/dsp/bridge/hw/hw_mmu.h                 |   30 +++---
  drivers/dsp/bridge/hw/hw_prcm.c                |   26 ++--
  drivers/dsp/bridge/hw/hw_prcm.h                |   17 
  drivers/dsp/bridge/rmgr/drv.c                  |   52 
 
  drivers/dsp/bridge/rmgr/node.c                 |    2 +-
  drivers/dsp/bridge/wmd/_tiomap.h               |    2 +-
  drivers/dsp/bridge/wmd/tiomap3430.c            |   47 ++---
  13 files changed, 145 insertions(+), 142 deletions(-)

 diff --git a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h 
 b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
 index ca96b3c..e7633b5
 --- a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
 +++ b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
 @@ -96,14 +96,14 @@
                u32 dwChnlOffset;
                u32 dwChnlBufSize;
                u32 dwNumChnls;
 -               u32 dwPrmBase;
 -               u32 dwCmBase;
 -               u32 dwPerBase;
 -               u32 dwWdTimerDspBase;
 -               u32 dwMboxBase;
 -               u32 dwDmmuBase;
 -               u32 dwDipiBase;
 -               u32 dwSysCtrlBase;
 +               void __iomem *dwPrmBase;
 +               void __iomem *dwCmBase;
 +               void __iomem *dwPerBase;
 +               void __iomem *dwWdTimerDspBase;
 +               void __iomem *dwMboxBase;
 +               void __iomem *dwDmmuBase;
 +               u32 *dwDipiBase;
 +               void __iomem *dwSysCtrlBase;
        } ;

        struct CFG_DSPMEMDESC {
 diff --git a/drivers/dsp/bridge/hw/hw_dspssC64P.c 
 b/drivers/dsp/bridge/hw/hw_dspssC64P.c
 index 0d0d45c..6aac57d
 --- a/drivers/dsp/bridge/hw/hw_dspssC64P.c
 +++ b/drivers/dsp/bridge/hw/hw_dspssC64P.c
 @@ -34,7 +34,7 @@
  #include IPIAccInt.h

  /* HW FUNCTIONS */
 -HW_STATUS HW_DSPSS_BootModeSet(const u32 baseAddress,
 +HW_STATUS HW_DSPSS_BootModeSet(const void __iomem *baseAddress,
                      enum HW_DSPSYSC_BootMode_t bootMode,
                      const u32 bootAddress)
  {
 diff --git a/drivers/dsp/bridge/hw/hw_dspssC64P.h 
 b/drivers/dsp/bridge/hw/hw_dspssC64P.h
 index 493effd..50f9af4
 --- a/drivers/dsp/bridge/hw/hw_dspssC64P.h
 +++ b/drivers/dsp/bridge/hw/hw_dspssC64P.h
 @@ -41,7 +41,7 @@

  #define HW_DSP_IDLEBOOT_ADDR   0x007E

 -       extern HW_STATUS HW_DSPSS_BootModeSet(const u32 baseAddress,
 +       extern HW_STATUS HW_DSPSS_BootModeSet(const void __iomem *baseAddress,
                                        enum HW_DSPSYSC_BootMode_t bootMode,
                                        const u32 bootAddress);

 diff --git a/drivers/dsp/bridge/hw/hw_mbox.c b/drivers/dsp/bridge/hw/hw_mbox.c
 index bc61d64..93fa51e
 --- a/drivers/dsp/bridge/hw/hw_mbox.c
 +++ b/drivers/dsp/bridge/hw/hw_mbox.c
 @@ -36,7 +37,7 @@
  struct MAILBOX_CONTEXT mboxsetting = {0x4, 0x1, 0x1};

  /* Saves the mailbox context */
 -HW_STATUS HW_MBOX_saveSettings(u32 baseAddress)
 +HW_STATUS HW_MBOX_saveSettings(void __iomem *baseAddress)
  {
        HW_STATUS status = RET_OK;

 @@ -50,7 +51,7 @@ HW_STATUS HW_MBOX_saveSettings(u32 baseAddress)
  }

  /* Restores the mailbox context */
 -HW_STATUS HW_MBOX_restoreSettings(u32 baseAddress)
 +HW_STATUS HW_MBOX_restoreSettings(void __iomem *baseAddress)
  {
         HW_STATUS status = RET_OK;
        /* Restor IRQ enable status */
 @@ -65,8 +66,8 @@ HW_STATUS HW_MBOX_restoreSettings(u32 baseAddress)

  /* Reads a u32 from the sub module message box Specified. if there are no
  * messages in the mailbox then and error is returned. */
 -HW_STATUS HW_MBOX_MsgRead(const u32 baseAddress, const HW_MBOX_Id_t 
 mailBoxId,
 -                               u32 *const pReadValue)
 +HW_STATUS HW_MBOX_MsgRead(const void __iomem *baseAddress,
 +       const HW_MBOX_Id_t mailBoxId, u32 *const pReadValue)
  {
        HW_STATUS status = RET_OK;

 @@ -86,8 +87,8 @@ HW_STATUS HW_MBOX_MsgRead(const u32 baseAddress, const 
 HW_MBOX_Id_t mailBoxId,
  }

  /* Writes a u32 from the sub module message box Specified. */
 -HW_STATUS HW_MBOX_MsgWrite(const u32 baseAddress, const HW_MBOX_Id_t 
 mailBoxId,
 -                       const u32 writeValue)
 +HW_STATUS HW_MBOX_MsgWrite(const void __iomem *baseAddress,
 +       const HW_MBOX_Id_t mailBoxId, const u32 writeValue)
  {
        HW_STATUS status = RET_OK;

 @@ -105,8 +106,8 @@ HW_STATUS HW_MBOX_MsgWrite(const u32 baseAddress, const 

Re: [PATCH 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Ameya Palande
On Tue, Mar 3, 2009 at 2:00 AM, Guzman Lugo, Fernando x0095...@ti.com wrote:


 Hi,

        I am sending my patches again, now they are base on this commit:

 commit bacaa3dc169e11488faf17519a42c4e8641fc17e
 Author: Hiroshi DOYU hiroshi.d...@nokia.com
 Date:   Mon Feb 16 10:43:15 2009 +0200

    TIDSPBRIDGE: fix some build warnings

 I hope there will be not problems this time.


Hi Fernando,

Are you using tidspbridge-pm branch from
http://gitorious.org/projects/lk/repos/mainline ?

Cheers,
Ameya.
--
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 1/9] omap3isp: Add ISP main driver and register definitions

2009-03-05 Thread Sakari Ailus

Thanks for the comments, Alexey!

Alexey Klimov wrote:

+static int isp_probe(struct platform_device *pdev)
+{
+   struct isp_device *isp;
+   int ret_err = 0;
+   int i;
+
+   isp = kzalloc(sizeof(*isp), GFP_KERNEL);
+   if (!isp) {
+   dev_err(pdev-dev, could not allocate memory\n);
+   return -ENODEV;


return -ENOMEM; ?


Done.


+   }
+
+   platform_set_drvdata(pdev, isp);
+
+   isp-dev = pdev-dev;
+
+   for (i = 0; i = OMAP3_ISP_IOMEM_CSI2PHY; i++) {
+   struct resource *mem;
+   /* request the mem region for the camera registers */
+   mem = platform_get_resource(pdev, IORESOURCE_MEM, i);
+   if (!mem) {
+   dev_err(isp-dev, no mem resource?\n);
+   return -ENODEV;


Maybe ENODEV is not apropriate here too..


What else it could be? ENOENT comes to mind but I'm not sure it's 
significantly better.


--
Sakari Ailus
sakari.ai...@maxwell.research.nokia.com
--
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: Problems while designing TPS65023 regulator driver

2009-03-05 Thread Aggarwal, Anuj
Mark,

Thanks for the patch, it worked fine for me.

I am facing one more problem now. I am setting boot_on flag in the constraints 
structure for all my regulators as they are enabled when the system is powered 
on.
But still when I call regulator_disable() after doing a _get() on it, the call 
fails saying  unbalanced disables for supply. Then I checked the same 
repository again and found commit 38db9f31d6dc6147b87692b3b5a8a32de1a6cbe6 
(regulator: Allow boot_on regulators to be disabled by clients). But still, it 
is not allowing me to disable the regulator as soon as I do a get on it.


Later, I found out that in set_machine_constraints(),ops-enable() is being 
called if the boot_on flag is set. What is the purpose of doing this? Since the 
regulator is already enabled, why we are calling the ops-enable() to do the 
same again? In my opinion, regulator_enable() should have been called to let 
the framework increase its usage count so that the user can disable the same as 
and when required.


Thanks and Regards,
Anuj Aggarwal
 

 -Original Message-
 From: Mark Brown [mailto:broo...@sirena.org.uk]
 Sent: Thursday, February 26, 2009 7:35 PM
 To: Aggarwal, Anuj
 Cc: linux-omap@vger.kernel.org
 Subject: Re: Problems while designing TPS65023 regulator driver
 
 On Thu, Feb 26, 2009 at 02:41:54PM +0530, Aggarwal, Anuj wrote:
 
  Since all the five regulators can be controlled using a single i2c
  device, I made a single i2c_board_info structure in my platform
  specific file and put all the regulator_init_data information there:
 
 This is very common - most of the devices that have multiple regulators
 also have some other subsystems on them (eg, an RTC or a watchdog) and
 use a core driver in drivers/mfd with the individual functions of the
 device as child platform drivers so this hasn't come up much.
 
  Now, the problem is in the tps_65023_probe function. Since it will be
  called only once as there is only one i2c device, I have to register
  all the regulators in that only. But I am not able to communicate the
  same to the regulator core layer. Inside the regulator_register(),
  variable init_data, which equals to dev-platform_data, is always
  pointing to the first array member, which is coming from the evm
  specific file. And it fails to register my second regulator instance,
  set_consumer_device_supply() specifically failing for the second
  iteration. Because of this, the probe function fails.
 
  How should I handle this scenario? Am I missing something in my 
  implementation?
 
 Use -next or the regulator git at:
 
   git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6
 
 There the init data is passed as a parameter to regulator_register()
 rather than being read from the platform data so the problem goes away.
 The relevant commit is 8ec143c801ff0514ce92e69aa2f7bd48e73b9baa.
 
 [Please fix your mail client to wrap at 80 columns - currently you have
 no line breaks in paragraphs which makes your mails a bit hard to read
 and reply to.]

--
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: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY

2009-03-05 Thread Menon, Nishanth
 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Eero Nurkkala
 Sent: Thursday, March 05, 2009 10:46 AM
 To: ext Paul Walmsley
 Cc: linux-omap@vger.kernel.org; Woodruff, Richard
 Subject: Re: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY
 
 On Thu, 2009-03-05 at 09:42 +0100, ext Paul Walmsley wrote:
  Hello Eero,
  Hmm.  Looking at the 34xx Rev O TRM register tables, it looks like most
  modules use bit 9 to indicate that FCLK should be kept on and bit 8 to
  indicate that the ICLK should be kept on?  DSI, DISPC, SR, DMA4 are some
  examples.
 
 How about McBSP? Same TRM.. I2C, Table 18-5 tells exactly the opposite
 for I2C than what's said in Table 18-44: I2C_SYSC!!
 
Yep, that does look nuts :(.. Have pinged internally.. 

Regards,
Nishanth Menon
--
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: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY

2009-03-05 Thread Eero Nurkkala
On Thu, 2009-03-05 at 13:29 +0100, ext Menon, Nishanth wrote:
  
 Yep, that does look nuts :(.. Have pinged internally.. 
 
 Regards,
 Nishanth Menon

Thank you!

Could you please consider taking a loot at every single block
(SPI, I2C, DMA... etc).

If I were you, I'd copy-paste the CLOCKACTIVITY features as
is it to every single HW block. So it'd be coherent. I have a
distant feeling that's what you've done, but TRM says something
else..

- Eero


--
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: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY

2009-03-05 Thread Menon, Nishanth
 -Original Message-
 From: Eero Nurkkala [mailto:ext-eero.nurkk...@nokia.com]
 Sent: Thursday, March 05, 2009 2:33 PM
 To: Menon, Nishanth
 Cc: ext Paul Walmsley; linux-omap@vger.kernel.org; Woodruff, Richard
 Subject: RE: [RFC] OMAP: I2C: Use correct bit for CLOCKACTIVITY
 
 Thank you!
 
 Could you please consider taking a loot at every single block
 (SPI, I2C, DMA... etc).
 
 If I were you, I'd copy-paste the CLOCKACTIVITY features as
 is it to every single HW block. So it'd be coherent. I have a
 distant feeling that's what you've done, but TRM says something
 else..
me? I am just a code junkie ;).. They wont let me write the TRM :(.. :D... 

Anyways, I am told internally that the right setting is the one given in table 
18-44, i.e.:

9:8 CLOCKACTIVITY Clock Activity selection bits RW 0x0
0x0: Both clocks can be cut off
0x1: Only interface clock must be kept active; functional clock can be cut 
off
0x2: Only functional clock must be kept active; interface clock can be cut 
off
0x3: Both clocks must be kept active

Have asked for the rest too.. But I am told that in case of these kind of 
issues, we should refer to the one in the register settings.

Regards,
Nishanth Menon
--
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Kanigeri, Hari
Hi Ameya,

 Hi Fernando,
 
 Are you using tidspbridge-pm branch from 
 http://gitorious.org/projects/lk/repos/mainline ?
 
 Cheers,
 Ameya.

-- The Bridge patches will be based on omapzoom tree.

Thank you,
Best regards,
Hari
 

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org 
 [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Ameya Palande
 Sent: Thursday, March 05, 2009 4:27 AM
 To: Guzman Lugo, Fernando
 Cc: Hiroshi DOYU; linux-omap@vger.kernel.org
 Subject: Re: [PATCH 0/5] DSPBRIDGE: patches.
 
 On Tue, Mar 3, 2009 at 2:00 AM, Guzman Lugo, Fernando 
 x0095...@ti.com wrote:
 
 
  Hi,
 
         I am sending my patches again, now they are base on 
 this commit:
 
  commit bacaa3dc169e11488faf17519a42c4e8641fc17e
  Author: Hiroshi DOYU hiroshi.d...@nokia.com
  Date:   Mon Feb 16 10:43:15 2009 +0200
 
     TIDSPBRIDGE: fix some build warnings
 
  I hope there will be not problems this time.
 
 
 Hi Fernando,
 
 Are you using tidspbridge-pm branch from 
 http://gitorious.org/projects/lk/repos/mainline ?
 
 Cheers,
 Ameya.
 --
 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
 
 --
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Felipe Contreras
On Thu, Mar 5, 2009 at 3:18 PM, Kanigeri, Hari h-kanige...@ti.com wrote:
 Hi Ameya,

 Hi Fernando,

 Are you using tidspbridge-pm branch from
 http://gitorious.org/projects/lk/repos/mainline ?

 Cheers,
 Ameya.

 -- The Bridge patches will be based on omapzoom tree.

We are in linux-omap, not omapzoom, and this is the tidspbridge branch
in linux-omap:
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=shortlog;h=tidspbridge

I'm sure you don't want to increase the discrepancy between linux-omap
and omapzoom, so the patches sent to l-o should apply on top of the
l-o tidspbridge in order to be merged.

-- 
Felipe Contreras
--
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: [pacth] I2C bug fixes for L-O and L-Z

2009-03-05 Thread Aaro Koskinen

Hello,

Woodruff, Richard wrote:

Recently one custom board was having some I2C issues. In looking at it a couple 
things stood out.
I've attached a patches for l-o and l-z for anyone to comment on which cares.


I hope these fixes are not ignored. Maybe they should be resent as they 
are missing from patchwork and there's some formatting issues.


A.
--
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Kanigeri, Hari
Hi Felipe,

 We are in linux-omap, not omapzoom, and this is the 
 tidspbridge branch in linux-omap:
 http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.
6.git;a=shortlog;h=tidspbridge
 
 I'm sure you don't want to increase the discrepancy between 
 linux-omap and omapzoom, so the patches sent to l-o should 
 apply on top of the l-o tidspbridge in order to be merged.

-- I am sorry, as of now the Bridge patches will be based only on omapzoom tree.

Thank you,
Best regards,
Hari
 

 -Original Message-
 From: Felipe Contreras [mailto:felipe.contre...@gmail.com] 
 Sent: Thursday, March 05, 2009 7:42 AM
 To: Kanigeri, Hari
 Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; 
 linux-omap@vger.kernel.org
 Subject: Re: [PATCH 0/5] DSPBRIDGE: patches.
 
 On Thu, Mar 5, 2009 at 3:18 PM, Kanigeri, Hari 
 h-kanige...@ti.com wrote:
  Hi Ameya,
 
  Hi Fernando,
 
  Are you using tidspbridge-pm branch from 
  http://gitorious.org/projects/lk/repos/mainline ?
 
  Cheers,
  Ameya.
 
  -- The Bridge patches will be based on omapzoom tree.
 
 We are in linux-omap, not omapzoom, and this is the 
 tidspbridge branch in linux-omap:
 http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.
6.git;a=shortlog;h=tidspbridge
 
 I'm sure you don't want to increase the discrepancy between 
 linux-omap and omapzoom, so the patches sent to l-o should 
 apply on top of the l-o tidspbridge in order to be merged.
 
 --
 Felipe Contreras
 
 --
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Menon, Nishanth
 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Felipe Contreras
 Sent: Thursday, March 05, 2009 3:42 PM
 To: Kanigeri, Hari
 Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; linux-
 o...@vger.kernel.org
 Subject: Re: [PATCH 0/5] DSPBRIDGE: patches.
 
 On Thu, Mar 5, 2009 at 3:18 PM, Kanigeri, Hari h-kanige...@ti.com wrote:
  Hi Ameya,
 
  Hi Fernando,
 
  Are you using tidspbridge-pm branch from
  http://gitorious.org/projects/lk/repos/mainline ?
 
  Cheers,
  Ameya.
 
  -- The Bridge patches will be based on omapzoom tree.
 
 We are in linux-omap, not omapzoom, and this is the tidspbridge branch
 in linux-omap:
 http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-
 2.6.git;a=shortlog;h=tidspbridge
 
 I'm sure you don't want to increase the discrepancy between linux-omap
 and omapzoom, so the patches sent to l-o should apply on top of the
 l-o tidspbridge in order to be merged.
Yeah it gets real confusing. How about following the same rules for the 
OMAPZOOM kernel here too: any patch w.r.t OMAPZOOM comes:
Subj: RE: [OMAPZOOM PATCH 0/5] DSPBRIDGE: blah blah blah.

Helps to keep things in perspective..
Regards,
Nishanth Menon

N�r��yb�X��ǧv�^�)޺{.n�+{��f��{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�mzZ+�ݢj��!�i

[PATCH] I2C: Call request_irq with IRQF_DISABLED

2009-03-05 Thread Ari Kauppi
I have observed some Spurious IRQ's for I2C1 when all kernel hacking options
(and thus LOCKDEP) are disabled.

Applying Richard Woodruff's 'I2C bug fixes for L-O and L-Z' seems to help
but IRQF_DISABLED is needed for proper behaviour.

Signed-off-by: Ari Kauppi ext-ari.kau...@nokia.com
---
 drivers/i2c/busses/i2c-omap.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 0c3ed41..18af43f 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -847,7 +847,7 @@ omap_i2c_probe(struct platform_device *pdev)
omap_i2c_init(dev);
 
isr = (dev-rev  OMAP_I2C_REV_2) ? omap_i2c_rev1_isr : omap_i2c_isr;
-   r = request_irq(dev-irq, isr, 0, pdev-name, dev);
+   r = request_irq(dev-irq, isr, IRQF_DISABLED, pdev-name, dev);
 
if (r) {
dev_err(dev-dev, failure requesting irq %i\n, dev-irq);
-- 
1.5.6.5

--
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Kanigeri, Hari
Nishant,

 Yeah it gets real confusing. How about following the same 
 rules for the OMAPZOOM kernel here too: any patch w.r.t 
 OMAPZOOM comes:
 Subj: RE: [OMAPZOOM PATCH 0/5] DSPBRIDGE: blah blah blah.
 

-- I agree with your suggestion. The subject should have OMAPZOOM to 
differentiate.



Thank you,
Best regards,
Hari
 

 -Original Message-
 From: Menon, Nishanth 
 Sent: Thursday, March 05, 2009 7:52 AM
 To: Felipe Contreras; Kanigeri, Hari
 Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; 
 linux-omap@vger.kernel.org
 Subject: RE: [PATCH 0/5] DSPBRIDGE: patches.
 
  -Original Message-
  From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- 
  ow...@vger.kernel.org] On Behalf Of Felipe Contreras
  Sent: Thursday, March 05, 2009 3:42 PM
  To: Kanigeri, Hari
  Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; linux- 
  o...@vger.kernel.org
  Subject: Re: [PATCH 0/5] DSPBRIDGE: patches.
  
  On Thu, Mar 5, 2009 at 3:18 PM, Kanigeri, Hari 
 h-kanige...@ti.com wrote:
   Hi Ameya,
  
   Hi Fernando,
  
   Are you using tidspbridge-pm branch from 
   http://gitorious.org/projects/lk/repos/mainline ?
  
   Cheers,
   Ameya.
  
   -- The Bridge patches will be based on omapzoom tree.
  
  We are in linux-omap, not omapzoom, and this is the 
 tidspbridge branch 
  in linux-omap:
  http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-
  2.6.git;a=shortlog;h=tidspbridge
  
  I'm sure you don't want to increase the discrepancy between 
 linux-omap 
  and omapzoom, so the patches sent to l-o should apply on top of the 
  l-o tidspbridge in order to be merged.
 Yeah it gets real confusing. How about following the same 
 rules for the OMAPZOOM kernel here too: any patch w.r.t 
 OMAPZOOM comes:
 Subj: RE: [OMAPZOOM PATCH 0/5] DSPBRIDGE: blah blah blah.
 
 Helps to keep things in perspective..
 Regards,
 Nishanth Menon
 
 --
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Menon, Nishanth
Hi Hari,
 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Kanigeri, Hari
 Sent: Thursday, March 05, 2009 3:52 PM
 To: Felipe Contreras
 Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; linux-
 o...@vger.kernel.org
 Subject: RE: [PATCH 0/5] DSPBRIDGE: patches.
  We are in linux-omap, not omapzoom, and this is the
  tidspbridge branch in linux-omap:
  http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.
 6.git;a=shortlog;h=tidspbridge
 
  I'm sure you don't want to increase the discrepancy between
  linux-omap and omapzoom, so the patches sent to l-o should
  apply on top of the l-o tidspbridge in order to be merged.
 
 -- I am sorry, as of now the Bridge patches will be based only on omapzoom
 tree.

Ok, so we have:
a) omapzoom bridge
b) linux omap bridge

Impertinent question: what are our plans b/w these two?

Regards,
Nishanth Menon
--
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Felipe Contreras
On Thu, Mar 5, 2009 at 3:56 PM, Kanigeri, Hari h-kanige...@ti.com wrote:
 Nishant,

 Yeah it gets real confusing. How about following the same
 rules for the OMAPZOOM kernel here too: any patch w.r.t
 OMAPZOOM comes:
 Subj: RE: [OMAPZOOM PATCH 0/5] DSPBRIDGE: blah blah blah.


 -- I agree with your suggestion. The subject should have OMAPZOOM to 
 differentiate.

Nishanth has kindly explained me that this patch, sent to the l-o
mailing list, is not meant for the l-o tree.

A better way to differentiate patches specific for o-z is to send them
to the o-z mailing list, instead of l-o, right?

Tony: Or have you agreed with TI that these [OMAPZOOM] patches that
don't apply on top of l-o are ok here?

-- 
Felipe Contreras
--
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 9/9] omap34xxcam: Add camera driver

2009-03-05 Thread Sakari Ailus

Alexey Klimov wrote:

+static int vidioc_g_fmt_vid_cap(struct file *file, void *fh,
+   struct v4l2_format *f)
+{
+   struct omap34xxcam_fh *ofh = fh;
+   struct omap34xxcam_videodev *vdev = ofh-vdev;
+
+   if (vdev-vdev_sensor == v4l2_int_device_dummy())
+   return -EINVAL;
+
+   mutex_lock(vdev-mutex);
+   f-fmt.pix = vdev-pix;
+   mutex_unlock(vdev-mutex);


H, you are using mutex_lock to lock reading from vdev structure..
Well, i don't if this is right approach. I am used to that mutex_lock is
used to prevent _changing_ of members in structure..


The vdev-mutex is acquired since we want to prevent concurrent access 
to vdev-pix. Otherwise it might change while we are reading it, right?



+static int vidioc_s_fmt_vid_cap(struct file *file, void *fh,
+   struct v4l2_format *f)
+{
+   struct omap34xxcam_fh *ofh = fh;
+   struct omap34xxcam_videodev *vdev = ofh-vdev;
+   struct v4l2_pix_format pix_tmp;
+   struct v4l2_fract timeperframe;
+   int rval;
+
+   if (vdev-vdev_sensor == v4l2_int_device_dummy())
+   return -EINVAL;
+
+   mutex_lock(vdev-mutex);
+   if (vdev-streaming) {
+   rval = -EBUSY;
+   goto out;
+   }


Well, why don't remove goto, place return -EBUSY, and move mutex after
if (vdev-streaming) check ?


The streaming state may change in the meantime. See vidioc_streamon. 
It's not very likely but possible as far as I understand.



+static int vidioc_reqbufs(struct file *file, void *fh,
+ struct v4l2_requestbuffers *b)
+{
+   struct omap34xxcam_fh *ofh = fh;
+   struct omap34xxcam_videodev *vdev = ofh-vdev;
+   int rval;
+
+   if (vdev-vdev_sensor == v4l2_int_device_dummy())
+   return -EINVAL;
+
+   mutex_lock(vdev-mutex);
+   if (vdev-streaming) {
+   mutex_unlock(vdev-mutex);
+   return -EBUSY;
+   }


If i'm doing this i prefer to place mutex_lock after this
if(vdev-streaming) check.


Same here.


+static int omap34xxcam_device_register(struct v4l2_int_device *s)
+{
+   struct omap34xxcam_videodev *vdev = s-u.slave-master-priv;
+   struct omap34xxcam_hw_config hwc;
+   int rval;
+
+   /* We need to check rval just once. The place is here. */


I didn't understand this comment. You doing nothin in next few lines
with int variable rval(which introduced in this function). Is comment
talking about struct v4l2_int_device *s ?


Yes. If the g_priv() succeeds now it will succeed in future, too. This 
comes from the platform data through the slave device.



+   /* Are we the first slave? */
+   if (vdev-slaves == 1) {
+   /* initialize the video_device struct */
+   vdev-vfd = video_device_alloc();
+   if (!vdev-vfd) {
+   dev_err(vdev-vfd-dev,
+   could not allocate video device struct\n);


Do i understand you code in right way ?
You call video_device_alloc() to get vdev-vfd. Then if vdev-vfd is
null(empty) you make message dev_err which based on vdev-vfd-dev but
dev-vfd allocating is failed.. If i'm not wrong you message will
provide kernel oops.
One more point here is that you use dev_err(vdev-vfd-dev before call
to video_device_alloc() in this function.


Indeed. Others hit this already. Thanks.


+static int __init omap34xxcam_init(void)
+{
+   struct omap34xxcam_device *cam;
+   int i;
+
+   cam = kzalloc(sizeof(*cam), GFP_KERNEL);
+   if (!cam) {
+   printk(KERN_ERR %s: could not allocate memory\n, __func__);
+   goto err;


If kzalloc failed you return -ENODEV; but this is ENOMEM error.


Yes. Will fix.

Thanks again for the comments.

--
Sakari Ailus
sakari.ai...@maxwell.research.nokia.com
--
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] OMAP3: Fixed crash bug with serial + suspend

2009-03-05 Thread Tero Kristo
It was possible for an unhandled interrupt to occur if there was incoming
serial traffic during wakeup from suspend. This was caused by the code
in arch-arm/mach-omap2/serial.c keeping interrupt enabled all the time,
but not acking its interrupts. Applies on top of PM branch.

Signed-off-by: Tero Kristo tero.kri...@nokia.com
---
 arch/arm/mach-omap2/pm34xx.c |   15 +++
 arch/arm/mach-omap2/serial.c |   14 ++
 arch/arm/plat-omap/include/mach/serial.h |1 +
 3 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 9102cee..5a627db 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -629,7 +629,22 @@ static void omap3_pm_finish(void)
pm_idle = saved_idle;
 }
 
+/* Hooks to enable / disable UART interrupts during suspend */
+static int omap3_pm_begin(suspend_state_t state)
+{
+   omap_uart_enable_irqs(0);
+   return 0;
+}
+
+static void omap3_pm_end(void)
+{
+   omap_uart_enable_irqs(1);
+   return;
+}
+
 static struct platform_suspend_ops omap_pm_ops = {
+   .begin  = omap3_pm_begin,
+   .end= omap3_pm_end,
.prepare= omap3_pm_prepare,
.enter  = omap3_pm_enter,
.finish = omap3_pm_finish,
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 90f1c67..e77567a 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -432,6 +432,20 @@ static void omap_uart_idle_init(struct omap_uart_state 
*uart)
WARN_ON(ret);
 }
 
+void omap_uart_enable_irqs(int enable)
+{
+   int ret;
+   struct omap_uart_state *uart;
+
+   list_for_each_entry(uart, uart_list, node) {
+   if (enable)
+   ret = request_irq(uart-p-irq, omap_uart_interrupt,
+   IRQF_SHARED, serial idle, (void *)uart);
+   else
+   free_irq(uart-p-irq, (void *)uart);
+   }
+}
+
 static ssize_t sleep_timeout_show(struct kobject *kobj,
  struct kobj_attribute *attr,
  char *buf)
diff --git a/arch/arm/plat-omap/include/mach/serial.h 
b/arch/arm/plat-omap/include/mach/serial.h
index 8e89585..7ca1f27 100644
--- a/arch/arm/plat-omap/include/mach/serial.h
+++ b/arch/arm/plat-omap/include/mach/serial.h
@@ -47,6 +47,7 @@ extern void omap_uart_check_wakeup(void);
 extern void omap_uart_prepare_suspend(void);
 extern void omap_uart_prepare_idle(int num);
 extern void omap_uart_resume_idle(int num);
+extern void omap_uart_enable_irqs(int enable);
 #endif
 
 #endif
-- 
1.5.4.3

--
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Kanigeri, Hari
Hi,

 Ok, so we have:
 a) omapzoom bridge
 b) linux omap bridge
 
 Impertinent question: what are our plans b/w these two?
 

A. omapzoom bridge -- As far as I know, this will be the master tree for the 
DSPBridge code. The Bridge patches will be based on this tree. I think it was 
already communicated some time ago that the linux-omap mailing list will be 
used for Bridge discussions and for sending the Bridge patches to OMAPZOOM. 
There is no separate mailing list for omapzoom.

B. linux omap bridge -- I think this tree is maintained by Hiroshi by merging 
the patches that are sent to OMAPZOOM tree. The only difference that should be 
between the omapzoom tree and linux omap tree is the Power management. Omapzoom 
Bridge uses T.I Power management, where as the linux omap Bridge uses open 
source Power management. So, any patches related to open source power 
manaegment will be based on linux omap tree. The maintainer of linux omap 
Bridge tree should sync up the Bridge changes from the omapzoom tree.


Thank you,
Best regards,
Hari
 

 -Original Message-
 From: Menon, Nishanth 
 Sent: Thursday, March 05, 2009 8:05 AM
 To: Kanigeri, Hari; Felipe Contreras
 Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; 
 linux-omap@vger.kernel.org
 Subject: RE: [PATCH 0/5] DSPBRIDGE: patches.
 
 Hi Hari,
  -Original Message-
  From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- 
  ow...@vger.kernel.org] On Behalf Of Kanigeri, Hari
  Sent: Thursday, March 05, 2009 3:52 PM
  To: Felipe Contreras
  Cc: Ameya Palande; Guzman Lugo, Fernando; Hiroshi DOYU; linux- 
  o...@vger.kernel.org
  Subject: RE: [PATCH 0/5] DSPBRIDGE: patches.
   We are in linux-omap, not omapzoom, and this is the tidspbridge 
   branch in linux-omap:
   http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.
  6.git;a=shortlog;h=tidspbridge
  
   I'm sure you don't want to increase the discrepancy between 
   linux-omap and omapzoom, so the patches sent to l-o 
 should apply on 
   top of the l-o tidspbridge in order to be merged.
  
  -- I am sorry, as of now the Bridge patches will be based only on 
  omapzoom tree.
 
 Ok, so we have:
 a) omapzoom bridge
 b) linux omap bridge
 
 Impertinent question: what are our plans b/w these two?
 
 Regards,
 Nishanth Menon
 --
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


where is struct constraint_id defined?

2009-03-05 Thread david . hagood
I am trying to build the OMAP3 graphics kernel module against
2.6.29-rc7-omap1 (from GIT), and have been running into problems getting
it to build.

Two problems were pretty easy: the TI code was including asm/resource.h
and asm/semaphore.h rather than linux/resource.h and
linux/semaphore.h.

Having made those changes, it builds all the way through to the TI
supplied sysutils_linux.c, which barfs with :

In file included from
/space/src/OMAP35x_Graphics_SDC_3_00_00_06/GFX_Linux_KM/services4/srvkm/env/linux/kbuild/../../../../../services4/system/omap3430/sysutils.c:28:
/space/src/OMAP35x_Graphics_SDC_3_00_00_06/GFX_Linux_KM/services4/srvkm/env/linux/kbuild/../../../../../services4/system/omap3430/sysutils_linux.c:154:
error: variable 'cnstr_id_vdd2' has initializer but incomplete type

(and many other errors).

The problem line of the code is:

static struct constraint_id cnstr_id_vdd2 = {

and I cannot find a definition of struct constraint_id anywhere in the
kernel.

Has this been renamed, or moved, or am I looking in the wrong place?



--
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 0/5] DSPBRIDGE: patches.

2009-03-05 Thread Tony Lindgren
* Felipe Contreras felipe.contre...@gmail.com [090305 06:06]:
 On Thu, Mar 5, 2009 at 3:56 PM, Kanigeri, Hari h-kanige...@ti.com wrote:
  Nishant,
 
  Yeah it gets real confusing. How about following the same
  rules for the OMAPZOOM kernel here too: any patch w.r.t
  OMAPZOOM comes:
  Subj: RE: [OMAPZOOM PATCH 0/5] DSPBRIDGE: blah blah blah.
 
 
  -- I agree with your suggestion. The subject should have OMAPZOOM to 
  differentiate.
 
 Nishanth has kindly explained me that this patch, sent to the l-o
 mailing list, is not meant for the l-o tree.
 
 A better way to differentiate patches specific for o-z is to send them
 to the o-z mailing list, instead of l-o, right?
 
 Tony: Or have you agreed with TI that these [OMAPZOOM] patches that
 don't apply on top of l-o are ok here?

Well as long as they're clearly tagged as OMAPZOOM, things don't get
too confusing, so I'm OK with that.

But in general I'm worried as it looks like the zoom tree is just
piling up more and more hacks and ifdefs with no serious attempt to
merge that code upstream.

Everybody, we need to get the infrastructure pieces done properly
and into the mainline tree so we can use that for all our omap needs.

Sure some board specific hacks will be still needed here and there,
and tons of the omap and driver patches already apply against the
mainline kernel code.

It's up to each developer to submit their patches through the right
mailing lists to the mainline kernel. Piling up code into some other
trees only increases the diff against the mainline tree. 

Everybody, when you see a piece of omap code that's not in the
mainline kernel yet, whine and complain until the code gets
integrated.

Tony
--
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 3/7] ARM: OMAP: Add command line option for I2C bus speed

2009-03-05 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [090304 13:51]:
 From: Jarkko Nikula jarkko.nik...@nokia.com
 
 This patch adds a new command line option i2c_bus=bus_id,clkrate into
 I2C bus registration helper. Purpose of the option is to override the
 default board specific bus speed which is supplied by the
 omap_register_i2c_bus.
 
 The default bus speed is typically set to speed of slowest I2C chip on the
 bus and overriding allow to use some experimental configurations or updated
 chip versions without any kernel modifications.

Jarkko, this should also be in Documentation/kernel-parameters.txt. Can
you please reply with a patch for that, and I'll fold it into this
patch?

Also, maybe it should be called omap_i2c_bus instead of i2c_bus?

Regards,

Tony
 
 Signed-off-by: Jarkko Nikula jarkko.nik...@nokia.com
 Signed-off-by: Tony Lindgren t...@atomide.com
 ---
  arch/arm/plat-omap/i2c.c |   54 
 +-
  1 files changed, 44 insertions(+), 10 deletions(-)
 
 diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c
 index 3e95954..aa70e43 100644
 --- a/arch/arm/plat-omap/i2c.c
 +++ b/arch/arm/plat-omap/i2c.c
 @@ -119,6 +119,46 @@ static void __init omap_i2c_mux_pins(int bus)
   omap_cfg_reg(scl);
  }
  
 +static int __init omap_i2c_nr_ports(void)
 +{
 + int ports = 0;
 +
 + if (cpu_class_is_omap1())
 + ports = 1;
 + else if (cpu_is_omap24xx())
 + ports = 2;
 + else if (cpu_is_omap34xx())
 + ports = 3;
 +
 + return ports;
 +}
 +
 +/**
 + * omap_i2c_bus_setup - Process command line options for the I2C bus speed
 + * @str: String of options
 + *
 + * This function allow to override the default I2C bus speed for given I2C
 + * bus with a command line option.
 + *
 + * Format: i2c_bus=bus_id,clkrate (in kHz)
 + *
 + * Returns 1 on success, 0 otherwise.
 + */
 +static int __init omap_i2c_bus_setup(char *str)
 +{
 + int ports;
 + int ints[3];
 +
 + ports = omap_i2c_nr_ports();
 + get_options(str, 3, ints);
 + if (ints[0]  2 || ints[1]  1 || ints[1]  ports)
 + return 0;
 + i2c_rate[ints[1] - 1] = ints[2];
 +
 + return 1;
 +}
 +__setup(i2c_bus=, omap_i2c_bus_setup);
 +
  /**
   * omap_register_i2c_bus - register I2C bus with device descriptors
   * @bus_id: bus id counting from number 1
 @@ -132,19 +172,12 @@ int __init omap_register_i2c_bus(int bus_id, u32 
 clkrate,
 struct i2c_board_info const *info,
 unsigned len)
  {
 - int ports, err;
 + int err;
   struct platform_device *pdev;
   struct resource *res;
   resource_size_t base, irq;
  
 - if (cpu_class_is_omap1())
 - ports = 1;
 - else if (cpu_is_omap24xx())
 - ports = 2;
 - else if (cpu_is_omap34xx())
 - ports = 3;
 -
 - BUG_ON(bus_id  1 || bus_id  ports);
 + BUG_ON(bus_id  1 || bus_id  omap_i2c_nr_ports());
  
   if (info) {
   err = i2c_register_board_info(bus_id, info, len);
 @@ -153,7 +186,8 @@ int __init omap_register_i2c_bus(int bus_id, u32 clkrate,
   }
  
   pdev = omap_i2c_devices[bus_id - 1];
 - *(u32 *)pdev-dev.platform_data = clkrate;
 + if (i2c_rate[bus_id - 1] == 0)
 + i2c_rate[bus_id - 1] = clkrate;
  
   if (bus_id == 1) {
   res = pdev-resource;
 
 --
 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
--
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


Embedded Linux Conference

2009-03-05 Thread Hans Verkuil
Just FYI:

I'll be attending the Embedded Linux Conference in San Francisco, April 
6th-8th (http://www.embeddedlinuxconference.com/elc_2009).

This might be a good opportunity to discuss omap and davinci V4L2 issues 
face-to-face. Let me know if you are interested.

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG
--
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 4/5] OMAP3430SDP: Add support for Camera Kit v3

2009-03-05 Thread Curran, Dominic

Hi Kim

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of DongSoo(Nathaniel) Kim
 Sent: Wednesday, March 04, 2009 8:58 PM
 To: Aguirre Rodriguez, Sergio Alberto
 Cc: linux-me...@vger.kernel.org; linux-omap@vger.kernel.org; Sakari Ailus;
 Tuukka.O Toivonen; Hiroshi DOYU; MiaoStanley; Nagalla, Hari; Hiremath,
 Vaibhav; Lakhani, Amish; Menon, Nishanth
 Subject: Re: [PATCH 4/5] OMAP3430SDP: Add support for Camera Kit v3

 Hi Sergio,



 On Wed, Mar 4, 2009 at 5:44 AM, Aguirre Rodriguez, Sergio Alberto
 saagui...@ti.com wrote:
  +   /* turn on analog power */
  +   twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
  +   VAUX_2_8_V, TWL4030_VAUX2_DEDICATED);
  +   twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
  +   VAUX_DEV_GRP_P1, TWL4030_VAUX2_DEV_GRP);
  +
  +   /* out of standby */
  +   gpio_set_value(MT9P012_STANDBY_GPIO, 0);
  +   udelay(1000);

 It seems better using msleep rather than udelay for 1000us much. Just
 to be safe :)
 How about you?


Why is msleep safer than udelay ?

--
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] OMAP3: Fixed crash bug with serial + suspend

2009-03-05 Thread Kevin Hilman
Tero Kristo tero.kri...@nokia.com writes:

 It was possible for an unhandled interrupt to occur if there was incoming
 serial traffic during wakeup from suspend. This was caused by the code
 in arch-arm/mach-omap2/serial.c keeping interrupt enabled all the time,
 but not acking its interrupts. Applies on top of PM branch.

 Signed-off-by: Tero Kristo tero.kri...@nokia.com

Thanks, pushed to PM branch.

Kevin

 ---
  arch/arm/mach-omap2/pm34xx.c |   15 +++
  arch/arm/mach-omap2/serial.c |   14 ++
  arch/arm/plat-omap/include/mach/serial.h |1 +
  3 files changed, 30 insertions(+), 0 deletions(-)

 diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
 index 9102cee..5a627db 100644
 --- a/arch/arm/mach-omap2/pm34xx.c
 +++ b/arch/arm/mach-omap2/pm34xx.c
 @@ -629,7 +629,22 @@ static void omap3_pm_finish(void)
   pm_idle = saved_idle;
  }
  
 +/* Hooks to enable / disable UART interrupts during suspend */
 +static int omap3_pm_begin(suspend_state_t state)
 +{
 + omap_uart_enable_irqs(0);
 + return 0;
 +}
 +
 +static void omap3_pm_end(void)
 +{
 + omap_uart_enable_irqs(1);
 + return;
 +}
 +
  static struct platform_suspend_ops omap_pm_ops = {
 + .begin  = omap3_pm_begin,
 + .end= omap3_pm_end,
   .prepare= omap3_pm_prepare,
   .enter  = omap3_pm_enter,
   .finish = omap3_pm_finish,
 diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
 index 90f1c67..e77567a 100644
 --- a/arch/arm/mach-omap2/serial.c
 +++ b/arch/arm/mach-omap2/serial.c
 @@ -432,6 +432,20 @@ static void omap_uart_idle_init(struct omap_uart_state 
 *uart)
   WARN_ON(ret);
  }
  
 +void omap_uart_enable_irqs(int enable)
 +{
 + int ret;
 + struct omap_uart_state *uart;
 +
 + list_for_each_entry(uart, uart_list, node) {
 + if (enable)
 + ret = request_irq(uart-p-irq, omap_uart_interrupt,
 + IRQF_SHARED, serial idle, (void *)uart);
 + else
 + free_irq(uart-p-irq, (void *)uart);
 + }
 +}
 +
  static ssize_t sleep_timeout_show(struct kobject *kobj,
 struct kobj_attribute *attr,
 char *buf)
 diff --git a/arch/arm/plat-omap/include/mach/serial.h 
 b/arch/arm/plat-omap/include/mach/serial.h
 index 8e89585..7ca1f27 100644
 --- a/arch/arm/plat-omap/include/mach/serial.h
 +++ b/arch/arm/plat-omap/include/mach/serial.h
 @@ -47,6 +47,7 @@ extern void omap_uart_check_wakeup(void);
  extern void omap_uart_prepare_suspend(void);
  extern void omap_uart_prepare_idle(int num);
  extern void omap_uart_resume_idle(int num);
 +extern void omap_uart_enable_irqs(int enable);
  #endif
  
  #endif
 -- 
 1.5.4.3

 --
 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
--
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 2/2] ASoC: Add headset jack detection for SDP3430 machine driver

2009-03-05 Thread Lopez Cruz, Misael
Add headset jack detection for SDP3430 boards using SoC jack
reporting interface. Headset detection on SDP3430 board is
achieved through TWL4030 GPIO_2 pin.

Signed-off-by: Misael Lopez Cruz x0052...@ti.com
---
 sound/soc/omap/sdp3430.c |   43 +--
 1 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/sound/soc/omap/sdp3430.c b/sound/soc/omap/sdp3430.c
index 4eab4b4..715c648 100644
--- a/sound/soc/omap/sdp3430.c
+++ b/sound/soc/omap/sdp3430.c
@@ -28,6 +28,7 @@
 #include sound/pcm.h
 #include sound/soc.h
 #include sound/soc-dapm.h
+#include sound/jack.h
 
 #include asm/mach-types.h
 #include mach/hardware.h
@@ -122,7 +123,7 @@ static int sdp3430_twl4030_init(struct snd_soc_codec *codec)
/* SDP3430 connected pins */
snd_soc_dapm_enable_pin(codec, Ext Mic);
snd_soc_dapm_enable_pin(codec, Ext Spk);
-   snd_soc_dapm_enable_pin(codec, Headset Jack);
+   snd_soc_dapm_disable_pin(codec, Headset Jack);
 
/* TWL4030 not connected pins */
snd_soc_dapm_nc_pin(codec, AUXL);
@@ -144,6 +145,27 @@ static int sdp3430_twl4030_init(struct snd_soc_codec 
*codec)
return ret;
 }
 
+/* Headset jack */
+static struct snd_soc_jack hs_jack;
+
+/* Headset jack detection DAPM pins */
+static struct snd_soc_jack_pin hs_jack_pins[] = {
+   {
+   .pin = Headset Jack,
+   .mask = SND_JACK_HEADSET,
+   },
+};
+
+/* Headset jack detection gpios */
+static struct snd_soc_jack_gpio hs_jack_gpios[] = {
+   {
+   .gpio = (OMAP_MAX_GPIO_LINES + 2),
+   .name = hsdet-gpio,
+   .report = SND_JACK_HEADSET,
+   .debounce_time = 200,
+   },
+};
+
 /* Digital audio interface glue - connects codec -- CPU */
 static struct snd_soc_dai_link sdp3430_dai = {
.name = TWL4030,
@@ -194,7 +216,21 @@ static int __init sdp3430_soc_init(void)
if (ret)
goto err1;
 
-   return 0;
+   /* Headset jack detection */
+   ret = snd_soc_jack_new(snd_soc_sdp3430, SDP3430 headset jack,
+   SND_JACK_HEADSET, hs_jack);
+   if (ret)
+   return ret;
+
+   ret = snd_soc_jack_add_pins(hs_jack, ARRAY_SIZE(hs_jack_pins),
+   hs_jack_pins);
+   if (ret)
+   return ret;
+
+   ret = snd_soc_jack_add_gpios(hs_jack, ARRAY_SIZE(hs_jack_gpios),
+   hs_jack_gpios);
+
+   return ret;
 
 err1:
printk(KERN_ERR Unable to add platform device\n);
@@ -206,6 +242,9 @@ module_init(sdp3430_soc_init);
 
 static void __exit sdp3430_soc_exit(void)
 {
+   snd_soc_jack_free_gpios(hs_jack, ARRAY_SIZE(hs_jack_gpios),
+   hs_jack_gpios);
+
platform_device_unregister(sdp3430_snd_device);
 }
 module_exit(sdp3430_soc_exit);
-- 
1.5.4.3
--
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] input: twl4030-pwrbutton: avoid merge conflicts

2009-03-05 Thread Felipe Balbi
sync up with the version going upstream.

Signed-off-by: Felipe Balbi felipe.ba...@nokia.com
---
This patch is syncing with the fixed up version accepted in
mainline. Should be applied to avoid merge conflicts
on the next merge window.

 drivers/input/misc/Kconfig |6 ++
 drivers/input/misc/twl4030-pwrbutton.c |   87 
 2 files changed, 49 insertions(+), 44 deletions(-)

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 9667b50..6fa9e38 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -196,6 +196,12 @@ config INPUT_CM109
 config INPUT_TWL4030_PWRBUTTON
tristate TWL4030 Power button Driver
depends on TWL4030_CORE
+   help
+ Say Y here if you want to enable power key reporting via the
+ TWL4030 family of chips.
+
+ To compile this driver as a module, choose M here. The module will
+ be called twl4030_pwrbutton.
 
 config INPUT_UINPUT
tristate User level driver support
diff --git a/drivers/input/misc/twl4030-pwrbutton.c 
b/drivers/input/misc/twl4030-pwrbutton.c
index b0a9c9f..7150830 100644
--- a/drivers/input/misc/twl4030-pwrbutton.c
+++ b/drivers/input/misc/twl4030-pwrbutton.c
@@ -1,11 +1,10 @@
 /**
- * drivers/i2c/chips/twl4030-pwrbutton.c
+ * twl4030-pwrbutton.c - TWL4030 Power Button Input Driver
  *
- * Driver for sending triton2 power button event to input-layer
- *
- * Copyright (C) 2008 Nokia Corporation
+ * Copyright (C) 2008-2009 Nokia Corporation
  *
  * Written by Peter De Schrijver peter.de-schrij...@nokia.com
+ * Several fixes by Felipe Balbi felipe.ba...@nokia.com
  *
  * This file is subject to the terms and conditions of the GNU General
  * Public License. See the file COPYING in the main directory of this
@@ -34,18 +33,18 @@
 
 #define STS_HW_CONDITIONS 0xf
 
-static struct input_dev *powerbutton_dev;
-static struct device *dbg_dev;
-
-static irqreturn_t powerbutton_irq(int irq, void *dev_id)
+static irqreturn_t powerbutton_irq(int irq, void *_pwr)
 {
+   struct input_dev *pwr = _pwr;
int err;
u8 value;
 
 #ifdef CONFIG_LOCKDEP
/* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
-* we don't want and can't tolerate.  Although it might be
-* friendlier not to borrow this thread context...
+* we don't want and can't tolerate since this is a threaded
+* IRQ and can sleep due to the i2c reads it has to issue.
+* Although it might be friendlier not to borrow this thread
+* context...
 */
local_irq_enable();
 #endif
@@ -53,11 +52,11 @@ static irqreturn_t powerbutton_irq(int irq, void *dev_id)
err = twl4030_i2c_read_u8(TWL4030_MODULE_PM_MASTER, value,
  STS_HW_CONDITIONS);
if (!err)  {
-   input_report_key(powerbutton_dev, KEY_POWER,
-value  PWR_PWRON_IRQ);
+   input_report_key(pwr, KEY_POWER, value  PWR_PWRON_IRQ);
+   input_sync(pwr);
} else {
-   dev_err(dbg_dev, twl4030: i2c error %d while reading TWL4030
-PM_MASTER STS_HW_CONDITIONS register\n, err);
+   dev_err(pwr-dev.parent, twl4030: i2c error %d while reading
+TWL4030 PM_MASTER STS_HW_CONDITIONS register\n, err);
}
 
return IRQ_HANDLED;
@@ -65,66 +64,64 @@ static irqreturn_t powerbutton_irq(int irq, void *dev_id)
 
 static int __devinit twl4030_pwrbutton_probe(struct platform_device *pdev)
 {
-   int err = 0;
+   struct input_dev *pwr;
int irq = platform_get_irq(pdev, 0);
+   int err;
 
-   dbg_dev = pdev-dev;
+   pwr = input_allocate_device();
+   if (!pwr) {
+   dev_dbg(pdev-dev, Can't allocate power button\n);
+   err = -ENOMEM;
+   goto out;
+   }
 
-   /* PWRBTN == PWRON */
err = request_irq(irq, powerbutton_irq,
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
-   twl4030-pwrbutton, NULL);
+   twl4030_pwrbutton, pwr);
if (err  0) {
-   dev_dbg(pdev-dev, Can't get IRQ for power button: %d\n, 
err);
-   goto out;
-   }
-
-   powerbutton_dev = input_allocate_device();
-   if (!powerbutton_dev) {
-   dev_dbg(pdev-dev, Can't allocate power button\n);
-   err = -ENOMEM;
-   goto free_irq_and_out;
+   dev_dbg(pdev-dev, Can't get IRQ for pwrbutton: %d\n, err);
+   goto free_input_dev;
}
 
-   powerbutton_dev-evbit[0] = BIT_MASK(EV_KEY);
-   powerbutton_dev-keybit[BIT_WORD(KEY_POWER)] = BIT_MASK(KEY_POWER);
-   powerbutton_dev-name = triton2-pwrbutton;
+   pwr-evbit[0] = BIT_MASK(EV_KEY);
+   pwr-keybit[BIT_WORD(KEY_POWER)] = BIT_MASK(KEY_POWER);
+   pwr-name = twl4030_pwrbutton;
+   pwr-phys = 

Re: [PATCH] I2C: Call request_irq with IRQF_DISABLED

2009-03-05 Thread Felipe Balbi
On Thu, Mar 05, 2009 at 03:54:24PM +0200, Ari Kauppi wrote:
 I have observed some Spurious IRQ's for I2C1 when all kernel hacking options
 (and thus LOCKDEP) are disabled.
 
 Applying Richard Woodruff's 'I2C bug fixes for L-O and L-Z' seems to help
 but IRQF_DISABLED is needed for proper behaviour.
 
 Signed-off-by: Ari Kauppi ext-ari.kau...@nokia.com

This driver should be in sync with mainline, the only missing commit is

commit 3487568e15df6e133f5f55779dec614dbeb68a99
Author: Eero Nurkkala ext-eero.nurkk...@nokia.com
Date:   Tue Nov 25 13:03:46 2008 +0200

i2c: i2c-omap: Fix BUFSTAT_REG reading

The number of bytes to be received is read from wrong
place with all OMAPs with highspeed I2C support,
which involves a FIFO and BUFSTAT_REG. It is the 6
bits starting from the bit 8 in the BUFSTAT_REG
that indicate this amount of bytes to be read.
Moreover, only the 6 LSB:s are relevant for the
TXSTAT field.

Signed-off-by: Eero Nurkkala ext-eero.nurkk...@nokia.com
Signed-off-by: Tony Lindgren t...@atomide.com

That and this one should be going via linux-i2c mainling list. Could you
send Eero's patch and yours to Jean Delvare (i2c maintainer) ? Please
keep linux-omap in the loop.

That said, this makes sense and avoids that we get interrupts while
handling a previous interrupt.

Acked-by: Felipe Balbi felipe.ba...@nokia.com

-- 
balbi
--
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 3/7] ARM: OMAP: Add command line option for I2C bus speed

2009-03-05 Thread Felipe Balbi
On Thu, Mar 05, 2009 at 08:20:43AM -0800, Tony Lindgren wrote:
 Also, maybe it should be called omap_i2c_bus instead of i2c_bus?

or maybe not, then other archs would have the opportunity to setup their
own function to handle i2c_bus= cmdline without having to add a brand
new arch_i2c_bus one ;-)

-- 
balbi
--
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] I2C: Call request_irq with IRQF_DISABLED

2009-03-05 Thread Jean Delvare
On Thu, 5 Mar 2009 21:35:06 +0200, Felipe Balbi wrote:
 That and this one should be going via linux-i2c mainling list. Could you
 send Eero's patch and yours to Jean Delvare (i2c maintainer) ? Please
 keep linux-omap in the loop.

Come on, folks, how many times will I have to repeat myself and what
MAINTAINERS says? Patches to i2c-omap and every other i2c driver for
embedded platforms go to Ben Dooks (Cc'd), not me.

-- 
Jean Delvare
--
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: [REVIEW PATCH 11/14] OMAP34XXCAM: Add driver

2009-03-05 Thread Sakari Ailus

Hans Verkuil wrote:

Situation 1
 - Instance1: Select sensor 1, and Do queue/dequeue of buffers.
 - Instance2: If sensor 1 is currently selected, Begin loop requesting
internally collected OMAP3ISP statistics (with V4L2 private based IOCTLs)
for performing user-side Auto-exposure, Auto White Balance, Auto Focus
algorithms. And Adjust gains (with S_CTRL) accordingly on sensor as a
result.


Question: if you have multiple sensors, and sensor 1 is selected, can you 
still get statistics from sensor 2? Or is all this still limited to the 
selected sensor? Just want to make sure I understand it all.


The ISP does have submodules and there are some ways of configuring the
data path inside the ISP, but in general just one sensor can be used at
a time in meaningful way.

Sergio, please correct me if I'm wrong: the only case I know that you
can do is to use the ISP normally (data flowing through pretty much all
the ISP modules) with one sensor and write the output of another sensor
directly to memory in one of the parallel/CCP2/CSI2 receivers.

I guess there's no use case for this, however. So just one user at a 
time for the OMAP 3 ISP.




Another thing comes to my mind, though.

Sergio has posted earlier a patchset containing a driver for using the 
ISP to process images from memory to memory. The ISP driver is used 
roughly the same way as with the omap34xxcam and real sensors. The 
interface towards the userspace offered by the driver, however, is 
different, you probably saw it (preview and resizer wrappers).


My opinion has been that the memory-to-memory operation of the ISP 
should also offer V4L2 interface. V4L2, however, doesn't support such 
devices at the moment. The only differences that I can see is that


1. the input is a video buffer instead of sensor and

2. the source format needs to be specified somehow since the ISP can 
also do format conversion. So it's output and input at the same time.


But if we had one video device per ISP, then memory-to-memory operation 
would be just one... input or output or what? :)


Earlier we were thinking of creating one device node for it.

That is probably what the driver should do, yes. The V4L2 spec leaves it up 
to the driver whether you can switch inputs while a capture is in progress. 
In this case I think it is perfectly reasonably for the driver to 
return -EBUSY.


Ok.


I'm not clear if this single-node idea is really helping the user to have
a simpler usage in Situation 1, which I feel will become pretty common on
this driver...


The spec is pretty clear about this, and existing v4l2 applications also 
expect this behavior. Also, suppose you have two video nodes, what happens 
when you want to use the inactive node? How can you tell it is inactive?


open() succeeds.

Currently you can have just one device node using the ISP open. 
omap34xxcam_open() calls isp_get() which fails if the ISP use count was 
non-zero (means one).


Or did I misunderstood something?

--
Sakari Ailus
sakari.ai...@maxwell.research.nokia.com

--
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] I2C: Call request_irq with IRQF_DISABLED

2009-03-05 Thread Felipe Balbi
On Thu, Mar 05, 2009 at 09:03:35PM +0100, Jean Delvare wrote:
 On Thu, 5 Mar 2009 21:35:06 +0200, Felipe Balbi wrote:
  That and this one should be going via linux-i2c mainling list. Could you
  send Eero's patch and yours to Jean Delvare (i2c maintainer) ? Please
  keep linux-omap in the loop.
 
 Come on, folks, how many times will I have to repeat myself and what
 MAINTAINERS says? Patches to i2c-omap and every other i2c driver for
 embedded platforms go to Ben Dooks (Cc'd), not me.

that was my bad, I didn't see Ben was already in Cc.

-- 
balbi
--
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: [REVIEW PATCH 11/14] OMAP34XXCAM: Add driver

2009-03-05 Thread Hans Verkuil
On Thursday 05 March 2009 21:11:02 Sakari Ailus wrote:
 Hans Verkuil wrote:
  Situation 1
   - Instance1: Select sensor 1, and Do queue/dequeue of buffers.
   - Instance2: If sensor 1 is currently selected, Begin loop requesting
  internally collected OMAP3ISP statistics (with V4L2 private based
  IOCTLs) for performing user-side Auto-exposure, Auto White Balance,
  Auto Focus algorithms. And Adjust gains (with S_CTRL) accordingly on
  sensor as a result.
 
  Question: if you have multiple sensors, and sensor 1 is selected, can
  you still get statistics from sensor 2? Or is all this still limited to
  the selected sensor? Just want to make sure I understand it all.

 The ISP does have submodules and there are some ways of configuring the
 data path inside the ISP, but in general just one sensor can be used at
 a time in meaningful way.

 Sergio, please correct me if I'm wrong: the only case I know that you
 can do is to use the ISP normally (data flowing through pretty much all
 the ISP modules) with one sensor and write the output of another sensor
 directly to memory in one of the parallel/CCP2/CSI2 receivers.

 I guess there's no use case for this, however. So just one user at a
 time for the OMAP 3 ISP.



 Another thing comes to my mind, though.

 Sergio has posted earlier a patchset containing a driver for using the
 ISP to process images from memory to memory. The ISP driver is used
 roughly the same way as with the omap34xxcam and real sensors. The
 interface towards the userspace offered by the driver, however, is
 different, you probably saw it (preview and resizer wrappers).

 My opinion has been that the memory-to-memory operation of the ISP
 should also offer V4L2 interface. V4L2, however, doesn't support such
 devices at the moment. The only differences that I can see is that

 1. the input is a video buffer instead of sensor and

 2. the source format needs to be specified somehow since the ISP can
 also do format conversion. So it's output and input at the same time.

 But if we had one video device per ISP, then memory-to-memory operation
 would be just one... input or output or what? :)

 Earlier we were thinking of creating one device node for it.

This sounds like a codec interface as 'described' here:

http://www.xs4all.nl/~hverkuil/spec/v4l2.html#CODEC

It would be a first for V4L2 to have a driver that can do this, but I agree 
that that would be a single device that has both 'output' and 'capture'.

  That is probably what the driver should do, yes. The V4L2 spec leaves
  it up to the driver whether you can switch inputs while a capture is in
  progress. In this case I think it is perfectly reasonably for the
  driver to return -EBUSY.

 Ok.

  I'm not clear if this single-node idea is really helping the user to
  have a simpler usage in Situation 1, which I feel will become pretty
  common on this driver...
 
  The spec is pretty clear about this, and existing v4l2 applications
  also expect this behavior. Also, suppose you have two video nodes, what
  happens when you want to use the inactive node? How can you tell it is
  inactive?

 open() succeeds.

 Currently you can have just one device node using the ISP open.
 omap34xxcam_open() calls isp_get() which fails if the ISP use count was
 non-zero (means one).

 Or did I misunderstood something?

Oh dear. Please don't use 'use counts'. It is perfectly acceptable and 
desirable to have multiple opens on the same video node. Only one file 
handle can do reading/writing/streaming, but others should be able to 
querying controls, set brightness, or whatever at the same time.

Use counts are really bad and totally unnecessary. Only if another file 
handle is in streaming mode (and when using VIDIOC_S_PRIORITY) does it make 
sense to return -EBUSY for certain ioctls or read/write operations. 
Otherwise you shouldn't limit the user from opening the same device node as 
many times as he wants and use that to query the video device.

There are unfortunately a whole bunch of existing v4l2 drivers that have 
this same limitation. These drivers are wrong. It is sadly not very easy to 
fix them, but I can try to prevent the same bug from appearing in new 
drivers.

BTW, I looked at omap24xxcam_open(): data like fh-pix does *not* belong to 
the filehandle struct, it should be part of the top-level data structure. 
You want to be able to do simple things like querying a video node for the 
currently selected format. You can't do that if the format is stored in the 
filehandle! E.g.: you are streaming and you want to run 
v4l2-ctl --get-fmt-video to check what video format is being used. Things 
like this must be supported by a well-written v4l2 driver. Again, sadly 
quite a few v4l2 drivers do this wrong as well :-(

I also see that cam-users is not decreased by one if 
omap24xxcam_sensor_enable() fails.

Note that I'm looking at the code in the v4l-dvb repository, the linux-omap 
git tree might have fixed that already.

Regards,

Hans

RE: omap3 cpuidle interrupt latency

2009-03-05 Thread Premi, Sanjeev
 -Original Message-
 From: Premi, Sanjeev 
 Sent: Wednesday, March 04, 2009 7:52 PM
 To: Premi, Sanjeev; Kevin Hilman
 Cc: linux-omap@vger.kernel.org
 Subject: RE: omap3 cpuidle interrupt latency
 
  -Original Message-
  From: linux-omap-ow...@vger.kernel.org 
  [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of 
 Premi, Sanjeev
  Sent: Tuesday, March 03, 2009 3:54 PM
  To: Kevin Hilman
  Cc: linux-omap@vger.kernel.org
  Subject: RE: omap3 cpuidle interrupt latency
  
   -Original Message-
   From: Kevin Hilman [mailto:khil...@deeprootsystems.com]
   Sent: Tuesday, March 03, 2009 1:16 AM
   To: Premi, Sanjeev
   Cc: linux-omap@vger.kernel.org
   Subject: Re: omap3 cpuidle interrupt latency
   
   Premi, Sanjeev pr...@ti.com writes:
   
I have noticed large interrupt latency when the cpuidle
  is enabled.
e.g. response time for ping goes from avg 10-20ms to 800-1000ms.
(I am at HEAD of the 'pm' branch)
   
   Is it interrupt latency in general you are measuring?  or 
 just the 
   interrupt latency for the smc network driver.  I think 
 what you are 
   seeing is the result of the SMC IRQ not being configured as
  a wakeup
   source, thus a network interrupt will not wake the system,
  but you end
   up waiting for the next idle timer until the system wakes
  and handles
   the network interrupt.
  
  I used SMC as an example. The read over USB is also slow...
  
  I feel there is generic latency. Initially, I was suspecting the 
  hrtimer functions taking long time. But that may not be the case.
  
   
   By default, I don't believe the GPIO interrupt used by the smc is 
   configured as a wakeup source.  Have you configured that 
 GPIO as a 
   wakeup source?
  
  My current measurements are based with all idle related flags 
  'sleep_while_idle', 'clocks_off_while_idle' and 'enable_off_mode'
  set at 0.
  
  Does WFI require a wakeup event? Even when system is not in 'off' 
  stare?
 
 For simple debug, I replaced the _omap_sram_idle() processing with:
   __asm__ (dmb);
   __asm__ (dsb);
   __asm__ (wfi);
 
 Here, again behavior was same for ethernet.
 
 For more simplification, I focused on keypad and touchscreen.
 1) Let the system stay idle for about 10secs
 2) Press the keypad  tap the touchscreen
 3) cat /proc/interrupts
 
 While the keypad interrupts (via SYS_NIRQ) are getting 
 updated; most of the TS interrupts (via GPIO) seem to be 
 missing; With a busy loop in the background OR 
 _omap_sram_idle() commented - not doing WFI - changes the 
 behavior. Each tap on the TS is registered in /proc/interrupts.

On Kevin's suggestion, I tried to disable cpuidle and repeat the
experiment with omap_pm_idle () - with minor mods to ensure that
WFI is executed.

Results was same. While the UART is active (via 5 sec timeout)
all taps on the touchscreen were detected. If the system is kept
idle for about 10 secs, the interrupts are lost.

~sanjeev

 
  
  ~sanjeev
  
   
   Kevin
   
   
The IRQs and FIQs are disabled at the beginning of the function
omap3_enter_idle() but WFI is executed much later in
   _omap_sram_idle().
In between, there is only one check for pending IRQs -
omap_irq_pending()
 
If any interrupt occurs beyond this point is it considered
   by the WFI?
 
To reduce this latency, I am planning to do either/both of thse:
- Add more checks for pending IRQs
- Reduce the time for which the IRQs and FIQs are disabled
 
Benefits will depend upon the behavior of WFI.
 
Best regards,
Sanjeev
   
--
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
   
   --
  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
  
  --
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 4/5] OMAP3430SDP: Add support for Camera Kit v3

2009-03-05 Thread Alexey Klimov
Hello, all

On Thu, Mar 5, 2009 at 7:42 PM, Curran, Dominic dcur...@ti.com wrote:

 Hi Kim

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of DongSoo(Nathaniel) Kim
 Sent: Wednesday, March 04, 2009 8:58 PM
 To: Aguirre Rodriguez, Sergio Alberto
 Cc: linux-me...@vger.kernel.org; linux-omap@vger.kernel.org; Sakari Ailus;
 Tuukka.O Toivonen; Hiroshi DOYU; MiaoStanley; Nagalla, Hari; Hiremath,
 Vaibhav; Lakhani, Amish; Menon, Nishanth
 Subject: Re: [PATCH 4/5] OMAP3430SDP: Add support for Camera Kit v3

 Hi Sergio,



 On Wed, Mar 4, 2009 at 5:44 AM, Aguirre Rodriguez, Sergio Alberto
 saagui...@ti.com wrote:
  +               /* turn on analog power */
  +               twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
  +                               VAUX_2_8_V, TWL4030_VAUX2_DEDICATED);
  +               twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
  +                               VAUX_DEV_GRP_P1, TWL4030_VAUX2_DEV_GRP);
  +
  +               /* out of standby */
  +               gpio_set_value(MT9P012_STANDBY_GPIO, 0);
  +               udelay(1000);

 It seems better using msleep rather than udelay for 1000us much. Just
 to be safe :)
 How about you?


 Why is msleep safer than udelay ?

I have small guess that he is wondering why you are using big delays
with help of udelay(). (It's may be obvious but as we know udelay uses
cpu loops to make delay and msleep calls to scheduler) So, msleep is
more flexible and softer but if you need precise time or you can't
sleep in code you need udelay. Sometimes using udelay is reasonably
required.

-- 
Best regards, Klimov Alexey
--
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 4/5] OMAP3430SDP: Add support for Camera Kit v3

2009-03-05 Thread Curran, Dominic


 -Original Message-
 From: Alexey Klimov [mailto:klimov.li...@gmail.com]
 Sent: Thursday, March 05, 2009 4:05 PM
 To: Curran, Dominic
 Cc: DongSoo(Nathaniel) Kim; Aguirre Rodriguez, Sergio Alberto; linux-
 me...@vger.kernel.org; linux-omap@vger.kernel.org; Sakari Ailus; Tuukka.O
 Toivonen; Hiroshi DOYU; MiaoStanley; Nagalla, Hari; Hiremath, Vaibhav;
 Lakhani, Amish; Menon, Nishanth
 Subject: Re: [PATCH 4/5] OMAP3430SDP: Add support for Camera Kit v3

   +   /* out of standby */
   +   gpio_set_value(MT9P012_STANDBY_GPIO, 0);
   +   udelay(1000);
 
  It seems better using msleep rather than udelay for 1000us much. Just
  to be safe :)
  How about you?
 
 
  Why is msleep safer than udelay ?

 I have small guess that he is wondering why you are using big delays
 with help of udelay(). (It's may be obvious but as we know udelay uses
 cpu loops to make delay and msleep calls to scheduler) So, msleep is
 more flexible and softer but if you need precise time or you can't
 sleep in code you need udelay. Sometimes using udelay is reasonably
 required.


Ah, I did not know that msleep() called scheduler.
Thank you.
--
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


[APPLIED] [PATCH] input: twl4030-pwrbutton: avoid merge conflicts

2009-03-05 Thread Tony Lindgren
This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: 1e2ac5195c19b440b0b095262e11b54c093916ee

PatchWorks
http://patchwork.kernel.org/patch/10147/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=1e2ac5195c19b440b0b095262e11b54c093916ee


--
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/rft 2.6.29-rc3-omap-git] omap3 evm: MMC switch support

2009-03-05 Thread Tony Lindgren
* David Brownell davi...@pacbell.net [090208 12:25]:
 On Wednesday 04 February 2009, Pillai, Manikandan wrote:
  I tested the patch on the OMAP 3 EVM. I still find that the
  hotplug feature does not work on the OMAP3 EVM. The issue is
  that if I read the gpio_cd, I am getting the correct value
  on the gpio pin(INSERT = 0, PLUGOUT = 1) but the interrupts
  are not generated.  
  
  The mmc0 interrupts always shows 0.
 
 Are you getting any other IRQs through the twl4030 code?
 
 There's not a lot of debugging I can do with this, since
 I don't have an EVM ... and since this seems to work OK
 on other boards.  (Testing on SDP being easiest, since
 it's got a slot not tied down with MMC root.)
 
 This patch was basically sent as a seed, since nobody
 else seemed to be filling in the missing MMC/SD pieces
 on that board.

I've pushed this, looks like the mux.[ch] changes had already
been applied in another patch.

Tony
 
 - Dave
 
 
  r...@172.24.190.49:~# cat /proc/interrupts 
             CPU0
   11:          0        INTC  prcm
   12:          4        INTC  DMA
   25:          0        INTC  dispc
   37:       1724        INTC  gp timer
   56:        267        INTC  i2c_omap
   57:          0        INTC  i2c_omap
   61:          0        INTC  i2c_omap
   72:        178        INTC  serial idle, serial
   73:          1        INTC  serial idle
   74:          1        INTC  serial idle
   83:         43        INTC  mmc0
   92:          0        INTC  musb_hdrc
   93:          0        INTC  musb_hdrc
  335:          0        GPIO  ads7846
  336:       3565        GPIO  eth0
  369:          0     twl4030  twl4030_keypad
  378:          0     twl4030  twl4030_usb
  384:          0     twl4030  mmc0
  Err:          0
  
  Regards
  Mani
  
   -Original Message-
   From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
   ow...@vger.kernel.org] On Behalf Of David Brownell
   Sent: Thursday, February 05, 2009 4:53 AM
   To: OMAP
   Subject: [patch/rft 2.6.29-rc3-omap-git] omap3 evm: MMC switch support
   
   Update OMAP3 EVM board support to support the MMC/SD switches,
   when used with the twl4030 based power card.
   
   Also, less usefully, LEDB as a GPIO LED ... it's on the underside
   of the board, so it's probably not very useful to most folk.  The
   LCD backlight is controlled by LEDA though; more useful, though
   its PWM mode might not be practical on this board (I don't know
   how that inductor will affect things).
   
   This is done from schematics, so it needs testing (and maybe some
   bugfixes) from folk with an EVM board.
  
 
 
 --
 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
--
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 0/1] Group and resource assignments for TWL4030

2009-03-05 Thread Tony Lindgren
* David Brownell davi...@pacbell.net [090303 15:38]:
 On Friday 27 February 2009, Tony Lindgren wrote:
  * Peter 'p2' De Schrijver peter.de-schrij...@nokia.com [090215 08:49]:
   On Fri, Feb 13, 2009 at 09:55:21PM +0100, ext David Brownell wrote:
On Tuesday 10 February 2009, Peter 'p2' De Schrijver wrote:

 This patch introduces support for board specific group assignments of 
 TWL4030
 resources. The resource type and type2 fields can also be specified.

Do we have any real examples yet of needing to assign
resources to anything other than P1 (processor)?
   
   Yes. On our custom hardware we use it to assign CLKEN to P3.
 
 P3 roughly translating to system running, with
 no regard to whether ARM(s) or DSP are active, yes?
 
 I've seen hardware which hooks CLKEN to the enable
 line for a 2.8V regulator, and REGEN to the enable
 line for a 2.5V regulator.
 
 Table 5-8 of the chip manual tells me those, along
 with HFCLOCK and a few other resources, are already
 assigned to the P3 (and P1 and P2) groups by device
 reset.  So that use case isn't quite complete.  At
 least some of this look like normal paranoia, to
 defend against hardware and bootloader oddities.  ;)
 
 
 I'm not sure how those should be modeled within
 the regulator framework.  My first thought is to
 just let those particular resources live outside
 that framework, until there's a need for another
 solution ... the main virtue of that framework is
 to have a standard way for Linux to manage things,
 but these are resources it won't be managing.
 The secondary virtue of visibility into hardware
 isn't very compelling here IMO.
 
 
  BTW, this should be discussed and integrated via the driver lists,
  in this case that's Samuel Ortiz and LKML.
 
 Actually this is related to the twl4030-power.c
 driver which has not yet gone upstream.  I'm not
 sure there'd be much point to discussing this on
 the PM list though.
 
 
 So let me suggest a slightly different approach:
 
  - Peter updates $SUBJECT patch to address the
comments from me (data shrink) and Felipe
(use those RES_* symbols in res_config_addrs)
 
  - Tony merges that to the OMAP tree
 
  - Peter starts work on merging twl4030-power.c
to mainline (discuss on LKML etc)
 
 There will be a few more issues to sort with this
 driver.  There are section warnings generated by
 some of the platform code, and the generic script
 doesn't work at all on Beagle.

This sounds OK to me as long as Peter is fine with that.

Tony
--
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


[APPLIED] [PATCH] omap3: Add base address definitions and resources for OMAP

2009-03-05 Thread Tony Lindgren
This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: d0afa95d172f66e2239e38e015e8536dc78e98db

PatchWorks
http://patchwork.kernel.org/patch/9871/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=d0afa95d172f66e2239e38e015e8536dc78e98db


--
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] ARM: OMAP2: Fix missing system control module exports

2009-03-05 Thread Tony Lindgren
Hi,

* George G. Davis gda...@mvista.com [090302 08:19]:
 When building ASoC drivers as modules for SND_OMAP_SOC_MCBSP based
 targets, the build fails because omap_ctrl_{read,write}l lack exports.
 So add the missing exports for omap_ctrl_{read,write}[bwl] to allow
 building these ASoC (and other) drivers as modules.

I think Paul has some comments on how the clock framework should
handle this case without needing to export the omap_ctrl_read/write.

Regards,

Tony
 
 Signed-off-by: George G. Davis gda...@mvista.com
 Acked-by: Jarkko Nikula jarkko.nik...@nokia.com
 ---
  arch/arm/mach-omap2/control.c |6 ++
  1 files changed, 6 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c
 index 5f3aad9..6b14639 100644
 --- a/arch/arm/mach-omap2/control.c
 +++ b/arch/arm/mach-omap2/control.c
 @@ -36,29 +36,35 @@ u8 omap_ctrl_readb(u16 offset)
  {
   return __raw_readb(OMAP_CTRL_REGADDR(offset));
  }
 +EXPORT_SYMBOL(omap_ctrl_readb);
  
  u16 omap_ctrl_readw(u16 offset)
  {
   return __raw_readw(OMAP_CTRL_REGADDR(offset));
  }
 +EXPORT_SYMBOL(omap_ctrl_readw);
  
  u32 omap_ctrl_readl(u16 offset)
  {
   return __raw_readl(OMAP_CTRL_REGADDR(offset));
  }
 +EXPORT_SYMBOL(omap_ctrl_readl);
  
  void omap_ctrl_writeb(u8 val, u16 offset)
  {
   __raw_writeb(val, OMAP_CTRL_REGADDR(offset));
  }
 +EXPORT_SYMBOL(omap_ctrl_writeb);
  
  void omap_ctrl_writew(u16 val, u16 offset)
  {
   __raw_writew(val, OMAP_CTRL_REGADDR(offset));
  }
 +EXPORT_SYMBOL(omap_ctrl_writew);
  
  void omap_ctrl_writel(u32 val, u16 offset)
  {
   __raw_writel(val, OMAP_CTRL_REGADDR(offset));
  }
 +EXPORT_SYMBOL(omap_ctrl_writel);
  
 -- 
 1.6.1.2.MVISTA
 
 --
 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
--
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 4/5] OMAP3430SDP: Add support for Camera Kit v3

2009-03-05 Thread DongSoo(Nathaniel) Kim
Hi Alexey,

On Fri, Mar 6, 2009 at 7:05 AM, Alexey Klimov klimov.li...@gmail.com wrote:
 Hello, all

 On Thu, Mar 5, 2009 at 7:42 PM, Curran, Dominic dcur...@ti.com wrote:

 Hi Kim

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of DongSoo(Nathaniel) Kim
 Sent: Wednesday, March 04, 2009 8:58 PM
 To: Aguirre Rodriguez, Sergio Alberto
 Cc: linux-me...@vger.kernel.org; linux-omap@vger.kernel.org; Sakari Ailus;
 Tuukka.O Toivonen; Hiroshi DOYU; MiaoStanley; Nagalla, Hari; Hiremath,
 Vaibhav; Lakhani, Amish; Menon, Nishanth
 Subject: Re: [PATCH 4/5] OMAP3430SDP: Add support for Camera Kit v3

 Hi Sergio,



 On Wed, Mar 4, 2009 at 5:44 AM, Aguirre Rodriguez, Sergio Alberto
 saagui...@ti.com wrote:
  +               /* turn on analog power */
  +               twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
  +                               VAUX_2_8_V, TWL4030_VAUX2_DEDICATED);
  +               twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
  +                               VAUX_DEV_GRP_P1, TWL4030_VAUX2_DEV_GRP);
  +
  +               /* out of standby */
  +               gpio_set_value(MT9P012_STANDBY_GPIO, 0);
  +               udelay(1000);

 It seems better using msleep rather than udelay for 1000us much. Just
 to be safe :)
 How about you?


 Why is msleep safer than udelay ?

 I have small guess that he is wondering why you are using big delays
 with help of udelay(). (It's may be obvious but as we know udelay uses
 cpu loops to make delay and msleep calls to scheduler) So, msleep is
 more flexible and softer but if you need precise time or you can't
 sleep in code you need udelay. Sometimes using udelay is reasonably
 required.

I totally agree with you.
But besides the udelay and mdelay accuracy issue, Sergio's power up
timing for  MT9P012 seems to delay too much. (not for lens
controller.)
I also have experience using MT9P012 sensor with other ISP, but in
case of mine it took 600 to 800 ms for whole power up sequence.
But if that delay depends on SDP board and Sergio had no options
without making delay for that much, then it explains everything.
So I'm saying if there was no other option than making long delay to
bring up MT9P012 sensor properly, if I were Sergio I should rather use
mdelay than udelay.
But if that delay is necessary to bring up MT9P012 with SDP board, I
have no idea what to say. In that case, Sergio should be right.
Cheers,

Nate




 --
 Best regards, Klimov Alexey




-- 

DongSoo(Nathaniel), Kim
Engineer
Mobile S/W Platform Lab. S/W Team.
DMC
Samsung Electronics CO., LTD.
e-mail : dongsoo@gmail.com
  dongsoo45@samsung.com

--
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] ARM: OMAP2: Fix missing system control module exports

2009-03-05 Thread George G. Davis
Hi,

On Thu, Mar 05, 2009 at 04:43:09PM -0800, Tony Lindgren wrote:
 Hi,
 
 * George G. Davis gda...@mvista.com [090302 08:19]:
  When building ASoC drivers as modules for SND_OMAP_SOC_MCBSP based
  targets, the build fails because omap_ctrl_{read,write}l lack exports.
  So add the missing exports for omap_ctrl_{read,write}[bwl] to allow
  building these ASoC (and other) drivers as modules.
 
 I think Paul has some comments on how the clock framework should
 handle this case without needing to export the omap_ctrl_read/write.

Yeah, I figured direct calls to these from drivers was just
plain wrong to begin with (preemption issues come to mind
for one), but went with the quick fix.  I'm all ears on
the proper fix...

--
Regards,
George

 
 Regards,
 
 Tony
  
  Signed-off-by: George G. Davis gda...@mvista.com
  Acked-by: Jarkko Nikula jarkko.nik...@nokia.com
  ---
   arch/arm/mach-omap2/control.c |6 ++
   1 files changed, 6 insertions(+), 0 deletions(-)
  
  diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c
  index 5f3aad9..6b14639 100644
  --- a/arch/arm/mach-omap2/control.c
  +++ b/arch/arm/mach-omap2/control.c
  @@ -36,29 +36,35 @@ u8 omap_ctrl_readb(u16 offset)
   {
  return __raw_readb(OMAP_CTRL_REGADDR(offset));
   }
  +EXPORT_SYMBOL(omap_ctrl_readb);
   
   u16 omap_ctrl_readw(u16 offset)
   {
  return __raw_readw(OMAP_CTRL_REGADDR(offset));
   }
  +EXPORT_SYMBOL(omap_ctrl_readw);
   
   u32 omap_ctrl_readl(u16 offset)
   {
  return __raw_readl(OMAP_CTRL_REGADDR(offset));
   }
  +EXPORT_SYMBOL(omap_ctrl_readl);
   
   void omap_ctrl_writeb(u8 val, u16 offset)
   {
  __raw_writeb(val, OMAP_CTRL_REGADDR(offset));
   }
  +EXPORT_SYMBOL(omap_ctrl_writeb);
   
   void omap_ctrl_writew(u16 val, u16 offset)
   {
  __raw_writew(val, OMAP_CTRL_REGADDR(offset));
   }
  +EXPORT_SYMBOL(omap_ctrl_writew);
   
   void omap_ctrl_writel(u32 val, u16 offset)
   {
  __raw_writel(val, OMAP_CTRL_REGADDR(offset));
   }
  +EXPORT_SYMBOL(omap_ctrl_writel);
   
  -- 
  1.6.1.2.MVISTA
  
  --
  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
--
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: Embedded Linux Conference

2009-03-05 Thread DongSoo(Nathaniel) Kim
Hello,

I'm attending as a speaker for one session which title is Digital
camera framework in Linux

I'm also looking forward to see many v4l2 engineers and discuss about
latest issues.

BTW, see you there Hans :)

Nate

On Fri, Mar 6, 2009 at 1:49 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 Just FYI:

 I'll be attending the Embedded Linux Conference in San Francisco, April
 6th-8th (http://www.embeddedlinuxconference.com/elc_2009).

 This might be a good opportunity to discuss omap and davinci V4L2 issues
 face-to-face. Let me know if you are interested.

 Regards,

        Hans

 --
 Hans Verkuil - video4linux developer - sponsored by TANDBERG




-- 

DongSoo(Nathaniel), Kim
Engineer
Mobile S/W Platform Lab. S/W Team.
DMC
Samsung Electronics CO., LTD.
e-mail : dongsoo@gmail.com
  dongsoo45@samsung.com

--
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: Embedded Linux Conference

2009-03-05 Thread Hadli, Manjunath
That is great!
I will let you know our plans soon.
-Manju 

-Original Message-
From: DongSoo(Nathaniel) Kim [mailto:dongsoo@gmail.com] 
Sent: Friday, March 06, 2009 9:33 AM
To: Hans Verkuil
Cc: linux-me...@vger.kernel.org; linux-omap@vger.kernel.org; Hadli, Manjunath; 
Aguirre Rodriguez, Sergio Alberto; Hiremath, Vaibhav
Subject: Re: Embedded Linux Conference

Hello,

I'm attending as a speaker for one session which title is Digital camera 
framework in Linux

I'm also looking forward to see many v4l2 engineers and discuss about latest 
issues.

BTW, see you there Hans :)

Nate

On Fri, Mar 6, 2009 at 1:49 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 Just FYI:

 I'll be attending the Embedded Linux Conference in San Francisco, 
 April 6th-8th (http://www.embeddedlinuxconference.com/elc_2009).

 This might be a good opportunity to discuss omap and davinci V4L2 
 issues face-to-face. Let me know if you are interested.

 Regards,

        Hans

 --
 Hans Verkuil - video4linux developer - sponsored by TANDBERG




--

DongSoo(Nathaniel), Kim
Engineer
Mobile S/W Platform Lab. S/W Team.
DMC
Samsung Electronics CO., LTD.
e-mail : dongsoo@gmail.com
  dongsoo45@samsung.com


--
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 3/7] ARM: OMAP: Add command line option for I2C bus speed

2009-03-05 Thread Jarkko Nikula
On Thu, 5 Mar 2009 17:20:43 +0100
ext Tony Lindgren t...@atomide.com wrote:

 Jarkko, this should also be in Documentation/kernel-parameters.txt.
 Can you please reply with a patch for that, and I'll fold it into this
 patch?
 
Ah, good, will do it over weekend - early next week. Probably better to
handle as a separate patch for easier merging with
kernel-parameters.txt?

 Also, maybe it should be called omap_i2c_bus instead of i2c_bus?
 
I had similar thought as Felipe that it looks more generic this way.
But don't know now immediately would multibuild will work? Was that
your concern? E.g.

__setup(i2c_bus=, arm_xxx_i2c_bus_setup);
__setup(i2c_bus=, omap_i2c_bus_setup);


Jarkko
--
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