فهرست منبع

Merge branch 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6

* 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6:
  arm/ixp4xx: Rename FREQ macro to avoid collisions
  IXP4xx: Fix qmgr_release_queue() flushing unexpected queue entries.
Linus Torvalds 14 سال پیش
والد
کامیت
8dbdea8444
4فایلهای تغییر یافته به همراه11 افزوده شده و 13 حذف شده
  1. 2 2
      arch/arm/mach-ixp4xx/common.c
  2. 3 2
      arch/arm/mach-ixp4xx/include/mach/timex.h
  3. 5 4
      arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
  4. 1 5
      drivers/input/misc/ixp4xx-beeper.c

+ 2 - 2
arch/arm/mach-ixp4xx/common.c

@@ -432,7 +432,7 @@ static struct clocksource clocksource_ixp4xx = {
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 };
 
 
-unsigned long ixp4xx_timer_freq = FREQ;
+unsigned long ixp4xx_timer_freq = IXP4XX_TIMER_FREQ;
 EXPORT_SYMBOL(ixp4xx_timer_freq);
 EXPORT_SYMBOL(ixp4xx_timer_freq);
 static void __init ixp4xx_clocksource_init(void)
 static void __init ixp4xx_clocksource_init(void)
 {
 {
@@ -496,7 +496,7 @@ static struct clock_event_device clockevent_ixp4xx = {
 
 
 static void __init ixp4xx_clockevent_init(void)
 static void __init ixp4xx_clockevent_init(void)
 {
 {
-	clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC,
+	clockevent_ixp4xx.mult = div_sc(IXP4XX_TIMER_FREQ, NSEC_PER_SEC,
 					clockevent_ixp4xx.shift);
 					clockevent_ixp4xx.shift);
 	clockevent_ixp4xx.max_delta_ns =
 	clockevent_ixp4xx.max_delta_ns =
 		clockevent_delta2ns(0xfffffffe, &clockevent_ixp4xx);
 		clockevent_delta2ns(0xfffffffe, &clockevent_ixp4xx);

+ 3 - 2
arch/arm/mach-ixp4xx/include/mach/timex.h

@@ -10,6 +10,7 @@
  * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
  * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
  * timer register ignores the bottom 2 bits of the LATCH value.
  * timer register ignores the bottom 2 bits of the LATCH value.
  */
  */
-#define FREQ 66666000
-#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
+#define IXP4XX_TIMER_FREQ 66666000
+#define CLOCK_TICK_RATE \
+	(((IXP4XX_TIMER_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
 
 

+ 5 - 4
arch/arm/mach-ixp4xx/ixp4xx_qmgr.c

@@ -265,6 +265,11 @@ void qmgr_release_queue(unsigned int queue)
 	       qmgr_queue_descs[queue], queue);
 	       qmgr_queue_descs[queue], queue);
 	qmgr_queue_descs[queue][0] = '\x0';
 	qmgr_queue_descs[queue][0] = '\x0';
 #endif
 #endif
+
+	while ((addr = qmgr_get_entry(queue)))
+		printk(KERN_ERR "qmgr: released queue %i not empty: 0x%08X\n",
+		       queue, addr);
+
 	__raw_writel(0, &qmgr_regs->sram[queue]);
 	__raw_writel(0, &qmgr_regs->sram[queue]);
 
 
 	used_sram_bitmap[0] &= ~mask[0];
 	used_sram_bitmap[0] &= ~mask[0];
@@ -275,10 +280,6 @@ void qmgr_release_queue(unsigned int queue)
 	spin_unlock_irq(&qmgr_lock);
 	spin_unlock_irq(&qmgr_lock);
 
 
 	module_put(THIS_MODULE);
 	module_put(THIS_MODULE);
-
-	while ((addr = qmgr_get_entry(queue)))
-		printk(KERN_ERR "qmgr: released queue %i not empty: 0x%08X\n",
-		       queue, addr);
 }
 }
 
 
 static int qmgr_init(void)
 static int qmgr_init(void)

+ 1 - 5
drivers/input/misc/ixp4xx-beeper.c

@@ -69,11 +69,7 @@ static int ixp4xx_spkr_event(struct input_dev *dev, unsigned int type, unsigned
 	}
 	}
 
 
 	if (value > 20 && value < 32767)
 	if (value > 20 && value < 32767)
-#ifndef FREQ
-		count = (ixp4xx_get_board_tick_rate() / (value * 4)) - 1;
-#else
-		count = (FREQ / (value * 4)) - 1;
-#endif
+		count = (IXP4XX_TIMER_FREQ / (value * 4)) - 1;
 
 
 	ixp4xx_spkr_control(pin, count);
 	ixp4xx_spkr_control(pin, count);