Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6
This commit is contained in:
commit
edc72786d2
|
@ -227,7 +227,14 @@ as the path relative to the root of the cgroup file system.
|
||||||
Each cgroup is represented by a directory in the cgroup file system
|
Each cgroup is represented by a directory in the cgroup file system
|
||||||
containing the following files describing that cgroup:
|
containing the following files describing that cgroup:
|
||||||
|
|
||||||
- tasks: list of tasks (by pid) attached to that cgroup
|
- tasks: list of tasks (by pid) attached to that cgroup. This list
|
||||||
|
is not guaranteed to be sorted. Writing a thread id into this file
|
||||||
|
moves the thread into this cgroup.
|
||||||
|
- cgroup.procs: list of tgids in the cgroup. This list is not
|
||||||
|
guaranteed to be sorted or free of duplicate tgids, and userspace
|
||||||
|
should sort/uniquify the list if this property is required.
|
||||||
|
Writing a tgid into this file moves all threads with that tgid into
|
||||||
|
this cgroup.
|
||||||
- notify_on_release flag: run the release agent on exit?
|
- notify_on_release flag: run the release agent on exit?
|
||||||
- release_agent: the path to use for release notifications (this file
|
- release_agent: the path to use for release notifications (this file
|
||||||
exists in the top cgroup only)
|
exists in the top cgroup only)
|
||||||
|
@ -374,7 +381,7 @@ Now you want to do something with this cgroup.
|
||||||
|
|
||||||
In this directory you can find several files:
|
In this directory you can find several files:
|
||||||
# ls
|
# ls
|
||||||
notify_on_release tasks
|
cgroup.procs notify_on_release tasks
|
||||||
(plus whatever files added by the attached subsystems)
|
(plus whatever files added by the attached subsystems)
|
||||||
|
|
||||||
Now attach your shell to this cgroup:
|
Now attach your shell to this cgroup:
|
||||||
|
|
|
@ -128,8 +128,8 @@ Setting IsSM Capability Bit
|
||||||
To create the appropriate character device files automatically with
|
To create the appropriate character device files automatically with
|
||||||
udev, a rule like
|
udev, a rule like
|
||||||
|
|
||||||
KERNEL="umad*", NAME="infiniband/%k"
|
KERNEL=="umad*", NAME="infiniband/%k"
|
||||||
KERNEL="issm*", NAME="infiniband/%k"
|
KERNEL=="issm*", NAME="infiniband/%k"
|
||||||
|
|
||||||
can be used. This will create device nodes named
|
can be used. This will create device nodes named
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ Memory pinning
|
||||||
To create the appropriate character device files automatically with
|
To create the appropriate character device files automatically with
|
||||||
udev, a rule like
|
udev, a rule like
|
||||||
|
|
||||||
KERNEL="uverbs*", NAME="infiniband/%k"
|
KERNEL=="uverbs*", NAME="infiniband/%k"
|
||||||
|
|
||||||
can be used. This will create device nodes named
|
can be used. This will create device nodes named
|
||||||
|
|
||||||
|
|
|
@ -60,10 +60,9 @@ open() operation on regular files or character devices.
|
||||||
|
|
||||||
After a successful return from register_appl(), CAPI messages from the
|
After a successful return from register_appl(), CAPI messages from the
|
||||||
application may be passed to the driver for the device via calls to the
|
application may be passed to the driver for the device via calls to the
|
||||||
send_message() callback function. The CAPI message to send is stored in the
|
send_message() callback function. Conversely, the driver may call Kernel
|
||||||
data portion of an skb. Conversely, the driver may call Kernel CAPI's
|
CAPI's capi_ctr_handle_message() function to pass a received CAPI message to
|
||||||
capi_ctr_handle_message() function to pass a received CAPI message to Kernel
|
Kernel CAPI for forwarding to an application, specifying its ApplID.
|
||||||
CAPI for forwarding to an application, specifying its ApplID.
|
|
||||||
|
|
||||||
Deregistration requests (CAPI operation CAPI_RELEASE) from applications are
|
Deregistration requests (CAPI operation CAPI_RELEASE) from applications are
|
||||||
forwarded as calls to the release_appl() callback function, passing the same
|
forwarded as calls to the release_appl() callback function, passing the same
|
||||||
|
@ -142,6 +141,7 @@ u16 (*send_message)(struct capi_ctr *ctrlr, struct sk_buff *skb)
|
||||||
to accepting or queueing the message. Errors occurring during the
|
to accepting or queueing the message. Errors occurring during the
|
||||||
actual processing of the message should be signaled with an
|
actual processing of the message should be signaled with an
|
||||||
appropriate reply message.
|
appropriate reply message.
|
||||||
|
May be called in process or interrupt context.
|
||||||
Calls to this function are not serialized by Kernel CAPI, ie. it must
|
Calls to this function are not serialized by Kernel CAPI, ie. it must
|
||||||
be prepared to be re-entered.
|
be prepared to be re-entered.
|
||||||
|
|
||||||
|
@ -154,7 +154,8 @@ read_proc_t *ctr_read_proc
|
||||||
system entry, /proc/capi/controllers/<n>; will be called with a
|
system entry, /proc/capi/controllers/<n>; will be called with a
|
||||||
pointer to the device's capi_ctr structure as the last (data) argument
|
pointer to the device's capi_ctr structure as the last (data) argument
|
||||||
|
|
||||||
Note: Callback functions are never called in interrupt context.
|
Note: Callback functions except send_message() are never called in interrupt
|
||||||
|
context.
|
||||||
|
|
||||||
- to be filled in before calling capi_ctr_ready():
|
- to be filled in before calling capi_ctr_ready():
|
||||||
|
|
||||||
|
@ -171,14 +172,40 @@ u8 serial[CAPI_SERIAL_LEN]
|
||||||
value to return for CAPI_GET_SERIAL
|
value to return for CAPI_GET_SERIAL
|
||||||
|
|
||||||
|
|
||||||
4.3 The _cmsg Structure
|
4.3 SKBs
|
||||||
|
|
||||||
|
CAPI messages are passed between Kernel CAPI and the driver via send_message()
|
||||||
|
and capi_ctr_handle_message(), stored in the data portion of a socket buffer
|
||||||
|
(skb). Each skb contains a single CAPI message coded according to the CAPI 2.0
|
||||||
|
standard.
|
||||||
|
|
||||||
|
For the data transfer messages, DATA_B3_REQ and DATA_B3_IND, the actual
|
||||||
|
payload data immediately follows the CAPI message itself within the same skb.
|
||||||
|
The Data and Data64 parameters are not used for processing. The Data64
|
||||||
|
parameter may be omitted by setting the length field of the CAPI message to 22
|
||||||
|
instead of 30.
|
||||||
|
|
||||||
|
|
||||||
|
4.4 The _cmsg Structure
|
||||||
|
|
||||||
(declared in <linux/isdn/capiutil.h>)
|
(declared in <linux/isdn/capiutil.h>)
|
||||||
|
|
||||||
The _cmsg structure stores the contents of a CAPI 2.0 message in an easily
|
The _cmsg structure stores the contents of a CAPI 2.0 message in an easily
|
||||||
accessible form. It contains members for all possible CAPI 2.0 parameters, of
|
accessible form. It contains members for all possible CAPI 2.0 parameters,
|
||||||
which only those appearing in the message type currently being processed are
|
including subparameters of the Additional Info and B Protocol structured
|
||||||
actually used. Unused members should be set to zero.
|
parameters, with the following exceptions:
|
||||||
|
|
||||||
|
* second Calling party number (CONNECT_IND)
|
||||||
|
|
||||||
|
* Data64 (DATA_B3_REQ and DATA_B3_IND)
|
||||||
|
|
||||||
|
* Sending complete (subparameter of Additional Info, CONNECT_REQ and INFO_REQ)
|
||||||
|
|
||||||
|
* Global Configuration (subparameter of B Protocol, CONNECT_REQ, CONNECT_RESP
|
||||||
|
and SELECT_B_PROTOCOL_REQ)
|
||||||
|
|
||||||
|
Only those parameters appearing in the message type currently being processed
|
||||||
|
are actually used. Unused members should be set to zero.
|
||||||
|
|
||||||
Members are named after the CAPI 2.0 standard names of the parameters they
|
Members are named after the CAPI 2.0 standard names of the parameters they
|
||||||
represent. See <linux/isdn/capiutil.h> for the exact spelling. Member data
|
represent. See <linux/isdn/capiutil.h> for the exact spelling. Member data
|
||||||
|
@ -190,18 +217,19 @@ u16 for CAPI parameters of type 'word'
|
||||||
|
|
||||||
u32 for CAPI parameters of type 'dword'
|
u32 for CAPI parameters of type 'dword'
|
||||||
|
|
||||||
_cstruct for CAPI parameters of type 'struct' not containing any
|
_cstruct for CAPI parameters of type 'struct'
|
||||||
variably-sized (struct) subparameters (eg. 'Called Party Number')
|
|
||||||
The member is a pointer to a buffer containing the parameter in
|
The member is a pointer to a buffer containing the parameter in
|
||||||
CAPI encoding (length + content). It may also be NULL, which will
|
CAPI encoding (length + content). It may also be NULL, which will
|
||||||
be taken to represent an empty (zero length) parameter.
|
be taken to represent an empty (zero length) parameter.
|
||||||
|
Subparameters are stored in encoded form within the content part.
|
||||||
|
|
||||||
_cmstruct for CAPI parameters of type 'struct' containing 'struct'
|
_cmstruct alternative representation for CAPI parameters of type 'struct'
|
||||||
subparameters ('Additional Info' and 'B Protocol')
|
(used only for the 'Additional Info' and 'B Protocol' parameters)
|
||||||
The representation is a single byte containing one of the values:
|
The representation is a single byte containing one of the values:
|
||||||
CAPI_DEFAULT: the parameter is empty
|
CAPI_DEFAULT: The parameter is empty/absent.
|
||||||
CAPI_COMPOSE: the values of the subparameters are stored
|
CAPI_COMPOSE: The parameter is present.
|
||||||
individually in the corresponding _cmsg structure members
|
Subparameter values are stored individually in the corresponding
|
||||||
|
_cmsg structure members.
|
||||||
|
|
||||||
Functions capi_cmsg2message() and capi_message2cmsg() are provided to convert
|
Functions capi_cmsg2message() and capi_message2cmsg() are provided to convert
|
||||||
messages between their transport encoding described in the CAPI 2.0 standard
|
messages between their transport encoding described in the CAPI 2.0 standard
|
||||||
|
@ -297,3 +325,26 @@ char *capi_cmd2str(u8 Command, u8 Subcommand)
|
||||||
be NULL if the command/subcommand is not one of those defined in the
|
be NULL if the command/subcommand is not one of those defined in the
|
||||||
CAPI 2.0 standard.
|
CAPI 2.0 standard.
|
||||||
|
|
||||||
|
|
||||||
|
7. Debugging
|
||||||
|
|
||||||
|
The module kernelcapi has a module parameter showcapimsgs controlling some
|
||||||
|
debugging output produced by the module. It can only be set when the module is
|
||||||
|
loaded, via a parameter "showcapimsgs=<n>" to the modprobe command, either on
|
||||||
|
the command line or in the configuration file.
|
||||||
|
|
||||||
|
If the lowest bit of showcapimsgs is set, kernelcapi logs controller and
|
||||||
|
application up and down events.
|
||||||
|
|
||||||
|
In addition, every registered CAPI controller has an associated traceflag
|
||||||
|
parameter controlling how CAPI messages sent from and to tha controller are
|
||||||
|
logged. The traceflag parameter is initialized with the value of the
|
||||||
|
showcapimsgs parameter when the controller is registered, but can later be
|
||||||
|
changed via the MANUFACTURER_REQ command KCAPI_CMD_TRACE.
|
||||||
|
|
||||||
|
If the value of traceflag is non-zero, CAPI messages are logged.
|
||||||
|
DATA_B3 messages are only logged if the value of traceflag is > 2.
|
||||||
|
|
||||||
|
If the lowest bit of traceflag is set, only the command/subcommand and message
|
||||||
|
length are logged. Otherwise, kernelcapi logs a readable representation of
|
||||||
|
the entire message.
|
||||||
|
|
|
@ -671,6 +671,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
earlyprintk= [X86,SH,BLACKFIN]
|
earlyprintk= [X86,SH,BLACKFIN]
|
||||||
earlyprintk=vga
|
earlyprintk=vga
|
||||||
earlyprintk=serial[,ttySn[,baudrate]]
|
earlyprintk=serial[,ttySn[,baudrate]]
|
||||||
|
earlyprintk=ttySn[,baudrate]
|
||||||
earlyprintk=dbgp[debugController#]
|
earlyprintk=dbgp[debugController#]
|
||||||
|
|
||||||
Append ",keep" to not disable it when the real console
|
Append ",keep" to not disable it when the real console
|
||||||
|
|
|
@ -90,6 +90,11 @@ Examples:
|
||||||
pgset "dstmac 00:00:00:00:00:00" sets MAC destination address
|
pgset "dstmac 00:00:00:00:00:00" sets MAC destination address
|
||||||
pgset "srcmac 00:00:00:00:00:00" sets MAC source address
|
pgset "srcmac 00:00:00:00:00:00" sets MAC source address
|
||||||
|
|
||||||
|
pgset "queue_map_min 0" Sets the min value of tx queue interval
|
||||||
|
pgset "queue_map_max 7" Sets the max value of tx queue interval, for multiqueue devices
|
||||||
|
To select queue 1 of a given device,
|
||||||
|
use queue_map_min=1 and queue_map_max=1
|
||||||
|
|
||||||
pgset "src_mac_count 1" Sets the number of MACs we'll range through.
|
pgset "src_mac_count 1" Sets the number of MACs we'll range through.
|
||||||
The 'minimum' MAC is what you set with srcmac.
|
The 'minimum' MAC is what you set with srcmac.
|
||||||
|
|
||||||
|
@ -101,6 +106,9 @@ Examples:
|
||||||
IPDST_RND, UDPSRC_RND,
|
IPDST_RND, UDPSRC_RND,
|
||||||
UDPDST_RND, MACSRC_RND, MACDST_RND
|
UDPDST_RND, MACSRC_RND, MACDST_RND
|
||||||
MPLS_RND, VID_RND, SVID_RND
|
MPLS_RND, VID_RND, SVID_RND
|
||||||
|
QUEUE_MAP_RND # queue map random
|
||||||
|
QUEUE_MAP_CPU # queue map mirrors smp_processor_id()
|
||||||
|
|
||||||
|
|
||||||
pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then
|
pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then
|
||||||
cycle through the port range.
|
cycle through the port range.
|
||||||
|
|
|
@ -3,6 +3,25 @@ HIGHPOINT ROCKETRAID 3xxx/4xxx ADAPTER DRIVER (hptiop)
|
||||||
Controller Register Map
|
Controller Register Map
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
For RR44xx Intel IOP based adapters, the controller IOP is accessed via PCI BAR0 and BAR2:
|
||||||
|
|
||||||
|
BAR0 offset Register
|
||||||
|
0x11C5C Link Interface IRQ Set
|
||||||
|
0x11C60 Link Interface IRQ Clear
|
||||||
|
|
||||||
|
BAR2 offset Register
|
||||||
|
0x10 Inbound Message Register 0
|
||||||
|
0x14 Inbound Message Register 1
|
||||||
|
0x18 Outbound Message Register 0
|
||||||
|
0x1C Outbound Message Register 1
|
||||||
|
0x20 Inbound Doorbell Register
|
||||||
|
0x24 Inbound Interrupt Status Register
|
||||||
|
0x28 Inbound Interrupt Mask Register
|
||||||
|
0x30 Outbound Interrupt Status Register
|
||||||
|
0x34 Outbound Interrupt Mask Register
|
||||||
|
0x40 Inbound Queue Port
|
||||||
|
0x44 Outbound Queue Port
|
||||||
|
|
||||||
For Intel IOP based adapters, the controller IOP is accessed via PCI BAR0:
|
For Intel IOP based adapters, the controller IOP is accessed via PCI BAR0:
|
||||||
|
|
||||||
BAR0 offset Register
|
BAR0 offset Register
|
||||||
|
@ -93,7 +112,7 @@ The driver exposes following sysfs attributes:
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Copyright (C) 2006-2007 HighPoint Technologies, Inc. All Rights Reserved.
|
Copyright (C) 2006-2009 HighPoint Technologies, Inc. All Rights Reserved.
|
||||||
|
|
||||||
This file is distributed in the hope that it will be useful,
|
This file is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
|
|
@ -52,15 +52,15 @@ The KSM daemon is controlled by sysfs files in /sys/kernel/mm/ksm/,
|
||||||
readable by all but writable only by root:
|
readable by all but writable only by root:
|
||||||
|
|
||||||
max_kernel_pages - set to maximum number of kernel pages that KSM may use
|
max_kernel_pages - set to maximum number of kernel pages that KSM may use
|
||||||
e.g. "echo 2000 > /sys/kernel/mm/ksm/max_kernel_pages"
|
e.g. "echo 100000 > /sys/kernel/mm/ksm/max_kernel_pages"
|
||||||
Value 0 imposes no limit on the kernel pages KSM may use;
|
Value 0 imposes no limit on the kernel pages KSM may use;
|
||||||
but note that any process using MADV_MERGEABLE can cause
|
but note that any process using MADV_MERGEABLE can cause
|
||||||
KSM to allocate these pages, unswappable until it exits.
|
KSM to allocate these pages, unswappable until it exits.
|
||||||
Default: 2000 (chosen for demonstration purposes)
|
Default: quarter of memory (chosen to not pin too much)
|
||||||
|
|
||||||
pages_to_scan - how many present pages to scan before ksmd goes to sleep
|
pages_to_scan - how many present pages to scan before ksmd goes to sleep
|
||||||
e.g. "echo 200 > /sys/kernel/mm/ksm/pages_to_scan"
|
e.g. "echo 100 > /sys/kernel/mm/ksm/pages_to_scan"
|
||||||
Default: 200 (chosen for demonstration purposes)
|
Default: 100 (chosen for demonstration purposes)
|
||||||
|
|
||||||
sleep_millisecs - how many milliseconds ksmd should sleep before next scan
|
sleep_millisecs - how many milliseconds ksmd should sleep before next scan
|
||||||
e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs"
|
e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs"
|
||||||
|
@ -70,7 +70,8 @@ run - set 0 to stop ksmd from running but keep merged pages,
|
||||||
set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run",
|
set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run",
|
||||||
set 2 to stop ksmd and unmerge all pages currently merged,
|
set 2 to stop ksmd and unmerge all pages currently merged,
|
||||||
but leave mergeable areas registered for next run
|
but leave mergeable areas registered for next run
|
||||||
Default: 1 (for immediate use by apps which register)
|
Default: 0 (must be changed to 1 to activate KSM,
|
||||||
|
except if CONFIG_SYSFS is disabled)
|
||||||
|
|
||||||
The effectiveness of KSM and MADV_MERGEABLE is shown in /sys/kernel/mm/ksm/:
|
The effectiveness of KSM and MADV_MERGEABLE is shown in /sys/kernel/mm/ksm/:
|
||||||
|
|
||||||
|
@ -86,4 +87,4 @@ pages_volatile embraces several different kinds of activity, but a high
|
||||||
proportion there would also indicate poor use of madvise MADV_MERGEABLE.
|
proportion there would also indicate poor use of madvise MADV_MERGEABLE.
|
||||||
|
|
||||||
Izik Eidus,
|
Izik Eidus,
|
||||||
Hugh Dickins, 30 July 2009
|
Hugh Dickins, 24 Sept 2009
|
||||||
|
|
|
@ -2,7 +2,10 @@
|
||||||
* page-types: Tool for querying page flags
|
* page-types: Tool for querying page flags
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 Intel corporation
|
* Copyright (C) 2009 Intel corporation
|
||||||
* Copyright (C) 2009 Wu Fengguang <fengguang.wu@intel.com>
|
*
|
||||||
|
* Authors: Wu Fengguang <fengguang.wu@intel.com>
|
||||||
|
*
|
||||||
|
* Released under the General Public License (GPL).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define _LARGEFILE64_SOURCE
|
#define _LARGEFILE64_SOURCE
|
||||||
|
@ -69,7 +72,9 @@
|
||||||
#define KPF_COMPOUND_TAIL 16
|
#define KPF_COMPOUND_TAIL 16
|
||||||
#define KPF_HUGE 17
|
#define KPF_HUGE 17
|
||||||
#define KPF_UNEVICTABLE 18
|
#define KPF_UNEVICTABLE 18
|
||||||
|
#define KPF_HWPOISON 19
|
||||||
#define KPF_NOPAGE 20
|
#define KPF_NOPAGE 20
|
||||||
|
#define KPF_KSM 21
|
||||||
|
|
||||||
/* [32-] kernel hacking assistances */
|
/* [32-] kernel hacking assistances */
|
||||||
#define KPF_RESERVED 32
|
#define KPF_RESERVED 32
|
||||||
|
@ -116,7 +121,9 @@ static char *page_flag_names[] = {
|
||||||
[KPF_COMPOUND_TAIL] = "T:compound_tail",
|
[KPF_COMPOUND_TAIL] = "T:compound_tail",
|
||||||
[KPF_HUGE] = "G:huge",
|
[KPF_HUGE] = "G:huge",
|
||||||
[KPF_UNEVICTABLE] = "u:unevictable",
|
[KPF_UNEVICTABLE] = "u:unevictable",
|
||||||
|
[KPF_HWPOISON] = "X:hwpoison",
|
||||||
[KPF_NOPAGE] = "n:nopage",
|
[KPF_NOPAGE] = "n:nopage",
|
||||||
|
[KPF_KSM] = "x:ksm",
|
||||||
|
|
||||||
[KPF_RESERVED] = "r:reserved",
|
[KPF_RESERVED] = "r:reserved",
|
||||||
[KPF_MLOCKED] = "m:mlocked",
|
[KPF_MLOCKED] = "m:mlocked",
|
||||||
|
@ -152,9 +159,6 @@ static unsigned long opt_size[MAX_ADDR_RANGES];
|
||||||
static int nr_vmas;
|
static int nr_vmas;
|
||||||
static unsigned long pg_start[MAX_VMAS];
|
static unsigned long pg_start[MAX_VMAS];
|
||||||
static unsigned long pg_end[MAX_VMAS];
|
static unsigned long pg_end[MAX_VMAS];
|
||||||
static unsigned long voffset;
|
|
||||||
|
|
||||||
static int pagemap_fd;
|
|
||||||
|
|
||||||
#define MAX_BIT_FILTERS 64
|
#define MAX_BIT_FILTERS 64
|
||||||
static int nr_bit_filters;
|
static int nr_bit_filters;
|
||||||
|
@ -163,9 +167,16 @@ static uint64_t opt_bits[MAX_BIT_FILTERS];
|
||||||
|
|
||||||
static int page_size;
|
static int page_size;
|
||||||
|
|
||||||
#define PAGES_BATCH (64 << 10) /* 64k pages */
|
static int pagemap_fd;
|
||||||
static int kpageflags_fd;
|
static int kpageflags_fd;
|
||||||
|
|
||||||
|
static int opt_hwpoison;
|
||||||
|
static int opt_unpoison;
|
||||||
|
|
||||||
|
static char *hwpoison_debug_fs = "/debug/hwpoison";
|
||||||
|
static int hwpoison_inject_fd;
|
||||||
|
static int hwpoison_forget_fd;
|
||||||
|
|
||||||
#define HASH_SHIFT 13
|
#define HASH_SHIFT 13
|
||||||
#define HASH_SIZE (1 << HASH_SHIFT)
|
#define HASH_SIZE (1 << HASH_SHIFT)
|
||||||
#define HASH_MASK (HASH_SIZE - 1)
|
#define HASH_MASK (HASH_SIZE - 1)
|
||||||
|
@ -207,6 +218,74 @@ static void fatal(const char *x, ...)
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int checked_open(const char *pathname, int flags)
|
||||||
|
{
|
||||||
|
int fd = open(pathname, flags);
|
||||||
|
|
||||||
|
if (fd < 0) {
|
||||||
|
perror(pathname);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* pagemap/kpageflags routines
|
||||||
|
*/
|
||||||
|
|
||||||
|
static unsigned long do_u64_read(int fd, char *name,
|
||||||
|
uint64_t *buf,
|
||||||
|
unsigned long index,
|
||||||
|
unsigned long count)
|
||||||
|
{
|
||||||
|
long bytes;
|
||||||
|
|
||||||
|
if (index > ULONG_MAX / 8)
|
||||||
|
fatal("index overflow: %lu\n", index);
|
||||||
|
|
||||||
|
if (lseek(fd, index * 8, SEEK_SET) < 0) {
|
||||||
|
perror(name);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes = read(fd, buf, count * 8);
|
||||||
|
if (bytes < 0) {
|
||||||
|
perror(name);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
if (bytes % 8)
|
||||||
|
fatal("partial read: %lu bytes\n", bytes);
|
||||||
|
|
||||||
|
return bytes / 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned long kpageflags_read(uint64_t *buf,
|
||||||
|
unsigned long index,
|
||||||
|
unsigned long pages)
|
||||||
|
{
|
||||||
|
return do_u64_read(kpageflags_fd, PROC_KPAGEFLAGS, buf, index, pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned long pagemap_read(uint64_t *buf,
|
||||||
|
unsigned long index,
|
||||||
|
unsigned long pages)
|
||||||
|
{
|
||||||
|
return do_u64_read(pagemap_fd, "/proc/pid/pagemap", buf, index, pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned long pagemap_pfn(uint64_t val)
|
||||||
|
{
|
||||||
|
unsigned long pfn;
|
||||||
|
|
||||||
|
if (val & PM_PRESENT)
|
||||||
|
pfn = PM_PFRAME(val);
|
||||||
|
else
|
||||||
|
pfn = 0;
|
||||||
|
|
||||||
|
return pfn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* page flag names
|
* page flag names
|
||||||
|
@ -255,7 +334,8 @@ static char *page_flag_longname(uint64_t flags)
|
||||||
* page list and summary
|
* page list and summary
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void show_page_range(unsigned long offset, uint64_t flags)
|
static void show_page_range(unsigned long voffset,
|
||||||
|
unsigned long offset, uint64_t flags)
|
||||||
{
|
{
|
||||||
static uint64_t flags0;
|
static uint64_t flags0;
|
||||||
static unsigned long voff;
|
static unsigned long voff;
|
||||||
|
@ -281,7 +361,8 @@ static void show_page_range(unsigned long offset, uint64_t flags)
|
||||||
count = 1;
|
count = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void show_page(unsigned long offset, uint64_t flags)
|
static void show_page(unsigned long voffset,
|
||||||
|
unsigned long offset, uint64_t flags)
|
||||||
{
|
{
|
||||||
if (opt_pid)
|
if (opt_pid)
|
||||||
printf("%lx\t", voffset);
|
printf("%lx\t", voffset);
|
||||||
|
@ -362,6 +443,62 @@ static uint64_t well_known_flags(uint64_t flags)
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint64_t kpageflags_flags(uint64_t flags)
|
||||||
|
{
|
||||||
|
flags = expand_overloaded_flags(flags);
|
||||||
|
|
||||||
|
if (!opt_raw)
|
||||||
|
flags = well_known_flags(flags);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* page actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void prepare_hwpoison_fd(void)
|
||||||
|
{
|
||||||
|
char buf[100];
|
||||||
|
|
||||||
|
if (opt_hwpoison && !hwpoison_inject_fd) {
|
||||||
|
sprintf(buf, "%s/corrupt-pfn", hwpoison_debug_fs);
|
||||||
|
hwpoison_inject_fd = checked_open(buf, O_WRONLY);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opt_unpoison && !hwpoison_forget_fd) {
|
||||||
|
sprintf(buf, "%s/renew-pfn", hwpoison_debug_fs);
|
||||||
|
hwpoison_forget_fd = checked_open(buf, O_WRONLY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int hwpoison_page(unsigned long offset)
|
||||||
|
{
|
||||||
|
char buf[100];
|
||||||
|
int len;
|
||||||
|
|
||||||
|
len = sprintf(buf, "0x%lx\n", offset);
|
||||||
|
len = write(hwpoison_inject_fd, buf, len);
|
||||||
|
if (len < 0) {
|
||||||
|
perror("hwpoison inject");
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int unpoison_page(unsigned long offset)
|
||||||
|
{
|
||||||
|
char buf[100];
|
||||||
|
int len;
|
||||||
|
|
||||||
|
len = sprintf(buf, "0x%lx\n", offset);
|
||||||
|
len = write(hwpoison_forget_fd, buf, len);
|
||||||
|
if (len < 0) {
|
||||||
|
perror("hwpoison forget");
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* page frame walker
|
* page frame walker
|
||||||
|
@ -394,104 +531,83 @@ static int hash_slot(uint64_t flags)
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_page(unsigned long offset, uint64_t flags)
|
static void add_page(unsigned long voffset,
|
||||||
|
unsigned long offset, uint64_t flags)
|
||||||
{
|
{
|
||||||
flags = expand_overloaded_flags(flags);
|
flags = kpageflags_flags(flags);
|
||||||
|
|
||||||
if (!opt_raw)
|
|
||||||
flags = well_known_flags(flags);
|
|
||||||
|
|
||||||
if (!bit_mask_ok(flags))
|
if (!bit_mask_ok(flags))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (opt_hwpoison)
|
||||||
|
hwpoison_page(offset);
|
||||||
|
if (opt_unpoison)
|
||||||
|
unpoison_page(offset);
|
||||||
|
|
||||||
if (opt_list == 1)
|
if (opt_list == 1)
|
||||||
show_page_range(offset, flags);
|
show_page_range(voffset, offset, flags);
|
||||||
else if (opt_list == 2)
|
else if (opt_list == 2)
|
||||||
show_page(offset, flags);
|
show_page(voffset, offset, flags);
|
||||||
|
|
||||||
nr_pages[hash_slot(flags)]++;
|
nr_pages[hash_slot(flags)]++;
|
||||||
total_pages++;
|
total_pages++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void walk_pfn(unsigned long index, unsigned long count)
|
#define KPAGEFLAGS_BATCH (64 << 10) /* 64k pages */
|
||||||
|
static void walk_pfn(unsigned long voffset,
|
||||||
|
unsigned long index,
|
||||||
|
unsigned long count)
|
||||||
{
|
{
|
||||||
|
uint64_t buf[KPAGEFLAGS_BATCH];
|
||||||
unsigned long batch;
|
unsigned long batch;
|
||||||
unsigned long n;
|
unsigned long pages;
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
|
|
||||||
if (index > ULONG_MAX / KPF_BYTES)
|
|
||||||
fatal("index overflow: %lu\n", index);
|
|
||||||
|
|
||||||
lseek(kpageflags_fd, index * KPF_BYTES, SEEK_SET);
|
|
||||||
|
|
||||||
while (count) {
|
while (count) {
|
||||||
uint64_t kpageflags_buf[KPF_BYTES * PAGES_BATCH];
|
batch = min_t(unsigned long, count, KPAGEFLAGS_BATCH);
|
||||||
|
pages = kpageflags_read(buf, index, batch);
|
||||||
batch = min_t(unsigned long, count, PAGES_BATCH);
|
if (pages == 0)
|
||||||
n = read(kpageflags_fd, kpageflags_buf, batch * KPF_BYTES);
|
|
||||||
if (n == 0)
|
|
||||||
break;
|
break;
|
||||||
if (n < 0) {
|
|
||||||
perror(PROC_KPAGEFLAGS);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (n % KPF_BYTES != 0)
|
for (i = 0; i < pages; i++)
|
||||||
fatal("partial read: %lu bytes\n", n);
|
add_page(voffset + i, index + i, buf[i]);
|
||||||
n = n / KPF_BYTES;
|
|
||||||
|
|
||||||
for (i = 0; i < n; i++)
|
index += pages;
|
||||||
add_page(index + i, kpageflags_buf[i]);
|
count -= pages;
|
||||||
|
|
||||||
index += batch;
|
|
||||||
count -= batch;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define PAGEMAP_BATCH (64 << 10)
|
||||||
#define PAGEMAP_BATCH 4096
|
static void walk_vma(unsigned long index, unsigned long count)
|
||||||
static unsigned long task_pfn(unsigned long pgoff)
|
|
||||||
{
|
{
|
||||||
static uint64_t buf[PAGEMAP_BATCH];
|
uint64_t buf[PAGEMAP_BATCH];
|
||||||
static unsigned long start;
|
unsigned long batch;
|
||||||
static long count;
|
unsigned long pages;
|
||||||
uint64_t pfn;
|
unsigned long pfn;
|
||||||
|
unsigned long i;
|
||||||
|
|
||||||
if (pgoff < start || pgoff >= start + count) {
|
while (count) {
|
||||||
if (lseek64(pagemap_fd,
|
batch = min_t(unsigned long, count, PAGEMAP_BATCH);
|
||||||
(uint64_t)pgoff * PM_ENTRY_BYTES,
|
pages = pagemap_read(buf, index, batch);
|
||||||
SEEK_SET) < 0) {
|
if (pages == 0)
|
||||||
perror("pagemap seek");
|
break;
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
|
for (i = 0; i < pages; i++) {
|
||||||
|
pfn = pagemap_pfn(buf[i]);
|
||||||
|
if (pfn)
|
||||||
|
walk_pfn(index + i, pfn, 1);
|
||||||
}
|
}
|
||||||
count = read(pagemap_fd, buf, sizeof(buf));
|
|
||||||
if (count == 0)
|
index += pages;
|
||||||
return 0;
|
count -= pages;
|
||||||
if (count < 0) {
|
|
||||||
perror("pagemap read");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
if (count % PM_ENTRY_BYTES) {
|
|
||||||
fatal("pagemap read not aligned.\n");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
count /= PM_ENTRY_BYTES;
|
|
||||||
start = pgoff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pfn = buf[pgoff - start];
|
|
||||||
if (pfn & PM_PRESENT)
|
|
||||||
pfn = PM_PFRAME(pfn);
|
|
||||||
else
|
|
||||||
pfn = 0;
|
|
||||||
|
|
||||||
return pfn;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void walk_task(unsigned long index, unsigned long count)
|
static void walk_task(unsigned long index, unsigned long count)
|
||||||
{
|
{
|
||||||
int i = 0;
|
|
||||||
const unsigned long end = index + count;
|
const unsigned long end = index + count;
|
||||||
|
unsigned long start;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
while (index < end) {
|
while (index < end) {
|
||||||
|
|
||||||
|
@ -501,15 +617,11 @@ static void walk_task(unsigned long index, unsigned long count)
|
||||||
if (pg_start[i] >= end)
|
if (pg_start[i] >= end)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
voffset = max_t(unsigned long, pg_start[i], index);
|
start = max_t(unsigned long, pg_start[i], index);
|
||||||
index = min_t(unsigned long, pg_end[i], end);
|
index = min_t(unsigned long, pg_end[i], end);
|
||||||
|
|
||||||
assert(voffset < index);
|
assert(start < index);
|
||||||
for (; voffset < index; voffset++) {
|
walk_vma(start, index - start);
|
||||||
unsigned long pfn = task_pfn(voffset);
|
|
||||||
if (pfn)
|
|
||||||
walk_pfn(pfn, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -527,18 +639,14 @@ static void walk_addr_ranges(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
kpageflags_fd = open(PROC_KPAGEFLAGS, O_RDONLY);
|
kpageflags_fd = checked_open(PROC_KPAGEFLAGS, O_RDONLY);
|
||||||
if (kpageflags_fd < 0) {
|
|
||||||
perror(PROC_KPAGEFLAGS);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!nr_addr_ranges)
|
if (!nr_addr_ranges)
|
||||||
add_addr_range(0, ULONG_MAX);
|
add_addr_range(0, ULONG_MAX);
|
||||||
|
|
||||||
for (i = 0; i < nr_addr_ranges; i++)
|
for (i = 0; i < nr_addr_ranges; i++)
|
||||||
if (!opt_pid)
|
if (!opt_pid)
|
||||||
walk_pfn(opt_offset[i], opt_size[i]);
|
walk_pfn(0, opt_offset[i], opt_size[i]);
|
||||||
else
|
else
|
||||||
walk_task(opt_offset[i], opt_size[i]);
|
walk_task(opt_offset[i], opt_size[i]);
|
||||||
|
|
||||||
|
@ -575,6 +683,8 @@ static void usage(void)
|
||||||
" -l|--list Show page details in ranges\n"
|
" -l|--list Show page details in ranges\n"
|
||||||
" -L|--list-each Show page details one by one\n"
|
" -L|--list-each Show page details one by one\n"
|
||||||
" -N|--no-summary Don't show summay info\n"
|
" -N|--no-summary Don't show summay info\n"
|
||||||
|
" -X|--hwpoison hwpoison pages\n"
|
||||||
|
" -x|--unpoison unpoison pages\n"
|
||||||
" -h|--help Show this usage message\n"
|
" -h|--help Show this usage message\n"
|
||||||
"addr-spec:\n"
|
"addr-spec:\n"
|
||||||
" N one page at offset N (unit: pages)\n"
|
" N one page at offset N (unit: pages)\n"
|
||||||
|
@ -624,11 +734,7 @@ static void parse_pid(const char *str)
|
||||||
opt_pid = parse_number(str);
|
opt_pid = parse_number(str);
|
||||||
|
|
||||||
sprintf(buf, "/proc/%d/pagemap", opt_pid);
|
sprintf(buf, "/proc/%d/pagemap", opt_pid);
|
||||||
pagemap_fd = open(buf, O_RDONLY);
|
pagemap_fd = checked_open(buf, O_RDONLY);
|
||||||
if (pagemap_fd < 0) {
|
|
||||||
perror(buf);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
sprintf(buf, "/proc/%d/maps", opt_pid);
|
sprintf(buf, "/proc/%d/maps", opt_pid);
|
||||||
file = fopen(buf, "r");
|
file = fopen(buf, "r");
|
||||||
|
@ -788,6 +894,8 @@ static struct option opts[] = {
|
||||||
{ "list" , 0, NULL, 'l' },
|
{ "list" , 0, NULL, 'l' },
|
||||||
{ "list-each" , 0, NULL, 'L' },
|
{ "list-each" , 0, NULL, 'L' },
|
||||||
{ "no-summary", 0, NULL, 'N' },
|
{ "no-summary", 0, NULL, 'N' },
|
||||||
|
{ "hwpoison" , 0, NULL, 'X' },
|
||||||
|
{ "unpoison" , 0, NULL, 'x' },
|
||||||
{ "help" , 0, NULL, 'h' },
|
{ "help" , 0, NULL, 'h' },
|
||||||
{ NULL , 0, NULL, 0 }
|
{ NULL , 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
@ -799,7 +907,7 @@ int main(int argc, char *argv[])
|
||||||
page_size = getpagesize();
|
page_size = getpagesize();
|
||||||
|
|
||||||
while ((c = getopt_long(argc, argv,
|
while ((c = getopt_long(argc, argv,
|
||||||
"rp:f:a:b:lLNh", opts, NULL)) != -1) {
|
"rp:f:a:b:lLNXxh", opts, NULL)) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'r':
|
case 'r':
|
||||||
opt_raw = 1;
|
opt_raw = 1;
|
||||||
|
@ -825,6 +933,14 @@ int main(int argc, char *argv[])
|
||||||
case 'N':
|
case 'N':
|
||||||
opt_no_summary = 1;
|
opt_no_summary = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'X':
|
||||||
|
opt_hwpoison = 1;
|
||||||
|
prepare_hwpoison_fd();
|
||||||
|
break;
|
||||||
|
case 'x':
|
||||||
|
opt_unpoison = 1;
|
||||||
|
prepare_hwpoison_fd();
|
||||||
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage();
|
usage();
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -844,7 +960,7 @@ int main(int argc, char *argv[])
|
||||||
walk_addr_ranges();
|
walk_addr_ranges();
|
||||||
|
|
||||||
if (opt_list == 1)
|
if (opt_list == 1)
|
||||||
show_page_range(0, 0); /* drain the buffer */
|
show_page_range(0, 0, 0); /* drain the buffer */
|
||||||
|
|
||||||
if (opt_no_summary)
|
if (opt_no_summary)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -57,7 +57,9 @@ There are three components to pagemap:
|
||||||
16. COMPOUND_TAIL
|
16. COMPOUND_TAIL
|
||||||
16. HUGE
|
16. HUGE
|
||||||
18. UNEVICTABLE
|
18. UNEVICTABLE
|
||||||
|
19. HWPOISON
|
||||||
20. NOPAGE
|
20. NOPAGE
|
||||||
|
21. KSM
|
||||||
|
|
||||||
Short descriptions to the page flags:
|
Short descriptions to the page flags:
|
||||||
|
|
||||||
|
@ -86,9 +88,15 @@ Short descriptions to the page flags:
|
||||||
17. HUGE
|
17. HUGE
|
||||||
this is an integral part of a HugeTLB page
|
this is an integral part of a HugeTLB page
|
||||||
|
|
||||||
|
19. HWPOISON
|
||||||
|
hardware detected memory corruption on this page: don't touch the data!
|
||||||
|
|
||||||
20. NOPAGE
|
20. NOPAGE
|
||||||
no page frame exists at the requested address
|
no page frame exists at the requested address
|
||||||
|
|
||||||
|
21. KSM
|
||||||
|
identical memory pages dynamically shared between one or more processes
|
||||||
|
|
||||||
[IO related page flags]
|
[IO related page flags]
|
||||||
1. ERROR IO error occurred
|
1. ERROR IO error occurred
|
||||||
3. UPTODATE page has up-to-date data
|
3. UPTODATE page has up-to-date data
|
||||||
|
|
25
MAINTAINERS
25
MAINTAINERS
|
@ -1236,6 +1236,13 @@ L: netdev@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: drivers/net/tg3.*
|
F: drivers/net/tg3.*
|
||||||
|
|
||||||
|
BROCADE BFA FC SCSI DRIVER
|
||||||
|
P: Jing Huang
|
||||||
|
M: huangj@brocade.com
|
||||||
|
L: linux-scsi@vger.kernel.org
|
||||||
|
S: Supported
|
||||||
|
F: drivers/scsi/bfa/
|
||||||
|
|
||||||
BSG (block layer generic sg v4 driver)
|
BSG (block layer generic sg v4 driver)
|
||||||
M: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
M: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
||||||
L: linux-scsi@vger.kernel.org
|
L: linux-scsi@vger.kernel.org
|
||||||
|
@ -2063,7 +2070,7 @@ S: Maintained
|
||||||
F: fs/*
|
F: fs/*
|
||||||
|
|
||||||
FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
|
FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
|
||||||
M: Riku Voipio <riku.vipio@iki.fi>
|
M: Riku Voipio <riku.voipio@iki.fi>
|
||||||
L: lm-sensors@lm-sensors.org
|
L: lm-sensors@lm-sensors.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/hwmon/f75375s.c
|
F: drivers/hwmon/f75375s.c
|
||||||
|
@ -3648,6 +3655,13 @@ F: Documentation/blockdev/nbd.txt
|
||||||
F: drivers/block/nbd.c
|
F: drivers/block/nbd.c
|
||||||
F: include/linux/nbd.h
|
F: include/linux/nbd.h
|
||||||
|
|
||||||
|
NETWORK DROP MONITOR
|
||||||
|
M: Neil Horman <nhorman@tuxdriver.com>
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
W: https://fedorahosted.org/dropwatch/
|
||||||
|
F: net/core/drop_monitor.c
|
||||||
|
|
||||||
NETWORKING [GENERAL]
|
NETWORKING [GENERAL]
|
||||||
M: "David S. Miller" <davem@davemloft.net>
|
M: "David S. Miller" <davem@davemloft.net>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
|
@ -3978,6 +3992,7 @@ F: drivers/block/paride/
|
||||||
PARISC ARCHITECTURE
|
PARISC ARCHITECTURE
|
||||||
M: Kyle McMartin <kyle@mcmartin.ca>
|
M: Kyle McMartin <kyle@mcmartin.ca>
|
||||||
M: Helge Deller <deller@gmx.de>
|
M: Helge Deller <deller@gmx.de>
|
||||||
|
M: "James E.J. Bottomley" <jejb@parisc-linux.org>
|
||||||
L: linux-parisc@vger.kernel.org
|
L: linux-parisc@vger.kernel.org
|
||||||
W: http://www.parisc-linux.org/
|
W: http://www.parisc-linux.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
|
||||||
|
@ -4643,6 +4658,14 @@ F: drivers/ata/
|
||||||
F: include/linux/ata.h
|
F: include/linux/ata.h
|
||||||
F: include/linux/libata.h
|
F: include/linux/libata.h
|
||||||
|
|
||||||
|
SERVER ENGINES 10Gbps iSCSI - BladeEngine 2 DRIVER
|
||||||
|
P: Jayamohan Kallickal
|
||||||
|
M: jayamohank@serverengines.com
|
||||||
|
L: linux-scsi@vger.kernel.org
|
||||||
|
W: http://www.serverengines.com
|
||||||
|
S: Supported
|
||||||
|
F: drivers/scsi/be2iscsi/
|
||||||
|
|
||||||
SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
|
SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
|
||||||
M: Sathya Perla <sathyap@serverengines.com>
|
M: Sathya Perla <sathyap@serverengines.com>
|
||||||
M: Subbu Seetharaman <subbus@serverengines.com>
|
M: Subbu Seetharaman <subbus@serverengines.com>
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 32
|
SUBLEVEL = 32
|
||||||
EXTRAVERSION = -rc3
|
EXTRAVERSION = -rc4
|
||||||
NAME = Man-Eating Seals of Antiquity
|
NAME = Man-Eating Seals of Antiquity
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/time.h>
|
#include <linux/time.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/sched.h>
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <linux/timex.h>
|
#include <linux/timex.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
|
#include <asm/signal.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/mach/pci.h>
|
#include <asm/mach/pci.h>
|
||||||
#include <asm/irq_regs.h>
|
#include <asm/irq_regs.h>
|
||||||
|
|
|
@ -38,49 +38,49 @@
|
||||||
|
|
||||||
static int board_keymap[] = {
|
static int board_keymap[] = {
|
||||||
KEY(0, 0, KEY_Q),
|
KEY(0, 0, KEY_Q),
|
||||||
KEY(0, 1, KEY_W),
|
KEY(0, 1, KEY_O),
|
||||||
KEY(0, 2, KEY_E),
|
KEY(0, 2, KEY_P),
|
||||||
KEY(0, 3, KEY_R),
|
KEY(0, 3, KEY_COMMA),
|
||||||
KEY(0, 4, KEY_T),
|
KEY(0, 4, KEY_BACKSPACE),
|
||||||
KEY(0, 5, KEY_Y),
|
KEY(0, 6, KEY_A),
|
||||||
KEY(0, 6, KEY_U),
|
KEY(0, 7, KEY_S),
|
||||||
KEY(0, 7, KEY_I),
|
KEY(1, 0, KEY_W),
|
||||||
KEY(1, 0, KEY_O),
|
|
||||||
KEY(1, 1, KEY_D),
|
KEY(1, 1, KEY_D),
|
||||||
KEY(1, 2, KEY_DOT),
|
KEY(1, 2, KEY_F),
|
||||||
KEY(1, 3, KEY_V),
|
KEY(1, 3, KEY_G),
|
||||||
KEY(1, 4, KEY_DOWN),
|
KEY(1, 4, KEY_H),
|
||||||
KEY(2, 0, KEY_P),
|
KEY(1, 5, KEY_J),
|
||||||
KEY(2, 1, KEY_F),
|
KEY(1, 6, KEY_K),
|
||||||
|
KEY(1, 7, KEY_L),
|
||||||
|
KEY(2, 0, KEY_E),
|
||||||
|
KEY(2, 1, KEY_DOT),
|
||||||
KEY(2, 2, KEY_UP),
|
KEY(2, 2, KEY_UP),
|
||||||
KEY(2, 3, KEY_B),
|
KEY(2, 3, KEY_ENTER),
|
||||||
KEY(2, 4, KEY_RIGHT),
|
KEY(2, 5, KEY_Z),
|
||||||
KEY(3, 0, KEY_COMMA),
|
KEY(2, 6, KEY_X),
|
||||||
KEY(3, 1, KEY_G),
|
KEY(2, 7, KEY_C),
|
||||||
KEY(3, 2, KEY_ENTER),
|
KEY(3, 0, KEY_R),
|
||||||
|
KEY(3, 1, KEY_V),
|
||||||
|
KEY(3, 2, KEY_B),
|
||||||
KEY(3, 3, KEY_N),
|
KEY(3, 3, KEY_N),
|
||||||
KEY(4, 0, KEY_BACKSPACE),
|
KEY(3, 4, KEY_M),
|
||||||
KEY(4, 1, KEY_H),
|
KEY(3, 5, KEY_SPACE),
|
||||||
KEY(4, 3, KEY_M),
|
KEY(3, 6, KEY_SPACE),
|
||||||
|
KEY(3, 7, KEY_LEFT),
|
||||||
|
KEY(4, 0, KEY_T),
|
||||||
|
KEY(4, 1, KEY_DOWN),
|
||||||
|
KEY(4, 2, KEY_RIGHT),
|
||||||
KEY(4, 4, KEY_LEFTCTRL),
|
KEY(4, 4, KEY_LEFTCTRL),
|
||||||
KEY(5, 1, KEY_J),
|
KEY(4, 5, KEY_RIGHTALT),
|
||||||
KEY(5, 2, KEY_Z),
|
KEY(4, 6, KEY_LEFTSHIFT),
|
||||||
KEY(5, 3, KEY_SPACE),
|
KEY(5, 0, KEY_Y),
|
||||||
KEY(5, 4, KEY_LEFTSHIFT),
|
KEY(6, 0, KEY_U),
|
||||||
KEY(6, 0, KEY_A),
|
KEY(7, 0, KEY_I),
|
||||||
KEY(6, 1, KEY_K),
|
KEY(7, 1, KEY_F7),
|
||||||
KEY(6, 2, KEY_X),
|
KEY(7, 2, KEY_F8),
|
||||||
KEY(6, 3, KEY_SPACE),
|
KEY(0xff, 2, KEY_F9),
|
||||||
KEY(6, 4, KEY_FN),
|
KEY(0xff, 4, KEY_F10),
|
||||||
KEY(7, 0, KEY_S),
|
KEY(0xff, 5, KEY_F11),
|
||||||
KEY(7, 1, KEY_L),
|
|
||||||
KEY(7, 2, KEY_C),
|
|
||||||
KEY(7, 3, KEY_LEFT),
|
|
||||||
KEY(0xff, 0, KEY_F6),
|
|
||||||
KEY(0xff, 1, KEY_F7),
|
|
||||||
KEY(0xff, 2, KEY_F8),
|
|
||||||
KEY(0xff, 4, KEY_F9),
|
|
||||||
KEY(0xff, 5, KEY_F10),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct matrix_keymap_data board_map_data = {
|
static struct matrix_keymap_data board_map_data = {
|
||||||
|
|
|
@ -338,6 +338,13 @@ static struct omap_clk omap34xx_clks[] = {
|
||||||
*/
|
*/
|
||||||
#define SDRC_MPURATE_LOOPS 96
|
#define SDRC_MPURATE_LOOPS 96
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DPLL5_FREQ_FOR_USBHOST: USBHOST and USBTLL are the only clocks
|
||||||
|
* that are sourced by DPLL5, and both of these require this clock
|
||||||
|
* to be at 120 MHz for proper operation.
|
||||||
|
*/
|
||||||
|
#define DPLL5_FREQ_FOR_USBHOST 120000000
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* omap3430es2_clk_ssi_find_idlest - return CM_IDLEST info for SSI
|
* omap3430es2_clk_ssi_find_idlest - return CM_IDLEST info for SSI
|
||||||
* @clk: struct clk * being enabled
|
* @clk: struct clk * being enabled
|
||||||
|
@ -1056,6 +1063,28 @@ void omap2_clk_prepare_for_reboot(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void omap3_clk_lock_dpll5(void)
|
||||||
|
{
|
||||||
|
struct clk *dpll5_clk;
|
||||||
|
struct clk *dpll5_m2_clk;
|
||||||
|
|
||||||
|
dpll5_clk = clk_get(NULL, "dpll5_ck");
|
||||||
|
clk_set_rate(dpll5_clk, DPLL5_FREQ_FOR_USBHOST);
|
||||||
|
clk_enable(dpll5_clk);
|
||||||
|
|
||||||
|
/* Enable autoidle to allow it to enter low power bypass */
|
||||||
|
omap3_dpll_allow_idle(dpll5_clk);
|
||||||
|
|
||||||
|
/* Program dpll5_m2_clk divider for no division */
|
||||||
|
dpll5_m2_clk = clk_get(NULL, "dpll5_m2_ck");
|
||||||
|
clk_enable(dpll5_m2_clk);
|
||||||
|
clk_set_rate(dpll5_m2_clk, DPLL5_FREQ_FOR_USBHOST);
|
||||||
|
|
||||||
|
clk_disable(dpll5_m2_clk);
|
||||||
|
clk_disable(dpll5_clk);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* REVISIT: Move this init stuff out into clock.c */
|
/* REVISIT: Move this init stuff out into clock.c */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1148,6 +1177,12 @@ int __init omap2_clk_init(void)
|
||||||
*/
|
*/
|
||||||
clk_enable_init_clocks();
|
clk_enable_init_clocks();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Lock DPLL5 and put it in autoidle.
|
||||||
|
*/
|
||||||
|
if (omap_rev() >= OMAP3430_REV_ES2_0)
|
||||||
|
omap3_clk_lock_dpll5();
|
||||||
|
|
||||||
/* Avoid sleeping during omap2_clk_prepare_for_reboot() */
|
/* Avoid sleeping during omap2_clk_prepare_for_reboot() */
|
||||||
/* REVISIT: not yet ready for 343x */
|
/* REVISIT: not yet ready for 343x */
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -541,7 +541,7 @@ static int __init pm_dbg_init(void)
|
||||||
printk(KERN_ERR "%s: only OMAP3 supported\n", __func__);
|
printk(KERN_ERR "%s: only OMAP3 supported\n", __func__);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
d = debugfs_create_dir("pm_debug", NULL);
|
d = debugfs_create_dir("pm_debug", NULL);
|
||||||
if (IS_ERR(d))
|
if (IS_ERR(d))
|
||||||
return PTR_ERR(d);
|
return PTR_ERR(d);
|
||||||
|
@ -551,7 +551,7 @@ static int __init pm_dbg_init(void)
|
||||||
(void) debugfs_create_file("time", S_IRUGO,
|
(void) debugfs_create_file("time", S_IRUGO,
|
||||||
d, (void *)DEBUG_FILE_TIMERS, &debug_fops);
|
d, (void *)DEBUG_FILE_TIMERS, &debug_fops);
|
||||||
|
|
||||||
pwrdm_for_each(pwrdms_setup, (void *)d);
|
pwrdm_for_each_nolock(pwrdms_setup, (void *)d);
|
||||||
|
|
||||||
pm_dbg_dir = debugfs_create_dir("registers", d);
|
pm_dbg_dir = debugfs_create_dir("registers", d);
|
||||||
if (IS_ERR(pm_dbg_dir))
|
if (IS_ERR(pm_dbg_dir))
|
||||||
|
|
|
@ -51,97 +51,112 @@ static void (*_omap_sram_idle)(u32 *addr, int save_state);
|
||||||
|
|
||||||
static struct powerdomain *mpu_pwrdm;
|
static struct powerdomain *mpu_pwrdm;
|
||||||
|
|
||||||
/* PRCM Interrupt Handler for wakeups */
|
/*
|
||||||
|
* PRCM Interrupt Handler Helper Function
|
||||||
|
*
|
||||||
|
* The purpose of this function is to clear any wake-up events latched
|
||||||
|
* in the PRCM PM_WKST_x registers. It is possible that a wake-up event
|
||||||
|
* may occur whilst attempting to clear a PM_WKST_x register and thus
|
||||||
|
* set another bit in this register. A while loop is used to ensure
|
||||||
|
* that any peripheral wake-up events occurring while attempting to
|
||||||
|
* clear the PM_WKST_x are detected and cleared.
|
||||||
|
*/
|
||||||
|
static int prcm_clear_mod_irqs(s16 module, u8 regs)
|
||||||
|
{
|
||||||
|
u32 wkst, fclk, iclk, clken;
|
||||||
|
u16 wkst_off = (regs == 3) ? OMAP3430ES2_PM_WKST3 : PM_WKST1;
|
||||||
|
u16 fclk_off = (regs == 3) ? OMAP3430ES2_CM_FCLKEN3 : CM_FCLKEN1;
|
||||||
|
u16 iclk_off = (regs == 3) ? CM_ICLKEN3 : CM_ICLKEN1;
|
||||||
|
u16 grpsel_off = (regs == 3) ?
|
||||||
|
OMAP3430ES2_PM_MPUGRPSEL3 : OMAP3430_PM_MPUGRPSEL;
|
||||||
|
int c = 0;
|
||||||
|
|
||||||
|
wkst = prm_read_mod_reg(module, wkst_off);
|
||||||
|
wkst &= prm_read_mod_reg(module, grpsel_off);
|
||||||
|
if (wkst) {
|
||||||
|
iclk = cm_read_mod_reg(module, iclk_off);
|
||||||
|
fclk = cm_read_mod_reg(module, fclk_off);
|
||||||
|
while (wkst) {
|
||||||
|
clken = wkst;
|
||||||
|
cm_set_mod_reg_bits(clken, module, iclk_off);
|
||||||
|
/*
|
||||||
|
* For USBHOST, we don't know whether HOST1 or
|
||||||
|
* HOST2 woke us up, so enable both f-clocks
|
||||||
|
*/
|
||||||
|
if (module == OMAP3430ES2_USBHOST_MOD)
|
||||||
|
clken |= 1 << OMAP3430ES2_EN_USBHOST2_SHIFT;
|
||||||
|
cm_set_mod_reg_bits(clken, module, fclk_off);
|
||||||
|
prm_write_mod_reg(wkst, module, wkst_off);
|
||||||
|
wkst = prm_read_mod_reg(module, wkst_off);
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
cm_write_mod_reg(iclk, module, iclk_off);
|
||||||
|
cm_write_mod_reg(fclk, module, fclk_off);
|
||||||
|
}
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int _prcm_int_handle_wakeup(void)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
|
||||||
|
c = prcm_clear_mod_irqs(WKUP_MOD, 1);
|
||||||
|
c += prcm_clear_mod_irqs(CORE_MOD, 1);
|
||||||
|
c += prcm_clear_mod_irqs(OMAP3430_PER_MOD, 1);
|
||||||
|
if (omap_rev() > OMAP3430_REV_ES1_0) {
|
||||||
|
c += prcm_clear_mod_irqs(CORE_MOD, 3);
|
||||||
|
c += prcm_clear_mod_irqs(OMAP3430ES2_USBHOST_MOD, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PRCM Interrupt Handler
|
||||||
|
*
|
||||||
|
* The PRM_IRQSTATUS_MPU register indicates if there are any pending
|
||||||
|
* interrupts from the PRCM for the MPU. These bits must be cleared in
|
||||||
|
* order to clear the PRCM interrupt. The PRCM interrupt handler is
|
||||||
|
* implemented to simply clear the PRM_IRQSTATUS_MPU in order to clear
|
||||||
|
* the PRCM interrupt. Please note that bit 0 of the PRM_IRQSTATUS_MPU
|
||||||
|
* register indicates that a wake-up event is pending for the MPU and
|
||||||
|
* this bit can only be cleared if the all the wake-up events latched
|
||||||
|
* in the various PM_WKST_x registers have been cleared. The interrupt
|
||||||
|
* handler is implemented using a do-while loop so that if a wake-up
|
||||||
|
* event occurred during the processing of the prcm interrupt handler
|
||||||
|
* (setting a bit in the corresponding PM_WKST_x register and thus
|
||||||
|
* preventing us from clearing bit 0 of the PRM_IRQSTATUS_MPU register)
|
||||||
|
* this would be handled.
|
||||||
|
*/
|
||||||
static irqreturn_t prcm_interrupt_handler (int irq, void *dev_id)
|
static irqreturn_t prcm_interrupt_handler (int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
u32 wkst, irqstatus_mpu;
|
u32 irqstatus_mpu;
|
||||||
u32 fclk, iclk;
|
int c = 0;
|
||||||
|
|
||||||
/* WKUP */
|
do {
|
||||||
wkst = prm_read_mod_reg(WKUP_MOD, PM_WKST);
|
irqstatus_mpu = prm_read_mod_reg(OCP_MOD,
|
||||||
if (wkst) {
|
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||||
iclk = cm_read_mod_reg(WKUP_MOD, CM_ICLKEN);
|
|
||||||
fclk = cm_read_mod_reg(WKUP_MOD, CM_FCLKEN);
|
|
||||||
cm_set_mod_reg_bits(wkst, WKUP_MOD, CM_ICLKEN);
|
|
||||||
cm_set_mod_reg_bits(wkst, WKUP_MOD, CM_FCLKEN);
|
|
||||||
prm_write_mod_reg(wkst, WKUP_MOD, PM_WKST);
|
|
||||||
while (prm_read_mod_reg(WKUP_MOD, PM_WKST))
|
|
||||||
cpu_relax();
|
|
||||||
cm_write_mod_reg(iclk, WKUP_MOD, CM_ICLKEN);
|
|
||||||
cm_write_mod_reg(fclk, WKUP_MOD, CM_FCLKEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* CORE */
|
if (irqstatus_mpu & (OMAP3430_WKUP_ST | OMAP3430_IO_ST)) {
|
||||||
wkst = prm_read_mod_reg(CORE_MOD, PM_WKST1);
|
c = _prcm_int_handle_wakeup();
|
||||||
if (wkst) {
|
|
||||||
iclk = cm_read_mod_reg(CORE_MOD, CM_ICLKEN1);
|
|
||||||
fclk = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
|
|
||||||
cm_set_mod_reg_bits(wkst, CORE_MOD, CM_ICLKEN1);
|
|
||||||
cm_set_mod_reg_bits(wkst, CORE_MOD, CM_FCLKEN1);
|
|
||||||
prm_write_mod_reg(wkst, CORE_MOD, PM_WKST1);
|
|
||||||
while (prm_read_mod_reg(CORE_MOD, PM_WKST1))
|
|
||||||
cpu_relax();
|
|
||||||
cm_write_mod_reg(iclk, CORE_MOD, CM_ICLKEN1);
|
|
||||||
cm_write_mod_reg(fclk, CORE_MOD, CM_FCLKEN1);
|
|
||||||
}
|
|
||||||
wkst = prm_read_mod_reg(CORE_MOD, OMAP3430ES2_PM_WKST3);
|
|
||||||
if (wkst) {
|
|
||||||
iclk = cm_read_mod_reg(CORE_MOD, CM_ICLKEN3);
|
|
||||||
fclk = cm_read_mod_reg(CORE_MOD, OMAP3430ES2_CM_FCLKEN3);
|
|
||||||
cm_set_mod_reg_bits(wkst, CORE_MOD, CM_ICLKEN3);
|
|
||||||
cm_set_mod_reg_bits(wkst, CORE_MOD, OMAP3430ES2_CM_FCLKEN3);
|
|
||||||
prm_write_mod_reg(wkst, CORE_MOD, OMAP3430ES2_PM_WKST3);
|
|
||||||
while (prm_read_mod_reg(CORE_MOD, OMAP3430ES2_PM_WKST3))
|
|
||||||
cpu_relax();
|
|
||||||
cm_write_mod_reg(iclk, CORE_MOD, CM_ICLKEN3);
|
|
||||||
cm_write_mod_reg(fclk, CORE_MOD, OMAP3430ES2_CM_FCLKEN3);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PER */
|
/*
|
||||||
wkst = prm_read_mod_reg(OMAP3430_PER_MOD, PM_WKST);
|
* Is the MPU PRCM interrupt handler racing with the
|
||||||
if (wkst) {
|
* IVA2 PRCM interrupt handler ?
|
||||||
iclk = cm_read_mod_reg(OMAP3430_PER_MOD, CM_ICLKEN);
|
*/
|
||||||
fclk = cm_read_mod_reg(OMAP3430_PER_MOD, CM_FCLKEN);
|
WARN(c == 0, "prcm: WARNING: PRCM indicated MPU wakeup "
|
||||||
cm_set_mod_reg_bits(wkst, OMAP3430_PER_MOD, CM_ICLKEN);
|
"but no wakeup sources are marked\n");
|
||||||
cm_set_mod_reg_bits(wkst, OMAP3430_PER_MOD, CM_FCLKEN);
|
} else {
|
||||||
prm_write_mod_reg(wkst, OMAP3430_PER_MOD, PM_WKST);
|
/* XXX we need to expand our PRCM interrupt handler */
|
||||||
while (prm_read_mod_reg(OMAP3430_PER_MOD, PM_WKST))
|
WARN(1, "prcm: WARNING: PRCM interrupt received, but "
|
||||||
cpu_relax();
|
"no code to handle it (%08x)\n", irqstatus_mpu);
|
||||||
cm_write_mod_reg(iclk, OMAP3430_PER_MOD, CM_ICLKEN);
|
|
||||||
cm_write_mod_reg(fclk, OMAP3430_PER_MOD, CM_FCLKEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (omap_rev() > OMAP3430_REV_ES1_0) {
|
|
||||||
/* USBHOST */
|
|
||||||
wkst = prm_read_mod_reg(OMAP3430ES2_USBHOST_MOD, PM_WKST);
|
|
||||||
if (wkst) {
|
|
||||||
iclk = cm_read_mod_reg(OMAP3430ES2_USBHOST_MOD,
|
|
||||||
CM_ICLKEN);
|
|
||||||
fclk = cm_read_mod_reg(OMAP3430ES2_USBHOST_MOD,
|
|
||||||
CM_FCLKEN);
|
|
||||||
cm_set_mod_reg_bits(wkst, OMAP3430ES2_USBHOST_MOD,
|
|
||||||
CM_ICLKEN);
|
|
||||||
cm_set_mod_reg_bits(wkst, OMAP3430ES2_USBHOST_MOD,
|
|
||||||
CM_FCLKEN);
|
|
||||||
prm_write_mod_reg(wkst, OMAP3430ES2_USBHOST_MOD,
|
|
||||||
PM_WKST);
|
|
||||||
while (prm_read_mod_reg(OMAP3430ES2_USBHOST_MOD,
|
|
||||||
PM_WKST))
|
|
||||||
cpu_relax();
|
|
||||||
cm_write_mod_reg(iclk, OMAP3430ES2_USBHOST_MOD,
|
|
||||||
CM_ICLKEN);
|
|
||||||
cm_write_mod_reg(fclk, OMAP3430ES2_USBHOST_MOD,
|
|
||||||
CM_FCLKEN);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
irqstatus_mpu = prm_read_mod_reg(OCP_MOD,
|
prm_write_mod_reg(irqstatus_mpu, OCP_MOD,
|
||||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
||||||
prm_write_mod_reg(irqstatus_mpu, OCP_MOD,
|
|
||||||
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
|
|
||||||
|
|
||||||
while (prm_read_mod_reg(OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET))
|
} while (prm_read_mod_reg(OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET));
|
||||||
cpu_relax();
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
@ -624,6 +639,16 @@ static void __init prcm_setup_regs(void)
|
||||||
prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN,
|
prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN,
|
||||||
OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET);
|
OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET);
|
||||||
|
|
||||||
|
/* Enable GPIO wakeups in PER */
|
||||||
|
prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 |
|
||||||
|
OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 |
|
||||||
|
OMAP3430_EN_GPIO6, OMAP3430_PER_MOD, PM_WKEN);
|
||||||
|
/* and allow them to wake up MPU */
|
||||||
|
prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 |
|
||||||
|
OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 |
|
||||||
|
OMAP3430_GRPSEL_GPIO6,
|
||||||
|
OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL);
|
||||||
|
|
||||||
/* Don't attach IVA interrupts */
|
/* Don't attach IVA interrupts */
|
||||||
prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL);
|
prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL);
|
||||||
prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1);
|
prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1);
|
||||||
|
|
|
@ -273,35 +273,50 @@ struct powerdomain *pwrdm_lookup(const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pwrdm_for_each - call function on each registered clockdomain
|
* pwrdm_for_each_nolock - call function on each registered clockdomain
|
||||||
* @fn: callback function *
|
* @fn: callback function *
|
||||||
*
|
*
|
||||||
* Call the supplied function for each registered powerdomain. The
|
* Call the supplied function for each registered powerdomain. The
|
||||||
* callback function can return anything but 0 to bail out early from
|
* callback function can return anything but 0 to bail out early from
|
||||||
* the iterator. The callback function is called with the pwrdm_rwlock
|
* the iterator. Returns the last return value of the callback function, which
|
||||||
* held for reading, so no powerdomain structure manipulation
|
* should be 0 for success or anything else to indicate failure; or -EINVAL if
|
||||||
* functions should be called from the callback, although hardware
|
* the function pointer is null.
|
||||||
* powerdomain control functions are fine. Returns the last return
|
|
||||||
* value of the callback function, which should be 0 for success or
|
|
||||||
* anything else to indicate failure; or -EINVAL if the function
|
|
||||||
* pointer is null.
|
|
||||||
*/
|
*/
|
||||||
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
|
int pwrdm_for_each_nolock(int (*fn)(struct powerdomain *pwrdm, void *user),
|
||||||
void *user)
|
void *user)
|
||||||
{
|
{
|
||||||
struct powerdomain *temp_pwrdm;
|
struct powerdomain *temp_pwrdm;
|
||||||
unsigned long flags;
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (!fn)
|
if (!fn)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
read_lock_irqsave(&pwrdm_rwlock, flags);
|
|
||||||
list_for_each_entry(temp_pwrdm, &pwrdm_list, node) {
|
list_for_each_entry(temp_pwrdm, &pwrdm_list, node) {
|
||||||
ret = (*fn)(temp_pwrdm, user);
|
ret = (*fn)(temp_pwrdm, user);
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pwrdm_for_each - call function on each registered clockdomain
|
||||||
|
* @fn: callback function *
|
||||||
|
*
|
||||||
|
* This function is the same as 'pwrdm_for_each_nolock()', but keeps the
|
||||||
|
* &pwrdm_rwlock locked for reading, so no powerdomain structure manipulation
|
||||||
|
* functions should be called from the callback, although hardware powerdomain
|
||||||
|
* control functions are fine.
|
||||||
|
*/
|
||||||
|
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
|
||||||
|
void *user)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
read_lock_irqsave(&pwrdm_rwlock, flags);
|
||||||
|
ret = pwrdm_for_each_nolock(fn, user);
|
||||||
read_unlock_irqrestore(&pwrdm_rwlock, flags);
|
read_unlock_irqrestore(&pwrdm_rwlock, flags);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -155,7 +155,7 @@ MODULE_PARM_DESC(pxa255_turbo_table, "Selects the frequency table (0 = run table
|
||||||
|
|
||||||
static pxa_freqs_t pxa27x_freqs[] = {
|
static pxa_freqs_t pxa27x_freqs[] = {
|
||||||
{104000, 104000, PXA27x_CCCR(1, 8, 2), 0, CCLKCFG2(1, 0, 1), 900000, 1705000 },
|
{104000, 104000, PXA27x_CCCR(1, 8, 2), 0, CCLKCFG2(1, 0, 1), 900000, 1705000 },
|
||||||
{156000, 104000, PXA27x_CCCR(1, 8, 6), 0, CCLKCFG2(1, 1, 1), 1000000, 1705000 },
|
{156000, 104000, PXA27x_CCCR(1, 8, 3), 0, CCLKCFG2(1, 0, 1), 1000000, 1705000 },
|
||||||
{208000, 208000, PXA27x_CCCR(0, 16, 2), 1, CCLKCFG2(0, 0, 1), 1180000, 1705000 },
|
{208000, 208000, PXA27x_CCCR(0, 16, 2), 1, CCLKCFG2(0, 0, 1), 1180000, 1705000 },
|
||||||
{312000, 208000, PXA27x_CCCR(1, 16, 3), 1, CCLKCFG2(1, 0, 1), 1250000, 1705000 },
|
{312000, 208000, PXA27x_CCCR(1, 16, 3), 1, CCLKCFG2(1, 0, 1), 1250000, 1705000 },
|
||||||
{416000, 208000, PXA27x_CCCR(1, 16, 4), 1, CCLKCFG2(1, 0, 1), 1350000, 1705000 },
|
{416000, 208000, PXA27x_CCCR(1, 16, 4), 1, CCLKCFG2(1, 0, 1), 1350000, 1705000 },
|
||||||
|
|
|
@ -238,7 +238,7 @@ static struct resource csb726_lan_resources[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct smsc911x_platform_config csb726_lan_config = {
|
struct smsc911x_platform_config csb726_lan_config = {
|
||||||
.irq_type = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||||
.irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
|
.irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
|
||||||
.flags = SMSC911X_USE_32BIT,
|
.flags = SMSC911X_USE_32BIT,
|
||||||
.phy_interface = PHY_INTERFACE_MODE_MII,
|
.phy_interface = PHY_INTERFACE_MODE_MII,
|
||||||
|
|
|
@ -303,32 +303,21 @@ IS_OMAP_TYPE(3430, 0x3430)
|
||||||
#define cpu_is_omap2430() 0
|
#define cpu_is_omap2430() 0
|
||||||
#define cpu_is_omap3430() 0
|
#define cpu_is_omap3430() 0
|
||||||
|
|
||||||
#if defined(MULTI_OMAP1)
|
|
||||||
# if defined(CONFIG_ARCH_OMAP730)
|
|
||||||
# undef cpu_is_omap730
|
|
||||||
# define cpu_is_omap730() is_omap730()
|
|
||||||
# endif
|
|
||||||
# if defined(CONFIG_ARCH_OMAP850)
|
|
||||||
# undef cpu_is_omap850
|
|
||||||
# define cpu_is_omap850() is_omap850()
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# if defined(CONFIG_ARCH_OMAP730)
|
|
||||||
# undef cpu_is_omap730
|
|
||||||
# define cpu_is_omap730() 1
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
# if defined(CONFIG_ARCH_OMAP850)
|
|
||||||
# undef cpu_is_omap850
|
|
||||||
# define cpu_is_omap850() 1
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Whether we have MULTI_OMAP1 or not, we still need to distinguish
|
* Whether we have MULTI_OMAP1 or not, we still need to distinguish
|
||||||
* between 330 vs. 1510 and 1611B/5912 vs. 1710.
|
* between 730 vs 850, 330 vs. 1510 and 1611B/5912 vs. 1710.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(CONFIG_ARCH_OMAP730)
|
||||||
|
# undef cpu_is_omap730
|
||||||
|
# define cpu_is_omap730() is_omap730()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_ARCH_OMAP850)
|
||||||
|
# undef cpu_is_omap850
|
||||||
|
# define cpu_is_omap850() is_omap850()
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_ARCH_OMAP15XX)
|
#if defined(CONFIG_ARCH_OMAP15XX)
|
||||||
# undef cpu_is_omap310
|
# undef cpu_is_omap310
|
||||||
# undef cpu_is_omap1510
|
# undef cpu_is_omap1510
|
||||||
|
@ -433,3 +422,5 @@ IS_OMAP_TYPE(3430, 0x3430)
|
||||||
|
|
||||||
int omap_chip_is(struct omap_chip_id oci);
|
int omap_chip_is(struct omap_chip_id oci);
|
||||||
void omap2_check_revision(void);
|
void omap2_check_revision(void);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -135,6 +135,8 @@ struct powerdomain *pwrdm_lookup(const char *name);
|
||||||
|
|
||||||
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
|
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
|
||||||
void *user);
|
void *user);
|
||||||
|
int pwrdm_for_each_nolock(int (*fn)(struct powerdomain *pwrdm, void *user),
|
||||||
|
void *user);
|
||||||
|
|
||||||
int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
|
int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
|
||||||
int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
|
int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
* 'va': mpu virtual address
|
* 'va': mpu virtual address
|
||||||
*
|
*
|
||||||
* 'c': contiguous memory area
|
* 'c': contiguous memory area
|
||||||
* 'd': dicontiguous memory area
|
* 'd': discontiguous memory area
|
||||||
* 'a': anonymous memory allocation
|
* 'a': anonymous memory allocation
|
||||||
* '()': optional feature
|
* '()': optional feature
|
||||||
*
|
*
|
||||||
|
@ -363,8 +363,9 @@ void *da_to_va(struct iommu *obj, u32 da)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
va = area->va;
|
va = area->va;
|
||||||
mutex_unlock(&obj->mmap_lock);
|
|
||||||
out:
|
out:
|
||||||
|
mutex_unlock(&obj->mmap_lock);
|
||||||
|
|
||||||
return va;
|
return va;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(da_to_va);
|
EXPORT_SYMBOL_GPL(da_to_va);
|
||||||
|
@ -398,7 +399,7 @@ static inline void sgtable_drain_vmalloc(struct sg_table *sgt)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Actually this is not necessary at all, just exists for
|
* Actually this is not necessary at all, just exists for
|
||||||
* consistency of the code readibility.
|
* consistency of the code readability.
|
||||||
*/
|
*/
|
||||||
BUG_ON(!sgt);
|
BUG_ON(!sgt);
|
||||||
}
|
}
|
||||||
|
@ -434,7 +435,7 @@ static inline void sgtable_drain_kmalloc(struct sg_table *sgt)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Actually this is not necessary at all, just exists for
|
* Actually this is not necessary at all, just exists for
|
||||||
* consistency of the code readibility
|
* consistency of the code readability
|
||||||
*/
|
*/
|
||||||
BUG_ON(!sgt);
|
BUG_ON(!sgt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -270,7 +270,8 @@ void * omap_sram_push(void * start, unsigned long size)
|
||||||
omap_sram_ceil -= size;
|
omap_sram_ceil -= size;
|
||||||
omap_sram_ceil = ROUND_DOWN(omap_sram_ceil, sizeof(void *));
|
omap_sram_ceil = ROUND_DOWN(omap_sram_ceil, sizeof(void *));
|
||||||
memcpy((void *)omap_sram_ceil, start, size);
|
memcpy((void *)omap_sram_ceil, start, size);
|
||||||
flush_icache_range((unsigned long)start, (unsigned long)(start + size));
|
flush_icache_range((unsigned long)omap_sram_ceil,
|
||||||
|
(unsigned long)(omap_sram_ceil + size));
|
||||||
|
|
||||||
return (void *)omap_sram_ceil;
|
return (void *)omap_sram_ceil;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
#include <linux/sched.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
This BSD-Style License applies to a few files in ./arch/blackfin directory,
|
||||||
|
and is included here, so people understand which code they can use outside
|
||||||
|
the Linux kernel, in non-GPL based projects.
|
||||||
|
|
||||||
|
Using the files released under the "ADI BSD" license, must comply with
|
||||||
|
these license terms.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright Analog Devices, Inc.
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
- Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
- Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
- Neither the name of Analog Devices, Inc. nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
- The use of this software may or may not infringe the patent rights
|
||||||
|
of one or more patent holders. This license does not release you
|
||||||
|
from the requirement that you obtain separate licenses from these
|
||||||
|
patent holders to use this software.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
|
|
@ -47,6 +47,9 @@ config GENERIC_HARDIRQS
|
||||||
config GENERIC_IRQ_PROBE
|
config GENERIC_IRQ_PROBE
|
||||||
def_bool y
|
def_bool y
|
||||||
|
|
||||||
|
config GENERIC_HARDIRQS_NO__DO_IRQ
|
||||||
|
def_bool y
|
||||||
|
|
||||||
config GENERIC_GPIO
|
config GENERIC_GPIO
|
||||||
def_bool y
|
def_bool y
|
||||||
|
|
||||||
|
@ -229,7 +232,7 @@ endchoice
|
||||||
|
|
||||||
config SMP
|
config SMP
|
||||||
depends on BF561
|
depends on BF561
|
||||||
select GENERIC_TIME
|
select GENERIC_CLOCKEVENTS
|
||||||
bool "Symmetric multi-processing support"
|
bool "Symmetric multi-processing support"
|
||||||
---help---
|
---help---
|
||||||
This enables support for systems with more than one CPU,
|
This enables support for systems with more than one CPU,
|
||||||
|
@ -613,12 +616,10 @@ comment "Kernel Timer/Scheduler"
|
||||||
source kernel/Kconfig.hz
|
source kernel/Kconfig.hz
|
||||||
|
|
||||||
config GENERIC_TIME
|
config GENERIC_TIME
|
||||||
bool "Generic time"
|
def_bool y
|
||||||
default y
|
|
||||||
|
|
||||||
config GENERIC_CLOCKEVENTS
|
config GENERIC_CLOCKEVENTS
|
||||||
bool "Generic clock events"
|
bool "Generic clock events"
|
||||||
depends on GENERIC_TIME
|
|
||||||
default y
|
default y
|
||||||
|
|
||||||
choice
|
choice
|
||||||
|
@ -653,6 +654,10 @@ config GPTMR0_CLOCKSOURCE
|
||||||
depends on GENERIC_CLOCKEVENTS
|
depends on GENERIC_CLOCKEVENTS
|
||||||
depends on !TICKSOURCE_GPTMR0
|
depends on !TICKSOURCE_GPTMR0
|
||||||
|
|
||||||
|
config ARCH_USES_GETTIMEOFFSET
|
||||||
|
depends on !GENERIC_CLOCKEVENTS
|
||||||
|
def_bool y
|
||||||
|
|
||||||
source kernel/time/Kconfig
|
source kernel/time/Kconfig
|
||||||
|
|
||||||
comment "Misc"
|
comment "Misc"
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ARCH_BLACKFIN_ATOMIC__
|
#ifndef __ARCH_BLACKFIN_ATOMIC__
|
||||||
#define __ARCH_BLACKFIN_ATOMIC__
|
#define __ARCH_BLACKFIN_ATOMIC__
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/bfin-global.h
|
* Global extern defines for blackfin
|
||||||
* Based on:
|
|
||||||
* Author: *
|
|
||||||
* Created:
|
|
||||||
* Description: Global extern defines for blackfin
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Copyright 2006-2009 Analog Devices Inc.
|
||||||
* Copyright 2004-2006 Analog Devices Inc.
|
|
||||||
*
|
*
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_GLOBAL_H_
|
#ifndef _BFIN_GLOBAL_H_
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
*
|
*
|
||||||
* Copyright 2004-2008 Analog Devices Inc.
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
*
|
*
|
||||||
* Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* Licensed under the GPL-2 or later.
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* board initialization should put one of these structures into platform_data
|
* board initialization should put one of these structures into platform_data
|
||||||
* and place the bfin-rotary onto platform_bus named "bfin-rotary".
|
* and place the bfin-rotary onto platform_bus named "bfin-rotary".
|
||||||
|
*
|
||||||
|
* Copyright 2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_ROTARY_H
|
#ifndef _BFIN_ROTARY_H
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _bfin_simple_timer_h_
|
#ifndef _bfin_simple_timer_h_
|
||||||
#define _bfin_simple_timer_h_
|
#define _bfin_simple_timer_h_
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_BITOPS_H
|
#ifndef _BLACKFIN_BITOPS_H
|
||||||
#define _BLACKFIN_BITOPS_H
|
#define _BLACKFIN_BITOPS_H
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* Common header file for blackfin family of processors.
|
* Common header file for Blackfin family of processors.
|
||||||
*
|
*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_H_
|
#ifndef _BLACKFIN_H_
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_BUG_H
|
#ifndef _BLACKFIN_BUG_H
|
||||||
#define _BLACKFIN_BUG_H
|
#define _BLACKFIN_BUG_H
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1 @@
|
||||||
#ifndef _BLACKFIN_BYTEORDER_H
|
|
||||||
#define _BLACKFIN_BYTEORDER_H
|
|
||||||
|
|
||||||
#include <linux/byteorder/little_endian.h>
|
#include <linux/byteorder/little_endian.h>
|
||||||
|
|
||||||
#endif /* _BLACKFIN_BYTEORDER_H */
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* include/asm-blackfin/cache.h
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __ARCH_BLACKFIN_CACHE_H
|
#ifndef __ARCH_BLACKFIN_CACHE_H
|
||||||
#define __ARCH_BLACKFIN_CACHE_H
|
#define __ARCH_BLACKFIN_CACHE_H
|
||||||
|
|
||||||
|
@ -35,10 +38,10 @@
|
||||||
|
|
||||||
#if defined(CONFIG_SMP) && \
|
#if defined(CONFIG_SMP) && \
|
||||||
!defined(CONFIG_BFIN_CACHE_COHERENT)
|
!defined(CONFIG_BFIN_CACHE_COHERENT)
|
||||||
# if defined(CONFIG_BFIN_ICACHEABLE) || defined(CONFIG_BFIN_L2_ICACHEABLE)
|
# if defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) || defined(CONFIG_BFIN_L2_ICACHEABLE)
|
||||||
# define __ARCH_SYNC_CORE_ICACHE
|
# define __ARCH_SYNC_CORE_ICACHE
|
||||||
# endif
|
# endif
|
||||||
# if defined(CONFIG_BFIN_DCACHEABLE) || defined(CONFIG_BFIN_L2_DCACHEABLE)
|
# if defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) || defined(CONFIG_BFIN_L2_DCACHEABLE)
|
||||||
# define __ARCH_SYNC_CORE_DCACHE
|
# define __ARCH_SYNC_CORE_DCACHE
|
||||||
# endif
|
# endif
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
|
|
|
@ -1,30 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/cacheflush.h
|
* Blackfin low-level cache routines
|
||||||
* Based on: include/asm-m68knommu/cacheflush.h
|
|
||||||
* Author: LG Soft India
|
|
||||||
* Copyright (C) 2004 Analog Devices Inc.
|
|
||||||
* Created: Tue Sep 21 2004
|
|
||||||
* Description: Blackfin low-level cache routines adapted from the i386
|
|
||||||
* and PPC versions by Greg Ungerer (gerg@snapgear.com)
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
*
|
*
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; see the file COPYING.
|
|
||||||
* If not, write to the Free Software Foundation,
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_CACHEFLUSH_H
|
#ifndef _BLACKFIN_CACHEFLUSH_H
|
||||||
|
|
|
@ -1,30 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/mach-common/cdef_LPBlackfin.h
|
* Copyright 2005-2008 Analog Devices Inc.
|
||||||
* Based on:
|
*
|
||||||
* Author: unknown
|
* Licensed under the GPL-2 or later.
|
||||||
* COPYRIGHT 2005 Analog Devices
|
*/
|
||||||
* Created: ?
|
|
||||||
* Description:
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; see the file COPYING.
|
|
||||||
* If not, write to the Free Software Foundation,
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CDEF_LPBLACKFIN_H
|
#ifndef _CDEF_LPBLACKFIN_H
|
||||||
#define _CDEF_LPBLACKFIN_H
|
#define _CDEF_LPBLACKFIN_H
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
* akbar.hussain@lineo.com
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_CHECKSUM_H
|
#ifndef _BFIN_CHECKSUM_H
|
||||||
#define _BFIN_CHECKSUM_H
|
#define _BFIN_CHECKSUM_H
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MODIFIED FOR BFIN April 30, 2001 akbar.hussain@lineo.com
|
|
||||||
*
|
|
||||||
* computes the checksum of a memory block at buff, length len,
|
* computes the checksum of a memory block at buff, length len,
|
||||||
* and adds in "sum" (32-bit)
|
* and adds in "sum" (32-bit)
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,30 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/mach-common/clocks.h
|
* Common Clock definitions for various kernel files
|
||||||
* Based on: include/asm-blackfin/mach-bf537/bf537.h
|
|
||||||
* Author: Robin Getz <rgetz@blackfin.uclinux.org>
|
|
||||||
*
|
*
|
||||||
* Created: 25Jul07
|
* Copyright 2007-2008 Analog Devices Inc.
|
||||||
* Description: Common Clock definitions for various kernel files
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Licensed under the GPL-2 or later.
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_CLOCKS_H
|
#ifndef _BFIN_CLOCKS_H
|
||||||
|
|
|
@ -1,30 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/kernel/context.S
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
* Based on:
|
|
||||||
* Author:
|
|
||||||
*
|
*
|
||||||
* Created:
|
* Licensed under the GPL-2 or later.
|
||||||
* Description:
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,30 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/cplb.h
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
* Based on: include/asm-blackfin/mach-bf537/bf537.h
|
|
||||||
* Author: Robin Getz <rgetz@blackfin.uclinux.org>
|
|
||||||
*
|
*
|
||||||
* Created: 2000
|
* Licensed under the GPL-2 or later.
|
||||||
* Description: Common CPLB definitions for CPLB init
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _CPLB_H
|
#ifndef _CPLB_H
|
||||||
|
|
|
@ -1,30 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/cplbinit.h
|
* Common CPLB definitions for CPLB init
|
||||||
* Based on:
|
|
||||||
* Author:
|
|
||||||
*
|
*
|
||||||
* Created:
|
* Copyright 2006-2008 Analog Devices Inc.
|
||||||
* Description:
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Licensed under the GPL-2 or later.
|
||||||
* Copyright 2004-2006 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_CPLBINIT_H__
|
#ifndef __ASM_CPLBINIT_H__
|
||||||
|
|
|
@ -1,23 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/include/asm/cpu.h.
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
* Author: Philippe Gerum <rpm@xenomai.org>
|
* Philippe Gerum <rpm@xenomai.org>
|
||||||
*
|
*
|
||||||
* Copyright 2007 Analog Devices Inc.
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_BLACKFIN_CPU_H
|
#ifndef __ASM_BLACKFIN_CPU_H
|
||||||
|
|
|
@ -1,32 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/mach-common/def_LPBlackfin.h
|
* Blackfin core register bit & address definitions
|
||||||
* Based on:
|
*
|
||||||
* Author: unknown
|
* Copyright 2005-2008 Analog Devices Inc.
|
||||||
* COPYRIGHT 2005 Analog Devices
|
*
|
||||||
* Created: ?
|
* Licensed under the ADI BSD license or GPL-2 (or later).
|
||||||
* Description:
|
*/
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; see the file COPYING.
|
|
||||||
* If not, write to the Free Software Foundation,
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* LP Blackfin CORE REGISTER BIT & ADDRESS DEFINITIONS FOR ADSP-BF532/33 */
|
|
||||||
|
|
||||||
#ifndef _DEF_LPBLACKFIN_H
|
#ifndef _DEF_LPBLACKFIN_H
|
||||||
#define _DEF_LPBLACKFIN_H
|
#define _DEF_LPBLACKFIN_H
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_DMA_MAPPING_H
|
#ifndef _BLACKFIN_DMA_MAPPING_H
|
||||||
#define _BLACKFIN_DMA_MAPPING_H
|
#define _BLACKFIN_DMA_MAPPING_H
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
/*
|
/*
|
||||||
* include/asm-blackfin/dpmc.h - Miscellaneous IOCTL commands for Dynamic Power
|
* Miscellaneous IOCTL commands for Dynamic Power Management Controller Driver
|
||||||
* Management Controller Driver.
|
*
|
||||||
* Copyright (C) 2004-2008 Analog Device Inc.
|
* Copyright (C) 2004-2008 Analog Device Inc.
|
||||||
*
|
*
|
||||||
|
* Licensed under the GPL-2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_DPMC_H_
|
#ifndef _BLACKFIN_DPMC_H_
|
||||||
#define _BLACKFIN_DPMC_H_
|
#define _BLACKFIN_DPMC_H_
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,11 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/early_printk.h
|
* function prototpyes for early printk
|
||||||
* Author: Robin Getz <rgetz@blackfin.uclinux.org
|
|
||||||
*
|
*
|
||||||
* Created: 14Aug2007
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
* Description: function prototpyes for early printk
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Licensed under the GPL-2 or later.
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef __ASM_EARLY_PRINTK_H__
|
#ifndef __ASM_EARLY_PRINTK_H__
|
||||||
#define __ASM_EARLY_PRINTK_H__
|
#define __ASM_EARLY_PRINTK_H__
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
/* Changes made by LG Soft Oct 2004*/
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ASMBFIN_ELF_H
|
#ifndef __ASMBFIN_ELF_H
|
||||||
#define __ASMBFIN_ELF_H
|
#define __ASMBFIN_ELF_H
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __BFIN_ENTRY_H
|
#ifndef __BFIN_ENTRY_H
|
||||||
#define __BFIN_ENTRY_H
|
#define __BFIN_ENTRY_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_FCNTL_H
|
#ifndef _BFIN_FCNTL_H
|
||||||
#define _BFIN_FCNTL_H
|
#define _BFIN_FCNTL_H
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
/* This file defines the fixed addresses where userspace programs can find
|
/*
|
||||||
atomic code sequences. */
|
* This file defines the fixed addresses where userspace programs
|
||||||
|
* can find atomic code sequences.
|
||||||
|
*
|
||||||
|
* Copyright 2007-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __BFIN_ASM_FIXED_CODE_H__
|
#ifndef __BFIN_ASM_FIXED_CODE_H__
|
||||||
#define __BFIN_ASM_FIXED_CODE_H__
|
#define __BFIN_ASM_FIXED_CODE_H__
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* include/asm-blackfin/flat.h -- uClinux flat-format executables
|
* uClinux flat-format executables
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003,
|
* Copyright 2003-2009 Analog Devices Inc.
|
||||||
*
|
*
|
||||||
|
* Licensed under the GPL-2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __BLACKFIN_FLAT_H__
|
#ifndef __BLACKFIN_FLAT_H__
|
||||||
|
|
|
@ -1,30 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/kernel/bfin_gpio.h
|
* Copyright 2006-2009 Analog Devices Inc.
|
||||||
* Based on:
|
|
||||||
* Author: Michael Hennerich (hennerich@blackfin.uclinux.org)
|
|
||||||
*
|
*
|
||||||
* Created:
|
* Licensed under the GPL-2 or later.
|
||||||
* Description:
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
* Copyright 2004-2008 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __ARCH_BLACKFIN_GPIO_H__
|
#ifndef __ARCH_BLACKFIN_GPIO_H__
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __BFIN_HARDIRQ_H
|
#ifndef __BFIN_HARDIRQ_H
|
||||||
#define __BFIN_HARDIRQ_H
|
#define __BFIN_HARDIRQ_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_IO_H
|
#ifndef _BFIN_IO_H
|
||||||
#define _BFIN_IO_H
|
#define _BFIN_IO_H
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
* License. See the file COPYING in the main directory of this archive
|
* 2003 HuTao
|
||||||
* for more details.
|
* 2002 Arcturus Networks Inc. (www.arcturusnetworks.com
|
||||||
|
* Ted Ma <mated@sympatico.ca>
|
||||||
*
|
*
|
||||||
* Changed by HuTao Apr18, 2003
|
* Licensed under the GPL-2
|
||||||
*
|
|
||||||
* Copyright was missing when I got the code so took from MIPS arch ...MaTed---
|
|
||||||
* Copyright (C) 1994 by Waldorf GMBH, written by Ralf Baechle
|
|
||||||
* Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001 by Ralf Baechle
|
|
||||||
*
|
|
||||||
* Adapted for BlackFin (ADI) by Ted Ma <mated@sympatico.ca>
|
|
||||||
* Copyright (c) 2002 Arcturus Networks Inc. (www.arcturusnetworks.com)
|
|
||||||
* Copyright (c) 2002 Lineo, Inc. <mattw@lineo.com>
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_IRQ_H_
|
#ifndef _BFIN_IRQ_H_
|
||||||
|
@ -19,6 +12,8 @@
|
||||||
|
|
||||||
#include <linux/irqflags.h>
|
#include <linux/irqflags.h>
|
||||||
|
|
||||||
|
#include <mach/anomaly.h>
|
||||||
|
|
||||||
/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
|
/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
|
||||||
#include <mach/irq.h>
|
#include <mach/irq.h>
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _IRQ_HANDLER_H
|
#ifndef _IRQ_HANDLER_H
|
||||||
#define _IRQ_HANDLER_H
|
#define _IRQ_HANDLER_H
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* l1layout.h
|
|
||||||
* Defines a layout of L1 scratchpad memory that userspace can rely on.
|
* Defines a layout of L1 scratchpad memory that userspace can rely on.
|
||||||
|
*
|
||||||
|
* Copyright 2006-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _L1LAYOUT_H_
|
#ifndef _L1LAYOUT_H_
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_LINKAGE_H
|
#ifndef __ASM_LINKAGE_H
|
||||||
#define __ASM_LINKAGE_H
|
#define __ASM_LINKAGE_H
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
* 2002 David McCullough <davidm@snapgear.com>
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __MMU_H
|
#ifndef __MMU_H
|
||||||
#define __MMU_H
|
#define __MMU_H
|
||||||
|
|
||||||
/* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
|
|
||||||
|
|
||||||
struct sram_list_struct {
|
struct sram_list_struct {
|
||||||
struct sram_list_struct *next;
|
struct sram_list_struct *next;
|
||||||
void *addr;
|
void *addr;
|
||||||
|
|
|
@ -1,30 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/mmu_context.h
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
* Based on:
|
|
||||||
* Author:
|
|
||||||
*
|
*
|
||||||
* Created:
|
* Licensed under the GPL-2 or later.
|
||||||
* Description:
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
* Copyright 2004-2006 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __BLACKFIN_MMU_CONTEXT_H__
|
#ifndef __BLACKFIN_MMU_CONTEXT_H__
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_BFIN_MODULE_H
|
#ifndef _ASM_BFIN_MODULE_H
|
||||||
#define _ASM_BFIN_MODULE_H
|
#define _ASM_BFIN_MODULE_H
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,10 @@
|
||||||
* TODO: implement optimized primitives instead, or leave the generic
|
* TODO: implement optimized primitives instead, or leave the generic
|
||||||
* implementation in place, or pick the atomic_xchg() based generic
|
* implementation in place, or pick the atomic_xchg() based generic
|
||||||
* implementation. (see asm-generic/mutex-xchg.h for details)
|
* implementation. (see asm-generic/mutex-xchg.h for details)
|
||||||
|
*
|
||||||
|
* Copyright 2006-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_MUTEX_H
|
#ifndef _ASM_MUTEX_H
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
/* linux/include/asm-blackfin/nand.h
|
/*
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Analog Devices, Inc.
|
|
||||||
* Bryan Wu <bryan.wu@analog.com>
|
|
||||||
*
|
|
||||||
* BF5XX - NAND flash controller platfrom_device info
|
* BF5XX - NAND flash controller platfrom_device info
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* Copyright 2007-2008 Analog Devices, Inc.
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
*
|
||||||
* published by the Free Software Foundation.
|
* Licensed under the GPL-2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* struct bf5xx_nand_platform
|
/* struct bf5xx_nand_platform
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_PAGE_H
|
#ifndef _BLACKFIN_PAGE_H
|
||||||
#define _BLACKFIN_PAGE_H
|
#define _BLACKFIN_PAGE_H
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
|
/*
|
||||||
/* This handles the memory map.. */
|
* This handles the memory map
|
||||||
|
*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_BLACKFIN
|
#ifdef CONFIG_BLACKFIN
|
||||||
#define PAGE_OFFSET_RAW 0x00000000
|
#define PAGE_OFFSET_RAW 0x00000000
|
||||||
|
|
|
@ -1,23 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/include/asm/pda.h
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
* Author: Philippe Gerum <rpm@xenomai.org>
|
* Philippe Gerum <rpm@xenomai.org>
|
||||||
*
|
*
|
||||||
* Copyright 2007 Analog Devices Inc.
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_BLACKFIN_PDA_H
|
#ifndef _ASM_BLACKFIN_PDA_H
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_PGTABLE_H
|
#ifndef _BLACKFIN_PGTABLE_H
|
||||||
#define _BLACKFIN_PGTABLE_H
|
#define _BLACKFIN_PGTABLE_H
|
||||||
|
|
||||||
|
@ -92,6 +98,12 @@ extern unsigned int kobjsize(const void *objp);
|
||||||
#define VMALLOC_START 0
|
#define VMALLOC_START 0
|
||||||
#define VMALLOC_END 0xffffffff
|
#define VMALLOC_END 0xffffffff
|
||||||
|
|
||||||
|
/* provide a special get_unmapped_area for framebuffer mmaps of nommu */
|
||||||
|
extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long,
|
||||||
|
unsigned long, unsigned long,
|
||||||
|
unsigned long);
|
||||||
|
#define HAVE_ARCH_FB_UNMAPPED_AREA
|
||||||
|
|
||||||
#include <asm-generic/pgtable.h>
|
#include <asm-generic/pgtable.h>
|
||||||
|
|
||||||
#endif /* _BLACKFIN_PGTABLE_H */
|
#endif /* _BLACKFIN_PGTABLE_H */
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __BFIN_POLL_H
|
#ifndef __BFIN_POLL_H
|
||||||
#define __BFIN_POLL_H
|
#define __BFIN_POLL_H
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* Common header file for blackfin family of processors.
|
* Common header file for Blackfin family of processors
|
||||||
*
|
*
|
||||||
|
* Copyright 2007-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _PORTMUX_H_
|
#ifndef _PORTMUX_H_
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ARCH_BFIN_POSIX_TYPES_H
|
#ifndef __ARCH_BFIN_POSIX_TYPES_H
|
||||||
#define __ARCH_BFIN_POSIX_TYPES_H
|
#define __ARCH_BFIN_POSIX_TYPES_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_BFIN_PROCESSOR_H
|
#ifndef __ASM_BFIN_PROCESSOR_H
|
||||||
#define __ASM_BFIN_PROCESSOR_H
|
#define __ASM_BFIN_PROCESSOR_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_PTRACE_H
|
#ifndef _BFIN_PTRACE_H
|
||||||
#define _BFIN_PTRACE_H
|
#define _BFIN_PTRACE_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_SECTIONS_H
|
#ifndef _BLACKFIN_SECTIONS_H
|
||||||
#define _BLACKFIN_SECTIONS_H
|
#define _BLACKFIN_SECTIONS_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_SEGMENT_H
|
#ifndef _BFIN_SEGMENT_H
|
||||||
#define _BFIN_SEGMENT_H
|
#define _BFIN_SEGMENT_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_BLACKFIN_SIGCONTEXT_H
|
#ifndef _ASM_BLACKFIN_SIGCONTEXT_H
|
||||||
#define _ASM_BLACKFIN_SIGCONTEXT_H
|
#define _ASM_BLACKFIN_SIGCONTEXT_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_SIGINFO_H
|
#ifndef _BFIN_SIGINFO_H
|
||||||
#define _BFIN_SIGINFO_H
|
#define _BFIN_SIGINFO_H
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/include/asm/smp.h
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
* Author: Philippe Gerum <rpm@xenomai.org>
|
* Philippe Gerum <rpm@xenomai.org>
|
||||||
*
|
*
|
||||||
* Copyright 2007 Analog Devices Inc.
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_BLACKFIN_SMP_H
|
#ifndef __ASM_BLACKFIN_SMP_H
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __BFIN_SPINLOCK_H
|
#ifndef __BFIN_SPINLOCK_H
|
||||||
#define __BFIN_SPINLOCK_H
|
#define __BFIN_SPINLOCK_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_SPINLOCK_TYPES_H
|
#ifndef __ASM_SPINLOCK_TYPES_H
|
||||||
#define __ASM_SPINLOCK_TYPES_H
|
#define __ASM_SPINLOCK_TYPES_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2006 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_STAT_H
|
#ifndef _BFIN_STAT_H
|
||||||
#define _BFIN_STAT_H
|
#define _BFIN_STAT_H
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_STRING_H_
|
#ifndef _BLACKFIN_STRING_H_
|
||||||
#define _BLACKFIN_STRING_H_
|
#define _BLACKFIN_STRING_H_
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_SWAB_H
|
#ifndef _BLACKFIN_SWAB_H
|
||||||
#define _BLACKFIN_SWAB_H
|
#define _BLACKFIN_SWAB_H
|
||||||
|
|
||||||
|
|
|
@ -1,34 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm/system.h
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
* Based on:
|
* Tony Kou (tonyko@lineo.ca)
|
||||||
* Author: Tony Kou (tonyko@lineo.ca)
|
|
||||||
* Copyright (c) 2002 Arcturus Networks Inc.
|
|
||||||
* (www.arcturusnetworks.com)
|
|
||||||
* Copyright (c) 2003 Metrowerks (www.metrowerks.com)
|
|
||||||
* Copyright (c) 2004 Analog Device Inc.
|
|
||||||
* Created: 25Jan2001 - Tony Kou
|
|
||||||
* Description: system.h include file
|
|
||||||
*
|
*
|
||||||
* Modified: 22Sep2006 - Robin Getz
|
* Licensed under the GPL-2 or later
|
||||||
* - move include blackfin.h down, so I can get access to
|
|
||||||
* irq functions in other include files.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; see the file COPYING.
|
|
||||||
* If not, write to the Free Software Foundation,
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_SYSTEM_H
|
#ifndef _BLACKFIN_SYSTEM_H
|
||||||
|
|
|
@ -1,27 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* File: include/asm-blackfin/thread_info.h
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
* Based on: include/asm-m68knommu/thread_info.h
|
|
||||||
* Author: LG Soft India
|
|
||||||
* Copyright (C) 2004-2005 Analog Devices Inc.
|
|
||||||
* Created: Tue Sep 21 2004
|
|
||||||
* Description: Blackfin low-level thread information
|
|
||||||
* Modified:
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* Licensed under the GPL-2 or later.
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
* any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; see the file COPYING.
|
|
||||||
* If not, write to the Free Software Foundation,
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_THREAD_INFO_H
|
#ifndef _ASM_THREAD_INFO_H
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_TLB_H
|
#ifndef _BLACKFIN_TLB_H
|
||||||
#define _BLACKFIN_TLB_H
|
#define _BLACKFIN_TLB_H
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* Common header file for blackfin family of processors.
|
* header file for hardware trace functions
|
||||||
*
|
*
|
||||||
|
* Copyright 2007-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BLACKFIN_TRACE_
|
#ifndef _BLACKFIN_TRACE_
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* linux/include/asm/traps.h
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
* 2001 Lineo, Inc
|
||||||
|
* Tony Kou
|
||||||
|
* 1993 Hamish Macdonald
|
||||||
*
|
*
|
||||||
* Copyright (C) 1993 Hamish Macdonald
|
* Licensed under the GPL-2
|
||||||
*
|
|
||||||
* Lineo, Inc Jul 2001 Tony Kou
|
|
||||||
*
|
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
|
||||||
* License. See the file COPYING in the main directory of this archive
|
|
||||||
* for more details.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _BFIN_TRAPS_H
|
#ifndef _BFIN_TRAPS_H
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
/* Changes made by Lineo Inc. May 2001
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
*
|
||||||
* Based on: include/asm-m68knommu/uaccess.h
|
* Based on: include/asm-m68knommu/uaccess.h
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ASM_BFIN_UNISTD_H
|
#ifndef __ASM_BFIN_UNISTD_H
|
||||||
#define __ASM_BFIN_UNISTD_H
|
#define __ASM_BFIN_UNISTD_H
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,30 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/kernel/asm-offsets.c
|
* generate definitions needed by assembly language modules
|
||||||
* Based on:
|
|
||||||
* Author:
|
|
||||||
*
|
*
|
||||||
* Created:
|
* Copyright 2004-2009 Analog Devices Inc.
|
||||||
* Description: generate definitions needed by assembly language modules.
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Licensed under the GPL-2 or later
|
||||||
* Copyright 2004-2006 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/stddef.h>
|
#include <linux/stddef.h>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* bfin_dma_5xx.c - Blackfin DMA implementation
|
* bfin_dma_5xx.c - Blackfin DMA implementation
|
||||||
*
|
*
|
||||||
* Copyright 2004-2008 Analog Devices Inc.
|
* Copyright 2004-2008 Analog Devices Inc.
|
||||||
|
*
|
||||||
* Licensed under the GPL-2 or later.
|
* Licensed under the GPL-2 or later.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -1,30 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/kernel/bfin_gpio.c
|
* GPIO Abstraction Layer
|
||||||
* Based on:
|
|
||||||
* Author: Michael Hennerich (hennerich@blackfin.uclinux.org)
|
|
||||||
*
|
*
|
||||||
* Created:
|
* Copyright 2006-2009 Analog Devices Inc.
|
||||||
* Description: GPIO Abstraction Layer
|
|
||||||
*
|
*
|
||||||
* Modified:
|
* Licensed under the GPL-2 or later
|
||||||
* Copyright 2008 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
|
@ -1,25 +1,11 @@
|
||||||
/*
|
/*
|
||||||
* Blackfin CPLB initialization
|
* Blackfin CPLB initialization
|
||||||
*
|
*
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
* Copyright 2008-2009 Analog Devices Inc.
|
||||||
*
|
*
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
||||||
#include <asm/blackfin.h>
|
#include <asm/blackfin.h>
|
||||||
|
|
|
@ -1,22 +1,11 @@
|
||||||
/*
|
/*
|
||||||
* Blackfin CPLB exception handling.
|
* Blackfin CPLB exception handling for when MPU in on
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* Copyright 2008-2009 Analog Devices Inc.
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* Licensed under the GPL-2 or later.
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* Blackfin CPLB initialization
|
* Blackfin CPLB initialization
|
||||||
*
|
*
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
* Copyright 2007-2009 Analog Devices Inc.
|
||||||
*
|
*
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
* Licensed under the GPL-2 or later.
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see the file COPYING, or write
|
|
||||||
* to the Free Software Foundation, Inc.,
|
|
||||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
|
@ -1,26 +1,14 @@
|
||||||
/*
|
/*
|
||||||
* File: arch/blackfin/kernel/cplb-nompu-c/cplbmgr.c
|
|
||||||
* Based on: arch/blackfin/kernel/cplb-mpu/cplbmgr.c
|
* Based on: arch/blackfin/kernel/cplb-mpu/cplbmgr.c
|
||||||
* Author: Michael McTernan <mmcternan@airvana.com>
|
* Author: Michael McTernan <mmcternan@airvana.com>
|
||||||
*
|
*
|
||||||
* Created: 01Nov2008
|
|
||||||
* Description: CPLB miss handler.
|
* Description: CPLB miss handler.
|
||||||
*
|
*
|
||||||
* Modified:
|
* Modified:
|
||||||
* Copyright 2008 Airvana Inc.
|
* Copyright 2008 Airvana Inc.
|
||||||
* Copyright 2004-2007 Analog Devices Inc.
|
* Copyright 2008-2009 Analog Devices Inc.
|
||||||
*
|
*
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
* Licensed under the GPL-2 or later
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue