Loading arch/arm/common/rtctime.c +8 −7 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include <linux/miscdevice.h> #include <linux/spinlock.h> #include <linux/device.h> #include <linux/mutex.h> #include <asm/rtc.h> #include <asm/semaphore.h> Loading @@ -34,7 +35,7 @@ static unsigned long rtc_irq_data; /* * rtc_sem protects rtc_inuse and rtc_ops */ static DECLARE_MUTEX(rtc_sem); static DEFINE_MUTEX(rtc_mutex); static unsigned long rtc_inuse; static struct rtc_ops *rtc_ops; Loading Loading @@ -355,7 +356,7 @@ static int rtc_open(struct inode *inode, struct file *file) { int ret; down(&rtc_sem); mutex_lock(&rtc_mutex); if (rtc_inuse) { ret = -EBUSY; Loading @@ -373,7 +374,7 @@ static int rtc_open(struct inode *inode, struct file *file) rtc_inuse = 1; } } up(&rtc_sem); mutex_unlock(&rtc_mutex); return ret; } Loading Loading @@ -479,7 +480,7 @@ int register_rtc(struct rtc_ops *ops) { int ret = -EBUSY; down(&rtc_sem); mutex_lock(&rtc_mutex); if (rtc_ops == NULL) { rtc_ops = ops; Loading @@ -488,7 +489,7 @@ int register_rtc(struct rtc_ops *ops) create_proc_read_entry("driver/rtc", 0, NULL, rtc_read_proc, ops); } up(&rtc_sem); mutex_unlock(&rtc_mutex); return ret; } Loading @@ -496,12 +497,12 @@ EXPORT_SYMBOL(register_rtc); void unregister_rtc(struct rtc_ops *rtc) { down(&rtc_sem); mutex_lock(&rtc_mutex); if (rtc == rtc_ops) { remove_proc_entry("driver/rtc", NULL); misc_deregister(&rtc_miscdev); rtc_ops = NULL; } up(&rtc_sem); mutex_unlock(&rtc_mutex); } EXPORT_SYMBOL(unregister_rtc); arch/arm/kernel/ecard.c +4 −3 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #include <linux/proc_fs.h> #include <linux/device.h> #include <linux/init.h> #include <linux/mutex.h> #include <asm/dma.h> #include <asm/ecard.h> Loading Loading @@ -206,7 +207,7 @@ static void ecard_task_readbytes(struct ecard_request *req) static DECLARE_WAIT_QUEUE_HEAD(ecard_wait); static struct ecard_request *ecard_req; static DECLARE_MUTEX(ecard_sem); static DEFINE_MUTEX(ecard_mutex); /* * Set up the expansion card daemon's page tables. Loading Loading @@ -299,7 +300,7 @@ static void ecard_call(struct ecard_request *req) req->complete = &completion; down(&ecard_sem); mutex_lock(&ecard_mutex); ecard_req = req; wake_up(&ecard_wait); Loading @@ -307,7 +308,7 @@ static void ecard_call(struct ecard_request *req) * Now wait for kecardd to run. */ wait_for_completion(&completion); up(&ecard_sem); mutex_unlock(&ecard_mutex); } /* ======================= Mid-level card control ===================== */ Loading arch/arm/mach-aaec2000/clock.c +8 −7 Original line number Diff line number Diff line Loading @@ -16,26 +16,27 @@ #include <linux/err.h> #include <linux/string.h> #include <linux/clk.h> #include <linux/mutex.h> #include <asm/semaphore.h> #include "clock.h" static LIST_HEAD(clocks); static DECLARE_MUTEX(clocks_sem); static DEFINE_MUTEX(clocks_mutex); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); down(&clocks_sem); mutex_lock(&clocks_mutex); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } up(&clocks_sem); mutex_unlock(&clocks_mutex); return clk; } Loading Loading @@ -78,18 +79,18 @@ EXPORT_SYMBOL(clk_set_rate); int clk_register(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_add(&clk->node, &clocks); up(&clocks_sem); mutex_unlock(&clocks_mutex); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_del(&clk->node); up(&clocks_sem); mutex_unlock(&clocks_mutex); } EXPORT_SYMBOL(clk_unregister); Loading arch/arm/mach-integrator/clock.c +8 −7 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ #include <linux/err.h> #include <linux/string.h> #include <linux/clk.h> #include <linux/mutex.h> #include <asm/semaphore.h> #include <asm/hardware/icst525.h> Loading @@ -22,20 +23,20 @@ #include "clock.h" static LIST_HEAD(clocks); static DECLARE_MUTEX(clocks_sem); static DEFINE_MUTEX(clocks_mutex); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); down(&clocks_sem); mutex_lock(&clocks_mutex); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } up(&clocks_sem); mutex_unlock(&clocks_mutex); return clk; } Loading Loading @@ -107,18 +108,18 @@ static struct clk uart_clk = { int clk_register(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_add(&clk->node, &clocks); up(&clocks_sem); mutex_unlock(&clocks_mutex); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_del(&clk->node); up(&clocks_sem); mutex_unlock(&clocks_mutex); } EXPORT_SYMBOL(clk_unregister); Loading arch/arm/mach-pxa/ssp.c +9 −8 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include <linux/interrupt.h> #include <linux/ioport.h> #include <linux/init.h> #include <linux/mutex.h> #include <asm/io.h> #include <asm/irq.h> #include <asm/hardware.h> Loading Loading @@ -59,7 +60,7 @@ static const struct ssp_info_ ssp_info[PXA_SSP_PORTS] = { #endif }; static DECLARE_MUTEX(sem); static DEFINE_MUTEX(mutex); static int use_count[PXA_SSP_PORTS] = {0, 0, 0}; static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs) Loading Loading @@ -239,16 +240,16 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) if (port > PXA_SSP_PORTS || port == 0) return -ENODEV; down(&sem); mutex_lock(&mutex); if (use_count[port - 1]) { up(&sem); mutex_unlock(&mutex); return -EBUSY; } use_count[port - 1]++; if (!request_mem_region(__PREG(SSCR0_P(port)), 0x2c, "SSP")) { use_count[port - 1]--; up(&sem); mutex_unlock(&mutex); return -EBUSY; } dev->port = port; Loading @@ -265,13 +266,13 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) /* turn on SSP port clock */ pxa_set_cken(ssp_info[port-1].clock, 1); up(&sem); mutex_unlock(&mutex); return 0; out_region: release_mem_region(__PREG(SSCR0_P(port)), 0x2c); use_count[port - 1]--; up(&sem); mutex_unlock(&mutex); return ret; } Loading @@ -282,7 +283,7 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) */ void ssp_exit(struct ssp_dev *dev) { down(&sem); mutex_lock(&mutex); SSCR0_P(dev->port) &= ~SSCR0_SSE; if (dev->port > PXA_SSP_PORTS || dev->port == 0) { Loading @@ -295,7 +296,7 @@ void ssp_exit(struct ssp_dev *dev) free_irq(dev->irq, dev); release_mem_region(__PREG(SSCR0_P(dev->port)), 0x2c); use_count[dev->port - 1]--; up(&sem); mutex_unlock(&mutex); } EXPORT_SYMBOL(ssp_write_word); Loading Loading
arch/arm/common/rtctime.c +8 −7 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #include <linux/miscdevice.h> #include <linux/spinlock.h> #include <linux/device.h> #include <linux/mutex.h> #include <asm/rtc.h> #include <asm/semaphore.h> Loading @@ -34,7 +35,7 @@ static unsigned long rtc_irq_data; /* * rtc_sem protects rtc_inuse and rtc_ops */ static DECLARE_MUTEX(rtc_sem); static DEFINE_MUTEX(rtc_mutex); static unsigned long rtc_inuse; static struct rtc_ops *rtc_ops; Loading Loading @@ -355,7 +356,7 @@ static int rtc_open(struct inode *inode, struct file *file) { int ret; down(&rtc_sem); mutex_lock(&rtc_mutex); if (rtc_inuse) { ret = -EBUSY; Loading @@ -373,7 +374,7 @@ static int rtc_open(struct inode *inode, struct file *file) rtc_inuse = 1; } } up(&rtc_sem); mutex_unlock(&rtc_mutex); return ret; } Loading Loading @@ -479,7 +480,7 @@ int register_rtc(struct rtc_ops *ops) { int ret = -EBUSY; down(&rtc_sem); mutex_lock(&rtc_mutex); if (rtc_ops == NULL) { rtc_ops = ops; Loading @@ -488,7 +489,7 @@ int register_rtc(struct rtc_ops *ops) create_proc_read_entry("driver/rtc", 0, NULL, rtc_read_proc, ops); } up(&rtc_sem); mutex_unlock(&rtc_mutex); return ret; } Loading @@ -496,12 +497,12 @@ EXPORT_SYMBOL(register_rtc); void unregister_rtc(struct rtc_ops *rtc) { down(&rtc_sem); mutex_lock(&rtc_mutex); if (rtc == rtc_ops) { remove_proc_entry("driver/rtc", NULL); misc_deregister(&rtc_miscdev); rtc_ops = NULL; } up(&rtc_sem); mutex_unlock(&rtc_mutex); } EXPORT_SYMBOL(unregister_rtc);
arch/arm/kernel/ecard.c +4 −3 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #include <linux/proc_fs.h> #include <linux/device.h> #include <linux/init.h> #include <linux/mutex.h> #include <asm/dma.h> #include <asm/ecard.h> Loading Loading @@ -206,7 +207,7 @@ static void ecard_task_readbytes(struct ecard_request *req) static DECLARE_WAIT_QUEUE_HEAD(ecard_wait); static struct ecard_request *ecard_req; static DECLARE_MUTEX(ecard_sem); static DEFINE_MUTEX(ecard_mutex); /* * Set up the expansion card daemon's page tables. Loading Loading @@ -299,7 +300,7 @@ static void ecard_call(struct ecard_request *req) req->complete = &completion; down(&ecard_sem); mutex_lock(&ecard_mutex); ecard_req = req; wake_up(&ecard_wait); Loading @@ -307,7 +308,7 @@ static void ecard_call(struct ecard_request *req) * Now wait for kecardd to run. */ wait_for_completion(&completion); up(&ecard_sem); mutex_unlock(&ecard_mutex); } /* ======================= Mid-level card control ===================== */ Loading
arch/arm/mach-aaec2000/clock.c +8 −7 Original line number Diff line number Diff line Loading @@ -16,26 +16,27 @@ #include <linux/err.h> #include <linux/string.h> #include <linux/clk.h> #include <linux/mutex.h> #include <asm/semaphore.h> #include "clock.h" static LIST_HEAD(clocks); static DECLARE_MUTEX(clocks_sem); static DEFINE_MUTEX(clocks_mutex); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); down(&clocks_sem); mutex_lock(&clocks_mutex); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } up(&clocks_sem); mutex_unlock(&clocks_mutex); return clk; } Loading Loading @@ -78,18 +79,18 @@ EXPORT_SYMBOL(clk_set_rate); int clk_register(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_add(&clk->node, &clocks); up(&clocks_sem); mutex_unlock(&clocks_mutex); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_del(&clk->node); up(&clocks_sem); mutex_unlock(&clocks_mutex); } EXPORT_SYMBOL(clk_unregister); Loading
arch/arm/mach-integrator/clock.c +8 −7 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ #include <linux/err.h> #include <linux/string.h> #include <linux/clk.h> #include <linux/mutex.h> #include <asm/semaphore.h> #include <asm/hardware/icst525.h> Loading @@ -22,20 +23,20 @@ #include "clock.h" static LIST_HEAD(clocks); static DECLARE_MUTEX(clocks_sem); static DEFINE_MUTEX(clocks_mutex); struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); down(&clocks_sem); mutex_lock(&clocks_mutex); list_for_each_entry(p, &clocks, node) { if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { clk = p; break; } } up(&clocks_sem); mutex_unlock(&clocks_mutex); return clk; } Loading Loading @@ -107,18 +108,18 @@ static struct clk uart_clk = { int clk_register(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_add(&clk->node, &clocks); up(&clocks_sem); mutex_unlock(&clocks_mutex); return 0; } EXPORT_SYMBOL(clk_register); void clk_unregister(struct clk *clk) { down(&clocks_sem); mutex_lock(&clocks_mutex); list_del(&clk->node); up(&clocks_sem); mutex_unlock(&clocks_mutex); } EXPORT_SYMBOL(clk_unregister); Loading
arch/arm/mach-pxa/ssp.c +9 −8 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include <linux/interrupt.h> #include <linux/ioport.h> #include <linux/init.h> #include <linux/mutex.h> #include <asm/io.h> #include <asm/irq.h> #include <asm/hardware.h> Loading Loading @@ -59,7 +60,7 @@ static const struct ssp_info_ ssp_info[PXA_SSP_PORTS] = { #endif }; static DECLARE_MUTEX(sem); static DEFINE_MUTEX(mutex); static int use_count[PXA_SSP_PORTS] = {0, 0, 0}; static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs) Loading Loading @@ -239,16 +240,16 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) if (port > PXA_SSP_PORTS || port == 0) return -ENODEV; down(&sem); mutex_lock(&mutex); if (use_count[port - 1]) { up(&sem); mutex_unlock(&mutex); return -EBUSY; } use_count[port - 1]++; if (!request_mem_region(__PREG(SSCR0_P(port)), 0x2c, "SSP")) { use_count[port - 1]--; up(&sem); mutex_unlock(&mutex); return -EBUSY; } dev->port = port; Loading @@ -265,13 +266,13 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) /* turn on SSP port clock */ pxa_set_cken(ssp_info[port-1].clock, 1); up(&sem); mutex_unlock(&mutex); return 0; out_region: release_mem_region(__PREG(SSCR0_P(port)), 0x2c); use_count[port - 1]--; up(&sem); mutex_unlock(&mutex); return ret; } Loading @@ -282,7 +283,7 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags) */ void ssp_exit(struct ssp_dev *dev) { down(&sem); mutex_lock(&mutex); SSCR0_P(dev->port) &= ~SSCR0_SSE; if (dev->port > PXA_SSP_PORTS || dev->port == 0) { Loading @@ -295,7 +296,7 @@ void ssp_exit(struct ssp_dev *dev) free_irq(dev->irq, dev); release_mem_region(__PREG(SSCR0_P(dev->port)), 0x2c); use_count[dev->port - 1]--; up(&sem); mutex_unlock(&mutex); } EXPORT_SYMBOL(ssp_write_word); Loading