Merge with rsync://fileserver/linux
This commit is contained in:
commit
1b3035b7fc
573 changed files with 39775 additions and 32155 deletions
35
Documentation/acpi-hotkey.txt
Normal file
35
Documentation/acpi-hotkey.txt
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
driver/acpi/hotkey.c implement:
|
||||||
|
1. /proc/acpi/hotkey/event_config
|
||||||
|
(event based hotkey or event config interface):
|
||||||
|
a. add a event based hotkey(event) :
|
||||||
|
echo "0:bus::action:method:num:num" > event_config
|
||||||
|
|
||||||
|
b. delete a event based hotkey(event):
|
||||||
|
echo "1:::::num:num" > event_config
|
||||||
|
|
||||||
|
c. modify a event based hotkey(event):
|
||||||
|
echo "2:bus::action:method:num:num" > event_config
|
||||||
|
|
||||||
|
2. /proc/acpi/hotkey/poll_config
|
||||||
|
(polling based hotkey or event config interface):
|
||||||
|
a.add a polling based hotkey(event) :
|
||||||
|
echo "0:bus:method:action:method:num" > poll_config
|
||||||
|
this adding command will create a proc file
|
||||||
|
/proc/acpi/hotkey/method, which is used to get
|
||||||
|
result of polling.
|
||||||
|
|
||||||
|
b.delete a polling based hotkey(event):
|
||||||
|
echo "1:::::num" > event_config
|
||||||
|
|
||||||
|
c.modify a polling based hotkey(event):
|
||||||
|
echo "2:bus:method:action:method:num" > poll_config
|
||||||
|
|
||||||
|
3./proc/acpi/hotkey/action
|
||||||
|
(interface to call aml method associated with a
|
||||||
|
specific hotkey(event))
|
||||||
|
echo "event_num:event_type:event_argument" >
|
||||||
|
/proc/acpi/hotkey/action.
|
||||||
|
The result of the execution of this aml method is
|
||||||
|
attached to /proc/acpi/hotkey/poll_method, which is dnyamically
|
||||||
|
created. Please use command "cat /proc/acpi/hotkey/polling_method"
|
||||||
|
to retrieve it.
|
138
Documentation/filesystems/inotify.txt
Normal file
138
Documentation/filesystems/inotify.txt
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
inotify
|
||||||
|
a powerful yet simple file change notification system
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Document started 15 Mar 2005 by Robert Love <rml@novell.com>
|
||||||
|
|
||||||
|
(i) User Interface
|
||||||
|
|
||||||
|
Inotify is controlled by a set of three sys calls
|
||||||
|
|
||||||
|
First step in using inotify is to initialise an inotify instance
|
||||||
|
|
||||||
|
int fd = inotify_init ();
|
||||||
|
|
||||||
|
Change events are managed by "watches". A watch is an (object,mask) pair where
|
||||||
|
the object is a file or directory and the mask is a bit mask of one or more
|
||||||
|
inotify events that the application wishes to receive. See <linux/inotify.h>
|
||||||
|
for valid events. A watch is referenced by a watch descriptor, or wd.
|
||||||
|
|
||||||
|
Watches are added via a path to the file.
|
||||||
|
|
||||||
|
Watches on a directory will return events on any files inside of the directory.
|
||||||
|
|
||||||
|
Adding a watch is simple,
|
||||||
|
|
||||||
|
int wd = inotify_add_watch (fd, path, mask);
|
||||||
|
|
||||||
|
You can add a large number of files via something like
|
||||||
|
|
||||||
|
for each file to watch {
|
||||||
|
int wd = inotify_add_watch (fd, file, mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
You can update an existing watch in the same manner, by passing in a new mask.
|
||||||
|
|
||||||
|
An existing watch is removed via the INOTIFY_IGNORE ioctl, for example
|
||||||
|
|
||||||
|
inotify_rm_watch (fd, wd);
|
||||||
|
|
||||||
|
Events are provided in the form of an inotify_event structure that is read(2)
|
||||||
|
from a inotify instance fd. The filename is of dynamic length and follows the
|
||||||
|
struct. It is of size len. The filename is padded with null bytes to ensure
|
||||||
|
proper alignment. This padding is reflected in len.
|
||||||
|
|
||||||
|
You can slurp multiple events by passing a large buffer, for example
|
||||||
|
|
||||||
|
size_t len = read (fd, buf, BUF_LEN);
|
||||||
|
|
||||||
|
Will return as many events as are available and fit in BUF_LEN.
|
||||||
|
|
||||||
|
each inotify instance fd is also select()- and poll()-able.
|
||||||
|
|
||||||
|
You can find the size of the current event queue via the FIONREAD ioctl.
|
||||||
|
|
||||||
|
All watches are destroyed and cleaned up on close.
|
||||||
|
|
||||||
|
|
||||||
|
(ii) Internal Kernel Implementation
|
||||||
|
|
||||||
|
Each open inotify instance is associated with an inotify_device structure.
|
||||||
|
|
||||||
|
Each watch is associated with an inotify_watch structure. Watches are chained
|
||||||
|
off of each associated device and each associated inode.
|
||||||
|
|
||||||
|
See fs/inotify.c for the locking and lifetime rules.
|
||||||
|
|
||||||
|
|
||||||
|
(iii) Rationale
|
||||||
|
|
||||||
|
Q: What is the design decision behind not tying the watch to the open fd of
|
||||||
|
the watched object?
|
||||||
|
|
||||||
|
A: Watches are associated with an open inotify device, not an open file.
|
||||||
|
This solves the primary problem with dnotify: keeping the file open pins
|
||||||
|
the file and thus, worse, pins the mount. Dnotify is therefore infeasible
|
||||||
|
for use on a desktop system with removable media as the media cannot be
|
||||||
|
unmounted.
|
||||||
|
|
||||||
|
Q: What is the design decision behind using an-fd-per-device as opposed to
|
||||||
|
an fd-per-watch?
|
||||||
|
|
||||||
|
A: An fd-per-watch quickly consumes more file descriptors than are allowed,
|
||||||
|
more fd's than are feasible to manage, and more fd's than are optimally
|
||||||
|
select()-able. Yes, root can bump the per-process fd limit and yes, users
|
||||||
|
can use epoll, but requiring both is a silly and extraneous requirement.
|
||||||
|
A watch consumes less memory than an open file, separating the number
|
||||||
|
spaces is thus sensible. The current design is what user-space developers
|
||||||
|
want: Users initialize inotify, once, and add n watches, requiring but one fd
|
||||||
|
and no twiddling with fd limits. Initializing an inotify instance two
|
||||||
|
thousand times is silly. If we can implement user-space's preferences
|
||||||
|
cleanly--and we can, the idr layer makes stuff like this trivial--then we
|
||||||
|
should.
|
||||||
|
|
||||||
|
There are other good arguments. With a single fd, there is a single
|
||||||
|
item to block on, which is mapped to a single queue of events. The single
|
||||||
|
fd returns all watch events and also any potential out-of-band data. If
|
||||||
|
every fd was a separate watch,
|
||||||
|
|
||||||
|
- There would be no way to get event ordering. Events on file foo and
|
||||||
|
file bar would pop poll() on both fd's, but there would be no way to tell
|
||||||
|
which happened first. A single queue trivially gives you ordering. Such
|
||||||
|
ordering is crucial to existing applications such as Beagle. Imagine
|
||||||
|
"mv a b ; mv b a" events without ordering.
|
||||||
|
|
||||||
|
- We'd have to maintain n fd's and n internal queues with state,
|
||||||
|
versus just one. It is a lot messier in the kernel. A single, linear
|
||||||
|
queue is the data structure that makes sense.
|
||||||
|
|
||||||
|
- User-space developers prefer the current API. The Beagle guys, for
|
||||||
|
example, love it. Trust me, I asked. It is not a surprise: Who'd want
|
||||||
|
to manage and block on 1000 fd's via select?
|
||||||
|
|
||||||
|
- You'd have to manage the fd's, as an example: Call close() when you
|
||||||
|
received a delete event.
|
||||||
|
|
||||||
|
- No way to get out of band data.
|
||||||
|
|
||||||
|
- 1024 is still too low. ;-)
|
||||||
|
|
||||||
|
When you talk about designing a file change notification system that
|
||||||
|
scales to 1000s of directories, juggling 1000s of fd's just does not seem
|
||||||
|
the right interface. It is too heavy.
|
||||||
|
|
||||||
|
Q: Why the system call approach?
|
||||||
|
|
||||||
|
A: The poor user-space interface is the second biggest problem with dnotify.
|
||||||
|
Signals are a terrible, terrible interface for file notification. Or for
|
||||||
|
anything, for that matter. The ideal solution, from all perspectives, is a
|
||||||
|
file descriptor-based one that allows basic file I/O and poll/select.
|
||||||
|
Obtaining the fd and managing the watches could have been done either via a
|
||||||
|
device file or a family of new system calls. We decided to implement a
|
||||||
|
family of system calls because that is the preffered approach for new kernel
|
||||||
|
features and it means our user interface requirements.
|
||||||
|
|
||||||
|
Additionally, it _is_ possible to more than one instance and
|
||||||
|
juggle more than one queue and thus more than one associated fd.
|
||||||
|
|
|
@ -2,10 +2,10 @@ Kernel driver max6875
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Supported chips:
|
Supported chips:
|
||||||
* Maxim max6874, max6875
|
* Maxim MAX6874, MAX6875
|
||||||
Prefixes: 'max6875'
|
Prefix: 'max6875'
|
||||||
Addresses scanned: 0x50, 0x52
|
Addresses scanned: 0x50, 0x52
|
||||||
Datasheets:
|
Datasheet:
|
||||||
http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf
|
http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf
|
||||||
|
|
||||||
Author: Ben Gardner <bgardner@wabtec.com>
|
Author: Ben Gardner <bgardner@wabtec.com>
|
||||||
|
@ -23,14 +23,26 @@ Module Parameters
|
||||||
Description
|
Description
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
The MAXIM max6875 is a EEPROM-programmable power-supply sequencer/supervisor.
|
The Maxim MAX6875 is an EEPROM-programmable power-supply sequencer/supervisor.
|
||||||
It provides timed outputs that can be used as a watchdog, if properly wired.
|
It provides timed outputs that can be used as a watchdog, if properly wired.
|
||||||
It also provides 512 bytes of user EEPROM.
|
It also provides 512 bytes of user EEPROM.
|
||||||
|
|
||||||
At reset, the max6875 reads the configuration eeprom into its configuration
|
At reset, the MAX6875 reads the configuration EEPROM into its configuration
|
||||||
registers. The chip then begins to operate according to the values in the
|
registers. The chip then begins to operate according to the values in the
|
||||||
registers.
|
registers.
|
||||||
|
|
||||||
|
The Maxim MAX6874 is a similar, mostly compatible device, with more intputs
|
||||||
|
and outputs:
|
||||||
|
|
||||||
|
vin gpi vout
|
||||||
|
MAX6874 6 4 8
|
||||||
|
MAX6875 4 3 5
|
||||||
|
|
||||||
|
MAX6874 chips can have four different addresses (as opposed to only two for
|
||||||
|
the MAX6875). The additional addresses (0x54 and 0x56) are not probed by
|
||||||
|
this driver by default, but the probe module parameter can be used if
|
||||||
|
needed.
|
||||||
|
|
||||||
See the datasheet for details on how to program the EEPROM.
|
See the datasheet for details on how to program the EEPROM.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,12 @@ C example
|
||||||
=========
|
=========
|
||||||
|
|
||||||
So let's say you want to access an i2c adapter from a C program. The
|
So let's say you want to access an i2c adapter from a C program. The
|
||||||
first thing to do is `#include <linux/i2c.h>" and "#include <linux/i2c-dev.h>.
|
first thing to do is "#include <linux/i2c-dev.h>". Please note that
|
||||||
Yes, I know, you should never include kernel header files, but until glibc
|
there are two files named "i2c-dev.h" out there, one is distributed
|
||||||
knows about i2c, there is not much choice.
|
with the Linux kernel and is meant to be included from kernel
|
||||||
|
driver code, the other one is distributed with lm_sensors and is
|
||||||
|
meant to be included from user-space programs. You obviously want
|
||||||
|
the second one here.
|
||||||
|
|
||||||
Now, you have to decide which adapter you want to access. You should
|
Now, you have to decide which adapter you want to access. You should
|
||||||
inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned
|
inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned
|
||||||
|
@ -78,7 +81,7 @@ Full interface description
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
The following IOCTLs are defined and fully supported
|
The following IOCTLs are defined and fully supported
|
||||||
(see also i2c-dev.h and i2c.h):
|
(see also i2c-dev.h):
|
||||||
|
|
||||||
ioctl(file,I2C_SLAVE,long addr)
|
ioctl(file,I2C_SLAVE,long addr)
|
||||||
Change slave address. The address is passed in the 7 lower bits of the
|
Change slave address. The address is passed in the 7 lower bits of the
|
||||||
|
@ -97,10 +100,10 @@ ioctl(file,I2C_PEC,long select)
|
||||||
ioctl(file,I2C_FUNCS,unsigned long *funcs)
|
ioctl(file,I2C_FUNCS,unsigned long *funcs)
|
||||||
Gets the adapter functionality and puts it in *funcs.
|
Gets the adapter functionality and puts it in *funcs.
|
||||||
|
|
||||||
ioctl(file,I2C_RDWR,struct i2c_ioctl_rdwr_data *msgset)
|
ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset)
|
||||||
|
|
||||||
Do combined read/write transaction without stop in between.
|
Do combined read/write transaction without stop in between.
|
||||||
The argument is a pointer to a struct i2c_ioctl_rdwr_data {
|
The argument is a pointer to a struct i2c_rdwr_ioctl_data {
|
||||||
|
|
||||||
struct i2c_msg *msgs; /* ptr to array of simple messages */
|
struct i2c_msg *msgs; /* ptr to array of simple messages */
|
||||||
int nmsgs; /* number of messages to exchange */
|
int nmsgs; /* number of messages to exchange */
|
||||||
|
|
|
@ -27,7 +27,6 @@ address.
|
||||||
static struct i2c_driver foo_driver = {
|
static struct i2c_driver foo_driver = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.name = "Foo version 2.3 driver",
|
.name = "Foo version 2.3 driver",
|
||||||
.id = I2C_DRIVERID_FOO, /* from i2c-id.h, optional */
|
|
||||||
.flags = I2C_DF_NOTIFY,
|
.flags = I2C_DF_NOTIFY,
|
||||||
.attach_adapter = &foo_attach_adapter,
|
.attach_adapter = &foo_attach_adapter,
|
||||||
.detach_client = &foo_detach_client,
|
.detach_client = &foo_detach_client,
|
||||||
|
@ -37,12 +36,6 @@ static struct i2c_driver foo_driver = {
|
||||||
The name can be chosen freely, and may be upto 40 characters long. Please
|
The name can be chosen freely, and may be upto 40 characters long. Please
|
||||||
use something descriptive here.
|
use something descriptive here.
|
||||||
|
|
||||||
If used, the id should be a unique ID. The range 0xf000 to 0xffff is
|
|
||||||
reserved for local use, and you can use one of those until you start
|
|
||||||
distributing the driver, at which time you should contact the i2c authors
|
|
||||||
to get your own ID(s). Note that most of the time you don't need an ID
|
|
||||||
at all so you can just omit it.
|
|
||||||
|
|
||||||
Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This
|
Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This
|
||||||
means that your driver will be notified when new adapters are found.
|
means that your driver will be notified when new adapters are found.
|
||||||
This is almost always what you want.
|
This is almost always what you want.
|
||||||
|
|
|
@ -37,7 +37,7 @@ restrictions referred to are that the relevant option is valid if:
|
||||||
IA-32 IA-32 aka i386 architecture is enabled.
|
IA-32 IA-32 aka i386 architecture is enabled.
|
||||||
IA-64 IA-64 architecture is enabled.
|
IA-64 IA-64 architecture is enabled.
|
||||||
IOSCHED More than one I/O scheduler is enabled.
|
IOSCHED More than one I/O scheduler is enabled.
|
||||||
IP_PNP IP DCHP, BOOTP, or RARP is enabled.
|
IP_PNP IP DHCP, BOOTP, or RARP is enabled.
|
||||||
ISAPNP ISA PnP code is enabled.
|
ISAPNP ISA PnP code is enabled.
|
||||||
ISDN Appropriate ISDN support is enabled.
|
ISDN Appropriate ISDN support is enabled.
|
||||||
JOY Appropriate joystick support is enabled.
|
JOY Appropriate joystick support is enabled.
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
This file details changes in 2.6 which affect PCMCIA card driver authors:
|
This file details changes in 2.6 which affect PCMCIA card driver authors:
|
||||||
|
|
||||||
* in-kernel device<->driver matching
|
* event handler initialization in struct pcmcia_driver (as of 2.6.13)
|
||||||
|
The event handler is notified of all events, and must be initialized
|
||||||
|
as the event() callback in the driver's struct pcmcia_driver.
|
||||||
|
|
||||||
|
* pcmcia/version.h should not be used (as of 2.6.13)
|
||||||
|
This file will be removed eventually.
|
||||||
|
|
||||||
|
* in-kernel device<->driver matching (as of 2.6.13)
|
||||||
PCMCIA devices and their correct drivers can now be matched in
|
PCMCIA devices and their correct drivers can now be matched in
|
||||||
kernelspace. See 'devicetable.txt' for details.
|
kernelspace. See 'devicetable.txt' for details.
|
||||||
|
|
||||||
|
|
|
@ -297,6 +297,7 @@ Vendor ID Product ID
|
||||||
0x0c45 0x602a
|
0x0c45 0x602a
|
||||||
0x0c45 0x602b
|
0x0c45 0x602b
|
||||||
0x0c45 0x602c
|
0x0c45 0x602c
|
||||||
|
0x0c45 0x602d
|
||||||
0x0c45 0x6030
|
0x0c45 0x6030
|
||||||
0x0c45 0x6080
|
0x0c45 0x6080
|
||||||
0x0c45 0x6082
|
0x0c45 0x6082
|
||||||
|
@ -333,6 +334,7 @@ Model Manufacturer
|
||||||
----- ------------
|
----- ------------
|
||||||
HV7131D Hynix Semiconductor, Inc.
|
HV7131D Hynix Semiconductor, Inc.
|
||||||
MI-0343 Micron Technology, Inc.
|
MI-0343 Micron Technology, Inc.
|
||||||
|
OV7630 OmniVision Technologies, Inc.
|
||||||
PAS106B PixArt Imaging, Inc.
|
PAS106B PixArt Imaging, Inc.
|
||||||
PAS202BCB PixArt Imaging, Inc.
|
PAS202BCB PixArt Imaging, Inc.
|
||||||
TAS5110C1B Taiwan Advanced Sensor Corporation
|
TAS5110C1B Taiwan Advanced Sensor Corporation
|
||||||
|
@ -470,9 +472,11 @@ order):
|
||||||
- Luca Capello for the donation of a webcam;
|
- Luca Capello for the donation of a webcam;
|
||||||
- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the
|
- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the
|
||||||
donation of a webcam;
|
donation of a webcam;
|
||||||
|
- Jon Hollstrom for the donation of a webcam;
|
||||||
- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB
|
- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB
|
||||||
image sensor;
|
image sensor;
|
||||||
- Stefano Mozzi, who donated 45 EU;
|
- Stefano Mozzi, who donated 45 EU;
|
||||||
|
- Andrew Pearce for the donation of a webcam;
|
||||||
- Bertrik Sikken, who reverse-engineered and documented the Huffman compression
|
- Bertrik Sikken, who reverse-engineered and documented the Huffman compression
|
||||||
algorithm used in the SN9C10x controllers and implemented the first decoder;
|
algorithm used in the SN9C10x controllers and implemented the first decoder;
|
||||||
- Mizuno Takafumi for the donation of a webcam;
|
- Mizuno Takafumi for the donation of a webcam;
|
||||||
|
|
|
@ -101,6 +101,13 @@ Here is the list of words, from left to right:
|
||||||
or 3 and 2 positions, correspondingly.
|
or 3 and 2 positions, correspondingly.
|
||||||
- URB Status. This field makes no sense for submissions, but is present
|
- URB Status. This field makes no sense for submissions, but is present
|
||||||
to help scripts with parsing. In error case, it contains the error code.
|
to help scripts with parsing. In error case, it contains the error code.
|
||||||
|
In case of a setup packet, it contains a Setup Tag. If scripts read a number
|
||||||
|
in this field, the proceed to read Data Length. Otherwise, they read
|
||||||
|
the setup packet before reading the Data Length.
|
||||||
|
- Setup packet, if present, consists of 5 words: one of each for bmRequestType,
|
||||||
|
bRequest, wValue, wIndex, wLength, as specified by the USB Specification 2.0.
|
||||||
|
These words are safe to decode if Setup Tag was 's'. Otherwise, the setup
|
||||||
|
packet was present, but not captured, and the fields contain filler.
|
||||||
- Data Length. This is the actual length in the URB.
|
- Data Length. This is the actual length in the URB.
|
||||||
- Data tag. The usbmon may not always capture data, even if length is nonzero.
|
- Data tag. The usbmon may not always capture data, even if length is nonzero.
|
||||||
Only if tag is '=', the data words are present.
|
Only if tag is '=', the data words are present.
|
||||||
|
@ -125,25 +132,31 @@ class ParsedLine {
|
||||||
String data_str = st.nextToken();
|
String data_str = st.nextToken();
|
||||||
int len = data_str.length() / 2;
|
int len = data_str.length() / 2;
|
||||||
int i;
|
int i;
|
||||||
|
int b; // byte is signed, apparently?! XXX
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
data[data_len] = Byte.parseByte(
|
// data[data_len] = Byte.parseByte(
|
||||||
data_str.substring(i*2, i*2 + 2),
|
// data_str.substring(i*2, i*2 + 2),
|
||||||
16);
|
// 16);
|
||||||
|
b = Integer.parseInt(
|
||||||
|
data_str.substring(i*2, i*2 + 2),
|
||||||
|
16);
|
||||||
|
if (b >= 128)
|
||||||
|
b *= -1;
|
||||||
|
data[data_len] = (byte) b;
|
||||||
data_len++;
|
data_len++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
This format is obviously deficient. For example, the setup packet for control
|
This format may be changed in the future.
|
||||||
transfers is not delivered. This will change in the future.
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
An input control transfer to get a port status:
|
An input control transfer to get a port status.
|
||||||
|
|
||||||
d74ff9a0 2640288196 S Ci:001:00 -115 4 <
|
d5ea89a0 3575914555 S Ci:001:00 s a3 00 0000 0003 0004 4 <
|
||||||
d74ff9a0 2640288202 C Ci:001:00 0 4 = 01010100
|
d5ea89a0 3575914560 C Ci:001:00 0 4 = 01050000
|
||||||
|
|
||||||
An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper
|
An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper
|
||||||
to a storage device at address 5:
|
to a storage device at address 5:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
card=0 - *** UNKNOWN/GENERIC ***
|
card=0 - *** UNKNOWN/GENERIC ***
|
||||||
card=1 - MIRO PCTV
|
card=1 - MIRO PCTV
|
||||||
card=2 - Hauppauge (bt848)
|
card=2 - Hauppauge (bt848)
|
||||||
card=3 - STB, Gateway P/N 6000699 (bt848)
|
card=3 - STB, Gateway P/N 6000699 (bt848)
|
||||||
|
|
|
@ -27,3 +27,5 @@ card=25 - Digital-Logic MICROSPACE Entertainment Center (MEC)
|
||||||
card=26 - IODATA GV/BCTV7E
|
card=26 - IODATA GV/BCTV7E
|
||||||
card=27 - PixelView PlayTV Ultra Pro (Stereo)
|
card=27 - PixelView PlayTV Ultra Pro (Stereo)
|
||||||
card=28 - DViCO FusionHDTV 3 Gold-T
|
card=28 - DViCO FusionHDTV 3 Gold-T
|
||||||
|
card=29 - ADS Tech Instant TV DVB-T PCI
|
||||||
|
card=30 - TerraTec Cinergy 1400 DVB-T
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
0 -> UNKNOWN/GENERIC
|
0 -> UNKNOWN/GENERIC
|
||||||
1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001]
|
1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001]
|
||||||
2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
|
2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
|
||||||
3 -> LifeView FlyVIDEO2000 [5168:0138]
|
3 -> LifeView FlyVIDEO2000 [5168:0138]
|
||||||
4 -> EMPRESS [1131:6752]
|
4 -> EMPRESS [1131:6752]
|
||||||
5 -> SKNet Monster TV [1131:4e85]
|
5 -> SKNet Monster TV [1131:4e85]
|
||||||
6 -> Tevion MD 9717
|
6 -> Tevion MD 9717
|
||||||
7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
|
7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
|
||||||
8 -> Terratec Cinergy 400 TV [153B:1142]
|
8 -> Terratec Cinergy 400 TV [153B:1142]
|
||||||
9 -> Medion 5044
|
9 -> Medion 5044
|
||||||
|
@ -34,6 +34,7 @@
|
||||||
33 -> AVerMedia DVD EZMaker [1461:10ff]
|
33 -> AVerMedia DVD EZMaker [1461:10ff]
|
||||||
34 -> Noval Prime TV 7133
|
34 -> Noval Prime TV 7133
|
||||||
35 -> AverMedia AverTV Studio 305 [1461:2115]
|
35 -> AverMedia AverTV Studio 305 [1461:2115]
|
||||||
|
36 -> UPMOST PURPLE TV [12ab:0800]
|
||||||
37 -> Items MuchTV Plus / IT-005
|
37 -> Items MuchTV Plus / IT-005
|
||||||
38 -> Terratec Cinergy 200 TV [153B:1152]
|
38 -> Terratec Cinergy 200 TV [153B:1152]
|
||||||
39 -> LifeView FlyTV Platinum Mini [5168:0212]
|
39 -> LifeView FlyTV Platinum Mini [5168:0212]
|
||||||
|
@ -43,20 +44,21 @@
|
||||||
43 -> :Zolid Xpert TV7134
|
43 -> :Zolid Xpert TV7134
|
||||||
44 -> Empire PCI TV-Radio LE
|
44 -> Empire PCI TV-Radio LE
|
||||||
45 -> Avermedia AVerTV Studio 307 [1461:9715]
|
45 -> Avermedia AVerTV Studio 307 [1461:9715]
|
||||||
46 -> AVerMedia Cardbus TV/Radio [1461:d6ee]
|
46 -> AVerMedia Cardbus TV/Radio (E500) [1461:d6ee]
|
||||||
47 -> Terratec Cinergy 400 mobile [153b:1162]
|
47 -> Terratec Cinergy 400 mobile [153b:1162]
|
||||||
48 -> Terratec Cinergy 600 TV MK3 [153B:1158]
|
48 -> Terratec Cinergy 600 TV MK3 [153B:1158]
|
||||||
49 -> Compro VideoMate Gold+ Pal [185b:c200]
|
49 -> Compro VideoMate Gold+ Pal [185b:c200]
|
||||||
50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d]
|
50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d]
|
||||||
51 -> ProVideo PV952 [1540:9524]
|
51 -> ProVideo PV952 [1540:9524]
|
||||||
52 -> AverMedia AverTV/305 [1461:2108]
|
52 -> AverMedia AverTV/305 [1461:2108]
|
||||||
|
53 -> ASUS TV-FM 7135 [1043:4845]
|
||||||
54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214]
|
54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214]
|
||||||
55 -> LifeView FlyDVB-T DUO [5168:0306]
|
55 -> LifeView FlyDVB-T DUO [5168:0502,5168:0306]
|
||||||
56 -> Avermedia AVerTV 307 [1461:a70a]
|
56 -> Avermedia AVerTV 307 [1461:a70a]
|
||||||
57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
|
57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
|
||||||
58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370]
|
58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370]
|
||||||
59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
|
59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
|
||||||
60 -> Typhoon DVB-T Duo Digital/Analog Cardbus
|
60 -> Typhoon DVB-T Duo Digital/Analog Cardbus [4e42:0502]
|
||||||
61 -> Philips TOUGH DVB-T reference design
|
61 -> Philips TOUGH DVB-T reference design [1131:2004]
|
||||||
62 -> Compro VideoMate TV Gold+II
|
62 -> Compro VideoMate TV Gold+II
|
||||||
63 -> Kworld Xpert TV PVR7134
|
63 -> Kworld Xpert TV PVR7134
|
||||||
|
|
|
@ -56,9 +56,9 @@ tuner=54 - tda8290+75
|
||||||
tuner=55 - LG PAL (TAPE series)
|
tuner=55 - LG PAL (TAPE series)
|
||||||
tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
|
tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
|
||||||
tuner=57 - Philips FQ1236A MK4
|
tuner=57 - Philips FQ1236A MK4
|
||||||
tuner=58 - Ymec TVision TVF-8531MF
|
tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF
|
||||||
tuner=59 - Ymec TVision TVF-5533MF
|
tuner=59 - Ymec TVision TVF-5533MF
|
||||||
tuner=60 - Thomson DDT 7611 (ATSC/NTSC)
|
tuner=60 - Thomson DDT 7611 (ATSC/NTSC)
|
||||||
tuner=61 - Tena TNF9533-D/IF
|
tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF
|
||||||
tuner=62 - Philips TEA5767HN FM Radio
|
tuner=62 - Philips TEA5767HN FM Radio
|
||||||
tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
|
tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
|
||||||
|
|
|
@ -20,7 +20,7 @@ All other cards only differ by additional components as tuners, sound
|
||||||
decoders, EEPROMs, teletext decoders ...
|
decoders, EEPROMs, teletext decoders ...
|
||||||
|
|
||||||
|
|
||||||
Unsupported Cards:
|
Unsupported Cards:
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by
|
Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by
|
||||||
|
@ -50,11 +50,11 @@ Bt848a/Bt849 single crytal operation support possible!!!
|
||||||
Miro/Pinnacle PCTV
|
Miro/Pinnacle PCTV
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
- Bt848
|
- Bt848
|
||||||
some (all??) come with 2 crystals for PAL/SECAM and NTSC
|
some (all??) come with 2 crystals for PAL/SECAM and NTSC
|
||||||
- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
|
- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
|
||||||
- MSP34xx sound decoder on add on board
|
- MSP34xx sound decoder on add on board
|
||||||
decoder is supported but AFAIK does not yet work
|
decoder is supported but AFAIK does not yet work
|
||||||
(other sound MUX setting in GPIO port needed??? somebody who fixed this???)
|
(other sound MUX setting in GPIO port needed??? somebody who fixed this???)
|
||||||
- 1 tuner, 1 composite and 1 S-VHS input
|
- 1 tuner, 1 composite and 1 S-VHS input
|
||||||
- tuner type is autodetected
|
- tuner type is autodetected
|
||||||
|
@ -70,7 +70,7 @@ in 1997!
|
||||||
Hauppauge Win/TV pci
|
Hauppauge Win/TV pci
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
There are many different versions of the Hauppauge cards with different
|
There are many different versions of the Hauppauge cards with different
|
||||||
tuners (TV+Radio ...), teletext decoders.
|
tuners (TV+Radio ...), teletext decoders.
|
||||||
Note that even cards with same model numbers have (depending on the revision)
|
Note that even cards with same model numbers have (depending on the revision)
|
||||||
different chips on it.
|
different chips on it.
|
||||||
|
@ -80,22 +80,22 @@ different chips on it.
|
||||||
- PAL, SECAM, NTSC or tuner with or without Radio support
|
- PAL, SECAM, NTSC or tuner with or without Radio support
|
||||||
|
|
||||||
e.g.:
|
e.g.:
|
||||||
PAL:
|
PAL:
|
||||||
TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
|
TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
|
||||||
TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
|
TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
|
||||||
|
|
||||||
NTSC:
|
NTSC:
|
||||||
TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
|
TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
|
||||||
TSA5518: no datasheet available on Philips site
|
TSA5518: no datasheet available on Philips site
|
||||||
- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip
|
- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip
|
||||||
with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM)
|
with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM)
|
||||||
SAA5246 (I2C 0x22) is supported
|
SAA5246 (I2C 0x22) is supported
|
||||||
- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
|
- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
|
||||||
with configuration information
|
with configuration information
|
||||||
I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
|
I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
|
||||||
- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
|
- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
|
||||||
- 14052B: mux for selection of sound source
|
- 14052B: mux for selection of sound source
|
||||||
- sound decoder: TDA9800, MSP34xx (stereo cards)
|
- sound decoder: TDA9800, MSP34xx (stereo cards)
|
||||||
|
|
||||||
|
|
||||||
Askey CPH-Series
|
Askey CPH-Series
|
||||||
|
@ -108,17 +108,17 @@ Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink)
|
||||||
CPH05x: BT878 with FM
|
CPH05x: BT878 with FM
|
||||||
CPH06x: BT878 (w/o FM)
|
CPH06x: BT878 (w/o FM)
|
||||||
CPH07x: BT878 capture only
|
CPH07x: BT878 capture only
|
||||||
|
|
||||||
TV standards:
|
TV standards:
|
||||||
CPH0x0: NTSC-M/M
|
CPH0x0: NTSC-M/M
|
||||||
CPH0x1: PAL-B/G
|
CPH0x1: PAL-B/G
|
||||||
CPH0x2: PAL-I/I
|
CPH0x2: PAL-I/I
|
||||||
CPH0x3: PAL-D/K
|
CPH0x3: PAL-D/K
|
||||||
CPH0x4: SECAM-L/L
|
CPH0x4: SECAM-L/L
|
||||||
CPH0x5: SECAM-B/G
|
CPH0x5: SECAM-B/G
|
||||||
CPH0x6: SECAM-D/K
|
CPH0x6: SECAM-D/K
|
||||||
CPH0x7: PAL-N/N
|
CPH0x7: PAL-N/N
|
||||||
CPH0x8: PAL-B/H
|
CPH0x8: PAL-B/H
|
||||||
CPH0x9: PAL-M/M
|
CPH0x9: PAL-M/M
|
||||||
|
|
||||||
CPH03x was often sold as "TV capturer".
|
CPH03x was often sold as "TV capturer".
|
||||||
|
@ -174,7 +174,7 @@ Lifeview Flyvideo Series:
|
||||||
"The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
|
"The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
|
||||||
Their Bt8x8 cards are listed as discontinued.
|
Their Bt8x8 cards are listed as discontinued.
|
||||||
Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?).
|
Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?).
|
||||||
The new Flyvideo 2000/3000 are SAA7130/SAA7134 based.
|
The new Flyvideo 2000/3000 are SAA7130/SAA7134 based.
|
||||||
|
|
||||||
"Flyvideo II" had been the name for the 848 cards, nowadays (in Germany)
|
"Flyvideo II" had been the name for the 848 cards, nowadays (in Germany)
|
||||||
this name is re-used for LR50 Rev.W.
|
this name is re-used for LR50 Rev.W.
|
||||||
|
@ -235,12 +235,12 @@ Prolink
|
||||||
Multimedia TV packages (card + software pack):
|
Multimedia TV packages (card + software pack):
|
||||||
PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software
|
PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software
|
||||||
PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E)
|
PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E)
|
||||||
PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A )
|
PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A )
|
||||||
PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A )
|
PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A )
|
||||||
PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E)
|
PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E)
|
||||||
PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A )
|
PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A )
|
||||||
|
|
||||||
PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800
|
PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800
|
||||||
PixelView PlayTV XP PV-M4700,PV-M4700(w/FM)
|
PixelView PlayTV XP PV-M4700,PV-M4700(w/FM)
|
||||||
PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w
|
PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ Prolink
|
||||||
|
|
||||||
DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030
|
DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030
|
||||||
DTV2000 DVB-S = Twinhan VP-1020
|
DTV2000 DVB-S = Twinhan VP-1020
|
||||||
|
|
||||||
Video Conferencing:
|
Video Conferencing:
|
||||||
PixelView Meeting PAK - (Model: PV-BT878P)
|
PixelView Meeting PAK - (Model: PV-BT878P)
|
||||||
PixelView Meeting PAK Lite - (Model: PV-BT878P)
|
PixelView Meeting PAK Lite - (Model: PV-BT878P)
|
||||||
|
@ -308,7 +308,7 @@ KNC One
|
||||||
|
|
||||||
newer Cards have saa7134, but model name stayed the same?
|
newer Cards have saa7134, but model name stayed the same?
|
||||||
|
|
||||||
Provideo
|
Provideo
|
||||||
--------
|
--------
|
||||||
PV951 or PV-951 (also are sold as:
|
PV951 or PV-951 (also are sold as:
|
||||||
Boeder TV-FM Video Capture Card
|
Boeder TV-FM Video Capture Card
|
||||||
|
@ -353,7 +353,7 @@ AVerMedia
|
||||||
AVerTV
|
AVerTV
|
||||||
AVerTV Stereo
|
AVerTV Stereo
|
||||||
AVerTV Studio (w/FM)
|
AVerTV Studio (w/FM)
|
||||||
AVerMedia TV98 with Remote
|
AVerMedia TV98 with Remote
|
||||||
AVerMedia TV/FM98 Stereo
|
AVerMedia TV/FM98 Stereo
|
||||||
AVerMedia TVCAM98
|
AVerMedia TVCAM98
|
||||||
TVCapture (Bt848)
|
TVCapture (Bt848)
|
||||||
|
@ -373,7 +373,7 @@ AVerMedia
|
||||||
(1) Daughterboard MB68-A with TDA9820T and TDA9840T
|
(1) Daughterboard MB68-A with TDA9820T and TDA9840T
|
||||||
(2) Sony NE41S soldered (stereo sound?)
|
(2) Sony NE41S soldered (stereo sound?)
|
||||||
(3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz
|
(3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz
|
||||||
|
|
||||||
US site has different drivers for (as of 09/2002):
|
US site has different drivers for (as of 09/2002):
|
||||||
EZ Capture/InterCam PCI (BT-848 chip)
|
EZ Capture/InterCam PCI (BT-848 chip)
|
||||||
EZ Capture/InterCam PCI (BT-878 chip)
|
EZ Capture/InterCam PCI (BT-878 chip)
|
||||||
|
@ -437,7 +437,7 @@ Terratec
|
||||||
Terra TValueRadio, "LR102 Rev.C" printed on the PCB
|
Terra TValueRadio, "LR102 Rev.C" printed on the PCB
|
||||||
Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB,
|
Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB,
|
||||||
"CPH010-E83" on the back, SAA6588T, TDA9873H
|
"CPH010-E83" on the back, SAA6588T, TDA9873H
|
||||||
Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB,
|
Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB,
|
||||||
"CPH011-D83" on back
|
"CPH011-D83" on back
|
||||||
Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
|
Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
|
||||||
Terra TValue New Revision "LR102 Rec.C"
|
Terra TValue New Revision "LR102 Rec.C"
|
||||||
|
@ -528,7 +528,7 @@ Koutech
|
||||||
KW-606RSF
|
KW-606RSF
|
||||||
KW-607A (capture only)
|
KW-607A (capture only)
|
||||||
KW-608 (Zoran capture only)
|
KW-608 (Zoran capture only)
|
||||||
|
|
||||||
IODATA (jp)
|
IODATA (jp)
|
||||||
------
|
------
|
||||||
GV-BCTV/PCI
|
GV-BCTV/PCI
|
||||||
|
@ -542,15 +542,15 @@ Canopus (jp)
|
||||||
-------
|
-------
|
||||||
WinDVR = Kworld "KW-TVL878RF"
|
WinDVR = Kworld "KW-TVL878RF"
|
||||||
|
|
||||||
www.sigmacom.co.kr
|
www.sigmacom.co.kr
|
||||||
------------------
|
------------------
|
||||||
Sigma Cyber TV II
|
Sigma Cyber TV II
|
||||||
|
|
||||||
www.sasem.co.kr
|
www.sasem.co.kr
|
||||||
---------------
|
---------------
|
||||||
Litte OnAir TV
|
Litte OnAir TV
|
||||||
|
|
||||||
hama
|
hama
|
||||||
----
|
----
|
||||||
TV/Radio-Tuner Card, PCI (Model 44677) = CPH051
|
TV/Radio-Tuner Card, PCI (Model 44677) = CPH051
|
||||||
|
|
||||||
|
@ -638,7 +638,7 @@ Media-Surfer (esc-kathrein.de)
|
||||||
|
|
||||||
Jetway (www.jetway.com.tw)
|
Jetway (www.jetway.com.tw)
|
||||||
--------------------------
|
--------------------------
|
||||||
JW-TV 878M
|
JW-TV 878M
|
||||||
JW-TV 878 = KWorld KW-TV878RF
|
JW-TV 878 = KWorld KW-TV878RF
|
||||||
|
|
||||||
Galaxis
|
Galaxis
|
||||||
|
@ -715,7 +715,7 @@ Hauppauge
|
||||||
809 MyVideo
|
809 MyVideo
|
||||||
872 MyTV2Go FM
|
872 MyTV2Go FM
|
||||||
|
|
||||||
|
|
||||||
546 WinTV Nova-S CI
|
546 WinTV Nova-S CI
|
||||||
543 WinTV Nova
|
543 WinTV Nova
|
||||||
907 Nova-S USB
|
907 Nova-S USB
|
||||||
|
@ -739,7 +739,7 @@ Hauppauge
|
||||||
832 MyTV2Go
|
832 MyTV2Go
|
||||||
869 MyTV2Go-FM
|
869 MyTV2Go-FM
|
||||||
805 MyVideo (USB)
|
805 MyVideo (USB)
|
||||||
|
|
||||||
|
|
||||||
Matrix-Vision
|
Matrix-Vision
|
||||||
-------------
|
-------------
|
||||||
|
@ -764,7 +764,7 @@ Gallant (www.gallantcom.com) www.minton.com.tw
|
||||||
Intervision IV-550 (bt8x8)
|
Intervision IV-550 (bt8x8)
|
||||||
Intervision IV-100 (zoran)
|
Intervision IV-100 (zoran)
|
||||||
Intervision IV-1000 (bt8x8)
|
Intervision IV-1000 (bt8x8)
|
||||||
|
|
||||||
Asonic (www.asonic.com.cn) (website down)
|
Asonic (www.asonic.com.cn) (website down)
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
SkyEye tv 878
|
SkyEye tv 878
|
||||||
|
@ -804,11 +804,11 @@ Kworld (www.kworld.com.tw)
|
||||||
|
|
||||||
JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down)
|
JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down)
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
JTT-02 (JTT TV) "TV watchmate pro" (bt848)
|
JTT-02 (JTT TV) "TV watchmate pro" (bt848)
|
||||||
|
|
||||||
ADS www.adstech.com
|
ADS www.adstech.com
|
||||||
-------------------
|
-------------------
|
||||||
Channel Surfer TV ( CHX-950 )
|
Channel Surfer TV ( CHX-950 )
|
||||||
Channel Surfer TV+FM ( CHX-960FM )
|
Channel Surfer TV+FM ( CHX-960FM )
|
||||||
|
|
||||||
AVEC www.prochips.com
|
AVEC www.prochips.com
|
||||||
|
@ -874,7 +874,7 @@ www.ids-imaging.de
|
||||||
------------------
|
------------------
|
||||||
Falcon Series (capture only)
|
Falcon Series (capture only)
|
||||||
In USA: http://www.theimagingsource.com/
|
In USA: http://www.theimagingsource.com/
|
||||||
DFG/LC1
|
DFG/LC1
|
||||||
|
|
||||||
www.sknet-web.co.jp
|
www.sknet-web.co.jp
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -890,7 +890,7 @@ Cybertainment
|
||||||
CyberMail Xtreme
|
CyberMail Xtreme
|
||||||
These are Flyvideo
|
These are Flyvideo
|
||||||
|
|
||||||
VCR (http://www.vcrinc.com/)
|
VCR (http://www.vcrinc.com/)
|
||||||
---
|
---
|
||||||
Video Catcher 16
|
Video Catcher 16
|
||||||
|
|
||||||
|
@ -920,7 +920,7 @@ Sdisilk www.sdisilk.com/
|
||||||
SDI Silk 200 SDI Input Card
|
SDI Silk 200 SDI Input Card
|
||||||
|
|
||||||
www.euresys.com
|
www.euresys.com
|
||||||
PICOLO series
|
PICOLO series
|
||||||
|
|
||||||
PMC/Pace
|
PMC/Pace
|
||||||
www.pacecom.co.uk website closed
|
www.pacecom.co.uk website closed
|
||||||
|
|
|
@ -34,4 +34,8 @@ MO_OUTPUT_FORMAT (0x310164)
|
||||||
2: HACTEXT
|
2: HACTEXT
|
||||||
1: HSFMT
|
1: HSFMT
|
||||||
|
|
||||||
|
0x47 is the sync byte for MPEG-2 transport stream packets.
|
||||||
|
Datasheet incorrectly states to use 47 decimal. 188 is the length.
|
||||||
|
All DVB compliant frontends output packets with this start code.
|
||||||
|
|
||||||
=================================================================================
|
=================================================================================
|
||||||
|
|
|
@ -1240,7 +1240,7 @@ S: Maintained
|
||||||
|
|
||||||
IRDA SUBSYSTEM
|
IRDA SUBSYSTEM
|
||||||
P: Jean Tourrilhes
|
P: Jean Tourrilhes
|
||||||
L: irda-users@lists.sourceforge.net
|
L: irda-users@lists.sourceforge.net (subscribers-only)
|
||||||
W: http://irda.sourceforge.net/
|
W: http://irda.sourceforge.net/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 13
|
SUBLEVEL = 13
|
||||||
EXTRAVERSION =-rc2
|
EXTRAVERSION =-rc3
|
||||||
NAME=Woozy Numbat
|
NAME=Woozy Numbat
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
|
@ -596,6 +596,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -700,6 +700,8 @@ config APM
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
menu "Device Drivers"
|
menu "Device Drivers"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
@ -732,7 +734,7 @@ source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "drivers/message/i2o/Kconfig"
|
source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
@ -744,6 +746,8 @@ source "drivers/char/Kconfig"
|
||||||
|
|
||||||
source "drivers/i2c/Kconfig"
|
source "drivers/i2c/Kconfig"
|
||||||
|
|
||||||
|
source "drivers/hwmon/Kconfig"
|
||||||
|
|
||||||
#source "drivers/l3/Kconfig"
|
#source "drivers/l3/Kconfig"
|
||||||
|
|
||||||
source "drivers/misc/Kconfig"
|
source "drivers/misc/Kconfig"
|
||||||
|
|
|
@ -183,6 +183,8 @@ source "mm/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "drivers/parport/Kconfig"
|
source "drivers/parport/Kconfig"
|
||||||
|
@ -193,7 +195,7 @@ source "drivers/block/Kconfig"
|
||||||
|
|
||||||
source "drivers/md/Kconfig"
|
source "drivers/md/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/ide/Kconfig"
|
source "drivers/ide/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -122,6 +122,8 @@ source arch/cris/arch-v10/Kconfig
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
# bring in ETRAX built-in drivers
|
# bring in ETRAX built-in drivers
|
||||||
menu "Drivers for built-in interfaces"
|
menu "Drivers for built-in interfaces"
|
||||||
source arch/cris/arch-v10/drivers/Kconfig
|
source arch/cris/arch-v10/drivers/Kconfig
|
||||||
|
@ -149,7 +151,7 @@ source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "drivers/message/i2o/Kconfig"
|
source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -346,6 +346,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -60,7 +60,7 @@ void __init pcibios_fixup_irqs(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init pcibios_penalize_isa_irq(int irq)
|
void __init pcibios_penalize_isa_irq(int irq, int active)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "drivers/mtd/Kconfig"
|
source "drivers/mtd/Kconfig"
|
||||||
|
@ -65,7 +67,7 @@ source "drivers/ide/Kconfig"
|
||||||
|
|
||||||
source "arch/h8300/Kconfig.ide"
|
source "arch/h8300/Kconfig.ide"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
#
|
#
|
||||||
# input - input/joystick depends on it. As does USB.
|
# input - input/joystick depends on it. As does USB.
|
||||||
|
@ -179,6 +181,8 @@ source "drivers/serial/Kconfig"
|
||||||
|
|
||||||
source "drivers/i2c/Kconfig"
|
source "drivers/i2c/Kconfig"
|
||||||
|
|
||||||
|
source "drivers/hwmon/Kconfig"
|
||||||
|
|
||||||
source "drivers/usb/Kconfig"
|
source "drivers/usb/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
|
@ -1285,6 +1285,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -2,3 +2,7 @@ obj-$(CONFIG_ACPI_BOOT) := boot.o
|
||||||
obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o
|
obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o
|
||||||
obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o
|
obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_ACPI_PROCESSOR),)
|
||||||
|
obj-y += cstate.o
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
103
arch/i386/kernel/acpi/cstate.c
Normal file
103
arch/i386/kernel/acpi/cstate.c
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
/*
|
||||||
|
* arch/i386/kernel/acpi/cstate.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005 Intel Corporation
|
||||||
|
* Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
|
||||||
|
* - Added _PDC for SMP C-states on Intel CPUs
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/acpi.h>
|
||||||
|
|
||||||
|
#include <acpi/processor.h>
|
||||||
|
#include <asm/acpi.h>
|
||||||
|
|
||||||
|
static void acpi_processor_power_init_intel_pdc(struct acpi_processor_power
|
||||||
|
*pow)
|
||||||
|
{
|
||||||
|
struct acpi_object_list *obj_list;
|
||||||
|
union acpi_object *obj;
|
||||||
|
u32 *buf;
|
||||||
|
|
||||||
|
/* allocate and initialize pdc. It will be used later. */
|
||||||
|
obj_list = kmalloc(sizeof(struct acpi_object_list), GFP_KERNEL);
|
||||||
|
if (!obj_list) {
|
||||||
|
printk(KERN_ERR "Memory allocation error\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
obj = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
|
||||||
|
if (!obj) {
|
||||||
|
printk(KERN_ERR "Memory allocation error\n");
|
||||||
|
kfree(obj_list);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf = kmalloc(12, GFP_KERNEL);
|
||||||
|
if (!buf) {
|
||||||
|
printk(KERN_ERR "Memory allocation error\n");
|
||||||
|
kfree(obj);
|
||||||
|
kfree(obj_list);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf[0] = ACPI_PDC_REVISION_ID;
|
||||||
|
buf[1] = 1;
|
||||||
|
buf[2] = ACPI_PDC_C_CAPABILITY_SMP;
|
||||||
|
|
||||||
|
obj->type = ACPI_TYPE_BUFFER;
|
||||||
|
obj->buffer.length = 12;
|
||||||
|
obj->buffer.pointer = (u8 *) buf;
|
||||||
|
obj_list->count = 1;
|
||||||
|
obj_list->pointer = obj;
|
||||||
|
pow->pdc = obj_list;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize _PDC data based on the CPU vendor */
|
||||||
|
void acpi_processor_power_init_pdc(struct acpi_processor_power *pow,
|
||||||
|
unsigned int cpu)
|
||||||
|
{
|
||||||
|
struct cpuinfo_x86 *c = cpu_data + cpu;
|
||||||
|
|
||||||
|
pow->pdc = NULL;
|
||||||
|
if (c->x86_vendor == X86_VENDOR_INTEL)
|
||||||
|
acpi_processor_power_init_intel_pdc(pow);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EXPORT_SYMBOL(acpi_processor_power_init_pdc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize bm_flags based on the CPU cache properties
|
||||||
|
* On SMP it depends on cache configuration
|
||||||
|
* - When cache is not shared among all CPUs, we flush cache
|
||||||
|
* before entering C3.
|
||||||
|
* - When cache is shared among all CPUs, we use bm_check
|
||||||
|
* mechanism as in UP case
|
||||||
|
*
|
||||||
|
* This routine is called only after all the CPUs are online
|
||||||
|
*/
|
||||||
|
void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,
|
||||||
|
unsigned int cpu)
|
||||||
|
{
|
||||||
|
struct cpuinfo_x86 *c = cpu_data + cpu;
|
||||||
|
|
||||||
|
flags->bm_check = 0;
|
||||||
|
if (num_online_cpus() == 1)
|
||||||
|
flags->bm_check = 1;
|
||||||
|
else if (c->x86_vendor == X86_VENDOR_INTEL) {
|
||||||
|
/*
|
||||||
|
* Today all CPUs that support C3 share cache.
|
||||||
|
* TBD: This needs to look at cache shared map, once
|
||||||
|
* multi-core detection patch makes to the base.
|
||||||
|
*/
|
||||||
|
flags->bm_check = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EXPORT_SYMBOL(acpi_processor_power_init_bm_check);
|
|
@ -74,8 +74,9 @@ wakeup_code:
|
||||||
movw %ax,%fs
|
movw %ax,%fs
|
||||||
movw $0x0e00 + 'i', %fs:(0x12)
|
movw $0x0e00 + 'i', %fs:(0x12)
|
||||||
|
|
||||||
# need a gdt
|
# need a gdt -- use lgdtl to force 32-bit operands, in case
|
||||||
lgdt real_save_gdt - wakeup_code
|
# the GDT is located past 16 megabytes.
|
||||||
|
lgdtl real_save_gdt - wakeup_code
|
||||||
|
|
||||||
movl real_save_cr0 - wakeup_code, %eax
|
movl real_save_cr0 - wakeup_code, %eax
|
||||||
movl %eax, %cr0
|
movl %eax, %cr0
|
||||||
|
|
|
@ -375,7 +375,7 @@ static int centrino_cpu_init_acpi(struct cpufreq_policy *policy)
|
||||||
arg0.buffer.pointer = (u8 *) arg0_buf;
|
arg0.buffer.pointer = (u8 *) arg0_buf;
|
||||||
arg0_buf[0] = ACPI_PDC_REVISION_ID;
|
arg0_buf[0] = ACPI_PDC_REVISION_ID;
|
||||||
arg0_buf[1] = 1;
|
arg0_buf[1] = 1;
|
||||||
arg0_buf[2] = ACPI_PDC_EST_CAPABILITY_SMP | ACPI_PDC_EST_CAPABILITY_MSR;
|
arg0_buf[2] = ACPI_PDC_EST_CAPABILITY_SMP_MSR;
|
||||||
|
|
||||||
p.pdc = &arg_list;
|
p.pdc = &arg_list;
|
||||||
|
|
||||||
|
|
|
@ -291,3 +291,6 @@ ENTRY(sys_call_table)
|
||||||
.long sys_keyctl
|
.long sys_keyctl
|
||||||
.long sys_ioprio_set
|
.long sys_ioprio_set
|
||||||
.long sys_ioprio_get /* 290 */
|
.long sys_ioprio_get /* 290 */
|
||||||
|
.long sys_inotify_init
|
||||||
|
.long sys_inotify_add_watch
|
||||||
|
.long sys_inotify_rm_watch
|
||||||
|
|
|
@ -1051,24 +1051,28 @@ static int __init pcibios_irq_init(void)
|
||||||
subsys_initcall(pcibios_irq_init);
|
subsys_initcall(pcibios_irq_init);
|
||||||
|
|
||||||
|
|
||||||
static void pirq_penalize_isa_irq(int irq)
|
static void pirq_penalize_isa_irq(int irq, int active)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* If any ISAPnP device reports an IRQ in its list of possible
|
* If any ISAPnP device reports an IRQ in its list of possible
|
||||||
* IRQ's, we try to avoid assigning it to PCI devices.
|
* IRQ's, we try to avoid assigning it to PCI devices.
|
||||||
*/
|
*/
|
||||||
if (irq < 16)
|
if (irq < 16) {
|
||||||
pirq_penalty[irq] += 100;
|
if (active)
|
||||||
|
pirq_penalty[irq] += 1000;
|
||||||
|
else
|
||||||
|
pirq_penalty[irq] += 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pcibios_penalize_isa_irq(int irq)
|
void pcibios_penalize_isa_irq(int irq, int active)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ACPI_PCI
|
#ifdef CONFIG_ACPI_PCI
|
||||||
if (!acpi_noirq)
|
if (!acpi_noirq)
|
||||||
acpi_penalize_isa_irq(irq);
|
acpi_penalize_isa_irq(irq, active);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
pirq_penalize_isa_irq(irq);
|
pirq_penalize_isa_irq(irq, active);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pirq_enable_irq(struct pci_dev *dev)
|
static int pirq_enable_irq(struct pci_dev *dev)
|
||||||
|
|
|
@ -21,7 +21,7 @@ static int pci_visws_enable_irq(struct pci_dev *dev) { return 0; }
|
||||||
|
|
||||||
int (*pcibios_enable_irq)(struct pci_dev *dev) = &pci_visws_enable_irq;
|
int (*pcibios_enable_irq)(struct pci_dev *dev) = &pci_visws_enable_irq;
|
||||||
|
|
||||||
void __init pcibios_penalize_isa_irq(int irq) {}
|
void __init pcibios_penalize_isa_irq(int irq, int active) {}
|
||||||
|
|
||||||
|
|
||||||
unsigned int pci_bus0, pci_bus1;
|
unsigned int pci_bus0, pci_bus1;
|
||||||
|
|
|
@ -423,6 +423,8 @@ endmenu
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
* Copyright (C) 2001 Jenna Hall <jenna.s.hall@intel.com>
|
* Copyright (C) 2001 Jenna Hall <jenna.s.hall@intel.com>
|
||||||
* Copyright (C) 2001 Takayoshi Kochi <t-kochi@bq.jp.nec.com>
|
* Copyright (C) 2001 Takayoshi Kochi <t-kochi@bq.jp.nec.com>
|
||||||
* Copyright (C) 2002 Erich Focht <efocht@ess.nec.de>
|
* Copyright (C) 2002 Erich Focht <efocht@ess.nec.de>
|
||||||
|
* Copyright (C) 2004 Ashok Raj <ashok.raj@intel.com>
|
||||||
*
|
*
|
||||||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
*
|
*
|
||||||
|
@ -67,6 +68,11 @@ EXPORT_SYMBOL(pm_power_off);
|
||||||
unsigned char acpi_kbd_controller_present = 1;
|
unsigned char acpi_kbd_controller_present = 1;
|
||||||
unsigned char acpi_legacy_devices;
|
unsigned char acpi_legacy_devices;
|
||||||
|
|
||||||
|
static unsigned int __initdata acpi_madt_rev;
|
||||||
|
|
||||||
|
unsigned int acpi_cpei_override;
|
||||||
|
unsigned int acpi_cpei_phys_cpuid;
|
||||||
|
|
||||||
#define MAX_SAPICS 256
|
#define MAX_SAPICS 256
|
||||||
u16 ia64_acpiid_to_sapicid[MAX_SAPICS] =
|
u16 ia64_acpiid_to_sapicid[MAX_SAPICS] =
|
||||||
{ [0 ... MAX_SAPICS - 1] = -1 };
|
{ [0 ... MAX_SAPICS - 1] = -1 };
|
||||||
|
@ -265,10 +271,56 @@ acpi_parse_plat_int_src (
|
||||||
(plintsrc->flags.trigger == 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
|
(plintsrc->flags.trigger == 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
|
||||||
|
|
||||||
platform_intr_list[plintsrc->type] = vector;
|
platform_intr_list[plintsrc->type] = vector;
|
||||||
|
if (acpi_madt_rev > 1) {
|
||||||
|
acpi_cpei_override = plintsrc->plint_flags.cpei_override_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Save the physical id, so we can check when its being removed
|
||||||
|
*/
|
||||||
|
acpi_cpei_phys_cpuid = ((plintsrc->id << 8) | (plintsrc->eid)) & 0xffff;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int can_cpei_retarget(void)
|
||||||
|
{
|
||||||
|
extern int cpe_vector;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Only if CPEI is supported and the override flag
|
||||||
|
* is present, otherwise return that its re-targettable
|
||||||
|
* if we are in polling mode.
|
||||||
|
*/
|
||||||
|
if (cpe_vector > 0 && !acpi_cpei_override)
|
||||||
|
return 0;
|
||||||
|
else
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int is_cpu_cpei_target(unsigned int cpu)
|
||||||
|
{
|
||||||
|
unsigned int logical_id;
|
||||||
|
|
||||||
|
logical_id = cpu_logical_id(acpi_cpei_phys_cpuid);
|
||||||
|
|
||||||
|
if (logical_id == cpu)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_cpei_target_cpu(unsigned int cpu)
|
||||||
|
{
|
||||||
|
acpi_cpei_phys_cpuid = cpu_physical_id(cpu);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int get_cpei_target_cpu(void)
|
||||||
|
{
|
||||||
|
return acpi_cpei_phys_cpuid;
|
||||||
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
acpi_parse_int_src_ovr (
|
acpi_parse_int_src_ovr (
|
||||||
acpi_table_entry_header *header, const unsigned long end)
|
acpi_table_entry_header *header, const unsigned long end)
|
||||||
|
@ -326,6 +378,8 @@ acpi_parse_madt (unsigned long phys_addr, unsigned long size)
|
||||||
|
|
||||||
acpi_madt = (struct acpi_table_madt *) __va(phys_addr);
|
acpi_madt = (struct acpi_table_madt *) __va(phys_addr);
|
||||||
|
|
||||||
|
acpi_madt_rev = acpi_madt->header.revision;
|
||||||
|
|
||||||
/* remember the value for reference after free_initmem() */
|
/* remember the value for reference after free_initmem() */
|
||||||
#ifdef CONFIG_ITANIUM
|
#ifdef CONFIG_ITANIUM
|
||||||
has_8259 = 1; /* Firmware on old Itanium systems is broken */
|
has_8259 = 1; /* Firmware on old Itanium systems is broken */
|
||||||
|
|
|
@ -271,7 +271,7 @@ ia64_mca_log_sal_error_record(int sal_info_type)
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI
|
#ifdef CONFIG_ACPI
|
||||||
|
|
||||||
static int cpe_vector = -1;
|
int cpe_vector = -1;
|
||||||
|
|
||||||
static irqreturn_t
|
static irqreturn_t
|
||||||
ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs)
|
ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs)
|
||||||
|
|
|
@ -196,6 +196,7 @@ update_pal_halt_status(int status)
|
||||||
void
|
void
|
||||||
default_idle (void)
|
default_idle (void)
|
||||||
{
|
{
|
||||||
|
local_irq_enable();
|
||||||
while (!need_resched())
|
while (!need_resched())
|
||||||
if (can_do_pal_halt)
|
if (can_do_pal_halt)
|
||||||
safe_halt();
|
safe_halt();
|
||||||
|
|
|
@ -40,6 +40,8 @@
|
||||||
#include <linux/serial_core.h>
|
#include <linux/serial_core.h>
|
||||||
#include <linux/efi.h>
|
#include <linux/efi.h>
|
||||||
#include <linux/initrd.h>
|
#include <linux/initrd.h>
|
||||||
|
#include <linux/platform.h>
|
||||||
|
#include <linux/pm.h>
|
||||||
|
|
||||||
#include <asm/ia32.h>
|
#include <asm/ia32.h>
|
||||||
#include <asm/machvec.h>
|
#include <asm/machvec.h>
|
||||||
|
@ -783,6 +785,7 @@ cpu_init (void)
|
||||||
/* size of physical stacked register partition plus 8 bytes: */
|
/* size of physical stacked register partition plus 8 bytes: */
|
||||||
__get_cpu_var(ia64_phys_stacked_size_p8) = num_phys_stacked*8 + 8;
|
__get_cpu_var(ia64_phys_stacked_size_p8) = num_phys_stacked*8 + 8;
|
||||||
platform_cpu_init();
|
platform_cpu_init();
|
||||||
|
pm_idle = default_idle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -36,6 +36,13 @@ int arch_register_cpu(int num)
|
||||||
parent = &sysfs_nodes[cpu_to_node(num)];
|
parent = &sysfs_nodes[cpu_to_node(num)];
|
||||||
#endif /* CONFIG_NUMA */
|
#endif /* CONFIG_NUMA */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If CPEI cannot be re-targetted, and this is
|
||||||
|
* CPEI target, then dont create the control file
|
||||||
|
*/
|
||||||
|
if (!can_cpei_retarget() && is_cpu_cpei_target(num))
|
||||||
|
sysfs_cpus[num].cpu.no_control = 1;
|
||||||
|
|
||||||
return register_cpu(&sysfs_cpus[num].cpu, num, parent);
|
return register_cpu(&sysfs_cpus[num].cpu, num, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -359,6 +359,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -450,6 +450,8 @@ source "drivers/zorro/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
menu "Character devices"
|
menu "Character devices"
|
||||||
|
|
|
@ -575,6 +575,8 @@ config PM
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -1640,6 +1640,8 @@ config PM
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -190,6 +190,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -1355,6 +1355,8 @@ config PIN_TLB
|
||||||
depends on ADVANCED_OPTIONS && 8xx
|
depends on ADVANCED_OPTIONS && 8xx
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -28,6 +28,12 @@ typedef NORET_TYPE void (*relocate_new_kernel_t)(
|
||||||
const extern unsigned char relocate_new_kernel[];
|
const extern unsigned char relocate_new_kernel[];
|
||||||
const extern unsigned int relocate_new_kernel_size;
|
const extern unsigned int relocate_new_kernel_size;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Provide a dummy crash_notes definition while crash dump arrives to ppc.
|
||||||
|
* This prevents breakage of crash_notes attribute in kernel/ksysfs.c.
|
||||||
|
*/
|
||||||
|
void *crash_notes = NULL;
|
||||||
|
|
||||||
void machine_shutdown(void)
|
void machine_shutdown(void)
|
||||||
{
|
{
|
||||||
if (ppc_md.machine_shutdown)
|
if (ppc_md.machine_shutdown)
|
||||||
|
|
|
@ -429,6 +429,8 @@ config CMDLINE
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -465,6 +465,8 @@ config KEXEC
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
config PCMCIA
|
config PCMCIA
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
@ -475,7 +477,7 @@ source "drivers/scsi/Kconfig"
|
||||||
|
|
||||||
source "drivers/s390/Kconfig"
|
source "drivers/s390/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -784,6 +784,8 @@ config EMBEDDED_RAMDISK_IMAGE
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -268,6 +268,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -268,6 +268,8 @@ source "mm/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
if !SUN4
|
if !SUN4
|
||||||
|
|
|
@ -525,6 +525,8 @@ source "mm/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "drivers/video/Kconfig"
|
source "drivers/video/Kconfig"
|
||||||
|
@ -551,7 +553,7 @@ endif
|
||||||
|
|
||||||
source "drivers/ieee1394/Kconfig"
|
source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
@ -647,6 +649,8 @@ source "drivers/input/Kconfig"
|
||||||
|
|
||||||
source "drivers/i2c/Kconfig"
|
source "drivers/i2c/Kconfig"
|
||||||
|
|
||||||
|
source "drivers/hwmon/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
||||||
source "drivers/media/Kconfig"
|
source "drivers/media/Kconfig"
|
||||||
|
|
|
@ -45,8 +45,8 @@ extern void calibrate_delay(void);
|
||||||
/* Please don't make this stuff initdata!!! --DaveM */
|
/* Please don't make this stuff initdata!!! --DaveM */
|
||||||
static unsigned char boot_cpu_id;
|
static unsigned char boot_cpu_id;
|
||||||
|
|
||||||
cpumask_t cpu_online_map = CPU_MASK_NONE __read_mostly;
|
cpumask_t cpu_online_map __read_mostly = CPU_MASK_NONE;
|
||||||
cpumask_t phys_cpu_present_map = CPU_MASK_NONE __read_mostly;
|
cpumask_t phys_cpu_present_map __read_mostly = CPU_MASK_NONE;
|
||||||
static cpumask_t smp_commenced_mask;
|
static cpumask_t smp_commenced_mask;
|
||||||
static cpumask_t cpu_callout_map;
|
static cpumask_t cpu_callout_map;
|
||||||
|
|
||||||
|
|
|
@ -275,6 +275,8 @@ endmenu
|
||||||
|
|
||||||
source "init/Kconfig"
|
source "init/Kconfig"
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "arch/um/Kconfig_char"
|
source "arch/um/Kconfig_char"
|
||||||
|
@ -287,7 +289,7 @@ config NETDEVICES
|
||||||
|
|
||||||
source "arch/um/Kconfig_net"
|
source "arch/um/Kconfig_net"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,8 @@ endef
|
||||||
#When cleaning we don't include .config, so we don't include
|
#When cleaning we don't include .config, so we don't include
|
||||||
#TT or skas makefiles and don't clean skas_ptregs.h.
|
#TT or skas makefiles and don't clean skas_ptregs.h.
|
||||||
CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \
|
CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \
|
||||||
$(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h
|
$(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h \
|
||||||
|
$(ARCH_DIR)/include/user_constants.h
|
||||||
|
|
||||||
MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
|
MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
|
||||||
$(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os \
|
$(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os \
|
||||||
|
|
|
@ -250,6 +250,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
@ -283,7 +285,7 @@ source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "drivers/message/i2o/Kconfig"
|
source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -515,6 +515,8 @@ config UID16
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source drivers/Kconfig
|
source drivers/Kconfig
|
||||||
|
|
||||||
source "drivers/firmware/Kconfig"
|
source "drivers/firmware/Kconfig"
|
||||||
|
|
|
@ -62,8 +62,8 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
#define VSYSCALL_ADDR (-10*1024*1024)
|
#define VSYSCALL_ADDR (-10*1024*1024)
|
||||||
#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.cacheline_aligned) + SIZEOF(.data.cacheline_aligned) + 4095) & ~(4095))
|
#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
|
||||||
#define VSYSCALL_VIRT_ADDR ((ADDR(.data.cacheline_aligned) + SIZEOF(.data.cacheline_aligned) + 4095) & ~(4095))
|
#define VSYSCALL_VIRT_ADDR ((ADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
|
||||||
|
|
||||||
#define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR)
|
#define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR)
|
||||||
#define VLOAD(x) (ADDR(x) - VLOAD_OFFSET)
|
#define VLOAD(x) (ADDR(x) - VLOAD_OFFSET)
|
||||||
|
|
|
@ -228,6 +228,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/sched.h>
|
|
||||||
#include <linux/stddef.h>
|
#include <linux/stddef.h>
|
||||||
#include <linux/thread_info.h>
|
#include <linux/thread_info.h>
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
|
|
|
@ -69,8 +69,8 @@ int sys_pipe(int __user *userfds)
|
||||||
/*
|
/*
|
||||||
* Common code for old and new mmaps.
|
* Common code for old and new mmaps.
|
||||||
*/
|
*/
|
||||||
long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot,
|
long sys_mmap(unsigned long addr, unsigned long len, unsigned long prot,
|
||||||
unsigned long flags, unsigned long fd, unsigned long pgoff)
|
unsigned long flags, unsigned long fd, unsigned long pgoff)
|
||||||
{
|
{
|
||||||
int error = -EBADF;
|
int error = -EBADF;
|
||||||
struct file * file = NULL;
|
struct file * file = NULL;
|
||||||
|
|
|
@ -42,7 +42,7 @@ SYSCALL(sys_mknod, 3)
|
||||||
SYSCALL(sys_chmod, 2) /* 15 */
|
SYSCALL(sys_chmod, 2) /* 15 */
|
||||||
SYSCALL(sys_lchown, 3)
|
SYSCALL(sys_lchown, 3)
|
||||||
SYSCALL(sys_ni_syscall, 0)
|
SYSCALL(sys_ni_syscall, 0)
|
||||||
SYSCALL(sys_stat, 2)
|
SYSCALL(sys_newstat, 2)
|
||||||
SYSCALL(sys_lseek, 3)
|
SYSCALL(sys_lseek, 3)
|
||||||
SYSCALL(sys_getpid, 0) /* 20 */
|
SYSCALL(sys_getpid, 0) /* 20 */
|
||||||
SYSCALL(sys_mount, 5)
|
SYSCALL(sys_mount, 5)
|
||||||
|
@ -52,7 +52,7 @@ SYSCALL(sys_getuid, 0)
|
||||||
SYSCALL(sys_ni_syscall, 1) /* 25 */
|
SYSCALL(sys_ni_syscall, 1) /* 25 */
|
||||||
SYSCALL(sys_ptrace, 4)
|
SYSCALL(sys_ptrace, 4)
|
||||||
SYSCALL(sys_ni_syscall, 1)
|
SYSCALL(sys_ni_syscall, 1)
|
||||||
SYSCALL(sys_fstat, 2)
|
SYSCALL(sys_newfstat, 2)
|
||||||
SYSCALL(sys_ni_syscall, 0)
|
SYSCALL(sys_ni_syscall, 0)
|
||||||
SYSCALL(sys_utime, 2) /* 30 */
|
SYSCALL(sys_utime, 2) /* 30 */
|
||||||
SYSCALL(sys_ni_syscall, 0)
|
SYSCALL(sys_ni_syscall, 0)
|
||||||
|
@ -108,7 +108,7 @@ SYSCALL(sys_getgroups, 2) /* 80 */
|
||||||
SYSCALL(sys_setgroups, 2)
|
SYSCALL(sys_setgroups, 2)
|
||||||
SYSCALL(sys_ni_syscall, 0)
|
SYSCALL(sys_ni_syscall, 0)
|
||||||
SYSCALL(sys_symlink, 2)
|
SYSCALL(sys_symlink, 2)
|
||||||
SYSCALL(sys_lstat, 2)
|
SYSCALL(sys_newlstat, 2)
|
||||||
SYSCALL(sys_readlink, 3) /* 85 */
|
SYSCALL(sys_readlink, 3) /* 85 */
|
||||||
SYSCALL(sys_uselib, 1)
|
SYSCALL(sys_uselib, 1)
|
||||||
SYSCALL(sys_swapon, 2)
|
SYSCALL(sys_swapon, 2)
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/stringify.h>
|
#include <linux/stringify.h>
|
||||||
#include <linux/kallsyms.h>
|
#include <linux/kallsyms.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
|
||||||
#include <asm/ptrace.h>
|
#include <asm/ptrace.h>
|
||||||
#include <asm/timex.h>
|
#include <asm/timex.h>
|
||||||
|
@ -488,8 +489,7 @@ void die(const char * str, struct pt_regs * regs, long err)
|
||||||
|
|
||||||
if (panic_on_oops) {
|
if (panic_on_oops) {
|
||||||
printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n");
|
printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n");
|
||||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
ssleep(5);
|
||||||
schedule_timeout(5 * HZ);
|
|
||||||
panic("Fatal exception");
|
panic("Fatal exception");
|
||||||
}
|
}
|
||||||
do_exit(err);
|
do_exit(err);
|
||||||
|
|
|
@ -90,10 +90,10 @@ SECTIONS
|
||||||
*(.literal .text)
|
*(.literal .text)
|
||||||
*(.srom.text)
|
*(.srom.text)
|
||||||
VMLINUX_SYMBOL(__sched_text_start) = .;
|
VMLINUX_SYMBOL(__sched_text_start) = .;
|
||||||
*(.sched.text.literal .sched.text)
|
*(.sched.literal .sched.text)
|
||||||
VMLINUX_SYMBOL(__sched_text_end) = .;
|
VMLINUX_SYMBOL(__sched_text_end) = .;
|
||||||
VMLINUX_SYMBOL(__lock_text_start) = .;
|
VMLINUX_SYMBOL(__lock_text_start) = .;
|
||||||
*(.spinlock.text.literal .spinlock.text)
|
*(.spinlock.literal .spinlock.text)
|
||||||
VMLINUX_SYMBOL(__lock_text_end) = .;
|
VMLINUX_SYMBOL(__lock_text_end) = .;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ SECTIONS
|
||||||
__init_begin = .;
|
__init_begin = .;
|
||||||
.init.text : {
|
.init.text : {
|
||||||
_sinittext = .;
|
_sinittext = .;
|
||||||
*(.init.text.literal) *(.init.text)
|
*(.init.literal) *(.init.text)
|
||||||
_einittext = .;
|
_einittext = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "drivers/macintosh/Kconfig"
|
source "drivers/macintosh/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
@ -44,6 +44,8 @@ source "drivers/i2c/Kconfig"
|
||||||
|
|
||||||
source "drivers/w1/Kconfig"
|
source "drivers/w1/Kconfig"
|
||||||
|
|
||||||
|
source "drivers/hwmon/Kconfig"
|
||||||
|
|
||||||
source "drivers/misc/Kconfig"
|
source "drivers/misc/Kconfig"
|
||||||
|
|
||||||
source "drivers/media/Kconfig"
|
source "drivers/media/Kconfig"
|
||||||
|
|
|
@ -52,6 +52,7 @@ obj-$(CONFIG_INPUT) += input/
|
||||||
obj-$(CONFIG_I2O) += message/
|
obj-$(CONFIG_I2O) += message/
|
||||||
obj-$(CONFIG_I2C) += i2c/
|
obj-$(CONFIG_I2C) += i2c/
|
||||||
obj-$(CONFIG_W1) += w1/
|
obj-$(CONFIG_W1) += w1/
|
||||||
|
obj-$(CONFIG_HWMON) += hwmon/
|
||||||
obj-$(CONFIG_PHONE) += telephony/
|
obj-$(CONFIG_PHONE) += telephony/
|
||||||
obj-$(CONFIG_MD) += md/
|
obj-$(CONFIG_MD) += md/
|
||||||
obj-$(CONFIG_BT) += bluetooth/
|
obj-$(CONFIG_BT) += bluetooth/
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
menu "ACPI (Advanced Configuration and Power Interface) Support"
|
menu "ACPI (Advanced Configuration and Power Interface) Support"
|
||||||
|
depends on PM
|
||||||
depends on !X86_VISWS
|
depends on !X86_VISWS
|
||||||
depends on !IA64_HP_SIM
|
depends on !IA64_HP_SIM
|
||||||
depends on IA64 || X86
|
depends on IA64 || X86
|
||||||
|
@ -48,7 +49,6 @@ config ACPI_BOOT
|
||||||
|
|
||||||
config ACPI_INTERPRETER
|
config ACPI_INTERPRETER
|
||||||
bool
|
bool
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default y
|
default y
|
||||||
|
|
||||||
if ACPI_INTERPRETER
|
if ACPI_INTERPRETER
|
||||||
|
@ -79,6 +79,14 @@ config ACPI_SLEEP_PROC_FS
|
||||||
depends on ACPI_SLEEP && PROC_FS
|
depends on ACPI_SLEEP && PROC_FS
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config ACPI_SLEEP_PROC_SLEEP
|
||||||
|
bool "/proc/acpi/sleep (deprecated)"
|
||||||
|
depends on ACPI_SLEEP_PROC_FS
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
Create /proc/acpi/sleep
|
||||||
|
Deprecated by /sys/power/state
|
||||||
|
|
||||||
config ACPI_AC
|
config ACPI_AC
|
||||||
tristate "AC Adapter"
|
tristate "AC Adapter"
|
||||||
depends on X86
|
depends on X86
|
||||||
|
@ -99,7 +107,6 @@ config ACPI_BATTERY
|
||||||
|
|
||||||
config ACPI_BUTTON
|
config ACPI_BUTTON
|
||||||
tristate "Button"
|
tristate "Button"
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default m
|
default m
|
||||||
help
|
help
|
||||||
This driver registers for events based on buttons, such as the
|
This driver registers for events based on buttons, such as the
|
||||||
|
@ -111,7 +118,6 @@ config ACPI_BUTTON
|
||||||
config ACPI_VIDEO
|
config ACPI_VIDEO
|
||||||
tristate "Video"
|
tristate "Video"
|
||||||
depends on EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default m
|
default m
|
||||||
help
|
help
|
||||||
This driver implement the ACPI Extensions For Display Adapters
|
This driver implement the ACPI Extensions For Display Adapters
|
||||||
|
@ -122,9 +128,17 @@ config ACPI_VIDEO
|
||||||
Note that this is an ref. implementation only. It may or may not work
|
Note that this is an ref. implementation only. It may or may not work
|
||||||
for your integrated video device.
|
for your integrated video device.
|
||||||
|
|
||||||
|
config ACPI_HOTKEY
|
||||||
|
tristate "Generic Hotkey"
|
||||||
|
depends on ACPI_INTERPRETER
|
||||||
|
depends on EXPERIMENTAL
|
||||||
|
depends on !IA64_SGI_SN
|
||||||
|
default m
|
||||||
|
help
|
||||||
|
ACPI generic hotkey
|
||||||
|
|
||||||
config ACPI_FAN
|
config ACPI_FAN
|
||||||
tristate "Fan"
|
tristate "Fan"
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default m
|
default m
|
||||||
help
|
help
|
||||||
This driver adds support for ACPI fan devices, allowing user-mode
|
This driver adds support for ACPI fan devices, allowing user-mode
|
||||||
|
@ -132,7 +146,6 @@ config ACPI_FAN
|
||||||
|
|
||||||
config ACPI_PROCESSOR
|
config ACPI_PROCESSOR
|
||||||
tristate "Processor"
|
tristate "Processor"
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default m
|
default m
|
||||||
help
|
help
|
||||||
This driver installs ACPI as the idle handler for Linux, and uses
|
This driver installs ACPI as the idle handler for Linux, and uses
|
||||||
|
@ -142,7 +155,6 @@ config ACPI_PROCESSOR
|
||||||
config ACPI_HOTPLUG_CPU
|
config ACPI_HOTPLUG_CPU
|
||||||
bool "Processor Hotplug (EXPERIMENTAL)"
|
bool "Processor Hotplug (EXPERIMENTAL)"
|
||||||
depends on ACPI_PROCESSOR && HOTPLUG_CPU && EXPERIMENTAL
|
depends on ACPI_PROCESSOR && HOTPLUG_CPU && EXPERIMENTAL
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
select ACPI_CONTAINER
|
select ACPI_CONTAINER
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
|
@ -262,7 +274,6 @@ config ACPI_BLACKLIST_YEAR
|
||||||
|
|
||||||
config ACPI_DEBUG
|
config ACPI_DEBUG
|
||||||
bool "Debug Statements"
|
bool "Debug Statements"
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
The ACPI driver can optionally report errors with a great deal
|
The ACPI driver can optionally report errors with a great deal
|
||||||
|
@ -271,7 +282,6 @@ config ACPI_DEBUG
|
||||||
|
|
||||||
config ACPI_BUS
|
config ACPI_BUS
|
||||||
bool
|
bool
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ACPI_EC
|
config ACPI_EC
|
||||||
|
@ -285,17 +295,14 @@ config ACPI_EC
|
||||||
|
|
||||||
config ACPI_POWER
|
config ACPI_POWER
|
||||||
bool
|
bool
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ACPI_PCI
|
config ACPI_PCI
|
||||||
bool
|
bool
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default PCI
|
default PCI
|
||||||
|
|
||||||
config ACPI_SYSTEM
|
config ACPI_SYSTEM
|
||||||
bool
|
bool
|
||||||
depends on !IA64_SGI_SN
|
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
This driver will enable your system to shut down using ACPI, and
|
This driver will enable your system to shut down using ACPI, and
|
||||||
|
@ -327,8 +334,13 @@ config ACPI_CONTAINER
|
||||||
depends on EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
|
default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
|
||||||
---help---
|
---help---
|
||||||
This is the ACPI generic container driver which supports
|
This allows _physical_ insertion and removal of CPUs and memory.
|
||||||
ACPI0004, PNP0A05 and PNP0A06 devices
|
This can be useful, for example, on NUMA machines that support
|
||||||
|
ACPI based physical hotplug of nodes, or non-NUMA machines that
|
||||||
|
support physical cpu/memory hot-plug.
|
||||||
|
|
||||||
|
If one selects "m", this driver can be loaded with
|
||||||
|
"modprobe acpi_container".
|
||||||
|
|
||||||
config ACPI_HOTPLUG_MEMORY
|
config ACPI_HOTPLUG_MEMORY
|
||||||
tristate "Memory Hotplug"
|
tristate "Memory Hotplug"
|
||||||
|
|
|
@ -36,13 +36,14 @@ processor-objs += processor_perflib.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
obj-$(CONFIG_ACPI_BUS) += sleep/
|
obj-$(CONFIG_ACPI_BUS) += sleep/
|
||||||
obj-$(CONFIG_ACPI_BUS) += bus.o
|
obj-$(CONFIG_ACPI_BUS) += bus.o glue.o
|
||||||
obj-$(CONFIG_ACPI_AC) += ac.o
|
obj-$(CONFIG_ACPI_AC) += ac.o
|
||||||
obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
||||||
obj-$(CONFIG_ACPI_BUTTON) += button.o
|
obj-$(CONFIG_ACPI_BUTTON) += button.o
|
||||||
obj-$(CONFIG_ACPI_EC) += ec.o
|
obj-$(CONFIG_ACPI_EC) += ec.o
|
||||||
obj-$(CONFIG_ACPI_FAN) += fan.o
|
obj-$(CONFIG_ACPI_FAN) += fan.o
|
||||||
obj-$(CONFIG_ACPI_VIDEO) += video.o
|
obj-$(CONFIG_ACPI_VIDEO) += video.o
|
||||||
|
obj-$(CONFIG_ACPI_HOTKEY) += hotkey.o
|
||||||
obj-$(CONFIG_ACPI_PCI) += pci_root.o pci_link.o pci_irq.o pci_bind.o
|
obj-$(CONFIG_ACPI_PCI) += pci_root.o pci_link.o pci_irq.o pci_bind.o
|
||||||
obj-$(CONFIG_ACPI_POWER) += power.o
|
obj-$(CONFIG_ACPI_POWER) += power.o
|
||||||
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
|
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
|
||||||
|
|
|
@ -1204,6 +1204,10 @@ static int __init asus_acpi_init(void)
|
||||||
if (acpi_disabled)
|
if (acpi_disabled)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (!acpi_specific_hotkey_enabled){
|
||||||
|
printk(KERN_ERR "Using generic hotkey driver\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
asus_proc_dir = proc_mkdir(PROC_ASUS, acpi_root_dir);
|
asus_proc_dir = proc_mkdir(PROC_ASUS, acpi_root_dir);
|
||||||
if (!asus_proc_dir) {
|
if (!asus_proc_dir) {
|
||||||
printk(KERN_ERR "Asus ACPI: Unable to create /proc entry\n");
|
printk(KERN_ERR "Asus ACPI: Unable to create /proc entry\n");
|
||||||
|
|
|
@ -212,6 +212,12 @@ acpi_bus_set_power (
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_WARN, "Device is not power manageable\n"));
|
ACPI_DEBUG_PRINT((ACPI_DB_WARN, "Device is not power manageable\n"));
|
||||||
return_VALUE(-ENODEV);
|
return_VALUE(-ENODEV);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Get device's current power state if it's unknown
|
||||||
|
* This means device power state isn't initialized or previous setting failed
|
||||||
|
*/
|
||||||
|
if (device->power.state == ACPI_STATE_UNKNOWN)
|
||||||
|
acpi_bus_get_power(device->handle, &device->power.state);
|
||||||
if (state == device->power.state) {
|
if (state == device->power.state) {
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n", state));
|
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n", state));
|
||||||
return_VALUE(0);
|
return_VALUE(0);
|
||||||
|
@ -231,7 +237,7 @@ acpi_bus_set_power (
|
||||||
* On transitions to a high-powered state we first apply power (via
|
* On transitions to a high-powered state we first apply power (via
|
||||||
* power resources) then evalute _PSx. Conversly for transitions to
|
* power resources) then evalute _PSx. Conversly for transitions to
|
||||||
* a lower-powered state.
|
* a lower-powered state.
|
||||||
*/
|
*/
|
||||||
if (state < device->power.state) {
|
if (state < device->power.state) {
|
||||||
if (device->power.flags.power_resources) {
|
if (device->power.flags.power_resources) {
|
||||||
result = acpi_power_transition(device, state);
|
result = acpi_power_transition(device, state);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue