Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] fix lots of ARM __devexit sillyness [ARM] 5417/1: Set the correct cacheid for ARMv6 CPUs with ARMv7 style MMU [ARM] 5416/1: Use unused address in v6_early_abort [ARM] 5411/1: S3C64XX: Fix EINT unmask [ARM] at91: fix for Atmel AT91 powersaving [ARM] RiscPC: Fix etherh oops
This commit is contained in:
commit
f41bf2ab99
|
@ -233,12 +233,13 @@ static void __init cacheid_init(void)
|
||||||
unsigned int cachetype = read_cpuid_cachetype();
|
unsigned int cachetype = read_cpuid_cachetype();
|
||||||
unsigned int arch = cpu_architecture();
|
unsigned int arch = cpu_architecture();
|
||||||
|
|
||||||
if (arch >= CPU_ARCH_ARMv7) {
|
if (arch >= CPU_ARCH_ARMv6) {
|
||||||
|
if ((cachetype & (7 << 29)) == 4 << 29) {
|
||||||
|
/* ARMv7 register format */
|
||||||
cacheid = CACHEID_VIPT_NONALIASING;
|
cacheid = CACHEID_VIPT_NONALIASING;
|
||||||
if ((cachetype & (3 << 14)) == 1 << 14)
|
if ((cachetype & (3 << 14)) == 1 << 14)
|
||||||
cacheid |= CACHEID_ASID_TAGGED;
|
cacheid |= CACHEID_ASID_TAGGED;
|
||||||
} else if (arch >= CPU_ARCH_ARMv6) {
|
} else if (cachetype & (1 << 23))
|
||||||
if (cachetype & (1 << 23))
|
|
||||||
cacheid = CACHEID_VIPT_ALIASING;
|
cacheid = CACHEID_VIPT_ALIASING;
|
||||||
else
|
else
|
||||||
cacheid = CACHEID_VIPT_NONALIASING;
|
cacheid = CACHEID_VIPT_NONALIASING;
|
||||||
|
|
|
@ -332,7 +332,6 @@ static int at91_pm_enter(suspend_state_t state)
|
||||||
at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
|
at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
|
||||||
|
|
||||||
error:
|
error:
|
||||||
sdram_selfrefresh_disable();
|
|
||||||
target_state = PM_SUSPEND_ON;
|
target_state = PM_SUSPEND_ON;
|
||||||
at91_irq_resume();
|
at91_irq_resume();
|
||||||
at91_gpio_resume();
|
at91_gpio_resume();
|
||||||
|
|
|
@ -23,7 +23,8 @@ ENTRY(v6_early_abort)
|
||||||
#ifdef CONFIG_CPU_32v6K
|
#ifdef CONFIG_CPU_32v6K
|
||||||
clrex
|
clrex
|
||||||
#else
|
#else
|
||||||
strex r0, r1, [sp] @ Clear the exclusive monitor
|
sub r1, sp, #4 @ Get unused stack location
|
||||||
|
strex r0, r1, [r1] @ Clear the exclusive monitor
|
||||||
#endif
|
#endif
|
||||||
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
||||||
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
||||||
|
|
|
@ -55,7 +55,7 @@ static void s3c_irq_eint_unmask(unsigned int irq)
|
||||||
u32 mask;
|
u32 mask;
|
||||||
|
|
||||||
mask = __raw_readl(S3C64XX_EINT0MASK);
|
mask = __raw_readl(S3C64XX_EINT0MASK);
|
||||||
mask |= eint_irq_to_bit(irq);
|
mask &= ~eint_irq_to_bit(irq);
|
||||||
__raw_writel(mask, S3C64XX_EINT0MASK);
|
__raw_writel(mask, S3C64XX_EINT0MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1401,7 +1401,7 @@ MODULE_ALIAS("platform:iop-adma");
|
||||||
|
|
||||||
static struct platform_driver iop_adma_driver = {
|
static struct platform_driver iop_adma_driver = {
|
||||||
.probe = iop_adma_probe,
|
.probe = iop_adma_probe,
|
||||||
.remove = iop_adma_remove,
|
.remove = __devexit_p(iop_adma_remove),
|
||||||
.driver = {
|
.driver = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.name = "iop-adma",
|
.name = "iop-adma",
|
||||||
|
|
|
@ -1287,7 +1287,7 @@ mv_xor_conf_mbus_windows(struct mv_xor_shared_private *msp,
|
||||||
|
|
||||||
static struct platform_driver mv_xor_driver = {
|
static struct platform_driver mv_xor_driver = {
|
||||||
.probe = mv_xor_probe,
|
.probe = mv_xor_probe,
|
||||||
.remove = mv_xor_remove,
|
.remove = __devexit_p(mv_xor_remove),
|
||||||
.driver = {
|
.driver = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.name = MV_XOR_NAME,
|
.name = MV_XOR_NAME,
|
||||||
|
|
|
@ -482,7 +482,7 @@ mv64xxx_i2c_map_regs(struct platform_device *pd,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __devexit
|
static void
|
||||||
mv64xxx_i2c_unmap_regs(struct mv64xxx_i2c_data *drv_data)
|
mv64xxx_i2c_unmap_regs(struct mv64xxx_i2c_data *drv_data)
|
||||||
{
|
{
|
||||||
if (drv_data->reg_base) {
|
if (drv_data->reg_base) {
|
||||||
|
@ -577,7 +577,7 @@ mv64xxx_i2c_remove(struct platform_device *dev)
|
||||||
|
|
||||||
static struct platform_driver mv64xxx_i2c_driver = {
|
static struct platform_driver mv64xxx_i2c_driver = {
|
||||||
.probe = mv64xxx_i2c_probe,
|
.probe = mv64xxx_i2c_probe,
|
||||||
.remove = mv64xxx_i2c_remove,
|
.remove = __devexit_p(mv64xxx_i2c_remove),
|
||||||
.driver = {
|
.driver = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.name = MV64XXX_I2C_CTLR_NAME,
|
.name = MV64XXX_I2C_CTLR_NAME,
|
||||||
|
|
|
@ -149,7 +149,7 @@ static int __devexit orion_nand_remove(struct platform_device *pdev)
|
||||||
|
|
||||||
static struct platform_driver orion_nand_driver = {
|
static struct platform_driver orion_nand_driver = {
|
||||||
.probe = orion_nand_probe,
|
.probe = orion_nand_probe,
|
||||||
.remove = orion_nand_remove,
|
.remove = __devexit_p(orion_nand_remove),
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "orion_nand",
|
.name = "orion_nand",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-$(CONFIG_ARM_AM79C961A) += am79c961a.o
|
obj-$(CONFIG_ARM_AM79C961A) += am79c961a.o
|
||||||
obj-$(CONFIG_ARM_ETHERH) += etherh.o ../8390.o
|
obj-$(CONFIG_ARM_ETHERH) += etherh.o
|
||||||
obj-$(CONFIG_ARM_ETHER3) += ether3.o
|
obj-$(CONFIG_ARM_ETHER3) += ether3.o
|
||||||
obj-$(CONFIG_ARM_ETHER1) += ether1.o
|
obj-$(CONFIG_ARM_ETHER1) += ether1.o
|
||||||
obj-$(CONFIG_ARM_AT91_ETHER) += at91_ether.o
|
obj-$(CONFIG_ARM_AT91_ETHER) += at91_ether.o
|
||||||
|
|
|
@ -641,15 +641,15 @@ static const struct net_device_ops etherh_netdev_ops = {
|
||||||
.ndo_open = etherh_open,
|
.ndo_open = etherh_open,
|
||||||
.ndo_stop = etherh_close,
|
.ndo_stop = etherh_close,
|
||||||
.ndo_set_config = etherh_set_config,
|
.ndo_set_config = etherh_set_config,
|
||||||
.ndo_start_xmit = ei_start_xmit,
|
.ndo_start_xmit = __ei_start_xmit,
|
||||||
.ndo_tx_timeout = ei_tx_timeout,
|
.ndo_tx_timeout = __ei_tx_timeout,
|
||||||
.ndo_get_stats = ei_get_stats,
|
.ndo_get_stats = __ei_get_stats,
|
||||||
.ndo_set_multicast_list = ei_set_multicast_list,
|
.ndo_set_multicast_list = __ei_set_multicast_list,
|
||||||
.ndo_validate_addr = eth_validate_addr,
|
.ndo_validate_addr = eth_validate_addr,
|
||||||
.ndo_set_mac_address = eth_mac_addr,
|
.ndo_set_mac_address = eth_mac_addr,
|
||||||
.ndo_change_mtu = eth_change_mtu,
|
.ndo_change_mtu = eth_change_mtu,
|
||||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||||
.ndo_poll_controller = ei_poll,
|
.ndo_poll_controller = __ei_poll,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2230,7 +2230,7 @@ static int __devexit pxafb_remove(struct platform_device *dev)
|
||||||
|
|
||||||
static struct platform_driver pxafb_driver = {
|
static struct platform_driver pxafb_driver = {
|
||||||
.probe = pxafb_probe,
|
.probe = pxafb_probe,
|
||||||
.remove = pxafb_remove,
|
.remove = __devexit_p(pxafb_remove),
|
||||||
.suspend = pxafb_suspend,
|
.suspend = pxafb_suspend,
|
||||||
.resume = pxafb_resume,
|
.resume = pxafb_resume,
|
||||||
.driver = {
|
.driver = {
|
||||||
|
|
Loading…
Reference in New Issue