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.
This commit is contained in:
commit
8dbdea8444
|
@ -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);
|
||||||
|
|
|
@ -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 IXP4XX_TIMER_FREQ 66666000
|
||||||
#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
|
#define CLOCK_TICK_RATE \
|
||||||
|
(((IXP4XX_TIMER_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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_TIMER_FREQ / (value * 4)) - 1;
|
||||||
count = (ixp4xx_get_board_tick_rate() / (value * 4)) - 1;
|
|
||||||
#else
|
|
||||||
count = (FREQ / (value * 4)) - 1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ixp4xx_spkr_control(pin, count);
|
ixp4xx_spkr_control(pin, count);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue