Commit dae0b74e authored by Linus Torvalds's avatar Linus Torvalds

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
  ...
parents 142b9e6c 88e9da9a
...@@ -7887,7 +7887,7 @@ S: Maintained ...@@ -7887,7 +7887,7 @@ S: Maintained
F: arch/arm/*omap*/*clock* F: arch/arm/*omap*/*clock*
OMAP POWER MANAGEMENT SUPPORT OMAP POWER MANAGEMENT SUPPORT
M: Kevin Hilman <khilman@deeprootsystems.com> M: Kevin Hilman <khilman@kernel.org>
L: linux-omap@vger.kernel.org L: linux-omap@vger.kernel.org
S: Maintained S: Maintained
F: arch/arm/*omap*/*pm* F: arch/arm/*omap*/*pm*
...@@ -7991,7 +7991,7 @@ F: arch/arm/*omap*/usb* ...@@ -7991,7 +7991,7 @@ F: arch/arm/*omap*/usb*
OMAP GPIO DRIVER OMAP GPIO DRIVER
M: Grygorii Strashko <grygorii.strashko@ti.com> M: Grygorii Strashko <grygorii.strashko@ti.com>
M: Santosh Shilimkar <ssantosh@kernel.org> M: Santosh Shilimkar <ssantosh@kernel.org>
M: Kevin Hilman <khilman@deeprootsystems.com> M: Kevin Hilman <khilman@kernel.org>
L: linux-omap@vger.kernel.org L: linux-omap@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/gpio/gpio-omap.txt F: Documentation/devicetree/bindings/gpio/gpio-omap.txt
...@@ -10048,7 +10048,7 @@ F: arch/arm/mach-s3c24xx/bast-irq.c ...@@ -10048,7 +10048,7 @@ F: arch/arm/mach-s3c24xx/bast-irq.c
TI DAVINCI MACHINE SUPPORT TI DAVINCI MACHINE SUPPORT
M: Sekhar Nori <nsekhar@ti.com> 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 T: git git://gitorious.org/linux-davinci/linux-davinci.git
Q: http://patchwork.kernel.org/project/linux-davinci/list/ Q: http://patchwork.kernel.org/project/linux-davinci/list/
S: Supported S: Supported
......
...@@ -622,6 +622,7 @@ config ARCH_DAVINCI ...@@ -622,6 +622,7 @@ config ARCH_DAVINCI
select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_HAS_HOLES_MEMORYMODEL
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select CPU_ARM926T
select GENERIC_ALLOCATOR select GENERIC_ALLOCATOR
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
......
...@@ -158,6 +158,7 @@ CONFIG_I2C=y ...@@ -158,6 +158,7 @@ CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y CONFIG_I2C_CHARDEV=y
CONFIG_I2C_S3C2410=y CONFIG_I2C_S3C2410=y
CONFIG_I2C_SIMTEC=y CONFIG_I2C_SIMTEC=y
CONFIG_EEPROM_AT24=y
CONFIG_SPI=y CONFIG_SPI=y
CONFIG_SPI_S3C24XX=y CONFIG_SPI_S3C24XX=y
CONFIG_SPI_SPIDEV=y CONFIG_SPI_SPIDEV=y
......
...@@ -290,6 +290,7 @@ CONFIG_HW_RANDOM=y ...@@ -290,6 +290,7 @@ CONFIG_HW_RANDOM=y
CONFIG_I2C_CHARDEV=m CONFIG_I2C_CHARDEV=m
CONFIG_I2C_S3C2410=y CONFIG_I2C_S3C2410=y
CONFIG_I2C_SIMTEC=y CONFIG_I2C_SIMTEC=y
CONFIG_EEPROM_AT24=y
CONFIG_SPI=y CONFIG_SPI=y
CONFIG_SPI_GPIO=m CONFIG_SPI_GPIO=m
CONFIG_SPI_S3C24XX=m CONFIG_SPI_S3C24XX=m
......
...@@ -162,13 +162,11 @@ ...@@ -162,13 +162,11 @@
#define CNS3XXX_L2C_BASE 0x92000000 /* L2 Cache Control */ #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 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 0xAB000000 /* PCIe Port 0 RC Base */
#define CNS3XXX_PCIE0_HOST_BASE_VIRT 0xE1000000 #define CNS3XXX_PCIE0_HOST_BASE_VIRT 0xE1000000
#define CNS3XXX_PCIE0_IO_BASE 0xAC000000 /* PCIe Port 0 */ #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 0xAD000000 /* PCIe Port 0 CFG Type 0 */
#define CNS3XXX_PCIE0_CFG0_BASE_VIRT 0xE3000000 #define CNS3XXX_PCIE0_CFG0_BASE_VIRT 0xE3000000
...@@ -177,16 +175,13 @@ ...@@ -177,16 +175,13 @@
#define CNS3XXX_PCIE0_CFG1_BASE_VIRT 0xE4000000 #define CNS3XXX_PCIE0_CFG1_BASE_VIRT 0xE4000000
#define CNS3XXX_PCIE0_MSG_BASE 0xAF000000 /* PCIe Port 0 Message Space */ #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 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 0xBB000000 /* PCIe Port 1 RC Base */
#define CNS3XXX_PCIE1_HOST_BASE_VIRT 0xE9000000 #define CNS3XXX_PCIE1_HOST_BASE_VIRT 0xE9000000
#define CNS3XXX_PCIE1_IO_BASE 0xBC000000 /* PCIe Port 1 */ #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 0xBD000000 /* PCIe Port 1 CFG Type 0 */
#define CNS3XXX_PCIE1_CFG0_BASE_VIRT 0xEB000000 #define CNS3XXX_PCIE1_CFG0_BASE_VIRT 0xEB000000
...@@ -195,7 +190,6 @@ ...@@ -195,7 +190,6 @@
#define CNS3XXX_PCIE1_CFG1_BASE_VIRT 0xEC000000 #define CNS3XXX_PCIE1_CFG1_BASE_VIRT 0xEC000000
#define CNS3XXX_PCIE1_MSG_BASE 0xBF000000 /* PCIe Port 1 Message Space */ #define CNS3XXX_PCIE1_MSG_BASE 0xBF000000 /* PCIe Port 1 Message Space */
#define CNS3XXX_PCIE1_MSG_BASE_VIRT 0xED000000
/* /*
* Testchip peripheral and fpga gic regions * Testchip peripheral and fpga gic regions
......
...@@ -220,13 +220,13 @@ static void cns3xxx_write_config(struct cns3xxx_pcie *cnspci, ...@@ -220,13 +220,13 @@ static void cns3xxx_write_config(struct cns3xxx_pcie *cnspci,
u32 mask = (0x1ull << (size * 8)) - 1; u32 mask = (0x1ull << (size * 8)) - 1;
int shift = (where % 4) * 8; int shift = (where % 4) * 8;
v = readl_relaxed(base + (where & 0xffc)); v = readl_relaxed(base);
v &= ~(mask << shift); v &= ~(mask << shift);
v |= (val & mask) << shift; v |= (val & mask) << shift;
writel_relaxed(v, base + (where & 0xffc)); writel_relaxed(v, base);
readl_relaxed(base + (where & 0xffc)); readl_relaxed(base);
} }
static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci) static void __init cns3xxx_pcie_hw_init(struct cns3xxx_pcie *cnspci)
......
...@@ -9,7 +9,6 @@ config CP_INTC ...@@ -9,7 +9,6 @@ config CP_INTC
config ARCH_DAVINCI_DMx config ARCH_DAVINCI_DMx
bool bool
select CPU_ARM926T
menu "TI DaVinci Implementations" menu "TI DaVinci Implementations"
...@@ -32,7 +31,7 @@ config ARCH_DAVINCI_DM646x ...@@ -32,7 +31,7 @@ config ARCH_DAVINCI_DM646x
config ARCH_DAVINCI_DA830 config ARCH_DAVINCI_DA830
bool "DA830/OMAP-L137/AM17x based system" 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 select ARCH_DAVINCI_DA8XX
# needed on silicon revs 1.0, 1.1: # needed on silicon revs 1.0, 1.1:
select CPU_DCACHE_WRITETHROUGH if !CPU_DCACHE_DISABLE select CPU_DCACHE_WRITETHROUGH if !CPU_DCACHE_DISABLE
...@@ -40,13 +39,12 @@ config ARCH_DAVINCI_DA830 ...@@ -40,13 +39,12 @@ config ARCH_DAVINCI_DA830
config ARCH_DAVINCI_DA850 config ARCH_DAVINCI_DA850
bool "DA850/OMAP-L138/AM18x based system" 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 ARCH_DAVINCI_DA8XX
select CP_INTC select CP_INTC
config ARCH_DAVINCI_DA8XX config ARCH_DAVINCI_DA8XX
bool bool
select CPU_ARM926T
config ARCH_DAVINCI_DM365 config ARCH_DAVINCI_DM365
bool "DaVinci 365 based system" bool "DaVinci 365 based system"
...@@ -58,7 +56,7 @@ comment "DaVinci Board Type" ...@@ -58,7 +56,7 @@ comment "DaVinci Board Type"
config MACH_DA8XX_DT config MACH_DA8XX_DT
bool "Support DA8XX platforms using device tree" bool "Support DA8XX platforms using device tree"
default y default y
depends on ARCH_DAVINCI_DA8XX depends on ARCH_DAVINCI_DA850
select PINCTRL select PINCTRL
help help
Say y here to include support for TI DaVinci DA850 based using Say y here to include support for TI DaVinci DA850 based using
...@@ -68,8 +66,6 @@ config MACH_DAVINCI_EVM ...@@ -68,8 +66,6 @@ config MACH_DAVINCI_EVM
bool "TI DM644x EVM" bool "TI DM644x EVM"
default ARCH_DAVINCI_DM644x default ARCH_DAVINCI_DM644x
depends on ARCH_DAVINCI_DM644x depends on ARCH_DAVINCI_DM644x
select EEPROM_AT24
select I2C
help help
Configure this option to specify the whether the board used Configure this option to specify the whether the board used
for development is a DM644x EVM for development is a DM644x EVM
...@@ -77,8 +73,6 @@ config MACH_DAVINCI_EVM ...@@ -77,8 +73,6 @@ config MACH_DAVINCI_EVM
config MACH_SFFSDR config MACH_SFFSDR
bool "Lyrtech SFFSDR" bool "Lyrtech SFFSDR"
depends on ARCH_DAVINCI_DM644x depends on ARCH_DAVINCI_DM644x
select EEPROM_AT24
select I2C
help help
Say Y here to select the Lyrtech Small Form Factor Say Y here to select the Lyrtech Small Form Factor
Software Defined Radio (SFFSDR) board. Software Defined Radio (SFFSDR) board.
...@@ -109,8 +103,6 @@ config MACH_DAVINCI_DM6467_EVM ...@@ -109,8 +103,6 @@ config MACH_DAVINCI_DM6467_EVM
bool "TI DM6467 EVM" bool "TI DM6467 EVM"
default ARCH_DAVINCI_DM646x default ARCH_DAVINCI_DM646x
depends on ARCH_DAVINCI_DM646x depends on ARCH_DAVINCI_DM646x
select EEPROM_AT24
select I2C
select MACH_DAVINCI_DM6467TEVM select MACH_DAVINCI_DM6467TEVM
help help
Configure this option to specify the whether the board used Configure this option to specify the whether the board used
...@@ -123,8 +115,6 @@ config MACH_DAVINCI_DM365_EVM ...@@ -123,8 +115,6 @@ config MACH_DAVINCI_DM365_EVM
bool "TI DM365 EVM" bool "TI DM365 EVM"
default ARCH_DAVINCI_DM365 default ARCH_DAVINCI_DM365
depends on ARCH_DAVINCI_DM365 depends on ARCH_DAVINCI_DM365
select EEPROM_AT24
select I2C
help help
Configure this option to specify whether the board used Configure this option to specify whether the board used
for development is a DM365 EVM for development is a DM365 EVM
...@@ -133,9 +123,7 @@ config MACH_DAVINCI_DA830_EVM ...@@ -133,9 +123,7 @@ config MACH_DAVINCI_DA830_EVM
bool "TI DA830/OMAP-L137/AM17x Reference Platform" bool "TI DA830/OMAP-L137/AM17x Reference Platform"
default ARCH_DAVINCI_DA830 default ARCH_DAVINCI_DA830
depends on ARCH_DAVINCI_DA830 depends on ARCH_DAVINCI_DA830
select EEPROM_AT24 select GPIO_PCF857X if I2C
select GPIO_PCF857X
select I2C
help help
Say Y here to select the TI DA830/OMAP-L137/AM17x Evaluation Module. Say Y here to select the TI DA830/OMAP-L137/AM17x Evaluation Module.
...@@ -204,8 +192,6 @@ endchoice ...@@ -204,8 +192,6 @@ endchoice
config MACH_MITYOMAPL138 config MACH_MITYOMAPL138
bool "Critical Link MityDSP-L138/MityARM-1808 SoM" bool "Critical Link MityDSP-L138/MityARM-1808 SoM"
depends on ARCH_DAVINCI_DA850 depends on ARCH_DAVINCI_DA850
select EEPROM_AT24
select I2C
help help
Say Y here to select the Critical Link MityDSP-L138/MityARM-1808 Say Y here to select the Critical Link MityDSP-L138/MityARM-1808
System on Module. Information on this SoM may be found at System on Module. Information on this SoM may be found at
......
...@@ -267,7 +267,7 @@ static struct platform_device rtc_dev = { ...@@ -267,7 +267,7 @@ static struct platform_device rtc_dev = {
static struct snd_platform_data dm644x_evm_snd_data; static struct snd_platform_data dm644x_evm_snd_data;
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
#ifdef CONFIG_I2C
/* /*
* I2C GPIO expanders * I2C GPIO expanders
*/ */
...@@ -612,6 +612,7 @@ static void __init evm_init_i2c(void) ...@@ -612,6 +612,7 @@ static void __init evm_init_i2c(void)
i2c_add_driver(&dm6446evm_msp_driver); i2c_add_driver(&dm6446evm_msp_driver);
i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info)); i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
} }
#endif
#define VENC_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL) #define VENC_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL)
...@@ -780,7 +781,9 @@ static __init void davinci_evm_init(void) ...@@ -780,7 +781,9 @@ static __init void davinci_evm_init(void)
pr_warn("%s: Cannot configure AEMIF\n", pr_warn("%s: Cannot configure AEMIF\n",
__func__); __func__);
#ifdef CONFIG_I2C
evm_leds[7].default_trigger = "nand-disk"; evm_leds[7].default_trigger = "nand-disk";
#endif
if (HAS_NOR) if (HAS_NOR)
pr_warn("WARNING: both NAND and NOR flash are enabled; disable one of them.\n"); pr_warn("WARNING: both NAND and NOR flash are enabled; disable one of them.\n");
} else if (HAS_NOR) } else if (HAS_NOR)
...@@ -789,9 +792,10 @@ static __init void davinci_evm_init(void) ...@@ -789,9 +792,10 @@ static __init void davinci_evm_init(void)
platform_add_devices(davinci_evm_devices, platform_add_devices(davinci_evm_devices,
ARRAY_SIZE(davinci_evm_devices)); ARRAY_SIZE(davinci_evm_devices));
#ifdef CONFIG_I2C
evm_init_i2c(); evm_init_i2c();
davinci_setup_mmc(0, &dm6446evm_mmc_config); davinci_setup_mmc(0, &dm6446evm_mmc_config);
#endif
dm644x_init_video(&dm644xevm_capture_cfg, &dm644xevm_display_cfg); dm644x_init_video(&dm644xevm_capture_cfg, &dm644xevm_display_cfg);
davinci_serial_init(dm644x_serial_device); davinci_serial_init(dm644x_serial_device);
......
...@@ -121,6 +121,7 @@ static struct platform_device davinci_nand_device = { ...@@ -121,6 +121,7 @@ static struct platform_device davinci_nand_device = {
#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710) #define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
#ifdef CONFIG_I2C
/* CPLD Register 0 bits to control ATA */ /* CPLD Register 0 bits to control ATA */
#define DM646X_EVM_ATA_RST BIT(0) #define DM646X_EVM_ATA_RST BIT(0)
#define DM646X_EVM_ATA_PWD BIT(1) #define DM646X_EVM_ATA_PWD BIT(1)
...@@ -316,6 +317,7 @@ static struct at24_platform_data eeprom_info = { ...@@ -316,6 +317,7 @@ static struct at24_platform_data eeprom_info = {
.setup = davinci_get_mac_addr, .setup = davinci_get_mac_addr,
.context = (void *)0x7f00, .context = (void *)0x7f00,
}; };
#endif
static u8 dm646x_iis_serializer_direction[] = { static u8 dm646x_iis_serializer_direction[] = {
TX_MODE, RX_MODE, INACTIVE_MODE, INACTIVE_MODE, TX_MODE, RX_MODE, INACTIVE_MODE, INACTIVE_MODE,
...@@ -346,6 +348,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = { ...@@ -346,6 +348,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = {
}, },
}; };
#ifdef CONFIG_I2C
static struct i2c_client *cpld_client; static struct i2c_client *cpld_client;
static int cpld_video_probe(struct i2c_client *client, static int cpld_video_probe(struct i2c_client *client,
...@@ -710,6 +713,7 @@ static void __init evm_init_i2c(void) ...@@ -710,6 +713,7 @@ static void __init evm_init_i2c(void)
evm_init_cpld(); evm_init_cpld();
evm_init_video(); evm_init_video();
} }
#endif
#define DM6467T_EVM_REF_FREQ 33000000 #define DM6467T_EVM_REF_FREQ 33000000
...@@ -764,7 +768,10 @@ static __init void evm_init(void) ...@@ -764,7 +768,10 @@ static __init void evm_init(void)
if (ret) if (ret)
pr_warn("%s: GPIO init failed: %d\n", __func__, ret); pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
#ifdef CONFIG_I2C
evm_init_i2c(); evm_init_i2c();
#endif
davinci_serial_init(dm646x_serial_device); davinci_serial_init(dm646x_serial_device);
dm646x_init_mcasp0(&dm646x_evm_snd_data[0]); dm646x_init_mcasp0(&dm646x_evm_snd_data[0]);
dm646x_init_mcasp1(&dm646x_evm_snd_data[1]); dm646x_init_mcasp1(&dm646x_evm_snd_data[1]);
......
...@@ -51,6 +51,7 @@ struct factory_config { ...@@ -51,6 +51,7 @@ struct factory_config {
static struct factory_config factory_config; static struct factory_config factory_config;
#ifdef CONFIG_CPU_FREQ
struct part_no_info { struct part_no_info {
const char *part_no; /* part number string of interest */ const char *part_no; /* part number string of interest */
int max_freq; /* khz */ int max_freq; /* khz */
...@@ -87,7 +88,6 @@ static struct part_no_info mityomapl138_pn_info[] = { ...@@ -87,7 +88,6 @@ static struct part_no_info mityomapl138_pn_info[] = {
}, },
}; };
#ifdef CONFIG_CPU_FREQ
static void mityomapl138_cpufreq_init(const char *partnum) static void mityomapl138_cpufreq_init(const char *partnum)
{ {
int i, ret; int i, ret;
......
...@@ -8,7 +8,7 @@ config DOVE_LEGACY ...@@ -8,7 +8,7 @@ config DOVE_LEGACY
config MACH_DOVE_DB config MACH_DOVE_DB
bool "Marvell DB-MV88AP510 Development Board" bool "Marvell DB-MV88AP510 Development Board"
select DOVE_LEGACY select DOVE_LEGACY
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Marvell DB-MV88AP510 Development Board. Marvell DB-MV88AP510 Development Board.
......
...@@ -27,6 +27,7 @@ menuconfig ARCH_EXYNOS ...@@ -27,6 +27,7 @@ menuconfig ARCH_EXYNOS
select S5P_DEV_MFC select S5P_DEV_MFC
select SRAM select SRAM
select THERMAL select THERMAL
select THERMAL_OF
select MFD_SYSCON select MFD_SYSCON
select CLKSRC_EXYNOS_MCT select CLKSRC_EXYNOS_MCT
select POWER_RESET select POWER_RESET
......
...@@ -80,7 +80,7 @@ static void __init og_pci_bus_reset(void) ...@@ -80,7 +80,7 @@ static void __init og_pci_bus_reset(void)
#define S8250_VIRT 0xf4000000 #define S8250_VIRT 0xf4000000
#define S8250_SIZE 0x00100000 #define S8250_SIZE 0x00100000
static struct __initdata map_desc og_io_desc[] = { static struct map_desc og_io_desc[] __initdata = {
{ {
.virtual = S8250_VIRT, .virtual = S8250_VIRT,
.pfn = __phys_to_pfn(S8250_PHYS), .pfn = __phys_to_pfn(S8250_PHYS),
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include <mach/regs-misc.h> #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, .virtual = (unsigned long)KS8695_IO_VA,
.pfn = __phys_to_pfn(KS8695_IO_PA), .pfn = __phys_to_pfn(KS8695_IO_PA),
......
...@@ -405,9 +405,8 @@ void __init mv78xx0_init(void) ...@@ -405,9 +405,8 @@ void __init mv78xx0_init(void)
printk("HCLK = %dMHz, ", (hclk + 499999) / 1000000); printk("HCLK = %dMHz, ", (hclk + 499999) / 1000000);
printk("TCLK = %dMHz\n", (get_tclk() + 499999) / 1000000); printk("TCLK = %dMHz\n", (get_tclk() + 499999) / 1000000);
#ifdef CONFIG_CACHE_FEROCEON_L2 if (IS_ENABLED(CONFIG_CACHE_FEROCEON_L2))
feroceon_l2_init(is_l2_writethrough()); feroceon_l2_init(is_l2_writethrough());
#endif
/* Setup root of clk tree */ /* Setup root of clk tree */
clk_init(); clk_init();
......
...@@ -107,7 +107,7 @@ static struct notifier_block mvebu_hwcc_nb = { ...@@ -107,7 +107,7 @@ static struct notifier_block mvebu_hwcc_nb = {
.notifier_call = mvebu_hwcc_notifier, .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, .notifier_call = mvebu_hwcc_notifier,
}; };
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
static void __iomem *omap2_ctrl_base; static void __iomem *omap2_ctrl_base;
static s16 omap2_ctrl_offset; static s16 omap2_ctrl_offset;
static struct regmap *omap2_ctrl_syscon;
#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM) #if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM)
struct omap3_scratchpad { struct omap3_scratchpad {
...@@ -166,16 +165,9 @@ u16 omap_ctrl_readw(u16 offset) ...@@ -166,16 +165,9 @@ u16 omap_ctrl_readw(u16 offset)
u32 omap_ctrl_readl(u16 offset) u32 omap_ctrl_readl(u16 offset)
{ {
u32 val;
offset &= 0xfffc; 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) void omap_ctrl_writeb(u8 val, u16 offset)
...@@ -207,11 +199,7 @@ void omap_ctrl_writew(u16 val, u16 offset) ...@@ -207,11 +199,7 @@ void omap_ctrl_writew(u16 val, u16 offset)
void omap_ctrl_writel(u32 val, u16 offset) void omap_ctrl_writel(u32 val, u16 offset)
{ {
offset &= 0xfffc; offset &= 0xfffc;
if (!omap2_ctrl_syscon) writel_relaxed(val, omap2_ctrl_base + offset);
writel_relaxed(val, omap2_ctrl_base + offset);
else
regmap_write(omap2_ctrl_syscon, omap2_ctrl_offset + offset,
val);
} }
#ifdef CONFIG_ARCH_OMAP3 #ifdef CONFIG_ARCH_OMAP3
...@@ -715,8 +703,6 @@ int __init omap_control_init(void) ...@@ -715,8 +703,6 @@ int __init omap_control_init(void)
if (IS_ERR(syscon)) if (IS_ERR(syscon))
return PTR_ERR(syscon); return PTR_ERR(syscon);
omap2_ctrl_syscon = syscon;
if (of_get_child_by_name(scm_conf, "clocks")) { if (of_get_child_by_name(scm_conf, "clocks")) {
ret = omap2_clk_provider_init(scm_conf, ret = omap2_clk_provider_init(scm_conf,
data->index, data->index,
...@@ -724,9 +710,6 @@ int __init omap_control_init(void) ...@@ -724,9 +710,6 @@ int __init omap_control_init(void)
if (ret) if (ret)
return ret; return ret;
} }
iounmap(omap2_ctrl_base);
omap2_ctrl_base = NULL;
} else { } else {
/* No scm_conf found, direct access */ /* No scm_conf found, direct access */
ret = omap2_clk_provider_init(np, data->index, NULL, ret = omap2_clk_provider_init(np, data->index, NULL,
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "pm.h" #include "pm.h"
#include "control.h" #include "control.h"
#include "common.h" #include "common.h"
#include "soc.h"
/* Mach specific information to be recorded in the C-state driver_data */ /* Mach specific information to be recorded in the C-state driver_data */
struct omap3_idle_statedata { struct omap3_idle_statedata {
...@@ -315,6 +316,69 @@ static struct cpuidle_driver omap3_idle_driver = { ...@@ -315,6 +316,69 @@ static struct cpuidle_driver omap3_idle_driver = {
.safe_state_index = 0, .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 */ /* Public functions */
/** /**
...@@ -333,5 +397,8 @@ int __init omap3_idle_init(void) ...@@ -333,5 +397,8 @@ int __init omap3_idle_init(void)
if (!mpu_pd || !core_pd || !per_pd || !cam_pd) if (!mpu_pd || !core_pd || !per_pd || !cam_pd)
return -ENODEV; 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 = { ...@@ -3583,14 +3583,14 @@ static struct omap_hwmod_class_sysconfig omap34xx_ssi_sysc = {
.sysc_fields = &omap_hwmod_sysc_type1, .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", .name = "ssi",
.sysc = &omap34xx_ssi_sysc, .sysc = &omap34xx_ssi_sysc,
}; };
static struct omap_hwmod omap34xx_ssi_hwmod = { static struct omap_hwmod omap3xxx_ssi_hwmod = {
.name = "ssi", .name = "ssi",
.class = &omap34xx_ssi_hwmod_class, .class = &omap3xxx_ssi_hwmod_class,
.clkdm_name = "core_l4_clkdm", .clkdm_name = "core_l4_clkdm",
.main_clk = "ssi_ssr_fck", .main_clk = "ssi_ssr_fck",
.prcm = { .prcm = {
...@@ -3605,9 +3605,9 @@ static struct omap_hwmod omap34xx_ssi_hwmod = { ...@@ -3605,9 +3605,9 @@ static struct omap_hwmod omap34xx_ssi_hwmod = {
}; };
/* L4 CORE -> SSI */ /* 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, .master = &omap3xxx_l4_core_hwmod,
.slave = &omap34xx_ssi_hwmod, .slave = &omap3xxx_ssi_hwmod,
.clk = "ssi_ick", .clk = "ssi_ick",
.user = OCP_USER_MPU | OCP_USER_SDMA, .user = OCP_USER_MPU | OCP_USER_SDMA,
}; };
...@@ -3760,7 +3760,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = { ...@@ -3760,7 +3760,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_sad2d__l3, &omap3xxx_sad2d__l3,
&omap3xxx_l4_core__mmu_isp, &omap3xxx_l4_core__mmu_isp,
&omap3xxx_l3_main__mmu_iva, &omap3xxx_l3_main__mmu_iva,
&omap34xx_l4_core__ssi, &omap3xxx_l4_core__ssi,
NULL NULL
}; };
...@@ -3784,6 +3784,7 @@ static struct omap_hwmod_ocp_if *omap36xx_hwmod_ocp_ifs[] __initdata = { ...@@ -3784,6 +3784,7 @@ static struct omap_hwmod_ocp_if *omap36xx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_sad2d__l3, &omap3xxx_sad2d__l3,
&omap3xxx_l4_core__mmu_isp, &omap3xxx_l4_core__mmu_isp,
&omap3xxx_l3_main__mmu_iva, &omap3xxx_l3_main__mmu_iva,
&omap3xxx_l4_core__ssi,
NULL NULL
}; };
......
...@@ -1482,8 +1482,7 @@ static struct omap_hwmod_class_sysconfig dra7xx_ocp2scp_sysc = { ...@@ -1482,8 +1482,7 @@ static struct omap_hwmod_class_sysconfig dra7xx_ocp2scp_sysc = {
.syss_offs = 0x0014, .syss_offs = 0x0014,
.sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE | .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
...@@ -1532,29 +1531,44 @@ static struct omap_hwmod_class dra7xx_pciess_hwmod_class = { ...@@ -1532,29 +1531,44 @@ static struct omap_hwmod_class dra7xx_pciess_hwmod_class = {
}; };
/* pcie1 */ /* pcie1 */
static struct omap_hwmod_rst_info dra7xx_pciess1_resets[] = {
{ .name = "pcie", .rst_shift = 0 },
};
static struct omap_hwmod dra7xx_pciess1_hwmod = { static struct omap_hwmod dra7xx_pciess1_hwmod = {
.name = "pcie1", .name = "pcie1",
.class = &dra7xx_pciess_hwmod_class, .class = &dra7xx_pciess_hwmod_class,
.clkdm_name = "pcie_clkdm", .clkdm_name = "pcie_clkdm",
.rst_lines = dra7xx_pciess1_resets,
.rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess1_resets),
.main_clk = "l4_root_clk_div", .main_clk = "l4_root_clk_div",
.prcm = { .prcm = {
.omap4 = { .omap4 = {
.clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET, .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET,
.rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET,
.context_offs = DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET, .context_offs = DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL, .modulemode = MODULEMODE_SWCTRL,
}, },
}, },
}; };
/* pcie2 */
static struct omap_hwmod_rst_info dra7xx_pciess2_resets[] = {
{ .name = "pcie", .rst_shift = 1 },
};
/* pcie2 */ /* pcie2 */
static struct omap_hwmod dra7xx_pciess2_hwmod = { static struct omap_hwmod dra7xx_pciess2_hwmod = {
.name = "pcie2", .name = "pcie2",
.class = &dra7xx_pciess_hwmod_class, .class = &dra7xx_pciess_hwmod_class,
.clkdm_name = "pcie_clkdm", .clkdm_name = "pcie_clkdm",
.rst_lines = dra7xx_pciess2_resets,
.rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess2_resets),
.main_clk = "l4_root_clk_div", .main_clk = "l4_root_clk_div",
.prcm = { .prcm = {
.omap4 = { .omap4 = {
.clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET, .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET,
.rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET,
.context_offs = DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET, .context_offs = DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET,
.modulemode = MODULEMODE_SWCTRL, .modulemode = MODULEMODE_SWCTRL,
}, },
......
...@@ -429,6 +429,7 @@ static struct omap_hwmod dm81xx_elm_hwmod = { ...@@ -429,6 +429,7 @@ static struct omap_hwmod dm81xx_elm_hwmod = {
static struct omap_hwmod_ocp_if dm81xx_l4_ls__elm = { static struct omap_hwmod_ocp_if dm81xx_l4_ls__elm = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_elm_hwmod, .slave = &dm81xx_elm_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
...@@ -478,6 +479,7 @@ static struct omap_hwmod dm81xx_gpio1_hwmod = { ...@@ -478,6 +479,7 @@ static struct omap_hwmod dm81xx_gpio1_hwmod = {
static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio1 = { static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio1 = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_gpio1_hwmod, .slave = &dm81xx_gpio1_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
...@@ -504,6 +506,7 @@ static struct omap_hwmod dm81xx_gpio2_hwmod = { ...@@ -504,6 +506,7 @@ static struct omap_hwmod dm81xx_gpio2_hwmod = {
static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio2 = { static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio2 = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_gpio2_hwmod, .slave = &dm81xx_gpio2_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
...@@ -628,7 +631,7 @@ static struct omap_hwmod dm814x_timer1_hwmod = { ...@@ -628,7 +631,7 @@ static struct omap_hwmod dm814x_timer1_hwmod = {
static struct omap_hwmod_ocp_if dm814x_l4_ls__timer1 = { static struct omap_hwmod_ocp_if dm814x_l4_ls__timer1 = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm814x_timer1_hwmod, .slave = &dm814x_timer1_hwmod,
.clk = "timer1_fck", .clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
...@@ -665,7 +668,7 @@ static struct omap_hwmod dm814x_timer2_hwmod = { ...@@ -665,7 +668,7 @@ static struct omap_hwmod dm814x_timer2_hwmod = {
static struct omap_hwmod_ocp_if dm814x_l4_ls__timer2 = { static struct omap_hwmod_ocp_if dm814x_l4_ls__timer2 = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm814x_timer2_hwmod, .slave = &dm814x_timer2_hwmod,
.clk = "timer2_fck", .clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
...@@ -1123,6 +1126,7 @@ static struct omap_hwmod dm81xx_mailbox_hwmod = { ...@@ -1123,6 +1126,7 @@ static struct omap_hwmod dm81xx_mailbox_hwmod = {
static struct omap_hwmod_ocp_if dm81xx_l4_ls__mailbox = { static struct omap_hwmod_ocp_if dm81xx_l4_ls__mailbox = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_mailbox_hwmod, .slave = &dm81xx_mailbox_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
...@@ -1157,6 +1161,7 @@ static struct omap_hwmod dm81xx_spinbox_hwmod = { ...@@ -1157,6 +1161,7 @@ static struct omap_hwmod dm81xx_spinbox_hwmod = {
static struct omap_hwmod_ocp_if dm81xx_l4_ls__spinbox = { static struct omap_hwmod_ocp_if dm81xx_l4_ls__spinbox = {
.master = &dm81xx_l4_ls_hwmod, .master = &dm81xx_l4_ls_hwmod,
.slave = &dm81xx_spinbox_hwmod, .slave = &dm81xx_spinbox_hwmod,
.clk = "sysclk6_ck",
.user = OCP_USER_MPU, .user = OCP_USER_MPU,
}; };
......
...@@ -360,6 +360,7 @@ ...@@ -360,6 +360,7 @@
/* PRM.L3INIT_PRM register offsets */ /* PRM.L3INIT_PRM register offsets */
#define DRA7XX_PM_L3INIT_PWRSTCTRL_OFFSET 0x0000 #define DRA7XX_PM_L3INIT_PWRSTCTRL_OFFSET 0x0000
#define DRA7XX_PM_L3INIT_PWRSTST_OFFSET 0x0004 #define DRA7XX_PM_L3INIT_PWRSTST_OFFSET 0x0004
#define DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET 0x0010
#define DRA7XX_PM_L3INIT_MMC1_WKDEP_OFFSET 0x0028 #define DRA7XX_PM_L3INIT_MMC1_WKDEP_OFFSET 0x0028
#define DRA7XX_RM_L3INIT_MMC1_CONTEXT_OFFSET 0x002c #define DRA7XX_RM_L3INIT_MMC1_CONTEXT_OFFSET 0x002c
#define DRA7XX_PM_L3INIT_MMC2_WKDEP_OFFSET 0x0030 #define DRA7XX_PM_L3INIT_MMC2_WKDEP_OFFSET 0x0030
......
...@@ -28,14 +28,14 @@ config ARCH_ORION5X_DT ...@@ -28,14 +28,14 @@ config ARCH_ORION5X_DT
config MACH_DB88F5281 config MACH_DB88F5281
bool "Marvell Orion-2 Development Board" bool "Marvell Orion-2 Development Board"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Marvell Orion-2 (88F5281) Development Board Marvell Orion-2 (88F5281) Development Board
config MACH_RD88F5182 config MACH_RD88F5182
bool "Marvell Orion-NAS Reference Design" bool "Marvell Orion-NAS Reference Design"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Marvell Orion-NAS (88F5182) RD2 Marvell Orion-NAS (88F5182) RD2
...@@ -43,14 +43,14 @@ config MACH_RD88F5182 ...@@ -43,14 +43,14 @@ config MACH_RD88F5182
config MACH_RD88F5182_DT config MACH_RD88F5182_DT
bool "Marvell Orion-NAS Reference Design (Flattened Device Tree)" bool "Marvell Orion-NAS Reference Design (Flattened Device Tree)"
select ARCH_ORION5X_DT select ARCH_ORION5X_DT
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Marvell Say 'Y' here if you want your kernel to support the Marvell
Orion-NAS (88F5182) RD2, Flattened Device Tree. Orion-NAS (88F5182) RD2, Flattened Device Tree.
config MACH_KUROBOX_PRO config MACH_KUROBOX_PRO
bool "KuroBox Pro" bool "KuroBox Pro"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
KuroBox Pro platform. KuroBox Pro platform.
...@@ -58,7 +58,7 @@ config MACH_KUROBOX_PRO ...@@ -58,7 +58,7 @@ config MACH_KUROBOX_PRO
config MACH_DNS323 config MACH_DNS323
bool "D-Link DNS-323" bool "D-Link DNS-323"
select GENERIC_NET_UTILS select GENERIC_NET_UTILS
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
D-Link DNS-323 platform. D-Link DNS-323 platform.
...@@ -78,7 +78,7 @@ config MACH_TERASTATION_PRO2 ...@@ -78,7 +78,7 @@ config MACH_TERASTATION_PRO2
config MACH_LINKSTATION_PRO config MACH_LINKSTATION_PRO
bool "Buffalo Linkstation Pro/Live" bool "Buffalo Linkstation Pro/Live"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Buffalo Linkstation Pro/Live platform. Both v1 and Buffalo Linkstation Pro/Live platform. Both v1 and
...@@ -86,7 +86,7 @@ config MACH_LINKSTATION_PRO ...@@ -86,7 +86,7 @@ config MACH_LINKSTATION_PRO
config MACH_LINKSTATION_LSCHL config MACH_LINKSTATION_LSCHL
bool "Buffalo Linkstation Live v3 (LS-CHL)" bool "Buffalo Linkstation Live v3 (LS-CHL)"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Buffalo Linkstation Live v3 (LS-CHL) platform. Buffalo Linkstation Live v3 (LS-CHL) platform.
...@@ -100,7 +100,7 @@ config MACH_LINKSTATION_MINI ...@@ -100,7 +100,7 @@ config MACH_LINKSTATION_MINI
config MACH_LINKSTATION_LS_HGL config MACH_LINKSTATION_LS_HGL
bool "Buffalo Linkstation LS-HGL" bool "Buffalo Linkstation LS-HGL"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Buffalo Linkstation LS-HGL platform. Buffalo Linkstation LS-HGL platform.
...@@ -139,7 +139,7 @@ config MACH_D2NET_DT ...@@ -139,7 +139,7 @@ config MACH_D2NET_DT
config MACH_NET2BIG config MACH_NET2BIG
bool "LaCie 2Big Network" bool "LaCie 2Big Network"
select I2C_BOARDINFO select I2C_BOARDINFO if I2C
help help
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
LaCie 2Big Network NAS. LaCie 2Big Network NAS.
......
...@@ -2,6 +2,7 @@ menuconfig ARCH_SIRF ...@@ -2,6 +2,7 @@ menuconfig ARCH_SIRF
bool "CSR SiRF" bool "CSR SiRF"
depends on ARCH_MULTI_V7 depends on ARCH_MULTI_V7
select ARCH_HAS_RESET_CONTROLLER select ARCH_HAS_RESET_CONTROLLER
select RESET_CONTROLLER
select ARCH_REQUIRE_GPIOLIB select ARCH_REQUIRE_GPIOLIB
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select NO_IOPORT_MAP select NO_IOPORT_MAP
......
...@@ -405,7 +405,7 @@ config MACH_S3C2416_DT ...@@ -405,7 +405,7 @@ config MACH_S3C2416_DT
endif # CPU_S3C2416 endif # CPU_S3C2416
if CPU_S3C2440 if CPU_S3C2440 || CPU_S3C2442
config S3C2440_XTAL_12000000 config S3C2440_XTAL_12000000
bool bool
...@@ -432,6 +432,9 @@ config S3C2440_PLL_16934400 ...@@ -432,6 +432,9 @@ config S3C2440_PLL_16934400
default y if S3C24XX_PLL default y if S3C24XX_PLL
help help
PLL tables for S3C2440 or S3C2442 CPUs with 16.934MHz crystals. PLL tables for S3C2440 or S3C2442 CPUs with 16.934MHz crystals.
endif
if CPU_S3C2440
comment "S3C2440 Boards" comment "S3C2440 Boards"
...@@ -460,7 +463,6 @@ config MACH_AT2440EVB ...@@ -460,7 +463,6 @@ config MACH_AT2440EVB
config MACH_MINI2440 config MACH_MINI2440
bool "MINI2440 development board" bool "MINI2440 development board"
select EEPROM_AT24 if I2C
select LEDS_CLASS select LEDS_CLASS
select LEDS_TRIGGERS select LEDS_TRIGGERS
select LEDS_TRIGGER_BACKLIGHT select LEDS_TRIGGER_BACKLIGHT
......
...@@ -154,6 +154,7 @@ static struct s3c2410_uartcfg gta02_uartcfgs[] = { ...@@ -154,6 +154,7 @@ static struct s3c2410_uartcfg gta02_uartcfgs[] = {
#define ADC_NOM_CHG_DETECT_1A 6 #define ADC_NOM_CHG_DETECT_1A 6
#define ADC_NOM_CHG_DETECT_USB 43 #define ADC_NOM_CHG_DETECT_USB 43
#ifdef CONFIG_PCF50633_ADC
static void static void
gta02_configure_pmu_for_charger(struct pcf50633 *pcf, void *unused, int res) gta02_configure_pmu_for_charger(struct pcf50633 *pcf, void *unused, int res)
{ {
...@@ -174,6 +175,7 @@ gta02_configure_pmu_for_charger(struct pcf50633 *pcf, void *unused, int res) ...@@ -174,6 +175,7 @@ gta02_configure_pmu_for_charger(struct pcf50633 *pcf, void *unused, int res)
pcf50633_mbc_usb_curlim_set(pcf, ma); pcf50633_mbc_usb_curlim_set(pcf, ma);
} }
#endif
static struct delayed_work gta02_charger_work; static struct delayed_work gta02_charger_work;
static int gta02_usb_vbus_draw; static int gta02_usb_vbus_draw;
......
...@@ -216,7 +216,7 @@ static struct regulator_consumer_supply smdk6410_b_pwr_5v_consumers[] = { ...@@ -216,7 +216,7 @@ static struct regulator_consumer_supply smdk6410_b_pwr_5v_consumers[] = {
REGULATOR_SUPPLY("AVDD", "0-001b"), REGULATOR_SUPPLY("AVDD", "0-001b"),
}; };
static struct regulator_init_data smdk6410_b_pwr_5v_data = { static struct regulator_init_data __maybe_unused smdk6410_b_pwr_5v_data = {
.constraints = { .constraints = {
.always_on = 1, .always_on = 1,
}, },
...@@ -300,7 +300,7 @@ static struct regulator_consumer_supply smdk6410_vddarm_consumers[] = { ...@@ -300,7 +300,7 @@ static struct regulator_consumer_supply smdk6410_vddarm_consumers[] = {
}; };
/* VDDARM, BUCK1 on J5 */ /* VDDARM, BUCK1 on J5 */
static struct regulator_init_data smdk6410_vddarm = { static struct regulator_init_data __maybe_unused smdk6410_vddarm = {
.constraints = { .constraints = {
.name = "PVDD_ARM", .name = "PVDD_ARM",
.min_uV = 1000000, .min_uV = 1000000,
...@@ -313,7 +313,7 @@ static struct regulator_init_data smdk6410_vddarm = { ...@@ -313,7 +313,7 @@ static struct regulator_init_data smdk6410_vddarm = {
}; };
/* VDD_INT, BUCK2 on J5 */ /* VDD_INT, BUCK2 on J5 */
static struct regulator_init_data smdk6410_vddint = { static struct regulator_init_data __maybe_unused smdk6410_vddint = {
.constraints = { .constraints = {
.name = "PVDD_INT", .name = "PVDD_INT",
.min_uV = 1000000, .min_uV = 1000000,
...@@ -324,7 +324,7 @@ static struct regulator_init_data smdk6410_vddint = { ...@@ -324,7 +324,7 @@ static struct regulator_init_data smdk6410_vddint = {
}; };
/* VDD_HI, LDO3 on J5 */ /* VDD_HI, LDO3 on J5 */
static struct regulator_init_data smdk6410_vddhi = { static struct regulator_init_data __maybe_unused smdk6410_vddhi = {
.constraints = { .constraints = {
.name = "PVDD_HI", .name = "PVDD_HI",
.always_on = 1, .always_on = 1,
...@@ -332,7 +332,7 @@ static struct regulator_init_data smdk6410_vddhi = { ...@@ -332,7 +332,7 @@ static struct regulator_init_data smdk6410_vddhi = {
}; };
/* VDD_PLL, LDO2 on J5 */ /* VDD_PLL, LDO2 on J5 */
static struct regulator_init_data smdk6410_vddpll = { static struct regulator_init_data __maybe_unused smdk6410_vddpll = {
.constraints = { .constraints = {
.name = "PVDD_PLL", .name = "PVDD_PLL",
.always_on = 1, .always_on = 1,
...@@ -340,7 +340,7 @@ static struct regulator_init_data smdk6410_vddpll = { ...@@ -340,7 +340,7 @@ static struct regulator_init_data smdk6410_vddpll = {
}; };
/* VDD_UH_MMC, LDO5 on J5 */ /* VDD_UH_MMC, LDO5 on J5 */
static struct regulator_init_data smdk6410_vdduh_mmc = { static struct regulator_init_data __maybe_unused smdk6410_vdduh_mmc = {
.constraints = { .constraints = {
.name = "PVDD_UH+PVDD_MMC", .name = "PVDD_UH+PVDD_MMC",
.always_on = 1, .always_on = 1,
...@@ -348,7 +348,7 @@ static struct regulator_init_data smdk6410_vdduh_mmc = { ...@@ -348,7 +348,7 @@ static struct regulator_init_data smdk6410_vdduh_mmc = {
}; };
/* VCCM3BT, LDO8 on J5 */ /* VCCM3BT, LDO8 on J5 */
static struct regulator_init_data smdk6410_vccmc3bt = { static struct regulator_init_data __maybe_unused smdk6410_vccmc3bt = {
.constraints = { .constraints = {
.name = "PVCCM3BT", .name = "PVCCM3BT",
.always_on = 1, .always_on = 1,
...@@ -356,7 +356,7 @@ static struct regulator_init_data smdk6410_vccmc3bt = { ...@@ -356,7 +356,7 @@ static struct regulator_init_data smdk6410_vccmc3bt = {
}; };
/* VCCM2MTV, LDO11 on J5 */ /* VCCM2MTV, LDO11 on J5 */
static struct regulator_init_data smdk6410_vccm2mtv = { static struct regulator_init_data __maybe_unused smdk6410_vccm2mtv = {
.constraints = { .constraints = {
.name = "PVCCM2MTV", .name = "PVCCM2MTV",
.always_on = 1, .always_on = 1,
...@@ -364,7 +364,7 @@ static struct regulator_init_data smdk6410_vccm2mtv = { ...@@ -364,7 +364,7 @@ static struct regulator_init_data smdk6410_vccm2mtv = {
}; };
/* VDD_LCD, LDO12 on J5 */ /* VDD_LCD, LDO12 on J5 */
static struct regulator_init_data smdk6410_vddlcd = { static struct regulator_init_data __maybe_unused smdk6410_vddlcd = {
.constraints = { .constraints = {
.name = "PVDD_LCD", .name = "PVDD_LCD",
.always_on = 1, .always_on = 1,
...@@ -372,7 +372,7 @@ static struct regulator_init_data smdk6410_vddlcd = { ...@@ -372,7 +372,7 @@ static struct regulator_init_data smdk6410_vddlcd = {
}; };
/* VDD_OTGI, LDO9 on J5 */ /* VDD_OTGI, LDO9 on J5 */
static struct regulator_init_data smdk6410_vddotgi = { static struct regulator_init_data __maybe_unused smdk6410_vddotgi = {
.constraints = { .constraints = {
.name = "PVDD_OTGI", .name = "PVDD_OTGI",
.always_on = 1, .always_on = 1,
...@@ -380,7 +380,7 @@ static struct regulator_init_data smdk6410_vddotgi = { ...@@ -380,7 +380,7 @@ static struct regulator_init_data smdk6410_vddotgi = {
}; };
/* VDD_OTG, LDO14 on J5 */ /* VDD_OTG, LDO14 on J5 */
static struct regulator_init_data smdk6410_vddotg = { static struct regulator_init_data __maybe_unused smdk6410_vddotg = {
.constraints = { .constraints = {
.name = "PVDD_OTG", .name = "PVDD_OTG",
.always_on = 1, .always_on = 1,
...@@ -388,7 +388,7 @@ static struct regulator_init_data smdk6410_vddotg = { ...@@ -388,7 +388,7 @@ static struct regulator_init_data smdk6410_vddotg = {
}; };
/* VDD_ALIVE, LDO15 on J5 */ /* VDD_ALIVE, LDO15 on J5 */
static struct regulator_init_data smdk6410_vddalive = { static struct regulator_init_data __maybe_unused smdk6410_vddalive = {
.constraints = { .constraints = {
.name = "PVDD_ALIVE", .name = "PVDD_ALIVE",
.always_on = 1, .always_on = 1,
...@@ -396,7 +396,7 @@ static struct regulator_init_data smdk6410_vddalive = { ...@@ -396,7 +396,7 @@ static struct regulator_init_data smdk6410_vddalive = {
}; };
/* VDD_AUDIO, VLDO_AUDIO on J5 */ /* VDD_AUDIO, VLDO_AUDIO on J5 */
static struct regulator_init_data smdk6410_vddaudio = { static struct regulator_init_data __maybe_unused smdk6410_vddaudio = {
.constraints = { .constraints = {
.name = "PVDD_AUDIO", .name = "PVDD_AUDIO",
.always_on = 1, .always_on = 1,
...@@ -406,7 +406,7 @@ static struct regulator_init_data smdk6410_vddaudio = { ...@@ -406,7 +406,7 @@ static struct regulator_init_data smdk6410_vddaudio = {
#ifdef CONFIG_SMDK6410_WM1190_EV1 #ifdef CONFIG_SMDK6410_WM1190_EV1
/* S3C64xx internal logic & PLL */ /* S3C64xx internal logic & PLL */
static struct regulator_init_data wm8350_dcdc1_data = { static struct regulator_init_data __maybe_unused wm8350_dcdc1_data = {
.constraints = { .constraints = {
.name = "PVDD_INT+PVDD_PLL", .name = "PVDD_INT+PVDD_PLL",
.min_uV = 1200000, .min_uV = 1200000,
...@@ -417,7 +417,7 @@ static struct regulator_init_data wm8350_dcdc1_data = { ...@@ -417,7 +417,7 @@ static struct regulator_init_data wm8350_dcdc1_data = {
}; };
/* Memory */ /* Memory */
static struct regulator_init_data wm8350_dcdc3_data = { static struct regulator_init_data __maybe_unused wm8350_dcdc3_data = {
.constraints = { .constraints = {
.name = "PVDD_MEM", .name = "PVDD_MEM",
.min_uV = 1800000, .min_uV = 1800000,
...@@ -437,7 +437,7 @@ static struct regulator_consumer_supply wm8350_dcdc4_consumers[] = { ...@@ -437,7 +437,7 @@ static struct regulator_consumer_supply wm8350_dcdc4_consumers[] = {
REGULATOR_SUPPLY("DVDD", "0-001b"), REGULATOR_SUPPLY("DVDD", "0-001b"),
}; };
static struct regulator_init_data wm8350_dcdc4_data = { static struct regulator_init_data __maybe_unused wm8350_dcdc4_data = {
.constraints = { .constraints = {
.name = "PVDD_HI+PVDD_EXT+PVDD_SYS+PVCCM2MTV", .name = "PVDD_HI+PVDD_EXT+PVDD_SYS+PVCCM2MTV",
.min_uV = 3000000, .min_uV = 3000000,
...@@ -449,7 +449,7 @@ static struct regulator_init_data wm8350_dcdc4_data = { ...@@ -449,7 +449,7 @@ static struct regulator_init_data wm8350_dcdc4_data = {
}; };
/* OTGi/1190-EV1 HPVDD & AVDD */ /* OTGi/1190-EV1 HPVDD & AVDD */
static struct regulator_init_data wm8350_ldo4_data = { static struct regulator_init_data __maybe_unused wm8350_ldo4_data = {
.constraints = { .constraints = {
.name = "PVDD_OTGI+HPVDD+AVDD", .name = "PVDD_OTGI+HPVDD+AVDD",
.min_uV = 1200000, .min_uV = 1200000,
...@@ -537,7 +537,7 @@ static struct wm831x_backlight_pdata wm1192_backlight_pdata = { ...@@ -537,7 +537,7 @@ static struct wm831x_backlight_pdata wm1192_backlight_pdata = {
.max_uA = 27554, .max_uA = 27554,
}; };
static struct regulator_init_data wm1192_dcdc3 = { static struct regulator_init_data __maybe_unused wm1192_dcdc3 = {
.constraints = { .constraints = {
.name = "PVDD_MEM+PVDD_GPS", .name = "PVDD_MEM+PVDD_GPS",
.always_on = 1, .always_on = 1,
...@@ -548,7 +548,7 @@ static struct regulator_consumer_supply wm1192_ldo1_consumers[] = { ...@@ -548,7 +548,7 @@ static struct regulator_consumer_supply wm1192_ldo1_consumers[] = {
REGULATOR_SUPPLY("DVDD", "0-001b"), /* WM8580 */ REGULATOR_SUPPLY("DVDD", "0-001b"), /* WM8580 */
}; };
static struct regulator_init_data wm1192_ldo1 = { static struct regulator_init_data __maybe_unused wm1192_ldo1 = {
.constraints = { .constraints = {
.name = "PVDD_LCD+PVDD_EXT", .name = "PVDD_LCD+PVDD_EXT",
.always_on = 1, .always_on = 1,
......
...@@ -94,6 +94,7 @@ static void __init socfpga_smp_prepare_cpus(unsigned int max_cpus) ...@@ -94,6 +94,7 @@ static void __init socfpga_smp_prepare_cpus(unsigned int max_cpus)
scu_enable(socfpga_scu_base_addr); scu_enable(socfpga_scu_base_addr);
} }
#ifdef CONFIG_HOTPLUG_CPU
/* /*
* platform-specific code to shutdown a CPU * platform-specific code to shutdown a CPU
* *
...@@ -116,6 +117,7 @@ static int socfpga_cpu_kill(unsigned int cpu) ...@@ -116,6 +117,7 @@ static int socfpga_cpu_kill(unsigned int cpu)
{ {
return 1; return 1;
} }
#endif
static const struct smp_operations socfpga_smp_ops __initconst = { static const struct smp_operations socfpga_smp_ops __initconst = {
.smp_prepare_cpus = socfpga_smp_prepare_cpus, .smp_prepare_cpus = socfpga_smp_prepare_cpus,
......
...@@ -76,17 +76,19 @@ static struct arm_pmu_platdata db8500_pmu_platdata = { ...@@ -76,17 +76,19 @@ static struct arm_pmu_platdata db8500_pmu_platdata = {
static const char *db8500_read_soc_id(void) static const char *db8500_read_soc_id(void)
{ {
void __iomem *uid; void __iomem *uid;
const char *retstr;
uid = ioremap(U8500_BB_UID_BASE, 0x20); uid = ioremap(U8500_BB_UID_BASE, 0x20);
if (!uid) if (!uid)
return NULL; return NULL;
/* Throw these device-specific numbers into the entropy pool */ /* Throw these device-specific numbers into the entropy pool */
add_device_randomness(uid, 0x14); add_device_randomness(uid, 0x14);
return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", retstr = kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x",
readl((u32 *)uid+0), readl((u32 *)uid+0),
readl((u32 *)uid+1), readl((u32 *)uid+2), readl((u32 *)uid+1), readl((u32 *)uid+2),
readl((u32 *)uid+3), readl((u32 *)uid+4)); readl((u32 *)uid+3), readl((u32 *)uid+4));
iounmap(uid); iounmap(uid);
return retstr;
} }
static struct device * __init db8500_soc_device_init(void) static struct device * __init db8500_soc_device_init(void)
......
...@@ -93,13 +93,13 @@ struct knav_reg_pdsp_regs { ...@@ -93,13 +93,13 @@ struct knav_reg_pdsp_regs {
struct knav_reg_acc_command { struct knav_reg_acc_command {
u32 command; u32 command;
u32 queue_mask; u32 queue_mask;
u32 list_phys; u32 list_dma;
u32 queue_num; u32 queue_num;
u32 timer_config; u32 timer_config;
}; };
struct knav_link_ram_block { struct knav_link_ram_block {
dma_addr_t phys; dma_addr_t dma;
void *virt; void *virt;
size_t size; size_t size;
}; };
......
...@@ -122,8 +122,8 @@ static irqreturn_t knav_acc_int_handler(int irq, void *_instdata) ...@@ -122,8 +122,8 @@ static irqreturn_t knav_acc_int_handler(int irq, void *_instdata)
channel = acc->channel; channel = acc->channel;
list_dma = acc->list_dma[acc->list_index]; list_dma = acc->list_dma[acc->list_index];
list_cpu = acc->list_cpu[acc->list_index]; list_cpu = acc->list_cpu[acc->list_index];
dev_dbg(kdev->dev, "acc-irq: channel %d, list %d, virt %p, phys %x\n", dev_dbg(kdev->dev, "acc-irq: channel %d, list %d, virt %p, dma %pad\n",
channel, acc->list_index, list_cpu, list_dma); channel, acc->list_index, list_cpu, &list_dma);
if (atomic_read(&acc->retrigger_count)) { if (atomic_read(&acc->retrigger_count)) {
atomic_dec(&acc->retrigger_count); atomic_dec(&acc->retrigger_count);
__knav_acc_notify(range, acc); __knav_acc_notify(range, acc);
...@@ -297,12 +297,12 @@ knav_acc_write(struct knav_device *kdev, struct knav_pdsp_info *pdsp, ...@@ -297,12 +297,12 @@ knav_acc_write(struct knav_device *kdev, struct knav_pdsp_info *pdsp,
u32 result; u32 result;
dev_dbg(kdev->dev, "acc command %08x %08x %08x %08x %08x\n", dev_dbg(kdev->dev, "acc command %08x %08x %08x %08x %08x\n",
cmd->command, cmd->queue_mask, cmd->list_phys, cmd->command, cmd->queue_mask, cmd->list_dma,
cmd->queue_num, cmd->timer_config); cmd->queue_num, cmd->timer_config);
writel_relaxed(cmd->timer_config, &pdsp->acc_command->timer_config); writel_relaxed(cmd->timer_config, &pdsp->acc_command->timer_config);
writel_relaxed(cmd->queue_num, &pdsp->acc_command->queue_num); writel_relaxed(cmd->queue_num, &pdsp->acc_command->queue_num);
writel_relaxed(cmd->list_phys, &pdsp->acc_command->list_phys); writel_relaxed(cmd->list_dma, &pdsp->acc_command->list_dma);
writel_relaxed(cmd->queue_mask, &pdsp->acc_command->queue_mask); writel_relaxed(cmd->queue_mask, &pdsp->acc_command->queue_mask);
writel_relaxed(cmd->command, &pdsp->acc_command->command); writel_relaxed(cmd->command, &pdsp->acc_command->command);
...@@ -337,7 +337,7 @@ static void knav_acc_setup_cmd(struct knav_device *kdev, ...@@ -337,7 +337,7 @@ static void knav_acc_setup_cmd(struct knav_device *kdev,
memset(cmd, 0, sizeof(*cmd)); memset(cmd, 0, sizeof(*cmd));
cmd->command = acc->channel; cmd->command = acc->channel;
cmd->queue_mask = queue_mask; cmd->queue_mask = queue_mask;
cmd->list_phys = acc->list_dma[0]; cmd->list_dma = (u32)acc->list_dma[0];
cmd->queue_num = info->list_entries << 16; cmd->queue_num = info->list_entries << 16;
cmd->queue_num |= queue_base; cmd->queue_num |= queue_base;
...@@ -591,8 +591,8 @@ int knav_init_acc_range(struct knav_device *kdev, ...@@ -591,8 +591,8 @@ int knav_init_acc_range(struct knav_device *kdev,
acc->list_cpu[1] = list_mem + list_size; acc->list_cpu[1] = list_mem + list_size;
acc->list_dma[0] = list_dma; acc->list_dma[0] = list_dma;
acc->list_dma[1] = list_dma + list_size; acc->list_dma[1] = list_dma + list_size;
dev_dbg(kdev->dev, "%s: channel %d, phys %08x, virt %8p\n", dev_dbg(kdev->dev, "%s: channel %d, dma %pad, virt %8p\n",
acc->name, acc->channel, list_dma, list_mem); acc->name, acc->channel, &list_dma, list_mem);
} }
range->ops = &knav_acc_range_ops; range->ops = &knav_acc_range_ops;
......
...@@ -1023,9 +1023,9 @@ static void knav_queue_setup_region(struct knav_device *kdev, ...@@ -1023,9 +1023,9 @@ static void knav_queue_setup_region(struct knav_device *kdev,
list_add(&pool->region_inst, &region->pools); list_add(&pool->region_inst, &region->pools);
dev_dbg(kdev->dev, dev_dbg(kdev->dev,
"region %s (%d): size:%d, link:%d@%d, phys:%08x-%08x, virt:%p-%p\n", "region %s (%d): size:%d, link:%d@%d, dma:%pad-%pad, virt:%p-%p\n",
region->name, id, region->desc_size, region->num_desc, region->name, id, region->desc_size, region->num_desc,
region->link_index, region->dma_start, region->dma_end, region->link_index, &region->dma_start, &region->dma_end,
region->virt_start, region->virt_end); region->virt_start, region->virt_end);
hw_desc_size = (region->desc_size / 16) - 1; hw_desc_size = (region->desc_size / 16) - 1;
...@@ -1033,7 +1033,7 @@ static void knav_queue_setup_region(struct knav_device *kdev, ...@@ -1033,7 +1033,7 @@ static void knav_queue_setup_region(struct knav_device *kdev,
for_each_qmgr(kdev, qmgr) { for_each_qmgr(kdev, qmgr) {
regs = qmgr->reg_region + id; regs = qmgr->reg_region + id;
writel_relaxed(region->dma_start, &regs->base); writel_relaxed((u32)region->dma_start, &regs->base);
writel_relaxed(region->link_index, &regs->start_index); writel_relaxed(region->link_index, &regs->start_index);
writel_relaxed(hw_desc_size << 16 | hw_num_desc, writel_relaxed(hw_desc_size << 16 | hw_num_desc,
&regs->size_count); &regs->size_count);
...@@ -1145,14 +1145,14 @@ static int knav_get_link_ram(struct knav_device *kdev, ...@@ -1145,14 +1145,14 @@ static int knav_get_link_ram(struct knav_device *kdev,
* queue_base specified => using internal or onchip * queue_base specified => using internal or onchip
* link ram WARNING - we do not "reserve" this block * link ram WARNING - we do not "reserve" this block
*/ */
block->phys = (dma_addr_t)temp[0]; block->dma = (dma_addr_t)temp[0];
block->virt = NULL; block->virt = NULL;
block->size = temp[1]; block->size = temp[1];
} else { } else {
block->size = temp[1]; block->size = temp[1];
/* queue_base not specific => allocate requested size */ /* queue_base not specific => allocate requested size */
block->virt = dmam_alloc_coherent(kdev->dev, block->virt = dmam_alloc_coherent(kdev->dev,
8 * block->size, &block->phys, 8 * block->size, &block->dma,
GFP_KERNEL); GFP_KERNEL);
if (!block->virt) { if (!block->virt) {
dev_err(kdev->dev, "failed to alloc linkram\n"); dev_err(kdev->dev, "failed to alloc linkram\n");
...@@ -1172,18 +1172,18 @@ static int knav_queue_setup_link_ram(struct knav_device *kdev) ...@@ -1172,18 +1172,18 @@ static int knav_queue_setup_link_ram(struct knav_device *kdev)
for_each_qmgr(kdev, qmgr) { for_each_qmgr(kdev, qmgr) {
block = &kdev->link_rams[0]; block = &kdev->link_rams[0];
dev_dbg(kdev->dev, "linkram0: phys:%x, virt:%p, size:%x\n", dev_dbg(kdev->dev, "linkram0: dma:%pad, virt:%p, size:%x\n",
block->phys, block->virt, block->size); &block->dma, block->virt, block->size);
writel_relaxed(block->phys, &qmgr->reg_config->link_ram_base0); writel_relaxed((u32)block->dma, &qmgr->reg_config->link_ram_base0);
writel_relaxed(block->size, &qmgr->reg_config->link_ram_size0); writel_relaxed(block->size, &qmgr->reg_config->link_ram_size0);
block++; block++;
if (!block->size) if (!block->size)
continue; continue;
dev_dbg(kdev->dev, "linkram1: phys:%x, virt:%p, size:%x\n", dev_dbg(kdev->dev, "linkram1: dma:%pad, virt:%p, size:%x\n",
block->phys, block->virt, block->size); &block->dma, block->virt, block->size);
writel_relaxed(block->phys, &qmgr->reg_config->link_ram_base1); writel_relaxed(block->dma, &qmgr->reg_config->link_ram_base1);
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment