Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into sh-latest
This commit is contained in:
commit
a3d3362287
|
@ -34,3 +34,23 @@ Contact: Richard Purdie <rpurdie@rpsys.net>
|
|||
Description:
|
||||
Maximum brightness for <backlight>.
|
||||
Users: HAL
|
||||
|
||||
What: /sys/class/backlight/<backlight>/type
|
||||
Date: September 2010
|
||||
KernelVersion: 2.6.37
|
||||
Contact: Matthew Garrett <mjg@redhat.com>
|
||||
Description:
|
||||
The type of interface controlled by <backlight>.
|
||||
"firmware": The driver uses a standard firmware interface
|
||||
"platform": The driver uses a platform-specific interface
|
||||
"raw": The driver controls hardware registers directly
|
||||
|
||||
In the general case, when multiple backlight
|
||||
interfaces are available for a single device, firmware
|
||||
control should be preferred to platform control should
|
||||
be preferred to raw control. Using a firmware
|
||||
interface reduces the probability of confusion with
|
||||
the hardware and the OS independently updating the
|
||||
backlight state. Platform interfaces are mostly a
|
||||
holdover from pre-standardisation of firmware
|
||||
interfaces.
|
||||
|
|
31
Documentation/ABI/testing/configfs-spear-pcie-gadget
Normal file
31
Documentation/ABI/testing/configfs-spear-pcie-gadget
Normal file
|
@ -0,0 +1,31 @@
|
|||
What: /config/pcie-gadget
|
||||
Date: Feb 2011
|
||||
KernelVersion: 2.6.37
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Description:
|
||||
|
||||
Interface is used to configure selected dual mode PCIe controller
|
||||
as device and then program its various registers to configure it
|
||||
as a particular device type.
|
||||
This interfaces can be used to show spear's PCIe device capability.
|
||||
|
||||
Nodes are only visible when configfs is mounted. To mount configfs
|
||||
in /config directory use:
|
||||
# mount -t configfs none /config/
|
||||
|
||||
For nth PCIe Device Controller
|
||||
/config/pcie-gadget.n/
|
||||
link ... used to enable ltssm and read its status.
|
||||
int_type ...used to configure and read type of supported
|
||||
interrupt
|
||||
no_of_msi ... used to configure number of MSI vector needed and
|
||||
to read no of MSI granted.
|
||||
inta ... write 1 to assert INTA and 0 to de-assert.
|
||||
send_msi ... write MSI vector to be sent.
|
||||
vendor_id ... used to write and read vendor id (hex)
|
||||
device_id ... used to write and read device id (hex)
|
||||
bar0_size ... used to write and read bar0_size
|
||||
bar0_address ... used to write and read bar0 mapped area in hex.
|
||||
bar0_rw_offset ... used to write and read offset of bar0 where
|
||||
bar0_data will be written or read.
|
||||
bar0_data ... used to write and read data at bar0_rw_offset.
|
|
@ -1,6 +1,6 @@
|
|||
What: /sys/bus/rbd/
|
||||
Date: November 2010
|
||||
Contact: Yehuda Sadeh <yehuda@hq.newdream.net>,
|
||||
Contact: Yehuda Sadeh <yehuda@newdream.net>,
|
||||
Sage Weil <sage@newdream.net>
|
||||
Description:
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ o util-linux 2.10o # fdformat --version
|
|||
o module-init-tools 0.9.10 # depmod -V
|
||||
o e2fsprogs 1.41.4 # e2fsck -V
|
||||
o jfsutils 1.1.3 # fsck.jfs -V
|
||||
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
|
||||
o reiserfsprogs 3.6.3 # reiserfsck -V
|
||||
o xfsprogs 2.6.0 # xfs_db -V
|
||||
o squashfs-tools 4.0 # mksquashfs -version
|
||||
o btrfs-progs 0.18 # btrfsck
|
||||
|
@ -46,9 +46,9 @@ o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
|
|||
o nfs-utils 1.0.5 # showmount --version
|
||||
o procps 3.2.0 # ps --version
|
||||
o oprofile 0.9 # oprofiled --version
|
||||
o udev 081 # udevinfo -V
|
||||
o grub 0.93 # grub --version
|
||||
o mcelog 0.6
|
||||
o udev 081 # udevd --version
|
||||
o grub 0.93 # grub --version || grub-install --version
|
||||
o mcelog 0.6 # mcelog --version
|
||||
o iptables 1.4.2 # iptables -V
|
||||
|
||||
|
||||
|
|
|
@ -168,6 +168,13 @@ Do not unnecessarily use braces where a single statement will do.
|
|||
if (condition)
|
||||
action();
|
||||
|
||||
and
|
||||
|
||||
if (condition)
|
||||
do_this();
|
||||
else
|
||||
do_that();
|
||||
|
||||
This does not apply if one branch of a conditional statement is a single
|
||||
statement. Use braces in both branches.
|
||||
|
||||
|
|
|
@ -9,6 +9,9 @@ Mount options for ADFS
|
|||
will be nnn. Default 0700.
|
||||
othmask=nnn The permission mask for ADFS 'other' permissions
|
||||
will be nnn. Default 0077.
|
||||
ftsuffix=n When ftsuffix=0, no file type suffix will be applied.
|
||||
When ftsuffix=1, a hexadecimal suffix corresponding to
|
||||
the RISC OS file type will be added. Default 0.
|
||||
|
||||
Mapping of ADFS permissions to Linux permissions
|
||||
------------------------------------------------
|
||||
|
@ -55,3 +58,18 @@ Mapping of ADFS permissions to Linux permissions
|
|||
|
||||
You can therefore tailor the permission translation to whatever you
|
||||
desire the permissions should be under Linux.
|
||||
|
||||
RISC OS file type suffix
|
||||
------------------------
|
||||
|
||||
RISC OS file types are stored in bits 19..8 of the file load address.
|
||||
|
||||
To enable non-RISC OS systems to be used to store files without losing
|
||||
file type information, a file naming convention was devised (initially
|
||||
for use with NFS) such that a hexadecimal suffix of the form ,xyz
|
||||
denoted the file type: e.g. BasicFile,ffb is a BASIC (0xffb) file. This
|
||||
naming convention is now also used by RISC OS emulators such as RPCEmu.
|
||||
|
||||
Mounting an ADFS disc with option ftsuffix=1 will cause appropriate file
|
||||
type suffixes to be appended to file names read from a directory. If the
|
||||
ftsuffix option is zero or omitted, no file type suffixes will be added.
|
||||
|
|
26
Documentation/i2c/busses/i2c-diolan-u2c
Normal file
26
Documentation/i2c/busses/i2c-diolan-u2c
Normal file
|
@ -0,0 +1,26 @@
|
|||
Kernel driver i2c-diolan-u2c
|
||||
|
||||
Supported adapters:
|
||||
* Diolan U2C-12 I2C-USB adapter
|
||||
Documentation:
|
||||
http://www.diolan.com/i2c/u2c12.html
|
||||
|
||||
Author: Guenter Roeck <guenter.roeck@ericsson.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This is the driver for the Diolan U2C-12 USB-I2C adapter.
|
||||
|
||||
The Diolan U2C-12 I2C-USB Adapter provides a low cost solution to connect
|
||||
a computer to I2C slave devices using a USB interface. It also supports
|
||||
connectivity to SPI devices.
|
||||
|
||||
This driver only supports the I2C interface of U2C-12. The driver does not use
|
||||
interrupts.
|
||||
|
||||
|
||||
Module parameters
|
||||
-----------------
|
||||
|
||||
* frequency: I2C bus frequency
|
|
@ -872,6 +872,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
If specified, z/VM IUCV HVC accepts connections
|
||||
from listed z/VM user IDs only.
|
||||
|
||||
keep_bootcon [KNL]
|
||||
Do not unregister boot console at start. This is only
|
||||
useful for debugging when something happens in the window
|
||||
between unregistering the boot console and initializing
|
||||
the real console.
|
||||
|
||||
i2c_bus= [HW] Override the default board specific I2C bus speed
|
||||
or register an additional I2C bus that is not
|
||||
registered from board initialization code.
|
||||
|
@ -1597,11 +1603,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
Format: [state][,regs][,debounce][,die]
|
||||
|
||||
nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels
|
||||
Format: [panic,][num]
|
||||
Format: [panic,][nopanic,][num]
|
||||
Valid num: 0
|
||||
0 - turn nmi_watchdog off
|
||||
When panic is specified, panic when an NMI watchdog
|
||||
timeout occurs.
|
||||
timeout occurs (or 'nopanic' to override the opposite
|
||||
default).
|
||||
This is useful when you use a panic=... timeout and
|
||||
need the box quickly up again.
|
||||
|
||||
|
@ -1825,6 +1832,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
perfmon on Intel CPUs instead of the
|
||||
CPU specific event set.
|
||||
|
||||
oops=panic Always panic on oopses. Default is to just kill the process,
|
||||
but there is a small probability of deadlocking the machine.
|
||||
This will also cause panics on machine check exceptions.
|
||||
Useful together with panic=30 to trigger a reboot.
|
||||
|
||||
OSS [HW,OSS]
|
||||
See Documentation/sound/oss/oss-parameters.txt
|
||||
|
||||
|
|
130
Documentation/misc-devices/spear-pcie-gadget.txt
Normal file
130
Documentation/misc-devices/spear-pcie-gadget.txt
Normal file
|
@ -0,0 +1,130 @@
|
|||
Spear PCIe Gadget Driver:
|
||||
|
||||
Author
|
||||
=============
|
||||
Pratyush Anand (pratyush.anand@st.com)
|
||||
|
||||
Location
|
||||
============
|
||||
driver/misc/spear13xx_pcie_gadget.c
|
||||
|
||||
Supported Chip:
|
||||
===================
|
||||
SPEAr1300
|
||||
SPEAr1310
|
||||
|
||||
Menuconfig option:
|
||||
==========================
|
||||
Device Drivers
|
||||
Misc devices
|
||||
PCIe gadget support for SPEAr13XX platform
|
||||
purpose
|
||||
===========
|
||||
This driver has several nodes which can be read/written by configfs interface.
|
||||
Its main purpose is to configure selected dual mode PCIe controller as device
|
||||
and then program its various registers to configure it as a particular device
|
||||
type. This driver can be used to show spear's PCIe device capability.
|
||||
|
||||
Description of different nodes:
|
||||
=================================
|
||||
|
||||
read behavior of nodes:
|
||||
------------------------------
|
||||
link :gives ltssm status.
|
||||
int_type :type of supported interrupt
|
||||
no_of_msi :zero if MSI is not enabled by host. A positive value is the
|
||||
number of MSI vector granted.
|
||||
vendor_id :returns programmed vendor id (hex)
|
||||
device_id :returns programmed device id(hex)
|
||||
bar0_size: :returns size of bar0 in hex.
|
||||
bar0_address :returns address of bar0 mapped area in hex.
|
||||
bar0_rw_offset :returns offset of bar0 for which bar0_data will return value.
|
||||
bar0_data :returns data at bar0_rw_offset.
|
||||
|
||||
write behavior of nodes:
|
||||
------------------------------
|
||||
link :write UP to enable ltsmm DOWN to disable
|
||||
int_type :write interrupt type to be configured and (int_type could be
|
||||
INTA, MSI or NO_INT). Select MSI only when you have programmed
|
||||
no_of_msi node.
|
||||
no_of_msi :number of MSI vector needed.
|
||||
inta :write 1 to assert INTA and 0 to de-assert.
|
||||
send_msi :write MSI vector to be sent.
|
||||
vendor_id :write vendor id(hex) to be programmed.
|
||||
device_id :write device id(hex) to be programmed.
|
||||
bar0_size :write size of bar0 in hex. default bar0 size is 1000 (hex)
|
||||
bytes.
|
||||
bar0_address :write address of bar0 mapped area in hex. (default mapping of
|
||||
bar0 is SYSRAM1(E0800000). Always program bar size before bar
|
||||
address. Kernel might modify bar size and address for alignment, so
|
||||
read back bar size and address after writing to cross check.
|
||||
bar0_rw_offset :write offset of bar0 for which bar0_data will write value.
|
||||
bar0_data :write data to be written at bar0_rw_offset.
|
||||
|
||||
Node programming example
|
||||
===========================
|
||||
Program all PCIe registers in such a way that when this device is connected
|
||||
to the PCIe host, then host sees this device as 1MB RAM.
|
||||
#mount -t configfs none /Config
|
||||
For nth PCIe Device Controller
|
||||
# cd /config/pcie_gadget.n/
|
||||
Now you have all the nodes in this directory.
|
||||
program vendor id as 0x104a
|
||||
# echo 104A >> vendor_id
|
||||
|
||||
program device id as 0xCD80
|
||||
# echo CD80 >> device_id
|
||||
|
||||
program BAR0 size as 1MB
|
||||
# echo 100000 >> bar0_size
|
||||
|
||||
check for programmed bar0 size
|
||||
# cat bar0_size
|
||||
|
||||
Program BAR0 Address as DDR (0x2100000). This is the physical address of
|
||||
memory, which is to be made visible to PCIe host. Similarly any other peripheral
|
||||
can also be made visible to PCIe host. E.g., if you program base address of UART
|
||||
as BAR0 address then when this device will be connected to a host, it will be
|
||||
visible as UART.
|
||||
# echo 2100000 >> bar0_address
|
||||
|
||||
program interrupt type : INTA
|
||||
# echo INTA >> int_type
|
||||
|
||||
go for link up now.
|
||||
# echo UP >> link
|
||||
|
||||
It will have to be insured that, once link up is done on gadget, then only host
|
||||
is initialized and start to search PCIe devices on its port.
|
||||
|
||||
/*wait till link is up*/
|
||||
# cat link
|
||||
wait till it returns UP.
|
||||
|
||||
To assert INTA
|
||||
# echo 1 >> inta
|
||||
|
||||
To de-assert INTA
|
||||
# echo 0 >> inta
|
||||
|
||||
if MSI is to be used as interrupt, program no of msi vector needed (say4)
|
||||
# echo 4 >> no_of_msi
|
||||
|
||||
select MSI as interrupt type
|
||||
# echo MSI >> int_type
|
||||
|
||||
go for link up now
|
||||
# echo UP >> link
|
||||
|
||||
wait till link is up
|
||||
# cat link
|
||||
An application can repetitively read this node till link is found UP. It can
|
||||
sleep between two read.
|
||||
|
||||
wait till msi is enabled
|
||||
# cat no_of_msi
|
||||
Should return 4 (number of requested MSI vector)
|
||||
|
||||
to send msi vector 2
|
||||
# echo 2 >> send_msi
|
||||
#cd -
|
|
@ -32,8 +32,20 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/statfs.h>
|
||||
#include "../../include/linux/magic.h"
|
||||
|
||||
|
||||
#ifndef MAX_PATH
|
||||
# define MAX_PATH 256
|
||||
#endif
|
||||
|
||||
#ifndef STR
|
||||
# define _STR(x) #x
|
||||
# define STR(x) _STR(x)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* pagemap kernel ABI bits
|
||||
*/
|
||||
|
@ -152,6 +164,12 @@ static const char *page_flag_names[] = {
|
|||
};
|
||||
|
||||
|
||||
static const char *debugfs_known_mountpoints[] = {
|
||||
"/sys/kernel/debug",
|
||||
"/debug",
|
||||
0,
|
||||
};
|
||||
|
||||
/*
|
||||
* data structures
|
||||
*/
|
||||
|
@ -184,7 +202,7 @@ static int kpageflags_fd;
|
|||
static int opt_hwpoison;
|
||||
static int opt_unpoison;
|
||||
|
||||
static const char hwpoison_debug_fs[] = "/debug/hwpoison";
|
||||
static char hwpoison_debug_fs[MAX_PATH+1];
|
||||
static int hwpoison_inject_fd;
|
||||
static int hwpoison_forget_fd;
|
||||
|
||||
|
@ -464,21 +482,100 @@ static uint64_t kpageflags_flags(uint64_t flags)
|
|||
return flags;
|
||||
}
|
||||
|
||||
/* verify that a mountpoint is actually a debugfs instance */
|
||||
static int debugfs_valid_mountpoint(const char *debugfs)
|
||||
{
|
||||
struct statfs st_fs;
|
||||
|
||||
if (statfs(debugfs, &st_fs) < 0)
|
||||
return -ENOENT;
|
||||
else if (st_fs.f_type != (long) DEBUGFS_MAGIC)
|
||||
return -ENOENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* find the path to the mounted debugfs */
|
||||
static const char *debugfs_find_mountpoint(void)
|
||||
{
|
||||
const char **ptr;
|
||||
char type[100];
|
||||
FILE *fp;
|
||||
|
||||
ptr = debugfs_known_mountpoints;
|
||||
while (*ptr) {
|
||||
if (debugfs_valid_mountpoint(*ptr) == 0) {
|
||||
strcpy(hwpoison_debug_fs, *ptr);
|
||||
return hwpoison_debug_fs;
|
||||
}
|
||||
ptr++;
|
||||
}
|
||||
|
||||
/* give up and parse /proc/mounts */
|
||||
fp = fopen("/proc/mounts", "r");
|
||||
if (fp == NULL)
|
||||
perror("Can't open /proc/mounts for read");
|
||||
|
||||
while (fscanf(fp, "%*s %"
|
||||
STR(MAX_PATH)
|
||||
"s %99s %*s %*d %*d\n",
|
||||
hwpoison_debug_fs, type) == 2) {
|
||||
if (strcmp(type, "debugfs") == 0)
|
||||
break;
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
if (strcmp(type, "debugfs") != 0)
|
||||
return NULL;
|
||||
|
||||
return hwpoison_debug_fs;
|
||||
}
|
||||
|
||||
/* mount the debugfs somewhere if it's not mounted */
|
||||
|
||||
static void debugfs_mount(void)
|
||||
{
|
||||
const char **ptr;
|
||||
|
||||
/* see if it's already mounted */
|
||||
if (debugfs_find_mountpoint())
|
||||
return;
|
||||
|
||||
ptr = debugfs_known_mountpoints;
|
||||
while (*ptr) {
|
||||
if (mount(NULL, *ptr, "debugfs", 0, NULL) == 0) {
|
||||
/* save the mountpoint */
|
||||
strcpy(hwpoison_debug_fs, *ptr);
|
||||
break;
|
||||
}
|
||||
ptr++;
|
||||
}
|
||||
|
||||
if (*ptr == NULL) {
|
||||
perror("mount debugfs");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* page actions
|
||||
*/
|
||||
|
||||
static void prepare_hwpoison_fd(void)
|
||||
{
|
||||
char buf[100];
|
||||
char buf[MAX_PATH + 1];
|
||||
|
||||
debugfs_mount();
|
||||
|
||||
if (opt_hwpoison && !hwpoison_inject_fd) {
|
||||
sprintf(buf, "%s/corrupt-pfn", hwpoison_debug_fs);
|
||||
snprintf(buf, MAX_PATH, "%s/hwpoison/corrupt-pfn",
|
||||
hwpoison_debug_fs);
|
||||
hwpoison_inject_fd = checked_open(buf, O_WRONLY);
|
||||
}
|
||||
|
||||
if (opt_unpoison && !hwpoison_forget_fd) {
|
||||
sprintf(buf, "%s/unpoison-pfn", hwpoison_debug_fs);
|
||||
snprintf(buf, MAX_PATH, "%s/hwpoison/unpoison-pfn",
|
||||
hwpoison_debug_fs);
|
||||
hwpoison_forget_fd = checked_open(buf, O_WRONLY);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -293,11 +293,6 @@ IOMMU (input/output memory management unit)
|
|||
|
||||
Debugging
|
||||
|
||||
oops=panic Always panic on oopses. Default is to just kill the process,
|
||||
but there is a small probability of deadlocking the machine.
|
||||
This will also cause panics on machine check exceptions.
|
||||
Useful together with panic=30 to trigger a reboot.
|
||||
|
||||
kstack=N Print N words from the kernel stack in oops dumps.
|
||||
|
||||
pagefaulttrace Dump all page faults. Only useful for extreme debugging
|
||||
|
|
87
MAINTAINERS
87
MAINTAINERS
|
@ -72,7 +72,7 @@ Descriptions of section entries:
|
|||
L: Mailing list that is relevant to this area
|
||||
W: Web-page with status/info
|
||||
Q: Patchwork web based patch tracking system site
|
||||
T: SCM tree type and location. Type is one of: git, hg, quilt, stgit.
|
||||
T: SCM tree type and location. Type is one of: git, hg, quilt, stgit, topgit.
|
||||
S: Status, one of the following:
|
||||
Supported: Someone is actually paid to look after this.
|
||||
Maintained: Someone actually looks after it.
|
||||
|
@ -288,35 +288,35 @@ F: sound/pci/ad1889.*
|
|||
AD525X ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/AD5254
|
||||
W: http://wiki.analog.com/AD5254
|
||||
S: Supported
|
||||
F: drivers/misc/ad525x_dpot.c
|
||||
|
||||
AD5398 CURRENT REGULATOR DRIVER (AD5398/AD5821)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/AD5398
|
||||
W: http://wiki.analog.com/AD5398
|
||||
S: Supported
|
||||
F: drivers/regulator/ad5398.c
|
||||
|
||||
AD714X CAPACITANCE TOUCH SENSOR DRIVER (AD7142/3/7/8/7A)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/AD7142
|
||||
W: http://wiki.analog.com/AD7142
|
||||
S: Supported
|
||||
F: drivers/input/misc/ad714x.c
|
||||
|
||||
AD7877 TOUCHSCREEN DRIVER
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/AD7877
|
||||
W: http://wiki.analog.com/AD7877
|
||||
S: Supported
|
||||
F: drivers/input/touchscreen/ad7877.c
|
||||
|
||||
AD7879 TOUCHSCREEN DRIVER (AD7879/AD7889)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/AD7879
|
||||
W: http://wiki.analog.com/AD7879
|
||||
S: Supported
|
||||
F: drivers/input/touchscreen/ad7879.c
|
||||
|
||||
|
@ -342,18 +342,18 @@ F: drivers/net/wireless/adm8211.*
|
|||
ADP5520 BACKLIGHT DRIVER WITH IO EXPANDER (ADP5520/ADP5501)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/ADP5520
|
||||
W: http://wiki.analog.com/ADP5520
|
||||
S: Supported
|
||||
F: drivers/mfd/adp5520.c
|
||||
F: drivers/video/backlight/adp5520_bl.c
|
||||
F: drivers/led/leds-adp5520.c
|
||||
F: drivers/leds/leds-adp5520.c
|
||||
F: drivers/gpio/adp5520-gpio.c
|
||||
F: drivers/input/keyboard/adp5520-keys.c
|
||||
|
||||
ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/ADP5588
|
||||
W: http://wiki.analog.com/ADP5588
|
||||
S: Supported
|
||||
F: drivers/input/keyboard/adp5588-keys.c
|
||||
F: drivers/gpio/adp5588-gpio.c
|
||||
|
@ -361,7 +361,7 @@ F: drivers/gpio/adp5588-gpio.c
|
|||
ADP8860 BACKLIGHT DRIVER (ADP8860/ADP8861/ADP8863)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/ADP8860
|
||||
W: http://wiki.analog.com/ADP8860
|
||||
S: Supported
|
||||
F: drivers/video/backlight/adp8860_bl.c
|
||||
|
||||
|
@ -388,7 +388,7 @@ F: drivers/hwmon/adt7475.c
|
|||
ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
W: http://wiki-analog.com/ADXL345
|
||||
W: http://wiki.analog.com/ADXL345
|
||||
S: Supported
|
||||
F: drivers/input/misc/adxl34x.c
|
||||
|
||||
|
@ -528,11 +528,9 @@ F: drivers/infiniband/hw/amso1100/
|
|||
ANALOG DEVICES INC ASOC CODEC DRIVERS
|
||||
L: device-driver-devel@blackfin.uclinux.org
|
||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||
W: http://wiki-analog.com/
|
||||
W: http://wiki.analog.com/
|
||||
S: Supported
|
||||
F: sound/soc/codecs/ad1*
|
||||
F: sound/soc/codecs/adau*
|
||||
F: sound/soc/codecs/adav*
|
||||
F: sound/soc/codecs/ssm*
|
||||
|
||||
ANALOG DEVICES INC ASOC DRIVERS
|
||||
|
@ -697,8 +695,8 @@ S: Maintained
|
|||
ARM/CLKDEV SUPPORT
|
||||
M: Russell King <linux@arm.linux.org.uk>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
F: arch/arm/common/clkdev.c
|
||||
F: arch/arm/include/asm/clkdev.h
|
||||
F: drivers/clk/clkdev.c
|
||||
|
||||
ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
|
||||
M: Mike Rapoport <mike@compulab.co.il>
|
||||
|
@ -919,6 +917,7 @@ F: drivers/mmc/host/msm_sdcc.c
|
|||
F: drivers/mmc/host/msm_sdcc.h
|
||||
F: drivers/tty/serial/msm_serial.h
|
||||
F: drivers/tty/serial/msm_serial.c
|
||||
F: drivers/platform/msm/
|
||||
T: git git://codeaurora.org/quic/kernel/davidb/linux-msm.git
|
||||
S: Maintained
|
||||
|
||||
|
@ -1078,7 +1077,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
|||
S: Maintained
|
||||
|
||||
ARM/TETON BGA MACHINE SUPPORT
|
||||
M: Mark F. Brown <mark.brown314@gmail.com>
|
||||
M: "Mark F. Brown" <mark.brown314@gmail.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
|
||||
|
@ -1482,7 +1481,7 @@ F: drivers/mtd/devices/block2mtd.c
|
|||
|
||||
BLUETOOTH DRIVERS
|
||||
M: Marcel Holtmann <marcel@holtmann.org>
|
||||
M: Gustavo F. Padovan <padovan@profusion.mobi>
|
||||
M: "Gustavo F. Padovan" <padovan@profusion.mobi>
|
||||
L: linux-bluetooth@vger.kernel.org
|
||||
W: http://www.bluez.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
|
||||
|
@ -1491,7 +1490,7 @@ F: drivers/bluetooth/
|
|||
|
||||
BLUETOOTH SUBSYSTEM
|
||||
M: Marcel Holtmann <marcel@holtmann.org>
|
||||
M: Gustavo F. Padovan <padovan@profusion.mobi>
|
||||
M: "Gustavo F. Padovan" <padovan@profusion.mobi>
|
||||
L: linux-bluetooth@vger.kernel.org
|
||||
W: http://www.bluez.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git
|
||||
|
@ -2138,6 +2137,12 @@ F: Documentation/serial/digiepca.txt
|
|||
F: drivers/char/epca*
|
||||
F: drivers/char/digi*
|
||||
|
||||
DIOLAN U2C-12 I2C DRIVER
|
||||
M: Guenter Roeck <guenter.roeck@ericsson.com>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/i2c/busses/i2c-diolan-u2c.c
|
||||
|
||||
DIRECTORY NOTIFICATION (DNOTIFY)
|
||||
M: Eric Paris <eparis@parisplace.org>
|
||||
S: Maintained
|
||||
|
@ -2475,8 +2480,7 @@ F: include/linux/cb710.h
|
|||
ENE KB2426 (ENE0100/ENE020XX) INFRARED RECEIVER
|
||||
M: Maxim Levitsky <maximlevitsky@gmail.com>
|
||||
S: Maintained
|
||||
F: drivers/media/IR/ene_ir.c
|
||||
F: drivers/media/IR/ene_ir.h
|
||||
F: drivers/media/rc/ene_ir.*
|
||||
|
||||
EPSON 1355 FRAMEBUFFER DRIVER
|
||||
M: Christopher Hoover <ch@murgatroid.com>
|
||||
|
@ -2820,7 +2824,6 @@ F: include/linux/gigaset_dev.h
|
|||
|
||||
GPIO SUBSYSTEM
|
||||
M: Grant Likely <grant.likely@secretlab.ca>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.secretlab.ca/git/linux-2.6.git
|
||||
F: Documentation/gpio/gpio.txt
|
||||
|
@ -2843,7 +2846,6 @@ F: drivers/platform/x86/hdaps.c
|
|||
HWPOISON MEMORY FAILURE HANDLING
|
||||
M: Andi Kleen <andi@firstfloor.org>
|
||||
L: linux-mm@kvack.org
|
||||
L: linux-kernel@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6.git hwpoison
|
||||
S: Maintained
|
||||
F: mm/memory-failure.c
|
||||
|
@ -2944,7 +2946,7 @@ F: Documentation/blockdev/cpqarray.txt
|
|||
F: drivers/block/cpqarray.*
|
||||
|
||||
HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
|
||||
M: Stephen M. Cameron <scameron@beardog.cce.hp.com>
|
||||
M: "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
|
||||
L: iss_storagedev@hp.com
|
||||
S: Supported
|
||||
F: Documentation/scsi/hpsa.txt
|
||||
|
@ -3001,7 +3003,7 @@ F: kernel/hrtimer.c
|
|||
F: kernel/time/clockevents.c
|
||||
F: kernel/time/tick*.*
|
||||
F: kernel/time/timer_*.c
|
||||
F include/linux/clockevents.h
|
||||
F: include/linux/clockevents.h
|
||||
F: include/linux/hrtimer.h
|
||||
|
||||
HIGH-SPEED SCC DRIVER FOR AX.25
|
||||
|
@ -3174,15 +3176,6 @@ L: linux-pm@lists.linux-foundation.org
|
|||
S: Supported
|
||||
F: drivers/idle/i7300_idle.c
|
||||
|
||||
IEEE 1394 SUBSYSTEM
|
||||
M: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
||||
L: linux1394-devel@lists.sourceforge.net
|
||||
W: http://ieee1394.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
|
||||
S: Obsolete
|
||||
F: Documentation/debugging-via-ohci1394.txt
|
||||
F: drivers/ieee1394/
|
||||
|
||||
IEEE 802.15.4 SUBSYSTEM
|
||||
M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
||||
M: Sergey Lapin <slapin@ossfans.org>
|
||||
|
@ -4226,7 +4219,7 @@ F: Documentation/serial/moxa-smartio
|
|||
F: drivers/char/mxser.*
|
||||
|
||||
MSI LAPTOP SUPPORT
|
||||
M: Lee, Chun-Yi <jlee@novell.com>
|
||||
M: "Lee, Chun-Yi" <jlee@novell.com>
|
||||
L: platform-driver-x86@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/platform/x86/msi-laptop.c
|
||||
|
@ -4721,7 +4714,6 @@ F: drivers/i2c/busses/i2c-pasemi.c
|
|||
|
||||
PADATA PARALLEL EXECUTION MECHANISM
|
||||
M: Steffen Klassert <steffen.klassert@secunet.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
L: linux-crypto@vger.kernel.org
|
||||
S: Maintained
|
||||
F: kernel/padata.c
|
||||
|
@ -4871,7 +4863,6 @@ F: include/crypto/pcrypt.h
|
|||
PER-CPU MEMORY ALLOCATOR
|
||||
M: Tejun Heo <tj@kernel.org>
|
||||
M: Christoph Lameter <cl@linux-foundation.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
|
||||
S: Maintained
|
||||
F: include/linux/percpu*.h
|
||||
|
@ -5430,7 +5421,6 @@ S: Supported
|
|||
F: include/linux/clocksource.h
|
||||
F: include/linux/time.h
|
||||
F: include/linux/timex.h
|
||||
F: include/linux/timekeeping.h
|
||||
F: kernel/time/clocksource.c
|
||||
F: kernel/time/time*.c
|
||||
F: kernel/time/ntp.c
|
||||
|
@ -5518,7 +5508,7 @@ SCx200 CPU SUPPORT
|
|||
M: Jim Cromie <jim.cromie@gmail.com>
|
||||
S: Odd Fixes
|
||||
F: Documentation/i2c/busses/scx200_acb
|
||||
F: arch/x86/kernel/scx200_32.c
|
||||
F: arch/x86/platform/scx200/
|
||||
F: drivers/watchdog/scx200_wdt.c
|
||||
F: drivers/i2c/busses/scx200*
|
||||
F: drivers/mtd/maps/scx200_docflash.c
|
||||
|
@ -5662,24 +5652,13 @@ M: Robin Holt <holt@sgi.com>
|
|||
S: Maintained
|
||||
F: drivers/misc/sgi-xp/
|
||||
|
||||
SHARP LH SUPPORT (LH7952X & LH7A40X)
|
||||
M: Marc Singer <elf@buici.com>
|
||||
W: http://projects.buici.com/arm
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
|
||||
F: arch/arm/mach-lh7a40x/
|
||||
F: drivers/tty/serial/serial_lh7a40x.c
|
||||
F: drivers/usb/gadget/lh7a40*
|
||||
F: drivers/usb/host/ohci-lh7a40*
|
||||
|
||||
SIMPLE FIRMWARE INTERFACE (SFI)
|
||||
M: Len Brown <lenb@kernel.org>
|
||||
L: sfi-devel@simplefirmware.org
|
||||
W: http://simplefirmware.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6.git
|
||||
S: Supported
|
||||
F: arch/x86/kernel/*sfi*
|
||||
F: arch/x86/platform/sfi/
|
||||
F: drivers/sfi/
|
||||
F: include/linux/sfi*.h
|
||||
|
||||
|
@ -6487,12 +6466,11 @@ S: Maintained
|
|||
F: drivers/net/usb/rtl8150.c
|
||||
|
||||
USB SE401 DRIVER
|
||||
M: Jeroen Vreeken <pe1rxq@amsat.org>
|
||||
L: linux-usb@vger.kernel.org
|
||||
W: http://www.chello.nl/~j.vreeken/se401/
|
||||
S: Maintained
|
||||
S: Orphan
|
||||
F: Documentation/video4linux/se401.txt
|
||||
F: drivers/media/video/se401.*
|
||||
F: drivers/staging/se401/
|
||||
|
||||
USB SERIAL BELKIN F5U103 DRIVER
|
||||
M: William Greathouse <wgreathouse@smva.com>
|
||||
|
@ -6842,7 +6820,7 @@ F: drivers/scsi/wd7000.c
|
|||
WINBOND CIR DRIVER
|
||||
M: David Härdeman <david@hardeman.nu>
|
||||
S: Maintained
|
||||
F: drivers/input/misc/winbond-cir.c
|
||||
F: drivers/media/rc/winbond-cir.c
|
||||
|
||||
WIMAX STACK
|
||||
M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
|
||||
|
@ -6919,7 +6897,6 @@ F: sound/soc/codecs/wm*
|
|||
|
||||
WORKQUEUE
|
||||
M: Tejun Heo <tj@kernel.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git
|
||||
S: Maintained
|
||||
F: include/linux/workqueue.h
|
||||
|
|
|
@ -27,7 +27,6 @@ typedef unsigned int umode_t;
|
|||
#ifdef __KERNEL__
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
typedef u64 dma_addr_t;
|
||||
typedef u64 dma64_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -18,9 +18,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
typedef u32 dma64_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -11,8 +11,8 @@ extern void __init mmp2_init_irq(void);
|
|||
extern void mmp2_clear_pmic_int(void);
|
||||
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <mach/devices.h>
|
||||
#include <plat/i2c.h>
|
||||
|
||||
extern struct pxa_device_desc mmp2_device_uart1;
|
||||
extern struct pxa_device_desc mmp2_device_uart2;
|
||||
|
|
|
@ -8,8 +8,8 @@ extern void __init pxa168_init_irq(void);
|
|||
extern void pxa168_clear_keypad_wakeup(void);
|
||||
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <mach/devices.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
#include <video/pxa168fb.h>
|
||||
#include <plat/pxa27x_keypad.h>
|
||||
|
|
|
@ -7,8 +7,8 @@ extern struct sys_timer pxa910_timer;
|
|||
extern void __init pxa910_init_irq(void);
|
||||
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <mach/devices.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
extern struct pxa_device_desc pxa910_device_uart1;
|
||||
|
|
26
arch/arm/mach-mxs/include/mach/dma.h
Normal file
26
arch/arm/mach-mxs/include/mach/dma.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __MACH_MXS_DMA_H__
|
||||
#define __MACH_MXS_DMA_H__
|
||||
|
||||
struct mxs_dma_data {
|
||||
int chan_irq;
|
||||
};
|
||||
|
||||
static inline int mxs_dma_is_apbh(struct dma_chan *chan)
|
||||
{
|
||||
return !strcmp(dev_name(chan->device->dev), "mxs-dma-apbh");
|
||||
}
|
||||
|
||||
static inline int mxs_dma_is_apbx(struct dma_chan *chan)
|
||||
{
|
||||
return !strcmp(dev_name(chan->device->dev), "mxs-dma-apbx");
|
||||
}
|
||||
|
||||
#endif /* __MACH_MXS_DMA_H__ */
|
|
@ -27,6 +27,7 @@
|
|||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/i2c/pcf857x.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/regulator/max1586.h>
|
||||
|
@ -51,8 +52,6 @@
|
|||
#include <mach/irda.h>
|
||||
#include <mach/ohci.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <linux/mfd/da903x.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
|
@ -48,7 +49,6 @@
|
|||
#include <mach/pxafb.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/ohci.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
#include <mach/audio.h>
|
||||
#include <mach/pxa3xx-u2d.h>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <mach/hardware.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <mach/pxa27x.h>
|
||||
#include <mach/colibri.h>
|
||||
|
@ -27,8 +28,6 @@
|
|||
#include <mach/ohci.h>
|
||||
#include <mach/pxa27x-udc.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/sysdev.h>
|
||||
|
||||
#include <asm/irq.h>
|
||||
|
@ -33,8 +34,6 @@
|
|||
#include <mach/pxa27x-udc.h>
|
||||
#include <mach/pxafb.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "devices.h"
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/backlight.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
|
@ -45,7 +46,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/pxa25x.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/udc.h>
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/sm501.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <mach/csb726.h>
|
||||
#include <mach/mfp-pxa27x.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/ohci.h>
|
||||
#include <mach/pxa2xx-regs.h>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/spi/pxa2xx_spi.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/pmu.h>
|
||||
#include <mach/udc.h>
|
||||
|
@ -16,7 +17,6 @@
|
|||
#include <mach/camera.h>
|
||||
#include <mach/audio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
#include "devices.h"
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <linux/apm-emulation.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/regulator/userspace-consumer.h>
|
||||
|
||||
#include <media/soc_camera.h>
|
||||
|
@ -45,7 +46,6 @@
|
|||
#include <mach/ohci.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/pxa27x_keypad.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/camera.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/leds-lp3944.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <media/soc_camera.h>
|
||||
|
||||
|
@ -30,7 +31,6 @@
|
|||
#include <mach/pxa27x.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <mach/ohci.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/pxa27x_keypad.h>
|
||||
#include <mach/camera.h>
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/pxa2xx_spi.h>
|
||||
#include <linux/usb/gpio_vbus.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -42,7 +43,6 @@
|
|||
|
||||
#include <mach/pxa27x.h>
|
||||
#include <mach/hx4700.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/irda.h>
|
||||
|
||||
#include <video/platform_lcd.h>
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <linux/leds.h>
|
||||
#include <linux/mfd/da903x.h>
|
||||
#include <linux/i2c/max732x.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <asm/setup.h>
|
||||
|
@ -45,7 +46,6 @@
|
|||
#include <mach/mmc.h>
|
||||
#include <plat/pxa27x_keypad.h>
|
||||
#include <mach/littleton.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <linux/regulator/bq24022.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/usb/gpio_vbus.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -36,7 +37,6 @@
|
|||
#include <mach/pxa27x.h>
|
||||
#include <mach/magician.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/ohci.h>
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <linux/gpio_keys.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <asm/setup.h>
|
||||
|
@ -46,7 +47,6 @@
|
|||
#include <mach/mainstone.h>
|
||||
#include <mach/audio.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/ohci.h>
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <linux/usb/gpio_vbus.h>
|
||||
#include <linux/regulator/max1586.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -50,7 +51,6 @@
|
|||
#include <mach/mmc.h>
|
||||
#include <mach/udc.h>
|
||||
#include <mach/pxa27x-udc.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/camera.h>
|
||||
#include <mach/audio.h>
|
||||
#include <media/soc_camera.h>
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
#include <linux/serial_8250.h>
|
||||
#include <linux/dm9000.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
#include <mach/pxafb.h>
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <linux/power_supply.h>
|
||||
#include <linux/usb/gpio_vbus.h>
|
||||
#include <linux/regulator/max1586.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -36,8 +37,6 @@
|
|||
#include <mach/palmasoc.h>
|
||||
#include <mach/palm27x.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
|
|
|
@ -23,12 +23,12 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
|
||||
#include <media/soc_camera.h>
|
||||
|
||||
#include <asm/gpio.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/camera.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/pxa27x.h>
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
#include <linux/spi/pxa2xx_spi.h>
|
||||
|
@ -44,7 +45,6 @@
|
|||
#include <mach/irda.h>
|
||||
#include <mach/poodle.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include <asm/hardware/scoop.h>
|
||||
#include <asm/hardware/locomo.h>
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/sysdev.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/hardware.h>
|
||||
|
@ -32,8 +33,6 @@
|
|||
#include <mach/dma.h>
|
||||
#include <mach/smemc.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
#include "clock.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/sysdev.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/hardware.h>
|
||||
|
@ -32,7 +33,6 @@
|
|||
#include <mach/dma.h>
|
||||
#include <mach/regs-intc.h>
|
||||
#include <mach/smemc.h>
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/sysdev.h>
|
||||
|
@ -27,7 +28,6 @@
|
|||
#include <mach/pm.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/regs-intc.h>
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <linux/sched.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/spi_gpio.h>
|
||||
#include <linux/lis3lv02d.h>
|
||||
|
@ -53,7 +54,6 @@
|
|||
#include <mach/ohci.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <plat/pxa3xx_nand.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/mfd/da903x.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
|
@ -31,7 +32,6 @@
|
|||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/pxa930.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/pxafb.h>
|
||||
|
||||
#include "devices.h"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/mfd/88pm860x.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -24,8 +25,6 @@
|
|||
#include <mach/mfp-pxa930.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
#define SAARB_NR_IRQS (IRQ_BOARD_START + 40)
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
|
@ -47,8 +48,6 @@
|
|||
#include <mach/sharpsl_pm.h>
|
||||
#include <mach/smemc.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <linux/mtd/plat-ram.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/i2c/pcf857x.h>
|
||||
#include <linux/i2c/at24.h>
|
||||
#include <linux/smc91x.h>
|
||||
|
@ -43,7 +44,6 @@
|
|||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/pxa27x.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/udc.h>
|
||||
#include <mach/pxa27x-udc.h>
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/mfd/88pm860x.h>
|
||||
|
||||
|
@ -23,8 +24,6 @@
|
|||
|
||||
#include <mach/pxa930.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "devices.h"
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/pxa2xx_spi.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -41,7 +42,6 @@
|
|||
#include <mach/pxa25x.h>
|
||||
#include <mach/reset.h>
|
||||
#include <mach/irda.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/udc.h>
|
||||
#include <mach/tosa_bt.h>
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <linux/dm9000.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <asm/setup.h>
|
||||
|
@ -47,7 +48,6 @@
|
|||
#include <mach/irda.h>
|
||||
#include <mach/ohci.h>
|
||||
#include <mach/smemc.h>
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
|
@ -47,7 +48,6 @@
|
|||
#include <mach/pxa25x.h>
|
||||
#include <mach/audio.h>
|
||||
#include <mach/pxafb.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/regs-uart.h>
|
||||
#include <mach/arcom-pcmcia.h>
|
||||
#include <mach/viper.h>
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <linux/ucb1400.h>
|
||||
#include <linux/ata_platform.h>
|
||||
#include <linux/regulator/max1586.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -40,8 +41,6 @@
|
|||
#include <mach/udc.h>
|
||||
#include <mach/pata_pxa.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
|
@ -26,8 +27,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/pxa2xx-regs.h>
|
||||
#include <mach/mfp-pxa25x.h>
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <linux/gpio_keys.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -40,8 +41,6 @@
|
|||
#include <mach/mmc.h>
|
||||
#include <plat/pxa27x_keypad.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
#include "devices.h"
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/apm-emulation.h>
|
||||
#include <linux/can/platform/mcp251x.h>
|
||||
|
@ -33,8 +34,6 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <plat/i2c.h>
|
||||
|
||||
#include <mach/pxa2xx-regs.h>
|
||||
#include <mach/regs-uart.h>
|
||||
#include <mach/ohci.h>
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pxa-i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <mach/pxa300.h>
|
||||
#include <plat/i2c.h>
|
||||
#include <mach/zylonite.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -18,12 +18,14 @@
|
|||
#include <linux/leds.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/rfkill.h>
|
||||
#include <linux/leds.h>
|
||||
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/h1940-latch.h>
|
||||
#include <mach/h1940.h>
|
||||
|
||||
#define DRV_NAME "h1940-bt"
|
||||
#define DRV_NAME "h1940-bt"
|
||||
|
||||
/* Bluetooth control */
|
||||
static void h1940bt_enable(int on)
|
||||
|
@ -37,6 +39,8 @@ static void h1940bt_enable(int on)
|
|||
gpio_set_value(S3C2410_GPH(1), 1);
|
||||
mdelay(10);
|
||||
gpio_set_value(S3C2410_GPH(1), 0);
|
||||
|
||||
h1940_led_blink_set(-EINVAL, GPIO_LED_BLINK, NULL, NULL);
|
||||
}
|
||||
else {
|
||||
gpio_set_value(S3C2410_GPH(1), 1);
|
||||
|
@ -44,6 +48,8 @@ static void h1940bt_enable(int on)
|
|||
gpio_set_value(S3C2410_GPH(1), 0);
|
||||
mdelay(10);
|
||||
gpio_set_value(H1940_LATCH_BLUETOOTH_POWER, 0);
|
||||
|
||||
h1940_led_blink_set(-EINVAL, GPIO_LED_NO_BLINK_LOW, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,7 +91,6 @@ static int __devinit h1940bt_probe(struct platform_device *pdev)
|
|||
s3c_gpio_cfgpin(S3C2410_GPH(3), S3C2410_GPH3_RXD0);
|
||||
s3c_gpio_setpull(S3C2410_GPH(3), S3C_GPIO_PULL_NONE);
|
||||
|
||||
|
||||
rfk = rfkill_alloc(DRV_NAME, &pdev->dev, RFKILL_TYPE_BLUETOOTH,
|
||||
&h1940bt_rfkill_ops, NULL);
|
||||
if (!rfk) {
|
||||
|
@ -93,8 +98,6 @@ static int __devinit h1940bt_probe(struct platform_device *pdev)
|
|||
goto err_rfk_alloc;
|
||||
}
|
||||
|
||||
rfkill_set_led_trigger_name(rfk, "h1940-bluetooth");
|
||||
|
||||
ret = rfkill_register(rfk);
|
||||
if (ret)
|
||||
goto err_rfkill;
|
||||
|
|
|
@ -17,5 +17,8 @@
|
|||
#define H1940_SUSPEND_CHECK (0x30080000)
|
||||
|
||||
extern void h1940_pm_return(void);
|
||||
extern int h1940_led_blink_set(unsigned gpio, int state,
|
||||
unsigned long *delay_on, unsigned long *delay_off);
|
||||
|
||||
|
||||
#endif /* __ASM_ARCH_H1940_H */
|
||||
|
|
|
@ -23,8 +23,15 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/pda_power.h>
|
||||
#include <linux/s3c_adc_battery.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <video/platform_lcd.h>
|
||||
|
||||
#include <linux/mmc/host.h>
|
||||
|
@ -203,20 +210,239 @@ static struct s3c2410fb_mach_info h1940_fb_info __initdata = {
|
|||
.num_displays = 1,
|
||||
.default_display = 0,
|
||||
|
||||
.lpcsel= 0x02,
|
||||
.gpccon= 0xaa940659,
|
||||
.gpccon_mask= 0xffffffff,
|
||||
.gpcup= 0x0000ffff,
|
||||
.gpcup_mask= 0xffffffff,
|
||||
.gpdcon= 0xaa84aaa0,
|
||||
.gpdcon_mask= 0xffffffff,
|
||||
.gpdup= 0x0000faff,
|
||||
.gpdup_mask= 0xffffffff,
|
||||
.lpcsel = 0x02,
|
||||
.gpccon = 0xaa940659,
|
||||
.gpccon_mask = 0xffffc0f0,
|
||||
.gpcup = 0x0000ffff,
|
||||
.gpcup_mask = 0xffffffff,
|
||||
.gpdcon = 0xaa84aaa0,
|
||||
.gpdcon_mask = 0xffffffff,
|
||||
.gpdup = 0x0000faff,
|
||||
.gpdup_mask = 0xffffffff,
|
||||
};
|
||||
|
||||
static int power_supply_init(struct device *dev)
|
||||
{
|
||||
return gpio_request(S3C2410_GPF(2), "cable plugged");
|
||||
}
|
||||
|
||||
static int h1940_is_ac_online(void)
|
||||
{
|
||||
return !gpio_get_value(S3C2410_GPF(2));
|
||||
}
|
||||
|
||||
static void power_supply_exit(struct device *dev)
|
||||
{
|
||||
gpio_free(S3C2410_GPF(2));
|
||||
}
|
||||
|
||||
static char *h1940_supplicants[] = {
|
||||
"main-battery",
|
||||
"backup-battery",
|
||||
};
|
||||
|
||||
static struct pda_power_pdata power_supply_info = {
|
||||
.init = power_supply_init,
|
||||
.is_ac_online = h1940_is_ac_online,
|
||||
.exit = power_supply_exit,
|
||||
.supplied_to = h1940_supplicants,
|
||||
.num_supplicants = ARRAY_SIZE(h1940_supplicants),
|
||||
};
|
||||
|
||||
static struct resource power_supply_resources[] = {
|
||||
[0] = {
|
||||
.name = "ac",
|
||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE |
|
||||
IORESOURCE_IRQ_HIGHEDGE,
|
||||
.start = IRQ_EINT2,
|
||||
.end = IRQ_EINT2,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device power_supply = {
|
||||
.name = "pda-power",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data =
|
||||
&power_supply_info,
|
||||
},
|
||||
.resource = power_supply_resources,
|
||||
.num_resources = ARRAY_SIZE(power_supply_resources),
|
||||
};
|
||||
|
||||
static const struct s3c_adc_bat_thresh bat_lut_noac[] = {
|
||||
{ .volt = 4070, .cur = 162, .level = 100},
|
||||
{ .volt = 4040, .cur = 165, .level = 95},
|
||||
{ .volt = 4016, .cur = 164, .level = 90},
|
||||
{ .volt = 3996, .cur = 166, .level = 85},
|
||||
{ .volt = 3971, .cur = 168, .level = 80},
|
||||
{ .volt = 3951, .cur = 168, .level = 75},
|
||||
{ .volt = 3931, .cur = 170, .level = 70},
|
||||
{ .volt = 3903, .cur = 172, .level = 65},
|
||||
{ .volt = 3886, .cur = 172, .level = 60},
|
||||
{ .volt = 3858, .cur = 176, .level = 55},
|
||||
{ .volt = 3842, .cur = 176, .level = 50},
|
||||
{ .volt = 3818, .cur = 176, .level = 45},
|
||||
{ .volt = 3789, .cur = 180, .level = 40},
|
||||
{ .volt = 3769, .cur = 180, .level = 35},
|
||||
{ .volt = 3749, .cur = 184, .level = 30},
|
||||
{ .volt = 3732, .cur = 184, .level = 25},
|
||||
{ .volt = 3716, .cur = 184, .level = 20},
|
||||
{ .volt = 3708, .cur = 184, .level = 15},
|
||||
{ .volt = 3716, .cur = 96, .level = 10},
|
||||
{ .volt = 3700, .cur = 96, .level = 5},
|
||||
{ .volt = 3684, .cur = 96, .level = 0},
|
||||
};
|
||||
|
||||
static const struct s3c_adc_bat_thresh bat_lut_acin[] = {
|
||||
{ .volt = 4130, .cur = 0, .level = 100},
|
||||
{ .volt = 3982, .cur = 0, .level = 50},
|
||||
{ .volt = 3854, .cur = 0, .level = 10},
|
||||
{ .volt = 3841, .cur = 0, .level = 0},
|
||||
};
|
||||
|
||||
int h1940_bat_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = gpio_request(H1940_LATCH_SM803_ENABLE, "h1940-charger-enable");
|
||||
if (ret)
|
||||
return ret;
|
||||
gpio_direction_output(H1940_LATCH_SM803_ENABLE, 0);
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
void h1940_bat_exit(void)
|
||||
{
|
||||
gpio_free(H1940_LATCH_SM803_ENABLE);
|
||||
}
|
||||
|
||||
void h1940_enable_charger(void)
|
||||
{
|
||||
gpio_set_value(H1940_LATCH_SM803_ENABLE, 1);
|
||||
}
|
||||
|
||||
void h1940_disable_charger(void)
|
||||
{
|
||||
gpio_set_value(H1940_LATCH_SM803_ENABLE, 0);
|
||||
}
|
||||
|
||||
static struct s3c_adc_bat_pdata h1940_bat_cfg = {
|
||||
.init = h1940_bat_init,
|
||||
.exit = h1940_bat_exit,
|
||||
.enable_charger = h1940_enable_charger,
|
||||
.disable_charger = h1940_disable_charger,
|
||||
.gpio_charge_finished = S3C2410_GPF(3),
|
||||
.gpio_inverted = 1,
|
||||
.lut_noac = bat_lut_noac,
|
||||
.lut_noac_cnt = ARRAY_SIZE(bat_lut_noac),
|
||||
.lut_acin = bat_lut_acin,
|
||||
.lut_acin_cnt = ARRAY_SIZE(bat_lut_acin),
|
||||
.volt_channel = 0,
|
||||
.current_channel = 1,
|
||||
.volt_mult = 4056,
|
||||
.current_mult = 1893,
|
||||
.internal_impedance = 200,
|
||||
.backup_volt_channel = 3,
|
||||
/* TODO Check backup volt multiplier */
|
||||
.backup_volt_mult = 4056,
|
||||
.backup_volt_min = 0,
|
||||
.backup_volt_max = 4149288
|
||||
};
|
||||
|
||||
static struct platform_device h1940_battery = {
|
||||
.name = "s3c-adc-battery",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.parent = &s3c_device_adc.dev,
|
||||
.platform_data = &h1940_bat_cfg,
|
||||
},
|
||||
};
|
||||
|
||||
DEFINE_SPINLOCK(h1940_blink_spin);
|
||||
|
||||
int h1940_led_blink_set(unsigned gpio, int state,
|
||||
unsigned long *delay_on, unsigned long *delay_off)
|
||||
{
|
||||
int blink_gpio, check_gpio1, check_gpio2;
|
||||
|
||||
switch (gpio) {
|
||||
case H1940_LATCH_LED_GREEN:
|
||||
blink_gpio = S3C2410_GPA(7);
|
||||
check_gpio1 = S3C2410_GPA(1);
|
||||
check_gpio2 = S3C2410_GPA(3);
|
||||
break;
|
||||
case H1940_LATCH_LED_RED:
|
||||
blink_gpio = S3C2410_GPA(1);
|
||||
check_gpio1 = S3C2410_GPA(7);
|
||||
check_gpio2 = S3C2410_GPA(3);
|
||||
break;
|
||||
default:
|
||||
blink_gpio = S3C2410_GPA(3);
|
||||
check_gpio1 = S3C2410_GPA(1);
|
||||
check_gpio1 = S3C2410_GPA(7);
|
||||
break;
|
||||
}
|
||||
|
||||
if (delay_on && delay_off && !*delay_on && !*delay_off)
|
||||
*delay_on = *delay_off = 500;
|
||||
|
||||
spin_lock(&h1940_blink_spin);
|
||||
|
||||
switch (state) {
|
||||
case GPIO_LED_NO_BLINK_LOW:
|
||||
case GPIO_LED_NO_BLINK_HIGH:
|
||||
if (!gpio_get_value(check_gpio1) &&
|
||||
!gpio_get_value(check_gpio2))
|
||||
gpio_set_value(H1940_LATCH_LED_FLASH, 0);
|
||||
gpio_set_value(blink_gpio, 0);
|
||||
if (gpio_is_valid(gpio))
|
||||
gpio_set_value(gpio, state);
|
||||
break;
|
||||
case GPIO_LED_BLINK:
|
||||
if (gpio_is_valid(gpio))
|
||||
gpio_set_value(gpio, 0);
|
||||
gpio_set_value(H1940_LATCH_LED_FLASH, 1);
|
||||
gpio_set_value(blink_gpio, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
spin_unlock(&h1940_blink_spin);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(h1940_led_blink_set);
|
||||
|
||||
static struct gpio_led h1940_leds_desc[] = {
|
||||
{
|
||||
.name = "Green",
|
||||
.default_trigger = "main-battery-full",
|
||||
.gpio = H1940_LATCH_LED_GREEN,
|
||||
.retain_state_suspended = 1,
|
||||
},
|
||||
{
|
||||
.name = "Red",
|
||||
.default_trigger
|
||||
= "main-battery-charging-blink-full-solid",
|
||||
.gpio = H1940_LATCH_LED_RED,
|
||||
.retain_state_suspended = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_led_platform_data h1940_leds_pdata = {
|
||||
.num_leds = ARRAY_SIZE(h1940_leds_desc),
|
||||
.leds = h1940_leds_desc,
|
||||
.gpio_blink_set = h1940_led_blink_set,
|
||||
};
|
||||
|
||||
static struct platform_device h1940_device_leds = {
|
||||
.name = "h1940-leds",
|
||||
.id = -1,
|
||||
.name = "leds-gpio",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &h1940_leds_pdata,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device h1940_device_bluetooth = {
|
||||
|
@ -302,14 +528,14 @@ static struct platform_device h1940_backlight = {
|
|||
static void h1940_lcd_power_set(struct plat_lcd_data *pd,
|
||||
unsigned int power)
|
||||
{
|
||||
int value;
|
||||
int value, retries = 100;
|
||||
|
||||
if (!power) {
|
||||
gpio_set_value(S3C2410_GPC(0), 0);
|
||||
/* wait for 3ac */
|
||||
do {
|
||||
value = gpio_get_value(S3C2410_GPC(6));
|
||||
} while (value);
|
||||
} while (value && retries--);
|
||||
|
||||
gpio_set_value(H1940_LATCH_LCD_P2, 0);
|
||||
gpio_set_value(H1940_LATCH_LCD_P3, 0);
|
||||
|
@ -327,6 +553,9 @@ static void h1940_lcd_power_set(struct plat_lcd_data *pd,
|
|||
gpio_set_value(H1940_LATCH_LCD_P0, 1);
|
||||
gpio_set_value(H1940_LATCH_LCD_P1, 1);
|
||||
|
||||
gpio_direction_input(S3C2410_GPC(1));
|
||||
gpio_direction_input(S3C2410_GPC(4));
|
||||
mdelay(10);
|
||||
s3c_gpio_cfgpin(S3C2410_GPC(1), S3C_GPIO_SFN(2));
|
||||
s3c_gpio_cfgpin(S3C2410_GPC(4), S3C_GPIO_SFN(2));
|
||||
|
||||
|
@ -362,7 +591,44 @@ static struct i2c_board_info h1940_i2c_devices[] = {
|
|||
},
|
||||
};
|
||||
|
||||
#define DECLARE_BUTTON(p, k, n, w) \
|
||||
{ \
|
||||
.gpio = p, \
|
||||
.code = k, \
|
||||
.desc = n, \
|
||||
.wakeup = w, \
|
||||
.active_low = 1, \
|
||||
}
|
||||
|
||||
static struct gpio_keys_button h1940_buttons[] = {
|
||||
DECLARE_BUTTON(S3C2410_GPF(0), KEY_POWER, "Power", 1),
|
||||
DECLARE_BUTTON(S3C2410_GPF(6), KEY_ENTER, "Select", 1),
|
||||
DECLARE_BUTTON(S3C2410_GPF(7), KEY_RECORD, "Record", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(0), KEY_F11, "Calendar", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(2), KEY_F12, "Contacts", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(3), KEY_MAIL, "Mail", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(6), KEY_LEFT, "Left_arrow", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(7), KEY_HOMEPAGE, "Home", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(8), KEY_RIGHT, "Right_arrow", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(9), KEY_UP, "Up_arrow", 0),
|
||||
DECLARE_BUTTON(S3C2410_GPG(10), KEY_DOWN, "Down_arrow", 0),
|
||||
};
|
||||
|
||||
static struct gpio_keys_platform_data h1940_buttons_data = {
|
||||
.buttons = h1940_buttons,
|
||||
.nbuttons = ARRAY_SIZE(h1940_buttons),
|
||||
};
|
||||
|
||||
static struct platform_device h1940_dev_buttons = {
|
||||
.name = "gpio-keys",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &h1940_buttons_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device *h1940_devices[] __initdata = {
|
||||
&h1940_dev_buttons,
|
||||
&s3c_device_ohci,
|
||||
&s3c_device_lcd,
|
||||
&s3c_device_wdt,
|
||||
|
@ -379,6 +645,8 @@ static struct platform_device *h1940_devices[] __initdata = {
|
|||
&h1940_lcd_powerdev,
|
||||
&s3c_device_adc,
|
||||
&s3c_device_ts,
|
||||
&power_supply,
|
||||
&h1940_battery,
|
||||
};
|
||||
|
||||
static void __init h1940_map_io(void)
|
||||
|
@ -461,6 +729,15 @@ static void __init h1940_init(void)
|
|||
|
||||
platform_add_devices(h1940_devices, ARRAY_SIZE(h1940_devices));
|
||||
|
||||
gpio_request(S3C2410_GPA(1), "Red LED blink");
|
||||
gpio_request(S3C2410_GPA(3), "Blue LED blink");
|
||||
gpio_request(S3C2410_GPA(7), "Green LED blink");
|
||||
gpio_request(H1940_LATCH_LED_FLASH, "LED blink");
|
||||
gpio_direction_output(S3C2410_GPA(1), 0);
|
||||
gpio_direction_output(S3C2410_GPA(3), 0);
|
||||
gpio_direction_output(S3C2410_GPA(7), 0);
|
||||
gpio_direction_output(H1940_LATCH_LED_FLASH, 0);
|
||||
|
||||
i2c_register_board_info(0, h1940_i2c_devices,
|
||||
ARRAY_SIZE(h1940_i2c_devices));
|
||||
}
|
||||
|
|
|
@ -488,6 +488,11 @@ static struct i2c_board_info mini2440_i2c_devs[] __initdata = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct platform_device uda1340_codec = {
|
||||
.name = "uda134x-codec",
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
static struct platform_device *mini2440_devices[] __initdata = {
|
||||
&s3c_device_ohci,
|
||||
&s3c_device_wdt,
|
||||
|
@ -503,7 +508,9 @@ static struct platform_device *mini2440_devices[] __initdata = {
|
|||
&s3c_device_nand,
|
||||
&s3c_device_sdi,
|
||||
&s3c_device_iis,
|
||||
&uda1340_codec,
|
||||
&mini2440_audio,
|
||||
&samsung_asoc_dma,
|
||||
};
|
||||
|
||||
static void __init mini2440_map_io(void)
|
||||
|
|
|
@ -263,27 +263,78 @@ void rx1950_disable_charger(void)
|
|||
gpio_direction_output(S3C2410_GPJ(3), 0);
|
||||
}
|
||||
|
||||
DEFINE_SPINLOCK(rx1950_blink_spin);
|
||||
|
||||
static int rx1950_led_blink_set(unsigned gpio, int state,
|
||||
unsigned long *delay_on, unsigned long *delay_off)
|
||||
{
|
||||
int blink_gpio, check_gpio;
|
||||
|
||||
switch (gpio) {
|
||||
case S3C2410_GPA(6):
|
||||
blink_gpio = S3C2410_GPA(4);
|
||||
check_gpio = S3C2410_GPA(3);
|
||||
break;
|
||||
case S3C2410_GPA(7):
|
||||
blink_gpio = S3C2410_GPA(3);
|
||||
check_gpio = S3C2410_GPA(4);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
if (delay_on && delay_off && !*delay_on && !*delay_off)
|
||||
*delay_on = *delay_off = 500;
|
||||
|
||||
spin_lock(&rx1950_blink_spin);
|
||||
|
||||
switch (state) {
|
||||
case GPIO_LED_NO_BLINK_LOW:
|
||||
case GPIO_LED_NO_BLINK_HIGH:
|
||||
if (!gpio_get_value(check_gpio))
|
||||
gpio_set_value(S3C2410_GPJ(6), 0);
|
||||
gpio_set_value(blink_gpio, 0);
|
||||
gpio_set_value(gpio, state);
|
||||
break;
|
||||
case GPIO_LED_BLINK:
|
||||
gpio_set_value(gpio, 0);
|
||||
gpio_set_value(S3C2410_GPJ(6), 1);
|
||||
gpio_set_value(blink_gpio, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
spin_unlock(&rx1950_blink_spin);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct gpio_led rx1950_leds_desc[] = {
|
||||
{
|
||||
.name = "Green",
|
||||
.default_trigger = "main-battery-charging-or-full",
|
||||
.gpio = S3C2410_GPA(6),
|
||||
},
|
||||
{
|
||||
.name = "Red",
|
||||
.name = "Green",
|
||||
.default_trigger = "main-battery-full",
|
||||
.gpio = S3C2410_GPA(7),
|
||||
.gpio = S3C2410_GPA(6),
|
||||
.retain_state_suspended = 1,
|
||||
},
|
||||
{
|
||||
.name = "Blue",
|
||||
.name = "Red",
|
||||
.default_trigger
|
||||
= "main-battery-charging-blink-full-solid",
|
||||
.gpio = S3C2410_GPA(7),
|
||||
.retain_state_suspended = 1,
|
||||
},
|
||||
{
|
||||
.name = "Blue",
|
||||
.default_trigger = "rx1950-acx-mem",
|
||||
.gpio = S3C2410_GPA(11),
|
||||
.gpio = S3C2410_GPA(11),
|
||||
.retain_state_suspended = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_led_platform_data rx1950_leds_pdata = {
|
||||
.num_leds = ARRAY_SIZE(rx1950_leds_desc),
|
||||
.leds = rx1950_leds_desc,
|
||||
.gpio_blink_set = rx1950_led_blink_set,
|
||||
};
|
||||
|
||||
static struct platform_device rx1950_leds = {
|
||||
|
@ -752,6 +803,13 @@ static void __init rx1950_init_machine(void)
|
|||
|
||||
WARN_ON(gpio_request(S3C2410_GPB(1), "LCD power"));
|
||||
|
||||
WARN_ON(gpio_request(S3C2410_GPA(3), "Red blink"));
|
||||
WARN_ON(gpio_request(S3C2410_GPA(4), "Green blink"));
|
||||
WARN_ON(gpio_request(S3C2410_GPJ(6), "LED blink"));
|
||||
gpio_direction_output(S3C2410_GPA(3), 0);
|
||||
gpio_direction_output(S3C2410_GPA(4), 0);
|
||||
gpio_direction_output(S3C2410_GPJ(6), 0);
|
||||
|
||||
platform_add_devices(rx1950_devices, ARRAY_SIZE(rx1950_devices));
|
||||
|
||||
i2c_register_board_info(0, rx1950_i2c_devices,
|
||||
|
|
|
@ -104,6 +104,8 @@ struct stedma40_half_channel_info {
|
|||
*
|
||||
* @dir: MEM 2 MEM, PERIPH 2 MEM , MEM 2 PERIPH, PERIPH 2 PERIPH
|
||||
* @high_priority: true if high-priority
|
||||
* @realtime: true if realtime mode is to be enabled. Only available on DMA40
|
||||
* version 3+, i.e DB8500v2+
|
||||
* @mode: channel mode: physical, logical, or operation
|
||||
* @mode_opt: options for the chosen channel mode
|
||||
* @src_dev_type: Src device type
|
||||
|
@ -119,6 +121,7 @@ struct stedma40_half_channel_info {
|
|||
struct stedma40_chan_cfg {
|
||||
enum stedma40_xfer_dir dir;
|
||||
bool high_priority;
|
||||
bool realtime;
|
||||
enum stedma40_mode mode;
|
||||
enum stedma40_mode_opt mode_opt;
|
||||
int src_dev_type;
|
||||
|
@ -168,25 +171,6 @@ struct stedma40_platform_data {
|
|||
|
||||
bool stedma40_filter(struct dma_chan *chan, void *data);
|
||||
|
||||
/**
|
||||
* stedma40_memcpy_sg() - extension of the dma framework, memcpy to/from
|
||||
* scattergatter lists.
|
||||
*
|
||||
* @chan: dmaengine handle
|
||||
* @sgl_dst: Destination scatter list
|
||||
* @sgl_src: Source scatter list
|
||||
* @sgl_len: The length of each scatterlist. Both lists must be of equal length
|
||||
* and each element must match the corresponding element in the other scatter
|
||||
* list.
|
||||
* @flags: is actually enum dma_ctrl_flags. See dmaengine.h
|
||||
*/
|
||||
|
||||
struct dma_async_tx_descriptor *stedma40_memcpy_sg(struct dma_chan *chan,
|
||||
struct scatterlist *sgl_dst,
|
||||
struct scatterlist *sgl_src,
|
||||
unsigned int sgl_len,
|
||||
unsigned long flags);
|
||||
|
||||
/**
|
||||
* stedma40_slave_mem() - Transfers a raw data buffer to or from a slave
|
||||
* (=device)
|
||||
|
|
|
@ -23,14 +23,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#define BITS_PER_LONG 32
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
||||
|
|
|
@ -2048,6 +2048,11 @@ at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
|
|||
rx_dws->reg_width = DW_DMA_SLAVE_WIDTH_16BIT;
|
||||
rx_dws->cfg_hi = DWC_CFGH_SRC_PER(3);
|
||||
rx_dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL);
|
||||
rx_dws->src_master = 0;
|
||||
rx_dws->dst_master = 1;
|
||||
rx_dws->src_msize = DW_DMA_MSIZE_1;
|
||||
rx_dws->dst_msize = DW_DMA_MSIZE_1;
|
||||
rx_dws->fc = DW_DMA_FC_D_P2M;
|
||||
}
|
||||
|
||||
/* Check if DMA slave interface for playback should be configured. */
|
||||
|
@ -2056,6 +2061,11 @@ at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
|
|||
tx_dws->reg_width = DW_DMA_SLAVE_WIDTH_16BIT;
|
||||
tx_dws->cfg_hi = DWC_CFGH_DST_PER(4);
|
||||
tx_dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL);
|
||||
tx_dws->src_master = 0;
|
||||
tx_dws->dst_master = 1;
|
||||
tx_dws->src_msize = DW_DMA_MSIZE_1;
|
||||
tx_dws->dst_msize = DW_DMA_MSIZE_1;
|
||||
tx_dws->fc = DW_DMA_FC_D_M2P;
|
||||
}
|
||||
|
||||
if (platform_device_add_data(pdev, data,
|
||||
|
@ -2128,6 +2138,11 @@ at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data)
|
|||
dws->reg_width = DW_DMA_SLAVE_WIDTH_32BIT;
|
||||
dws->cfg_hi = DWC_CFGH_DST_PER(2);
|
||||
dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL);
|
||||
dws->src_master = 0;
|
||||
dws->dst_master = 1;
|
||||
dws->src_msize = DW_DMA_MSIZE_1;
|
||||
dws->dst_msize = DW_DMA_MSIZE_1;
|
||||
dws->fc = DW_DMA_FC_D_M2P;
|
||||
|
||||
if (platform_device_add_data(pdev, data,
|
||||
sizeof(struct atmel_abdac_pdata)))
|
||||
|
|
|
@ -68,7 +68,7 @@ struct thread_info {
|
|||
#define init_thread_info (init_thread_union.thread_info)
|
||||
|
||||
/* thread information allocation */
|
||||
#define alloc_thread_info(tsk) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1))
|
||||
#define alloc_thread_info(tsk, node) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1))
|
||||
#define free_thread_info(ti) free_pages((unsigned long) (ti), 1)
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
|
|
@ -18,9 +18,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses are 32-bits wide, just like our other addresses. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
typedef u32 dma64_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -137,7 +137,7 @@ unsigned long get_wchan(struct task_struct *p);
|
|||
#define KSTK_ESP(tsk) ((tsk)->thread.frame0->sp)
|
||||
|
||||
/* Allocation and freeing of basic task resources. */
|
||||
extern struct task_struct *alloc_task_struct(void);
|
||||
extern struct task_struct *alloc_task_struct_node(int node);
|
||||
extern void free_task_struct(struct task_struct *p);
|
||||
|
||||
#define cpu_relax() barrier()
|
||||
|
|
|
@ -84,16 +84,11 @@ register struct thread_info *__current_thread_info asm("gr15");
|
|||
|
||||
/* thread information allocation */
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
#define alloc_thread_info(tsk) \
|
||||
({ \
|
||||
struct thread_info *ret; \
|
||||
\
|
||||
ret = kzalloc(THREAD_SIZE, GFP_KERNEL); \
|
||||
\
|
||||
ret; \
|
||||
})
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kzalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#else
|
||||
#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk) \
|
||||
kmalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#endif
|
||||
|
||||
#define free_thread_info(info) kfree(info)
|
||||
|
|
|
@ -27,14 +27,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#define BITS_PER_LONG 32
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _ASM_TYPES_H */
|
||||
|
|
|
@ -44,9 +44,10 @@ asmlinkage void ret_from_fork(void);
|
|||
void (*pm_power_off)(void);
|
||||
EXPORT_SYMBOL(pm_power_off);
|
||||
|
||||
struct task_struct *alloc_task_struct(void)
|
||||
struct task_struct *alloc_task_struct_node(int node)
|
||||
{
|
||||
struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL);
|
||||
struct task_struct *p = kmalloc_node(THREAD_SIZE, GFP_KERNEL, node);
|
||||
|
||||
if (p)
|
||||
atomic_set((atomic_t *)(p+1), 1);
|
||||
return p;
|
||||
|
|
|
@ -22,10 +22,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#define BITS_PER_LONG 32
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -59,11 +59,12 @@ struct thread_info {
|
|||
#ifndef ASM_OFFSETS_C
|
||||
/* how to get the thread information struct from C */
|
||||
#define current_thread_info() ((struct thread_info *) ((char *) current + IA64_TASK_SIZE))
|
||||
#define alloc_thread_info(tsk) ((struct thread_info *) ((char *) (tsk) + IA64_TASK_SIZE))
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
((struct thread_info *) ((char *) (tsk) + IA64_TASK_SIZE))
|
||||
#define task_thread_info(tsk) ((struct thread_info *) ((char *) (tsk) + IA64_TASK_SIZE))
|
||||
#else
|
||||
#define current_thread_info() ((struct thread_info *) 0)
|
||||
#define alloc_thread_info(tsk) ((struct thread_info *) 0)
|
||||
#define alloc_thread_info_node(tsk, node) ((struct thread_info *) 0)
|
||||
#define task_thread_info(tsk) ((struct thread_info *) 0)
|
||||
#endif
|
||||
#define free_thread_info(ti) /* nothing */
|
||||
|
@ -84,7 +85,14 @@ struct thread_info {
|
|||
#define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET)
|
||||
|
||||
#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
|
||||
#define alloc_task_struct() ((struct task_struct *)__get_free_pages(GFP_KERNEL | __GFP_COMP, KERNEL_STACK_SIZE_ORDER))
|
||||
#define alloc_task_struct_node(node) \
|
||||
({ \
|
||||
struct page *page = alloc_pages_node(node, GFP_KERNEL | __GFP_COMP, \
|
||||
KERNEL_STACK_SIZE_ORDER); \
|
||||
struct task_struct *ret = page ? page_address(page) : NULL; \
|
||||
\
|
||||
ret;
|
||||
})
|
||||
#define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER)
|
||||
|
||||
#endif /* !__ASSEMBLY */
|
||||
|
|
|
@ -40,9 +40,6 @@ struct fnptr {
|
|||
unsigned long gp;
|
||||
};
|
||||
|
||||
/* DMA addresses are 64-bits wide, in general. */
|
||||
typedef u64 dma_addr_t;
|
||||
|
||||
# endif /* __KERNEL__ */
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
|
|
@ -96,16 +96,11 @@ static inline struct thread_info *current_thread_info(void)
|
|||
|
||||
/* thread information allocation */
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
#define alloc_thread_info(tsk) \
|
||||
({ \
|
||||
struct thread_info *ret; \
|
||||
\
|
||||
ret = kzalloc(THREAD_SIZE, GFP_KERNEL); \
|
||||
\
|
||||
ret; \
|
||||
})
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kzalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#else
|
||||
#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kmalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#endif
|
||||
|
||||
#define free_thread_info(info) kfree(info)
|
||||
|
|
|
@ -18,9 +18,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* DMA addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
typedef u64 dma64_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -25,9 +25,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* DMA addresses are always 32-bits wide */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
typedef u32 dma64_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -88,9 +88,11 @@ register struct thread_info *__current_thread_info __asm__("$28");
|
|||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
#define alloc_thread_info(tsk) kzalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kzalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#else
|
||||
#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kmalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#endif
|
||||
|
||||
#define free_thread_info(info) kfree(info)
|
||||
|
|
|
@ -33,12 +33,6 @@ typedef unsigned short umode_t;
|
|||
#ifdef __KERNEL__
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \
|
||||
|| defined(CONFIG_64BIT)
|
||||
typedef u64 dma_addr_t;
|
||||
#else
|
||||
typedef u32 dma_addr_t;
|
||||
#endif
|
||||
typedef u64 dma64_addr_t;
|
||||
|
||||
/*
|
||||
|
|
|
@ -124,9 +124,11 @@ static inline unsigned long current_stack_pointer(void)
|
|||
|
||||
/* thread information allocation */
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
#define alloc_thread_info(tsk) kzalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kzalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#else
|
||||
#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
kmalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#endif
|
||||
|
||||
#define free_thread_info(ti) kfree((ti))
|
||||
|
|
|
@ -26,13 +26,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#define BITS_PER_LONG 32
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _ASM_TYPES_H */
|
||||
|
|
|
@ -16,9 +16,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
typedef u64 dma64_addr_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -72,7 +72,7 @@ struct thread_info {
|
|||
|
||||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
extern struct thread_info *alloc_thread_info(struct task_struct *tsk);
|
||||
extern struct thread_info *alloc_thread_info_node(struct task_struct *tsk, int node);
|
||||
extern void free_thread_info(struct thread_info *ti);
|
||||
|
||||
#endif /* THREAD_SHIFT < PAGE_SHIFT */
|
||||
|
|
|
@ -44,11 +44,6 @@ typedef struct {
|
|||
|
||||
typedef __vector128 vector128;
|
||||
|
||||
#if defined(__powerpc64__) || defined(CONFIG_PHYS_64BIT)
|
||||
typedef u64 dma_addr_t;
|
||||
#else
|
||||
typedef u32 dma_addr_t;
|
||||
#endif
|
||||
typedef u64 dma64_addr_t;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -1218,11 +1218,11 @@ void __ppc64_runlatch_off(void)
|
|||
|
||||
static struct kmem_cache *thread_info_cache;
|
||||
|
||||
struct thread_info *alloc_thread_info(struct task_struct *tsk)
|
||||
struct thread_info *alloc_thread_info_node(struct task_struct *tsk, int node)
|
||||
{
|
||||
struct thread_info *ti;
|
||||
|
||||
ti = kmem_cache_alloc(thread_info_cache, GFP_KERNEL);
|
||||
ti = kmem_cache_alloc_node(thread_info_cache, GFP_KERNEL, node);
|
||||
if (unlikely(ti == NULL))
|
||||
return NULL;
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
|
|
|
@ -31,12 +31,6 @@ typedef __signed__ long saddr_t;
|
|||
#ifndef __ASSEMBLY__
|
||||
|
||||
typedef u64 dma64_addr_t;
|
||||
#ifdef __s390x__
|
||||
/* DMA addresses come in 32-bit and 64-bit flavours. */
|
||||
typedef u64 dma_addr_t;
|
||||
#else
|
||||
typedef u32 dma_addr_t;
|
||||
#endif
|
||||
|
||||
#ifndef __s390x__
|
||||
typedef union {
|
||||
|
|
|
@ -71,7 +71,7 @@ struct thread_info {
|
|||
register struct thread_info *__current_thread_info __asm__("r28");
|
||||
#define current_thread_info() __current_thread_info
|
||||
|
||||
#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
|
||||
#define alloc_thread_info_node(tsk, node) kmalloc_node(THREAD_SIZE, GFP_KERNEL, node)
|
||||
#define free_thread_info(info) kfree(info)
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
|
|
@ -95,7 +95,7 @@ static inline struct thread_info *current_thread_info(void)
|
|||
|
||||
#endif
|
||||
|
||||
extern struct thread_info *alloc_thread_info(struct task_struct *tsk);
|
||||
extern struct thread_info *alloc_thread_info_node(struct task_struct *tsk, int node);
|
||||
extern void free_thread_info(struct thread_info *ti);
|
||||
extern void arch_task_cache_init(void);
|
||||
#define arch_task_cache_init arch_task_cache_init
|
||||
|
|
|
@ -32,16 +32,16 @@ void free_thread_xstate(struct task_struct *tsk)
|
|||
#if THREAD_SHIFT < PAGE_SHIFT
|
||||
static struct kmem_cache *thread_info_cache;
|
||||
|
||||
struct thread_info *alloc_thread_info(struct task_struct *tsk)
|
||||
struct thread_info *alloc_thread_info(struct task_struct *tsk, int node)
|
||||
{
|
||||
struct thread_info *ti;
|
||||
|
||||
ti = kmem_cache_alloc(thread_info_cache, GFP_KERNEL);
|
||||
if (unlikely(ti == NULL))
|
||||
return NULL;
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
memset(ti, 0, THREAD_SIZE);
|
||||
gfp_t mask = GFP_KERNEL | __GFP_ZERO;
|
||||
#else
|
||||
gfp_t mask = GFP_KERNEL;
|
||||
#endif
|
||||
|
||||
ti = kmem_cache_alloc_node(thread_info_cache, mask, node);
|
||||
return ti;
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,9 @@ struct thread_info *alloc_thread_info(struct task_struct *tsk)
|
|||
#else
|
||||
gfp_t mask = GFP_KERNEL;
|
||||
#endif
|
||||
return (struct thread_info *)__get_free_pages(mask, THREAD_SIZE_ORDER);
|
||||
struct page *page = alloc_pages_node(node, mask, THREAD_SIZE_ORDER);
|
||||
|
||||
return page ? page_address(page) : NULL;
|
||||
}
|
||||
|
||||
void free_thread_info(struct thread_info *ti)
|
||||
|
|
|
@ -82,8 +82,8 @@ register struct thread_info *current_thread_info_reg asm("g6");
|
|||
|
||||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
BTFIXUPDEF_CALL(struct thread_info *, alloc_thread_info, void)
|
||||
#define alloc_thread_info(tsk) BTFIXUP_CALL(alloc_thread_info)()
|
||||
BTFIXUPDEF_CALL(struct thread_info *, alloc_thread_info_node, int)
|
||||
#define alloc_thread_info_node(tsk, node) BTFIXUP_CALL(alloc_thread_info_node)(node)
|
||||
|
||||
BTFIXUPDEF_CALL(void, free_thread_info, struct thread_info *)
|
||||
#define free_thread_info(ti) BTFIXUP_CALL(free_thread_info)(ti)
|
||||
|
@ -92,7 +92,7 @@ BTFIXUPDEF_CALL(void, free_thread_info, struct thread_info *)
|
|||
|
||||
/*
|
||||
* Size of kernel stack for each process.
|
||||
* Observe the order of get_free_pages() in alloc_thread_info().
|
||||
* Observe the order of get_free_pages() in alloc_thread_info_node().
|
||||
* The sun4 has 8K stack too, because it's short on memory, and 16K is a waste.
|
||||
*/
|
||||
#define THREAD_SIZE 8192
|
||||
|
|
|
@ -146,21 +146,21 @@ register struct thread_info *current_thread_info_reg asm("g6");
|
|||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
#define alloc_thread_info(tsk) \
|
||||
({ \
|
||||
struct thread_info *ret; \
|
||||
\
|
||||
ret = (struct thread_info *) \
|
||||
__get_free_pages(GFP_KERNEL, __THREAD_INFO_ORDER); \
|
||||
if (ret) \
|
||||
memset(ret, 0, PAGE_SIZE<<__THREAD_INFO_ORDER); \
|
||||
ret; \
|
||||
})
|
||||
#define THREAD_FLAGS (GFP_KERNEL | __GFP_ZERO)
|
||||
#else
|
||||
#define alloc_thread_info(tsk) \
|
||||
((struct thread_info *)__get_free_pages(GFP_KERNEL, __THREAD_INFO_ORDER))
|
||||
#define THREAD_FLAGS (GFP_KERNEL)
|
||||
#endif
|
||||
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
({ \
|
||||
struct page *page = alloc_pages_node(node, THREAD_FLAGS, \
|
||||
__THREAD_INFO_ORDER); \
|
||||
struct thread_info *ret; \
|
||||
\
|
||||
ret = page ? page_address(page) : NULL; \
|
||||
ret; \
|
||||
})
|
||||
|
||||
#define free_thread_info(ti) \
|
||||
free_pages((unsigned long)(ti),__THREAD_INFO_ORDER)
|
||||
|
||||
|
|
|
@ -22,10 +22,6 @@ typedef unsigned short umode_t;
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/* Dma addresses come in generic and 64-bit flavours. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
#if defined(__arch64__)
|
||||
|
||||
/*** SPARC 64 bit ***/
|
||||
|
|
|
@ -650,7 +650,7 @@ static void srmmu_unmapiorange(unsigned long virt_addr, unsigned int len)
|
|||
* mappings on the kernel stack without any special code as we did
|
||||
* need on the sun4c.
|
||||
*/
|
||||
static struct thread_info *srmmu_alloc_thread_info(void)
|
||||
static struct thread_info *srmmu_alloc_thread_info_node(int node)
|
||||
{
|
||||
struct thread_info *ret;
|
||||
|
||||
|
@ -2271,7 +2271,7 @@ void __init ld_mmu_srmmu(void)
|
|||
|
||||
BTFIXUPSET_CALL(mmu_info, srmmu_mmu_info, BTFIXUPCALL_NORM);
|
||||
|
||||
BTFIXUPSET_CALL(alloc_thread_info, srmmu_alloc_thread_info, BTFIXUPCALL_NORM);
|
||||
BTFIXUPSET_CALL(alloc_thread_info_node, srmmu_alloc_thread_info_node, BTFIXUPCALL_NORM);
|
||||
BTFIXUPSET_CALL(free_thread_info, srmmu_free_thread_info, BTFIXUPCALL_NORM);
|
||||
|
||||
BTFIXUPSET_CALL(pte_to_pgoff, srmmu_pte_to_pgoff, BTFIXUPCALL_NORM);
|
||||
|
|
|
@ -922,7 +922,7 @@ static inline void garbage_collect(int entry)
|
|||
free_locked_segment(BUCKET_ADDR(entry));
|
||||
}
|
||||
|
||||
static struct thread_info *sun4c_alloc_thread_info(void)
|
||||
static struct thread_info *sun4c_alloc_thread_info_node(int node)
|
||||
{
|
||||
unsigned long addr, pages;
|
||||
int entry;
|
||||
|
@ -2155,7 +2155,7 @@ void __init ld_mmu_sun4c(void)
|
|||
BTFIXUPSET_CALL(__swp_offset, sun4c_swp_offset, BTFIXUPCALL_NORM);
|
||||
BTFIXUPSET_CALL(__swp_entry, sun4c_swp_entry, BTFIXUPCALL_NORM);
|
||||
|
||||
BTFIXUPSET_CALL(alloc_thread_info, sun4c_alloc_thread_info, BTFIXUPCALL_NORM);
|
||||
BTFIXUPSET_CALL(alloc_thread_info_node, sun4c_alloc_thread_info_node, BTFIXUPCALL_NORM);
|
||||
BTFIXUPSET_CALL(free_thread_info, sun4c_free_thread_info, BTFIXUPCALL_NORM);
|
||||
|
||||
BTFIXUPSET_CALL(mmu_info, sun4c_mmu_info, BTFIXUPCALL_NORM);
|
||||
|
|
|
@ -84,7 +84,7 @@ register unsigned long stack_pointer __asm__("sp");
|
|||
((struct thread_info *)(stack_pointer & -THREAD_SIZE))
|
||||
|
||||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
extern struct thread_info *alloc_thread_info(struct task_struct *task);
|
||||
extern struct thread_info *alloc_thread_info_node(struct task_struct *task, int node);
|
||||
extern void free_thread_info(struct thread_info *info);
|
||||
|
||||
/* Sit on a nap instruction until interrupted. */
|
||||
|
|
|
@ -109,7 +109,7 @@ void cpu_idle(void)
|
|||
}
|
||||
}
|
||||
|
||||
struct thread_info *alloc_thread_info(struct task_struct *task)
|
||||
struct thread_info *alloc_thread_info_node(struct task_struct *task, int node)
|
||||
{
|
||||
struct page *page;
|
||||
gfp_t flags = GFP_KERNEL;
|
||||
|
@ -118,7 +118,7 @@ struct thread_info *alloc_thread_info(struct task_struct *task)
|
|||
flags |= __GFP_ZERO;
|
||||
#endif
|
||||
|
||||
page = alloc_pages(flags, THREAD_SIZE_ORDER);
|
||||
page = alloc_pages_node(node, flags, THREAD_SIZE_ORDER);
|
||||
if (!page)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -255,8 +255,8 @@ static const struct {
|
|||
{ KDSIGACCEPT, KERN_INFO, "KDSIGACCEPT" },
|
||||
};
|
||||
|
||||
int line_ioctl(struct tty_struct *tty, struct file * file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
int line_ioctl(struct tty_struct *tty, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
int ret;
|
||||
int i;
|
||||
|
|
|
@ -66,7 +66,7 @@ struct thread_struct {
|
|||
.request = { 0 } \
|
||||
}
|
||||
|
||||
extern struct task_struct *alloc_task_struct(void);
|
||||
extern struct task_struct *alloc_task_struct_node(int node);
|
||||
|
||||
static inline void release_thread(struct task_struct *task)
|
||||
{
|
||||
|
|
|
@ -77,8 +77,8 @@ extern int line_chars_in_buffer(struct tty_struct *tty);
|
|||
extern void line_flush_buffer(struct tty_struct *tty);
|
||||
extern void line_flush_chars(struct tty_struct *tty);
|
||||
extern int line_write_room(struct tty_struct *tty);
|
||||
extern int line_ioctl(struct tty_struct *tty, struct file * file,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
extern int line_ioctl(struct tty_struct *tty, unsigned int cmd,
|
||||
unsigned long arg);
|
||||
extern void line_throttle(struct tty_struct *tty);
|
||||
extern void line_unthrottle(struct tty_struct *tty);
|
||||
|
||||
|
|
|
@ -75,6 +75,8 @@ typedef struct user_i387_struct elf_fpregset_t;
|
|||
pr_reg[16] = PT_REGS_SS(regs); \
|
||||
} while (0);
|
||||
|
||||
#define task_pt_regs(t) (&(t)->thread.regs)
|
||||
|
||||
struct task_struct;
|
||||
|
||||
extern int elf_core_copy_fpregs(struct task_struct *t, elf_fpregset_t *fpu);
|
||||
|
|
|
@ -95,6 +95,8 @@ typedef struct user_i387_struct elf_fpregset_t;
|
|||
(pr_reg)[25] = 0; \
|
||||
(pr_reg)[26] = 0;
|
||||
|
||||
#define task_pt_regs(t) (&(t)->thread.regs)
|
||||
|
||||
struct task_struct;
|
||||
|
||||
extern int elf_core_copy_fpregs(struct task_struct *t, elf_fpregset_t *fpu);
|
||||
|
|
|
@ -123,7 +123,7 @@ config NEED_SG_DMA_LENGTH
|
|||
def_bool y
|
||||
|
||||
config GENERIC_ISA_DMA
|
||||
def_bool y
|
||||
def_bool ISA_DMA_API
|
||||
|
||||
config GENERIC_IOMAP
|
||||
def_bool y
|
||||
|
@ -143,7 +143,7 @@ config GENERIC_GPIO
|
|||
bool
|
||||
|
||||
config ARCH_MAY_HAVE_PC_FDC
|
||||
def_bool y
|
||||
def_bool ISA_DMA_API
|
||||
|
||||
config RWSEM_GENERIC_SPINLOCK
|
||||
def_bool !X86_XADD
|
||||
|
@ -2002,9 +2002,13 @@ source "drivers/pci/pcie/Kconfig"
|
|||
|
||||
source "drivers/pci/Kconfig"
|
||||
|
||||
# x86_64 have no ISA slots, but do have ISA-style DMA.
|
||||
# x86_64 have no ISA slots, but can have ISA-style DMA.
|
||||
config ISA_DMA_API
|
||||
def_bool y
|
||||
bool "ISA-style DMA support" if (X86_64 && EXPERT)
|
||||
default y
|
||||
help
|
||||
Enables ISA-style DMA support for devices requiring such controllers.
|
||||
If unsure, say Y.
|
||||
|
||||
if X86_32
|
||||
|
||||
|
|
|
@ -151,6 +151,7 @@
|
|||
#define DMA_AUTOINIT 0x10
|
||||
|
||||
|
||||
#ifdef CONFIG_ISA_DMA_API
|
||||
extern spinlock_t dma_spin_lock;
|
||||
|
||||
static inline unsigned long claim_dma_lock(void)
|
||||
|
@ -164,6 +165,7 @@ static inline void release_dma_lock(unsigned long flags)
|
|||
{
|
||||
spin_unlock_irqrestore(&dma_spin_lock, flags);
|
||||
}
|
||||
#endif /* CONFIG_ISA_DMA_API */
|
||||
|
||||
/* enable/disable a specific DMA channel */
|
||||
static inline void enable_dma(unsigned int dmanr)
|
||||
|
@ -303,9 +305,11 @@ static inline int get_dma_residue(unsigned int dmanr)
|
|||
}
|
||||
|
||||
|
||||
/* These are in kernel/dma.c: */
|
||||
/* These are in kernel/dma.c because x86 uses CONFIG_GENERIC_ISA_DMA */
|
||||
#ifdef CONFIG_ISA_DMA_API
|
||||
extern int request_dma(unsigned int dmanr, const char *device_id);
|
||||
extern void free_dma(unsigned int dmanr);
|
||||
#endif
|
||||
|
||||
/* From PCI */
|
||||
|
||||
|
|
|
@ -161,8 +161,14 @@ struct thread_info {
|
|||
|
||||
#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
|
||||
|
||||
#define alloc_thread_info(tsk) \
|
||||
((struct thread_info *)__get_free_pages(THREAD_FLAGS, THREAD_ORDER))
|
||||
#define alloc_thread_info_node(tsk, node) \
|
||||
({ \
|
||||
struct page *page = alloc_pages_node(node, THREAD_FLAGS, \
|
||||
THREAD_ORDER); \
|
||||
struct thread_info *ret = page ? page_address(page) : NULL; \
|
||||
\
|
||||
ret; \
|
||||
})
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue