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 branch 'perf/urgent' into perf/core
Merge reason: We want to queue up a dependent patch. Also update to
later -rc's.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -493,3 +493,52 @@ Why: These two features use non-standard interfaces. There are the
|
||||
Who: Corentin Chary <corentin.chary@gmail.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: usbvideo quickcam_messenger driver
|
||||
When: 2.6.35
|
||||
Files: drivers/media/video/usbvideo/quickcam_messenger.[ch]
|
||||
Why: obsolete v4l1 driver replaced by gspca_stv06xx
|
||||
Who: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: ov511 v4l1 driver
|
||||
When: 2.6.35
|
||||
Files: drivers/media/video/ov511.[ch]
|
||||
Why: obsolete v4l1 driver replaced by gspca_ov519
|
||||
Who: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: w9968cf v4l1 driver
|
||||
When: 2.6.35
|
||||
Files: drivers/media/video/w9968cf*.[ch]
|
||||
Why: obsolete v4l1 driver replaced by gspca_ov519
|
||||
Who: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: ovcamchip sensor framework
|
||||
When: 2.6.35
|
||||
Files: drivers/media/video/ovcamchip/*
|
||||
Why: Only used by obsoleted v4l1 drivers
|
||||
Who: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: stv680 v4l1 driver
|
||||
When: 2.6.35
|
||||
Files: drivers/media/video/stv680.[ch]
|
||||
Why: obsolete v4l1 driver replaced by gspca_stv0680
|
||||
Who: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: zc0301 v4l driver
|
||||
When: 2.6.35
|
||||
Files: drivers/media/video/zc0301/*
|
||||
Why: Duplicate functionality with the gspca_zc3xx driver, zc0301 only
|
||||
supports 2 USB-ID's (because it only supports a limited set of
|
||||
sensors) wich are also supported by the gspca_zc3xx driver
|
||||
(which supports 53 USB-ID's in total)
|
||||
Who: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
+8
-10
@@ -410,9 +410,8 @@ F: drivers/i2c/busses/i2c-ali1563.c
|
||||
|
||||
ALPHA PORT
|
||||
M: Richard Henderson <rth@twiddle.net>
|
||||
S: Odd Fixes for 2.4; Maintained for 2.6.
|
||||
M: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
|
||||
S: Maintained for 2.4; PCI support for 2.6.
|
||||
M: Matt Turner <mattst88@gmail.com>
|
||||
L: linux-alpha@vger.kernel.org
|
||||
F: arch/alpha/
|
||||
|
||||
@@ -988,7 +987,6 @@ F: drivers/platform/x86/asus-laptop.c
|
||||
|
||||
ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
M: Maciej Sosnowski <maciej.sosnowski@intel.com>
|
||||
W: http://sourceforge.net/projects/xscaleiop
|
||||
S: Supported
|
||||
F: Documentation/crypto/async-tx-api.txt
|
||||
@@ -1638,9 +1636,8 @@ S: Maintained
|
||||
F: sound/pci/cs5535audio/
|
||||
|
||||
CX18 VIDEO4LINUX DRIVER
|
||||
M: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
M: Andy Walls <awalls@radix.net>
|
||||
L: ivtv-devel@ivtvdriver.org
|
||||
L: ivtv-devel@ivtvdriver.org (moderated for non-subscribers)
|
||||
L: linux-media@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
|
||||
W: http://linuxtv.org
|
||||
@@ -1825,7 +1822,6 @@ S: Supported
|
||||
F: fs/dlm/
|
||||
|
||||
DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
|
||||
M: Maciej Sosnowski <maciej.sosnowski@intel.com>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
S: Supported
|
||||
F: drivers/dma/
|
||||
@@ -2788,7 +2784,7 @@ F: arch/x86/kernel/microcode_core.c
|
||||
F: arch/x86/kernel/microcode_intel.c
|
||||
|
||||
INTEL I/OAT DMA DRIVER
|
||||
M: Maciej Sosnowski <maciej.sosnowski@intel.com>
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
S: Supported
|
||||
F: drivers/dma/ioat*
|
||||
|
||||
@@ -2826,10 +2822,11 @@ L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/ixp2000/
|
||||
|
||||
INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/ixgb/ixgbe)
|
||||
INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/igbvf/ixgb/ixgbe)
|
||||
M: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
|
||||
M: Jesse Brandeburg <jesse.brandeburg@intel.com>
|
||||
M: Bruce Allan <bruce.w.allan@intel.com>
|
||||
M: Alex Duyck <alexander.h.duyck@intel.com>
|
||||
M: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
|
||||
M: John Ronciak <john.ronciak@intel.com>
|
||||
L: e1000-devel@lists.sourceforge.net
|
||||
@@ -2839,6 +2836,7 @@ F: drivers/net/e100.c
|
||||
F: drivers/net/e1000/
|
||||
F: drivers/net/e1000e/
|
||||
F: drivers/net/igb/
|
||||
F: drivers/net/igbvf/
|
||||
F: drivers/net/ixgb/
|
||||
F: drivers/net/ixgbe/
|
||||
|
||||
@@ -3012,8 +3010,8 @@ S: Maintained
|
||||
F: drivers/isdn/hardware/eicon/
|
||||
|
||||
IVTV VIDEO4LINUX DRIVER
|
||||
M: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
L: ivtv-devel@ivtvdriver.org
|
||||
M: Andy Walls <awalls@radix.net>
|
||||
L: ivtv-devel@ivtvdriver.org (moderated for non-subscribers)
|
||||
L: linux-media@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
|
||||
W: http://www.ivtvdriver.org
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 33
|
||||
EXTRAVERSION = -rc4
|
||||
EXTRAVERSION = -rc5
|
||||
NAME = Man-Eating Seals of Antiquity
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@@ -18,10 +18,9 @@ MAKEFLAGS += -rR --no-print-directory
|
||||
|
||||
# Avoid funny character set dependencies
|
||||
unexport LC_ALL
|
||||
LC_CTYPE=C
|
||||
LC_COLLATE=C
|
||||
LC_NUMERIC=C
|
||||
export LC_CTYPE LC_COLLATE LC_NUMERIC
|
||||
export LC_COLLATE LC_NUMERIC
|
||||
|
||||
# We are using a recursive build, so we need to do a little thinking
|
||||
# to get the ordering right.
|
||||
|
||||
@@ -28,6 +28,9 @@ static const struct cpumask *cpumask_of_node(int node)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
if (node == -1)
|
||||
return cpu_all_mask;
|
||||
|
||||
cpumask_clear(&node_to_cpumask_map[node]);
|
||||
|
||||
for_each_online_cpu(cpu) {
|
||||
|
||||
+35
-35
@@ -729,14 +729,26 @@ config ARCH_U8500
|
||||
|
||||
endchoice
|
||||
|
||||
source "arch/arm/mach-aaec2000/Kconfig"
|
||||
|
||||
source "arch/arm/mach-at91/Kconfig"
|
||||
|
||||
source "arch/arm/mach-bcmring/Kconfig"
|
||||
|
||||
source "arch/arm/mach-clps711x/Kconfig"
|
||||
|
||||
source "arch/arm/mach-davinci/Kconfig"
|
||||
|
||||
source "arch/arm/mach-dove/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ep93xx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-footbridge/Kconfig"
|
||||
|
||||
source "arch/arm/mach-gemini/Kconfig"
|
||||
|
||||
source "arch/arm/mach-h720x/Kconfig"
|
||||
|
||||
source "arch/arm/mach-integrator/Kconfig"
|
||||
|
||||
source "arch/arm/mach-iop32x/Kconfig"
|
||||
@@ -751,16 +763,26 @@ source "arch/arm/mach-ixp2000/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ixp23xx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-kirkwood/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ks8695/Kconfig"
|
||||
|
||||
source "arch/arm/mach-lh7a40x/Kconfig"
|
||||
|
||||
source "arch/arm/mach-loki/Kconfig"
|
||||
|
||||
source "arch/arm/mach-msm/Kconfig"
|
||||
|
||||
source "arch/arm/mach-mv78xx0/Kconfig"
|
||||
|
||||
source "arch/arm/mach-pxa/Kconfig"
|
||||
source "arch/arm/plat-pxa/Kconfig"
|
||||
source "arch/arm/plat-mxc/Kconfig"
|
||||
|
||||
source "arch/arm/mach-mmp/Kconfig"
|
||||
source "arch/arm/mach-netx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-sa1100/Kconfig"
|
||||
source "arch/arm/mach-nomadik/Kconfig"
|
||||
source "arch/arm/plat-nomadik/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ns9xxx/Kconfig"
|
||||
|
||||
source "arch/arm/plat-omap/Kconfig"
|
||||
|
||||
@@ -770,9 +792,14 @@ source "arch/arm/mach-omap2/Kconfig"
|
||||
|
||||
source "arch/arm/mach-orion5x/Kconfig"
|
||||
|
||||
source "arch/arm/mach-kirkwood/Kconfig"
|
||||
source "arch/arm/mach-pxa/Kconfig"
|
||||
source "arch/arm/plat-pxa/Kconfig"
|
||||
|
||||
source "arch/arm/mach-dove/Kconfig"
|
||||
source "arch/arm/mach-mmp/Kconfig"
|
||||
|
||||
source "arch/arm/mach-realview/Kconfig"
|
||||
|
||||
source "arch/arm/mach-sa1100/Kconfig"
|
||||
|
||||
source "arch/arm/plat-samsung/Kconfig"
|
||||
source "arch/arm/plat-s3c24xx/Kconfig"
|
||||
@@ -800,41 +827,14 @@ if ARCH_S5PC1XX
|
||||
source "arch/arm/mach-s5pc100/Kconfig"
|
||||
endif
|
||||
|
||||
source "arch/arm/mach-lh7a40x/Kconfig"
|
||||
source "arch/arm/mach-u300/Kconfig"
|
||||
|
||||
source "arch/arm/mach-h720x/Kconfig"
|
||||
source "arch/arm/mach-ux500/Kconfig"
|
||||
|
||||
source "arch/arm/mach-versatile/Kconfig"
|
||||
|
||||
source "arch/arm/mach-aaec2000/Kconfig"
|
||||
|
||||
source "arch/arm/mach-realview/Kconfig"
|
||||
|
||||
source "arch/arm/mach-at91/Kconfig"
|
||||
|
||||
source "arch/arm/plat-mxc/Kconfig"
|
||||
|
||||
source "arch/arm/mach-nomadik/Kconfig"
|
||||
source "arch/arm/plat-nomadik/Kconfig"
|
||||
|
||||
source "arch/arm/mach-netx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ns9xxx/Kconfig"
|
||||
|
||||
source "arch/arm/mach-davinci/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ks8695/Kconfig"
|
||||
|
||||
source "arch/arm/mach-msm/Kconfig"
|
||||
|
||||
source "arch/arm/mach-u300/Kconfig"
|
||||
|
||||
source "arch/arm/mach-w90x900/Kconfig"
|
||||
|
||||
source "arch/arm/mach-bcmring/Kconfig"
|
||||
|
||||
source "arch/arm/mach-ux500/Kconfig"
|
||||
|
||||
# Definitions to make life easier
|
||||
config ARCH_ACORN
|
||||
bool
|
||||
|
||||
+2
-2
@@ -146,6 +146,7 @@ machine-$(CONFIG_ARCH_MX1) := mx1
|
||||
machine-$(CONFIG_ARCH_MX2) := mx2
|
||||
machine-$(CONFIG_ARCH_MX25) := mx25
|
||||
machine-$(CONFIG_ARCH_MX3) := mx3
|
||||
machine-$(CONFIG_ARCH_MXC91231) := mxc91231
|
||||
machine-$(CONFIG_ARCH_NETX) := netx
|
||||
machine-$(CONFIG_ARCH_NOMADIK) := nomadik
|
||||
machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx
|
||||
@@ -171,12 +172,12 @@ machine-$(CONFIG_ARCH_U8500) := ux500
|
||||
machine-$(CONFIG_ARCH_VERSATILE) := versatile
|
||||
machine-$(CONFIG_ARCH_W90X900) := w90x900
|
||||
machine-$(CONFIG_FOOTBRIDGE) := footbridge
|
||||
machine-$(CONFIG_ARCH_MXC91231) := mxc91231
|
||||
|
||||
# Platform directory name. This list is sorted alphanumerically
|
||||
# by CONFIG_* macro name.
|
||||
plat-$(CONFIG_ARCH_MXC) := mxc
|
||||
plat-$(CONFIG_ARCH_OMAP) := omap
|
||||
plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx
|
||||
plat-$(CONFIG_PLAT_IOP) := iop
|
||||
plat-$(CONFIG_PLAT_NOMADIK) := nomadik
|
||||
plat-$(CONFIG_PLAT_ORION) := orion
|
||||
@@ -184,7 +185,6 @@ plat-$(CONFIG_PLAT_PXA) := pxa
|
||||
plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c samsung
|
||||
plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c samsung
|
||||
plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c samsung
|
||||
plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx
|
||||
|
||||
ifeq ($(CONFIG_ARCH_EBSA110),y)
|
||||
# This is what happens if you forget the IOCS16 line.
|
||||
|
||||
@@ -27,6 +27,14 @@
|
||||
.macro writeb, ch, rb
|
||||
mcr p14, 0, \ch, c0, c5, 0
|
||||
.endm
|
||||
#elif defined(CONFIG_CPU_V7)
|
||||
.macro loadsp, rb
|
||||
.endm
|
||||
.macro writeb, ch, rb
|
||||
wait: mrc p14, 0, pc, c0, c1, 0
|
||||
bcs wait
|
||||
mcr p14, 0, \ch, c0, c5, 0
|
||||
.endm
|
||||
#elif defined(CONFIG_CPU_XSCALE)
|
||||
.macro loadsp, rb
|
||||
.endm
|
||||
|
||||
@@ -53,6 +53,18 @@ static void icedcc_putc(int ch)
|
||||
|
||||
asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch));
|
||||
}
|
||||
|
||||
#elif defined(CONFIG_CPU_V7)
|
||||
|
||||
static void icedcc_putc(int ch)
|
||||
{
|
||||
asm(
|
||||
"wait: mrc p14, 0, pc, c0, c1, 0 \n\
|
||||
bcs wait \n\
|
||||
mcr p14, 0, %0, c0, c5, 0 "
|
||||
: : "r" (ch));
|
||||
}
|
||||
|
||||
#elif defined(CONFIG_CPU_XSCALE)
|
||||
|
||||
static void icedcc_putc(int ch)
|
||||
@@ -88,7 +100,6 @@ static void icedcc_putc(int ch)
|
||||
#endif
|
||||
|
||||
#define putc(ch) icedcc_putc(ch)
|
||||
#define flush() do { } while (0)
|
||||
#endif
|
||||
|
||||
static void putstr(const char *ptr)
|
||||
|
||||
@@ -154,16 +154,16 @@
|
||||
* Please note that the implementation of these, and the required
|
||||
* effects are cache-type (VIVT/VIPT/PIPT) specific.
|
||||
*
|
||||
* flush_cache_kern_all()
|
||||
* flush_kern_all()
|
||||
*
|
||||
* Unconditionally clean and invalidate the entire cache.
|
||||
*
|
||||
* flush_cache_user_mm(mm)
|
||||
* flush_user_all()
|
||||
*
|
||||
* Clean and invalidate all user space cache entries
|
||||
* before a change of page tables.
|
||||
*
|
||||
* flush_cache_user_range(start, end, flags)
|
||||
* flush_user_range(start, end, flags)
|
||||
*
|
||||
* Clean and invalidate a range of cache entries in the
|
||||
* specified address space before a change of page tables.
|
||||
@@ -179,6 +179,20 @@
|
||||
* - start - virtual start address
|
||||
* - end - virtual end address
|
||||
*
|
||||
* coherent_user_range(start, end)
|
||||
*
|
||||
* Ensure coherency between the Icache and the Dcache in the
|
||||
* region described by start, end. If you have non-snooping
|
||||
* Harvard caches, you need to implement this function.
|
||||
* - start - virtual start address
|
||||
* - end - virtual end address
|
||||
*
|
||||
* flush_kern_dcache_area(kaddr, size)
|
||||
*
|
||||
* Ensure that the data held in page is written back.
|
||||
* - kaddr - page address
|
||||
* - size - region size
|
||||
*
|
||||
* DMA Cache Coherency
|
||||
* ===================
|
||||
*
|
||||
|
||||
@@ -49,6 +49,26 @@
|
||||
1002:
|
||||
.endm
|
||||
|
||||
#elif defined(CONFIG_CPU_V7)
|
||||
|
||||
.macro addruart, rx
|
||||
.endm
|
||||
|
||||
.macro senduart, rd, rx
|
||||
mcr p14, 0, \rd, c0, c5, 0
|
||||
.endm
|
||||
|
||||
.macro busyuart, rd, rx
|
||||
busy: mrc p14, 0, pc, c0, c1, 0
|
||||
bcs busy
|
||||
.endm
|
||||
|
||||
.macro waituart, rd, rx
|
||||
wait: mrc p14, 0, pc, c0, c1, 0
|
||||
bcs wait
|
||||
|
||||
.endm
|
||||
|
||||
#elif defined(CONFIG_CPU_XSCALE)
|
||||
|
||||
.macro addruart, rx
|
||||
|
||||
@@ -78,15 +78,6 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
|
||||
return 1;
|
||||
if (cpu_architecture() < CPU_ARCH_ARMv6)
|
||||
return 1;
|
||||
#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
|
||||
/*
|
||||
* If we have support for OABI programs, we can never allow NX
|
||||
* support - our signal syscall restart mechanism relies upon
|
||||
* being able to execute code placed on the user stack.
|
||||
*/
|
||||
return 1;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL(arm_elf_read_implies_exec);
|
||||
|
||||
@@ -29,6 +29,7 @@ enum davinci_matrix_types {
|
||||
};
|
||||
|
||||
struct davinci_ks_platform_data {
|
||||
int (*device_enable)(struct device *dev);
|
||||
unsigned short *keymap;
|
||||
u32 keymapsize;
|
||||
u8 rep:1;
|
||||
|
||||
@@ -30,7 +30,9 @@ static inline void putc(char c)
|
||||
UART[UART_TX] = c;
|
||||
}
|
||||
|
||||
#define flush() do { } while (0)
|
||||
static inline void flush(void)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* nothing to do
|
||||
|
||||
@@ -214,8 +214,8 @@ int omap1_select_table_rate(struct clk *clk, unsigned long rate)
|
||||
struct mpu_rate * ptr;
|
||||
unsigned long dpll1_rate, ref_rate;
|
||||
|
||||
dpll1_rate = clk_get_rate(ck_dpll1_p);
|
||||
ref_rate = clk_get_rate(ck_ref_p);
|
||||
dpll1_rate = ck_dpll1_p->rate;
|
||||
ref_rate = ck_ref_p->rate;
|
||||
|
||||
for (ptr = omap1_rate_table; ptr->rate; ptr++) {
|
||||
if (ptr->xtal != ref_rate)
|
||||
@@ -306,7 +306,7 @@ long omap1_round_to_table_rate(struct clk *clk, unsigned long rate)
|
||||
long highest_rate;
|
||||
unsigned long ref_rate;
|
||||
|
||||
ref_rate = clk_get_rate(ck_ref_p);
|
||||
ref_rate = ck_ref_p->rate;
|
||||
|
||||
highest_rate = -EINVAL;
|
||||
|
||||
|
||||
@@ -671,7 +671,6 @@ static struct clk dpll4_m3x2_ck = {
|
||||
.name = "dpll4_m3x2_ck",
|
||||
.ops = &clkops_omap2_dflt_wait,
|
||||
.parent = &dpll4_m3_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN),
|
||||
.enable_bit = OMAP3430_PWRDN_TV_SHIFT,
|
||||
.flags = INVERT_ENABLE,
|
||||
@@ -811,7 +810,6 @@ static struct clk dpll4_m6x2_ck = {
|
||||
.name = "dpll4_m6x2_ck",
|
||||
.ops = &clkops_omap2_dflt_wait,
|
||||
.parent = &dpll4_m6_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN),
|
||||
.enable_bit = OMAP3430_PWRDN_EMU_PERIPH_SHIFT,
|
||||
.flags = INVERT_ENABLE,
|
||||
@@ -1047,7 +1045,6 @@ static struct clk iva2_ck = {
|
||||
.name = "iva2_ck",
|
||||
.ops = &clkops_omap2_dflt_wait,
|
||||
.parent = &dpll2_m2_ck,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.enable_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, CM_FCLKEN),
|
||||
.enable_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT,
|
||||
.clkdm_name = "iva2_clkdm",
|
||||
@@ -1121,7 +1118,6 @@ static struct clk gfx_l3_ck = {
|
||||
.name = "gfx_l3_ck",
|
||||
.ops = &clkops_omap2_dflt_wait,
|
||||
.parent = &l3_ick,
|
||||
.init = &omap2_init_clksel_parent,
|
||||
.enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_ICLKEN),
|
||||
.enable_bit = OMAP_EN_GFX_SHIFT,
|
||||
.recalc = &followparent_recalc,
|
||||
|
||||
@@ -346,37 +346,37 @@ static struct clk aess_fclk = {
|
||||
};
|
||||
|
||||
static const struct clksel_rate div31_1to31_rates[] = {
|
||||
{ .div = 1, .val = 0, .flags = RATE_IN_4430 },
|
||||
{ .div = 2, .val = 1, .flags = RATE_IN_4430 },
|
||||
{ .div = 3, .val = 2, .flags = RATE_IN_4430 },
|
||||
{ .div = 4, .val = 3, .flags = RATE_IN_4430 },
|
||||
{ .div = 5, .val = 4, .flags = RATE_IN_4430 },
|
||||
{ .div = 6, .val = 5, .flags = RATE_IN_4430 },
|
||||
{ .div = 7, .val = 6, .flags = RATE_IN_4430 },
|
||||
{ .div = 8, .val = 7, .flags = RATE_IN_4430 },
|
||||
{ .div = 9, .val = 8, .flags = RATE_IN_4430 },
|
||||
{ .div = 10, .val = 9, .flags = RATE_IN_4430 },
|
||||
{ .div = 11, .val = 10, .flags = RATE_IN_4430 },
|
||||
{ .div = 12, .val = 11, .flags = RATE_IN_4430 },
|
||||
{ .div = 13, .val = 12, .flags = RATE_IN_4430 },
|
||||
{ .div = 14, .val = 13, .flags = RATE_IN_4430 },
|
||||
{ .div = 15, .val = 14, .flags = RATE_IN_4430 },
|
||||
{ .div = 16, .val = 15, .flags = RATE_IN_4430 },
|
||||
{ .div = 17, .val = 16, .flags = RATE_IN_4430 },
|
||||
{ .div = 18, .val = 17, .flags = RATE_IN_4430 },
|
||||
{ .div = 19, .val = 18, .flags = RATE_IN_4430 },
|
||||
{ .div = 20, .val = 19, .flags = RATE_IN_4430 },
|
||||
{ .div = 21, .val = 20, .flags = RATE_IN_4430 },
|
||||
{ .div = 22, .val = 21, .flags = RATE_IN_4430 },
|
||||
{ .div = 23, .val = 22, .flags = RATE_IN_4430 },
|
||||
{ .div = 24, .val = 23, .flags = RATE_IN_4430 },
|
||||
{ .div = 25, .val = 24, .flags = RATE_IN_4430 },
|
||||
{ .div = 26, .val = 25, .flags = RATE_IN_4430 },
|
||||
{ .div = 27, .val = 26, .flags = RATE_IN_4430 },
|
||||
{ .div = 28, .val = 27, .flags = RATE_IN_4430 },
|
||||
{ .div = 29, .val = 28, .flags = RATE_IN_4430 },
|
||||
{ .div = 30, .val = 29, .flags = RATE_IN_4430 },
|
||||
{ .div = 31, .val = 30, .flags = RATE_IN_4430 },
|
||||
{ .div = 1, .val = 1, .flags = RATE_IN_4430 },
|
||||
{ .div = 2, .val = 2, .flags = RATE_IN_4430 },
|
||||
{ .div = 3, .val = 3, .flags = RATE_IN_4430 },
|
||||
{ .div = 4, .val = 4, .flags = RATE_IN_4430 },
|
||||
{ .div = 5, .val = 5, .flags = RATE_IN_4430 },
|
||||
{ .div = 6, .val = 6, .flags = RATE_IN_4430 },
|
||||
{ .div = 7, .val = 7, .flags = RATE_IN_4430 },
|
||||
{ .div = 8, .val = 8, .flags = RATE_IN_4430 },
|
||||
{ .div = 9, .val = 9, .flags = RATE_IN_4430 },
|
||||
{ .div = 10, .val = 10, .flags = RATE_IN_4430 },
|
||||
{ .div = 11, .val = 11, .flags = RATE_IN_4430 },
|
||||
{ .div = 12, .val = 12, .flags = RATE_IN_4430 },
|
||||
{ .div = 13, .val = 13, .flags = RATE_IN_4430 },
|
||||
{ .div = 14, .val = 14, .flags = RATE_IN_4430 },
|
||||
{ .div = 15, .val = 15, .flags = RATE_IN_4430 },
|
||||
{ .div = 16, .val = 16, .flags = RATE_IN_4430 },
|
||||
{ .div = 17, .val = 17, .flags = RATE_IN_4430 },
|
||||
{ .div = 18, .val = 18, .flags = RATE_IN_4430 },
|
||||
{ .div = 19, .val = 19, .flags = RATE_IN_4430 },
|
||||
{ .div = 20, .val = 20, .flags = RATE_IN_4430 },
|
||||
{ .div = 21, .val = 21, .flags = RATE_IN_4430 },
|
||||
{ .div = 22, .val = 22, .flags = RATE_IN_4430 },
|
||||
{ .div = 23, .val = 23, .flags = RATE_IN_4430 },
|
||||
{ .div = 24, .val = 24, .flags = RATE_IN_4430 },
|
||||
{ .div = 25, .val = 25, .flags = RATE_IN_4430 },
|
||||
{ .div = 26, .val = 26, .flags = RATE_IN_4430 },
|
||||
{ .div = 27, .val = 27, .flags = RATE_IN_4430 },
|
||||
{ .div = 28, .val = 28, .flags = RATE_IN_4430 },
|
||||
{ .div = 29, .val = 29, .flags = RATE_IN_4430 },
|
||||
{ .div = 30, .val = 30, .flags = RATE_IN_4430 },
|
||||
{ .div = 31, .val = 31, .flags = RATE_IN_4430 },
|
||||
{ .div = 0 },
|
||||
};
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ return_sleep_time:
|
||||
local_irq_enable();
|
||||
local_fiq_enable();
|
||||
|
||||
return (u32)timespec_to_ns(&ts_idle)/1000;
|
||||
return ts_idle.tv_nsec / NSEC_PER_USEC + ts_idle.tv_sec * USEC_PER_SEC;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -534,6 +534,8 @@ void __init gpmc_init(void)
|
||||
BUG();
|
||||
}
|
||||
|
||||
clk_enable(gpmc_l3_clk);
|
||||
|
||||
l = gpmc_read_reg(GPMC_REVISION);
|
||||
printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
|
||||
/* Set smart idle mode and automatic L3 clock gating */
|
||||
|
||||
+23
-18
@@ -188,6 +188,8 @@ void __init omap3_check_revision(void)
|
||||
u16 hawkeye;
|
||||
u8 rev;
|
||||
|
||||
omap_chip.oc = CHIP_IS_OMAP3430;
|
||||
|
||||
/*
|
||||
* We cannot access revision registers on ES1.0.
|
||||
* If the processor type is Cortex-A8 and the revision is 0x0
|
||||
@@ -196,6 +198,7 @@ void __init omap3_check_revision(void)
|
||||
cpuid = read_cpuid(CPUID_ID);
|
||||
if ((((cpuid >> 4) & 0xfff) == 0xc08) && ((cpuid & 0xf) == 0x0)) {
|
||||
omap_revision = OMAP3430_REV_ES1_0;
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES1;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -216,18 +219,28 @@ void __init omap3_check_revision(void)
|
||||
case 0: /* Take care of early samples */
|
||||
case 1:
|
||||
omap_revision = OMAP3430_REV_ES2_0;
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES2;
|
||||
break;
|
||||
case 2:
|
||||
omap_revision = OMAP3430_REV_ES2_1;
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES2;
|
||||
break;
|
||||
case 3:
|
||||
omap_revision = OMAP3430_REV_ES3_0;
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES3_0;
|
||||
break;
|
||||
case 4:
|
||||
omap_revision = OMAP3430_REV_ES3_1;
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
|
||||
break;
|
||||
case 7:
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
/* Use the latest known revision as default */
|
||||
omap_revision = OMAP3430_REV_ES3_1;
|
||||
omap_revision = OMAP3430_REV_ES3_1_2;
|
||||
|
||||
/* REVISIT: Add CHIP_IS_OMAP3430ES3_1_2? */
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
|
||||
}
|
||||
break;
|
||||
case 0xb868:
|
||||
@@ -235,14 +248,18 @@ void __init omap3_check_revision(void)
|
||||
*
|
||||
* Set the device to be OMAP3505 here. Actual device
|
||||
* is identified later based on the features.
|
||||
*
|
||||
* REVISIT: AM3505/AM3517 should have their own CHIP_IS
|
||||
*/
|
||||
omap_revision = OMAP3505_REV(rev);
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
|
||||
break;
|
||||
case 0xb891:
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
/* Unknown default to latest silicon rev as default*/
|
||||
omap_revision = OMAP3630_REV_ES1_0;
|
||||
omap_chip.oc |= CHIP_IS_OMAP3630ES1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -360,6 +377,7 @@ void __init omap2_check_revision(void)
|
||||
omap3_check_revision();
|
||||
omap3_check_features();
|
||||
omap3_cpuinfo();
|
||||
return;
|
||||
} else if (cpu_is_omap44xx()) {
|
||||
omap4_check_revision();
|
||||
return;
|
||||
@@ -374,27 +392,14 @@ void __init omap2_check_revision(void)
|
||||
if (cpu_is_omap243x()) {
|
||||
/* Currently only supports 2430ES2.1 and 2430-all */
|
||||
omap_chip.oc |= CHIP_IS_OMAP2430;
|
||||
return;
|
||||
} else if (cpu_is_omap242x()) {
|
||||
/* Currently only supports 2420ES2.1.1 and 2420-all */
|
||||
omap_chip.oc |= CHIP_IS_OMAP2420;
|
||||
} else if (cpu_is_omap3505() || cpu_is_omap3517()) {
|
||||
omap_chip.oc = CHIP_IS_OMAP3430 | CHIP_IS_OMAP3430ES3_1;
|
||||
} else if (cpu_is_omap343x()) {
|
||||
omap_chip.oc = CHIP_IS_OMAP3430;
|
||||
if (omap_rev() == OMAP3430_REV_ES1_0)
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES1;
|
||||
else if (omap_rev() >= OMAP3430_REV_ES2_0 &&
|
||||
omap_rev() <= OMAP3430_REV_ES2_1)
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES2;
|
||||
else if (omap_rev() == OMAP3430_REV_ES3_0)
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES3_0;
|
||||
else if (omap_rev() == OMAP3430_REV_ES3_1)
|
||||
omap_chip.oc |= CHIP_IS_OMAP3430ES3_1;
|
||||
else if (omap_rev() == OMAP3630_REV_ES1_0)
|
||||
omap_chip.oc |= CHIP_IS_OMAP3630ES1;
|
||||
} else {
|
||||
pr_err("Uninitialized omap_chip, please fix!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
pr_err("Uninitialized omap_chip, please fix!\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -274,4 +274,22 @@ void omap_intc_restore_context(void)
|
||||
}
|
||||
/* MIRs are saved and restore with other PRCM registers */
|
||||
}
|
||||
|
||||
void omap3_intc_suspend(void)
|
||||
{
|
||||
/* A pending interrupt would prevent OMAP from entering suspend */
|
||||
omap_ack_irq(0);
|
||||
}
|
||||
|
||||
void omap3_intc_prepare_idle(void)
|
||||
{
|
||||
/* Disable autoidle as it can stall interrupt controller */
|
||||
intc_bank_write_reg(0, &irq_banks[0], INTC_SYSCONFIG);
|
||||
}
|
||||
|
||||
void omap3_intc_resume_idle(void)
|
||||
{
|
||||
/* Re-enable autoidle */
|
||||
intc_bank_write_reg(1, &irq_banks[0], INTC_SYSCONFIG);
|
||||
}
|
||||
#endif /* CONFIG_ARCH_OMAP3 */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user