Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
matisse
android_kernel_samsung_matisse
Commits
2bb4646f
Commit
2bb4646f
authored
15 years ago
by
David S. Miller
Browse files
Options
Download
Plain Diff
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
parents
6836b9bd
b0483e78
Changes
630
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
193 additions
and
106 deletions
+193
-106
Documentation/ABI/testing/ima_policy
Documentation/ABI/testing/ima_policy
+6
-6
Documentation/cpu-freq/governors.txt
Documentation/cpu-freq/governors.txt
+2
-2
Documentation/fault-injection/fault-injection.txt
Documentation/fault-injection/fault-injection.txt
+2
-2
Documentation/input/multi-touch-protocol.txt
Documentation/input/multi-touch-protocol.txt
+40
-8
Documentation/trace/ftrace-design.txt
Documentation/trace/ftrace-design.txt
+23
-3
Documentation/trace/ftrace.txt
Documentation/trace/ftrace.txt
+1
-1
MAINTAINERS
MAINTAINERS
+4
-2
Makefile
Makefile
+1
-1
arch/arm/Kconfig
arch/arm/Kconfig
+1
-0
arch/arm/Makefile
arch/arm/Makefile
+1
-1
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
+6
-0
arch/arm/mach-mx25/clock.c
arch/arm/mach-mx25/clock.c
+37
-21
arch/arm/mach-mx25/mx25pdk.c
arch/arm/mach-mx25/mx25pdk.c
+1
-1
arch/arm/mach-mx3/mx31ads.c
arch/arm/mach-mx3/mx31ads.c
+4
-0
arch/arm/mach-omap1/clock.c
arch/arm/mach-omap1/clock.c
+3
-3
arch/arm/mach-omap2/clock34xx_data.c
arch/arm/mach-omap2/clock34xx_data.c
+0
-4
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/clock44xx_data.c
+31
-31
arch/arm/mach-omap2/cpuidle34xx.c
arch/arm/mach-omap2/cpuidle34xx.c
+1
-1
arch/arm/mach-omap2/gpmc.c
arch/arm/mach-omap2/gpmc.c
+6
-1
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/id.c
+23
-18
No files found.
Documentation/ABI/testing/ima_policy
View file @
2bb4646f
...
...
@@ -20,7 +20,7 @@ Description:
lsm: [[subj_user=] [subj_role=] [subj_type=]
[obj_user=] [obj_role=] [obj_type=]]
base: func:= [BPRM_CHECK][FILE_MMAP][
INODE_PERMISSION
]
base: func:= [BPRM_CHECK][FILE_MMAP][
FILE_CHECK
]
mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
fsmagic:= hex value
uid:= decimal value
...
...
@@ -40,11 +40,11 @@ Description:
measure func=BPRM_CHECK
measure func=FILE_MMAP mask=MAY_EXEC
measure func=
INODE_PERM
mask=MAY_READ uid=0
measure func=
FILE_CHECK
mask=MAY_READ uid=0
The default policy measures all executables in bprm_check,
all files mmapped executable in file_mmap, and all files
open for read by root in
inode_permissio
n.
open for read by root in
do_filp_ope
n.
Examples of LSM specific definitions:
...
...
@@ -54,8 +54,8 @@ Description:
dont_measure obj_type=var_log_t
dont_measure obj_type=auditd_log_t
measure subj_user=system_u func=
INODE_PERM
mask=MAY_READ
measure subj_role=system_r func=
INODE_PERM
mask=MAY_READ
measure subj_user=system_u func=
FILE_CHECK
mask=MAY_READ
measure subj_role=system_r func=
FILE_CHECK
mask=MAY_READ
Smack:
measure subj_user=_ func=
INODE_PERM
mask=MAY_READ
measure subj_user=_ func=
FILE_CHECK
mask=MAY_READ
This diff is collapsed.
Click to expand it.
Documentation/cpu-freq/governors.txt
View file @
2bb4646f
...
...
@@ -145,8 +145,8 @@ show_sampling_rate_max: THIS INTERFACE IS DEPRECATED, DON'T USE IT.
up_threshold: defines what the average CPU usage between the samplings
of 'sampling_rate' needs to be for the kernel to make a decision on
whether it should increase the frequency. For example when it is set
to its default value of '
80
' it means that between the checking
intervals the CPU needs to be on average more than
80
% in use to then
to its default value of '
95
' it means that between the checking
intervals the CPU needs to be on average more than
95
% in use to then
decide that the CPU frequency needs to be increased.
ignore_nice_load: this parameter takes a value of '0' or '1'. When
...
...
This diff is collapsed.
Click to expand it.
Documentation/fault-injection/fault-injection.txt
View file @
2bb4646f
...
...
@@ -143,8 +143,8 @@ o provide a way to configure fault attributes
failslab, fail_page_alloc, and fail_make_request use this way.
Helper functions:
init_fault_attr_entries(entries, attr, name);
void cleanup_fault_attr_entries(entries);
init_fault_attr_
d
entries(entries, attr, name);
void cleanup_fault_attr_
d
entries(entries);
- module parameters
...
...
This diff is collapsed.
Click to expand it.
Documentation/input/multi-touch-protocol.txt
View file @
2bb4646f
...
...
@@ -27,12 +27,30 @@ set of events/packets.
A set of ABS_MT events with the desired properties is defined. The events
are divided into categories, to allow for partial implementation. The
minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and
ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked. If the
device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size
of the approaching finger. Anisotropy and direction may be specified with
ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. The
ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
minimum set consists of ABS_MT_POSITION_X and ABS_MT_POSITION_Y, which
allows for multiple fingers to be tracked. If the device supports it, the
ABS_MT_TOUCH_MAJOR and ABS_MT_WIDTH_MAJOR may be used to provide the size
of the contact area and approaching finger, respectively.
The TOUCH and WIDTH parameters have a geometrical interpretation; imagine
looking through a window at someone gently holding a finger against the
glass. You will see two regions, one inner region consisting of the part
of the finger actually touching the glass, and one outer region formed by
the perimeter of the finger. The diameter of the inner region is the
ABS_MT_TOUCH_MAJOR, the diameter of the outer region is
ABS_MT_WIDTH_MAJOR. Now imagine the person pressing the finger harder
against the glass. The inner region will increase, and in general, the
ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than
unity, is related to the finger pressure. For pressure-based devices,
ABS_MT_PRESSURE may be used to provide the pressure on the contact area
instead.
In addition to the MAJOR parameters, the oval shape of the finger can be
described by adding the MINOR parameters, such that MAJOR and MINOR are the
major and minor axis of an ellipse. Finally, the orientation of the oval
shape can be describe with the ORIENTATION parameter.
The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
finger or a pen or something else. Devices with more granular information
may specify general shapes as blobs, i.e., as a sequence of rectangular
shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices
...
...
@@ -42,11 +60,9 @@ report finger tracking from hardware [5].
Here is what a minimal event sequence for a two-finger touch would look
like:
ABS_MT_TOUCH_MAJOR
ABS_MT_POSITION_X
ABS_MT_POSITION_Y
SYN_MT_REPORT
ABS_MT_TOUCH_MAJOR
ABS_MT_POSITION_X
ABS_MT_POSITION_Y
SYN_MT_REPORT
...
...
@@ -87,6 +103,12 @@ the contact. The ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR approximates
the notion of pressure. The fingers of the hand and the palm all have
different characteristic widths [1].
ABS_MT_PRESSURE
The pressure, in arbitrary units, on the contact area. May be used instead
of TOUCH and WIDTH for pressure-based devices or any device with a spatial
signal intensity distribution.
ABS_MT_ORIENTATION
The orientation of the ellipse. The value should describe a signed quarter
...
...
@@ -170,6 +192,16 @@ There are a few devices that support trackingID in hardware. User space can
make use of these native identifiers to reduce bandwidth and cpu usage.
Gestures
--------
In the specific application of creating gesture events, the TOUCH and WIDTH
parameters can be used to, e.g., approximate finger pressure or distinguish
between index finger and thumb. With the addition of the MINOR parameters,
one can also distinguish between a sweeping finger and a pointing finger,
and with ORIENTATION, one can detect twisting of fingers.
Notes
-----
...
...
This diff is collapsed.
Click to expand it.
Documentation/trace/ftrace-design.txt
View file @
2bb4646f
function tracer guts
====================
By Mike Frysinger
Introduction
------------
...
...
@@ -173,14 +174,16 @@ void ftrace_graph_caller(void)
unsigned long *frompc = &...;
unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE;
prepare_ftrace_return(frompc, selfpc);
/* passing frame pointer up is optional -- see below */
prepare_ftrace_return(frompc, selfpc, frame_pointer);
/* restore all state needed by the ABI */
}
#endif
For information on how to implement prepare_ftrace_return(), simply look at
the x86 version. The only architecture-specific piece in it is the setup of
For information on how to implement prepare_ftrace_return(), simply look at the
x86 version (the frame pointer passing is optional; see the next section for
more information). The only architecture-specific piece in it is the setup of
the fault recovery table (the asm(...) code). The rest should be the same
across architectures.
...
...
@@ -205,6 +208,23 @@ void return_to_handler(void)
#endif
HAVE_FUNCTION_GRAPH_FP_TEST
---------------------------
An arch may pass in a unique value (frame pointer) to both the entering and
exiting of a function. On exit, the value is compared and if it does not
match, then it will panic the kernel. This is largely a sanity check for bad
code generation with gcc. If gcc for your port sanely updates the frame
pointer under different opitmization levels, then ignore this option.
However, adding support for it isn't terribly difficult. In your assembly code
that calls prepare_ftrace_return(), pass the frame pointer as the 3rd argument.
Then in the C version of that function, do what the x86 port does and pass it
along to ftrace_push_return_trace() instead of a stub value of 0.
Similarly, when you call ftrace_return_to_handler(), pass it the frame pointer.
HAVE_FTRACE_NMI_ENTER
---------------------
...
...
This diff is collapsed.
Click to expand it.
Documentation/trace/ftrace.txt
View file @
2bb4646f
...
...
@@ -1625,7 +1625,7 @@ If I am only interested in sys_nanosleep and hrtimer_interrupt:
# echo sys_nanosleep hrtimer_interrupt \
> set_ftrace_filter
# echo f
trace
> current_tracer
# echo f
unction
> current_tracer
# echo 1 > tracing_enabled
# usleep 1
# echo 0 > tracing_enabled
...
...
This diff is collapsed.
Click to expand it.
MAINTAINERS
View file @
2bb4646f
...
...
@@ -3411,8 +3411,10 @@ S: Maintained
F: drivers/scsi/sym53c8xx_2/
LTP (Linux Test Project)
M: Subrata Modak <subrata@linux.vnet.ibm.com>
M: Mike Frysinger <vapier@gentoo.org>
M: Rishikesh K Rajak <risrajak@linux.vnet.ibm.com>
M: Garrett Cooper <yanegomi@gmail.com>
M: Mike Frysinger <vapier@gentoo.org>
M: Subrata Modak <subrata@linux.vnet.ibm.com>
L: ltp-list@lists.sourceforge.net (subscribers-only)
W: http://ltp.sourceforge.net/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/galak/ltp.git
...
...
This diff is collapsed.
Click to expand it.
Makefile
View file @
2bb4646f
VERSION
=
2
PATCHLEVEL
=
6
SUBLEVEL
=
33
EXTRAVERSION
=
-rc
5
EXTRAVERSION
=
-rc
8
NAME
=
Man-Eating Seals of Antiquity
# *DOCUMENTATION*
...
...
This diff is collapsed.
Click to expand it.
arch/arm/Kconfig
View file @
2bb4646f
...
...
@@ -702,6 +702,7 @@ config ARCH_OMAP
select ARCH_HAS_CPUFREQ
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
select ARCH_HAS_HOLES_MEMORYMODEL
help
Support for TI's OMAP platform (OMAP1 and OMAP2).
...
...
This diff is collapsed.
Click to expand it.
arch/arm/Makefile
View file @
2bb4646f
...
...
@@ -94,7 +94,7 @@ CFLAGS_ABI +=-funwind-tables
endif
ifeq
($(CONFIG_THUMB2_KERNEL),y)
AFLAGS_AUTOIT
:=
$(
call
as-option,-Wa
$(comma)
-mimplicit-it
=
thumb
,-Wa
$(comma)
-mauto-it
)
AFLAGS_AUTOIT
:=
$(
call
as-option,-Wa
$(comma)
-mimplicit-it
=
always
,-Wa
$(comma)
-mauto-it
)
AFLAGS_NOWARN
:=
$(
call
as-option,-Wa
$(comma)
-mno-warn-deprecated
,-Wa
$(comma)
-W
)
CFLAGS_THUMB2
:=
-mthumb
$(AFLAGS_AUTOIT)
$(AFLAGS_NOWARN)
AFLAGS_THUMB2
:=
$(CFLAGS_THUMB2)
-Wa
$(comma)
-mthumb
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
View file @
2bb4646f
...
...
@@ -13,6 +13,7 @@
#include <linux/platform_device.h>
#include <linux/ata_platform.h>
#include <linux/mv643xx_eth.h>
#include <linux/gpio.h>
#include <linux/spi/flash.h>
#include <linux/spi/spi.h>
#include <linux/spi/orion_spi.h>
...
...
@@ -53,6 +54,11 @@ static void __init rd88f6192_init(void)
*/
kirkwood_init
();
orion_gpio_set_valid
(
RD88F6192_GPIO_USB_VBUS
,
1
);
if
(
gpio_request
(
RD88F6192_GPIO_USB_VBUS
,
"USB VBUS"
)
!=
0
||
gpio_direction_output
(
RD88F6192_GPIO_USB_VBUS
,
1
)
!=
0
)
pr_err
(
"RD-88F6192-NAS: failed to setup USB VBUS GPIO
\n
"
);
kirkwood_ehci_init
();
kirkwood_ge00_init
(
&
rd88f6192_ge00_data
);
kirkwood_sata_init
(
&
rd88f6192_sata_data
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-mx25/clock.c
View file @
2bb4646f
...
...
@@ -119,6 +119,11 @@ static unsigned long get_rate_nfc(struct clk *clk)
return
get_rate_per
(
8
);
}
static
unsigned
long
get_rate_gpt
(
struct
clk
*
clk
)
{
return
get_rate_per
(
5
);
}
static
unsigned
long
get_rate_otg
(
struct
clk
*
clk
)
{
return
48000000
;
/* FIXME */
...
...
@@ -144,7 +149,7 @@ static void clk_cgcr_disable(struct clk *clk)
__raw_writel
(
reg
,
clk
->
enable_reg
);
}
#define DEFINE_CLOCK(name, i, er, es, gr, sr)
\
#define DEFINE_CLOCK(name, i, er, es, gr, sr
, s
) \
static struct clk name = { \
.id = i, \
.enable_reg = CRM_BASE + er, \
...
...
@@ -153,27 +158,30 @@ static void clk_cgcr_disable(struct clk *clk)
.set_rate = sr, \
.enable = clk_cgcr_enable, \
.disable = clk_cgcr_disable, \
.secondary = s, \
}
DEFINE_CLOCK
(
gpt_clk
,
0
,
CCM_CGCR0
,
5
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
cspi1_clk
,
0
,
CCM_CGCR1
,
5
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
cspi2_clk
,
0
,
CCM_CGCR1
,
6
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
cspi3_clk
,
0
,
CCM_CGCR1
,
7
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
uart1_clk
,
0
,
CCM_CGCR2
,
14
,
get_rate_uart
,
NULL
);
DEFINE_CLOCK
(
uart2_clk
,
0
,
CCM_CGCR2
,
15
,
get_rate_uart
,
NULL
);
DEFINE_CLOCK
(
uart3_clk
,
0
,
CCM_CGCR2
,
16
,
get_rate_uart
,
NULL
);
DEFINE_CLOCK
(
uart4_clk
,
0
,
CCM_CGCR2
,
17
,
get_rate_uart
,
NULL
);
DEFINE_CLOCK
(
uart5_clk
,
0
,
CCM_CGCR2
,
18
,
get_rate_uart
,
NULL
);
DEFINE_CLOCK
(
nfc_clk
,
0
,
CCM_CGCR0
,
8
,
get_rate_nfc
,
NULL
);
DEFINE_CLOCK
(
usbotg_clk
,
0
,
CCM_CGCR0
,
28
,
get_rate_otg
,
NULL
);
DEFINE_CLOCK
(
pwm1_clk
,
0
,
CCM_CGCR1
,
31
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
pwm2_clk
,
0
,
CCM_CGCR2
,
0
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
pwm3_clk
,
0
,
CCM_CGCR2
,
1
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
pwm4_clk
,
0
,
CCM_CGCR2
,
2
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
kpp_clk
,
0
,
CCM_CGCR1
,
28
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
tsc_clk
,
0
,
CCM_CGCR2
,
13
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
i2c_clk
,
0
,
CCM_CGCR0
,
6
,
get_rate_i2c
,
NULL
);
DEFINE_CLOCK
(
fec_clk
,
0
,
CCM_CGCR0
,
23
,
get_rate_ipg
,
NULL
);
DEFINE_CLOCK
(
gpt_clk
,
0
,
CCM_CGCR0
,
5
,
get_rate_gpt
,
NULL
,
NULL
);
DEFINE_CLOCK
(
uart_per_clk
,
0
,
CCM_CGCR0
,
15
,
get_rate_uart
,
NULL
,
NULL
);
DEFINE_CLOCK
(
cspi1_clk
,
0
,
CCM_CGCR1
,
5
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
cspi2_clk
,
0
,
CCM_CGCR1
,
6
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
cspi3_clk
,
0
,
CCM_CGCR1
,
7
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
fec_ahb_clk
,
0
,
CCM_CGCR0
,
23
,
NULL
,
NULL
,
NULL
);
DEFINE_CLOCK
(
uart1_clk
,
0
,
CCM_CGCR2
,
14
,
get_rate_uart
,
NULL
,
&
uart_per_clk
);
DEFINE_CLOCK
(
uart2_clk
,
0
,
CCM_CGCR2
,
15
,
get_rate_uart
,
NULL
,
&
uart_per_clk
);
DEFINE_CLOCK
(
uart3_clk
,
0
,
CCM_CGCR2
,
16
,
get_rate_uart
,
NULL
,
&
uart_per_clk
);
DEFINE_CLOCK
(
uart4_clk
,
0
,
CCM_CGCR2
,
17
,
get_rate_uart
,
NULL
,
&
uart_per_clk
);
DEFINE_CLOCK
(
uart5_clk
,
0
,
CCM_CGCR2
,
18
,
get_rate_uart
,
NULL
,
&
uart_per_clk
);
DEFINE_CLOCK
(
nfc_clk
,
0
,
CCM_CGCR0
,
8
,
get_rate_nfc
,
NULL
,
NULL
);
DEFINE_CLOCK
(
usbotg_clk
,
0
,
CCM_CGCR0
,
28
,
get_rate_otg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
pwm1_clk
,
0
,
CCM_CGCR1
,
31
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
pwm2_clk
,
0
,
CCM_CGCR2
,
0
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
pwm3_clk
,
0
,
CCM_CGCR2
,
1
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
pwm4_clk
,
0
,
CCM_CGCR2
,
2
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
kpp_clk
,
0
,
CCM_CGCR1
,
28
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
tsc_clk
,
0
,
CCM_CGCR2
,
13
,
get_rate_ipg
,
NULL
,
NULL
);
DEFINE_CLOCK
(
i2c_clk
,
0
,
CCM_CGCR0
,
6
,
get_rate_i2c
,
NULL
,
NULL
);
DEFINE_CLOCK
(
fec_clk
,
0
,
CCM_CGCR1
,
15
,
get_rate_ipg
,
NULL
,
&
fec_ahb_clk
);
#define _REGISTER_CLOCK(d, n, c) \
{ \
...
...
@@ -208,13 +216,21 @@ static struct clk_lookup lookups[] = {
_REGISTER_CLOCK
(
"fec.0"
,
NULL
,
fec_clk
)
};
int
__init
mx25_clocks_init
(
unsigned
long
fref
)
int
__init
mx25_clocks_init
(
void
)
{
int
i
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
lookups
);
i
++
)
clkdev_add
(
&
lookups
[
i
]);
/* Turn off all clocks except the ones we need to survive, namely:
* EMI, GPIO1-3 (CCM_CGCR1[18:16]), GPT1, IOMUXC (CCM_CGCR1[27]), IIM,
* SCC
*/
__raw_writel
((
1
<<
19
),
CRM_BASE
+
CCM_CGCR0
);
__raw_writel
((
0xf
<<
16
)
|
(
3
<<
26
),
CRM_BASE
+
CCM_CGCR1
);
__raw_writel
((
1
<<
5
),
CRM_BASE
+
CCM_CGCR2
);
mxc_timer_init
(
&
gpt_clk
,
MX25_IO_ADDRESS
(
MX25_GPT1_BASE_ADDR
),
54
);
return
0
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-mx25/mx25pdk.c
View file @
2bb4646f
...
...
@@ -91,7 +91,7 @@ static void __init mx25pdk_init(void)
static
void
__init
mx25pdk_timer_init
(
void
)
{
mx25_clocks_init
(
26000000
);
mx25_clocks_init
();
}
static
struct
sys_timer
mx25pdk_timer
=
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-mx3/mx31ads.c
View file @
2bb4646f
...
...
@@ -173,6 +173,7 @@ static void expio_unmask_irq(u32 irq)
}
static
struct
irq_chip
expio_irq_chip
=
{
.
name
=
"EXPIO(CPLD)"
,
.
ack
=
expio_ack_irq
,
.
mask
=
expio_mask_irq
,
.
unmask
=
expio_unmask_irq
,
...
...
@@ -302,6 +303,7 @@ static struct regulator_init_data ldo1_data = {
.
min_uV
=
2800000
,
.
max_uV
=
2800000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
apply_uV
=
1
,
},
};
...
...
@@ -322,6 +324,7 @@ static struct regulator_init_data ldo2_data = {
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
valid_ops_mask
=
REGULATOR_CHANGE_STATUS
,
.
apply_uV
=
1
,
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
ldo2_consumers
),
...
...
@@ -459,6 +462,7 @@ static int mx31_wm8350_init(struct wm8350 *wm8350)
static
struct
wm8350_platform_data
__initdata
mx31_wm8350_pdata
=
{
.
init
=
mx31_wm8350_init
,
.
irq_base
=
MXC_BOARD_IRQ_START
+
MXC_MAX_EXP_IO_LINES
,
};
#endif
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/clock.c
View file @
2bb4646f
...
...
@@ -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
=
c
l
k_
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
=
c
l
k_
get_rate
(
ck_ref_p
)
;
ref_rate
=
ck_
ref_p
->
rate
;
highest_rate
=
-
EINVAL
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clock34xx_data.c
View file @
2bb4646f
...
...
@@ -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
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clock44xx_data.c
View file @
2bb4646f
...
...
@@ -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
=
1
0
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
12
,
.
val
=
1
1
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
13
,
.
val
=
1
2
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
14
,
.
val
=
1
3
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
15
,
.
val
=
1
4
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
16
,
.
val
=
1
5
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
17
,
.
val
=
1
6
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
18
,
.
val
=
1
7
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
19
,
.
val
=
1
8
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
20
,
.
val
=
19
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
21
,
.
val
=
2
0
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
22
,
.
val
=
2
1
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
23
,
.
val
=
2
2
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
24
,
.
val
=
2
3
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
25
,
.
val
=
2
4
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
26
,
.
val
=
2
5
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
27
,
.
val
=
2
6
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
28
,
.
val
=
2
7
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
29
,
.
val
=
2
8
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
30
,
.
val
=
29
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
31
,
.
val
=
3
0
,
.
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
=
1
1
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
12
,
.
val
=
1
2
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
13
,
.
val
=
1
3
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
14
,
.
val
=
1
4
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
15
,
.
val
=
1
5
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
16
,
.
val
=
1
6
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
17
,
.
val
=
1
7
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
18
,
.
val
=
1
8
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
19
,
.
val
=
1
9
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
20
,
.
val
=
20
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
21
,
.
val
=
2
1
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
22
,
.
val
=
2
2
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
23
,
.
val
=
2
3
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
24
,
.
val
=
2
4
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
25
,
.
val
=
2
5
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
26
,
.
val
=
2
6
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
27
,
.
val
=
2
7
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
28
,
.
val
=
2
8
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
29
,
.
val
=
2
9
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
30
,
.
val
=
30
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
31
,
.
val
=
3
1
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
0
},
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/cpuidle34xx.c
View file @
2bb4646f
...
...
@@ -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
;
}
/**
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/gpmc.c
View file @
2bb4646f
...
...
@@ -505,7 +505,7 @@ static void __init gpmc_mem_init(void)
void
__init
gpmc_init
(
void
)
{
u32
l
;
char
*
ck
;
char
*
ck
=
NULL
;
if
(
cpu_is_omap24xx
())
{
ck
=
"core_l3_ck"
;
...
...
@@ -521,6 +521,9 @@ void __init gpmc_init(void)
l
=
OMAP44XX_GPMC_BASE
;
}
if
(
WARN_ON
(
!
ck
))
return
;
gpmc_l3_clk
=
clk_get
(
NULL
,
ck
);
if
(
IS_ERR
(
gpmc_l3_clk
))
{
printk
(
KERN_ERR
"Could not get GPMC clock %s
\n
"
,
ck
);
...
...
@@ -534,6 +537,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 */
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/id.c
View file @
2bb4646f
...
...
@@ -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
"
);
}
/*
...
...
This diff is collapsed.
Click to expand it.
Prev
1
2
3
4
5
…
32
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment