Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1b7361f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
  [PARISC] lba_pci: pci_claim_resources disabled expansion roms
  [PARISC] print more than one character at a time for pdc console
  [PARISC] Update parisc-linux MAINTAINERS entries
  [PARISC] timer interrupt should not be IRQ_DISABLED
  Revert "[PARISC] import necessary bits of libgcc.a"
parents ceaeee6a 84f4506c
Loading
Loading
Loading
Loading
+4 −6
Original line number Original line Diff line number Diff line
@@ -1681,8 +1681,7 @@ S: Maintained
HARMONY SOUND DRIVER
HARMONY SOUND DRIVER
P:	Kyle McMartin
P:	Kyle McMartin
M:	kyle@parisc-linux.org
M:	kyle@parisc-linux.org
W:	http://www.parisc-linux.org/~kyle/harmony/
L:	linux-parisc@vger.kernel.org
L:	parisc-linux@lists.parisc-linux.org
S:	Maintained
S:	Maintained


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


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


PARAVIRT_OPS INTERFACE
PARAVIRT_OPS INTERFACE
+1 −1
Original line number Original line Diff line number Diff line
@@ -70,7 +70,7 @@ kernel-y := mm/ kernel/ math-emu/ kernel/init_task.o
kernel-$(CONFIG_HPUX)		+= hpux/
kernel-$(CONFIG_HPUX)		+= hpux/


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


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


+34 −54
Original line number Original line Diff line number Diff line
@@ -1082,76 +1082,56 @@ void pdc_io_reset_devices(void)




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


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


/**
 * 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);
        spin_lock_irqsave(&pdc_lock, flags);
        real32_call(PAGE0->mem_cons.iodc_io,
        real32_call(PAGE0->mem_cons.iodc_io,
                    (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
                    (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
                    PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
                    PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
		    __pa(iodc_retbuf), 0, __pa(iodc_dbuf), n, 0);
                    __pa(iodc_retbuf), 0, __pa(iodc_dbuf), i, 0);
        spin_unlock_irqrestore(&pdc_lock, flags);
        spin_unlock_irqrestore(&pdc_lock, flags);

	return i;
}
}


/**
/**
+1 −1
Original line number Original line Diff line number Diff line
@@ -397,7 +397,7 @@ static void claim_cpu_irqs(void)
	}
	}


	irq_desc[TIMER_IRQ].action = &timer_action;
	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
#ifdef CONFIG_SMP
	irq_desc[IPI_IRQ].action = &ipi_action;
	irq_desc[IPI_IRQ].action = &ipi_action;
	irq_desc[IPI_IRQ].status = IRQ_PER_CPU;
	irq_desc[IPI_IRQ].status = IRQ_PER_CPU;
+22 −0
Original line number Original line Diff line number Diff line
@@ -122,9 +122,31 @@ EXPORT_SYMBOL($$divI_12);
EXPORT_SYMBOL($$divI_14);
EXPORT_SYMBOL($$divI_14);
EXPORT_SYMBOL($$divI_15);
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 *);
asmlinkage void * __canonicalize_funcptr_for_compare(void *);
EXPORT_SYMBOL(__canonicalize_funcptr_for_compare);
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
#ifndef CONFIG_64BIT
extern void $$dyncall(void);
extern void $$dyncall(void);
EXPORT_SYMBOL($$dyncall);
EXPORT_SYMBOL($$dyncall);
Loading