Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 74676
b: refs/heads/master
c: 81a3843
h: refs/heads/master
v: v3
  • Loading branch information
Tony Breeds authored and Paul Mackerras committed Dec 6, 2007
1 parent 9bad605 commit 4466cbf
Show file tree
Hide file tree
Showing 60 changed files with 4,764 additions and 185 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f194d132e4971111f85c18c96067acffb13cee6d
refs/heads/master: 81a3843f97cff5fef7b6006fcd2d015d3c4b569f
10 changes: 6 additions & 4 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -1681,7 +1681,8 @@ S: Maintained
HARMONY SOUND DRIVER
P: Kyle McMartin
M: kyle@parisc-linux.org
L: linux-parisc@vger.kernel.org
W: http://www.parisc-linux.org/~kyle/harmony/
L: parisc-linux@lists.parisc-linux.org
S: Maintained

HAYES ESP SERIAL DRIVER
Expand Down Expand Up @@ -2889,15 +2890,16 @@ W: http://www.torque.net/linux-pp.html
S: Maintained

PARISC ARCHITECTURE
P: Kyle McMartin
M: kyle@parisc-linux.org
P: Matthew Wilcox
M: matthew@wil.cx
P: Grant Grundler
M: grundler@parisc-linux.org
L: linux-parisc@vger.kernel.org
P: Kyle McMartin
M: kyle@parisc-linux.org
L: parisc-linux@parisc-linux.org
W: http://www.parisc-linux.org/
T: git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
T: cvs cvs.parisc-linux.org:/var/cvs/linux-2.6
S: Maintained

PARAVIRT_OPS INTERFACE
Expand Down
4 changes: 0 additions & 4 deletions trunk/arch/mips/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -714,10 +714,6 @@ config ARCH_HAS_ILOG2_U64
bool
default n

config ARCH_SUPPORTS_OPROFILE
bool
default y if !MIPS_MT_SMTC

config GENERIC_FIND_NEXT_BIT
bool
default y
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/mips/au1000/common/dbdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -859,7 +859,7 @@ dbdma_interrupt(int irq, void *dev_id)

intstat = dbdma_gptr->ddma_intstat;
au_sync();
chan_index = __ffs(intstat);
chan_index = ffs(intstat);

ctp = chan_tab_ptr[chan_index];
cp = ctp->chan_ptr;
Expand Down
16 changes: 8 additions & 8 deletions trunk/arch/mips/au1000/common/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -462,9 +462,9 @@ static void intc0_req0_irqdispatch(void)
return;
}
#endif
bit = __ffs(intc0_req0);
bit = ffs(intc0_req0);
intc0_req0 &= ~(1 << bit);
do_IRQ(AU1000_INTC0_INT_BASE + bit);
do_IRQ(MIPS_CPU_IRQ_BASE + bit);
}


Expand All @@ -478,9 +478,9 @@ static void intc0_req1_irqdispatch(void)
if (!intc0_req1)
return;

bit = __ffs(intc0_req1);
bit = ffs(intc0_req1);
intc0_req1 &= ~(1 << bit);
do_IRQ(AU1000_INTC0_INT_BASE + bit);
do_IRQ(bit);
}


Expand All @@ -498,9 +498,9 @@ static void intc1_req0_irqdispatch(void)
if (!intc1_req0)
return;

bit = __ffs(intc1_req0);
bit = ffs(intc1_req0);
intc1_req0 &= ~(1 << bit);
do_IRQ(AU1000_INTC1_INT_BASE + bit);
do_IRQ(MIPS_CPU_IRQ_BASE + 32 + bit);
}


Expand All @@ -514,9 +514,9 @@ static void intc1_req1_irqdispatch(void)
if (!intc1_req1)
return;

bit = __ffs(intc1_req1);
bit = ffs(intc1_req1);
intc1_req1 &= ~(1 << bit);
do_IRQ(AU1000_INTC1_INT_BASE + bit);
do_IRQ(MIPS_CPU_IRQ_BASE + 32 + bit);
}

asmlinkage void plat_irq_dispatch(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/mips/au1000/pb1200/irqmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ irqreturn_t pb1200_cascade_handler( int irq, void *dev_id)
bcsr->int_status = bisr;
for( ; bisr; bisr &= (bisr-1) )
{
extirq_nr = PB1200_INT_BEGIN + __ffs(bisr);
extirq_nr = PB1200_INT_BEGIN + ffs(bisr);
/* Ack and dispatch IRQ */
do_IRQ(extirq_nr);
}
Expand Down
44 changes: 6 additions & 38 deletions trunk/arch/mips/oprofile/op_model_mipsxx.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
* Copyright (C) 2004, 05, 06 by Ralf Baechle
* Copyright (C) 2005 by MIPS Technologies, Inc.
*/
#include <linux/cpumask.h>
#include <linux/oprofile.h>
#include <linux/interrupt.h>
#include <linux/smp.h>
Expand Down Expand Up @@ -34,45 +33,11 @@
#ifdef CONFIG_MIPS_MT_SMP
#define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id()))
#define vpe_id() smp_processor_id()

/*
* The number of bits to shift to convert between counters per core and
* counters per VPE. There is no reasonable interface atm to obtain the
* number of VPEs used by Linux and in the 34K this number is fixed to two
* anyways so we hardcore a few things here for the moment. The way it's
* done here will ensure that oprofile VSMP kernel will run right on a lesser
* core like a 24K also or with maxcpus=1.
*/
static inline unsigned int vpe_shift(void)
{
if (num_possible_cpus() > 1)
return 1;

return 0;
}

#else

#define WHAT 0
#define vpe_id() 0

static inline unsigned int vpe_shift(void)
{
return 0;
}

#endif

static inline unsigned int counters_total_to_per_cpu(unsigned int counters)
{
return counters >> vpe_shift();
}

static inline unsigned int counters_per_cpu_to_total(unsigned int counters)
{
return counters << vpe_shift();
}

#define __define_perf_accessors(r, n, np) \
\
static inline unsigned int r_c0_ ## r ## n(void) \
Expand Down Expand Up @@ -304,7 +269,9 @@ static int __init mipsxx_init(void)

reset_counters(counters);

counters = counters_total_to_per_cpu(counters);
#ifdef CONFIG_MIPS_MT_SMP
counters >>= 1;
#endif

op_model_mipsxx_ops.num_counters = counters;
switch (current_cpu_type()) {
Expand Down Expand Up @@ -363,8 +330,9 @@ static int __init mipsxx_init(void)
static void mipsxx_exit(void)
{
int counters = op_model_mipsxx_ops.num_counters;

counters = counters_per_cpu_to_total(counters);
#ifdef CONFIG_MIPS_MT_SMP
counters <<= 1;
#endif
reset_counters(counters);

perf_irq = null_perf_irq;
Expand Down
5 changes: 1 addition & 4 deletions trunk/arch/mips/pci/pci-bcm1480.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,7 @@ static inline void WRITECFG32(u32 addr, u32 data)

int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
if (pin == 0)
return -1;

return K_BCM1480_INT_PCI_INTA - 1 + pin;
return K_BCM1480_INT_PCI_INTA + pin;
}

/* Do platform specific device initialization at pci_enable_device() time */
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/parisc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ kernel-y := mm/ kernel/ math-emu/ kernel/init_task.o
kernel-$(CONFIG_HPUX) += hpux/

core-y += $(addprefix arch/parisc/, $(kernel-y))
libs-y += arch/parisc/lib/ `$(CC) -print-libgcc-file-name`
libs-y += arch/parisc/lib/

drivers-$(CONFIG_OPROFILE) += arch/parisc/oprofile/

Expand Down
88 changes: 54 additions & 34 deletions trunk/arch/parisc/kernel/firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -1082,56 +1082,76 @@ void pdc_io_reset_devices(void)


/**
* pdc_iodc_print - Console print using IODC.
* @str: the string to output.
* @count: length of str
* pdc_iodc_putc - Console character print using IODC.
* @c: the character to output.
*
* Note that only these special chars are architected for console IODC io:
* BEL, BS, CR, and LF. Others are passed through.
* Since the HP console requires CR+LF to perform a 'newline', we translate
* "\n" to "\r\n".
*/
int pdc_iodc_print(unsigned char *str, unsigned count)
void pdc_iodc_putc(unsigned char c)
{
/* XXX Should we spinlock posx usage */
static int posx; /* for simple TAB-Simulation... */
int __attribute__((aligned(8))) iodc_retbuf[32];
char __attribute__((aligned(64))) iodc_dbuf[4096];
unsigned int i;
/* XXX Should we spinlock posx usage */
static int posx; /* for simple TAB-Simulation... */
static int __attribute__((aligned(8))) iodc_retbuf[32];
static char __attribute__((aligned(64))) iodc_dbuf[4096];
unsigned int n;
unsigned long flags;

memset(iodc_dbuf, 0, 4096);
for (i = 0; i < count && i < 2048;) {
switch(str[i]) {
case '\n':
iodc_dbuf[i+0] = '\r';
iodc_dbuf[i+1] = '\n';
i += 2;
posx = 0;
break;
case '\t':
while (posx & 7) {
iodc_dbuf[i] = ' ';
i++, posx++;
}
break;
case '\b': /* BS */
posx -= 2;
default:
iodc_dbuf[i] = str[i];
i++, posx++;
break;
}
}
switch (c) {
case '\n':
iodc_dbuf[0] = '\r';
iodc_dbuf[1] = '\n';
n = 2;
posx = 0;
break;
case '\t':
pdc_iodc_putc(' ');
while (posx & 7) /* expand TAB */
pdc_iodc_putc(' ');
return; /* return since IODC can't handle this */
case '\b':
posx-=2; /* BS */
default:
iodc_dbuf[0] = c;
n = 1;
posx++;
break;
}

spin_lock_irqsave(&pdc_lock, flags);
real32_call(PAGE0->mem_cons.iodc_io,
(unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
__pa(iodc_retbuf), 0, __pa(iodc_dbuf), i, 0);
__pa(iodc_retbuf), 0, __pa(iodc_dbuf), n, 0);
spin_unlock_irqrestore(&pdc_lock, flags);
}

return i;
/**
* pdc_iodc_outc - Console character print using IODC (without conversions).
* @c: the character to output.
*
* Write the character directly to the IODC console.
*/
void pdc_iodc_outc(unsigned char c)
{
unsigned int n;
unsigned long flags;

/* fill buffer with one caracter and print it */
static int __attribute__((aligned(8))) iodc_retbuf[32];
static char __attribute__((aligned(64))) iodc_dbuf[4096];

n = 1;
iodc_dbuf[0] = c;

spin_lock_irqsave(&pdc_lock, flags);
real32_call(PAGE0->mem_cons.iodc_io,
(unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
__pa(iodc_retbuf), 0, __pa(iodc_dbuf), n, 0);
spin_unlock_irqrestore(&pdc_lock, flags);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/parisc/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ static void claim_cpu_irqs(void)
}

irq_desc[TIMER_IRQ].action = &timer_action;
irq_desc[TIMER_IRQ].status = IRQ_PER_CPU;
irq_desc[TIMER_IRQ].status |= IRQ_PER_CPU;
#ifdef CONFIG_SMP
irq_desc[IPI_IRQ].action = &ipi_action;
irq_desc[IPI_IRQ].status = IRQ_PER_CPU;
Expand Down
22 changes: 0 additions & 22 deletions trunk/arch/parisc/kernel/parisc_ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,31 +122,9 @@ EXPORT_SYMBOL($$divI_12);
EXPORT_SYMBOL($$divI_14);
EXPORT_SYMBOL($$divI_15);

extern void __ashrdi3(void);
extern void __ashldi3(void);
extern void __lshrdi3(void);
extern void __muldi3(void);

EXPORT_SYMBOL(__ashrdi3);
EXPORT_SYMBOL(__ashldi3);
EXPORT_SYMBOL(__lshrdi3);
EXPORT_SYMBOL(__muldi3);

asmlinkage void * __canonicalize_funcptr_for_compare(void *);
EXPORT_SYMBOL(__canonicalize_funcptr_for_compare);

#ifdef CONFIG_64BIT
extern void __divdi3(void);
extern void __udivdi3(void);
extern void __umoddi3(void);
extern void __moddi3(void);

EXPORT_SYMBOL(__divdi3);
EXPORT_SYMBOL(__udivdi3);
EXPORT_SYMBOL(__umoddi3);
EXPORT_SYMBOL(__moddi3);
#endif

#ifndef CONFIG_64BIT
extern void $$dyncall(void);
EXPORT_SYMBOL($$dyncall);
Expand Down
11 changes: 9 additions & 2 deletions trunk/arch/parisc/kernel/pdc_cons.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,13 @@

static void pdc_console_write(struct console *co, const char *s, unsigned count)
{
pdc_iodc_print(s, count);
while(count--)
pdc_iodc_putc(*s++);
}

void pdc_outc(unsigned char c)
{
pdc_iodc_outc(c);
}

void pdc_printf(const char *fmt, ...)
Expand All @@ -68,7 +74,8 @@ void pdc_printf(const char *fmt, ...)
len = vscnprintf(buf, sizeof(buf), fmt, args);
va_end(args);

pdc_iodc_print(buf, len);
for (i = 0; i < len; i++)
pdc_iodc_outc(buf[i]);
}

int pdc_console_poll_key(struct console *co)
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/parisc/lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

lib-y := lusercopy.o bitops.o checksum.o io.o memset.o fixup.o memcpy.o

obj-y := iomap.o
obj-y := libgcc/ milli/ iomap.o
4 changes: 4 additions & 0 deletions trunk/arch/parisc/lib/libgcc/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
obj-y := __ashldi3.o __ashrdi3.o __clzsi2.o __divdi3.o __divsi3.o \
__lshrdi3.o __moddi3.o __modsi3.o __udivdi3.o \
__udivmoddi4.o __udivmodsi4.o __udivsi3.o \
__umoddi3.o __umodsi3.o __muldi3.o __umulsidi3.o
Loading

0 comments on commit 4466cbf

Please sign in to comment.