Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 479
b: refs/heads/master
c: 7933523
h: refs/heads/master
i:
  477: 3ac9862
  475: 957b484
  471: 7663fd1
  463: ef89a13
  447: bbf146e
v: v3
  • Loading branch information
Russell King committed Apr 26, 2005
1 parent 030e6cb commit 823b230
Show file tree
Hide file tree
Showing 132 changed files with 914 additions and 1,560 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: 766f2fa170e65948053b06c6106c8dc8526c3e14
refs/heads/master: 7933523dc75823342dbd70a27760a82a5302baf4
2 changes: 0 additions & 2 deletions trunk/Documentation/networking/netdevices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ dev->hard_start_xmit:
set_multicast_list
Context: BHs disabled
Notes: netif_queue_stopped() is guaranteed false
Interrupts must be enabled when calling hard_start_xmit.
(Interrupts must also be enabled when enabling the BH handler.)
Return codes:
o NETDEV_TX_OK everything ok.
o NETDEV_TX_BUSY Cannot transmit packet, try later
Expand Down
47 changes: 18 additions & 29 deletions trunk/arch/arm/kernel/entry-armv.S
Original file line number Diff line number Diff line change
Expand Up @@ -522,8 +522,9 @@ ENTRY(__switch_to)
/*
* Vector stubs.
*
* This code is copied to 0x200 or 0xffff0200 so we can use branches in the
* vectors, rather than ldr's.
* This code is copied to 0xffff0200 so we can use branches in the
* vectors, rather than ldr's. Note that this code must not
* exceed 0x300 bytes.
*
* Common stub entry macro:
* Enter in IRQ mode, spsr = SVC/USR CPSR, lr = SVC/USR PC
Expand Down Expand Up @@ -552,6 +553,7 @@ vector_\name:
movs pc, lr @ Changes mode and branches
.endm

.globl __stubs_start
__stubs_start:
/*
* Interrupt dispatcher
Expand Down Expand Up @@ -686,37 +688,24 @@ vector_addrexcptn:
.LCsabt:
.word __temp_abt

.globl __stubs_end
__stubs_end:

.equ __real_stubs_start, .LCvectors + 0x200
.equ stubs_offset, __vectors_start + 0x200 - __stubs_start

.LCvectors:
.globl __vectors_start
__vectors_start:
swi SYS_ERROR0
b __real_stubs_start + (vector_und - __stubs_start)
ldr pc, __real_stubs_start + (.LCvswi - __stubs_start)
b __real_stubs_start + (vector_pabt - __stubs_start)
b __real_stubs_start + (vector_dabt - __stubs_start)
b __real_stubs_start + (vector_addrexcptn - __stubs_start)
b __real_stubs_start + (vector_irq - __stubs_start)
b __real_stubs_start + (vector_fiq - __stubs_start)

ENTRY(__trap_init)
stmfd sp!, {r4 - r6, lr}

mov r0, #0xff000000
orr r0, r0, #0x00ff0000 @ high vectors position
adr r1, .LCvectors @ set up the vectors
ldmia r1, {r1, r2, r3, r4, r5, r6, ip, lr}
stmia r0, {r1, r2, r3, r4, r5, r6, ip, lr}

add r2, r0, #0x200
adr r0, __stubs_start @ copy stubs to 0x200
adr r1, __stubs_end
1: ldr r3, [r0], #4
str r3, [r2], #4
cmp r0, r1
blt 1b
LOADREGS(fd, sp!, {r4 - r6, pc})
b vector_und + stubs_offset
ldr pc, .LCvswi + stubs_offset
b vector_pabt + stubs_offset
b vector_dabt + stubs_offset
b vector_addrexcptn + stubs_offset
b vector_irq + stubs_offset
b vector_fiq + stubs_offset

.globl __vectors_end
__vectors_end:

.data

Expand Down
11 changes: 9 additions & 2 deletions trunk/arch/arm/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -578,9 +578,16 @@ EXPORT_SYMBOL(abort);

void __init trap_init(void)
{
extern void __trap_init(void);
extern char __stubs_start[], __stubs_end[];
extern char __vectors_start[], __vectors_end[];

__trap_init();
/*
* Copy the vectors and stubs (in entry-armv.S) into the
* vector page, mapped at 0xffff0000, and ensure these are
* visible to the instruction stream.
*/
memcpy((void *)0xffff0000, __vectors_start, __vectors_end - __vectors_start);
memcpy((void *)0xffff0200, __stubs_start, __stubs_end - __stubs_start);
flush_icache_range(0xffff0000, 0xffff0000 + PAGE_SIZE);
modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
}
2 changes: 1 addition & 1 deletion trunk/arch/ppc/kernel/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,7 @@ pci_bus_to_hose(int bus)
return NULL;
}

void __iomem *
void*
pci_bus_io_base(unsigned int bus)
{
struct pci_controller *hose;
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/ppc/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ int sys_rt_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8,
}

int sys_debug_setcontext(struct ucontext __user *ctx,
int ndbg, struct sig_dbg_op __user *dbg,
int ndbg, struct sig_dbg_op *dbg,
int r6, int r7, int r8,
struct pt_regs *regs)
{
Expand Down Expand Up @@ -632,7 +632,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka,
if (__put_user((unsigned long) ka->sa.sa_handler, &sc->handler)
|| __put_user(oldset->sig[0], &sc->oldmask)
|| __put_user(oldset->sig[1], &sc->_unused[3])
|| __put_user((struct pt_regs __user *)frame, &sc->regs)
|| __put_user((struct pt_regs *)frame, &sc->regs)
|| __put_user(sig, &sc->signal))
goto badframe;

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/ppc/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ static int emulate_string_inst(struct pt_regs *regs, u32 instword)
u8 rA = (instword >> 16) & 0x1f;
u8 NB_RB = (instword >> 11) & 0x1f;
u32 num_bytes;
unsigned long EA;
u32 EA;
int pos = 0;

/* Early out if we are an invalid form of lswx */
Expand Down
7 changes: 4 additions & 3 deletions trunk/arch/ppc/platforms/4xx/ebony.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ ebony_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin)
static void __init
ebony_setup_pcix(void)
{
void __iomem *pcix_reg_base;
void *pcix_reg_base;

pcix_reg_base = ioremap64(PCIX0_REG_BASE, PCIX_REG_SIZE);

Expand Down Expand Up @@ -210,8 +210,9 @@ ebony_setup_hose(void)
hose->io_space.end = EBONY_PCI_UPPER_IO;
hose->mem_space.start = EBONY_PCI_LOWER_MEM;
hose->mem_space.end = EBONY_PCI_UPPER_MEM;
hose->io_base_virt = ioremap64(EBONY_PCI_IO_BASE, EBONY_PCI_IO_SIZE);
isa_io_base = (unsigned long)hose->io_base_virt;
isa_io_base =
(unsigned long)ioremap64(EBONY_PCI_IO_BASE, EBONY_PCI_IO_SIZE);
hose->io_base_virt = (void *)isa_io_base;

setup_indirect_pci(hose,
EBONY_PCI_CFGA_PLB32,
Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/ppc/platforms/4xx/luan.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,9 @@ luan_setup_hose(struct pci_controller *hose,
hose->io_space.end = LUAN_PCIX_UPPER_IO;
hose->mem_space.start = lower_mem;
hose->mem_space.end = upper_mem;
hose->io_base_virt = ioremap64(pcix_io_base, PCIX_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;
isa_io_base =
(unsigned long)ioremap64(pcix_io_base, PCIX_IO_SIZE);
hose->io_base_virt = (void *)isa_io_base;

setup_indirect_pci(hose, cfga, cfgd);
hose->set_cfg_type = 1;
Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/ppc/platforms/4xx/ocotea.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,9 @@ ocotea_setup_hose(void)
hose->io_space.end = OCOTEA_PCI_UPPER_IO;
hose->mem_space.start = OCOTEA_PCI_LOWER_MEM;
hose->mem_space.end = OCOTEA_PCI_UPPER_MEM;
hose->io_base_virt = ioremap64(OCOTEA_PCI_IO_BASE, OCOTEA_PCI_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;
isa_io_base =
(unsigned long)ioremap64(OCOTEA_PCI_IO_BASE, OCOTEA_PCI_IO_SIZE);
hose->io_base_virt = (void *)isa_io_base;

setup_indirect_pci(hose,
OCOTEA_PCI_CFGA_PLB32,
Expand Down
10 changes: 6 additions & 4 deletions trunk/arch/ppc/platforms/pmac_low_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ struct low_i2c_host
int mode; /* Current mode */
int channel; /* Current channel */
int num_channels; /* Number of channels */
void __iomem * base; /* For keywest-i2c, base address */
unsigned long base; /* For keywest-i2c, base address */
int bsteps; /* And register stepping */
int speed; /* And speed */
};
Expand Down Expand Up @@ -154,12 +154,14 @@ static const char *__kw_state_names[] = {

static inline u8 __kw_read_reg(struct low_i2c_host *host, reg_t reg)
{
return in_8(host->base + (((unsigned)reg) << host->bsteps));
return in_8(((volatile u8 *)host->base)
+ (((unsigned)reg) << host->bsteps));
}

static inline void __kw_write_reg(struct low_i2c_host *host, reg_t reg, u8 val)
{
out_8(host->base + (((unsigned)reg) << host->bsteps), val);
out_8(((volatile u8 *)host->base)
+ (((unsigned)reg) << host->bsteps), val);
(void)__kw_read_reg(host, reg_subaddr);
}

Expand Down Expand Up @@ -368,7 +370,7 @@ static void keywest_low_i2c_add(struct device_node *np)
break;
}
host->mode = pmac_low_i2c_mode_std;
host->base = ioremap(np->addrs[0].address + aoffset,
host->base = (unsigned long)ioremap(np->addrs[0].address + aoffset,
np->addrs[0].size);
host->func = keywest_low_i2c_func;
}
Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/ppc/syslib/m8260_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,10 @@ void __init m8260_find_bridges(void)
m8260_setup_pci(hose);
hose->pci_mem_offset = MPC826x_PCI_MEM_OFFSET;

hose->io_base_virt = ioremap(MPC826x_PCI_IO_BASE,
isa_io_base =
(unsigned long) ioremap(MPC826x_PCI_IO_BASE,
MPC826x_PCI_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;
hose->io_base_virt = (void *) isa_io_base;

/* setup resources */
pci_init_resource(&hose->mem_resources[0],
Expand Down
8 changes: 5 additions & 3 deletions trunk/arch/ppc/syslib/mpc52xx_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,13 @@ mpc52xx_find_bridges(void)

hose->pci_mem_offset = MPC52xx_PCI_MEM_OFFSET;

hose->io_base_virt = ioremap(MPC52xx_PCI_IO_BASE, MPC52xx_PCI_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;
isa_io_base =
(unsigned long) ioremap(MPC52xx_PCI_IO_BASE,
MPC52xx_PCI_IO_SIZE);
hose->io_base_virt = (void *) isa_io_base;

hose->cfg_addr = &pci_regs->car;
hose->cfg_data = hose->io_base_virt;
hose->cfg_data = (void __iomem *) isa_io_base;

/* Setup resources */
pci_init_resource(&hose->mem_resources[0],
Expand Down
12 changes: 7 additions & 5 deletions trunk/arch/ppc/syslib/ppc85xx_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,14 +280,16 @@ mpc85xx_setup_hose(void)
hose_a->io_space.end = MPC85XX_PCI1_UPPER_IO;
hose_a->io_base_phys = MPC85XX_PCI1_IO_BASE;
#ifdef CONFIG_85xx_PCI2
hose_a->io_base_virt = ioremap(MPC85XX_PCI1_IO_BASE,
isa_io_base =
(unsigned long) ioremap(MPC85XX_PCI1_IO_BASE,
MPC85XX_PCI1_IO_SIZE +
MPC85XX_PCI2_IO_SIZE);
#else
hose_a->io_base_virt = ioremap(MPC85XX_PCI1_IO_BASE,
isa_io_base =
(unsigned long) ioremap(MPC85XX_PCI1_IO_BASE,
MPC85XX_PCI1_IO_SIZE);
#endif
isa_io_base = (unsigned long)hose_a->io_base_virt;
hose_a->io_base_virt = (void *) isa_io_base;

/* setup resources */
pci_init_resource(&hose_a->mem_resources[0],
Expand Down Expand Up @@ -327,8 +329,8 @@ mpc85xx_setup_hose(void)
hose_b->io_space.start = MPC85XX_PCI2_LOWER_IO;
hose_b->io_space.end = MPC85XX_PCI2_UPPER_IO;
hose_b->io_base_phys = MPC85XX_PCI2_IO_BASE;
hose_b->io_base_virt = hose_a->io_base_virt + MPC85XX_PCI1_IO_SIZE;
hose_b->io_base_virt = (void *) isa_io_base + MPC85XX_PCI1_IO_SIZE;

/* setup resources */
pci_init_resource(&hose_b->mem_resources[0],
MPC85XX_PCI2_LOWER_MEM,
Expand Down
Loading

0 comments on commit 823b230

Please sign in to comment.