RE: [PATCH 0/5] omap:hwspinlock support-omap4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hari,
> -----Original Message-----
> From: Kanigeri, Hari
> Sent: Monday, July 19, 2010 10:20 PM
> To: Linux Omap; Tony Lindgren
> Cc: Shilimkar, Santosh; Cousson, Benoit; Que, Simon; Kanigeri, Hari
> Subject: [PATCH 0/5] omap:hwspinlock support-omap4
> 
> Resending the hwspinlock patch Simon Que sent few days ago by splitting
> the patch into logical pieces. The first 4 patches are based on Simon's
> patch.
> https://patchwork.kernel.org/patch/110672/
> 
> The 5th patch is a new patch to address race condition issue with
> I2C driver usage.
> 
> 
> Created driver for OMAP hardware spinlock.  This driver supports:
> - Reserved spinlocks for internal use
> - Dynamic allocation of unreserved locks
> - Lock, unlock, and trylock functions, with or without disabling
> irqs/preempt
> - Registered as a platform device driver
> 
> The device initialization uses hwmod to configure the devices.
> One device will be created for each IP.
> It will pass spinlock register offset info to the driver.
> The device initialization file is:
>                 arch/arm/mach-omap2/hwspinlocks.c
> 
> The driver takes in register offset info passed in device initialization.
> It uses hwmod to obtain the base address of the hardware spinlock module.
> Then it reads info from the registers.
> The function hwspinlock_probe() initializes the array of spinlock
> structures,
> each containing a spinlock register address calculated from the base
> address
> and lock offsets.  The device driver file is:
>                 arch/arm/plat-omap/hwspinlock.c
> 
> Here's an API summary:
> int hwspinlock_lock(struct hwspinlock *);
>         Attempt to lock a hardware spinlock.  If it is busy, the function
> will
>         keep trying until it succeeds.  This is a blocking function.
> int hwspinlock_trylock(struct hwspinlock *);
>         Attempt to lock a hardware spinlock.  If it is busy, the function
> will
>         return BUSY.  If it succeeds in locking, the function will return
>         ACQUIRED.  This is a non-blocking function.
> int hwspinlock_unlock(struct hwspinlock *);
>         Unlock a hardware spinlock.
> 
> struct hwspinlock *hwspinlock_request(void);
>         Provides for "dynamic allocation" of a hardware spinlock.  It
> returns
>         the handle to the next available (unallocated) spinlock.  If no
> more
>         locks are available, it returns NULL.
> struct hwspinlock *hwspinlock_request_specific(unsigned int);
>         Provides for "static allocation" of a specific hardware spinlock.
> This
>         allows the system to use a specific spinlock, identified by an ID.
> If
>         the ID is invalid or if the desired lock is already allocated,
> this
>         will return NULL.  Otherwise it returns a spinlock handle.
> int hwspinlock_free(struct hwspinlock *);
>         Frees an allocated hardware spinlock (either reserved or
> unreserved).
> 
> Hari Kanigeri (1):
>   omap:hwspinlocks-ensure the order of registration
> 
> Simon Que (4):
>   omap:hwmod-hwspinlock-enable
>   omap:hwspinlock-define HWSPINLOCK base address
I think you should fold patch 1/5 , 2/5 into patch 3/5. 
At least patch 2/5 o.w git-bisect will break 

>   omap:hwspinlock-added hwspinlock driver
>   omap:hwspinlock-add build support
> 
>  arch/arm/mach-omap2/Makefile                 |    2 +
>  arch/arm/mach-omap2/hwspinlocks.c            |   70 ++++++
>  arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |    2 +-
>  arch/arm/plat-omap/Makefile                  |    2 +
>  arch/arm/plat-omap/hwspinlock.c              |  334
> ++++++++++++++++++++++++++
>  arch/arm/plat-omap/include/plat/hwspinlock.h |   29 +++
>  arch/arm/plat-omap/include/plat/omap44xx.h   |    5 +
>  7 files changed, 443 insertions(+), 1 deletions(-)
>  create mode 100644 arch/arm/mach-omap2/hwspinlocks.c
>  create mode 100644 arch/arm/plat-omap/hwspinlock.c
>  create mode 100644 arch/arm/plat-omap/include/plat/hwspinlock.h

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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux