Omap fixes that were considered too intrusive or not critical for the -rc cycle
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJPqr/UAAoJEBvUPslcq6VzYpkQALtbtTO4aA1Rno1X8Y01sZcy 04f+usJ+3sEmCCGFClDTG47nxt1wLMTILmZrz7ZMzxStYB52H4fP9Mq0+8zGyhCR Er8bhoMBIsrM5YNPCq3olRV9cCNpn2hzxwG8vQGILAO03vnjG80xjLmyrO2Y2sAl PSfINZkVZhq2LoaFzZI0m8jzF8zRofHgZQ65Da46+hnA5e/sGc3mTcY5VR1AYlCm UJ/fqGvhHJ2SriRC9LbhMw3klUrWT9tQcIGiBdkqf/3qmJLynlU9shU9B8Lm5G3I Sa/2wCB5ZSK2ybKOgmz2AA4t/w4LFHtNknTgylltz0YeLI+1LhjSG6cTiRulNT4E hxhATBsCruiHBktM7mXVtMex7yXPtvJ9SI4Jq0UEOa4rNKyXkgf2/gTErDzay7Dn eBOx9i4VFqSkAk3SL9X+AnOh5zEzdEcUDI9Hg/c0zUQUrM50AgcEgwzY/S2PFKWk PKT3P8nRbyhGAnACct548btf+g5+/Yt6DofgVay8fXvHAZgdelmqeRCvTvCiwQIG pWwe+PLWst9GCOdFEjoUl30RRPXkLPqkEw02a8Fo46288LQQL60Ebx3+r5tqaoPh wpdYBRPwymrWImZBc+behkAM9xZE6GlDVBX2Hr6M6Dmrmy5DgUYC22EEwq0+RUXX oBjRkdGNzt+WzKm2s0de =csF2 -----END PGP SIGNATURE----- Merge tag 'omap-fixes-non-critical-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/fixes Omap fixes that were considered too intrusive or not critical for the -rc cycle By Artem Bityutskiy (1) and others via Tony Lindgren * tag 'omap-fixes-non-critical-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP: igep0020: Specify the VPLL2 regulator unconditionally ARM: OMAP2+: INTC: fix Kconfig option for TI81XX ARM: OMAP2+: remove incorrect irq_chip ack field ARM: OMAP4: Adding ID for OMAP4460 ES1.1 ARM: OMAP4: panda: add statics to remove warnings ARM: OMAP2+: Incorrect Register Offsets in OMAP Mailbox ARM: OMAP: fix trivial warnings for dspbridge ARM: OMAP4: hsmmc: check for null pointer ARM: OMAP1: fix compilation issue in board-sx1.c
This commit is contained in:
commit
1b6c352149
|
@ -132,6 +132,7 @@ config MACH_OMAP_PALMTT
|
|||
|
||||
config MACH_SX1
|
||||
bool "Siemens SX1"
|
||||
select I2C
|
||||
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
||||
help
|
||||
Support for the Siemens SX1 phone. To boot the kernel,
|
||||
|
|
|
@ -489,50 +489,6 @@ static struct platform_device omap_vwlan_device = {
|
|||
},
|
||||
};
|
||||
|
||||
static int omap4_twl6030_hsmmc_late_init(struct device *dev)
|
||||
{
|
||||
int irq = 0;
|
||||
struct platform_device *pdev = container_of(dev,
|
||||
struct platform_device, dev);
|
||||
struct omap_mmc_platform_data *pdata = dev->platform_data;
|
||||
|
||||
/* Setting MMC1 Card detect Irq */
|
||||
if (pdev->id == 0) {
|
||||
irq = twl6030_mmc_card_detect_config();
|
||||
if (irq < 0) {
|
||||
pr_err("Failed configuring MMC1 card detect\n");
|
||||
return irq;
|
||||
}
|
||||
pdata->slots[0].card_detect_irq = irq;
|
||||
pdata->slots[0].card_detect = twl6030_mmc_card_detect;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev)
|
||||
{
|
||||
struct omap_mmc_platform_data *pdata;
|
||||
|
||||
/* dev can be null if CONFIG_MMC_OMAP_HS is not set */
|
||||
if (!dev) {
|
||||
pr_err("Failed %s\n", __func__);
|
||||
return;
|
||||
}
|
||||
pdata = dev->platform_data;
|
||||
pdata->init = omap4_twl6030_hsmmc_late_init;
|
||||
}
|
||||
|
||||
static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
{
|
||||
struct omap2_hsmmc_info *c;
|
||||
|
||||
omap_hsmmc_init(controllers);
|
||||
for (c = controllers; c->mmc; c++)
|
||||
omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct regulator_init_data sdp4430_vaux1 = {
|
||||
.constraints = {
|
||||
.min_uV = 1000000,
|
||||
|
|
|
@ -540,7 +540,10 @@ static void __init igep_i2c_init(void)
|
|||
{
|
||||
int ret;
|
||||
|
||||
omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB, 0);
|
||||
omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB,
|
||||
TWL_COMMON_REGULATOR_VPLL2);
|
||||
igep_twldata.vpll2->constraints.apply_uV = true;
|
||||
igep_twldata.vpll2->constraints.name = "VDVI";
|
||||
|
||||
if (machine_is_igep0020()) {
|
||||
/*
|
||||
|
@ -554,10 +557,7 @@ static void __init igep_i2c_init(void)
|
|||
|
||||
igep_twldata.keypad = &igep2_keypad_pdata;
|
||||
/* Get common pmic data */
|
||||
omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO,
|
||||
TWL_COMMON_REGULATOR_VPLL2);
|
||||
igep_twldata.vpll2->constraints.apply_uV = true;
|
||||
igep_twldata.vpll2->constraints.name = "VDVI";
|
||||
omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, 0);
|
||||
}
|
||||
|
||||
omap3_pmic_init("twl4030", &igep_twldata);
|
||||
|
|
|
@ -231,60 +231,11 @@ static struct platform_device omap_vwlan_device = {
|
|||
},
|
||||
};
|
||||
|
||||
struct wl12xx_platform_data omap_panda_wlan_data __initdata = {
|
||||
static struct wl12xx_platform_data omap_panda_wlan_data __initdata = {
|
||||
/* PANDA ref clock is 38.4 MHz */
|
||||
.board_ref_clock = 2,
|
||||
};
|
||||
|
||||
static int omap4_twl6030_hsmmc_late_init(struct device *dev)
|
||||
{
|
||||
int irq = 0;
|
||||
struct platform_device *pdev = container_of(dev,
|
||||
struct platform_device, dev);
|
||||
struct omap_mmc_platform_data *pdata = dev->platform_data;
|
||||
|
||||
if (!pdata) {
|
||||
dev_err(dev, "%s: NULL platform data\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
/* Setting MMC1 Card detect Irq */
|
||||
if (pdev->id == 0) {
|
||||
irq = twl6030_mmc_card_detect_config();
|
||||
if (irq < 0) {
|
||||
dev_err(dev, "%s: Error card detect config(%d)\n",
|
||||
__func__, irq);
|
||||
return irq;
|
||||
}
|
||||
pdata->slots[0].card_detect = twl6030_mmc_card_detect;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev)
|
||||
{
|
||||
struct omap_mmc_platform_data *pdata;
|
||||
|
||||
/* dev can be null if CONFIG_MMC_OMAP_HS is not set */
|
||||
if (!dev) {
|
||||
pr_err("Failed omap4_twl6030_hsmmc_set_late_init\n");
|
||||
return;
|
||||
}
|
||||
pdata = dev->platform_data;
|
||||
|
||||
pdata->init = omap4_twl6030_hsmmc_late_init;
|
||||
}
|
||||
|
||||
static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
{
|
||||
struct omap2_hsmmc_info *c;
|
||||
|
||||
omap_hsmmc_init(controllers);
|
||||
for (c = controllers; c->mmc; c++)
|
||||
omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct twl6040_codec_data twl6040_codec = {
|
||||
/* single-step ramp for headset and handsfree */
|
||||
.hs_left_step = 0x0f,
|
||||
|
@ -438,7 +389,7 @@ static struct panel_dvi_platform_data omap4_dvi_panel = {
|
|||
.i2c_bus_num = 3,
|
||||
};
|
||||
|
||||
struct omap_dss_device omap4_panda_dvi_device = {
|
||||
static struct omap_dss_device omap4_panda_dvi_device = {
|
||||
.type = OMAP_DISPLAY_TYPE_DPI,
|
||||
.name = "dvi",
|
||||
.driver_name = "dvi",
|
||||
|
@ -448,7 +399,7 @@ struct omap_dss_device omap4_panda_dvi_device = {
|
|||
.channel = OMAP_DSS_CHANNEL_LCD2,
|
||||
};
|
||||
|
||||
int __init omap4_panda_dvi_init(void)
|
||||
static int __init omap4_panda_dvi_init(void)
|
||||
{
|
||||
int r;
|
||||
|
||||
|
@ -509,7 +460,7 @@ static struct omap_dss_board_info omap4_panda_dss_data = {
|
|||
.default_device = &omap4_panda_dvi_device,
|
||||
};
|
||||
|
||||
void __init omap4_panda_display_init(void)
|
||||
static void __init omap4_panda_display_init(void)
|
||||
{
|
||||
int r;
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <plat/common.h>
|
||||
#include <asm/proc-fns.h>
|
||||
|
||||
|
@ -254,6 +255,8 @@ static inline u32 omap4_mpuss_read_prev_context_state(void)
|
|||
struct omap_sdrc_params;
|
||||
extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
|
||||
struct omap_sdrc_params *sdrc_cs1);
|
||||
struct omap2_hsmmc_info;
|
||||
extern int omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers);
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
|
||||
|
|
|
@ -57,8 +57,9 @@ static int __init omap_dsp_init(void)
|
|||
|
||||
if (pdata->phys_mempool_base) {
|
||||
pdata->phys_mempool_size = CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE;
|
||||
pr_info("%s: %x bytes @ %x\n", __func__,
|
||||
pdata->phys_mempool_size, pdata->phys_mempool_base);
|
||||
pr_info("%s: %llx bytes @ %llx\n", __func__,
|
||||
(unsigned long long)pdata->phys_mempool_size,
|
||||
(unsigned long long)pdata->phys_mempool_base);
|
||||
}
|
||||
|
||||
pdev = platform_device_alloc("omap-dsp", -1);
|
||||
|
|
|
@ -478,9 +478,12 @@ void __init omap4xxx_check_revision(void)
|
|||
case 0xb94e:
|
||||
switch (rev) {
|
||||
case 0:
|
||||
default:
|
||||
omap_revision = OMAP4460_REV_ES1_0;
|
||||
break;
|
||||
case 2:
|
||||
default:
|
||||
omap_revision = OMAP4460_REV_ES1_1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0xb975:
|
||||
|
|
|
@ -149,7 +149,6 @@ omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)
|
|||
ct->chip.irq_mask = irq_gc_mask_disable_reg;
|
||||
ct->chip.irq_unmask = irq_gc_unmask_enable_reg;
|
||||
|
||||
ct->regs.ack = INTC_CONTROL;
|
||||
ct->regs.enable = INTC_MIR_CLEAR0;
|
||||
ct->regs.disable = INTC_MIR_SET0;
|
||||
irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE,
|
||||
|
@ -231,7 +230,7 @@ static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs
|
|||
goto out;
|
||||
|
||||
irqnr = readl_relaxed(base_addr + 0xd8);
|
||||
#ifdef CONFIG_SOC_OMAPTI816X
|
||||
#ifdef CONFIG_SOC_OMAPTI81XX
|
||||
if (irqnr)
|
||||
goto out;
|
||||
irqnr = readl_relaxed(base_addr + 0xf8);
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
#define MAILBOX_IRQSTATUS(u) (0x100 + 8 * (u))
|
||||
#define MAILBOX_IRQENABLE(u) (0x104 + 8 * (u))
|
||||
|
||||
#define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 10 * (u))
|
||||
#define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 10 * (u))
|
||||
#define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 10 * (u))
|
||||
#define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 0x10 * (u))
|
||||
#define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 0x10 * (u))
|
||||
#define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 0x10 * (u))
|
||||
|
||||
#define MAILBOX_IRQ_NEWMSG(m) (1 << (2 * (m)))
|
||||
#define MAILBOX_IRQ_NOTFULL(m) (1 << (2 * (m) + 1))
|
||||
|
|
|
@ -25,11 +25,13 @@
|
|||
#include <plat/irqs.h>
|
||||
#include <plat/sram.h>
|
||||
#include <plat/omap-secure.h>
|
||||
#include <plat/mmc.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/omap-wakeupgen.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "hsmmc.h"
|
||||
#include "omap4-sar-layout.h"
|
||||
#include <linux/export.h>
|
||||
|
||||
|
@ -207,3 +209,59 @@ static int __init omap4_sar_ram_init(void)
|
|||
return 0;
|
||||
}
|
||||
early_initcall(omap4_sar_ram_init);
|
||||
|
||||
#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
|
||||
static int omap4_twl6030_hsmmc_late_init(struct device *dev)
|
||||
{
|
||||
int irq = 0;
|
||||
struct platform_device *pdev = container_of(dev,
|
||||
struct platform_device, dev);
|
||||
struct omap_mmc_platform_data *pdata = dev->platform_data;
|
||||
|
||||
/* Setting MMC1 Card detect Irq */
|
||||
if (pdev->id == 0) {
|
||||
irq = twl6030_mmc_card_detect_config();
|
||||
if (irq < 0) {
|
||||
dev_err(dev, "%s: Error card detect config(%d)\n",
|
||||
__func__, irq);
|
||||
return irq;
|
||||
}
|
||||
pdata->slots[0].card_detect_irq = irq;
|
||||
pdata->slots[0].card_detect = twl6030_mmc_card_detect;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev)
|
||||
{
|
||||
struct omap_mmc_platform_data *pdata;
|
||||
|
||||
/* dev can be null if CONFIG_MMC_OMAP_HS is not set */
|
||||
if (!dev) {
|
||||
pr_err("Failed %s\n", __func__);
|
||||
return;
|
||||
}
|
||||
pdata = dev->platform_data;
|
||||
pdata->init = omap4_twl6030_hsmmc_late_init;
|
||||
}
|
||||
|
||||
int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
{
|
||||
struct omap2_hsmmc_info *c;
|
||||
|
||||
omap_hsmmc_init(controllers);
|
||||
for (c = controllers; c->mmc; c++) {
|
||||
/* pdev can be null if CONFIG_MMC_OMAP_HS is not set */
|
||||
if (!c->pdev)
|
||||
continue;
|
||||
omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -167,8 +167,8 @@ void __init omap_dsp_reserve_sdram_memblock(void)
|
|||
|
||||
paddr = arm_memblock_steal(size, SZ_1M);
|
||||
if (!paddr) {
|
||||
pr_err("%s: failed to reserve %x bytes\n",
|
||||
__func__, size);
|
||||
pr_err("%s: failed to reserve %llx bytes\n",
|
||||
__func__, (unsigned long long)size);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -445,6 +445,7 @@ IS_OMAP_TYPE(3517, 0x3517)
|
|||
|
||||
#define OMAP446X_CLASS 0x44600044
|
||||
#define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8))
|
||||
#define OMAP4460_REV_ES1_1 (OMAP446X_CLASS | (0x11 << 8))
|
||||
|
||||
#define OMAP447X_CLASS 0x44700044
|
||||
#define OMAP4470_REV_ES1_0 (OMAP447X_CLASS | (0x10 << 8))
|
||||
|
|
Loading…
Reference in New Issue