Skip to content

Commit

Permalink
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Browse files Browse the repository at this point in the history
* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] Fix some section mismatch warnings
  [ARM] 4417/1: Serial: Fix AMBA drivers locking
  [ARM] 4394/1: ARMv7: Add the TLB range operations
  [ARM] 4410/1: Remove extern declarations in coyote/ixdpg425-pci.c
  [ARM] 4416/1: NWFPE: fix undeclared symbols
  [ARM] 4415/1: AML5900: fix sparse warnings from map_io
  [ARM] 4414/1: S3C2443: sparse fix for clock.c
  [ARM] 4412/1: S3C2412: reset errata fix
  [ARM] 4411/1: KS8695: Another serial driver fix
  [ARM] oprofile: avoid lockdep warnings on mpcore oprofile init
  [ARM] Fix stacktrace FP range checking
  [ARM] use __used attribute
  [ARM] enable arbitary speed tty ioctls and split input/output speed
  [ARM] remove unused header file: arch/arm/mach-s3c2410/bast.h
  [ARM] 4406/1: Trivial NSLU2 / NAS-100D header & setup code cleanup
  [ARM] 4405/1: NSLU2, DSM-G600 frequency fixup code
  [ARM] 4404/1: Trivial IXP42x Kconfig cleanup
  [ARM] 4403/1: Make the PXA-I2C driver work with lockdep validator
  [ARM] 4402/1: S3C2443: Add physical address of HSMMC controller
  [ARM] 4401/1: S3C2443: Add definitions for port GPIOJ
  • Loading branch information
Linus Torvalds committed May 30, 2007
2 parents aa2d332 + cdea460 commit f54496f
Show file tree
Hide file tree
Showing 51 changed files with 291 additions and 144 deletions.
2 changes: 1 addition & 1 deletion arch/arm/kernel/armksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ extern void fp_enter(void);
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
EXPORT_CRC_ALIAS(sym) \
static const struct kernel_symbol __ksymtab_##sym \
__attribute_used__ __attribute__((section("__ksymtab"))) = \
__used __attribute__((section("__ksymtab"))) = \
{ (unsigned long)&orig, #sym };

/*
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/kernel/stacktrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ int walk_stackframe(unsigned long fp, unsigned long low, unsigned long high,
/*
* Check current frame pointer is within bounds
*/
if ((fp - 12) < low || fp + 4 >= high)
if (fp < (low + 12) || fp + 4 >= high)
break;

frame = (struct stackframe *)(fp - 12);
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/board-dk.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ static struct mtd_partition __initdata dk_nand_partition[] = {
},
};

static struct mtd_partition *nand_partitions(int size, int *num_partitions)
static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
{
*num_partitions = ARRAY_SIZE(dk_nand_partition);
return dk_nand_partition;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/board-kb9202.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ static struct mtd_partition __initdata kb9202_nand_partition[] = {
},
};

static struct mtd_partition *nand_partitions(int size, int *num_partitions)
static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
{
*num_partitions = ARRAY_SIZE(kb9202_nand_partition);
return kb9202_nand_partition;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/board-sam9261ek.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
},
};

static struct mtd_partition *nand_partitions(int size, int *num_partitions)
static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
{
*num_partitions = ARRAY_SIZE(ek_nand_partition);
return ek_nand_partition;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/board-sam9263ek.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
},
};

static struct mtd_partition *nand_partitions(int size, int *num_partitions)
static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
{
*num_partitions = ARRAY_SIZE(ek_nand_partition);
return ek_nand_partition;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-at91/board-sam9rlek.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
},
};

static struct mtd_partition *nand_partitions(int size, int *num_partitions)
static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
{
*num_partitions = ARRAY_SIZE(ek_nand_partition);
return ek_nand_partition;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-footbridge/cats-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ static struct hw_pci cats_pci __initdata = {
.postinit = dc21285_postinit,
};

static int cats_pci_init(void)
static int __init cats_pci_init(void)
{
if (machine_is_cats())
pci_common_init(&cats_pci);
Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-imx/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,6 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info)
{
imx_mmc_device.dev.platform_data = info;
}
EXPORT_SYMBOL(imx_set_mmc_info);

static struct imxfb_mach_info imx_fb_info;

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp2000/ixdp2400.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ int __init ixdp2400_pci_init(void)

subsys_initcall(ixdp2400_pci_init);

void ixdp2400_init_irq(void)
void __init ixdp2400_init_irq(void)
{
ixdp2x00_init_irq(IXDP2400_CPLD_INT_STAT, IXDP2400_CPLD_INT_MASK, IXDP2400_NR_IRQS);
}
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp2000/ixdp2800.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ int __init ixdp2800_pci_init(void)

subsys_initcall(ixdp2800_pci_init);

void ixdp2800_init_irq(void)
void __init ixdp2800_init_irq(void)
{
ixdp2x00_init_irq(IXDP2800_CPLD_INT_STAT, IXDP2800_CPLD_INT_MASK, IXDP2800_NR_IRQS);
}
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp2000/ixdp2x00.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ static struct irq_chip ixdp2x00_cpld_irq_chip = {
.unmask = ixdp2x00_irq_unmask
};

void ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs)
void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs)
{
unsigned int irq;

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp23xx/ixdp2351.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ static struct irq_chip ixdp2351_intb_chip = {
.unmask = ixdp2351_intb_unmask
};

void ixdp2351_init_irq(void)
void __init ixdp2351_init_irq(void)
{
int irq;

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp23xx/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ int ixp23xx_pci_setup(int nr, struct pci_sys_data *sys)
return 1;
}

void ixp23xx_pci_slave_init(void)
void __init ixp23xx_pci_slave_init(void)
{
ixp23xx_pci_common_init();
}
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp23xx/roadrunner.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ static int __init roadrunner_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
return NO_IRQ;
}

static void roadrunner_pci_preinit(void)
static void __init roadrunner_pci_preinit(void)
{
set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQT_LOW);
set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQT_LOW);
Expand Down
3 changes: 0 additions & 3 deletions arch/arm/mach-ixp4xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,6 @@ config MACH_DSMG600
DSM-G600 RevA device. For more information on this platform,
see http://www.nslu2-linux.org/wiki/DSMG600/HomePage

#
# Avila and IXDP share the same source for now. Will change in future
#
config ARCH_IXDP4XX
bool
depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp4xx/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ static struct irqaction ixp4xx_timer_irq = {
.handler = ixp4xx_timer_interrupt,
};

static void __init ixp4xx_timer_init(void)
void __init ixp4xx_timer_init(void)
{
/* Reset/disable counter */
*IXP4XX_OSRT1 = 0;
Expand Down
4 changes: 0 additions & 4 deletions arch/arm/mach-ixp4xx/coyote-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,6 @@

#include <asm/mach/pci.h>

extern void ixp4xx_pci_preinit(void);
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys);

void __init coyote_pci_preinit(void)
{
set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQT_LOW);
Expand Down
24 changes: 15 additions & 9 deletions arch/arm/mach-ixp4xx/dsmg600-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <asm/mach/time.h>

static struct flash_platform_data dsmg600_flash_data = {
.map_name = "cfi_probe",
Expand Down Expand Up @@ -128,6 +129,19 @@ static void dsmg600_power_off(void)
gpio_line_set(DSMG600_PO_GPIO, IXP4XX_GPIO_HIGH);
}

static void __init dsmg600_timer_init(void)
{
/* The xtal on this machine is non-standard. */
ixp4xx_timer_freq = DSMG600_FREQ;

/* Call standard timer_init function. */
ixp4xx_timer_init();
}

static struct sys_timer dsmg600_timer = {
.init = dsmg600_timer_init,
};

static void __init dsmg600_init(void)
{
ixp4xx_sys_init();
Expand Down Expand Up @@ -155,21 +169,13 @@ static void __init dsmg600_init(void)
#endif
}

static void __init dsmg600_fixup(struct machine_desc *desc,
struct tag *tags, char **cmdline, struct meminfo *mi)
{
/* The xtal on this machine is non-standard. */
ixp4xx_timer_freq = DSMG600_FREQ;
}

MACHINE_START(DSMG600, "D-Link DSM-G600 RevA")
/* Maintainer: www.nslu2-linux.org */
.phys_io = IXP4XX_PERIPHERAL_BASE_PHYS,
.io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
.boot_params = 0x00000100,
.fixup = dsmg600_fixup,
.map_io = ixp4xx_map_io,
.init_irq = ixp4xx_init_irq,
.timer = &ixp4xx_timer,
.timer = &dsmg600_timer,
.init_machine = dsmg600_init,
MACHINE_END
4 changes: 0 additions & 4 deletions arch/arm/mach-ixp4xx/ixdpg425-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@

#include <asm/mach/pci.h>

extern void ixp4xx_pci_preinit(void);
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys);

void __init ixdpg425_pci_preinit(void)
{
set_irq_type(IRQ_IXP4XX_GPIO6, IRQT_LOW);
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-ixp4xx/nas100d-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,8 @@ static void __init nas100d_init(void)

pm_power_off = nas100d_power_off;

/* This is only useful on a modified machine, but it is valuable
/*
* This is only useful on a modified machine, but it is valuable
* to have it first in order to see debug messages, and so that
* it does *not* get removed if platform_add_devices fails!
*/
Expand Down
37 changes: 25 additions & 12 deletions arch/arm/mach-ixp4xx/nslu2-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <asm/mach/time.h>

static struct flash_platform_data nslu2_flash_data = {
.map_name = "cfi_probe",
Expand Down Expand Up @@ -49,26 +50,26 @@ static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = {
static struct resource nslu2_led_resources[] = {
{
.name = "ready", /* green led */
.start = NSLU2_LED_GRN,
.end = NSLU2_LED_GRN,
.start = NSLU2_LED_GRN_GPIO,
.end = NSLU2_LED_GRN_GPIO,
.flags = IXP4XX_GPIO_HIGH,
},
{
.name = "status", /* red led */
.start = NSLU2_LED_RED,
.end = NSLU2_LED_RED,
.start = NSLU2_LED_RED_GPIO,
.end = NSLU2_LED_RED_GPIO,
.flags = IXP4XX_GPIO_HIGH,
},
{
.name = "disk-1",
.start = NSLU2_LED_DISK1,
.end = NSLU2_LED_DISK1,
.start = NSLU2_LED_DISK1_GPIO,
.end = NSLU2_LED_DISK1_GPIO,
.flags = IXP4XX_GPIO_LOW,
},
{
.name = "disk-2",
.start = NSLU2_LED_DISK2,
.end = NSLU2_LED_DISK2,
.start = NSLU2_LED_DISK2_GPIO,
.end = NSLU2_LED_DISK2_GPIO,
.flags = IXP4XX_GPIO_LOW,
},
};
Expand Down Expand Up @@ -157,10 +158,21 @@ static void nslu2_power_off(void)
gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH);
}

static void __init nslu2_init(void)
static void __init nslu2_timer_init(void)
{
ixp4xx_timer_freq = NSLU2_FREQ;
/* The xtal on this machine is non-standard. */
ixp4xx_timer_freq = NSLU2_FREQ;

/* Call standard timer_init function. */
ixp4xx_timer_init();
}

static struct sys_timer nslu2_timer = {
.init = nslu2_timer_init,
};

static void __init nslu2_init(void)
{
ixp4xx_sys_init();

nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
Expand All @@ -169,7 +181,8 @@ static void __init nslu2_init(void)

pm_power_off = nslu2_power_off;

/* This is only useful on a modified machine, but it is valuable
/*
* This is only useful on a modified machine, but it is valuable
* to have it first in order to see debug messages, and so that
* it does *not* get removed if platform_add_devices fails!
*/
Expand All @@ -185,6 +198,6 @@ MACHINE_START(NSLU2, "Linksys NSLU2")
.boot_params = 0x00000100,
.map_io = ixp4xx_map_io,
.init_irq = ixp4xx_init_irq,
.timer = &ixp4xx_timer,
.timer = &nslu2_timer,
.init_machine = nslu2_init,
MACHINE_END
2 changes: 0 additions & 2 deletions arch/arm/mach-s3c2410/bast.h

This file was deleted.

2 changes: 1 addition & 1 deletion arch/arm/mach-s3c2410/mach-amlm5900.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ static struct platform_device *amlm5900_devices[] __initdata = {
#endif
};

void __init amlm5900_map_io(void)
static void __init amlm5900_map_io(void)
{
s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc));
s3c24xx_init_clocks(0);
Expand Down
24 changes: 24 additions & 0 deletions arch/arm/mach-s3c2412/s3c2412.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <linux/list.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/sysdev.h>
#include <linux/serial_core.h>
#include <linux/platform_device.h>
Expand All @@ -29,6 +30,7 @@
#include <asm/io.h>
#include <asm/irq.h>

#include <asm/arch/reset.h>
#include <asm/arch/idle.h>

#include <asm/arch/regs-clock.h>
Expand All @@ -38,6 +40,7 @@
#include <asm/arch/regs-gpioj.h>
#include <asm/arch/regs-dsc.h>
#include <asm/arch/regs-spi.h>
#include <asm/arch/regs-s3c2412.h>

#include <asm/plat-s3c24xx/s3c2412.h>
#include <asm/plat-s3c24xx/cpu.h>
Expand Down Expand Up @@ -106,6 +109,23 @@ static void s3c2412_idle(void)
cpu_do_idle();
}

static void s3c2412_hard_reset(void)
{
/* errata "Watch-dog/Software Reset Problem" specifies that
* this reset must be done with the SYSCLK sourced from
* EXTCLK instead of FOUT to avoid a glitch in the reset
* mechanism.
*
* See the watchdog section of the S3C2412 manual for more
* information on this fix.
*/

__raw_writel(0x00, S3C2412_CLKSRC);
__raw_writel(S3C2412_SWRST_RESET, S3C2412_SWRST);

mdelay(1);
}

/* s3c2412_map_io
*
* register the standard cpu IO areas, and any passed in from the
Expand All @@ -122,6 +142,10 @@ void __init s3c2412_map_io(struct map_desc *mach_desc, int mach_size)

s3c24xx_idle = s3c2412_idle;

/* set custom reset hook */

s3c24xx_reset_hook = s3c2412_hard_reset;

/* register our io-tables */

iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc));
Expand Down
Loading

0 comments on commit f54496f

Please sign in to comment.