提交 fdc76bf9 编写于 作者: L Linus Torvalds

Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm

* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] clps711x: add sparsemem definitions
  [ARM] 5315/1: Fix section mismatch warning (sa1111)
  [ARM] Orion: activate workaround for 88f6183 SPI clock erratum
  [ARM] Orion: instantiate the dsa switch driver
  [ARM] mv78xx0: force link speed/duplex on eth2/eth3
  [ARM] remove extra brace in arch/arm/mach-pxa/trizeps4.c
  [ARM] balance parenthesis in header file
  [ARM] pxa: fix trizeps PCMCIA build
  [ARM] pxa: fix trizeps defconfig
  [ARM] dmabounce requires ZONE_DMA
  [ARM] 5303/1: period_cycles should be greater than 1
  [ARM] 5310/1: Fix cache flush functions for ARMv4
  [ARM] pxa: fix 3bca103a
  [ARM] pxa: fix redefinition of NR_IRQS
  [ARM] S3C24XX: Fix redefine of DEFINE_TIMER() in s3c24xx pwm-clock.c
  [ARM] S3C2443: Fix HCLK rate
  [ARM] S3C24XX: Serial driver debug depends on DEBUG_LL
  [ARM] S3C24XX: pwm-clock set_parent mask fix
...@@ -356,7 +356,7 @@ config ARCH_IXP4XX ...@@ -356,7 +356,7 @@ config ARCH_IXP4XX
select GENERIC_GPIO select GENERIC_GPIO
select GENERIC_TIME select GENERIC_TIME
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select ZONE_DMA if PCI select DMABOUNCE if PCI
help help
Support for Intel's IXP4XX (XScale) family of processors. Support for Intel's IXP4XX (XScale) family of processors.
......
...@@ -13,10 +13,10 @@ config ICST307 ...@@ -13,10 +13,10 @@ config ICST307
config SA1111 config SA1111
bool bool
select DMABOUNCE if !ARCH_PXA select DMABOUNCE if !ARCH_PXA
select ZONE_DMA if !ARCH_PXA
config DMABOUNCE config DMABOUNCE
bool bool
select ZONE_DMA
config TIMER_ACORN config TIMER_ACORN
bool bool
......
...@@ -581,6 +581,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, ...@@ -581,6 +581,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent,
goto out; goto out;
} }
#ifdef CONFIG_DMABOUNCE
/* /*
* If the parent device has a DMA mask associated with it, * If the parent device has a DMA mask associated with it,
* propagate it down to the children. * propagate it down to the children.
...@@ -598,6 +599,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, ...@@ -598,6 +599,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent,
} }
} }
} }
#endif
out: out:
return ret; return ret;
...@@ -937,7 +939,7 @@ static int sa1111_resume(struct platform_device *dev) ...@@ -937,7 +939,7 @@ static int sa1111_resume(struct platform_device *dev)
#define sa1111_resume NULL #define sa1111_resume NULL
#endif #endif
static int sa1111_probe(struct platform_device *pdev) static int __devinit sa1111_probe(struct platform_device *pdev)
{ {
struct resource *mem; struct resource *mem;
int irq; int irq;
......
...@@ -147,6 +147,7 @@ CONFIG_ARCH_PXA=y ...@@ -147,6 +147,7 @@ CONFIG_ARCH_PXA=y
# CONFIG_MACH_MAINSTONE is not set # CONFIG_MACH_MAINSTONE is not set
# CONFIG_ARCH_PXA_IDP is not set # CONFIG_ARCH_PXA_IDP is not set
# CONFIG_PXA_SHARPSL is not set # CONFIG_PXA_SHARPSL is not set
CONFIG_TRIZEPS_PXA=y
CONFIG_MACH_TRIZEPS4=y CONFIG_MACH_TRIZEPS4=y
CONFIG_MACH_TRIZEPS4_CONXS=y CONFIG_MACH_TRIZEPS4_CONXS=y
# CONFIG_MACH_TRIZEPS4_ANY is not set # CONFIG_MACH_TRIZEPS4_ANY is not set
......
...@@ -89,6 +89,8 @@ ...@@ -89,6 +89,8 @@
* node 3: 0xd8000000 - 0xdfffffff * node 3: 0xd8000000 - 0xdfffffff
*/ */
#define NODE_MEM_SIZE_BITS 24 #define NODE_MEM_SIZE_BITS 24
#define SECTION_SIZE_BITS 24
#define MAX_PHYSMEM_BITS 32
#endif #endif
...@@ -167,11 +167,6 @@ config MACH_GTWX5715 ...@@ -167,11 +167,6 @@ config MACH_GTWX5715
comment "IXP4xx Options" comment "IXP4xx Options"
config DMABOUNCE
bool
default y
depends on PCI
config IXP4XX_INDIRECT_PCI config IXP4XX_INDIRECT_PCI
bool "Use indirect PCI memory access" bool "Use indirect PCI memory access"
depends on PCI depends on PCI
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/spi/orion_spi.h> #include <linux/spi/orion_spi.h>
#include <net/dsa.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/timex.h> #include <asm/timex.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -151,6 +152,40 @@ void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data) ...@@ -151,6 +152,40 @@ void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data)
} }
/*****************************************************************************
* Ethernet switch
****************************************************************************/
static struct resource kirkwood_switch_resources[] = {
{
.start = 0,
.end = 0,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device kirkwood_switch_device = {
.name = "dsa",
.id = 0,
.num_resources = 0,
.resource = kirkwood_switch_resources,
};
void __init kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq)
{
if (irq != NO_IRQ) {
kirkwood_switch_resources[0].start = irq;
kirkwood_switch_resources[0].end = irq;
kirkwood_switch_device.num_resources = 1;
}
d->mii_bus = &kirkwood_ge00_shared.dev;
d->netdev = &kirkwood_ge00.dev;
kirkwood_switch_device.dev.platform_data = d;
platform_device_register(&kirkwood_switch_device);
}
/***************************************************************************** /*****************************************************************************
* SoC RTC * SoC RTC
****************************************************************************/ ****************************************************************************/
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#ifndef __ARCH_KIRKWOOD_COMMON_H #ifndef __ARCH_KIRKWOOD_COMMON_H
#define __ARCH_KIRKWOOD_COMMON_H #define __ARCH_KIRKWOOD_COMMON_H
struct dsa_platform_data;
struct mv643xx_eth_platform_data; struct mv643xx_eth_platform_data;
struct mv_sata_platform_data; struct mv_sata_platform_data;
...@@ -29,6 +30,7 @@ void kirkwood_pcie_id(u32 *dev, u32 *rev); ...@@ -29,6 +30,7 @@ void kirkwood_pcie_id(u32 *dev, u32 *rev);
void kirkwood_ehci_init(void); void kirkwood_ehci_init(void);
void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data);
void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq);
void kirkwood_pcie_init(void); void kirkwood_pcie_init(void);
void kirkwood_rtc_init(void); void kirkwood_rtc_init(void);
void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); void kirkwood_sata_init(struct mv_sata_platform_data *sata_data);
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <net/dsa.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/pci.h> #include <asm/mach/pci.h>
...@@ -74,6 +75,15 @@ static struct mv643xx_eth_platform_data rd88f6281_ge00_data = { ...@@ -74,6 +75,15 @@ static struct mv643xx_eth_platform_data rd88f6281_ge00_data = {
.duplex = DUPLEX_FULL, .duplex = DUPLEX_FULL,
}; };
static struct dsa_platform_data rd88f6281_switch_data = {
.port_names[0] = "lan1",
.port_names[1] = "lan2",
.port_names[2] = "lan3",
.port_names[3] = "lan4",
.port_names[4] = "wan",
.port_names[5] = "cpu",
};
static struct mv_sata_platform_data rd88f6281_sata_data = { static struct mv_sata_platform_data rd88f6281_sata_data = {
.n_ports = 2, .n_ports = 2,
}; };
...@@ -87,6 +97,7 @@ static void __init rd88f6281_init(void) ...@@ -87,6 +97,7 @@ static void __init rd88f6281_init(void)
kirkwood_ehci_init(); kirkwood_ehci_init();
kirkwood_ge00_init(&rd88f6281_ge00_data); kirkwood_ge00_init(&rd88f6281_ge00_data);
kirkwood_ge00_switch_init(&rd88f6281_switch_data, NO_IRQ);
kirkwood_rtc_init(); kirkwood_rtc_init();
kirkwood_sata_init(&rd88f6281_sata_data); kirkwood_sata_init(&rd88f6281_sata_data);
kirkwood_uart0_init(); kirkwood_uart0_init();
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/ethtool.h>
#include <mach/mv78xx0.h> #include <mach/mv78xx0.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -28,10 +29,14 @@ static struct mv643xx_eth_platform_data db78x00_ge01_data = { ...@@ -28,10 +29,14 @@ static struct mv643xx_eth_platform_data db78x00_ge01_data = {
static struct mv643xx_eth_platform_data db78x00_ge10_data = { static struct mv643xx_eth_platform_data db78x00_ge10_data = {
.phy_addr = MV643XX_ETH_PHY_NONE, .phy_addr = MV643XX_ETH_PHY_NONE,
.speed = SPEED_1000,
.duplex = DUPLEX_FULL,
}; };
static struct mv643xx_eth_platform_data db78x00_ge11_data = { static struct mv643xx_eth_platform_data db78x00_ge11_data = {
.phy_addr = MV643XX_ETH_PHY_NONE, .phy_addr = MV643XX_ETH_PHY_NONE,
.speed = SPEED_1000,
.duplex = DUPLEX_FULL,
}; };
static struct mv_sata_platform_data db78x00_sata_data = { static struct mv_sata_platform_data db78x00_sata_data = {
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/mv643xx_i2c.h> #include <linux/mv643xx_i2c.h>
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/spi/orion_spi.h> #include <linux/spi/orion_spi.h>
#include <net/dsa.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/timex.h> #include <asm/timex.h>
...@@ -197,6 +198,40 @@ void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data) ...@@ -197,6 +198,40 @@ void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data)
} }
/*****************************************************************************
* Ethernet switch
****************************************************************************/
static struct resource orion5x_switch_resources[] = {
{
.start = 0,
.end = 0,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device orion5x_switch_device = {
.name = "dsa",
.id = 0,
.num_resources = 0,
.resource = orion5x_switch_resources,
};
void __init orion5x_eth_switch_init(struct dsa_platform_data *d, int irq)
{
if (irq != NO_IRQ) {
orion5x_switch_resources[0].start = irq;
orion5x_switch_resources[0].end = irq;
orion5x_switch_device.num_resources = 1;
}
d->mii_bus = &orion5x_eth_shared.dev;
d->netdev = &orion5x_eth.dev;
orion5x_switch_device.dev.platform_data = d;
platform_device_register(&orion5x_switch_device);
}
/***************************************************************************** /*****************************************************************************
* I2C * I2C
****************************************************************************/ ****************************************************************************/
...@@ -275,7 +310,8 @@ void __init orion5x_sata_init(struct mv_sata_platform_data *sata_data) ...@@ -275,7 +310,8 @@ void __init orion5x_sata_init(struct mv_sata_platform_data *sata_data)
* SPI * SPI
****************************************************************************/ ****************************************************************************/
static struct orion_spi_info orion5x_spi_plat_data = { static struct orion_spi_info orion5x_spi_plat_data = {
.tclk = 0, .tclk = 0,
.enable_clock_fix = 1,
}; };
static struct resource orion5x_spi_resources[] = { static struct resource orion5x_spi_resources[] = {
......
#ifndef __ARCH_ORION5X_COMMON_H #ifndef __ARCH_ORION5X_COMMON_H
#define __ARCH_ORION5X_COMMON_H #define __ARCH_ORION5X_COMMON_H
struct dsa_platform_data;
struct mv643xx_eth_platform_data; struct mv643xx_eth_platform_data;
struct mv_sata_platform_data; struct mv_sata_platform_data;
...@@ -29,6 +30,7 @@ void orion5x_setup_pcie_wa_win(u32 base, u32 size); ...@@ -29,6 +30,7 @@ void orion5x_setup_pcie_wa_win(u32 base, u32 size);
void orion5x_ehci0_init(void); void orion5x_ehci0_init(void);
void orion5x_ehci1_init(void); void orion5x_ehci1_init(void);
void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data); void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data);
void orion5x_eth_switch_init(struct dsa_platform_data *d, int irq);
void orion5x_i2c_init(void); void orion5x_i2c_init(void);
void orion5x_sata_init(struct mv_sata_platform_data *sata_data); void orion5x_sata_init(struct mv_sata_platform_data *sata_data);
void orion5x_spi_init(void); void orion5x_spi_init(void);
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <net/dsa.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/gpio.h> #include <asm/gpio.h>
#include <asm/leds.h> #include <asm/leds.h>
...@@ -93,6 +94,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = { ...@@ -93,6 +94,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = {
.duplex = DUPLEX_FULL, .duplex = DUPLEX_FULL,
}; };
static struct dsa_platform_data rd88f5181l_fxo_switch_data = {
.port_names[0] = "lan2",
.port_names[1] = "lan1",
.port_names[2] = "wan",
.port_names[3] = "cpu",
.port_names[5] = "lan4",
.port_names[7] = "lan3",
};
static void __init rd88f5181l_fxo_init(void) static void __init rd88f5181l_fxo_init(void)
{ {
/* /*
...@@ -107,6 +117,7 @@ static void __init rd88f5181l_fxo_init(void) ...@@ -107,6 +117,7 @@ static void __init rd88f5181l_fxo_init(void)
*/ */
orion5x_ehci0_init(); orion5x_ehci0_init();
orion5x_eth_init(&rd88f5181l_fxo_eth_data); orion5x_eth_init(&rd88f5181l_fxo_eth_data);
orion5x_eth_switch_init(&rd88f5181l_fxo_switch_data, NO_IRQ);
orion5x_uart0_init(); orion5x_uart0_init();
orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE,
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <net/dsa.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/gpio.h> #include <asm/gpio.h>
#include <asm/leds.h> #include <asm/leds.h>
...@@ -94,6 +95,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = { ...@@ -94,6 +95,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = {
.duplex = DUPLEX_FULL, .duplex = DUPLEX_FULL,
}; };
static struct dsa_platform_data rd88f5181l_ge_switch_data = {
.port_names[0] = "lan2",
.port_names[1] = "lan1",
.port_names[2] = "wan",
.port_names[3] = "cpu",
.port_names[5] = "lan4",
.port_names[7] = "lan3",
};
static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = {
I2C_BOARD_INFO("ds1338", 0x68), I2C_BOARD_INFO("ds1338", 0x68),
}; };
...@@ -112,6 +122,7 @@ static void __init rd88f5181l_ge_init(void) ...@@ -112,6 +122,7 @@ static void __init rd88f5181l_ge_init(void)
*/ */
orion5x_ehci0_init(); orion5x_ehci0_init();
orion5x_eth_init(&rd88f5181l_ge_eth_data); orion5x_eth_init(&rd88f5181l_ge_eth_data);
orion5x_eth_switch_init(&rd88f5181l_ge_switch_data, gpio_to_irq(8));
orion5x_i2c_init(); orion5x_i2c_init();
orion5x_uart0_init(); orion5x_uart0_init();
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/spi/orion_spi.h> #include <linux/spi/orion_spi.h>
#include <linux/spi/flash.h> #include <linux/spi/flash.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <net/dsa.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/gpio.h> #include <asm/gpio.h>
#include <asm/leds.h> #include <asm/leds.h>
...@@ -34,6 +35,15 @@ static struct mv643xx_eth_platform_data rd88f6183ap_ge_eth_data = { ...@@ -34,6 +35,15 @@ static struct mv643xx_eth_platform_data rd88f6183ap_ge_eth_data = {
.duplex = DUPLEX_FULL, .duplex = DUPLEX_FULL,
}; };
static struct dsa_platform_data rd88f6183ap_ge_switch_data = {
.port_names[0] = "lan1",
.port_names[1] = "lan2",
.port_names[2] = "lan3",
.port_names[3] = "lan4",
.port_names[4] = "wan",
.port_names[5] = "cpu",
};
static struct mtd_partition rd88f6183ap_ge_partitions[] = { static struct mtd_partition rd88f6183ap_ge_partitions[] = {
{ {
.name = "kernel", .name = "kernel",
...@@ -79,6 +89,7 @@ static void __init rd88f6183ap_ge_init(void) ...@@ -79,6 +89,7 @@ static void __init rd88f6183ap_ge_init(void)
*/ */
orion5x_ehci0_init(); orion5x_ehci0_init();
orion5x_eth_init(&rd88f6183ap_ge_eth_data); orion5x_eth_init(&rd88f6183ap_ge_eth_data);
orion5x_eth_switch_init(&rd88f6183ap_ge_switch_data, gpio_to_irq(3));
spi_register_board_info(rd88f6183ap_ge_spi_slave_info, spi_register_board_info(rd88f6183ap_ge_spi_slave_info,
ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info));
orion5x_spi_init(); orion5x_spi_init();
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <net/dsa.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/gpio.h> #include <asm/gpio.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -105,6 +106,15 @@ static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = { ...@@ -105,6 +106,15 @@ static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = {
.duplex = DUPLEX_FULL, .duplex = DUPLEX_FULL,
}; };
static struct dsa_platform_data wrt350n_v2_switch_data = {
.port_names[0] = "lan2",
.port_names[1] = "lan1",
.port_names[2] = "wan",
.port_names[3] = "cpu",
.port_names[5] = "lan3",
.port_names[7] = "lan4",
};
static void __init wrt350n_v2_init(void) static void __init wrt350n_v2_init(void)
{ {
/* /*
...@@ -119,6 +129,7 @@ static void __init wrt350n_v2_init(void) ...@@ -119,6 +129,7 @@ static void __init wrt350n_v2_init(void)
*/ */
orion5x_ehci0_init(); orion5x_ehci0_init();
orion5x_eth_init(&wrt350n_v2_eth_data); orion5x_eth_init(&wrt350n_v2_eth_data);
orion5x_eth_switch_init(&wrt350n_v2_switch_data, NO_IRQ);
orion5x_uart0_init(); orion5x_uart0_init();
orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE,
......
...@@ -257,7 +257,6 @@ config MACH_ARMCORE ...@@ -257,7 +257,6 @@ config MACH_ARMCORE
bool "CompuLab CM-X255/CM-X270 modules" bool "CompuLab CM-X255/CM-X270 modules"
select PXA27x select PXA27x
select IWMMXT select IWMMXT
select ZONE_DMA if PCI
select PXA25x select PXA25x
select PXA_SSP select PXA_SSP
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#ifndef __ASM_MACH_IRQS_H
#define __ASM_MACH_IRQS_H
#ifdef CONFIG_PXA_HAVE_ISA_IRQS #ifdef CONFIG_PXA_HAVE_ISA_IRQS
#define PXA_ISA_IRQ(x) (x) #define PXA_ISA_IRQ(x) (x)
...@@ -264,3 +265,5 @@ ...@@ -264,3 +265,5 @@
#endif #endif
#endif /* CONFIG_PCI_HOST_ITE8152 */ #endif /* CONFIG_PCI_HOST_ITE8152 */
#endif /* __ASM_MACH_IRQS_H */
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
#define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12) #define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12)
#define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0) #define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0)
#define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1 #define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1)
#define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2) #define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2)
#define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3) #define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3)
#define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4) #define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4)
......
...@@ -60,7 +60,7 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) ...@@ -60,7 +60,7 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
do_div(c, 1000000000); do_div(c, 1000000000);
period_cycles = c; period_cycles = c;
if (period_cycles < 0) if (period_cycles < 1)
period_cycles = 1; period_cycles = 1;
prescale = (period_cycles - 1) / 1024; prescale = (period_cycles - 1) / 1024;
pv = period_cycles / (prescale + 1) - 1; pv = period_cycles / (prescale + 1) - 1;
......
...@@ -399,7 +399,7 @@ static void trizeps4_irda_transceiver_mode(struct device *dev, int mode) ...@@ -399,7 +399,7 @@ static void trizeps4_irda_transceiver_mode(struct device *dev, int mode)
/* Switch mode */ /* Switch mode */
if (mode & IR_SIRMODE) if (mode & IR_SIRMODE)
trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */ trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */
else if (mode & IR_FIRMODE) { else if (mode & IR_FIRMODE)
trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */ trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */
/* Switch power */ /* Switch power */
......
...@@ -1033,8 +1033,7 @@ void __init s3c2443_init_clocks(int xtal) ...@@ -1033,8 +1033,7 @@ void __init s3c2443_init_clocks(int xtal)
fclk = pll / s3c2443_fclk_div(clkdiv0); fclk = pll / s3c2443_fclk_div(clkdiv0);
hclk = s3c2443_prediv_getrate(&clk_prediv); hclk = s3c2443_prediv_getrate(&clk_prediv);
hclk = hclk / s3c2443_get_hdiv(clkdiv0); hclk /= s3c2443_get_hdiv(clkdiv0);
hclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_HCLK) ? 2 : 1);
pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1); pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1);
s3c24xx_setup_clocks(xtal, fclk, hclk, pclk); s3c24xx_setup_clocks(xtal, fclk, hclk, pclk);
......
...@@ -29,7 +29,7 @@ ENTRY(v4_flush_user_cache_all) ...@@ -29,7 +29,7 @@ ENTRY(v4_flush_user_cache_all)
* Clean and invalidate the entire cache. * Clean and invalidate the entire cache.
*/ */
ENTRY(v4_flush_kern_cache_all) ENTRY(v4_flush_kern_cache_all)
#ifdef CPU_CP15 #ifdef CONFIG_CPU_CP15
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c7, 0 @ flush ID cache mcr p15, 0, r0, c7, c7, 0 @ flush ID cache
mov pc, lr mov pc, lr
...@@ -48,7 +48,7 @@ ENTRY(v4_flush_kern_cache_all) ...@@ -48,7 +48,7 @@ ENTRY(v4_flush_kern_cache_all)
* - flags - vma_area_struct flags describing address space * - flags - vma_area_struct flags describing address space
*/ */
ENTRY(v4_flush_user_cache_range) ENTRY(v4_flush_user_cache_range)
#ifdef CPU_CP15 #ifdef CONFIG_CPU_CP15
mov ip, #0 mov ip, #0
mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache
mov pc, lr mov pc, lr
...@@ -116,7 +116,7 @@ ENTRY(v4_dma_inv_range) ...@@ -116,7 +116,7 @@ ENTRY(v4_dma_inv_range)
* - end - virtual end address * - end - virtual end address
*/ */
ENTRY(v4_dma_flush_range) ENTRY(v4_dma_flush_range)
#ifdef CPU_CP15 #ifdef CONFIG_CPU_CP15
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c7, 0 @ flush ID cache mcr p15, 0, r0, c7, c7, 0 @ flush ID cache
#endif #endif
......
...@@ -315,7 +315,7 @@ static int clk_pwm_tin_set_parent(struct clk *clk, struct clk *parent) ...@@ -315,7 +315,7 @@ static int clk_pwm_tin_set_parent(struct clk *clk, struct clk *parent)
if (parent == s3c24xx_pwmclk_tclk(id)) if (parent == s3c24xx_pwmclk_tclk(id))
bits = S3C2410_TCFG1_MUX_TCLK << shift; bits = S3C2410_TCFG1_MUX_TCLK << shift;
else if (parent == s3c24xx_pwmclk_tdiv(id)) else if (parent == s3c24xx_pwmclk_tdiv(id))
bits = clk_pwm_tdiv_bits(to_tdiv(clk)) << shift; bits = clk_pwm_tdiv_bits(to_tdiv(parent)) << shift;
else else
return -EINVAL; return -EINVAL;
......
...@@ -56,7 +56,7 @@ static struct clk *clk_scaler[2]; ...@@ -56,7 +56,7 @@ static struct clk *clk_scaler[2];
} \ } \
} }
#define DEFINE_TIMER(_tmr_no, _irq) \ #define DEFINE_S3C_TIMER(_tmr_no, _irq) \
.name = "s3c24xx-pwm", \ .name = "s3c24xx-pwm", \
.id = _tmr_no, \ .id = _tmr_no, \
.num_resources = TIMER_RESOURCE_SIZE, \ .num_resources = TIMER_RESOURCE_SIZE, \
...@@ -67,11 +67,11 @@ static struct clk *clk_scaler[2]; ...@@ -67,11 +67,11 @@ static struct clk *clk_scaler[2];
*/ */
struct platform_device s3c_device_timer[] = { struct platform_device s3c_device_timer[] = {
[0] = { DEFINE_TIMER(0, IRQ_TIMER0) }, [0] = { DEFINE_S3C_TIMER(0, IRQ_TIMER0) },
[1] = { DEFINE_TIMER(1, IRQ_TIMER1) }, [1] = { DEFINE_S3C_TIMER(1, IRQ_TIMER1) },
[2] = { DEFINE_TIMER(2, IRQ_TIMER2) }, [2] = { DEFINE_S3C_TIMER(2, IRQ_TIMER2) },
[3] = { DEFINE_TIMER(3, IRQ_TIMER3) }, [3] = { DEFINE_S3C_TIMER(3, IRQ_TIMER3) },
[4] = { DEFINE_TIMER(4, IRQ_TIMER4) }, [4] = { DEFINE_S3C_TIMER(4, IRQ_TIMER4) },
}; };
static inline int pwm_is_tdiv(struct pwm_device *pwm) static inline int pwm_is_tdiv(struct pwm_device *pwm)
......
...@@ -70,7 +70,7 @@ pxa2xx-obj-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o ...@@ -70,7 +70,7 @@ pxa2xx-obj-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o
pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o
pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o
pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o
pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps.o pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps4.o
pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o
pxa2xx-obj-$(CONFIG_MACH_PALMLD) += pxa2xx_palmld.o pxa2xx-obj-$(CONFIG_MACH_PALMLD) += pxa2xx_palmld.o
......
...@@ -457,7 +457,7 @@ config SERIAL_SAMSUNG ...@@ -457,7 +457,7 @@ config SERIAL_SAMSUNG
config SERIAL_SAMSUNG_DEBUG config SERIAL_SAMSUNG_DEBUG
bool "Samsung SoC serial debug" bool "Samsung SoC serial debug"
depends on SERIAL_SAMSUNG depends on SERIAL_SAMSUNG && DEBUG_LL
help help
Add support for debugging the serial driver. Since this is Add support for debugging the serial driver. Since this is
generally being used as a console, we use our own output generally being used as a console, we use our own output
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册