You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC non-urgent fixes from Arnd Bergmann:
"As usual, we queue up a few fixes that don't seem urgent enough to go
in through -rc.
- a number of randconfig warning fixes from Arnd
- various small fixes for OMAP
- one somewhat larger patch to restore the OMAP3 cpuidle tuning that
was lost in a cleanup
- a small regression fix for cns3xxx PCI"
* tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
CNS3xxx: Fix PCI cns3xxx_write_config()
MAINTAINERS: unify email addrs for Kevin Hilman
CNS3xxx: remove unused *_VIRT definitions
ARM: OMAP2+: Fix hwmod clock for l4_ls
soc: TI knav_qmss: fix dma_addr_t printing
ARM: prima2: always enable reset controller
ARM: socfpga: hide unused functions
ARM: ux500: fix ureachable iounmap()
ARM: ks8695: fix __initdata annotation
ARM: mvebu: mark mvebu_hwcc_pci_nb as __maybe_unused
ARM: mv78xx0: avoid unused function warning
ARM: orion: only select I2C_BOARDINFO when using I2C
ARM: OMAP2+: Fix out of range register access with syscon_config.max_register
ARM: OMAP3: Add cpuidle parameters table for omap3430
ARM: davinci: make I2C support optional
ARM: davinci: DA8xx+DMx combined kernels need PATCH_PHYS_VIRT
ARM: davinci: avoid unused mityomapl138_pn_info variable
ARM: davinci: limit DT support to DA850
ARM: DRA7: hwmod: Add reset data for PCIe
ARM: DRA7: hwmod: Fix OCP2SCP sysconfig
...
This commit is contained in:
+3
-3
@@ -7887,7 +7887,7 @@ S: Maintained
|
||||
F: arch/arm/*omap*/*clock*
|
||||
|
||||
OMAP POWER MANAGEMENT SUPPORT
|
||||
M: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
M: Kevin Hilman <khilman@kernel.org>
|
||||
L: linux-omap@vger.kernel.org
|
||||
S: Maintained
|
||||
F: arch/arm/*omap*/*pm*
|
||||
@@ -7991,7 +7991,7 @@ F: arch/arm/*omap*/usb*
|
||||
OMAP GPIO DRIVER
|
||||
M: Grygorii Strashko <grygorii.strashko@ti.com>
|
||||
M: Santosh Shilimkar <ssantosh@kernel.org>
|
||||
M: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
M: Kevin Hilman <khilman@kernel.org>
|
||||
L: linux-omap@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/gpio/gpio-omap.txt
|
||||
@@ -10048,7 +10048,7 @@ F: arch/arm/mach-s3c24xx/bast-irq.c
|
||||
|
||||
TI DAVINCI MACHINE SUPPORT
|
||||
M: Sekhar Nori <nsekhar@ti.com>
|
||||
M: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
M: Kevin Hilman <khilman@kernel.org>
|
||||
T: git git://gitorious.org/linux-davinci/linux-davinci.git
|
||||
Q: http://patchwork.kernel.org/project/linux-davinci/list/
|
||||
S: Supported
|
||||
|
||||
@@ -622,6 +622,7 @@ config ARCH_DAVINCI
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select CPU_ARM926T
|
||||
select GENERIC_ALLOCATOR
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_IRQ_CHIP
|
||||
|
||||
@@ -158,6 +158,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_S3C2410=y
|
||||
CONFIG_I2C_SIMTEC=y
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_S3C24XX=y
|
||||
CONFIG_SPI_SPIDEV=y
|
||||
|
||||
@@ -290,6 +290,7 @@ CONFIG_HW_RANDOM=y
|
||||
CONFIG_I2C_CHARDEV=m
|
||||
CONFIG_I2C_S3C2410=y
|
||||
CONFIG_I2C_SIMTEC=y
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_GPIO=m
|
||||
CONFIG_SPI_S3C24XX=m
|
||||
|
||||
@@ -162,13 +162,11 @@
|
||||
#define CNS3XXX_L2C_BASE 0x92000000 /* L2 Cache Control */
|
||||
|
||||
#define CNS3XXX_PCIE0_MEM_BASE 0xA0000000 /* PCIe Port 0 IO/Memory Space */
|
||||
#define CNS3XXX_PCIE0_MEM_BASE_VIRT 0xE0000000
|
||||
|
||||
#define CNS3XXX_PCIE0_HOST_BASE 0xAB000000 /* PCIe Port 0 RC Base */
|
||||
#define CNS3XXX_PCIE0_HOST_BASE_VIRT 0xE1000000
|
||||
|
||||
#define CNS3XXX_PCIE0_IO_BASE 0xAC000000 /* PCIe Port 0 */
|
||||
#define CNS3XXX_PCIE0_IO_BASE_VIRT 0xE2000000
|
||||
|
||||
#define CNS3XXX_PCIE0_CFG0_BASE 0xAD000000 /* PCIe Port 0 CFG Type 0 */
|
||||
#define CNS3XXX_PCIE0_CFG0_BASE_VIRT 0xE3000000
|
||||
@@ -177,16 +175,13 @@
|
||||
#define CNS3XXX_PCIE0_CFG1_BASE_VIRT 0xE4000000
|
||||
|
||||
#define CNS3XXX_PCIE0_MSG_BASE 0xAF000000 /* PCIe Port 0 Message Space */
|
||||
#define CNS3XXX_PCIE0_MSG_BASE_VIRT 0xE5000000
|
||||
|
||||
#define CNS3XXX_PCIE1_MEM_BASE 0xB0000000 /* PCIe Port 1 IO/Memory Space */
|
||||
#define CNS3XXX_PCIE1_MEM_BASE_VIRT 0xE8000000
|
||||
|
||||
#define CNS3XXX_PCIE1_HOST_BASE 0xBB000000 /* PCIe Port 1 RC Base */
|
||||
#define CNS3XXX_PCIE1_HOST_BASE_VIRT 0xE9000000
|
||||
|
||||
#define CNS3XXX_PCIE1_IO_BASE 0xBC000000 /* PCIe Port 1 */
|
||||
#define CNS3XXX_PCIE1_IO_BASE_VIRT 0xEA000000
|
||||
|
||||
#define CNS3XXX_PCIE1_CFG0_BASE 0xBD000000 /* PCIe Port 1 CFG Type 0 */
|
||||
#define CNS3XXX_PCIE1_CFG0_BASE_VIRT 0xEB000000
|
||||
@@ -195,7 +190,6 @@
|
||||
#define CNS3XXX_PCIE1_CFG1_BASE_VIRT 0xEC000000
|
||||
|
||||
#define CNS3XXX_PCIE1_MSG_BASE 0xBF000000 /* PCIe Port 1 Message Space */
|
||||
#define CNS3XXX_PCIE1_MSG_BASE_VIRT 0xED000000
|
||||
|
||||
/*
|
||||
* Testchip peripheral and fpga gic regions
|
||||
|
||||
@@ -220,13 +220,13 @@ static void cns3xxx_write_config(struct cns3xxx_pcie *cnspci,
|
||||
u32 mask = (0x1ull << (size * 8)) - 1;
|
||||
int shift = (where % 4) * 8;
|
||||
|
||||
v = readl_relaxed(base + (where & 0xffc));
|
||||
v = readl_relaxed(base);
|
||||
|
||||
v &= ~(mask << shift);
|
||||
v |= (val & mask) << shift;
|
||||
|
||||
writel_relaxed(v, base + (where & 0xffc));
|
||||
readl_relaxed(base + (where & 0xffc));
|
||||
writel_relaxed(v, base);
|
||||
readl_relaxed(base);
|
||||
}
|
||||
|
||||
static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci)
|
||||
|
||||
@@ -9,7 +9,6 @@ config CP_INTC
|
||||
|
||||
config ARCH_DAVINCI_DMx
|
||||
bool
|
||||
select CPU_ARM926T
|
||||
|
||||
menu "TI DaVinci Implementations"
|
||||
|
||||
@@ -32,7 +31,7 @@ config ARCH_DAVINCI_DM646x
|
||||
|
||||
config ARCH_DAVINCI_DA830
|
||||
bool "DA830/OMAP-L137/AM17x based system"
|
||||
depends on !ARCH_DAVINCI_DMx || AUTO_ZRELADDR
|
||||
depends on !ARCH_DAVINCI_DMx || (AUTO_ZRELADDR && ARM_PATCH_PHYS_VIRT)
|
||||
select ARCH_DAVINCI_DA8XX
|
||||
# needed on silicon revs 1.0, 1.1:
|
||||
select CPU_DCACHE_WRITETHROUGH if !CPU_DCACHE_DISABLE
|
||||
@@ -40,13 +39,12 @@ config ARCH_DAVINCI_DA830
|
||||
|
||||
config ARCH_DAVINCI_DA850
|
||||
bool "DA850/OMAP-L138/AM18x based system"
|
||||
depends on !ARCH_DAVINCI_DMx || AUTO_ZRELADDR
|
||||
depends on !ARCH_DAVINCI_DMx || (AUTO_ZRELADDR && ARM_PATCH_PHYS_VIRT)
|
||||
select ARCH_DAVINCI_DA8XX
|
||||
select CP_INTC
|
||||
|
||||
config ARCH_DAVINCI_DA8XX
|
||||
bool
|
||||
select CPU_ARM926T
|
||||
|
||||
config ARCH_DAVINCI_DM365
|
||||
bool "DaVinci 365 based system"
|
||||
@@ -58,7 +56,7 @@ comment "DaVinci Board Type"
|
||||
config MACH_DA8XX_DT
|
||||
bool "Support DA8XX platforms using device tree"
|
||||
default y
|
||||
depends on ARCH_DAVINCI_DA8XX
|
||||
depends on ARCH_DAVINCI_DA850
|
||||
select PINCTRL
|
||||
help
|
||||
Say y here to include support for TI DaVinci DA850 based using
|
||||
@@ -68,8 +66,6 @@ config MACH_DAVINCI_EVM
|
||||
bool "TI DM644x EVM"
|
||||
default ARCH_DAVINCI_DM644x
|
||||
depends on ARCH_DAVINCI_DM644x
|
||||
select EEPROM_AT24
|
||||
select I2C
|
||||
help
|
||||
Configure this option to specify the whether the board used
|
||||
for development is a DM644x EVM
|
||||
@@ -77,8 +73,6 @@ config MACH_DAVINCI_EVM
|
||||
config MACH_SFFSDR
|
||||
bool "Lyrtech SFFSDR"
|
||||
depends on ARCH_DAVINCI_DM644x
|
||||
select EEPROM_AT24
|
||||
select I2C
|
||||
help
|
||||
Say Y here to select the Lyrtech Small Form Factor
|
||||
Software Defined Radio (SFFSDR) board.
|
||||
@@ -109,8 +103,6 @@ config MACH_DAVINCI_DM6467_EVM
|
||||
bool "TI DM6467 EVM"
|
||||
default ARCH_DAVINCI_DM646x
|
||||
depends on ARCH_DAVINCI_DM646x
|
||||
select EEPROM_AT24
|
||||
select I2C
|
||||
select MACH_DAVINCI_DM6467TEVM
|
||||
help
|
||||
Configure this option to specify the whether the board used
|
||||
@@ -123,8 +115,6 @@ config MACH_DAVINCI_DM365_EVM
|
||||
bool "TI DM365 EVM"
|
||||
default ARCH_DAVINCI_DM365
|
||||
depends on ARCH_DAVINCI_DM365
|
||||
select EEPROM_AT24
|
||||
select I2C
|
||||
help
|
||||
Configure this option to specify whether the board used
|
||||
for development is a DM365 EVM
|
||||
@@ -133,9 +123,7 @@ config MACH_DAVINCI_DA830_EVM
|
||||
bool "TI DA830/OMAP-L137/AM17x Reference Platform"
|
||||
default ARCH_DAVINCI_DA830
|
||||
depends on ARCH_DAVINCI_DA830
|
||||
select EEPROM_AT24
|
||||
select GPIO_PCF857X
|
||||
select I2C
|
||||
select GPIO_PCF857X if I2C
|
||||
help
|
||||
Say Y here to select the TI DA830/OMAP-L137/AM17x Evaluation Module.
|
||||
|
||||
@@ -204,8 +192,6 @@ endchoice
|
||||
config MACH_MITYOMAPL138
|
||||
bool "Critical Link MityDSP-L138/MityARM-1808 SoM"
|
||||
depends on ARCH_DAVINCI_DA850
|
||||
select EEPROM_AT24
|
||||
select I2C
|
||||
help
|
||||
Say Y here to select the Critical Link MityDSP-L138/MityARM-1808
|
||||
System on Module. Information on this SoM may be found at
|
||||
|
||||
@@ -267,7 +267,7 @@ static struct platform_device rtc_dev = {
|
||||
static struct snd_platform_data dm644x_evm_snd_data;
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
/*
|
||||
* I2C GPIO expanders
|
||||
*/
|
||||
@@ -612,6 +612,7 @@ static void __init evm_init_i2c(void)
|
||||
i2c_add_driver(&dm6446evm_msp_driver);
|
||||
i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
|
||||
}
|
||||
#endif
|
||||
|
||||
#define VENC_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL)
|
||||
|
||||
@@ -780,7 +781,9 @@ static __init void davinci_evm_init(void)
|
||||
pr_warn("%s: Cannot configure AEMIF\n",
|
||||
__func__);
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
evm_leds[7].default_trigger = "nand-disk";
|
||||
#endif
|
||||
if (HAS_NOR)
|
||||
pr_warn("WARNING: both NAND and NOR flash are enabled; disable one of them.\n");
|
||||
} else if (HAS_NOR)
|
||||
@@ -789,9 +792,10 @@ static __init void davinci_evm_init(void)
|
||||
|
||||
platform_add_devices(davinci_evm_devices,
|
||||
ARRAY_SIZE(davinci_evm_devices));
|
||||
#ifdef CONFIG_I2C
|
||||
evm_init_i2c();
|
||||
|
||||
davinci_setup_mmc(0, &dm6446evm_mmc_config);
|
||||
#endif
|
||||
dm644x_init_video(&dm644xevm_capture_cfg, &dm644xevm_display_cfg);
|
||||
|
||||
davinci_serial_init(dm644x_serial_device);
|
||||
|
||||
@@ -121,6 +121,7 @@ static struct platform_device davinci_nand_device = {
|
||||
|
||||
#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
/* CPLD Register 0 bits to control ATA */
|
||||
#define DM646X_EVM_ATA_RST BIT(0)
|
||||
#define DM646X_EVM_ATA_PWD BIT(1)
|
||||
@@ -316,6 +317,7 @@ static struct at24_platform_data eeprom_info = {
|
||||
.setup = davinci_get_mac_addr,
|
||||
.context = (void *)0x7f00,
|
||||
};
|
||||
#endif
|
||||
|
||||
static u8 dm646x_iis_serializer_direction[] = {
|
||||
TX_MODE, RX_MODE, INACTIVE_MODE, INACTIVE_MODE,
|
||||
@@ -346,6 +348,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = {
|
||||
},
|
||||
};
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
static struct i2c_client *cpld_client;
|
||||
|
||||
static int cpld_video_probe(struct i2c_client *client,
|
||||
@@ -710,6 +713,7 @@ static void __init evm_init_i2c(void)
|
||||
evm_init_cpld();
|
||||
evm_init_video();
|
||||
}
|
||||
#endif
|
||||
|
||||
#define DM6467T_EVM_REF_FREQ 33000000
|
||||
|
||||
@@ -764,7 +768,10 @@ static __init void evm_init(void)
|
||||
if (ret)
|
||||
pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
evm_init_i2c();
|
||||
#endif
|
||||
|
||||
davinci_serial_init(dm646x_serial_device);
|
||||
dm646x_init_mcasp0(&dm646x_evm_snd_data[0]);
|
||||
dm646x_init_mcasp1(&dm646x_evm_snd_data[1]);
|
||||
|
||||
@@ -51,6 +51,7 @@ struct factory_config {
|
||||
|
||||
static struct factory_config factory_config;
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
struct part_no_info {
|
||||
const char *part_no; /* part number string of interest */
|
||||
int max_freq; /* khz */
|
||||
@@ -87,7 +88,6 @@ static struct part_no_info mityomapl138_pn_info[] = {
|
||||
},
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
static void mityomapl138_cpufreq_init(const char *partnum)
|
||||
{
|
||||
int i, ret;
|
||||
|
||||
@@ -8,7 +8,7 @@ config DOVE_LEGACY
|
||||
config MACH_DOVE_DB
|
||||
bool "Marvell DB-MV88AP510 Development Board"
|
||||
select DOVE_LEGACY
|
||||
select I2C_BOARDINFO
|
||||
select I2C_BOARDINFO if I2C
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell DB-MV88AP510 Development Board.
|
||||
|
||||
@@ -27,6 +27,7 @@ menuconfig ARCH_EXYNOS
|
||||
select S5P_DEV_MFC
|
||||
select SRAM
|
||||
select THERMAL
|
||||
select THERMAL_OF
|
||||
select MFD_SYSCON
|
||||
select CLKSRC_EXYNOS_MCT
|
||||
select POWER_RESET
|
||||
|
||||
@@ -80,7 +80,7 @@ static void __init og_pci_bus_reset(void)
|
||||
#define S8250_VIRT 0xf4000000
|
||||
#define S8250_SIZE 0x00100000
|
||||
|
||||
static struct __initdata map_desc og_io_desc[] = {
|
||||
static struct map_desc og_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = S8250_VIRT,
|
||||
.pfn = __phys_to_pfn(S8250_PHYS),
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <mach/regs-misc.h>
|
||||
|
||||
|
||||
static struct __initdata map_desc ks8695_io_desc[] = {
|
||||
static struct map_desc ks8695_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)KS8695_IO_VA,
|
||||
.pfn = __phys_to_pfn(KS8695_IO_PA),
|
||||
|
||||
@@ -405,9 +405,8 @@ void __init mv78xx0_init(void)
|
||||
printk("HCLK = %dMHz, ", (hclk + 499999) / 1000000);
|
||||
printk("TCLK = %dMHz\n", (get_tclk() + 499999) / 1000000);
|
||||
|
||||
#ifdef CONFIG_CACHE_FEROCEON_L2
|
||||
feroceon_l2_init(is_l2_writethrough());
|
||||
#endif
|
||||
if (IS_ENABLED(CONFIG_CACHE_FEROCEON_L2))
|
||||
feroceon_l2_init(is_l2_writethrough());
|
||||
|
||||
/* Setup root of clk tree */
|
||||
clk_init();
|
||||
|
||||
@@ -107,7 +107,7 @@ static struct notifier_block mvebu_hwcc_nb = {
|
||||
.notifier_call = mvebu_hwcc_notifier,
|
||||
};
|
||||
|
||||
static struct notifier_block mvebu_hwcc_pci_nb = {
|
||||
static struct notifier_block mvebu_hwcc_pci_nb __maybe_unused = {
|
||||
.notifier_call = mvebu_hwcc_notifier,
|
||||
};
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
|
||||
static void __iomem *omap2_ctrl_base;
|
||||
static s16 omap2_ctrl_offset;
|
||||
static struct regmap *omap2_ctrl_syscon;
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM)
|
||||
struct omap3_scratchpad {
|
||||
@@ -166,16 +165,9 @@ u16 omap_ctrl_readw(u16 offset)
|
||||
|
||||
u32 omap_ctrl_readl(u16 offset)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
offset &= 0xfffc;
|
||||
if (!omap2_ctrl_syscon)
|
||||
val = readl_relaxed(omap2_ctrl_base + offset);
|
||||
else
|
||||
regmap_read(omap2_ctrl_syscon, omap2_ctrl_offset + offset,
|
||||
&val);
|
||||
|
||||
return val;
|
||||
return readl_relaxed(omap2_ctrl_base + offset);
|
||||
}
|
||||
|
||||
void omap_ctrl_writeb(u8 val, u16 offset)
|
||||
@@ -207,11 +199,7 @@ void omap_ctrl_writew(u16 val, u16 offset)
|
||||
void omap_ctrl_writel(u32 val, u16 offset)
|
||||
{
|
||||
offset &= 0xfffc;
|
||||
if (!omap2_ctrl_syscon)
|
||||
writel_relaxed(val, omap2_ctrl_base + offset);
|
||||
else
|
||||
regmap_write(omap2_ctrl_syscon, omap2_ctrl_offset + offset,
|
||||
val);
|
||||
writel_relaxed(val, omap2_ctrl_base + offset);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
@@ -715,8 +703,6 @@ int __init omap_control_init(void)
|
||||
if (IS_ERR(syscon))
|
||||
return PTR_ERR(syscon);
|
||||
|
||||
omap2_ctrl_syscon = syscon;
|
||||
|
||||
if (of_get_child_by_name(scm_conf, "clocks")) {
|
||||
ret = omap2_clk_provider_init(scm_conf,
|
||||
data->index,
|
||||
@@ -724,9 +710,6 @@ int __init omap_control_init(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
iounmap(omap2_ctrl_base);
|
||||
omap2_ctrl_base = NULL;
|
||||
} else {
|
||||
/* No scm_conf found, direct access */
|
||||
ret = omap2_clk_provider_init(np, data->index, NULL,
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "pm.h"
|
||||
#include "control.h"
|
||||
#include "common.h"
|
||||
#include "soc.h"
|
||||
|
||||
/* Mach specific information to be recorded in the C-state driver_data */
|
||||
struct omap3_idle_statedata {
|
||||
@@ -315,6 +316,69 @@ static struct cpuidle_driver omap3_idle_driver = {
|
||||
.safe_state_index = 0,
|
||||
};
|
||||
|
||||
/*
|
||||
* Numbers based on measurements made in October 2009 for PM optimized kernel
|
||||
* with CPU freq enabled on device Nokia N900. Assumes OPP2 (main idle OPP,
|
||||
* and worst case latencies).
|
||||
*/
|
||||
static struct cpuidle_driver omap3430_idle_driver = {
|
||||
.name = "omap3430_idle",
|
||||
.owner = THIS_MODULE,
|
||||
.states = {
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 110 + 162,
|
||||
.target_residency = 5,
|
||||
.name = "C1",
|
||||
.desc = "MPU ON + CORE ON",
|
||||
},
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 106 + 180,
|
||||
.target_residency = 309,
|
||||
.name = "C2",
|
||||
.desc = "MPU ON + CORE ON",
|
||||
},
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 107 + 410,
|
||||
.target_residency = 46057,
|
||||
.name = "C3",
|
||||
.desc = "MPU RET + CORE ON",
|
||||
},
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 121 + 3374,
|
||||
.target_residency = 46057,
|
||||
.name = "C4",
|
||||
.desc = "MPU OFF + CORE ON",
|
||||
},
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 855 + 1146,
|
||||
.target_residency = 46057,
|
||||
.name = "C5",
|
||||
.desc = "MPU RET + CORE RET",
|
||||
},
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 7580 + 4134,
|
||||
.target_residency = 484329,
|
||||
.name = "C6",
|
||||
.desc = "MPU OFF + CORE RET",
|
||||
},
|
||||
{
|
||||
.enter = omap3_enter_idle_bm,
|
||||
.exit_latency = 7505 + 15274,
|
||||
.target_residency = 484329,
|
||||
.name = "C7",
|
||||
.desc = "MPU OFF + CORE OFF",
|
||||
},
|
||||
},
|
||||
.state_count = ARRAY_SIZE(omap3_idle_data),
|
||||
.safe_state_index = 0,
|
||||
};
|
||||
|
||||
/* Public functions */
|
||||
|
||||
/**
|
||||
@@ -333,5 +397,8 @@ int __init omap3_idle_init(void)
|
||||
if (!mpu_pd || !core_pd || !per_pd || !cam_pd)
|
||||
return -ENODEV;
|
||||
|
||||
return cpuidle_register(&omap3_idle_driver, NULL);
|
||||
if (cpu_is_omap3430())
|
||||
return cpuidle_register(&omap3430_idle_driver, NULL);
|
||||
else
|
||||
return cpuidle_register(&omap3_idle_driver, NULL);
|
||||
}
|
||||
|
||||
@@ -3583,14 +3583,14 @@ static struct omap_hwmod_class_sysconfig omap34xx_ssi_sysc = {
|
||||
.sysc_fields = &omap_hwmod_sysc_type1,
|
||||
};
|
||||
|
||||
static struct omap_hwmod_class omap34xx_ssi_hwmod_class = {
|
||||
static struct omap_hwmod_class omap3xxx_ssi_hwmod_class = {
|
||||
.name = "ssi",
|
||||
.sysc = &omap34xx_ssi_sysc,
|
||||
};
|
||||
|
||||
static struct omap_hwmod omap34xx_ssi_hwmod = {
|
||||
static struct omap_hwmod omap3xxx_ssi_hwmod = {
|
||||
.name = "ssi",
|
||||
.class = &omap34xx_ssi_hwmod_class,
|
||||
.class = &omap3xxx_ssi_hwmod_class,
|
||||
.clkdm_name = "core_l4_clkdm",
|
||||
.main_clk = "ssi_ssr_fck",
|
||||
.prcm = {
|
||||
@@ -3605,9 +3605,9 @@ static struct omap_hwmod omap34xx_ssi_hwmod = {
|
||||
};
|
||||
|
||||
/* L4 CORE -> SSI */
|
||||
static struct omap_hwmod_ocp_if omap34xx_l4_core__ssi = {
|
||||
static struct omap_hwmod_ocp_if omap3xxx_l4_core__ssi = {
|
||||
.master = &omap3xxx_l4_core_hwmod,
|
||||
.slave = &omap34xx_ssi_hwmod,
|
||||
.slave = &omap3xxx_ssi_hwmod,
|
||||
.clk = "ssi_ick",
|
||||
.user = OCP_USER_MPU | OCP_USER_SDMA,
|
||||
};
|
||||
@@ -3760,7 +3760,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = {
|
||||
&omap3xxx_sad2d__l3,
|
||||
&omap3xxx_l4_core__mmu_isp,
|
||||
&omap3xxx_l3_main__mmu_iva,
|
||||
&omap34xx_l4_core__ssi,
|
||||
&omap3xxx_l4_core__ssi,
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -3784,6 +3784,7 @@ static struct omap_hwmod_ocp_if *omap36xx_hwmod_ocp_ifs[] __initdata = {
|
||||
&omap3xxx_sad2d__l3,
|
||||
&omap3xxx_l4_core__mmu_isp,
|
||||
&omap3xxx_l3_main__mmu_iva,
|
||||
&omap3xxx_l4_core__ssi,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
@@ -1482,8 +1482,7 @@ static struct omap_hwmod_class_sysconfig dra7xx_ocp2scp_sysc = {
|
||||
.syss_offs = 0x0014,
|
||||
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
|
||||
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
|
||||
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
|
||||
SIDLE_SMART_WKUP),
|
||||
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
|
||||
.sysc_fields = &omap_hwmod_sysc_type1,
|
||||
};
|
||||
|
||||
@@ -1532,29 +1531,44 @@ static struct omap_hwmod_class dra7xx_pciess_hwmod_class = {
|
||||
};
|
||||
|
||||
/* pcie1 */
|
||||
static struct omap_hwmod_rst_info dra7xx_pciess1_resets[] = {
|
||||
{ .name = "pcie", .rst_shift = 0 },
|
||||
};
|
||||
|
||||
static struct omap_hwmod dra7xx_pciess1_hwmod = {
|
||||
.name = "pcie1",
|
||||
.class = &dra7xx_pciess_hwmod_class,
|
||||
.clkdm_name = "pcie_clkdm",
|
||||
.rst_lines = dra7xx_pciess1_resets,
|
||||
.rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess1_resets),
|
||||
.main_clk = "l4_root_clk_div",
|
||||
.prcm = {
|
||||
.omap4 = {
|
||||
.clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET,
|
||||
.rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET,
|
||||
.context_offs = DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET,
|
||||
.modulemode = MODULEMODE_SWCTRL,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/* pcie2 */
|
||||
static struct omap_hwmod_rst_info dra7xx_pciess2_resets[] = {
|
||||
{ .name = "pcie", .rst_shift = 1 },
|
||||
};
|
||||
|
||||
/* pcie2 */
|
||||
static struct omap_hwmod dra7xx_pciess2_hwmod = {
|
||||
.name = "pcie2",
|
||||
.class = &dra7xx_pciess_hwmod_class,
|
||||
.clkdm_name = "pcie_clkdm",
|
||||
.rst_lines = dra7xx_pciess2_resets,
|
||||
.rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess2_resets),
|
||||
.main_clk = "l4_root_clk_div",
|
||||
.prcm = {
|
||||
.omap4 = {
|
||||
.clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET,
|
||||
.rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET,
|
||||
.context_offs = DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET,
|
||||
.modulemode = MODULEMODE_SWCTRL,
|
||||
},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user