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:
|
||||
* Maxim max6874, max6875
|
||||
Prefixes: 'max6875'
|
||||
* Maxim MAX6874, MAX6875
|
||||
Prefix: 'max6875'
|
||||
Addresses scanned: 0x50, 0x52
|
||||
Datasheets:
|
||||
Datasheet:
|
||||
http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf
|
||||
|
||||
Author: Ben Gardner <bgardner@wabtec.com>
|
||||
|
@ -23,14 +23,26 @@ Module Parameters
|
|||
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 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 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.
|
||||
|
||||
|
||||
|
|
|
@ -14,9 +14,12 @@ C example
|
|||
=========
|
||||
|
||||
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>.
|
||||
Yes, I know, you should never include kernel header files, but until glibc
|
||||
knows about i2c, there is not much choice.
|
||||
first thing to do is "#include <linux/i2c-dev.h>". Please note that
|
||||
there are two files named "i2c-dev.h" out there, one is distributed
|
||||
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
|
||||
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
|
||||
(see also i2c-dev.h and i2c.h):
|
||||
(see also i2c-dev.h):
|
||||
|
||||
ioctl(file,I2C_SLAVE,long addr)
|
||||
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)
|
||||
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.
|
||||
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 */
|
||||
int nmsgs; /* number of messages to exchange */
|
||||
|
|
|
@ -27,7 +27,6 @@ address.
|
|||
static struct i2c_driver foo_driver = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "Foo version 2.3 driver",
|
||||
.id = I2C_DRIVERID_FOO, /* from i2c-id.h, optional */
|
||||
.flags = I2C_DF_NOTIFY,
|
||||
.attach_adapter = &foo_attach_adapter,
|
||||
.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
|
||||
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
|
||||
means that your driver will be notified when new adapters are found.
|
||||
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-64 IA-64 architecture 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.
|
||||
ISDN Appropriate ISDN 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:
|
||||
|
||||
* 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
|
||||
kernelspace. See 'devicetable.txt' for details.
|
||||
|
||||
|
|
|
@ -297,6 +297,7 @@ Vendor ID Product ID
|
|||
0x0c45 0x602a
|
||||
0x0c45 0x602b
|
||||
0x0c45 0x602c
|
||||
0x0c45 0x602d
|
||||
0x0c45 0x6030
|
||||
0x0c45 0x6080
|
||||
0x0c45 0x6082
|
||||
|
@ -333,6 +334,7 @@ Model Manufacturer
|
|||
----- ------------
|
||||
HV7131D Hynix Semiconductor, Inc.
|
||||
MI-0343 Micron Technology, Inc.
|
||||
OV7630 OmniVision Technologies, Inc.
|
||||
PAS106B PixArt Imaging, Inc.
|
||||
PAS202BCB PixArt Imaging, Inc.
|
||||
TAS5110C1B Taiwan Advanced Sensor Corporation
|
||||
|
@ -470,9 +472,11 @@ order):
|
|||
- Luca Capello for the donation of a webcam;
|
||||
- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the
|
||||
donation of a webcam;
|
||||
- Jon Hollstrom for the donation of a webcam;
|
||||
- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB
|
||||
image sensor;
|
||||
- Stefano Mozzi, who donated 45 EU;
|
||||
- Andrew Pearce for the donation of a webcam;
|
||||
- Bertrik Sikken, who reverse-engineered and documented the Huffman compression
|
||||
algorithm used in the SN9C10x controllers and implemented the first decoder;
|
||||
- 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.
|
||||
- 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.
|
||||
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 tag. The usbmon may not always capture data, even if length is nonzero.
|
||||
Only if tag is '=', the data words are present.
|
||||
|
@ -125,25 +132,31 @@ class ParsedLine {
|
|||
String data_str = st.nextToken();
|
||||
int len = data_str.length() / 2;
|
||||
int i;
|
||||
int b; // byte is signed, apparently?! XXX
|
||||
for (i = 0; i < len; i++) {
|
||||
data[data_len] = Byte.parseByte(
|
||||
data_str.substring(i*2, i*2 + 2),
|
||||
16);
|
||||
// data[data_len] = Byte.parseByte(
|
||||
// data_str.substring(i*2, i*2 + 2),
|
||||
// 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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
This format is obviously deficient. For example, the setup packet for control
|
||||
transfers is not delivered. This will change in the future.
|
||||
This format may be changed in the future.
|
||||
|
||||
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 <
|
||||
d74ff9a0 2640288202 C Ci:001:00 0 4 = 01010100
|
||||
d5ea89a0 3575914555 S Ci:001:00 s a3 00 0000 0003 0004 4 <
|
||||
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
|
||||
to a storage device at address 5:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
card=0 - *** UNKNOWN/GENERIC ***
|
||||
card=0 - *** UNKNOWN/GENERIC ***
|
||||
card=1 - MIRO PCTV
|
||||
card=2 - Hauppauge (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=27 - PixelView PlayTV Ultra Pro (Stereo)
|
||||
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]
|
||||
2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
|
||||
3 -> LifeView FlyVIDEO2000 [5168:0138]
|
||||
4 -> EMPRESS [1131:6752]
|
||||
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]
|
||||
8 -> Terratec Cinergy 400 TV [153B:1142]
|
||||
9 -> Medion 5044
|
||||
|
@ -34,6 +34,7 @@
|
|||
33 -> AVerMedia DVD EZMaker [1461:10ff]
|
||||
34 -> Noval Prime TV 7133
|
||||
35 -> AverMedia AverTV Studio 305 [1461:2115]
|
||||
36 -> UPMOST PURPLE TV [12ab:0800]
|
||||
37 -> Items MuchTV Plus / IT-005
|
||||
38 -> Terratec Cinergy 200 TV [153B:1152]
|
||||
39 -> LifeView FlyTV Platinum Mini [5168:0212]
|
||||
|
@ -43,20 +44,21 @@
|
|||
43 -> :Zolid Xpert TV7134
|
||||
44 -> Empire PCI TV-Radio LE
|
||||
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]
|
||||
48 -> Terratec Cinergy 600 TV MK3 [153B:1158]
|
||||
49 -> Compro VideoMate Gold+ Pal [185b:c200]
|
||||
50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d]
|
||||
51 -> ProVideo PV952 [1540:9524]
|
||||
52 -> AverMedia AverTV/305 [1461:2108]
|
||||
53 -> ASUS TV-FM 7135 [1043:4845]
|
||||
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]
|
||||
57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
|
||||
58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370]
|
||||
59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
|
||||
60 -> Typhoon DVB-T Duo Digital/Analog Cardbus
|
||||
61 -> Philips TOUGH DVB-T reference design
|
||||
60 -> Typhoon DVB-T Duo Digital/Analog Cardbus [4e42:0502]
|
||||
61 -> Philips TOUGH DVB-T reference design [1131:2004]
|
||||
62 -> Compro VideoMate TV Gold+II
|
||||
63 -> Kworld Xpert TV PVR7134
|
||||
|
|
|
@ -56,9 +56,9 @@ tuner=54 - tda8290+75
|
|||
tuner=55 - LG PAL (TAPE series)
|
||||
tuner=56 - Philips PAL/SECAM multi (FQ1216AME 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=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=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 ...
|
||||
|
||||
|
||||
Unsupported Cards:
|
||||
Unsupported Cards:
|
||||
------------------
|
||||
|
||||
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
|
||||
------------------
|
||||
|
||||
- Bt848
|
||||
some (all??) come with 2 crystals for PAL/SECAM and NTSC
|
||||
- Bt848
|
||||
some (all??) come with 2 crystals for PAL/SECAM and NTSC
|
||||
- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
|
||||
- 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???)
|
||||
- 1 tuner, 1 composite and 1 S-VHS input
|
||||
- tuner type is autodetected
|
||||
|
@ -70,7 +70,7 @@ in 1997!
|
|||
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.
|
||||
Note that even cards with same model numbers have (depending on the revision)
|
||||
different chips on it.
|
||||
|
@ -80,22 +80,22 @@ different chips on it.
|
|||
- PAL, SECAM, NTSC or tuner with or without Radio support
|
||||
|
||||
e.g.:
|
||||
PAL:
|
||||
PAL:
|
||||
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
|
||||
|
||||
|
||||
NTSC:
|
||||
TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
|
||||
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)
|
||||
SAA5246 (I2C 0x22) is supported
|
||||
- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
|
||||
- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
|
||||
with configuration information
|
||||
I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
|
||||
- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
|
||||
- 14052B: mux for selection of sound source
|
||||
- sound decoder: TDA9800, MSP34xx (stereo cards)
|
||||
- sound decoder: TDA9800, MSP34xx (stereo cards)
|
||||
|
||||
|
||||
Askey CPH-Series
|
||||
|
@ -108,17 +108,17 @@ Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink)
|
|||
CPH05x: BT878 with FM
|
||||
CPH06x: BT878 (w/o FM)
|
||||
CPH07x: BT878 capture only
|
||||
|
||||
|
||||
TV standards:
|
||||
CPH0x0: NTSC-M/M
|
||||
CPH0x1: PAL-B/G
|
||||
CPH0x2: PAL-I/I
|
||||
CPH0x3: PAL-D/K
|
||||
CPH0x4: SECAM-L/L
|
||||
CPH0x5: SECAM-B/G
|
||||
CPH0x6: SECAM-D/K
|
||||
CPH0x7: PAL-N/N
|
||||
CPH0x8: PAL-B/H
|
||||
CPH0x4: SECAM-L/L
|
||||
CPH0x5: SECAM-B/G
|
||||
CPH0x6: SECAM-D/K
|
||||
CPH0x7: PAL-N/N
|
||||
CPH0x8: PAL-B/H
|
||||
CPH0x9: PAL-M/M
|
||||
|
||||
CPH03x was often sold as "TV capturer".
|
||||
|
@ -174,7 +174,7 @@ Lifeview Flyvideo Series:
|
|||
"The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
|
||||
Their Bt8x8 cards are listed as discontinued.
|
||||
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)
|
||||
this name is re-used for LR50 Rev.W.
|
||||
|
@ -235,12 +235,12 @@ Prolink
|
|||
Multimedia TV packages (card + software pack):
|
||||
PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software
|
||||
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 PowerStudio PAK - (Model: PV-M3600 REV 4E)
|
||||
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 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
|
||||
DTV2000 DVB-S = Twinhan VP-1020
|
||||
|
||||
|
||||
Video Conferencing:
|
||||
PixelView Meeting PAK - (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?
|
||||
|
||||
Provideo
|
||||
Provideo
|
||||
--------
|
||||
PV951 or PV-951 (also are sold as:
|
||||
Boeder TV-FM Video Capture Card
|
||||
|
@ -353,7 +353,7 @@ AVerMedia
|
|||
AVerTV
|
||||
AVerTV Stereo
|
||||
AVerTV Studio (w/FM)
|
||||
AVerMedia TV98 with Remote
|
||||
AVerMedia TV98 with Remote
|
||||
AVerMedia TV/FM98 Stereo
|
||||
AVerMedia TVCAM98
|
||||
TVCapture (Bt848)
|
||||
|
@ -373,7 +373,7 @@ AVerMedia
|
|||
(1) Daughterboard MB68-A with TDA9820T and TDA9840T
|
||||
(2) Sony NE41S soldered (stereo sound?)
|
||||
(3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz
|
||||
|
||||
|
||||
US site has different drivers for (as of 09/2002):
|
||||
EZ Capture/InterCam PCI (BT-848 chip)
|
||||
EZ Capture/InterCam PCI (BT-878 chip)
|
||||
|
@ -437,7 +437,7 @@ Terratec
|
|||
Terra TValueRadio, "LR102 Rev.C" 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
|
||||
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
|
||||
Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
|
||||
Terra TValue New Revision "LR102 Rec.C"
|
||||
|
@ -528,7 +528,7 @@ Koutech
|
|||
KW-606RSF
|
||||
KW-607A (capture only)
|
||||
KW-608 (Zoran capture only)
|
||||
|
||||
|
||||
IODATA (jp)
|
||||
------
|
||||
GV-BCTV/PCI
|
||||
|
@ -542,15 +542,15 @@ Canopus (jp)
|
|||
-------
|
||||
WinDVR = Kworld "KW-TVL878RF"
|
||||
|
||||
www.sigmacom.co.kr
|
||||
www.sigmacom.co.kr
|
||||
------------------
|
||||
Sigma Cyber TV II
|
||||
Sigma Cyber TV II
|
||||
|
||||
www.sasem.co.kr
|
||||
---------------
|
||||
Litte OnAir TV
|
||||
|
||||
hama
|
||||
hama
|
||||
----
|
||||
TV/Radio-Tuner Card, PCI (Model 44677) = CPH051
|
||||
|
||||
|
@ -638,7 +638,7 @@ Media-Surfer (esc-kathrein.de)
|
|||
|
||||
Jetway (www.jetway.com.tw)
|
||||
--------------------------
|
||||
JW-TV 878M
|
||||
JW-TV 878M
|
||||
JW-TV 878 = KWorld KW-TV878RF
|
||||
|
||||
Galaxis
|
||||
|
@ -715,7 +715,7 @@ Hauppauge
|
|||
809 MyVideo
|
||||
872 MyTV2Go FM
|
||||
|
||||
|
||||
|
||||
546 WinTV Nova-S CI
|
||||
543 WinTV Nova
|
||||
907 Nova-S USB
|
||||
|
@ -739,7 +739,7 @@ Hauppauge
|
|||
832 MyTV2Go
|
||||
869 MyTV2Go-FM
|
||||
805 MyVideo (USB)
|
||||
|
||||
|
||||
|
||||
Matrix-Vision
|
||||
-------------
|
||||
|
@ -764,7 +764,7 @@ Gallant (www.gallantcom.com) www.minton.com.tw
|
|||
Intervision IV-550 (bt8x8)
|
||||
Intervision IV-100 (zoran)
|
||||
Intervision IV-1000 (bt8x8)
|
||||
|
||||
|
||||
Asonic (www.asonic.com.cn) (website down)
|
||||
-----------------------------------------
|
||||
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-02 (JTT TV) "TV watchmate pro" (bt848)
|
||||
JTT-02 (JTT TV) "TV watchmate pro" (bt848)
|
||||
|
||||
ADS www.adstech.com
|
||||
-------------------
|
||||
Channel Surfer TV ( CHX-950 )
|
||||
Channel Surfer TV ( CHX-950 )
|
||||
Channel Surfer TV+FM ( CHX-960FM )
|
||||
|
||||
AVEC www.prochips.com
|
||||
|
@ -874,7 +874,7 @@ www.ids-imaging.de
|
|||
------------------
|
||||
Falcon Series (capture only)
|
||||
In USA: http://www.theimagingsource.com/
|
||||
DFG/LC1
|
||||
DFG/LC1
|
||||
|
||||
www.sknet-web.co.jp
|
||||
-------------------
|
||||
|
@ -890,7 +890,7 @@ Cybertainment
|
|||
CyberMail Xtreme
|
||||
These are Flyvideo
|
||||
|
||||
VCR (http://www.vcrinc.com/)
|
||||
VCR (http://www.vcrinc.com/)
|
||||
---
|
||||
Video Catcher 16
|
||||
|
||||
|
@ -920,7 +920,7 @@ Sdisilk www.sdisilk.com/
|
|||
SDI Silk 200 SDI Input Card
|
||||
|
||||
www.euresys.com
|
||||
PICOLO series
|
||||
PICOLO series
|
||||
|
||||
PMC/Pace
|
||||
www.pacecom.co.uk website closed
|
||||
|
|
|
@ -34,4 +34,8 @@ MO_OUTPUT_FORMAT (0x310164)
|
|||
2: HACTEXT
|
||||
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
|
||||
P: Jean Tourrilhes
|
||||
L: irda-users@lists.sourceforge.net
|
||||
L: irda-users@lists.sourceforge.net (subscribers-only)
|
||||
W: http://irda.sourceforge.net/
|
||||
S: Maintained
|
||||
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
|||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 13
|
||||
EXTRAVERSION =-rc2
|
||||
EXTRAVERSION =-rc3
|
||||
NAME=Woozy Numbat
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
|
|
@ -596,6 +596,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -700,6 +700,8 @@ config APM
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
menu "Device Drivers"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
@ -732,7 +734,7 @@ source "drivers/ieee1394/Kconfig"
|
|||
|
||||
source "drivers/message/i2o/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
@ -744,6 +746,8 @@ source "drivers/char/Kconfig"
|
|||
|
||||
source "drivers/i2c/Kconfig"
|
||||
|
||||
source "drivers/hwmon/Kconfig"
|
||||
|
||||
#source "drivers/l3/Kconfig"
|
||||
|
||||
source "drivers/misc/Kconfig"
|
||||
|
|
|
@ -183,6 +183,8 @@ source "mm/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "drivers/parport/Kconfig"
|
||||
|
@ -193,7 +195,7 @@ source "drivers/block/Kconfig"
|
|||
|
||||
source "drivers/md/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/ide/Kconfig"
|
||||
|
||||
|
|
|
@ -122,6 +122,8 @@ source arch/cris/arch-v10/Kconfig
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
# bring in ETRAX built-in drivers
|
||||
menu "Drivers for built-in interfaces"
|
||||
source arch/cris/arch-v10/drivers/Kconfig
|
||||
|
@ -149,7 +151,7 @@ source "drivers/ieee1394/Kconfig"
|
|||
|
||||
source "drivers/message/i2o/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -346,6 +346,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/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
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "drivers/mtd/Kconfig"
|
||||
|
@ -65,7 +67,7 @@ source "drivers/ide/Kconfig"
|
|||
|
||||
source "arch/h8300/Kconfig.ide"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
#
|
||||
# input - input/joystick depends on it. As does USB.
|
||||
|
@ -179,6 +181,8 @@ source "drivers/serial/Kconfig"
|
|||
|
||||
source "drivers/i2c/Kconfig"
|
||||
|
||||
source "drivers/hwmon/Kconfig"
|
||||
|
||||
source "drivers/usb/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -1285,6 +1285,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -2,3 +2,7 @@ obj-$(CONFIG_ACPI_BOOT) := boot.o
|
|||
obj-$(CONFIG_X86_IO_APIC) += earlyquirk.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 $0x0e00 + 'i', %fs:(0x12)
|
||||
|
||||
# need a gdt
|
||||
lgdt real_save_gdt - wakeup_code
|
||||
# need a gdt -- use lgdtl to force 32-bit operands, in case
|
||||
# the GDT is located past 16 megabytes.
|
||||
lgdtl real_save_gdt - wakeup_code
|
||||
|
||||
movl real_save_cr0 - wakeup_code, %eax
|
||||
movl %eax, %cr0
|
||||
|
|
|
@ -375,7 +375,7 @@ static int centrino_cpu_init_acpi(struct cpufreq_policy *policy)
|
|||
arg0.buffer.pointer = (u8 *) arg0_buf;
|
||||
arg0_buf[0] = ACPI_PDC_REVISION_ID;
|
||||
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;
|
||||
|
||||
|
|
|
@ -291,3 +291,6 @@ ENTRY(sys_call_table)
|
|||
.long sys_keyctl
|
||||
.long sys_ioprio_set
|
||||
.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);
|
||||
|
||||
|
||||
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
|
||||
* IRQ's, we try to avoid assigning it to PCI devices.
|
||||
*/
|
||||
if (irq < 16)
|
||||
pirq_penalty[irq] += 100;
|
||||
if (irq < 16) {
|
||||
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
|
||||
if (!acpi_noirq)
|
||||
acpi_penalize_isa_irq(irq);
|
||||
acpi_penalize_isa_irq(irq, active);
|
||||
else
|
||||
#endif
|
||||
pirq_penalize_isa_irq(irq);
|
||||
pirq_penalize_isa_irq(irq, active);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
void __init pcibios_penalize_isa_irq(int irq) {}
|
||||
void __init pcibios_penalize_isa_irq(int irq, int active) {}
|
||||
|
||||
|
||||
unsigned int pci_bus0, pci_bus1;
|
||||
|
|
|
@ -423,6 +423,8 @@ endmenu
|
|||
|
||||
endif
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* Copyright (C) 2001 Jenna Hall <jenna.s.hall@intel.com>
|
||||
* Copyright (C) 2001 Takayoshi Kochi <t-kochi@bq.jp.nec.com>
|
||||
* 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_legacy_devices;
|
||||
|
||||
static unsigned int __initdata acpi_madt_rev;
|
||||
|
||||
unsigned int acpi_cpei_override;
|
||||
unsigned int acpi_cpei_phys_cpuid;
|
||||
|
||||
#define MAX_SAPICS 256
|
||||
u16 ia64_acpiid_to_sapicid[MAX_SAPICS] =
|
||||
{ [0 ... MAX_SAPICS - 1] = -1 };
|
||||
|
@ -265,10 +271,56 @@ acpi_parse_plat_int_src (
|
|||
(plintsrc->flags.trigger == 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
acpi_parse_int_src_ovr (
|
||||
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_rev = acpi_madt->header.revision;
|
||||
|
||||
/* remember the value for reference after free_initmem() */
|
||||
#ifdef CONFIG_ITANIUM
|
||||
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
|
||||
|
||||
static int cpe_vector = -1;
|
||||
int cpe_vector = -1;
|
||||
|
||||
static irqreturn_t
|
||||
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
|
||||
default_idle (void)
|
||||
{
|
||||
local_irq_enable();
|
||||
while (!need_resched())
|
||||
if (can_do_pal_halt)
|
||||
safe_halt();
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
#include <linux/serial_core.h>
|
||||
#include <linux/efi.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/platform.h>
|
||||
#include <linux/pm.h>
|
||||
|
||||
#include <asm/ia32.h>
|
||||
#include <asm/machvec.h>
|
||||
|
@ -783,6 +785,7 @@ cpu_init (void)
|
|||
/* size of physical stacked register partition plus 8 bytes: */
|
||||
__get_cpu_var(ia64_phys_stacked_size_p8) = num_phys_stacked*8 + 8;
|
||||
platform_cpu_init();
|
||||
pm_idle = default_idle;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -36,6 +36,13 @@ int arch_register_cpu(int num)
|
|||
parent = &sysfs_nodes[cpu_to_node(num)];
|
||||
#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);
|
||||
}
|
||||
|
||||
|
|
|
@ -359,6 +359,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -450,6 +450,8 @@ source "drivers/zorro/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
menu "Character devices"
|
||||
|
|
|
@ -575,6 +575,8 @@ config PM
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -1640,6 +1640,8 @@ config PM
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -190,6 +190,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -1355,6 +1355,8 @@ config PIN_TLB
|
|||
depends on ADVANCED_OPTIONS && 8xx
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/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 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)
|
||||
{
|
||||
if (ppc_md.machine_shutdown)
|
||||
|
|
|
@ -429,6 +429,8 @@ config CMDLINE
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -465,6 +465,8 @@ config KEXEC
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
config PCMCIA
|
||||
bool
|
||||
default n
|
||||
|
@ -475,7 +477,7 @@ source "drivers/scsi/Kconfig"
|
|||
|
||||
source "drivers/s390/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
||||
|
|
|
@ -784,6 +784,8 @@ config EMBEDDED_RAMDISK_IMAGE
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -268,6 +268,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -268,6 +268,8 @@ source "mm/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
if !SUN4
|
||||
|
|
|
@ -525,6 +525,8 @@ source "mm/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "drivers/video/Kconfig"
|
||||
|
@ -551,7 +553,7 @@ endif
|
|||
|
||||
source "drivers/ieee1394/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
@ -647,6 +649,8 @@ source "drivers/input/Kconfig"
|
|||
|
||||
source "drivers/i2c/Kconfig"
|
||||
|
||||
source "drivers/hwmon/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
||||
source "drivers/media/Kconfig"
|
||||
|
|
|
@ -45,8 +45,8 @@ extern void calibrate_delay(void);
|
|||
/* Please don't make this stuff initdata!!! --DaveM */
|
||||
static unsigned char boot_cpu_id;
|
||||
|
||||
cpumask_t cpu_online_map = CPU_MASK_NONE __read_mostly;
|
||||
cpumask_t phys_cpu_present_map = CPU_MASK_NONE __read_mostly;
|
||||
cpumask_t cpu_online_map __read_mostly = CPU_MASK_NONE;
|
||||
cpumask_t phys_cpu_present_map __read_mostly = CPU_MASK_NONE;
|
||||
static cpumask_t smp_commenced_mask;
|
||||
static cpumask_t cpu_callout_map;
|
||||
|
||||
|
|
|
@ -275,6 +275,8 @@ endmenu
|
|||
|
||||
source "init/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "arch/um/Kconfig_char"
|
||||
|
@ -287,7 +289,7 @@ config NETDEVICES
|
|||
|
||||
source "arch/um/Kconfig_net"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
||||
|
|
|
@ -140,7 +140,8 @@ endef
|
|||
#When cleaning we don't include .config, so we don't include
|
||||
#TT or skas makefiles and don't clean skas_ptregs.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) \
|
||||
$(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os \
|
||||
|
|
|
@ -250,6 +250,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
#############################################################################
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
@ -283,7 +285,7 @@ source "drivers/ieee1394/Kconfig"
|
|||
|
||||
source "drivers/message/i2o/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -515,6 +515,8 @@ config UID16
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source drivers/Kconfig
|
||||
|
||||
source "drivers/firmware/Kconfig"
|
||||
|
|
|
@ -62,8 +62,8 @@ SECTIONS
|
|||
}
|
||||
|
||||
#define VSYSCALL_ADDR (-10*1024*1024)
|
||||
#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.cacheline_aligned) + SIZEOF(.data.cacheline_aligned) + 4095) & ~(4095))
|
||||
#define VSYSCALL_VIRT_ADDR ((ADDR(.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.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
|
||||
|
||||
#define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR)
|
||||
#define VLOAD(x) (ADDR(x) - VLOAD_OFFSET)
|
||||
|
|
|
@ -228,6 +228,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include <asm/processor.h>
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/thread_info.h>
|
||||
#include <linux/ptrace.h>
|
||||
|
|
|
@ -69,8 +69,8 @@ int sys_pipe(int __user *userfds)
|
|||
/*
|
||||
* Common code for old and new mmaps.
|
||||
*/
|
||||
long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot,
|
||||
unsigned long flags, unsigned long fd, unsigned long pgoff)
|
||||
long sys_mmap(unsigned long addr, unsigned long len, unsigned long prot,
|
||||
unsigned long flags, unsigned long fd, unsigned long pgoff)
|
||||
{
|
||||
int error = -EBADF;
|
||||
struct file * file = NULL;
|
||||
|
|
|
@ -42,7 +42,7 @@ SYSCALL(sys_mknod, 3)
|
|||
SYSCALL(sys_chmod, 2) /* 15 */
|
||||
SYSCALL(sys_lchown, 3)
|
||||
SYSCALL(sys_ni_syscall, 0)
|
||||
SYSCALL(sys_stat, 2)
|
||||
SYSCALL(sys_newstat, 2)
|
||||
SYSCALL(sys_lseek, 3)
|
||||
SYSCALL(sys_getpid, 0) /* 20 */
|
||||
SYSCALL(sys_mount, 5)
|
||||
|
@ -52,7 +52,7 @@ SYSCALL(sys_getuid, 0)
|
|||
SYSCALL(sys_ni_syscall, 1) /* 25 */
|
||||
SYSCALL(sys_ptrace, 4)
|
||||
SYSCALL(sys_ni_syscall, 1)
|
||||
SYSCALL(sys_fstat, 2)
|
||||
SYSCALL(sys_newfstat, 2)
|
||||
SYSCALL(sys_ni_syscall, 0)
|
||||
SYSCALL(sys_utime, 2) /* 30 */
|
||||
SYSCALL(sys_ni_syscall, 0)
|
||||
|
@ -108,7 +108,7 @@ SYSCALL(sys_getgroups, 2) /* 80 */
|
|||
SYSCALL(sys_setgroups, 2)
|
||||
SYSCALL(sys_ni_syscall, 0)
|
||||
SYSCALL(sys_symlink, 2)
|
||||
SYSCALL(sys_lstat, 2)
|
||||
SYSCALL(sys_newlstat, 2)
|
||||
SYSCALL(sys_readlink, 3) /* 85 */
|
||||
SYSCALL(sys_uselib, 1)
|
||||
SYSCALL(sys_swapon, 2)
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/timex.h>
|
||||
|
@ -488,8 +489,7 @@ void die(const char * str, struct pt_regs * regs, long err)
|
|||
|
||||
if (panic_on_oops) {
|
||||
printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n");
|
||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
schedule_timeout(5 * HZ);
|
||||
ssleep(5);
|
||||
panic("Fatal exception");
|
||||
}
|
||||
do_exit(err);
|
||||
|
|
|
@ -90,10 +90,10 @@ SECTIONS
|
|||
*(.literal .text)
|
||||
*(.srom.text)
|
||||
VMLINUX_SYMBOL(__sched_text_start) = .;
|
||||
*(.sched.text.literal .sched.text)
|
||||
*(.sched.literal .sched.text)
|
||||
VMLINUX_SYMBOL(__sched_text_end) = .;
|
||||
VMLINUX_SYMBOL(__lock_text_start) = .;
|
||||
*(.spinlock.text.literal .spinlock.text)
|
||||
*(.spinlock.literal .spinlock.text)
|
||||
VMLINUX_SYMBOL(__lock_text_end) = .;
|
||||
|
||||
}
|
||||
|
@ -164,7 +164,7 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text.literal) *(.init.text)
|
||||
*(.init.literal) *(.init.text)
|
||||
_einittext = .;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ source "drivers/message/i2o/Kconfig"
|
|||
|
||||
source "drivers/macintosh/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
@ -44,6 +44,8 @@ source "drivers/i2c/Kconfig"
|
|||
|
||||
source "drivers/w1/Kconfig"
|
||||
|
||||
source "drivers/hwmon/Kconfig"
|
||||
|
||||
source "drivers/misc/Kconfig"
|
||||
|
||||
source "drivers/media/Kconfig"
|
||||
|
|
|
@ -52,6 +52,7 @@ obj-$(CONFIG_INPUT) += input/
|
|||
obj-$(CONFIG_I2O) += message/
|
||||
obj-$(CONFIG_I2C) += i2c/
|
||||
obj-$(CONFIG_W1) += w1/
|
||||
obj-$(CONFIG_HWMON) += hwmon/
|
||||
obj-$(CONFIG_PHONE) += telephony/
|
||||
obj-$(CONFIG_MD) += md/
|
||||
obj-$(CONFIG_BT) += bluetooth/
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#
|
||||
|
||||
menu "ACPI (Advanced Configuration and Power Interface) Support"
|
||||
depends on PM
|
||||
depends on !X86_VISWS
|
||||
depends on !IA64_HP_SIM
|
||||
depends on IA64 || X86
|
||||
|
@ -48,7 +49,6 @@ config ACPI_BOOT
|
|||
|
||||
config ACPI_INTERPRETER
|
||||
bool
|
||||
depends on !IA64_SGI_SN
|
||||
default y
|
||||
|
||||
if ACPI_INTERPRETER
|
||||
|
@ -79,6 +79,14 @@ config ACPI_SLEEP_PROC_FS
|
|||
depends on ACPI_SLEEP && PROC_FS
|
||||
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
|
||||
tristate "AC Adapter"
|
||||
depends on X86
|
||||
|
@ -99,7 +107,6 @@ config ACPI_BATTERY
|
|||
|
||||
config ACPI_BUTTON
|
||||
tristate "Button"
|
||||
depends on !IA64_SGI_SN
|
||||
default m
|
||||
help
|
||||
This driver registers for events based on buttons, such as the
|
||||
|
@ -111,7 +118,6 @@ config ACPI_BUTTON
|
|||
config ACPI_VIDEO
|
||||
tristate "Video"
|
||||
depends on EXPERIMENTAL
|
||||
depends on !IA64_SGI_SN
|
||||
default m
|
||||
help
|
||||
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
|
||||
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
|
||||
tristate "Fan"
|
||||
depends on !IA64_SGI_SN
|
||||
default m
|
||||
help
|
||||
This driver adds support for ACPI fan devices, allowing user-mode
|
||||
|
@ -132,7 +146,6 @@ config ACPI_FAN
|
|||
|
||||
config ACPI_PROCESSOR
|
||||
tristate "Processor"
|
||||
depends on !IA64_SGI_SN
|
||||
default m
|
||||
help
|
||||
This driver installs ACPI as the idle handler for Linux, and uses
|
||||
|
@ -142,7 +155,6 @@ config ACPI_PROCESSOR
|
|||
config ACPI_HOTPLUG_CPU
|
||||
bool "Processor Hotplug (EXPERIMENTAL)"
|
||||
depends on ACPI_PROCESSOR && HOTPLUG_CPU && EXPERIMENTAL
|
||||
depends on !IA64_SGI_SN
|
||||
select ACPI_CONTAINER
|
||||
default n
|
||||
---help---
|
||||
|
@ -262,7 +274,6 @@ config ACPI_BLACKLIST_YEAR
|
|||
|
||||
config ACPI_DEBUG
|
||||
bool "Debug Statements"
|
||||
depends on !IA64_SGI_SN
|
||||
default n
|
||||
help
|
||||
The ACPI driver can optionally report errors with a great deal
|
||||
|
@ -271,7 +282,6 @@ config ACPI_DEBUG
|
|||
|
||||
config ACPI_BUS
|
||||
bool
|
||||
depends on !IA64_SGI_SN
|
||||
default y
|
||||
|
||||
config ACPI_EC
|
||||
|
@ -285,17 +295,14 @@ config ACPI_EC
|
|||
|
||||
config ACPI_POWER
|
||||
bool
|
||||
depends on !IA64_SGI_SN
|
||||
default y
|
||||
|
||||
config ACPI_PCI
|
||||
bool
|
||||
depends on !IA64_SGI_SN
|
||||
default PCI
|
||||
|
||||
config ACPI_SYSTEM
|
||||
bool
|
||||
depends on !IA64_SGI_SN
|
||||
default y
|
||||
help
|
||||
This driver will enable your system to shut down using ACPI, and
|
||||
|
@ -327,8 +334,13 @@ config ACPI_CONTAINER
|
|||
depends on EXPERIMENTAL
|
||||
default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
|
||||
---help---
|
||||
This is the ACPI generic container driver which supports
|
||||
ACPI0004, PNP0A05 and PNP0A06 devices
|
||||
This allows _physical_ insertion and removal of CPUs and memory.
|
||||
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
|
||||
tristate "Memory Hotplug"
|
||||
|
|
|
@ -36,13 +36,14 @@ processor-objs += processor_perflib.o
|
|||
endif
|
||||
|
||||
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_BATTERY) += battery.o
|
||||
obj-$(CONFIG_ACPI_BUTTON) += button.o
|
||||
obj-$(CONFIG_ACPI_EC) += ec.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_POWER) += power.o
|
||||
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
|
||||
|
|
|
@ -1204,6 +1204,10 @@ static int __init asus_acpi_init(void)
|
|||
if (acpi_disabled)
|
||||
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);
|
||||
if (!asus_proc_dir) {
|
||||
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"));
|
||||
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) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at D%d\n", state));
|
||||
return_VALUE(0);
|
||||
|
@ -231,7 +237,7 @@ acpi_bus_set_power (
|
|||
* On transitions to a high-powered state we first apply power (via
|
||||
* power resources) then evalute _PSx. Conversly for transitions to
|
||||
* a lower-powered state.
|
||||
*/
|
||||
*/
|
||||
if (state < device->power.state) {
|
||||
if (device->power.flags.power_resources) {
|
||||
result = acpi_power_transition(device, state);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue