Skip to content

Commit

Permalink
Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/…
Browse files Browse the repository at this point in the history
…kernel/git/arm/arm-soc

Pull ARM SoC non-critical bug fixes from Arnd Bergmann:
 "These are bug fixes for harmless problems that were not important
  enough to get fixed in 3.19.  This contains updates to the MAINTAINERS
  file, in particular:

   - Ben Dooks stepped down as Samsung co-maintainer (thanks Ben for
     long years of maintaining this).  Kukjin Kim, who has been doing
     the work de-facto by himself recently is now the only maintainer.

   - Liviu, Sudeep and Lorenzo from ARM now officially maintain the
     Versatile Express platform, which was orphaned (thanks for

   - Gregory Fong and Florian Fainelli help out on the Broadcom BCM7XXX
     platform

   - Ray Jui and Scott Branden are the future maintainers for the newly
     merged Broadcom Cygnus platform.  Welcome!

  In terms of actual fixes, we have the usual set of OMAP bug fixes,
  which Tony Lindgren separates out well from the other OMAP changes,
  one really ep93xx regression fix against 3.11 that didn't make it for
  3.18, a few GIC changes from Marc Zyngier as a preparation for later
  rework (the current code is wrong in a harmless way), on Tegra
  regression and one samsung spelling fix"

* tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: imx6: fix bogus use of irq_get_irq_data
  ARM: imx: irq: fix buggy usage of irq_data irq field
  MAINTAINERS: ARM Versatile Express platform, add missing pattern
  MAINTAINERS: ARM Versatile Express platform
  arm: ep93xx: add dma_masks for the M2P and M2M DMA controllers
  MAINTAINERS: Add ahci_st.c to ARCH/STI architecture
  MAINTAINERS: add entry for the GISB arbiter driver
  MAINTAINERS: update brcmstb entries
  MAINTAINERS: update email address and cleanup for exynos entry
  ARM: tegra: Re-add removed SoC id macro to tegra_resume()
  MAINTAINERS: Entry for Cygnus/iproc arm architecture
  ARM: OMAP: serial: remove last vestige of DTR_gpio support.
  ARM: OMAP2+: gpmc: Get rid of "ti,elm-id not found" warning
  ARM: EXYNOS: fix typo in static struct name "exynos5_list_diable_wfi_wfe"
  ARM: OMAP2: Remove unnecessary KERN_* in omap_phy_internal.c
  ARM: OMAP4+: Remove unused omap_l3_noc platform init
  ARM: dts: Add twl keypad map for omap3 EVM
  ARM: dts: Add twl keypad map for LDP
  ARM: dts: Fix NAND last partition size on LDP
  ARM: OMAP3: Fix errors for omap_l3_smx when booted with device tree
  • Loading branch information
torvalds committed Dec 9, 2014
2 parents b64bb1d + 65bb688 commit 0a9e0ac
Show file tree
Hide file tree
Showing 16 changed files with 151 additions and 92 deletions.
47 changes: 35 additions & 12 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -1308,30 +1308,22 @@ F: drivers/*/*rockchip*
F: drivers/*/*/*rockchip*
F: sound/soc/rockchip/

ARM/SAMSUNG ARM ARCHITECTURES
M: Ben Dooks <[email protected]>
M: Kukjin Kim <[email protected]>
ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
M: Kukjin Kim <[email protected]>
L: [email protected] (moderated for non-subscribers)
L: [email protected] (moderated for non-subscribers)
W: http://www.fluff.org/ben/linux/
S: Maintained
F: arch/arm/boot/dts/s3c*
F: arch/arm/boot/dts/exynos*
F: arch/arm/plat-samsung/
F: arch/arm/mach-s3c24*/
F: arch/arm/mach-s3c64xx/
F: arch/arm/mach-s5p*/
F: arch/arm/mach-exynos*/
F: drivers/*/*s3c2410*
F: drivers/*/*/*s3c2410*
F: drivers/spi/spi-s3c*
F: sound/soc/samsung/*

ARM/S5P EXYNOS ARM ARCHITECTURES
M: Kukjin Kim <[email protected]>
L: [email protected] (moderated for non-subscribers)
L: [email protected] (moderated for non-subscribers)
S: Maintained
F: arch/arm/mach-s5p*/
F: arch/arm/mach-exynos*/
N: exynos

ARM/SAMSUNG MOBILE MACHINE SUPPORT
Expand Down Expand Up @@ -1430,6 +1422,7 @@ F: drivers/tty/serial/st-asc.c
F: drivers/usb/dwc3/dwc3-st.c
F: drivers/usb/host/ehci-st.c
F: drivers/usb/host/ohci-st.c
F: drivers/ata/ahci_st.c

ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
M: Lennert Buytenhek <[email protected]>
Expand Down Expand Up @@ -1503,6 +1496,19 @@ S: Maintained
F: drivers/clk/ux500/
F: include/linux/platform_data/clk-ux500.h

ARM/VERSATILE EXPRESS PLATFORM
M: Liviu Dudau <[email protected]>
M: Sudeep Holla <[email protected]>
M: Lorenzo Pieralisi <[email protected]>
L: [email protected] (moderated for non-subscribers)
S: Maintained
F: arch/arm/boot/dts/vexpress*
F: arch/arm/mach-vexpress/
F: */*/vexpress*
F: */*/*/vexpress*
F: drivers/clk/versatile/clk-vexpress-osc.c
F: drivers/clocksource/versatile.c

ARM/VFP SUPPORT
M: Russell King <[email protected]>
L: [email protected] (moderated for non-subscribers)
Expand Down Expand Up @@ -2097,10 +2103,13 @@ F: arch/arm/include/debug/bcm63xx.S
BROADCOM BCM7XXX ARM ARCHITECTURE
M: Marc Carino <[email protected]>
M: Brian Norris <[email protected]>
M: Gregory Fong <[email protected]>
M: Florian Fainelli <[email protected]>
L: [email protected] (moderated for non-subscribers)
S: Maintained
F: arch/arm/mach-bcm/*brcmstb*
F: arch/arm/boot/dts/bcm7*.dts*
F: drivers/bus/brcmstb_gisb.c

BROADCOM TG3 GIGABIT ETHERNET DRIVER
M: Prashant Sreedharan <[email protected]>
Expand Down Expand Up @@ -2131,6 +2140,20 @@ L: [email protected]
S: Supported
F: drivers/scsi/bnx2i/

BROADCOM CYGNUS/IPROC ARM ARCHITECTURE
M: Ray Jui <[email protected]>
M: Scott Branden <[email protected]>
L: [email protected] (moderated for non-subscribers)
L: [email protected]
T: git git://git.github.com/brcm/linux.git
S: Maintained
N: iproc
N: cygnus
N: bcm9113*
N: bcm9583*
N: bcm583*
N: bcm113*

BROADCOM KONA GPIO DRIVER
M: Ray Jui <[email protected]>
L: [email protected]
Expand Down
21 changes: 21 additions & 0 deletions arch/arm/boot/dts/omap3-evm-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* Common support for omap3 EVM boards
*/

#include <dt-bindings/input/input.h>
#include "omap-gpmc-smsc911x.dtsi"

/ {
Expand Down Expand Up @@ -111,6 +112,26 @@
ti,use-leds;
};

&twl_keypad {
linux,keymap = <
MATRIX_KEY(2, 2, KEY_1)
MATRIX_KEY(1, 1, KEY_2)
MATRIX_KEY(0, 0, KEY_3)
MATRIX_KEY(3, 2, KEY_4)
MATRIX_KEY(2, 1, KEY_5)
MATRIX_KEY(1, 0, KEY_6)
MATRIX_KEY(1, 3, KEY_7)
MATRIX_KEY(3, 1, KEY_8)
MATRIX_KEY(2, 0, KEY_9)
MATRIX_KEY(2, 3, KEY_KPASTERISK)
MATRIX_KEY(0, 2, KEY_0)
MATRIX_KEY(3, 0, KEY_KPDOT)
/* s4 not wired */
MATRIX_KEY(1, 2, KEY_BACKSPACE)
MATRIX_KEY(0, 1, KEY_ENTER)
>;
};

&usb_otg_hs {
interface-type = <0>;
usb-phy = <&usb2_phy>;
Expand Down
23 changes: 22 additions & 1 deletion arch/arm/boot/dts/omap3-ldp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
*/
/dts-v1/;

#include <dt-bindings/input/input.h>
#include "omap34xx.dtsi"
#include "omap-gpmc-smsc911x.dtsi"

Expand Down Expand Up @@ -141,7 +142,7 @@
};
partition@2000000 {
label = "Filesystem";
reg = <0x2000000 0xe000000>;
reg = <0x2000000 0x6000000>;
};
};

Expand Down Expand Up @@ -263,6 +264,26 @@
};
};

&twl_keypad {
linux,keymap = <MATRIX_KEY(0, 0, KEY_1)
MATRIX_KEY(0, 1, KEY_2)
MATRIX_KEY(0, 2, KEY_3)
MATRIX_KEY(1, 0, KEY_4)
MATRIX_KEY(1, 1, KEY_5)
MATRIX_KEY(1, 2, KEY_6)
MATRIX_KEY(1, 3, KEY_F5)
MATRIX_KEY(2, 0, KEY_7)
MATRIX_KEY(2, 1, KEY_8)
MATRIX_KEY(2, 2, KEY_9)
MATRIX_KEY(2, 3, KEY_F6)
MATRIX_KEY(3, 0, KEY_F7)
MATRIX_KEY(3, 1, KEY_0)
MATRIX_KEY(3, 2, KEY_F8)
MATRIX_KEY(5, 4, KEY_RESERVED)
MATRIX_KEY(4, 4, KEY_VOLUMEUP)
MATRIX_KEY(5, 5, KEY_VOLUMEDOWN)>;
};

&uart3 {
interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
* hierarchy.
*/
ocp {
compatible = "simple-bus";
compatible = "ti,omap3-l3-smx", "simple-bus";
reg = <0x68000000 0x10000>;
interrupts = <9 10>;
#address-cells = <1>;
Expand Down
12 changes: 10 additions & 2 deletions arch/arm/mach-ep93xx/dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,15 @@ static struct ep93xx_dma_platform_data ep93xx_dma_m2p_data = {
.num_channels = ARRAY_SIZE(ep93xx_dma_m2p_channels),
};

static u64 ep93xx_dma_m2p_mask = DMA_BIT_MASK(32);

static struct platform_device ep93xx_dma_m2p_device = {
.name = "ep93xx-dma-m2p",
.id = -1,
.dev = {
.platform_data = &ep93xx_dma_m2p_data,
.platform_data = &ep93xx_dma_m2p_data,
.dma_mask = &ep93xx_dma_m2p_mask,
.coherent_dma_mask = DMA_BIT_MASK(32),
},
};

Expand All @@ -93,11 +97,15 @@ static struct ep93xx_dma_platform_data ep93xx_dma_m2m_data = {
.num_channels = ARRAY_SIZE(ep93xx_dma_m2m_channels),
};

static u64 ep93xx_dma_m2m_mask = DMA_BIT_MASK(32);

static struct platform_device ep93xx_dma_m2m_device = {
.name = "ep93xx-dma-m2m",
.id = -1,
.dev = {
.platform_data = &ep93xx_dma_m2m_data,
.platform_data = &ep93xx_dma_m2m_data,
.dma_mask = &ep93xx_dma_m2m_mask,
.coherent_dma_mask = DMA_BIT_MASK(32),
},
};

Expand Down
8 changes: 4 additions & 4 deletions arch/arm/mach-exynos/pmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ static unsigned int const exynos5_list_both_cnt_feed[] = {
EXYNOS5_TOP_PWR_SYSMEM_OPTION,
};

static unsigned int const exynos5_list_diable_wfi_wfe[] = {
static unsigned int const exynos5_list_disable_wfi_wfe[] = {
EXYNOS5_ARM_CORE1_OPTION,
EXYNOS5_FSYS_ARM_OPTION,
EXYNOS5_ISP_ARM_OPTION,
Expand Down Expand Up @@ -360,11 +360,11 @@ static void exynos5_init_pmu(void)
/*
* Disable WFI/WFE on XXX_OPTION
*/
for (i = 0 ; i < ARRAY_SIZE(exynos5_list_diable_wfi_wfe) ; i++) {
tmp = pmu_raw_readl(exynos5_list_diable_wfi_wfe[i]);
for (i = 0 ; i < ARRAY_SIZE(exynos5_list_disable_wfi_wfe) ; i++) {
tmp = pmu_raw_readl(exynos5_list_disable_wfi_wfe[i]);
tmp &= ~(EXYNOS5_OPTION_USE_STANDBYWFE |
EXYNOS5_OPTION_USE_STANDBYWFI);
pmu_raw_writel(tmp, exynos5_list_diable_wfi_wfe[i]);
pmu_raw_writel(tmp, exynos5_list_disable_wfi_wfe[i]);
}
}

Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-imx/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ void imx_gpc_pre_suspend(bool arm_power_off);
void imx_gpc_post_resume(void);
void imx_gpc_mask_all(void);
void imx_gpc_restore_all(void);
void imx_gpc_irq_mask(struct irq_data *d);
void imx_gpc_irq_unmask(struct irq_data *d);
void imx_gpc_hwirq_mask(unsigned int hwirq);
void imx_gpc_hwirq_unmask(unsigned int hwirq);
void imx_anatop_init(void);
void imx_anatop_pre_suspend(void);
void imx_anatop_post_resume(void);
Expand Down
42 changes: 26 additions & 16 deletions arch/arm/mach-imx/gpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ void imx_gpc_post_resume(void)

static int imx_gpc_irq_set_wake(struct irq_data *d, unsigned int on)
{
unsigned int idx = d->irq / 32 - 1;
unsigned int idx = d->hwirq / 32 - 1;
u32 mask;

/* Sanity check for SPI irq */
if (d->irq < 32)
if (d->hwirq < 32)
return -EINVAL;

mask = 1 << d->irq % 32;
mask = 1 << d->hwirq % 32;
gpc_wake_irqs[idx] = on ? gpc_wake_irqs[idx] | mask :
gpc_wake_irqs[idx] & ~mask;

Expand Down Expand Up @@ -91,34 +91,44 @@ void imx_gpc_restore_all(void)
writel_relaxed(gpc_saved_imrs[i], reg_imr1 + i * 4);
}

void imx_gpc_irq_unmask(struct irq_data *d)
void imx_gpc_hwirq_unmask(unsigned int hwirq)
{
void __iomem *reg;
u32 val;

/* Sanity check for SPI irq */
if (d->irq < 32)
return;

reg = gpc_base + GPC_IMR1 + (d->irq / 32 - 1) * 4;
reg = gpc_base + GPC_IMR1 + (hwirq / 32 - 1) * 4;
val = readl_relaxed(reg);
val &= ~(1 << d->irq % 32);
val &= ~(1 << hwirq % 32);
writel_relaxed(val, reg);
}

void imx_gpc_irq_mask(struct irq_data *d)
void imx_gpc_hwirq_mask(unsigned int hwirq)
{
void __iomem *reg;
u32 val;

reg = gpc_base + GPC_IMR1 + (hwirq / 32 - 1) * 4;
val = readl_relaxed(reg);
val |= 1 << (hwirq % 32);
writel_relaxed(val, reg);
}

static void imx_gpc_irq_unmask(struct irq_data *d)
{
/* Sanity check for SPI irq */
if (d->hwirq < 32)
return;

imx_gpc_hwirq_unmask(d->hwirq);
}

static void imx_gpc_irq_mask(struct irq_data *d)
{
/* Sanity check for SPI irq */
if (d->irq < 32)
if (d->hwirq < 32)
return;

reg = gpc_base + GPC_IMR1 + (d->irq / 32 - 1) * 4;
val = readl_relaxed(reg);
val |= 1 << (d->irq % 32);
writel_relaxed(val, reg);
imx_gpc_hwirq_mask(d->hwirq);
}

void __init imx_gpc_init(void)
Expand Down
5 changes: 2 additions & 3 deletions arch/arm/mach-imx/pm-imx6.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ static void imx6q_enable_wb(bool enable)

int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
{
struct irq_data *iomuxc_irq_data = irq_get_irq_data(32);
u32 val = readl_relaxed(ccm_base + CLPCR);

val &= ~BM_CLPCR_LPM;
Expand Down Expand Up @@ -316,9 +315,9 @@ int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
* 3) Software should mask IRQ #32 right after CCM Low-Power mode
* is set (set bits 0-1 of CCM_CLPCR).
*/
imx_gpc_irq_unmask(iomuxc_irq_data);
imx_gpc_hwirq_unmask(32);
writel_relaxed(val, ccm_base + CLPCR);
imx_gpc_irq_mask(iomuxc_irq_data);
imx_gpc_hwirq_mask(32);

return 0;
}
Expand Down
Loading

0 comments on commit 0a9e0ac

Please sign in to comment.