[patch 4/5] macintosh: media bay: semaphore to mutex
From: Daniel Walker [EMAIL PROTECTED] Signed-off-by: Daniel Walker [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/macintosh/mediabay.c | 27 ++- 1 file changed, 14 insertions(+), 13 deletions(-) diff -puN drivers/macintosh/mediabay.c~macintosh-media-bay-semaphore-to-mutex drivers/macintosh/mediabay.c --- a/drivers/macintosh/mediabay.c~macintosh-media-bay-semaphore-to-mutex +++ a/drivers/macintosh/mediabay.c @@ -21,6 +21,7 @@ #include linux/init.h #include linux/ide.h #include linux/kthread.h +#include linux/mutex.h #include asm/prom.h #include asm/pgtable.h #include asm/io.h @@ -77,7 +78,7 @@ struct media_bay_info { int index; int cached_gpio; int sleeping; - struct semaphorelock; + struct mutexlock; #ifdef CONFIG_BLK_DEV_IDE_PMAC ide_hwif_t *cd_port; void __iomem*cd_base; @@ -459,27 +460,27 @@ int media_bay_set_ide_infos(struct devic if (bay-mdev which_bay == bay-mdev-ofdev.node) { int timeout = 5000, index = hwif-index; - down(bay-lock); + mutex_lock(bay-lock); bay-cd_port= hwif; bay-cd_base= (void __iomem *) base; bay-cd_irq = irq; if ((MB_CD != bay-content_id) || bay-state != mb_up) { - up(bay-lock); + mutex_unlock(bay-lock); return 0; } printk(KERN_DEBUG Registered ide%d for media bay %d\n, index, i); do { if (MB_IDE_READY(i)) { bay-cd_index = index; - up(bay-lock); + mutex_unlock(bay-lock); return 0; } mdelay(1); } while(--timeout); printk(KERN_DEBUG Timeount waiting IDE in bay %d\n, i); - up(bay-lock); + mutex_unlock(bay-lock); return -ENODEV; } } @@ -616,10 +617,10 @@ static int media_bay_task(void *x) while (!kthread_should_stop()) { for (i = 0; i media_bay_count; ++i) { - down(media_bays[i].lock); + mutex_lock(media_bays[i].lock); if (!media_bays[i].sleeping) media_bay_step(i); - up(media_bays[i].lock); + mutex_unlock(media_bays[i].lock); } msleep_interruptible(MB_POLL_DELAY); @@ -659,7 +660,7 @@ static int __devinit media_bay_attach(st bay-index = i; bay-ops = match-data; bay-sleeping = 0; - init_MUTEX(bay-lock); + mutex_init(bay-lock); /* Init HW probing */ if (bay-ops-init) @@ -697,10 +698,10 @@ static int media_bay_suspend(struct maci if (state.event != mdev-ofdev.dev.power.power_state.event (state.event PM_EVENT_SLEEP)) { - down(bay-lock); + mutex_lock(bay-lock); bay-sleeping = 1; set_mb_power(bay, 0); - up(bay-lock); + mutex_unlock(bay-lock); msleep(MB_POLL_DELAY); mdev-ofdev.dev.power.power_state = state; } @@ -719,12 +720,12 @@ static int media_bay_resume(struct macio they seem to help the 3400 get it right. */ /* Force MB power to 0 */ - down(bay-lock); + mutex_lock(bay-lock); set_mb_power(bay, 0); msleep(MB_POWER_DELAY); if (bay-ops-content(bay) != bay-content_id) { printk(mediabay%d: content changed during sleep...\n, bay-index); - up(bay-lock); + mutex_unlock(bay-lock); return 0; } set_mb_power(bay, 1); @@ -740,7 +741,7 @@ static int media_bay_resume(struct macio } while((bay-state != mb_empty) (bay-state != mb_up)); bay-sleeping = 0; - up(bay-lock); + mutex_unlock(bay-lock); } return 0; } _ ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: [patch 4/5] macintosh: media bay: semaphore to mutex
On Mon, 2008-06-09 at 16:26 -0700, [EMAIL PROTECTED] wrote: From: Daniel Walker [EMAIL PROTECTED] Signed-off-by: Daniel Walker [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Acked-by: Benjamin Herrenschmidt [EMAIL PROTECTED] --- drivers/macintosh/mediabay.c | 27 ++- 1 file changed, 14 insertions(+), 13 deletions(-) diff -puN drivers/macintosh/mediabay.c~macintosh-media-bay-semaphore-to-mutex drivers/macintosh/mediabay.c --- a/drivers/macintosh/mediabay.c~macintosh-media-bay-semaphore-to-mutex +++ a/drivers/macintosh/mediabay.c @@ -21,6 +21,7 @@ #include linux/init.h #include linux/ide.h #include linux/kthread.h +#include linux/mutex.h #include asm/prom.h #include asm/pgtable.h #include asm/io.h @@ -77,7 +78,7 @@ struct media_bay_info { int index; int cached_gpio; int sleeping; - struct semaphorelock; + struct mutexlock; #ifdef CONFIG_BLK_DEV_IDE_PMAC ide_hwif_t *cd_port; void __iomem*cd_base; @@ -459,27 +460,27 @@ int media_bay_set_ide_infos(struct devic if (bay-mdev which_bay == bay-mdev-ofdev.node) { int timeout = 5000, index = hwif-index; - down(bay-lock); + mutex_lock(bay-lock); bay-cd_port= hwif; bay-cd_base= (void __iomem *) base; bay-cd_irq = irq; if ((MB_CD != bay-content_id) || bay-state != mb_up) { - up(bay-lock); + mutex_unlock(bay-lock); return 0; } printk(KERN_DEBUG Registered ide%d for media bay %d\n, index, i); do { if (MB_IDE_READY(i)) { bay-cd_index = index; - up(bay-lock); + mutex_unlock(bay-lock); return 0; } mdelay(1); } while(--timeout); printk(KERN_DEBUG Timeount waiting IDE in bay %d\n, i); - up(bay-lock); + mutex_unlock(bay-lock); return -ENODEV; } } @@ -616,10 +617,10 @@ static int media_bay_task(void *x) while (!kthread_should_stop()) { for (i = 0; i media_bay_count; ++i) { - down(media_bays[i].lock); + mutex_lock(media_bays[i].lock); if (!media_bays[i].sleeping) media_bay_step(i); - up(media_bays[i].lock); + mutex_unlock(media_bays[i].lock); } msleep_interruptible(MB_POLL_DELAY); @@ -659,7 +660,7 @@ static int __devinit media_bay_attach(st bay-index = i; bay-ops = match-data; bay-sleeping = 0; - init_MUTEX(bay-lock); + mutex_init(bay-lock); /* Init HW probing */ if (bay-ops-init) @@ -697,10 +698,10 @@ static int media_bay_suspend(struct maci if (state.event != mdev-ofdev.dev.power.power_state.event (state.event PM_EVENT_SLEEP)) { - down(bay-lock); + mutex_lock(bay-lock); bay-sleeping = 1; set_mb_power(bay, 0); - up(bay-lock); + mutex_unlock(bay-lock); msleep(MB_POLL_DELAY); mdev-ofdev.dev.power.power_state = state; } @@ -719,12 +720,12 @@ static int media_bay_resume(struct macio they seem to help the 3400 get it right. */ /* Force MB power to 0 */ - down(bay-lock); + mutex_lock(bay-lock); set_mb_power(bay, 0); msleep(MB_POWER_DELAY); if (bay-ops-content(bay) != bay-content_id) { printk(mediabay%d: content changed during sleep...\n, bay-index); - up(bay-lock); + mutex_unlock(bay-lock); return 0; } set_mb_power(bay, 1); @@ -740,7 +741,7 @@ static int media_bay_resume(struct macio } while((bay-state != mb_empty) (bay-state != mb_up)); bay-sleeping = 0; - up(bay-lock); + mutex_unlock(bay-lock); } return 0; } _ ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org