Merge commit 'v2.6.28-rc9' into x86/apic
This commit is contained in:
commit
1ccedb7cdb
@ -42,14 +42,8 @@ IRQ.txt
|
|||||||
- description of what an IRQ is.
|
- description of what an IRQ is.
|
||||||
ManagementStyle
|
ManagementStyle
|
||||||
- how to (attempt to) manage kernel hackers.
|
- how to (attempt to) manage kernel hackers.
|
||||||
MSI-HOWTO.txt
|
|
||||||
- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
|
|
||||||
RCU/
|
RCU/
|
||||||
- directory with info on RCU (read-copy update).
|
- directory with info on RCU (read-copy update).
|
||||||
README.DAC960
|
|
||||||
- info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
|
|
||||||
README.cycladesZ
|
|
||||||
- info on Cyclades-Z firmware loading.
|
|
||||||
SAK.txt
|
SAK.txt
|
||||||
- info on Secure Attention Keys.
|
- info on Secure Attention Keys.
|
||||||
SM501.txt
|
SM501.txt
|
||||||
@ -86,20 +80,16 @@ blackfin/
|
|||||||
- directory with documentation for the Blackfin arch.
|
- directory with documentation for the Blackfin arch.
|
||||||
block/
|
block/
|
||||||
- info on the Block I/O (BIO) layer.
|
- info on the Block I/O (BIO) layer.
|
||||||
|
blockdev/
|
||||||
|
- info on block devices & drivers
|
||||||
cachetlb.txt
|
cachetlb.txt
|
||||||
- describes the cache/TLB flushing interfaces Linux uses.
|
- describes the cache/TLB flushing interfaces Linux uses.
|
||||||
cciss.txt
|
|
||||||
- info, major/minor #'s for Compaq's SMART Array Controllers.
|
|
||||||
cdrom/
|
cdrom/
|
||||||
- directory with information on the CD-ROM drivers that Linux has.
|
- directory with information on the CD-ROM drivers that Linux has.
|
||||||
computone.txt
|
|
||||||
- info on Computone Intelliport II/Plus Multiport Serial Driver.
|
|
||||||
connector/
|
connector/
|
||||||
- docs on the netlink based userspace<->kernel space communication mod.
|
- docs on the netlink based userspace<->kernel space communication mod.
|
||||||
console/
|
console/
|
||||||
- documentation on Linux console drivers.
|
- documentation on Linux console drivers.
|
||||||
cpqarray.txt
|
|
||||||
- info on using Compaq's SMART2 Intelligent Disk Array Controllers.
|
|
||||||
cpu-freq/
|
cpu-freq/
|
||||||
- info on CPU frequency and voltage scaling.
|
- info on CPU frequency and voltage scaling.
|
||||||
cpu-hotplug.txt
|
cpu-hotplug.txt
|
||||||
@ -126,8 +116,6 @@ device-mapper/
|
|||||||
- directory with info on Device Mapper.
|
- directory with info on Device Mapper.
|
||||||
devices.txt
|
devices.txt
|
||||||
- plain ASCII listing of all the nodes in /dev/ with major minor #'s.
|
- plain ASCII listing of all the nodes in /dev/ with major minor #'s.
|
||||||
digiepca.txt
|
|
||||||
- info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
|
|
||||||
dontdiff
|
dontdiff
|
||||||
- file containing a list of files that should never be diff'ed.
|
- file containing a list of files that should never be diff'ed.
|
||||||
driver-model/
|
driver-model/
|
||||||
@ -152,14 +140,10 @@ filesystems/
|
|||||||
- info on the vfs and the various filesystems that Linux supports.
|
- info on the vfs and the various filesystems that Linux supports.
|
||||||
firmware_class/
|
firmware_class/
|
||||||
- request_firmware() hotplug interface info.
|
- request_firmware() hotplug interface info.
|
||||||
floppy.txt
|
|
||||||
- notes and driver options for the floppy disk driver.
|
|
||||||
frv/
|
frv/
|
||||||
- Fujitsu FR-V Linux documentation.
|
- Fujitsu FR-V Linux documentation.
|
||||||
gpio.txt
|
gpio.txt
|
||||||
- overview of GPIO (General Purpose Input/Output) access conventions.
|
- overview of GPIO (General Purpose Input/Output) access conventions.
|
||||||
hayes-esp.txt
|
|
||||||
- info on using the Hayes ESP serial driver.
|
|
||||||
highuid.txt
|
highuid.txt
|
||||||
- notes on the change from 16 bit to 32 bit user/group IDs.
|
- notes on the change from 16 bit to 32 bit user/group IDs.
|
||||||
timers/
|
timers/
|
||||||
@ -186,8 +170,6 @@ io_ordering.txt
|
|||||||
- info on ordering I/O writes to memory-mapped addresses.
|
- info on ordering I/O writes to memory-mapped addresses.
|
||||||
ioctl/
|
ioctl/
|
||||||
- directory with documents describing various IOCTL calls.
|
- directory with documents describing various IOCTL calls.
|
||||||
ioctl-number.txt
|
|
||||||
- how to implement and register device/driver ioctl calls.
|
|
||||||
iostats.txt
|
iostats.txt
|
||||||
- info on I/O statistics Linux kernel provides.
|
- info on I/O statistics Linux kernel provides.
|
||||||
irqflags-tracing.txt
|
irqflags-tracing.txt
|
||||||
@ -250,14 +232,10 @@ mips/
|
|||||||
- directory with info about Linux on MIPS architecture.
|
- directory with info about Linux on MIPS architecture.
|
||||||
mono.txt
|
mono.txt
|
||||||
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
|
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
|
||||||
moxa-smartio
|
|
||||||
- file with info on installing/using Moxa multiport serial driver.
|
|
||||||
mutex-design.txt
|
mutex-design.txt
|
||||||
- info on the generic mutex subsystem.
|
- info on the generic mutex subsystem.
|
||||||
namespaces/
|
namespaces/
|
||||||
- directory with various information about namespaces
|
- directory with various information about namespaces
|
||||||
nbd.txt
|
|
||||||
- info on a TCP implementation of a network block device.
|
|
||||||
netlabel/
|
netlabel/
|
||||||
- directory with information on the NetLabel subsystem.
|
- directory with information on the NetLabel subsystem.
|
||||||
networking/
|
networking/
|
||||||
@ -270,8 +248,6 @@ numastat.txt
|
|||||||
- info on how to read Numa policy hit/miss statistics in sysfs.
|
- info on how to read Numa policy hit/miss statistics in sysfs.
|
||||||
oops-tracing.txt
|
oops-tracing.txt
|
||||||
- how to decode those nasty internal kernel error dump messages.
|
- how to decode those nasty internal kernel error dump messages.
|
||||||
paride.txt
|
|
||||||
- information about the parallel port IDE subsystem.
|
|
||||||
parisc/
|
parisc/
|
||||||
- directory with info on using Linux on PA-RISC architecture.
|
- directory with info on using Linux on PA-RISC architecture.
|
||||||
parport.txt
|
parport.txt
|
||||||
@ -290,20 +266,16 @@ powerpc/
|
|||||||
- directory with info on using Linux with the PowerPC.
|
- directory with info on using Linux with the PowerPC.
|
||||||
preempt-locking.txt
|
preempt-locking.txt
|
||||||
- info on locking under a preemptive kernel.
|
- info on locking under a preemptive kernel.
|
||||||
|
printk-formats.txt
|
||||||
|
- how to get printk format specifiers right
|
||||||
prio_tree.txt
|
prio_tree.txt
|
||||||
- info on radix-priority-search-tree use for indexing vmas.
|
- info on radix-priority-search-tree use for indexing vmas.
|
||||||
ramdisk.txt
|
|
||||||
- short guide on how to set up and use the RAM disk.
|
|
||||||
rbtree.txt
|
rbtree.txt
|
||||||
- info on what red-black trees are and what they are for.
|
- info on what red-black trees are and what they are for.
|
||||||
riscom8.txt
|
|
||||||
- notes on using the RISCom/8 multi-port serial driver.
|
|
||||||
robust-futex-ABI.txt
|
robust-futex-ABI.txt
|
||||||
- documentation of the robust futex ABI.
|
- documentation of the robust futex ABI.
|
||||||
robust-futexes.txt
|
robust-futexes.txt
|
||||||
- a description of what robust futexes are.
|
- a description of what robust futexes are.
|
||||||
rocket.txt
|
|
||||||
- info on the Comtrol RocketPort multiport serial driver.
|
|
||||||
rt-mutex-design.txt
|
rt-mutex-design.txt
|
||||||
- description of the RealTime mutex implementation design.
|
- description of the RealTime mutex implementation design.
|
||||||
rt-mutex.txt
|
rt-mutex.txt
|
||||||
@ -332,8 +304,6 @@ sparc/
|
|||||||
- directory with info on using Linux on Sparc architecture.
|
- directory with info on using Linux on Sparc architecture.
|
||||||
sparse.txt
|
sparse.txt
|
||||||
- info on how to obtain and use the sparse tool for typechecking.
|
- info on how to obtain and use the sparse tool for typechecking.
|
||||||
specialix.txt
|
|
||||||
- info on hardware/driver for specialix IO8+ multiport serial card.
|
|
||||||
spi/
|
spi/
|
||||||
- overview of Linux kernel Serial Peripheral Interface (SPI) support.
|
- overview of Linux kernel Serial Peripheral Interface (SPI) support.
|
||||||
spinlocks.txt
|
spinlocks.txt
|
||||||
@ -342,14 +312,10 @@ stable_api_nonsense.txt
|
|||||||
- info on why the kernel does not have a stable in-kernel api or abi.
|
- info on why the kernel does not have a stable in-kernel api or abi.
|
||||||
stable_kernel_rules.txt
|
stable_kernel_rules.txt
|
||||||
- rules and procedures for the -stable kernel releases.
|
- rules and procedures for the -stable kernel releases.
|
||||||
stallion.txt
|
|
||||||
- info on using the Stallion multiport serial driver.
|
|
||||||
svga.txt
|
svga.txt
|
||||||
- short guide on selecting video modes at boot via VGA BIOS.
|
- short guide on selecting video modes at boot via VGA BIOS.
|
||||||
sysfs-rules.txt
|
sysfs-rules.txt
|
||||||
- How not to use sysfs.
|
- How not to use sysfs.
|
||||||
sx.txt
|
|
||||||
- info on the Specialix SX/SI multiport serial driver.
|
|
||||||
sysctl/
|
sysctl/
|
||||||
- directory with info on the /proc/sys/* files.
|
- directory with info on the /proc/sys/* files.
|
||||||
sysrq.txt
|
sysrq.txt
|
||||||
@ -358,8 +324,6 @@ telephony/
|
|||||||
- directory with info on telephony (e.g. voice over IP) support.
|
- directory with info on telephony (e.g. voice over IP) support.
|
||||||
time_interpolators.txt
|
time_interpolators.txt
|
||||||
- info on time interpolators.
|
- info on time interpolators.
|
||||||
tty.txt
|
|
||||||
- guide to the locking policies of the tty layer.
|
|
||||||
uml/
|
uml/
|
||||||
- directory with information about User Mode Linux.
|
- directory with information about User Mode Linux.
|
||||||
unicode.txt
|
unicode.txt
|
||||||
|
88
Documentation/ABI/testing/sysfs-c2port
Normal file
88
Documentation/ABI/testing/sysfs-c2port
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
What: /sys/class/c2port/
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/ directory will contain files and
|
||||||
|
directories that will provide a unified interface to
|
||||||
|
the C2 port interface.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/ directory is related to X-th
|
||||||
|
C2 port into the system. Each directory will contain files to
|
||||||
|
manage and control its C2 port.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/access
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/access file enable the access
|
||||||
|
to the C2 port from the system. No commands can be sent
|
||||||
|
till this entry is set to 0.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/dev_id
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/dev_id file show the device ID
|
||||||
|
of the connected micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/flash_access
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/flash_access file enable the
|
||||||
|
access to the on-board flash of the connected micro.
|
||||||
|
No commands can be sent till this entry is set to 0.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/flash_block_size
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/flash_block_size file show
|
||||||
|
the on-board flash block size of the connected micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/flash_blocks_num
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/flash_blocks_num file show
|
||||||
|
the on-board flash blocks number of the connected micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/flash_data
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/flash_data file export
|
||||||
|
the content of the on-board flash of the connected micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/flash_erase
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/flash_erase file execute
|
||||||
|
the "erase" command on the on-board flash of the connected
|
||||||
|
micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/flash_erase
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/flash_erase file show the
|
||||||
|
on-board flash size of the connected micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/reset
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/reset file execute a "reset"
|
||||||
|
command on the connected micro.
|
||||||
|
|
||||||
|
What: /sys/class/c2port/c2portX/rev_id
|
||||||
|
Date: October 2008
|
||||||
|
Contact: Rodolfo Giometti <giometti@linux.it>
|
||||||
|
Description:
|
||||||
|
The /sys/class/c2port/c2portX/rev_id file show the revision ID
|
||||||
|
of the connected micro.
|
@ -89,7 +89,7 @@ Description:
|
|||||||
|
|
||||||
error - an interrupt that can't be accounted for above.
|
error - an interrupt that can't be accounted for above.
|
||||||
|
|
||||||
invalid: it's either a wakeup GPE or a GPE/Fixed Event that
|
invalid: it's either a GPE or a Fixed Event that
|
||||||
doesn't have an event handler.
|
doesn't have an event handler.
|
||||||
|
|
||||||
disable: the GPE/Fixed Event is valid but disabled.
|
disable: the GPE/Fixed Event is valid but disabled.
|
||||||
@ -117,30 +117,30 @@ Description:
|
|||||||
and other user space applications so that the machine won't shutdown
|
and other user space applications so that the machine won't shutdown
|
||||||
when pressing the power button.
|
when pressing the power button.
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
0
|
0 enabled
|
||||||
# press the power button for 3 times;
|
# press the power button for 3 times;
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
3
|
3 enabled
|
||||||
# echo disable > ff_pwr_btn
|
# echo disable > ff_pwr_btn
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
disable
|
3 disabled
|
||||||
# press the power button for 3 times;
|
# press the power button for 3 times;
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
disable
|
3 disabled
|
||||||
# echo enable > ff_pwr_btn
|
# echo enable > ff_pwr_btn
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
4
|
4 enabled
|
||||||
/*
|
/*
|
||||||
* this is because the status bit is set even if the enable bit is cleared,
|
* this is because the status bit is set even if the enable bit is cleared,
|
||||||
* and it triggers an ACPI fixed event when the enable bit is set again
|
* and it triggers an ACPI fixed event when the enable bit is set again
|
||||||
*/
|
*/
|
||||||
# press the power button for 3 times;
|
# press the power button for 3 times;
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
7
|
7 enabled
|
||||||
# echo disable > ff_pwr_btn
|
# echo disable > ff_pwr_btn
|
||||||
# press the power button for 3 times;
|
# press the power button for 3 times;
|
||||||
# echo clear > ff_pwr_btn /* clear the status bit */
|
# echo clear > ff_pwr_btn /* clear the status bit */
|
||||||
# echo disable > ff_pwr_btn
|
# echo disable > ff_pwr_btn
|
||||||
# cat ff_pwr_btn
|
# cat ff_pwr_btn
|
||||||
7
|
7 enabled
|
||||||
|
|
||||||
|
@ -316,12 +316,10 @@ reduce current DMA mapping usage or delay and try again later).
|
|||||||
pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
|
pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
|
||||||
int nents, int direction)
|
int nents, int direction)
|
||||||
|
|
||||||
Maps a scatter gather list from the block layer.
|
|
||||||
|
|
||||||
Returns: the number of physical segments mapped (this may be shorter
|
Returns: the number of physical segments mapped (this may be shorter
|
||||||
than <nents> passed in if the block layer determines that some
|
than <nents> passed in if some elements of the scatter/gather list are
|
||||||
elements of the scatter/gather list are physically adjacent and thus
|
physically or virtually adjacent and an IOMMU maps them with a single
|
||||||
may be mapped with a single entry).
|
entry).
|
||||||
|
|
||||||
Please note that the sg cannot be mapped again if it has been mapped once.
|
Please note that the sg cannot be mapped again if it has been mapped once.
|
||||||
The mapping process is allowed to destroy information in the sg.
|
The mapping process is allowed to destroy information in the sg.
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
00-INDEX
|
00-INDEX
|
||||||
- this file
|
- this file
|
||||||
|
MSI-HOWTO.txt
|
||||||
|
- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
|
||||||
PCI-DMA-mapping.txt
|
PCI-DMA-mapping.txt
|
||||||
- info for PCI drivers using DMA portably across all platforms
|
- info for PCI drivers using DMA portably across all platforms
|
||||||
PCIEBUS-HOWTO.txt
|
PCIEBUS-HOWTO.txt
|
||||||
|
148
Documentation/acpi/debug.txt
Normal file
148
Documentation/acpi/debug.txt
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
ACPI Debug Output
|
||||||
|
|
||||||
|
|
||||||
|
The ACPI CA, the Linux ACPI core, and some ACPI drivers can generate debug
|
||||||
|
output. This document describes how to use this facility.
|
||||||
|
|
||||||
|
Compile-time configuration
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
ACPI debug output is globally enabled by CONFIG_ACPI_DEBUG. If this config
|
||||||
|
option is turned off, the debug messages are not even built into the
|
||||||
|
kernel.
|
||||||
|
|
||||||
|
Boot- and run-time configuration
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages
|
||||||
|
you're interested in. At boot-time, use the acpi.debug_layer and
|
||||||
|
acpi.debug_level kernel command line options. After boot, you can use the
|
||||||
|
debug_layer and debug_level files in /sys/module/acpi/parameters/ to control
|
||||||
|
the debug messages.
|
||||||
|
|
||||||
|
debug_layer (component)
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
The "debug_layer" is a mask that selects components of interest, e.g., a
|
||||||
|
specific driver or part of the ACPI interpreter. To build the debug_layer
|
||||||
|
bitmask, look for the "#define _COMPONENT" in an ACPI source file.
|
||||||
|
|
||||||
|
You can set the debug_layer mask at boot-time using the acpi.debug_layer
|
||||||
|
command line argument, and you can change it after boot by writing values
|
||||||
|
to /sys/module/acpi/parameters/debug_layer.
|
||||||
|
|
||||||
|
The possible components are defined in include/acpi/acoutput.h and
|
||||||
|
include/acpi/acpi_drivers.h. Reading /sys/module/acpi/parameters/debug_layer
|
||||||
|
shows the supported mask values, currently these:
|
||||||
|
|
||||||
|
ACPI_UTILITIES 0x00000001
|
||||||
|
ACPI_HARDWARE 0x00000002
|
||||||
|
ACPI_EVENTS 0x00000004
|
||||||
|
ACPI_TABLES 0x00000008
|
||||||
|
ACPI_NAMESPACE 0x00000010
|
||||||
|
ACPI_PARSER 0x00000020
|
||||||
|
ACPI_DISPATCHER 0x00000040
|
||||||
|
ACPI_EXECUTER 0x00000080
|
||||||
|
ACPI_RESOURCES 0x00000100
|
||||||
|
ACPI_CA_DEBUGGER 0x00000200
|
||||||
|
ACPI_OS_SERVICES 0x00000400
|
||||||
|
ACPI_CA_DISASSEMBLER 0x00000800
|
||||||
|
ACPI_COMPILER 0x00001000
|
||||||
|
ACPI_TOOLS 0x00002000
|
||||||
|
ACPI_BUS_COMPONENT 0x00010000
|
||||||
|
ACPI_AC_COMPONENT 0x00020000
|
||||||
|
ACPI_BATTERY_COMPONENT 0x00040000
|
||||||
|
ACPI_BUTTON_COMPONENT 0x00080000
|
||||||
|
ACPI_SBS_COMPONENT 0x00100000
|
||||||
|
ACPI_FAN_COMPONENT 0x00200000
|
||||||
|
ACPI_PCI_COMPONENT 0x00400000
|
||||||
|
ACPI_POWER_COMPONENT 0x00800000
|
||||||
|
ACPI_CONTAINER_COMPONENT 0x01000000
|
||||||
|
ACPI_SYSTEM_COMPONENT 0x02000000
|
||||||
|
ACPI_THERMAL_COMPONENT 0x04000000
|
||||||
|
ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
|
||||||
|
ACPI_VIDEO_COMPONENT 0x10000000
|
||||||
|
ACPI_PROCESSOR_COMPONENT 0x20000000
|
||||||
|
|
||||||
|
debug_level
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The "debug_level" is a mask that selects different types of messages, e.g.,
|
||||||
|
those related to initialization, method execution, informational messages, etc.
|
||||||
|
To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT()
|
||||||
|
statement.
|
||||||
|
|
||||||
|
The ACPI interpreter uses several different levels, but the Linux
|
||||||
|
ACPI core and ACPI drivers generally only use ACPI_LV_INFO.
|
||||||
|
|
||||||
|
You can set the debug_level mask at boot-time using the acpi.debug_level
|
||||||
|
command line argument, and you can change it after boot by writing values
|
||||||
|
to /sys/module/acpi/parameters/debug_level.
|
||||||
|
|
||||||
|
The possible levels are defined in include/acpi/acoutput.h. Reading
|
||||||
|
/sys/module/acpi/parameters/debug_level shows the supported mask values,
|
||||||
|
currently these:
|
||||||
|
|
||||||
|
ACPI_LV_INIT 0x00000001
|
||||||
|
ACPI_LV_DEBUG_OBJECT 0x00000002
|
||||||
|
ACPI_LV_INFO 0x00000004
|
||||||
|
ACPI_LV_INIT_NAMES 0x00000020
|
||||||
|
ACPI_LV_PARSE 0x00000040
|
||||||
|
ACPI_LV_LOAD 0x00000080
|
||||||
|
ACPI_LV_DISPATCH 0x00000100
|
||||||
|
ACPI_LV_EXEC 0x00000200
|
||||||
|
ACPI_LV_NAMES 0x00000400
|
||||||
|
ACPI_LV_OPREGION 0x00000800
|
||||||
|
ACPI_LV_BFIELD 0x00001000
|
||||||
|
ACPI_LV_TABLES 0x00002000
|
||||||
|
ACPI_LV_VALUES 0x00004000
|
||||||
|
ACPI_LV_OBJECTS 0x00008000
|
||||||
|
ACPI_LV_RESOURCES 0x00010000
|
||||||
|
ACPI_LV_USER_REQUESTS 0x00020000
|
||||||
|
ACPI_LV_PACKAGE 0x00040000
|
||||||
|
ACPI_LV_ALLOCATIONS 0x00100000
|
||||||
|
ACPI_LV_FUNCTIONS 0x00200000
|
||||||
|
ACPI_LV_OPTIMIZATIONS 0x00400000
|
||||||
|
ACPI_LV_MUTEX 0x01000000
|
||||||
|
ACPI_LV_THREADS 0x02000000
|
||||||
|
ACPI_LV_IO 0x04000000
|
||||||
|
ACPI_LV_INTERRUPTS 0x08000000
|
||||||
|
ACPI_LV_AML_DISASSEMBLE 0x10000000
|
||||||
|
ACPI_LV_VERBOSE_INFO 0x20000000
|
||||||
|
ACPI_LV_FULL_TABLES 0x40000000
|
||||||
|
ACPI_LV_EVENTS 0x80000000
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
|
||||||
|
For example, drivers/acpi/bus.c contains this:
|
||||||
|
|
||||||
|
#define _COMPONENT ACPI_BUS_COMPONENT
|
||||||
|
...
|
||||||
|
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device insertion detected\n"));
|
||||||
|
|
||||||
|
To turn on this message, set the ACPI_BUS_COMPONENT bit in acpi.debug_layer
|
||||||
|
and the ACPI_LV_INFO bit in acpi.debug_level. (The ACPI_DEBUG_PRINT
|
||||||
|
statement uses ACPI_DB_INFO, which is macro based on the ACPI_LV_INFO
|
||||||
|
definition.)
|
||||||
|
|
||||||
|
Enable all AML "Debug" output (stores to the Debug object while interpreting
|
||||||
|
AML) during boot:
|
||||||
|
|
||||||
|
acpi.debug_layer=0xffffffff acpi.debug_level=0x2
|
||||||
|
|
||||||
|
Enable PCI and PCI interrupt routing debug messages:
|
||||||
|
|
||||||
|
acpi.debug_layer=0x400000 acpi.debug_level=0x4
|
||||||
|
|
||||||
|
Enable all ACPI hardware-related messages:
|
||||||
|
|
||||||
|
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
|
||||||
|
|
||||||
|
Enable all ACPI_DB_INFO messages after boot:
|
||||||
|
|
||||||
|
# echo 0x4 > /sys/module/acpi/parameters/debug_level
|
||||||
|
|
||||||
|
Show all valid component values:
|
||||||
|
|
||||||
|
# cat /sys/module/acpi/parameters/debug_layer
|
@ -24,7 +24,7 @@ real bad - it changes the behaviour of all unaligned instructions in user
|
|||||||
space, and might cause programs to fail unexpectedly.
|
space, and might cause programs to fail unexpectedly.
|
||||||
|
|
||||||
To change the alignment trap behavior, simply echo a number into
|
To change the alignment trap behavior, simply echo a number into
|
||||||
/proc/sys/debug/alignment. The number is made up from various bits:
|
/proc/cpu/alignment. The number is made up from various bits:
|
||||||
|
|
||||||
bit behavior when set
|
bit behavior when set
|
||||||
--- -----------------
|
--- -----------------
|
||||||
|
16
Documentation/blockdev/00-INDEX
Normal file
16
Documentation/blockdev/00-INDEX
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
00-INDEX
|
||||||
|
- this file
|
||||||
|
README.DAC960
|
||||||
|
- info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
|
||||||
|
cciss.txt
|
||||||
|
- info, major/minor #'s for Compaq's SMART Array Controllers.
|
||||||
|
cpqarray.txt
|
||||||
|
- info on using Compaq's SMART2 Intelligent Disk Array Controllers.
|
||||||
|
floppy.txt
|
||||||
|
- notes and driver options for the floppy disk driver.
|
||||||
|
nbd.txt
|
||||||
|
- info on a TCP implementation of a network block device.
|
||||||
|
paride.txt
|
||||||
|
- information about the parallel port IDE subsystem.
|
||||||
|
ramdisk.txt
|
||||||
|
- short guide on how to set up and use the RAM disk.
|
90
Documentation/c2port.txt
Normal file
90
Documentation/c2port.txt
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
C2 port support
|
||||||
|
---------------
|
||||||
|
|
||||||
|
(C) Copyright 2007 Rodolfo Giometti <giometti@enneenne.com>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
--------
|
||||||
|
|
||||||
|
This driver implements the support for Linux of Silicon Labs (Silabs)
|
||||||
|
C2 Interface used for in-system programming of micro controllers.
|
||||||
|
|
||||||
|
By using this driver you can reprogram the in-system flash without EC2
|
||||||
|
or EC3 debug adapter. This solution is also useful in those systems
|
||||||
|
where the micro controller is connected via special GPIOs pins.
|
||||||
|
|
||||||
|
References
|
||||||
|
----------
|
||||||
|
|
||||||
|
The C2 Interface main references are at (http://www.silabs.com)
|
||||||
|
Silicon Laboratories site], see:
|
||||||
|
|
||||||
|
- AN127: FLASH Programming via the C2 Interface at
|
||||||
|
http://www.silabs.com/public/documents/tpub_doc/anote/Microcontrollers/Small_Form_Factor/en/an127.pdf, and
|
||||||
|
|
||||||
|
- C2 Specification at
|
||||||
|
http://www.silabs.com/public/documents/tpub_doc/spec/Microcontrollers/en/C2spec.pdf,
|
||||||
|
|
||||||
|
however it implements a two wire serial communication protocol (bit
|
||||||
|
banging) designed to enable in-system programming, debugging, and
|
||||||
|
boundary-scan testing on low pin-count Silicon Labs devices. Currently
|
||||||
|
this code supports only flash programming but extensions are easy to
|
||||||
|
add.
|
||||||
|
|
||||||
|
Using the driver
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Once the driver is loaded you can use sysfs support to get C2port's
|
||||||
|
info or read/write in-system flash.
|
||||||
|
|
||||||
|
# ls /sys/class/c2port/c2port0/
|
||||||
|
access flash_block_size flash_erase rev_id
|
||||||
|
dev_id flash_blocks_num flash_size subsystem/
|
||||||
|
flash_access flash_data reset uevent
|
||||||
|
|
||||||
|
Initially the C2port access is disabled since you hardware may have
|
||||||
|
such lines multiplexed with other devices so, to get access to the
|
||||||
|
C2port, you need the command:
|
||||||
|
|
||||||
|
# echo 1 > /sys/class/c2port/c2port0/access
|
||||||
|
|
||||||
|
after that you should read the device ID and revision ID of the
|
||||||
|
connected micro controller:
|
||||||
|
|
||||||
|
# cat /sys/class/c2port/c2port0/dev_id
|
||||||
|
8
|
||||||
|
# cat /sys/class/c2port/c2port0/rev_id
|
||||||
|
1
|
||||||
|
|
||||||
|
However, for security reasons, the in-system flash access in not
|
||||||
|
enabled yet, to do so you need the command:
|
||||||
|
|
||||||
|
# echo 1 > /sys/class/c2port/c2port0/flash_access
|
||||||
|
|
||||||
|
After that you can read the whole flash:
|
||||||
|
|
||||||
|
# cat /sys/class/c2port/c2port0/flash_data > image
|
||||||
|
|
||||||
|
erase it:
|
||||||
|
|
||||||
|
# echo 1 > /sys/class/c2port/c2port0/flash_erase
|
||||||
|
|
||||||
|
and write it:
|
||||||
|
|
||||||
|
# cat image > /sys/class/c2port/c2port0/flash_data
|
||||||
|
|
||||||
|
after writing you have to reset the device to execute the new code:
|
||||||
|
|
||||||
|
# echo 1 > /sys/class/c2port/c2port0/reset
|
@ -1,4 +1,4 @@
|
|||||||
The cgroup freezer is useful to batch job management system which start
|
The cgroup freezer is useful to batch job management system which start
|
||||||
and stop sets of tasks in order to schedule the resources of a machine
|
and stop sets of tasks in order to schedule the resources of a machine
|
||||||
according to the desires of a system administrator. This sort of program
|
according to the desires of a system administrator. This sort of program
|
||||||
is often used on HPC clusters to schedule access to the cluster as a
|
is often used on HPC clusters to schedule access to the cluster as a
|
||||||
@ -6,7 +6,7 @@ whole. The cgroup freezer uses cgroups to describe the set of tasks to
|
|||||||
be started/stopped by the batch job management system. It also provides
|
be started/stopped by the batch job management system. It also provides
|
||||||
a means to start and stop the tasks composing the job.
|
a means to start and stop the tasks composing the job.
|
||||||
|
|
||||||
The cgroup freezer will also be useful for checkpointing running groups
|
The cgroup freezer will also be useful for checkpointing running groups
|
||||||
of tasks. The freezer allows the checkpoint code to obtain a consistent
|
of tasks. The freezer allows the checkpoint code to obtain a consistent
|
||||||
image of the tasks by attempting to force the tasks in a cgroup into a
|
image of the tasks by attempting to force the tasks in a cgroup into a
|
||||||
quiescent state. Once the tasks are quiescent another task can
|
quiescent state. Once the tasks are quiescent another task can
|
||||||
@ -16,7 +16,7 @@ recoverable error occur. This also allows the checkpointed tasks to be
|
|||||||
migrated between nodes in a cluster by copying the gathered information
|
migrated between nodes in a cluster by copying the gathered information
|
||||||
to another node and restarting the tasks there.
|
to another node and restarting the tasks there.
|
||||||
|
|
||||||
Sequences of SIGSTOP and SIGCONT are not always sufficient for stopping
|
Sequences of SIGSTOP and SIGCONT are not always sufficient for stopping
|
||||||
and resuming tasks in userspace. Both of these signals are observable
|
and resuming tasks in userspace. Both of these signals are observable
|
||||||
from within the tasks we wish to freeze. While SIGSTOP cannot be caught,
|
from within the tasks we wish to freeze. While SIGSTOP cannot be caught,
|
||||||
blocked, or ignored it can be seen by waiting or ptracing parent tasks.
|
blocked, or ignored it can be seen by waiting or ptracing parent tasks.
|
||||||
@ -37,26 +37,29 @@ demonstrate this problem using nested bash shells:
|
|||||||
|
|
||||||
<at this point 16990 exits and causes 16644 to exit too>
|
<at this point 16990 exits and causes 16644 to exit too>
|
||||||
|
|
||||||
This happens because bash can observe both signals and choose how it
|
This happens because bash can observe both signals and choose how it
|
||||||
responds to them.
|
responds to them.
|
||||||
|
|
||||||
Another example of a program which catches and responds to these
|
Another example of a program which catches and responds to these
|
||||||
signals is gdb. In fact any program designed to use ptrace is likely to
|
signals is gdb. In fact any program designed to use ptrace is likely to
|
||||||
have a problem with this method of stopping and resuming tasks.
|
have a problem with this method of stopping and resuming tasks.
|
||||||
|
|
||||||
In contrast, the cgroup freezer uses the kernel freezer code to
|
In contrast, the cgroup freezer uses the kernel freezer code to
|
||||||
prevent the freeze/unfreeze cycle from becoming visible to the tasks
|
prevent the freeze/unfreeze cycle from becoming visible to the tasks
|
||||||
being frozen. This allows the bash example above and gdb to run as
|
being frozen. This allows the bash example above and gdb to run as
|
||||||
expected.
|
expected.
|
||||||
|
|
||||||
The freezer subsystem in the container filesystem defines a file named
|
The freezer subsystem in the container filesystem defines a file named
|
||||||
freezer.state. Writing "FROZEN" to the state file will freeze all tasks in the
|
freezer.state. Writing "FROZEN" to the state file will freeze all tasks in the
|
||||||
cgroup. Subsequently writing "THAWED" will unfreeze the tasks in the cgroup.
|
cgroup. Subsequently writing "THAWED" will unfreeze the tasks in the cgroup.
|
||||||
Reading will return the current state.
|
Reading will return the current state.
|
||||||
|
|
||||||
|
Note freezer.state doesn't exist in root cgroup, which means root cgroup
|
||||||
|
is non-freezable.
|
||||||
|
|
||||||
* Examples of usage :
|
* Examples of usage :
|
||||||
|
|
||||||
# mkdir /containers/freezer
|
# mkdir /containers
|
||||||
# mount -t cgroup -ofreezer freezer /containers
|
# mount -t cgroup -ofreezer freezer /containers
|
||||||
# mkdir /containers/0
|
# mkdir /containers/0
|
||||||
# echo $some_pid > /containers/0/tasks
|
# echo $some_pid > /containers/0/tasks
|
||||||
@ -94,6 +97,6 @@ things happens:
|
|||||||
the freezer.state file
|
the freezer.state file
|
||||||
2) Userspace retries the freezing operation by writing "FROZEN" to
|
2) Userspace retries the freezing operation by writing "FROZEN" to
|
||||||
the freezer.state file (writing "FREEZING" is not legal
|
the freezer.state file (writing "FREEZING" is not legal
|
||||||
and returns EIO)
|
and returns EINVAL)
|
||||||
3) The tasks that blocked the cgroup from entering the "FROZEN"
|
3) The tasks that blocked the cgroup from entering the "FROZEN"
|
||||||
state disappear from the cgroup's set of tasks.
|
state disappear from the cgroup's set of tasks.
|
||||||
|
@ -23,6 +23,7 @@ Contents:
|
|||||||
1.3 sparc64
|
1.3 sparc64
|
||||||
1.4 ppc
|
1.4 ppc
|
||||||
1.5 SuperH
|
1.5 SuperH
|
||||||
|
1.6 Blackfin
|
||||||
|
|
||||||
2. "Policy" / "Governor"?
|
2. "Policy" / "Governor"?
|
||||||
2.1 Policy
|
2.1 Policy
|
||||||
@ -97,6 +98,17 @@ The following SuperH processors are supported by cpufreq:
|
|||||||
SH-3
|
SH-3
|
||||||
SH-4
|
SH-4
|
||||||
|
|
||||||
|
1.6 Blackfin
|
||||||
|
------------
|
||||||
|
|
||||||
|
The following Blackfin processors are supported by cpufreq:
|
||||||
|
|
||||||
|
BF522, BF523, BF524, BF525, BF526, BF527, Rev 0.1 or higher
|
||||||
|
BF531, BF532, BF533, Rev 0.3 or higher
|
||||||
|
BF534, BF536, BF537, Rev 0.2 or higher
|
||||||
|
BF561, Rev 0.3 or higher
|
||||||
|
BF542, BF544, BF547, BF548, BF549, Rev 0.1 or higher
|
||||||
|
|
||||||
|
|
||||||
2. "Policy" / "Governor" ?
|
2. "Policy" / "Governor" ?
|
||||||
==========================
|
==========================
|
||||||
|
@ -56,30 +56,6 @@ Who: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
What: old tuner-3036 i2c driver
|
|
||||||
When: 2.6.28
|
|
||||||
Why: This driver is for VERY old i2c-over-parallel port teletext receiver
|
|
||||||
boxes. Rather then spending effort on converting this driver to V4L2,
|
|
||||||
and since it is extremely unlikely that anyone still uses one of these
|
|
||||||
devices, it was decided to drop it.
|
|
||||||
Who: Hans Verkuil <hverkuil@xs4all.nl>
|
|
||||||
Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: V4L2 dpc7146 driver
|
|
||||||
When: 2.6.28
|
|
||||||
Why: Old driver for the dpc7146 demonstration board that is no longer
|
|
||||||
relevant. The last time this was tested on actual hardware was
|
|
||||||
probably around 2002. Since this is a driver for a demonstration
|
|
||||||
board the decision was made to remove it rather than spending a
|
|
||||||
lot of effort continually updating this driver to stay in sync
|
|
||||||
with the latest internal V4L2 or I2C API.
|
|
||||||
Who: Hans Verkuil <hverkuil@xs4all.nl>
|
|
||||||
Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
||||||
When: November 2005
|
When: November 2005
|
||||||
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
||||||
|
@ -28,10 +28,7 @@ Manish Singh <manish.singh@oracle.com>
|
|||||||
Caveats
|
Caveats
|
||||||
=======
|
=======
|
||||||
Features which OCFS2 does not support yet:
|
Features which OCFS2 does not support yet:
|
||||||
- extended attributes
|
|
||||||
- quotas
|
- quotas
|
||||||
- cluster aware flock
|
|
||||||
- cluster aware lockf
|
|
||||||
- Directory change notification (F_NOTIFY)
|
- Directory change notification (F_NOTIFY)
|
||||||
- Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
|
- Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
|
||||||
- POSIX ACLs
|
- POSIX ACLs
|
||||||
|
@ -44,6 +44,7 @@ Table of Contents
|
|||||||
2.14 /proc/<pid>/io - Display the IO accounting fields
|
2.14 /proc/<pid>/io - Display the IO accounting fields
|
||||||
2.15 /proc/<pid>/coredump_filter - Core dump filtering settings
|
2.15 /proc/<pid>/coredump_filter - Core dump filtering settings
|
||||||
2.16 /proc/<pid>/mountinfo - Information about mounts
|
2.16 /proc/<pid>/mountinfo - Information about mounts
|
||||||
|
2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
Preface
|
Preface
|
||||||
@ -2483,4 +2484,30 @@ For more information on mount propagation see:
|
|||||||
|
|
||||||
Documentation/filesystems/sharedsubtree.txt
|
Documentation/filesystems/sharedsubtree.txt
|
||||||
|
|
||||||
|
2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
This directory contains configuration options for the epoll(7) interface.
|
||||||
|
|
||||||
|
max_user_instances
|
||||||
|
------------------
|
||||||
|
|
||||||
|
This is the maximum number of epoll file descriptors that a single user can
|
||||||
|
have open at a given time. The default value is 128, and should be enough
|
||||||
|
for normal users.
|
||||||
|
|
||||||
|
max_user_watches
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Every epoll file descriptor can store a number of files to be monitored
|
||||||
|
for event readiness. Each one of these monitored files constitutes a "watch".
|
||||||
|
This configuration option sets the maximum number of "watches" that are
|
||||||
|
allowed for each user.
|
||||||
|
Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
|
||||||
|
on a 64bit one.
|
||||||
|
The current default value for max_user_watches is the 1/32 of the available
|
||||||
|
low memory, divided for the "watch" cost in bytes.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -130,12 +130,12 @@ The 2.6 kernel build process always creates a gzipped cpio format initramfs
|
|||||||
archive and links it into the resulting kernel binary. By default, this
|
archive and links it into the resulting kernel binary. By default, this
|
||||||
archive is empty (consuming 134 bytes on x86).
|
archive is empty (consuming 134 bytes on x86).
|
||||||
|
|
||||||
The config option CONFIG_INITRAMFS_SOURCE (for some reason buried under
|
The config option CONFIG_INITRAMFS_SOURCE (in General Setup in menuconfig,
|
||||||
devices->block devices in menuconfig, and living in usr/Kconfig) can be used
|
and living in usr/Kconfig) can be used to specify a source for the
|
||||||
to specify a source for the initramfs archive, which will automatically be
|
initramfs archive, which will automatically be incorporated into the
|
||||||
incorporated into the resulting binary. This option can point to an existing
|
resulting binary. This option can point to an existing gzipped cpio
|
||||||
gzipped cpio archive, a directory containing files to be archived, or a text
|
archive, a directory containing files to be archived, or a text file
|
||||||
file specification such as the following example:
|
specification such as the following example:
|
||||||
|
|
||||||
dir /dev 755 0 0
|
dir /dev 755 0 0
|
||||||
nod /dev/console 644 0 0 c 5 1
|
nod /dev/console 644 0 0 c 5 1
|
||||||
|
@ -39,10 +39,11 @@ The block device operation is optional, these block devices support it as of
|
|||||||
today:
|
today:
|
||||||
- dcssblk: s390 dcss block device driver
|
- dcssblk: s390 dcss block device driver
|
||||||
|
|
||||||
An address space operation named get_xip_page is used to retrieve reference
|
An address space operation named get_xip_mem is used to retrieve references
|
||||||
to a struct page. To address the target page, a reference to an address_space,
|
to a page frame number and a kernel address. To obtain these values a reference
|
||||||
and a sector number is provided. A 3rd argument indicates whether the
|
to an address_space is provided. This function assigns values to the kmem and
|
||||||
function should allocate blocks if needed.
|
pfn parameters. The third argument indicates whether the function should allocate
|
||||||
|
blocks if needed.
|
||||||
|
|
||||||
This address space operation is mutually exclusive with readpage&writepage that
|
This address space operation is mutually exclusive with readpage&writepage that
|
||||||
do page cache read/write operations.
|
do page cache read/write operations.
|
||||||
|
@ -8,7 +8,7 @@ Copyright 2008 Red Hat Inc.
|
|||||||
Reviewers: Elias Oltmanns, Randy Dunlap, Andrew Morton,
|
Reviewers: Elias Oltmanns, Randy Dunlap, Andrew Morton,
|
||||||
John Kacur, and David Teigland.
|
John Kacur, and David Teigland.
|
||||||
|
|
||||||
Written for: 2.6.27-rc1
|
Written for: 2.6.28-rc2
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
------------
|
------------
|
||||||
@ -50,26 +50,26 @@ of ftrace. Here is a list of some of the key files:
|
|||||||
|
|
||||||
Note: all time values are in microseconds.
|
Note: all time values are in microseconds.
|
||||||
|
|
||||||
current_tracer : This is used to set or display the current tracer
|
current_tracer: This is used to set or display the current tracer
|
||||||
that is configured.
|
that is configured.
|
||||||
|
|
||||||
available_tracers : This holds the different types of tracers that
|
available_tracers: This holds the different types of tracers that
|
||||||
have been compiled into the kernel. The tracers
|
have been compiled into the kernel. The tracers
|
||||||
listed here can be configured by echoing their name
|
listed here can be configured by echoing their name
|
||||||
into current_tracer.
|
into current_tracer.
|
||||||
|
|
||||||
tracing_enabled : This sets or displays whether the current_tracer
|
tracing_enabled: This sets or displays whether the current_tracer
|
||||||
is activated and tracing or not. Echo 0 into this
|
is activated and tracing or not. Echo 0 into this
|
||||||
file to disable the tracer or 1 to enable it.
|
file to disable the tracer or 1 to enable it.
|
||||||
|
|
||||||
trace : This file holds the output of the trace in a human readable
|
trace: This file holds the output of the trace in a human readable
|
||||||
format (described below).
|
format (described below).
|
||||||
|
|
||||||
latency_trace : This file shows the same trace but the information
|
latency_trace: This file shows the same trace but the information
|
||||||
is organized more to display possible latencies
|
is organized more to display possible latencies
|
||||||
in the system (described below).
|
in the system (described below).
|
||||||
|
|
||||||
trace_pipe : The output is the same as the "trace" file but this
|
trace_pipe: The output is the same as the "trace" file but this
|
||||||
file is meant to be streamed with live tracing.
|
file is meant to be streamed with live tracing.
|
||||||
Reads from this file will block until new data
|
Reads from this file will block until new data
|
||||||
is retrieved. Unlike the "trace" and "latency_trace"
|
is retrieved. Unlike the "trace" and "latency_trace"
|
||||||
@ -82,11 +82,11 @@ of ftrace. Here is a list of some of the key files:
|
|||||||
tracer is not adding more data, they will display
|
tracer is not adding more data, they will display
|
||||||
the same information every time they are read.
|
the same information every time they are read.
|
||||||
|
|
||||||
iter_ctrl : This file lets the user control the amount of data
|
iter_ctrl: This file lets the user control the amount of data
|
||||||
that is displayed in one of the above output
|
that is displayed in one of the above output
|
||||||
files.
|
files.
|
||||||
|
|
||||||
trace_max_latency : Some of the tracers record the max latency.
|
trace_max_latency: Some of the tracers record the max latency.
|
||||||
For example, the time interrupts are disabled.
|
For example, the time interrupts are disabled.
|
||||||
This time is saved in this file. The max trace
|
This time is saved in this file. The max trace
|
||||||
will also be stored, and displayed by either
|
will also be stored, and displayed by either
|
||||||
@ -94,29 +94,26 @@ of ftrace. Here is a list of some of the key files:
|
|||||||
only be recorded if the latency is greater than
|
only be recorded if the latency is greater than
|
||||||
the value in this file. (in microseconds)
|
the value in this file. (in microseconds)
|
||||||
|
|
||||||
trace_entries : This sets or displays the number of trace
|
trace_entries: This sets or displays the number of bytes each CPU
|
||||||
entries each CPU buffer can hold. The tracer buffers
|
buffer can hold. The tracer buffers are the same size
|
||||||
are the same size for each CPU. The displayed number
|
for each CPU. The displayed number is the size of the
|
||||||
is the size of the CPU buffer and not total size. The
|
CPU buffer and not total size of all buffers. The
|
||||||
trace buffers are allocated in pages (blocks of memory
|
trace buffers are allocated in pages (blocks of memory
|
||||||
that the kernel uses for allocation, usually 4 KB in size).
|
that the kernel uses for allocation, usually 4 KB in size).
|
||||||
Since each entry is smaller than a page, if the last
|
If the last page allocated has room for more bytes
|
||||||
allocated page has room for more entries than were
|
than requested, the rest of the page will be used,
|
||||||
requested, the rest of the page is used to allocate
|
making the actual allocation bigger than requested.
|
||||||
entries.
|
(Note, the size may not be a multiple of the page size due
|
||||||
|
to buffer managment overhead.)
|
||||||
|
|
||||||
This can only be updated when the current_tracer
|
This can only be updated when the current_tracer
|
||||||
is set to "none".
|
is set to "nop".
|
||||||
|
|
||||||
NOTE: It is planned on changing the allocated buffers
|
tracing_cpumask: This is a mask that lets the user only trace
|
||||||
from being the number of possible CPUS to
|
|
||||||
the number of online CPUS.
|
|
||||||
|
|
||||||
tracing_cpumask : This is a mask that lets the user only trace
|
|
||||||
on specified CPUS. The format is a hex string
|
on specified CPUS. The format is a hex string
|
||||||
representing the CPUS.
|
representing the CPUS.
|
||||||
|
|
||||||
set_ftrace_filter : When dynamic ftrace is configured in (see the
|
set_ftrace_filter: When dynamic ftrace is configured in (see the
|
||||||
section below "dynamic ftrace"), the code is dynamically
|
section below "dynamic ftrace"), the code is dynamically
|
||||||
modified (code text rewrite) to disable calling of the
|
modified (code text rewrite) to disable calling of the
|
||||||
function profiler (mcount). This lets tracing be configured
|
function profiler (mcount). This lets tracing be configured
|
||||||
@ -130,14 +127,11 @@ of ftrace. Here is a list of some of the key files:
|
|||||||
be traced. If a function exists in both set_ftrace_filter
|
be traced. If a function exists in both set_ftrace_filter
|
||||||
and set_ftrace_notrace, the function will _not_ be traced.
|
and set_ftrace_notrace, the function will _not_ be traced.
|
||||||
|
|
||||||
available_filter_functions : When a function is encountered the first
|
available_filter_functions: This lists the functions that ftrace
|
||||||
time by the dynamic tracer, it is recorded and
|
has processed and can trace. These are the function
|
||||||
later the call is converted into a nop. This file
|
names that you can pass to "set_ftrace_filter" or
|
||||||
lists the functions that have been recorded
|
"set_ftrace_notrace". (See the section "dynamic ftrace"
|
||||||
by the dynamic tracer and these functions can
|
below for more details.)
|
||||||
be used to set the ftrace filter by the above
|
|
||||||
"set_ftrace_filter" file. (See the section "dynamic ftrace"
|
|
||||||
below for more details).
|
|
||||||
|
|
||||||
|
|
||||||
The Tracers
|
The Tracers
|
||||||
@ -145,7 +139,7 @@ The Tracers
|
|||||||
|
|
||||||
Here is the list of current tracers that may be configured.
|
Here is the list of current tracers that may be configured.
|
||||||
|
|
||||||
ftrace - function tracer that uses mcount to trace all functions.
|
function - function tracer that uses mcount to trace all functions.
|
||||||
|
|
||||||
sched_switch - traces the context switches between tasks.
|
sched_switch - traces the context switches between tasks.
|
||||||
|
|
||||||
@ -166,8 +160,8 @@ Here is the list of current tracers that may be configured.
|
|||||||
the highest priority task to get scheduled after
|
the highest priority task to get scheduled after
|
||||||
it has been woken up.
|
it has been woken up.
|
||||||
|
|
||||||
none - This is not a tracer. To remove all tracers from tracing
|
nop - This is not a tracer. To remove all tracers from tracing
|
||||||
simply echo "none" into current_tracer.
|
simply echo "nop" into current_tracer.
|
||||||
|
|
||||||
|
|
||||||
Examples of using the tracer
|
Examples of using the tracer
|
||||||
@ -182,7 +176,7 @@ Output format:
|
|||||||
Here is an example of the output format of the file "trace"
|
Here is an example of the output format of the file "trace"
|
||||||
|
|
||||||
--------
|
--------
|
||||||
# tracer: ftrace
|
# tracer: function
|
||||||
#
|
#
|
||||||
# TASK-PID CPU# TIMESTAMP FUNCTION
|
# TASK-PID CPU# TIMESTAMP FUNCTION
|
||||||
# | | | | |
|
# | | | | |
|
||||||
@ -192,7 +186,7 @@ Here is an example of the output format of the file "trace"
|
|||||||
--------
|
--------
|
||||||
|
|
||||||
A header is printed with the tracer name that is represented by the trace.
|
A header is printed with the tracer name that is represented by the trace.
|
||||||
In this case the tracer is "ftrace". Then a header showing the format. Task
|
In this case the tracer is "function". Then a header showing the format. Task
|
||||||
name "bash", the task PID "4251", the CPU that it was running on
|
name "bash", the task PID "4251", the CPU that it was running on
|
||||||
"01", the timestamp in <secs>.<usecs> format, the function name that was
|
"01", the timestamp in <secs>.<usecs> format, the function name that was
|
||||||
traced "path_put" and the parent function that called this function
|
traced "path_put" and the parent function that called this function
|
||||||
@ -1003,22 +997,20 @@ is the stack for the hard interrupt. This hides the fact that NEED_RESCHED
|
|||||||
has been set. We do not see the 'N' until we switch back to the task's
|
has been set. We do not see the 'N' until we switch back to the task's
|
||||||
assigned stack.
|
assigned stack.
|
||||||
|
|
||||||
ftrace
|
function
|
||||||
------
|
--------
|
||||||
|
|
||||||
ftrace is not only the name of the tracing infrastructure, but it
|
This tracer is the function tracer. Enabling the function tracer
|
||||||
is also a name of one of the tracers. The tracer is the function
|
can be done from the debug file system. Make sure the ftrace_enabled is
|
||||||
tracer. Enabling the function tracer can be done from the
|
set; otherwise this tracer is a nop.
|
||||||
debug file system. Make sure the ftrace_enabled is set otherwise
|
|
||||||
this tracer is a nop.
|
|
||||||
|
|
||||||
# sysctl kernel.ftrace_enabled=1
|
# sysctl kernel.ftrace_enabled=1
|
||||||
# echo ftrace > /debug/tracing/current_tracer
|
# echo function > /debug/tracing/current_tracer
|
||||||
# echo 1 > /debug/tracing/tracing_enabled
|
# echo 1 > /debug/tracing/tracing_enabled
|
||||||
# usleep 1
|
# usleep 1
|
||||||
# echo 0 > /debug/tracing/tracing_enabled
|
# echo 0 > /debug/tracing/tracing_enabled
|
||||||
# cat /debug/tracing/trace
|
# cat /debug/tracing/trace
|
||||||
# tracer: ftrace
|
# tracer: function
|
||||||
#
|
#
|
||||||
# TASK-PID CPU# TIMESTAMP FUNCTION
|
# TASK-PID CPU# TIMESTAMP FUNCTION
|
||||||
# | | | | |
|
# | | | | |
|
||||||
@ -1040,10 +1032,10 @@ this tracer is a nop.
|
|||||||
[...]
|
[...]
|
||||||
|
|
||||||
|
|
||||||
Note: ftrace uses ring buffers to store the above entries. The newest data
|
Note: function tracer uses ring buffers to store the above entries.
|
||||||
may overwrite the oldest data. Sometimes using echo to stop the trace
|
The newest data may overwrite the oldest data. Sometimes using echo to
|
||||||
is not sufficient because the tracing could have overwritten the data
|
stop the trace is not sufficient because the tracing could have overwritten
|
||||||
that you wanted to record. For this reason, it is sometimes better to
|
the data that you wanted to record. For this reason, it is sometimes better to
|
||||||
disable tracing directly from a program. This allows you to stop the
|
disable tracing directly from a program. This allows you to stop the
|
||||||
tracing at the point that you hit the part that you are interested in.
|
tracing at the point that you hit the part that you are interested in.
|
||||||
To disable the tracing directly from a C program, something like following
|
To disable the tracing directly from a C program, something like following
|
||||||
@ -1077,18 +1069,31 @@ every kernel function, produced by the -pg switch in gcc), starts
|
|||||||
of pointing to a simple return. (Enabling FTRACE will include the
|
of pointing to a simple return. (Enabling FTRACE will include the
|
||||||
-pg switch in the compiling of the kernel.)
|
-pg switch in the compiling of the kernel.)
|
||||||
|
|
||||||
When dynamic ftrace is initialized, it calls kstop_machine to make
|
At compile time every C file object is run through the
|
||||||
the machine act like a uniprocessor so that it can freely modify code
|
recordmcount.pl script (located in the scripts directory). This
|
||||||
without worrying about other processors executing that same code. At
|
script will process the C object using objdump to find all the
|
||||||
initialization, the mcount calls are changed to call a "record_ip"
|
locations in the .text section that call mcount. (Note, only
|
||||||
function. After this, the first time a kernel function is called,
|
the .text section is processed, since processing other sections
|
||||||
it has the calling address saved in a hash table.
|
like .init.text may cause races due to those sections being freed).
|
||||||
|
|
||||||
Later on the ftraced kernel thread is awoken and will again call
|
A new section called "__mcount_loc" is created that holds references
|
||||||
kstop_machine if new functions have been recorded. The ftraced thread
|
to all the mcount call sites in the .text section. This section is
|
||||||
will change all calls to mcount to "nop". Just calling mcount
|
compiled back into the original object. The final linker will add
|
||||||
and having mcount return has shown a 10% overhead. By converting
|
all these references into a single table.
|
||||||
it to a nop, there is no measurable overhead to the system.
|
|
||||||
|
On boot up, before SMP is initialized, the dynamic ftrace code
|
||||||
|
scans this table and updates all the locations into nops. It also
|
||||||
|
records the locations, which are added to the available_filter_functions
|
||||||
|
list. Modules are processed as they are loaded and before they are
|
||||||
|
executed. When a module is unloaded, it also removes its functions from
|
||||||
|
the ftrace function list. This is automatic in the module unload
|
||||||
|
code, and the module author does not need to worry about it.
|
||||||
|
|
||||||
|
When tracing is enabled, kstop_machine is called to prevent races
|
||||||
|
with the CPUS executing code being modified (which can cause the
|
||||||
|
CPU to do undesireable things), and the nops are patched back
|
||||||
|
to calls. But this time, they do not call mcount (which is just
|
||||||
|
a function stub). They now call into the ftrace infrastructure.
|
||||||
|
|
||||||
One special side-effect to the recording of the functions being
|
One special side-effect to the recording of the functions being
|
||||||
traced is that we can now selectively choose which functions we
|
traced is that we can now selectively choose which functions we
|
||||||
@ -1251,36 +1256,6 @@ Produces:
|
|||||||
|
|
||||||
We can see that there's no more lock or preempt tracing.
|
We can see that there's no more lock or preempt tracing.
|
||||||
|
|
||||||
ftraced
|
|
||||||
-------
|
|
||||||
|
|
||||||
As mentioned above, when dynamic ftrace is configured in, a kernel
|
|
||||||
thread wakes up once a second and checks to see if there are mcount
|
|
||||||
calls that need to be converted into nops. If there are not any, then
|
|
||||||
it simply goes back to sleep. But if there are some, it will call
|
|
||||||
kstop_machine to convert the calls to nops.
|
|
||||||
|
|
||||||
There may be a case in which you do not want this added latency.
|
|
||||||
Perhaps you are doing some audio recording and this activity might
|
|
||||||
cause skips in the playback. There is an interface to disable
|
|
||||||
and enable the "ftraced" kernel thread.
|
|
||||||
|
|
||||||
# echo 0 > /debug/tracing/ftraced_enabled
|
|
||||||
|
|
||||||
This will disable the calling of kstop_machine to update the
|
|
||||||
mcount calls to nops. Remember that there is a large overhead
|
|
||||||
to calling mcount. Without this kernel thread, that overhead will
|
|
||||||
exist.
|
|
||||||
|
|
||||||
If there are recorded calls to mcount, any write to the ftraced_enabled
|
|
||||||
file will cause the kstop_machine to run. This means that a
|
|
||||||
user can manually perform the updates when they want to by simply
|
|
||||||
echoing a '0' into the ftraced_enabled file.
|
|
||||||
|
|
||||||
The updates are also done at the beginning of enabling a tracer
|
|
||||||
that uses ftrace function recording.
|
|
||||||
|
|
||||||
|
|
||||||
trace_pipe
|
trace_pipe
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -1289,14 +1264,14 @@ on the tracing is different. Every read from trace_pipe is consumed.
|
|||||||
This means that subsequent reads will be different. The trace
|
This means that subsequent reads will be different. The trace
|
||||||
is live.
|
is live.
|
||||||
|
|
||||||
# echo ftrace > /debug/tracing/current_tracer
|
# echo function > /debug/tracing/current_tracer
|
||||||
# cat /debug/tracing/trace_pipe > /tmp/trace.out &
|
# cat /debug/tracing/trace_pipe > /tmp/trace.out &
|
||||||
[1] 4153
|
[1] 4153
|
||||||
# echo 1 > /debug/tracing/tracing_enabled
|
# echo 1 > /debug/tracing/tracing_enabled
|
||||||
# usleep 1
|
# usleep 1
|
||||||
# echo 0 > /debug/tracing/tracing_enabled
|
# echo 0 > /debug/tracing/tracing_enabled
|
||||||
# cat /debug/tracing/trace
|
# cat /debug/tracing/trace
|
||||||
# tracer: ftrace
|
# tracer: function
|
||||||
#
|
#
|
||||||
# TASK-PID CPU# TIMESTAMP FUNCTION
|
# TASK-PID CPU# TIMESTAMP FUNCTION
|
||||||
# | | | | |
|
# | | | | |
|
||||||
@ -1317,7 +1292,7 @@ is live.
|
|||||||
|
|
||||||
Note, reading the trace_pipe file will block until more input is added.
|
Note, reading the trace_pipe file will block until more input is added.
|
||||||
By changing the tracer, trace_pipe will issue an EOF. We needed
|
By changing the tracer, trace_pipe will issue an EOF. We needed
|
||||||
to set the ftrace tracer _before_ cating the trace_pipe file.
|
to set the function tracer _before_ we "cat" the trace_pipe file.
|
||||||
|
|
||||||
|
|
||||||
trace entries
|
trace entries
|
||||||
@ -1334,10 +1309,10 @@ number of entries.
|
|||||||
65620
|
65620
|
||||||
|
|
||||||
Note, to modify this, you must have tracing completely disabled. To do that,
|
Note, to modify this, you must have tracing completely disabled. To do that,
|
||||||
echo "none" into the current_tracer. If the current_tracer is not set
|
echo "nop" into the current_tracer. If the current_tracer is not set
|
||||||
to "none", an EINVAL error will be returned.
|
to "nop", an EINVAL error will be returned.
|
||||||
|
|
||||||
# echo none > /debug/tracing/current_tracer
|
# echo nop > /debug/tracing/current_tracer
|
||||||
# echo 100000 > /debug/tracing/trace_entries
|
# echo 100000 > /debug/tracing/trace_entries
|
||||||
# cat /debug/tracing/trace_entries
|
# cat /debug/tracing/trace_entries
|
||||||
100045
|
100045
|
||||||
|
67
Documentation/hwmon/adt7462
Normal file
67
Documentation/hwmon/adt7462
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
Kernel driver adt7462
|
||||||
|
======================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
* Analog Devices ADT7462
|
||||||
|
Prefix: 'adt7462'
|
||||||
|
Addresses scanned: I2C 0x58, 0x5C
|
||||||
|
Datasheet: Publicly available at the Analog Devices website
|
||||||
|
|
||||||
|
Author: Darrick J. Wong
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This driver implements support for the Analog Devices ADT7462 chip family.
|
||||||
|
|
||||||
|
This chip is a bit of a beast. It has 8 counters for measuring fan speed. It
|
||||||
|
can also measure 13 voltages or 4 temperatures, or various combinations of the
|
||||||
|
two. See the chip documentation for more details about the exact set of
|
||||||
|
configurations. This driver does not allow one to configure the chip; that is
|
||||||
|
left to the system designer.
|
||||||
|
|
||||||
|
A sophisticated control system for the PWM outputs is designed into the ADT7462
|
||||||
|
that allows fan speed to be adjusted automatically based on any of the three
|
||||||
|
temperature sensors. Each PWM output is individually adjustable and
|
||||||
|
programmable. Once configured, the ADT7462 will adjust the PWM outputs in
|
||||||
|
response to the measured temperatures without further host intervention. This
|
||||||
|
feature can also be disabled for manual control of the PWM's.
|
||||||
|
|
||||||
|
Each of the measured inputs (voltage, temperature, fan speed) has
|
||||||
|
corresponding high/low limit values. The ADT7462 will signal an ALARM if
|
||||||
|
any measured value exceeds either limit.
|
||||||
|
|
||||||
|
The ADT7462 samples all inputs continuously. The driver will not read
|
||||||
|
the registers more often than once every other second. Further,
|
||||||
|
configuration data is only read once per minute.
|
||||||
|
|
||||||
|
Special Features
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The ADT7462 have a 10-bit ADC and can therefore measure temperatures
|
||||||
|
with 0.25 degC resolution.
|
||||||
|
|
||||||
|
The Analog Devices datasheet is very detailed and describes a procedure for
|
||||||
|
determining an optimal configuration for the automatic PWM control.
|
||||||
|
|
||||||
|
The driver will report sensor labels when it is able to determine that
|
||||||
|
information from the configuration registers.
|
||||||
|
|
||||||
|
Configuration Notes
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Besides standard interfaces driver adds the following:
|
||||||
|
|
||||||
|
* PWM Control
|
||||||
|
|
||||||
|
* pwm#_auto_point1_pwm and temp#_auto_point1_temp and
|
||||||
|
* pwm#_auto_point2_pwm and temp#_auto_point2_temp -
|
||||||
|
|
||||||
|
point1: Set the pwm speed at a lower temperature bound.
|
||||||
|
point2: Set the pwm speed at a higher temperature bound.
|
||||||
|
|
||||||
|
The ADT7462 will scale the pwm between the lower and higher pwm speed when
|
||||||
|
the temperature is between the two temperature boundaries. PWM values range
|
||||||
|
from 0 (off) to 255 (full speed). Fan speed will be set to maximum when the
|
||||||
|
temperature sensor associated with the PWM control exceeds temp#_max.
|
||||||
|
|
49
Documentation/hwmon/lis3lv02d
Normal file
49
Documentation/hwmon/lis3lv02d
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
Kernel driver lis3lv02d
|
||||||
|
==================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
|
||||||
|
* STMicroelectronics LIS3LV02DL and LIS3LV02DQ
|
||||||
|
|
||||||
|
Author:
|
||||||
|
Yan Burman <burman.yan@gmail.com>
|
||||||
|
Eric Piel <eric.piel@tremplin-utc.net>
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This driver provides support for the accelerometer found in various HP laptops
|
||||||
|
sporting the feature officially called "HP Mobile Data Protection System 3D" or
|
||||||
|
"HP 3D DriveGuard". It detect automatically laptops with this sensor. Known models
|
||||||
|
(for now the HP 2133, nc6420, nc2510, nc8510, nc84x0, nw9440 and nx9420) will
|
||||||
|
have their axis automatically oriented on standard way (eg: you can directly
|
||||||
|
play neverball). The accelerometer data is readable via
|
||||||
|
/sys/devices/platform/lis3lv02d.
|
||||||
|
|
||||||
|
Sysfs attributes under /sys/devices/platform/lis3lv02d/:
|
||||||
|
position - 3D position that the accelerometer reports. Format: "(x,y,z)"
|
||||||
|
calibrate - read: values (x, y, z) that are used as the base for input class device operation.
|
||||||
|
write: forces the base to be recalibrated with the current position.
|
||||||
|
rate - reports the sampling rate of the accelerometer device in HZ
|
||||||
|
|
||||||
|
This driver also provides an absolute input class device, allowing
|
||||||
|
the laptop to act as a pinball machine-esque joystick.
|
||||||
|
|
||||||
|
Axes orientation
|
||||||
|
----------------
|
||||||
|
|
||||||
|
For better compatibility between the various laptops. The values reported by
|
||||||
|
the accelerometer are converted into a "standard" organisation of the axes
|
||||||
|
(aka "can play neverball out of the box"):
|
||||||
|
* When the laptop is horizontal the position reported is about 0 for X and Y
|
||||||
|
and a positive value for Z
|
||||||
|
* If the left side is elevated, X increases (becomes positive)
|
||||||
|
* If the front side (where the touchpad is) is elevated, Y decreases (becomes negative)
|
||||||
|
* If the laptop is put upside-down, Z becomes negative
|
||||||
|
|
||||||
|
If your laptop model is not recognized (cf "dmesg"), you can send an email to the
|
||||||
|
authors to add it to the database. When reporting a new laptop, please include
|
||||||
|
the output of "dmidecode" plus the value of /sys/devices/platform/lis3lv02d/position
|
||||||
|
in these four cases.
|
||||||
|
|
31
Documentation/ics932s401
Normal file
31
Documentation/ics932s401
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
Kernel driver ics932s401
|
||||||
|
======================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
* IDT ICS932S401
|
||||||
|
Prefix: 'ics932s401'
|
||||||
|
Addresses scanned: I2C 0x69
|
||||||
|
Datasheet: Publically available at the IDT website
|
||||||
|
|
||||||
|
Author: Darrick J. Wong
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This driver implements support for the IDT ICS932S401 chip family.
|
||||||
|
|
||||||
|
This chip has 4 clock outputs--a base clock for the CPU (which is likely
|
||||||
|
multiplied to get the real CPU clock), a system clock, a PCI clock, a USB
|
||||||
|
clock, and a reference clock. The driver reports selected and actual
|
||||||
|
frequency. If spread spectrum mode is enabled, the driver also reports by what
|
||||||
|
percent the clock signal is being spread, which should be between 0 and -0.5%.
|
||||||
|
All frequencies are reported in KHz.
|
||||||
|
|
||||||
|
The ICS932S401 monitors all inputs continuously. The driver will not read
|
||||||
|
the registers more often than once every other second.
|
||||||
|
|
||||||
|
Special Features
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The clocks could be reprogrammed to increase system speed. I will not help you
|
||||||
|
do this, as you risk damaging your system!
|
@ -20,10 +20,11 @@ pressed or released a BUTTON_IRQ happens. The driver could look like:
|
|||||||
|
|
||||||
static struct input_dev *button_dev;
|
static struct input_dev *button_dev;
|
||||||
|
|
||||||
static void button_interrupt(int irq, void *dummy, struct pt_regs *fp)
|
static irqreturn_t button_interrupt(int irq, void *dummy)
|
||||||
{
|
{
|
||||||
input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1);
|
input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1);
|
||||||
input_sync(button_dev);
|
input_sync(button_dev);
|
||||||
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init button_init(void)
|
static int __init button_init(void)
|
||||||
|
10
Documentation/ioctl/00-INDEX
Normal file
10
Documentation/ioctl/00-INDEX
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
00-INDEX
|
||||||
|
- this file
|
||||||
|
cdrom.txt
|
||||||
|
- summary of CDROM ioctl calls
|
||||||
|
hdio.txt
|
||||||
|
- summary of HDIO_ ioctl calls
|
||||||
|
ioctl-decoding.txt
|
||||||
|
- how to decode the bits of an IOCTL code
|
||||||
|
ioctl-number.txt
|
||||||
|
- how to implement and register device/driver ioctl calls
|
@ -198,59 +198,42 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
that require a timer override, but don't have
|
that require a timer override, but don't have
|
||||||
HPET
|
HPET
|
||||||
|
|
||||||
acpi.debug_layer= [HW,ACPI]
|
acpi_backlight= [HW,ACPI]
|
||||||
|
acpi_backlight=vendor
|
||||||
|
acpi_backlight=video
|
||||||
|
If set to vendor, prefer vendor specific driver
|
||||||
|
(e.g. thinkpad_acpi, sony_acpi, etc.) instead
|
||||||
|
of the ACPI video.ko driver.
|
||||||
|
|
||||||
|
acpi_display_output= [HW,ACPI]
|
||||||
|
acpi_display_output=vendor
|
||||||
|
acpi_display_output=video
|
||||||
|
See above.
|
||||||
|
|
||||||
|
acpi.debug_layer= [HW,ACPI,ACPI_DEBUG]
|
||||||
|
acpi.debug_level= [HW,ACPI,ACPI_DEBUG]
|
||||||
Format: <int>
|
Format: <int>
|
||||||
Each bit of the <int> indicates an ACPI debug layer,
|
CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
|
||||||
1: enable, 0: disable. It is useful for boot time
|
debug output. Bits in debug_layer correspond to a
|
||||||
debugging. After system has booted up, it can be set
|
_COMPONENT in an ACPI source file, e.g.,
|
||||||
via /sys/module/acpi/parameters/debug_layer.
|
#define _COMPONENT ACPI_PCI_COMPONENT
|
||||||
CONFIG_ACPI_DEBUG must be enabled for this to produce any output.
|
Bits in debug_level correspond to a level in
|
||||||
Available bits (add the numbers together) to enable debug output
|
ACPI_DEBUG_PRINT statements, e.g.,
|
||||||
for specific parts of the ACPI subsystem:
|
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
|
||||||
0x01 utilities 0x02 hardware 0x04 events 0x08 tables
|
See Documentation/acpi/debug.txt for more information
|
||||||
0x10 namespace 0x20 parser 0x40 dispatcher
|
about debug layers and levels.
|
||||||
0x80 executer 0x100 resources 0x200 acpica debugger
|
|
||||||
0x400 os services 0x800 acpica disassembler.
|
|
||||||
The number can be in decimal or prefixed with 0x in hex.
|
|
||||||
Warning: Many of these options can produce a lot of
|
|
||||||
output and make your system unusable. Be very careful.
|
|
||||||
|
|
||||||
acpi.debug_level= [HW,ACPI]
|
Enable AML "Debug" output, i.e., stores to the Debug
|
||||||
Format: <int>
|
object while interpreting AML:
|
||||||
Each bit of the <int> indicates an ACPI debug level,
|
acpi.debug_layer=0xffffffff acpi.debug_level=0x2
|
||||||
which corresponds to the level in an ACPI_DEBUG_PRINT
|
Enable PCI/PCI interrupt routing info messages:
|
||||||
statement. After system has booted up, this mask
|
acpi.debug_layer=0x400000 acpi.debug_level=0x4
|
||||||
can be set via /sys/module/acpi/parameters/debug_level.
|
Enable all messages related to ACPI hardware:
|
||||||
|
acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
|
||||||
|
|
||||||
CONFIG_ACPI_DEBUG must be enabled for this to produce
|
Some values produce so much output that the system is
|
||||||
any output. The number can be in decimal or prefixed
|
unusable. The "log_buf_len" parameter may be useful
|
||||||
with 0x in hex. Some of these options produce so much
|
if you need to capture more output.
|
||||||
output that the system is unusable.
|
|
||||||
|
|
||||||
The following global components are defined by the
|
|
||||||
ACPI CA:
|
|
||||||
0x01 error
|
|
||||||
0x02 warn
|
|
||||||
0x04 init
|
|
||||||
0x08 debug object
|
|
||||||
0x10 info
|
|
||||||
0x20 init names
|
|
||||||
0x40 parse
|
|
||||||
0x80 load
|
|
||||||
0x100 dispatch
|
|
||||||
0x200 execute
|
|
||||||
0x400 names
|
|
||||||
0x800 operation region
|
|
||||||
0x1000 bfield
|
|
||||||
0x2000 tables
|
|
||||||
0x4000 values
|
|
||||||
0x8000 objects
|
|
||||||
0x10000 resources
|
|
||||||
0x20000 user requests
|
|
||||||
0x40000 package
|
|
||||||
The number can be in decimal or prefixed with 0x in hex.
|
|
||||||
Warning: Many of these options can produce a lot of
|
|
||||||
output and make your system unusable. Be very careful.
|
|
||||||
|
|
||||||
acpi.power_nocheck= [HW,ACPI]
|
acpi.power_nocheck= [HW,ACPI]
|
||||||
Format: 1/0 enable/disable the check of power state.
|
Format: 1/0 enable/disable the check of power state.
|
||||||
@ -311,7 +294,9 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
Possible values are:
|
Possible values are:
|
||||||
isolate - enable device isolation (each device, as far
|
isolate - enable device isolation (each device, as far
|
||||||
as possible, will get its own protection
|
as possible, will get its own protection
|
||||||
domain)
|
domain) [default]
|
||||||
|
share - put every device behind one IOMMU into the
|
||||||
|
same protection domain
|
||||||
fullflush - enable flushing of IO/TLB entries when
|
fullflush - enable flushing of IO/TLB entries when
|
||||||
they are unmapped. Otherwise they are
|
they are unmapped. Otherwise they are
|
||||||
flushed before they will be reused, which
|
flushed before they will be reused, which
|
||||||
@ -646,7 +631,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
digiepca= [HW,SERIAL]
|
digiepca= [HW,SERIAL]
|
||||||
See drivers/char/README.epca and
|
See drivers/char/README.epca and
|
||||||
Documentation/digiepca.txt.
|
Documentation/serial/digiepca.txt.
|
||||||
|
|
||||||
disable_mtrr_cleanup [X86]
|
disable_mtrr_cleanup [X86]
|
||||||
enable_mtrr_cleanup [X86]
|
enable_mtrr_cleanup [X86]
|
||||||
@ -757,7 +742,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
See header of drivers/scsi/fdomain.c.
|
See header of drivers/scsi/fdomain.c.
|
||||||
|
|
||||||
floppy= [HW]
|
floppy= [HW]
|
||||||
See Documentation/floppy.txt.
|
See Documentation/blockdev/floppy.txt.
|
||||||
|
|
||||||
force_pal_cache_flush
|
force_pal_cache_flush
|
||||||
[IA-64] Avoid check_sal_cache_flush which may hang on
|
[IA-64] Avoid check_sal_cache_flush which may hang on
|
||||||
@ -1118,7 +1103,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
the same attribute, the last one is used.
|
the same attribute, the last one is used.
|
||||||
|
|
||||||
load_ramdisk= [RAM] List of ramdisks to load from floppy
|
load_ramdisk= [RAM] List of ramdisks to load from floppy
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/blockdev/ramdisk.txt.
|
||||||
|
|
||||||
lockd.nlm_grace_period=P [NFS] Assign grace period.
|
lockd.nlm_grace_period=P [NFS] Assign grace period.
|
||||||
Format: <integer>
|
Format: <integer>
|
||||||
@ -1210,8 +1195,8 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
it is equivalent to "nosmp", which also disables
|
it is equivalent to "nosmp", which also disables
|
||||||
the IO APIC.
|
the IO APIC.
|
||||||
|
|
||||||
max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or
|
max_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory greater than
|
||||||
equal to this physical address is ignored.
|
or equal to this physical address is ignored.
|
||||||
|
|
||||||
max_luns= [SCSI] Maximum number of LUNs to probe.
|
max_luns= [SCSI] Maximum number of LUNs to probe.
|
||||||
Should be between 1 and 2^32-1.
|
Should be between 1 and 2^32-1.
|
||||||
@ -1311,6 +1296,9 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
mga= [HW,DRM]
|
mga= [HW,DRM]
|
||||||
|
|
||||||
|
min_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory below this
|
||||||
|
physical address is ignored.
|
||||||
|
|
||||||
mminit_loglevel=
|
mminit_loglevel=
|
||||||
[KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
|
[KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
|
||||||
parameter allows control of the logging verbosity for
|
parameter allows control of the logging verbosity for
|
||||||
@ -1613,7 +1601,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
pcd. [PARIDE]
|
pcd. [PARIDE]
|
||||||
See header of drivers/block/paride/pcd.c.
|
See header of drivers/block/paride/pcd.c.
|
||||||
See also Documentation/paride.txt.
|
See also Documentation/blockdev/paride.txt.
|
||||||
|
|
||||||
pci=option[,option...] [PCI] various PCI subsystem options:
|
pci=option[,option...] [PCI] various PCI subsystem options:
|
||||||
off [X86] don't probe for the PCI bus
|
off [X86] don't probe for the PCI bus
|
||||||
@ -1714,7 +1702,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
pcmv= [HW,PCMCIA] BadgePAD 4
|
pcmv= [HW,PCMCIA] BadgePAD 4
|
||||||
|
|
||||||
pd. [PARIDE]
|
pd. [PARIDE]
|
||||||
See Documentation/paride.txt.
|
See Documentation/blockdev/paride.txt.
|
||||||
|
|
||||||
pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at
|
pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at
|
||||||
boot time.
|
boot time.
|
||||||
@ -1722,10 +1710,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
See arch/parisc/kernel/pdc_chassis.c
|
See arch/parisc/kernel/pdc_chassis.c
|
||||||
|
|
||||||
pf. [PARIDE]
|
pf. [PARIDE]
|
||||||
See Documentation/paride.txt.
|
See Documentation/blockdev/paride.txt.
|
||||||
|
|
||||||
pg. [PARIDE]
|
pg. [PARIDE]
|
||||||
See Documentation/paride.txt.
|
See Documentation/blockdev/paride.txt.
|
||||||
|
|
||||||
pirq= [SMP,APIC] Manual mp-table setup
|
pirq= [SMP,APIC] Manual mp-table setup
|
||||||
See Documentation/x86/i386/IO-APIC.txt.
|
See Documentation/x86/i386/IO-APIC.txt.
|
||||||
@ -1795,7 +1783,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk
|
prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk
|
||||||
before loading.
|
before loading.
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/blockdev/ramdisk.txt.
|
||||||
|
|
||||||
psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
|
psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
|
||||||
probe for; one of (bare|imps|exps|lifebook|any).
|
probe for; one of (bare|imps|exps|lifebook|any).
|
||||||
@ -1815,7 +1803,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
<io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>
|
<io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>
|
||||||
|
|
||||||
pt. [PARIDE]
|
pt. [PARIDE]
|
||||||
See Documentation/paride.txt.
|
See Documentation/blockdev/paride.txt.
|
||||||
|
|
||||||
pty.legacy_count=
|
pty.legacy_count=
|
||||||
[KNL] Number of legacy pty's. Overwrites compiled-in
|
[KNL] Number of legacy pty's. Overwrites compiled-in
|
||||||
@ -1829,10 +1817,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
See Documentation/md.txt.
|
See Documentation/md.txt.
|
||||||
|
|
||||||
ramdisk_blocksize= [RAM]
|
ramdisk_blocksize= [RAM]
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/blockdev/ramdisk.txt.
|
||||||
|
|
||||||
ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
|
ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
|
||||||
See Documentation/ramdisk.txt.
|
See Documentation/blockdev/ramdisk.txt.
|
||||||
|
|
||||||
rcupdate.blimit= [KNL,BOOT]
|
rcupdate.blimit= [KNL,BOOT]
|
||||||
Set maximum number of finished RCU callbacks to process
|
Set maximum number of finished RCU callbacks to process
|
||||||
@ -2164,7 +2152,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
See Documentation/sonypi.txt
|
See Documentation/sonypi.txt
|
||||||
|
|
||||||
specialix= [HW,SERIAL] Specialix multi-serial port adapter
|
specialix= [HW,SERIAL] Specialix multi-serial port adapter
|
||||||
See Documentation/specialix.txt.
|
See Documentation/serial/specialix.txt.
|
||||||
|
|
||||||
spia_io_base= [HW,MTD]
|
spia_io_base= [HW,MTD]
|
||||||
spia_fio_base=
|
spia_fio_base=
|
||||||
|
@ -149,7 +149,7 @@ static void do_test_timer(unsigned long data)
|
|||||||
int cpu;
|
int cpu;
|
||||||
|
|
||||||
/* Increment the counters */
|
/* Increment the counters */
|
||||||
on_each_cpu(test_each, NULL, 0, 1);
|
on_each_cpu(test_each, NULL, 1);
|
||||||
/* Read all the counters */
|
/* Read all the counters */
|
||||||
printk("Counters read from CPU %d\n", smp_processor_id());
|
printk("Counters read from CPU %d\n", smp_processor_id());
|
||||||
for_each_online_cpu(cpu) {
|
for_each_online_cpu(cpu) {
|
||||||
|
@ -96,7 +96,7 @@ Letting the PHY Abstraction Layer do Everything
|
|||||||
static void adjust_link(struct net_device *dev);
|
static void adjust_link(struct net_device *dev);
|
||||||
|
|
||||||
Next, you need to know the device name of the PHY connected to this device.
|
Next, you need to know the device name of the PHY connected to this device.
|
||||||
The name will look something like, "phy0:0", where the first number is the
|
The name will look something like, "0:00", where the first number is the
|
||||||
bus id, and the second is the PHY's address on that bus. Typically,
|
bus id, and the second is the PHY's address on that bus. Typically,
|
||||||
the bus is responsible for making its ID unique.
|
the bus is responsible for making its ID unique.
|
||||||
|
|
||||||
|
@ -41,25 +41,14 @@ Table of Contents
|
|||||||
VI - System-on-a-chip devices and nodes
|
VI - System-on-a-chip devices and nodes
|
||||||
1) Defining child nodes of an SOC
|
1) Defining child nodes of an SOC
|
||||||
2) Representing devices without a current OF specification
|
2) Representing devices without a current OF specification
|
||||||
a) MDIO IO device
|
a) PHY nodes
|
||||||
b) Gianfar-compatible ethernet nodes
|
b) Interrupt controllers
|
||||||
c) PHY nodes
|
c) CFI or JEDEC memory-mapped NOR flash
|
||||||
d) Interrupt controllers
|
d) 4xx/Axon EMAC ethernet nodes
|
||||||
e) I2C
|
e) Xilinx IP cores
|
||||||
f) Freescale SOC USB controllers
|
f) USB EHCI controllers
|
||||||
g) Freescale SOC SEC Security Engines
|
g) MDIO on GPIOs
|
||||||
h) Board Control and Status (BCSR)
|
h) SPI busses
|
||||||
i) Freescale QUICC Engine module (QE)
|
|
||||||
j) CFI or JEDEC memory-mapped NOR flash
|
|
||||||
k) Global Utilities Block
|
|
||||||
l) Freescale Communications Processor Module
|
|
||||||
m) Chipselect/Local Bus
|
|
||||||
n) 4xx/Axon EMAC ethernet nodes
|
|
||||||
o) Xilinx IP cores
|
|
||||||
p) Freescale Synchronous Serial Interface
|
|
||||||
q) USB EHCI controllers
|
|
||||||
r) MDIO on GPIOs
|
|
||||||
s) SPI busses
|
|
||||||
|
|
||||||
VII - Marvell Discovery mv64[345]6x System Controller chips
|
VII - Marvell Discovery mv64[345]6x System Controller chips
|
||||||
1) The /system-controller node
|
1) The /system-controller node
|
||||||
@ -1830,41 +1819,7 @@ platforms are moved over to use the flattened-device-tree model.
|
|||||||
big-endian;
|
big-endian;
|
||||||
};
|
};
|
||||||
|
|
||||||
r) Freescale Display Interface Unit
|
g) MDIO on GPIOs
|
||||||
|
|
||||||
The Freescale DIU is a LCD controller, with proper hardware, it can also
|
|
||||||
drive DVI monitors.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : should be "fsl-diu".
|
|
||||||
- reg : should contain at least address and length of the DIU register
|
|
||||||
set.
|
|
||||||
- Interrupts : one DIU interrupt should be describe here.
|
|
||||||
|
|
||||||
Example (MPC8610HPCD)
|
|
||||||
display@2c000 {
|
|
||||||
compatible = "fsl,diu";
|
|
||||||
reg = <0x2c000 100>;
|
|
||||||
interrupts = <72 2>;
|
|
||||||
interrupt-parent = <&mpic>;
|
|
||||||
};
|
|
||||||
|
|
||||||
s) Freescale on board FPGA
|
|
||||||
|
|
||||||
This is the memory-mapped registers for on board FPGA.
|
|
||||||
|
|
||||||
Required properities:
|
|
||||||
- compatible : should be "fsl,fpga-pixis".
|
|
||||||
- reg : should contain the address and the lenght of the FPPGA register
|
|
||||||
set.
|
|
||||||
|
|
||||||
Example (MPC8610HPCD)
|
|
||||||
board-control@e8000000 {
|
|
||||||
compatible = "fsl,fpga-pixis";
|
|
||||||
reg = <0xe8000000 32>;
|
|
||||||
};
|
|
||||||
|
|
||||||
r) MDIO on GPIOs
|
|
||||||
|
|
||||||
Currently defined compatibles:
|
Currently defined compatibles:
|
||||||
- virtual,gpio-mdio
|
- virtual,gpio-mdio
|
||||||
@ -1884,7 +1839,7 @@ platforms are moved over to use the flattened-device-tree model.
|
|||||||
&qe_pio_c 6>;
|
&qe_pio_c 6>;
|
||||||
};
|
};
|
||||||
|
|
||||||
s) SPI (Serial Peripheral Interface) busses
|
h) SPI (Serial Peripheral Interface) busses
|
||||||
|
|
||||||
SPI busses can be described with a node for the SPI master device
|
SPI busses can be described with a node for the SPI master device
|
||||||
and a set of child nodes for each SPI slave on the bus. For this
|
and a set of child nodes for each SPI slave on the bus. For this
|
||||||
|
35
Documentation/printk-formats.txt
Normal file
35
Documentation/printk-formats.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
If variable is of Type, use printk format specifier:
|
||||||
|
---------------------------------------------------------
|
||||||
|
int %d or %x
|
||||||
|
unsigned int %u or %x
|
||||||
|
long %ld or %lx
|
||||||
|
unsigned long %lu or %lx
|
||||||
|
long long %lld or %llx
|
||||||
|
unsigned long long %llu or %llx
|
||||||
|
size_t %zu or %zx
|
||||||
|
ssize_t %zd or %zx
|
||||||
|
|
||||||
|
Raw pointer value SHOULD be printed with %p.
|
||||||
|
|
||||||
|
u64 SHOULD be printed with %llu/%llx, (unsigned long long):
|
||||||
|
|
||||||
|
printk("%llu", (unsigned long long)u64_var);
|
||||||
|
|
||||||
|
s64 SHOULD be printed with %lld/%llx, (long long):
|
||||||
|
|
||||||
|
printk("%lld", (long long)s64_var);
|
||||||
|
|
||||||
|
If <type> is dependent on a config option for its size (e.g., sector_t,
|
||||||
|
blkcnt_t, phys_addr_t, resource_size_t) or is architecture-dependent
|
||||||
|
for its size (e.g., tcflag_t), use a format specifier of its largest
|
||||||
|
possible type and explicitly cast to it. Example:
|
||||||
|
|
||||||
|
printk("test: sector number/total blocks: %llu/%llu\n",
|
||||||
|
(unsigned long long)sector, (unsigned long long)blockcount);
|
||||||
|
|
||||||
|
Reminder: sizeof() result is of type size_t.
|
||||||
|
|
||||||
|
Thank you for your cooperation and attention.
|
||||||
|
|
||||||
|
|
||||||
|
By Randy Dunlap <rdunlap@xenotime.net>
|
24
Documentation/serial/00-INDEX
Normal file
24
Documentation/serial/00-INDEX
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
00-INDEX
|
||||||
|
- this file.
|
||||||
|
README.cycladesZ
|
||||||
|
- info on Cyclades-Z firmware loading.
|
||||||
|
computone.txt
|
||||||
|
- info on Computone Intelliport II/Plus Multiport Serial Driver.
|
||||||
|
digiepca.txt
|
||||||
|
- info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
|
||||||
|
hayes-esp.txt
|
||||||
|
- info on using the Hayes ESP serial driver.
|
||||||
|
moxa-smartio
|
||||||
|
- file with info on installing/using Moxa multiport serial driver.
|
||||||
|
riscom8.txt
|
||||||
|
- notes on using the RISCom/8 multi-port serial driver.
|
||||||
|
rocket.txt
|
||||||
|
- info on the Comtrol RocketPort multiport serial driver.
|
||||||
|
specialix.txt
|
||||||
|
- info on hardware/driver for specialix IO8+ multiport serial card.
|
||||||
|
stallion.txt
|
||||||
|
- info on using the Stallion multiport serial driver.
|
||||||
|
sx.txt
|
||||||
|
- info on the Specialix SX/SI multiport serial driver.
|
||||||
|
tty.txt
|
||||||
|
- guide to the locking policies of the tty layer.
|
@ -247,7 +247,7 @@ shar archive to make it easier to extract the script from the documentation.
|
|||||||
To create the ip2mkdev shell script change to a convenient directory (/tmp
|
To create the ip2mkdev shell script change to a convenient directory (/tmp
|
||||||
works just fine) and run the following command:
|
works just fine) and run the following command:
|
||||||
|
|
||||||
unshar Documentation/computone.txt
|
unshar Documentation/serial/computone.txt
|
||||||
(This file)
|
(This file)
|
||||||
|
|
||||||
You should now have a file ip2mkdev in your current working directory with
|
You should now have a file ip2mkdev in your current working directory with
|
@ -1072,10 +1072,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
|||||||
ref Reference board
|
ref Reference board
|
||||||
dell-m4-1 Dell desktops
|
dell-m4-1 Dell desktops
|
||||||
dell-m4-2 Dell desktops
|
dell-m4-2 Dell desktops
|
||||||
|
dell-m4-3 Dell desktops
|
||||||
|
|
||||||
STAC92HD73*
|
STAC92HD73*
|
||||||
ref Reference board
|
ref Reference board
|
||||||
dell-m6 Dell desktops
|
dell-m6-amic Dell desktops/laptops with analog mics
|
||||||
|
dell-m6-dmic Dell desktops/laptops with digital mics
|
||||||
|
dell-m6 Dell desktops/laptops with both type of mics
|
||||||
|
|
||||||
STAC9872
|
STAC9872
|
||||||
vaio Setup for VAIO FE550G/SZ110
|
vaio Setup for VAIO FE550G/SZ110
|
||||||
|
@ -215,7 +215,7 @@ So for example arch/.../mach-*/board-*.c files might have code like:
|
|||||||
/* if your mach-* infrastructure doesn't support kernels that can
|
/* if your mach-* infrastructure doesn't support kernels that can
|
||||||
* run on multiple boards, pdata wouldn't benefit from "__init".
|
* run on multiple boards, pdata wouldn't benefit from "__init".
|
||||||
*/
|
*/
|
||||||
static struct mysoc_spi_data __init pdata = { ... };
|
static struct mysoc_spi_data __initdata pdata = { ... };
|
||||||
|
|
||||||
static __init board_init(void)
|
static __init board_init(void)
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,7 @@ $ echo mmiotrace > /debug/tracing/current_tracer
|
|||||||
$ cat /debug/tracing/trace_pipe > mydump.txt &
|
$ cat /debug/tracing/trace_pipe > mydump.txt &
|
||||||
Start X or whatever.
|
Start X or whatever.
|
||||||
$ echo "X is up" > /debug/tracing/trace_marker
|
$ echo "X is up" > /debug/tracing/trace_marker
|
||||||
$ echo none > /debug/tracing/current_tracer
|
$ echo nop > /debug/tracing/current_tracer
|
||||||
Check for lost events.
|
Check for lost events.
|
||||||
|
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ which action. It is recommended to place descriptive markers about what you
|
|||||||
do.
|
do.
|
||||||
|
|
||||||
Shut down mmiotrace (requires root privileges):
|
Shut down mmiotrace (requires root privileges):
|
||||||
$ echo none > /debug/tracing/current_tracer
|
$ echo nop > /debug/tracing/current_tracer
|
||||||
The 'cat' process exits. If it does not, kill it by issuing 'fg' command and
|
The 'cat' process exits. If it does not, kill it by issuing 'fg' command and
|
||||||
pressing ctrl+c.
|
pressing ctrl+c.
|
||||||
|
|
||||||
@ -81,7 +81,9 @@ are:
|
|||||||
$ cat /debug/tracing/trace_entries
|
$ cat /debug/tracing/trace_entries
|
||||||
gives you a number. Approximately double this number and write it back, for
|
gives you a number. Approximately double this number and write it back, for
|
||||||
instance:
|
instance:
|
||||||
|
$ echo 0 > /debug/tracing/tracing_enabled
|
||||||
$ echo 128000 > /debug/tracing/trace_entries
|
$ echo 128000 > /debug/tracing/trace_entries
|
||||||
|
$ echo 1 > /debug/tracing/tracing_enabled
|
||||||
Then start again from the top.
|
Then start again from the top.
|
||||||
|
|
||||||
If you are doing a trace for a driver project, e.g. Nouveau, you should also
|
If you are doing a trace for a driver project, e.g. Nouveau, you should also
|
||||||
|
@ -114,11 +114,11 @@ modules.
|
|||||||
Then you must load the gadget serial driver. To load it as an
|
Then you must load the gadget serial driver. To load it as an
|
||||||
ACM device (recommended for interoperability), do this:
|
ACM device (recommended for interoperability), do this:
|
||||||
|
|
||||||
modprobe g_serial use_acm=1
|
modprobe g_serial
|
||||||
|
|
||||||
To load it as a vendor specific bulk in/out device, do this:
|
To load it as a vendor specific bulk in/out device, do this:
|
||||||
|
|
||||||
modprobe g_serial
|
modprobe g_serial use_acm=0
|
||||||
|
|
||||||
This will also automatically load the underlying gadget peripheral
|
This will also automatically load the underlying gadget peripheral
|
||||||
controller driver. This must be done each time you reboot the gadget
|
controller driver. This must be done each time you reboot the gadget
|
||||||
|
@ -49,8 +49,10 @@ it and 002/048 sometime later.
|
|||||||
|
|
||||||
These files can be read as binary data. The binary data consists
|
These files can be read as binary data. The binary data consists
|
||||||
of first the device descriptor, then the descriptors for each
|
of first the device descriptor, then the descriptors for each
|
||||||
configuration of the device. That information is also shown in
|
configuration of the device. Multi-byte fields in the device and
|
||||||
text form by the /proc/bus/usb/devices file, described later.
|
configuration descriptors, but not other descriptors, are converted
|
||||||
|
to host endianness by the kernel. This information is also shown
|
||||||
|
in text form by the /proc/bus/usb/devices file, described later.
|
||||||
|
|
||||||
These files may also be used to write user-level drivers for the USB
|
These files may also be used to write user-level drivers for the USB
|
||||||
devices. You would open the /proc/bus/usb/BBB/DDD file read/write,
|
devices. You would open the /proc/bus/usb/BBB/DDD file read/write,
|
||||||
|
@ -34,11 +34,12 @@ if usbmon is built into the kernel.
|
|||||||
Verify that bus sockets are present.
|
Verify that bus sockets are present.
|
||||||
|
|
||||||
# ls /sys/kernel/debug/usbmon
|
# ls /sys/kernel/debug/usbmon
|
||||||
0s 0t 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
|
0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
|
||||||
#
|
#
|
||||||
|
|
||||||
Now you can choose to either use the sockets numbered '0' (to capture packets on
|
Now you can choose to either use the socket '0u' (to capture packets on all
|
||||||
all buses), and skip to step #3, or find the bus used by your device with step #2.
|
buses), and skip to step #3, or find the bus used by your device with step #2.
|
||||||
|
This allows to filter away annoying devices that talk continuously.
|
||||||
|
|
||||||
2. Find which bus connects to the desired device
|
2. Find which bus connects to the desired device
|
||||||
|
|
||||||
@ -99,8 +100,9 @@ on the event type, but there is a set of words, common for all types.
|
|||||||
|
|
||||||
Here is the list of words, from left to right:
|
Here is the list of words, from left to right:
|
||||||
|
|
||||||
- URB Tag. This is used to identify URBs is normally a kernel mode address
|
- URB Tag. This is used to identify URBs, and is normally an in-kernel address
|
||||||
of the URB structure in hexadecimal.
|
of the URB structure in hexadecimal, but can be a sequence number or any
|
||||||
|
other unique string, within reason.
|
||||||
|
|
||||||
- Timestamp in microseconds, a decimal number. The timestamp's resolution
|
- Timestamp in microseconds, a decimal number. The timestamp's resolution
|
||||||
depends on available clock, and so it can be much worse than a microsecond
|
depends on available clock, and so it can be much worse than a microsecond
|
||||||
|
@ -27,8 +27,8 @@ audio
|
|||||||
sound card) should be possible, but there is no code yet ...
|
sound card) should be possible, but there is no code yet ...
|
||||||
|
|
||||||
vbi
|
vbi
|
||||||
- some code present. Doesn't crash any more, but also doesn't
|
- Code present. Works for NTSC closed caption. PAL and other
|
||||||
work yet ...
|
TV norms may or may not work.
|
||||||
|
|
||||||
|
|
||||||
how to add support for new cards
|
how to add support for new cards
|
||||||
|
118
Documentation/video4linux/si470x.txt
Normal file
118
Documentation/video4linux/si470x.txt
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers
|
||||||
|
|
||||||
|
Copyright (c) 2008 Tobias Lorenz <tobias.lorenz@gmx.net>
|
||||||
|
|
||||||
|
|
||||||
|
Information from Silicon Labs
|
||||||
|
=============================
|
||||||
|
Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the
|
||||||
|
most often used radio receivers in cell phones. Usually they are connected with
|
||||||
|
I2C. But SiLabs also provides a reference design, which integrates this IC,
|
||||||
|
together with a small microcontroller C8051F321, to form a USB radio.
|
||||||
|
Part of this reference design is also a radio application in binary and source
|
||||||
|
code. The software also contains an automatic firmware upgrade to the most
|
||||||
|
current version. Information on these can be downloaded here:
|
||||||
|
http://www.silabs.com/usbradio
|
||||||
|
|
||||||
|
|
||||||
|
Supported ICs
|
||||||
|
=============
|
||||||
|
The following ICs have a very similar register set, so that they are or will be
|
||||||
|
supported somewhen by the driver:
|
||||||
|
- Si4700: FM radio receiver
|
||||||
|
- Si4701: FM radio receiver, RDS Support
|
||||||
|
- Si4702: FM radio receiver
|
||||||
|
- Si4703: FM radio receiver, RDS Support
|
||||||
|
- Si4704: FM radio receiver, no external antenna required
|
||||||
|
- Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O
|
||||||
|
- Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS
|
||||||
|
Support
|
||||||
|
- Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support
|
||||||
|
- Si4708: Smallest FM receivers
|
||||||
|
- Si4709: Smallest FM receivers, RDS Support
|
||||||
|
More information on these can be downloaded here:
|
||||||
|
http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx
|
||||||
|
|
||||||
|
|
||||||
|
Supported USB devices
|
||||||
|
=====================
|
||||||
|
Currently the following USB radios (vendor:product) with the Silicon Labs si470x
|
||||||
|
chips are known to work:
|
||||||
|
- 10c4:818a: Silicon Labs USB FM Radio Reference Design
|
||||||
|
- 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF)
|
||||||
|
- 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)
|
||||||
|
|
||||||
|
|
||||||
|
Software
|
||||||
|
========
|
||||||
|
Testing is usually done with most application under Debian/testing:
|
||||||
|
- fmtools - Utility for managing FM tuner cards
|
||||||
|
- gnomeradio - FM-radio tuner for the GNOME desktop
|
||||||
|
- gradio - GTK FM radio tuner
|
||||||
|
- kradio - Comfortable Radio Application for KDE
|
||||||
|
- radio - ncurses-based radio application
|
||||||
|
|
||||||
|
There is also a library libv4l, which can be used. It's going to have a function
|
||||||
|
for frequency seeking, either by using hardware functionality as in radio-si470x
|
||||||
|
or by implementing a function as we currently have in every of the mentioned
|
||||||
|
programs. Somewhen the radio programs should make use of libv4l.
|
||||||
|
|
||||||
|
For processing RDS information, there is a project ongoing at:
|
||||||
|
http://rdsd.berlios.de/
|
||||||
|
|
||||||
|
There is currently no project for making TMC sentences human readable.
|
||||||
|
|
||||||
|
|
||||||
|
Audio Listing
|
||||||
|
=============
|
||||||
|
USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to
|
||||||
|
also select SND_USB_AUDIO, as this is required to get sound from the radio. For
|
||||||
|
listing you have to redirect the sound, for example using one of the following
|
||||||
|
commands.
|
||||||
|
|
||||||
|
If you just want to test audio (very poor quality):
|
||||||
|
cat /dev/dsp1 > /dev/dsp
|
||||||
|
|
||||||
|
If you use OSS try:
|
||||||
|
sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
|
||||||
|
|
||||||
|
If you use arts try:
|
||||||
|
arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
|
||||||
|
|
||||||
|
|
||||||
|
Module Parameters
|
||||||
|
=================
|
||||||
|
After loading the module, you still have access to some of them in the sysfs
|
||||||
|
mount under /sys/module/radio_si470x/parameters. The contents of read-only files
|
||||||
|
(0444) are not updated, even if space, band and de are changed using private
|
||||||
|
video controls. The others are runtime changeable.
|
||||||
|
|
||||||
|
|
||||||
|
Errors
|
||||||
|
======
|
||||||
|
Increase tune_timeout, if you often get -EIO errors.
|
||||||
|
|
||||||
|
When timed out or band limit is reached, hw_freq_seek returns -EAGAIN.
|
||||||
|
|
||||||
|
If you get any errors from snd_usb_audio, please report them to the ALSA people.
|
||||||
|
|
||||||
|
|
||||||
|
Open Issues
|
||||||
|
===========
|
||||||
|
V4L minor device allocation and parameter setting is not perfect. A solution is
|
||||||
|
currently under discussion.
|
||||||
|
|
||||||
|
There is an USB interface for downloading/uploading new firmware images. Support
|
||||||
|
for it can be implemented using the request_firmware interface.
|
||||||
|
|
||||||
|
There is a RDS interrupt mode. The driver is already using the same interface
|
||||||
|
for polling RDS information, but is currently not using the interrupt mode.
|
||||||
|
|
||||||
|
There is a LED interface, which can be used to override the LED control
|
||||||
|
programmed in the firmware. This can be made available using the LED support
|
||||||
|
functions in the kernel.
|
||||||
|
|
||||||
|
|
||||||
|
Other useful information and links
|
||||||
|
==================================
|
||||||
|
http://www.silabs.com/usbradio
|
46
Documentation/w1/masters/omap-hdq
Normal file
46
Documentation/w1/masters/omap-hdq
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
Kernel driver for omap HDQ/1-wire module.
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
================
|
||||||
|
HDQ/1-wire controller on the TI OMAP 2430/3430 platforms.
|
||||||
|
|
||||||
|
A useful link about HDQ basics:
|
||||||
|
===============================
|
||||||
|
http://focus.ti.com/lit/an/slua408/slua408.pdf
|
||||||
|
|
||||||
|
Description:
|
||||||
|
============
|
||||||
|
The HDQ/1-Wire module of TI OMAP2430/3430 platforms implement the hardware
|
||||||
|
protocol of the master functions of the Benchmark HDQ and the Dallas
|
||||||
|
Semiconductor 1-Wire protocols. These protocols use a single wire for
|
||||||
|
communication between the master (HDQ/1-Wire controller) and the slave
|
||||||
|
(HDQ/1-Wire external compliant device).
|
||||||
|
|
||||||
|
A typical application of the HDQ/1-Wire module is the communication with battery
|
||||||
|
monitor (gas gauge) integrated circuits.
|
||||||
|
|
||||||
|
The controller supports operation in both HDQ and 1-wire mode. The essential
|
||||||
|
difference between the HDQ and 1-wire mode is how the slave device responds to
|
||||||
|
initialization pulse.In HDQ mode, the firmware does not require the host to
|
||||||
|
create an initialization pulse to the slave.However, the slave can be reset by
|
||||||
|
using an initialization pulse (also referred to as a break pulse).The slave
|
||||||
|
does not respond with a presence pulse as it does in the 1-Wire protocol.
|
||||||
|
|
||||||
|
Remarks:
|
||||||
|
========
|
||||||
|
The driver (drivers/w1/masters/omap_hdq.c) supports the HDQ mode of the
|
||||||
|
controller. In this mode, as we can not read the ID which obeys the W1
|
||||||
|
spec(family:id:crc), a module parameter can be passed to the driver which will
|
||||||
|
be used to calculate the CRC and pass back an appropriate slave ID to the W1
|
||||||
|
core.
|
||||||
|
|
||||||
|
By default the master driver and the BQ slave i/f
|
||||||
|
driver(drivers/w1/slaves/w1_bq27000.c) sets the ID to 1.
|
||||||
|
Please note to load both the modules with a different ID if required, but note
|
||||||
|
that the ID used should be same for both master and slave driver loading.
|
||||||
|
|
||||||
|
e.g:
|
||||||
|
insmod omap_hdq.ko W1_ID=2
|
||||||
|
inamod w1_bq27000.ko F_ID=2
|
||||||
|
|
77
MAINTAINERS
77
MAINTAINERS
@ -779,6 +779,7 @@ ATM
|
|||||||
P: Chas Williams
|
P: Chas Williams
|
||||||
M: chas@cmf.nrl.navy.mil
|
M: chas@cmf.nrl.navy.mil
|
||||||
L: linux-atm-general@lists.sourceforge.net (subscribers-only)
|
L: linux-atm-general@lists.sourceforge.net (subscribers-only)
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
W: http://linux-atm.sourceforge.net
|
W: http://linux-atm.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
@ -1526,10 +1527,10 @@ W: http://ebtables.sourceforge.net/
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
ECRYPT FILE SYSTEM
|
ECRYPT FILE SYSTEM
|
||||||
P: Mike Halcrow, Phillip Hellewell
|
P: Tyler Hicks, Dustin Kirkland
|
||||||
M: mhalcrow@us.ibm.com, phillip@hellewell.homeip.net
|
M: tyhicks@linux.vnet.ibm.com, kirkland@canonical.com
|
||||||
L: ecryptfs-devel@lists.sourceforge.net
|
L: ecryptfs-devel@lists.launchpad.net
|
||||||
W: http://ecryptfs.sourceforge.net/
|
W: https://launchpad.net/ecryptfs
|
||||||
S: Supported
|
S: Supported
|
||||||
|
|
||||||
EDAC-CORE
|
EDAC-CORE
|
||||||
@ -1809,7 +1810,7 @@ S: Maintained
|
|||||||
|
|
||||||
FTRACE
|
FTRACE
|
||||||
P: Steven Rostedt
|
P: Steven Rostedt
|
||||||
M: srostedt@redhat.com
|
M: rostedt@goodmis.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
FUJITSU FR-V (FRV) PORT
|
FUJITSU FR-V (FRV) PORT
|
||||||
@ -1879,6 +1880,37 @@ M: linux-kernel@vger.kernel.org
|
|||||||
W: http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/
|
W: http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
GSPCA FINEPIX SUBDRIVER
|
||||||
|
P: Frank Zago
|
||||||
|
M: frank@zago.net
|
||||||
|
L: video4linux-list@redhat.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
|
GSPCA M5602 SUBDRIVER
|
||||||
|
P: Erik Andren
|
||||||
|
M: erik.andren@gmail.com
|
||||||
|
L: video4linux-list@redhat.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
|
GSPCA PAC207 SONIXB SUBDRIVER
|
||||||
|
P: Hans de Goede
|
||||||
|
M: hdegoede@redhat.com
|
||||||
|
L: video4linux-list@redhat.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
|
GSPCA T613 SUBDRIVER
|
||||||
|
P: Leandro Costantino
|
||||||
|
M: lcostantino@gmail.com
|
||||||
|
L: video4linux-list@redhat.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
|
GSPCA USB WEBCAM DRIVER
|
||||||
|
P: Jean-Francois Moine
|
||||||
|
M: moinejf@free.fr
|
||||||
|
W: http://moinejf.free.fr
|
||||||
|
L: video4linux-list@redhat.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
HARDWARE MONITORING
|
HARDWARE MONITORING
|
||||||
L: lm-sensors@lm-sensors.org
|
L: lm-sensors@lm-sensors.org
|
||||||
W: http://www.lm-sensors.org/
|
W: http://www.lm-sensors.org/
|
||||||
@ -2159,9 +2191,9 @@ S: Supported
|
|||||||
|
|
||||||
INOTIFY
|
INOTIFY
|
||||||
P: John McCutchan
|
P: John McCutchan
|
||||||
M: ttb@tentacle.dhs.org
|
M: john@johnmccutchan.com
|
||||||
P: Robert Love
|
P: Robert Love
|
||||||
M: rml@novell.com
|
M: rlove@rlove.org
|
||||||
L: linux-kernel@vger.kernel.org
|
L: linux-kernel@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
@ -2185,6 +2217,13 @@ M: adaplas@gmail.com
|
|||||||
L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
|
L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
INTEL MENLOW THERMAL DRIVER
|
||||||
|
P: Sujith Thomas
|
||||||
|
M: sujith.thomas@intel.com
|
||||||
|
L: linux-acpi@vger.kernel.org
|
||||||
|
W: http://www.lesswatts.org/projects/acpi/
|
||||||
|
S: Supported
|
||||||
|
|
||||||
INTEL IA32 MICROCODE UPDATE SUPPORT
|
INTEL IA32 MICROCODE UPDATE SUPPORT
|
||||||
P: Tigran Aivazian
|
P: Tigran Aivazian
|
||||||
M: tigran@aivazian.fsnet.co.uk
|
M: tigran@aivazian.fsnet.co.uk
|
||||||
@ -2665,6 +2704,11 @@ P: Arnaldo Carvalho de Melo
|
|||||||
M: acme@ghostprotocols.net
|
M: acme@ghostprotocols.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
LIS3LV02D ACCELEROMETER DRIVER
|
||||||
|
P: Eric Piel
|
||||||
|
M: eric.piel@tremplin-utc.net
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
LM83 HARDWARE MONITOR DRIVER
|
LM83 HARDWARE MONITOR DRIVER
|
||||||
P: Jean Delvare
|
P: Jean Delvare
|
||||||
M: khali@linux-fr.org
|
M: khali@linux-fr.org
|
||||||
@ -3346,7 +3390,9 @@ S: Maintained
|
|||||||
|
|
||||||
PNP SUPPORT
|
PNP SUPPORT
|
||||||
P: Adam Belay
|
P: Adam Belay
|
||||||
M: ambx1@neo.rr.com
|
M: abelay@mit.edu
|
||||||
|
P: Bjorn Helgaas
|
||||||
|
M: bjorn.helgaas@hp.com
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
PNXxxxx I2C DRIVER
|
PNXxxxx I2C DRIVER
|
||||||
@ -3713,6 +3759,15 @@ M: drzeus-sdhci@drzeus.cx
|
|||||||
L: sdhci-devel@list.drzeus.cx
|
L: sdhci-devel@list.drzeus.cx
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
SECURITY SUBSYSTEM
|
||||||
|
F: security/
|
||||||
|
P: James Morris
|
||||||
|
M: jmorris@namei.org
|
||||||
|
L: linux-kernel@vger.kernel.org
|
||||||
|
L: linux-security-module@vger.kernel.org (suggested Cc:)
|
||||||
|
T: git kernel.org:pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
|
||||||
|
S: Supported
|
||||||
|
|
||||||
SECURITY CONTACT
|
SECURITY CONTACT
|
||||||
P: Security Officers
|
P: Security Officers
|
||||||
M: security@kernel.org
|
M: security@kernel.org
|
||||||
@ -3883,8 +3938,6 @@ M: bootc@bootc.net
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
SOFTWARE RAID (Multiple Disks) SUPPORT
|
SOFTWARE RAID (Multiple Disks) SUPPORT
|
||||||
P: Ingo Molnar
|
|
||||||
M: mingo@redhat.com
|
|
||||||
P: Neil Brown
|
P: Neil Brown
|
||||||
M: neilb@suse.de
|
M: neilb@suse.de
|
||||||
L: linux-raid@vger.kernel.org
|
L: linux-raid@vger.kernel.org
|
||||||
@ -4192,7 +4245,7 @@ M: dedekind@infradead.org
|
|||||||
P: Adrian Hunter
|
P: Adrian Hunter
|
||||||
M: ext-adrian.hunter@nokia.com
|
M: ext-adrian.hunter@nokia.com
|
||||||
L: linux-mtd@lists.infradead.org
|
L: linux-mtd@lists.infradead.org
|
||||||
T: git git://git.infradead.org/~dedekind/ubifs-2.6.git
|
T: git git://git.infradead.org/ubifs-2.6.git
|
||||||
W: http://www.linux-mtd.infradead.org/doc/ubifs.html
|
W: http://www.linux-mtd.infradead.org/doc/ubifs.html
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
@ -4246,7 +4299,7 @@ P: Artem Bityutskiy
|
|||||||
M: dedekind@infradead.org
|
M: dedekind@infradead.org
|
||||||
W: http://www.linux-mtd.infradead.org/
|
W: http://www.linux-mtd.infradead.org/
|
||||||
L: linux-mtd@lists.infradead.org
|
L: linux-mtd@lists.infradead.org
|
||||||
T: git git://git.infradead.org/~dedekind/ubi-2.6.git
|
T: git git://git.infradead.org/ubi-2.6.git
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
USB ACM DRIVER
|
USB ACM DRIVER
|
||||||
|
4
Makefile
4
Makefile
@ -1,8 +1,8 @@
|
|||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 28
|
SUBLEVEL = 28
|
||||||
EXTRAVERSION = -rc4
|
EXTRAVERSION = -rc9
|
||||||
NAME = Killer Bat of Doom
|
NAME = Erotic Pickled Herring
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
# To see a list of typical targets execute "make help"
|
# To see a list of typical targets execute "make help"
|
||||||
|
@ -79,8 +79,6 @@ config HAVE_KRETPROBES
|
|||||||
# task_pt_regs() in asm/processor.h or asm/ptrace.h
|
# task_pt_regs() in asm/processor.h or asm/ptrace.h
|
||||||
# arch_has_single_step() if there is hardware single-step support
|
# arch_has_single_step() if there is hardware single-step support
|
||||||
# arch_has_block_step() if there is hardware block-step support
|
# arch_has_block_step() if there is hardware block-step support
|
||||||
# arch_ptrace() and not #define __ARCH_SYS_PTRACE
|
|
||||||
# compat_arch_ptrace() and #define __ARCH_WANT_COMPAT_SYS_PTRACE
|
|
||||||
# asm/syscall.h supplying asm-generic/syscall.h interface
|
# asm/syscall.h supplying asm-generic/syscall.h interface
|
||||||
# linux/regset.h user_regset interfaces
|
# linux/regset.h user_regset interfaces
|
||||||
# CORE_DUMP_USE_REGSET #define'd in linux/elf.h
|
# CORE_DUMP_USE_REGSET #define'd in linux/elf.h
|
||||||
|
@ -338,7 +338,7 @@ common_swizzle(struct pci_dev *dev, u8 *pinp)
|
|||||||
return PCI_SLOT(dev->devfn);
|
return PCI_SLOT(dev->devfn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __devinit
|
void
|
||||||
pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
|
pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
|
||||||
struct resource *res)
|
struct resource *res)
|
||||||
{
|
{
|
||||||
|
@ -121,7 +121,7 @@ wait_boot_cpu_to_stop(int cpuid)
|
|||||||
/*
|
/*
|
||||||
* Where secondaries begin a life of C.
|
* Where secondaries begin a life of C.
|
||||||
*/
|
*/
|
||||||
void __init
|
void __cpuinit
|
||||||
smp_callin(void)
|
smp_callin(void)
|
||||||
{
|
{
|
||||||
int cpuid = hard_smp_processor_id();
|
int cpuid = hard_smp_processor_id();
|
||||||
@ -198,7 +198,7 @@ wait_for_txrdy (unsigned long cpumask)
|
|||||||
* Send a message to a secondary's console. "START" is one such
|
* Send a message to a secondary's console. "START" is one such
|
||||||
* interesting message. ;-)
|
* interesting message. ;-)
|
||||||
*/
|
*/
|
||||||
static void __init
|
static void __cpuinit
|
||||||
send_secondary_console_msg(char *str, int cpuid)
|
send_secondary_console_msg(char *str, int cpuid)
|
||||||
{
|
{
|
||||||
struct percpu_struct *cpu;
|
struct percpu_struct *cpu;
|
||||||
@ -289,7 +289,7 @@ recv_secondary_console_msg(void)
|
|||||||
/*
|
/*
|
||||||
* Convince the console to have a secondary cpu begin execution.
|
* Convince the console to have a secondary cpu begin execution.
|
||||||
*/
|
*/
|
||||||
static int __init
|
static int __cpuinit
|
||||||
secondary_cpu_start(int cpuid, struct task_struct *idle)
|
secondary_cpu_start(int cpuid, struct task_struct *idle)
|
||||||
{
|
{
|
||||||
struct percpu_struct *cpu;
|
struct percpu_struct *cpu;
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
static int opDEC_fix;
|
static int opDEC_fix;
|
||||||
|
|
||||||
static void __init
|
static void __cpuinit
|
||||||
opDEC_check(void)
|
opDEC_check(void)
|
||||||
{
|
{
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
@ -1072,7 +1072,7 @@ give_sigbus:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init
|
void __cpuinit
|
||||||
trap_init(void)
|
trap_init(void)
|
||||||
{
|
{
|
||||||
/* Tell PAL-code what global pointer we want in the kernel. */
|
/* Tell PAL-code what global pointer we want in the kernel. */
|
||||||
|
@ -630,7 +630,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
sachip->clk = clk_get(me, "SA1111_CLK");
|
sachip->clk = clk_get(me, "SA1111_CLK");
|
||||||
if (!sachip->clk) {
|
if (IS_ERR(sachip->clk)) {
|
||||||
ret = PTR_ERR(sachip->clk);
|
ret = PTR_ERR(sachip->clk);
|
||||||
goto err_free;
|
goto err_free;
|
||||||
}
|
}
|
||||||
|
@ -179,7 +179,7 @@ CONFIG_MACH_HUSKY=y
|
|||||||
# CONFIG_MACH_AKITA is not set
|
# CONFIG_MACH_AKITA is not set
|
||||||
# CONFIG_MACH_SPITZ is not set
|
# CONFIG_MACH_SPITZ is not set
|
||||||
# CONFIG_MACH_BORZOI is not set
|
# CONFIG_MACH_BORZOI is not set
|
||||||
CONFIG_MACH_TOSA=y
|
# CONFIG_MACH_TOSA is not set
|
||||||
# CONFIG_ARCH_VIPER is not set
|
# CONFIG_ARCH_VIPER is not set
|
||||||
# CONFIG_ARCH_PXA_ESERIES is not set
|
# CONFIG_ARCH_PXA_ESERIES is not set
|
||||||
# CONFIG_TRIZEPS_PXA is not set
|
# CONFIG_TRIZEPS_PXA is not set
|
||||||
|
@ -237,6 +237,7 @@ extern int _find_next_bit_be(const unsigned long *p, int size, int offset);
|
|||||||
#if __LINUX_ARM_ARCH__ < 5
|
#if __LINUX_ARM_ARCH__ < 5
|
||||||
|
|
||||||
#include <asm-generic/bitops/ffz.h>
|
#include <asm-generic/bitops/ffz.h>
|
||||||
|
#include <asm-generic/bitops/__fls.h>
|
||||||
#include <asm-generic/bitops/__ffs.h>
|
#include <asm-generic/bitops/__ffs.h>
|
||||||
#include <asm-generic/bitops/fls.h>
|
#include <asm-generic/bitops/fls.h>
|
||||||
#include <asm-generic/bitops/ffs.h>
|
#include <asm-generic/bitops/ffs.h>
|
||||||
@ -277,16 +278,19 @@ static inline int constant_fls(int x)
|
|||||||
* the clz instruction for much better code efficiency.
|
* the clz instruction for much better code efficiency.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define __fls(x) \
|
|
||||||
( __builtin_constant_p(x) ? constant_fls(x) : \
|
|
||||||
({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) )
|
|
||||||
|
|
||||||
/* Implement fls() in C so that 64-bit args are suitably truncated */
|
|
||||||
static inline int fls(int x)
|
static inline int fls(int x)
|
||||||
{
|
{
|
||||||
return __fls(x);
|
int ret;
|
||||||
|
|
||||||
|
if (__builtin_constant_p(x))
|
||||||
|
return constant_fls(x);
|
||||||
|
|
||||||
|
asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : "cc");
|
||||||
|
ret = 32 - ret;
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define __fls(x) (fls(x) - 1)
|
||||||
#define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); })
|
#define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); })
|
||||||
#define __ffs(x) (ffs(x) - 1)
|
#define __ffs(x) (ffs(x) - 1)
|
||||||
#define ffz(x) __ffs( ~(x) )
|
#define ffz(x) __ffs( ~(x) )
|
||||||
|
@ -256,8 +256,17 @@ int dmabounce_sync_for_cpu(struct device *, dma_addr_t, unsigned long,
|
|||||||
int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long,
|
int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long,
|
||||||
size_t, enum dma_data_direction);
|
size_t, enum dma_data_direction);
|
||||||
#else
|
#else
|
||||||
#define dmabounce_sync_for_cpu(dev,dma,off,sz,dir) (1)
|
static inline int dmabounce_sync_for_cpu(struct device *d, dma_addr_t addr,
|
||||||
#define dmabounce_sync_for_device(dev,dma,off,sz,dir) (1)
|
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int dmabounce_sync_for_device(struct device *d, dma_addr_t addr,
|
||||||
|
unsigned long offset, size_t size, enum dma_data_direction dir)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -730,7 +730,8 @@ static inline void iop_desc_set_next_desc(struct iop_adma_desc_slot *desc,
|
|||||||
{
|
{
|
||||||
/* hw_desc->next_desc is the same location for all channels */
|
/* hw_desc->next_desc is the same location for all channels */
|
||||||
union iop3xx_desc hw_desc = { .ptr = desc->hw_desc, };
|
union iop3xx_desc hw_desc = { .ptr = desc->hw_desc, };
|
||||||
BUG_ON(hw_desc.dma->next_desc);
|
|
||||||
|
iop_paranoia(hw_desc.dma->next_desc);
|
||||||
hw_desc.dma->next_desc = next_desc_addr;
|
hw_desc.dma->next_desc = next_desc_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -760,7 +761,7 @@ static inline int iop_desc_get_zero_result(struct iop_adma_desc_slot *desc)
|
|||||||
struct iop3xx_desc_aau *hw_desc = desc->hw_desc;
|
struct iop3xx_desc_aau *hw_desc = desc->hw_desc;
|
||||||
struct iop3xx_aau_desc_ctrl desc_ctrl = hw_desc->desc_ctrl_field;
|
struct iop3xx_aau_desc_ctrl desc_ctrl = hw_desc->desc_ctrl_field;
|
||||||
|
|
||||||
BUG_ON(!(desc_ctrl.tx_complete && desc_ctrl.zero_result_en));
|
iop_paranoia(!(desc_ctrl.tx_complete && desc_ctrl.zero_result_en));
|
||||||
return desc_ctrl.zero_result_err;
|
return desc_ctrl.zero_result_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,12 @@
|
|||||||
|
|
||||||
#define IOP_ADMA_SLOT_SIZE 32
|
#define IOP_ADMA_SLOT_SIZE 32
|
||||||
#define IOP_ADMA_THRESHOLD 4
|
#define IOP_ADMA_THRESHOLD 4
|
||||||
|
#ifdef DEBUG
|
||||||
|
#define IOP_PARANOIA 1
|
||||||
|
#else
|
||||||
|
#define IOP_PARANOIA 0
|
||||||
|
#endif
|
||||||
|
#define iop_paranoia(x) BUG_ON(IOP_PARANOIA && (x))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct iop_adma_device - internal representation of an ADMA device
|
* struct iop_adma_device - internal representation of an ADMA device
|
||||||
|
@ -19,12 +19,13 @@ struct map_desc {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* types 0-3 are defined in asm/io.h */
|
/* types 0-3 are defined in asm/io.h */
|
||||||
#define MT_CACHECLEAN 4
|
#define MT_UNCACHED 4
|
||||||
#define MT_MINICLEAN 5
|
#define MT_CACHECLEAN 5
|
||||||
#define MT_LOW_VECTORS 6
|
#define MT_MINICLEAN 6
|
||||||
#define MT_HIGH_VECTORS 7
|
#define MT_LOW_VECTORS 7
|
||||||
#define MT_MEMORY 8
|
#define MT_HIGH_VECTORS 8
|
||||||
#define MT_ROM 9
|
#define MT_MEMORY 9
|
||||||
|
#define MT_ROM 10
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
extern void iotable_init(struct map_desc *, int);
|
extern void iotable_init(struct map_desc *, int);
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
#define STACK_TOP ((current->personality == PER_LINUX_32BIT) ? \
|
#define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \
|
||||||
TASK_SIZE : TASK_SIZE_26)
|
TASK_SIZE : TASK_SIZE_26)
|
||||||
#define STACK_TOP_MAX TASK_SIZE
|
#define STACK_TOP_MAX TASK_SIZE
|
||||||
#endif
|
#endif
|
||||||
|
@ -115,6 +115,8 @@ EXPORT_SYMBOL(__strnlen_user);
|
|||||||
EXPORT_SYMBOL(__strncpy_from_user);
|
EXPORT_SYMBOL(__strncpy_from_user);
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
|
EXPORT_SYMBOL(copy_page);
|
||||||
|
|
||||||
EXPORT_SYMBOL(__copy_from_user);
|
EXPORT_SYMBOL(__copy_from_user);
|
||||||
EXPORT_SYMBOL(__copy_to_user);
|
EXPORT_SYMBOL(__copy_to_user);
|
||||||
EXPORT_SYMBOL(__clear_user);
|
EXPORT_SYMBOL(__clear_user);
|
||||||
@ -181,8 +183,6 @@ EXPORT_SYMBOL(_find_first_bit_be);
|
|||||||
EXPORT_SYMBOL(_find_next_bit_be);
|
EXPORT_SYMBOL(_find_next_bit_be);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
EXPORT_SYMBOL(copy_page);
|
|
||||||
|
|
||||||
#ifdef CONFIG_FUNCTION_TRACER
|
#ifdef CONFIG_FUNCTION_TRACER
|
||||||
EXPORT_SYMBOL(mcount);
|
EXPORT_SYMBOL(mcount);
|
||||||
#endif
|
#endif
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <linux/personality.h>
|
#include <linux/personality.h>
|
||||||
#include <linux/kallsyms.h>
|
#include <linux/kallsyms.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
#include <linux/hardirq.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
|
|
||||||
|
@ -94,20 +94,6 @@
|
|||||||
#include <asm/hardware/ep7212.h>
|
#include <asm/hardware/ep7212.h>
|
||||||
#include <asm/hardware/cs89712.h>
|
#include <asm/hardware/cs89712.h>
|
||||||
|
|
||||||
/* dynamic ioremap() areas */
|
|
||||||
#define FLASH_START 0x00000000
|
|
||||||
#define FLASH_SIZE 0x800000
|
|
||||||
#define FLASH_WIDTH 4
|
|
||||||
|
|
||||||
#define SRAM_START 0x60000000
|
|
||||||
#define SRAM_SIZE 0xc000
|
|
||||||
#define SRAM_WIDTH 4
|
|
||||||
|
|
||||||
#define BOOTROM_START 0x70000000
|
|
||||||
#define BOOTROM_SIZE 0x80
|
|
||||||
#define BOOTROM_WIDTH 4
|
|
||||||
|
|
||||||
|
|
||||||
/* static cdb89712_map_io() areas */
|
/* static cdb89712_map_io() areas */
|
||||||
#define REGISTER_START 0x80000000
|
#define REGISTER_START 0x80000000
|
||||||
#define REGISTER_SIZE 0x4000
|
#define REGISTER_SIZE 0x4000
|
||||||
@ -198,14 +184,6 @@
|
|||||||
#define CEIVA_FLASH_SIZE 0x100000
|
#define CEIVA_FLASH_SIZE 0x100000
|
||||||
#define CEIVA_FLASH_WIDTH 2
|
#define CEIVA_FLASH_WIDTH 2
|
||||||
|
|
||||||
#define SRAM_START 0x60000000
|
|
||||||
#define SRAM_SIZE 0xc000
|
|
||||||
#define SRAM_WIDTH 4
|
|
||||||
|
|
||||||
#define BOOTROM_START 0x70000000
|
|
||||||
#define BOOTROM_SIZE 0x80
|
|
||||||
#define BOOTROM_WIDTH 4
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SED1355 LCD controller
|
* SED1355 LCD controller
|
||||||
*/
|
*/
|
||||||
|
@ -275,9 +275,9 @@ static struct map_desc cl7500_io_desc[] __initdata = {
|
|||||||
.length = ISA_SIZE,
|
.length = ISA_SIZE,
|
||||||
.type = MT_DEVICE
|
.type = MT_DEVICE
|
||||||
}, { /* Flash */
|
}, { /* Flash */
|
||||||
.virtual = FLASH_BASE,
|
.virtual = CLPS7500_FLASH_BASE,
|
||||||
.pfn = __phys_to_pfn(FLASH_START),
|
.pfn = __phys_to_pfn(CLPS7500_FLASH_START),
|
||||||
.length = FLASH_SIZE,
|
.length = CLPS7500_FLASH_SIZE,
|
||||||
.type = MT_DEVICE
|
.type = MT_DEVICE
|
||||||
}, { /* LED */
|
}, { /* LED */
|
||||||
.virtual = LED_BASE,
|
.virtual = LED_BASE,
|
||||||
|
@ -39,9 +39,9 @@
|
|||||||
#define ISA_SIZE 0x00010000
|
#define ISA_SIZE 0x00010000
|
||||||
#define ISA_BASE 0xe1000000
|
#define ISA_BASE 0xe1000000
|
||||||
|
|
||||||
#define FLASH_START 0x01000000 /* XXX */
|
#define CLPS7500_FLASH_START 0x01000000 /* XXX */
|
||||||
#define FLASH_SIZE 0x01000000
|
#define CLPS7500_FLASH_SIZE 0x01000000
|
||||||
#define FLASH_BASE 0xe2000000
|
#define CLPS7500_FLASH_BASE 0xe2000000
|
||||||
|
|
||||||
#define LED_START 0x0302B000
|
#define LED_START 0x0302B000
|
||||||
#define LED_SIZE 0x00001000
|
#define LED_SIZE 0x00001000
|
||||||
|
@ -19,9 +19,9 @@
|
|||||||
#ifdef CONFIG_ARCH_H7202
|
#ifdef CONFIG_ARCH_H7202
|
||||||
|
|
||||||
/* FLASH */
|
/* FLASH */
|
||||||
#define FLASH_VIRT 0xd0000000
|
#define H720X_FLASH_VIRT 0xd0000000
|
||||||
#define FLASH_PHYS 0x00000000
|
#define H720X_FLASH_PHYS 0x00000000
|
||||||
#define FLASH_SIZE 0x02000000
|
#define H720X_FLASH_SIZE 0x02000000
|
||||||
|
|
||||||
/* onboard LAN controller */
|
/* onboard LAN controller */
|
||||||
# define ETH0_PHYS 0x08000000
|
# define ETH0_PHYS 0x08000000
|
||||||
|
@ -407,28 +407,11 @@
|
|||||||
*/
|
*/
|
||||||
#define uHAL_MEMORY_SIZE INTEGRATOR_SSRAM_SIZE
|
#define uHAL_MEMORY_SIZE INTEGRATOR_SSRAM_SIZE
|
||||||
|
|
||||||
/*
|
|
||||||
* Application Flash
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define FLASH_BASE INTEGRATOR_FLASH_BASE
|
|
||||||
#define FLASH_SIZE INTEGRATOR_FLASH_SIZE
|
|
||||||
#define FLASH_END (FLASH_BASE + FLASH_SIZE - 1)
|
|
||||||
#define FLASH_BLOCK_SIZE SZ_128K
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Boot Flash
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define EPROM_BASE INTEGRATOR_BOOT_ROM_HI
|
|
||||||
#define EPROM_SIZE INTEGRATOR_BOOT_ROM_SIZE
|
|
||||||
#define EPROM_END (EPROM_BASE + EPROM_SIZE - 1)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clean base - dummy
|
* Clean base - dummy
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define CLEAN_BASE EPROM_BASE
|
#define CLEAN_BASE INTEGRATOR_BOOT_ROM_HI
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Timer definitions
|
* Timer definitions
|
||||||
|
@ -404,7 +404,8 @@ static inline void iop_desc_set_next_desc(struct iop_adma_desc_slot *desc,
|
|||||||
u32 next_desc_addr)
|
u32 next_desc_addr)
|
||||||
{
|
{
|
||||||
struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc;
|
struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc;
|
||||||
BUG_ON(hw_desc->next_desc);
|
|
||||||
|
iop_paranoia(hw_desc->next_desc);
|
||||||
hw_desc->next_desc = next_desc_addr;
|
hw_desc->next_desc = next_desc_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ void __init omap1_map_common_io(void)
|
|||||||
* Common low-level hardware init for omap1. This should only get called from
|
* Common low-level hardware init for omap1. This should only get called from
|
||||||
* board specific init.
|
* board specific init.
|
||||||
*/
|
*/
|
||||||
void __init omap1_init_common_hw()
|
void __init omap1_init_common_hw(void)
|
||||||
{
|
{
|
||||||
/* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
|
/* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
|
||||||
* on a Posted Write in the TIPB Bridge".
|
* on a Posted Write in the TIPB Bridge".
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#define LCD_CONN_TYPE(_x) ((_x) & 0x0f)
|
#define LCD_CONN_TYPE(_x) ((_x) & 0x0f)
|
||||||
#define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f)
|
#define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f)
|
||||||
|
|
||||||
|
#define LCD_TYPE_MASK 0xf
|
||||||
#define LCD_TYPE_UNKNOWN 0
|
#define LCD_TYPE_UNKNOWN 0
|
||||||
#define LCD_TYPE_MONO_STN 1
|
#define LCD_TYPE_MONO_STN 1
|
||||||
#define LCD_TYPE_MONO_DSTN 2
|
#define LCD_TYPE_MONO_DSTN 2
|
||||||
|
@ -12,9 +12,8 @@ extern void clear_reset_status(unsigned int mask);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* init_gpio_reset() - register GPIO as reset generator
|
* init_gpio_reset() - register GPIO as reset generator
|
||||||
*
|
* @gpio: gpio nr
|
||||||
* @gpio - gpio nr
|
* @output: set gpio as out/low instead of input during normal work
|
||||||
* @output - set gpio as out/low instead of input during normal work
|
|
||||||
*/
|
*/
|
||||||
extern int init_gpio_reset(int gpio, int output);
|
extern int init_gpio_reset(int gpio, int output);
|
||||||
|
|
||||||
|
@ -565,7 +565,7 @@ static int mioa701_sys_suspend(struct sys_device *sysdev, pm_message_t state)
|
|||||||
u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR);
|
u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR);
|
||||||
|
|
||||||
/* Devices prepare suspend */
|
/* Devices prepare suspend */
|
||||||
is_bt_on = gpio_get_value(GPIO83_BT_ON);
|
is_bt_on = !!gpio_get_value(GPIO83_BT_ON);
|
||||||
pxa2xx_mfp_set_lpm(GPIO83_BT_ON,
|
pxa2xx_mfp_set_lpm(GPIO83_BT_ON,
|
||||||
is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW);
|
is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW);
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ ENTRY(mioa701_jumpaddr)
|
|||||||
1:
|
1:
|
||||||
mov r0, #0xa0000000 @ Don't suppose memory access works
|
mov r0, #0xa0000000 @ Don't suppose memory access works
|
||||||
orr r0, r0, #0x00200000 @ even if it's supposed to
|
orr r0, r0, #0x00200000 @ even if it's supposed to
|
||||||
|
orr r0, r0, #0x0000b000
|
||||||
mov r1, #0
|
mov r1, #0
|
||||||
str r1, [r0] @ Early disable resume for next boot
|
str r1, [r0] @ Early disable resume for next boot
|
||||||
ldr r0, mioa701_jumpaddr @ (Murphy's Law)
|
ldr r0, mioa701_jumpaddr @ (Murphy's Law)
|
||||||
|
@ -56,6 +56,9 @@ static unsigned long palmtx_pin_config[] __initdata = {
|
|||||||
GPIO110_MMC_DAT_2,
|
GPIO110_MMC_DAT_2,
|
||||||
GPIO111_MMC_DAT_3,
|
GPIO111_MMC_DAT_3,
|
||||||
GPIO112_MMC_CMD,
|
GPIO112_MMC_CMD,
|
||||||
|
GPIO14_GPIO, /* SD detect */
|
||||||
|
GPIO114_GPIO, /* SD power */
|
||||||
|
GPIO115_GPIO, /* SD r/o switch */
|
||||||
|
|
||||||
/* AC97 */
|
/* AC97 */
|
||||||
GPIO28_AC97_BITCLK,
|
GPIO28_AC97_BITCLK,
|
||||||
@ -64,6 +67,7 @@ static unsigned long palmtx_pin_config[] __initdata = {
|
|||||||
GPIO31_AC97_SYNC,
|
GPIO31_AC97_SYNC,
|
||||||
|
|
||||||
/* IrDA */
|
/* IrDA */
|
||||||
|
GPIO40_GPIO, /* ir disable */
|
||||||
GPIO46_FICP_RXD,
|
GPIO46_FICP_RXD,
|
||||||
GPIO47_FICP_TXD,
|
GPIO47_FICP_TXD,
|
||||||
|
|
||||||
@ -71,7 +75,8 @@ static unsigned long palmtx_pin_config[] __initdata = {
|
|||||||
GPIO16_PWM0_OUT,
|
GPIO16_PWM0_OUT,
|
||||||
|
|
||||||
/* USB */
|
/* USB */
|
||||||
GPIO13_GPIO,
|
GPIO13_GPIO, /* usb detect */
|
||||||
|
GPIO95_GPIO, /* usb power */
|
||||||
|
|
||||||
/* PCMCIA */
|
/* PCMCIA */
|
||||||
GPIO48_nPOE,
|
GPIO48_nPOE,
|
||||||
@ -84,6 +89,45 @@ static unsigned long palmtx_pin_config[] __initdata = {
|
|||||||
GPIO55_nPREG,
|
GPIO55_nPREG,
|
||||||
GPIO56_nPWAIT,
|
GPIO56_nPWAIT,
|
||||||
GPIO57_nIOIS16,
|
GPIO57_nIOIS16,
|
||||||
|
GPIO94_GPIO, /* wifi power 1 */
|
||||||
|
GPIO108_GPIO, /* wifi power 2 */
|
||||||
|
GPIO116_GPIO, /* wifi ready */
|
||||||
|
|
||||||
|
/* MATRIX KEYPAD */
|
||||||
|
GPIO100_KP_MKIN_0,
|
||||||
|
GPIO101_KP_MKIN_1,
|
||||||
|
GPIO102_KP_MKIN_2,
|
||||||
|
GPIO97_KP_MKIN_3,
|
||||||
|
GPIO103_KP_MKOUT_0,
|
||||||
|
GPIO104_KP_MKOUT_1,
|
||||||
|
GPIO105_KP_MKOUT_2,
|
||||||
|
|
||||||
|
/* LCD */
|
||||||
|
GPIO58_LCD_LDD_0,
|
||||||
|
GPIO59_LCD_LDD_1,
|
||||||
|
GPIO60_LCD_LDD_2,
|
||||||
|
GPIO61_LCD_LDD_3,
|
||||||
|
GPIO62_LCD_LDD_4,
|
||||||
|
GPIO63_LCD_LDD_5,
|
||||||
|
GPIO64_LCD_LDD_6,
|
||||||
|
GPIO65_LCD_LDD_7,
|
||||||
|
GPIO66_LCD_LDD_8,
|
||||||
|
GPIO67_LCD_LDD_9,
|
||||||
|
GPIO68_LCD_LDD_10,
|
||||||
|
GPIO69_LCD_LDD_11,
|
||||||
|
GPIO70_LCD_LDD_12,
|
||||||
|
GPIO71_LCD_LDD_13,
|
||||||
|
GPIO72_LCD_LDD_14,
|
||||||
|
GPIO73_LCD_LDD_15,
|
||||||
|
GPIO74_LCD_FCLK,
|
||||||
|
GPIO75_LCD_LCLK,
|
||||||
|
GPIO76_LCD_PCLK,
|
||||||
|
GPIO77_LCD_BIAS,
|
||||||
|
|
||||||
|
/* MISC. */
|
||||||
|
GPIO10_GPIO, /* hotsync button */
|
||||||
|
GPIO12_GPIO, /* power detect */
|
||||||
|
GPIO107_GPIO, /* earphone detect */
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -95,32 +139,49 @@ static int palmtx_mci_init(struct device *dev, irq_handler_t palmtx_detect_int,
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
/* Setup an interrupt for detecting card insert/remove events */
|
/* Setup an interrupt for detecting card insert/remove events */
|
||||||
err = request_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, palmtx_detect_int,
|
err = gpio_request(GPIO_NR_PALMTX_SD_DETECT_N, "SD IRQ");
|
||||||
IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
|
if (err)
|
||||||
|
goto err;
|
||||||
|
err = gpio_direction_input(GPIO_NR_PALMTX_SD_DETECT_N);
|
||||||
|
if (err)
|
||||||
|
goto err2;
|
||||||
|
err = request_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N),
|
||||||
|
palmtx_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
|
||||||
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
|
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
|
||||||
"SD/MMC card detect", data);
|
"SD/MMC card detect", data);
|
||||||
if (err) {
|
if (err) {
|
||||||
printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n",
|
printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n",
|
||||||
__func__);
|
__func__);
|
||||||
return err;
|
goto err2;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER");
|
err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER");
|
||||||
if (err)
|
if (err)
|
||||||
goto pwr_err;
|
goto err3;
|
||||||
|
err = gpio_direction_output(GPIO_NR_PALMTX_SD_POWER, 0);
|
||||||
|
if (err)
|
||||||
|
goto err4;
|
||||||
|
|
||||||
err = gpio_request(GPIO_NR_PALMTX_SD_READONLY, "SD_READONLY");
|
err = gpio_request(GPIO_NR_PALMTX_SD_READONLY, "SD_READONLY");
|
||||||
if (err)
|
if (err)
|
||||||
goto ro_err;
|
goto err4;
|
||||||
|
err = gpio_direction_input(GPIO_NR_PALMTX_SD_READONLY);
|
||||||
|
if (err)
|
||||||
|
goto err5;
|
||||||
|
|
||||||
printk(KERN_DEBUG "%s: irq registered\n", __func__);
|
printk(KERN_DEBUG "%s: irq registered\n", __func__);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ro_err:
|
err5:
|
||||||
|
gpio_free(GPIO_NR_PALMTX_SD_READONLY);
|
||||||
|
err4:
|
||||||
gpio_free(GPIO_NR_PALMTX_SD_POWER);
|
gpio_free(GPIO_NR_PALMTX_SD_POWER);
|
||||||
pwr_err:
|
err3:
|
||||||
free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data);
|
free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data);
|
||||||
|
err2:
|
||||||
|
gpio_free(GPIO_NR_PALMTX_SD_DETECT_N);
|
||||||
|
err:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,7 +189,8 @@ static void palmtx_mci_exit(struct device *dev, void *data)
|
|||||||
{
|
{
|
||||||
gpio_free(GPIO_NR_PALMTX_SD_READONLY);
|
gpio_free(GPIO_NR_PALMTX_SD_READONLY);
|
||||||
gpio_free(GPIO_NR_PALMTX_SD_POWER);
|
gpio_free(GPIO_NR_PALMTX_SD_POWER);
|
||||||
free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data);
|
free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data);
|
||||||
|
gpio_free(GPIO_NR_PALMTX_SD_DETECT_N);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void palmtx_mci_power(struct device *dev, unsigned int vdd)
|
static void palmtx_mci_power(struct device *dev, unsigned int vdd)
|
||||||
@ -167,7 +229,6 @@ static unsigned int palmtx_matrix_keys[] = {
|
|||||||
|
|
||||||
KEY(3, 0, KEY_RIGHT),
|
KEY(3, 0, KEY_RIGHT),
|
||||||
KEY(3, 2, KEY_LEFT),
|
KEY(3, 2, KEY_LEFT),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct pxa27x_keypad_platform_data palmtx_keypad_platform_data = {
|
static struct pxa27x_keypad_platform_data palmtx_keypad_platform_data = {
|
||||||
@ -209,11 +270,19 @@ static int palmtx_backlight_init(struct device *dev)
|
|||||||
ret = gpio_request(GPIO_NR_PALMTX_BL_POWER, "BL POWER");
|
ret = gpio_request(GPIO_NR_PALMTX_BL_POWER, "BL POWER");
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
ret = gpio_direction_output(GPIO_NR_PALMTX_BL_POWER, 0);
|
||||||
|
if (ret)
|
||||||
|
goto err2;
|
||||||
ret = gpio_request(GPIO_NR_PALMTX_LCD_POWER, "LCD POWER");
|
ret = gpio_request(GPIO_NR_PALMTX_LCD_POWER, "LCD POWER");
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err2;
|
goto err2;
|
||||||
|
ret = gpio_direction_output(GPIO_NR_PALMTX_LCD_POWER, 0);
|
||||||
|
if (ret)
|
||||||
|
goto err3;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
err3:
|
||||||
|
gpio_free(GPIO_NR_PALMTX_LCD_POWER);
|
||||||
err2:
|
err2:
|
||||||
gpio_free(GPIO_NR_PALMTX_BL_POWER);
|
gpio_free(GPIO_NR_PALMTX_BL_POWER);
|
||||||
err:
|
err:
|
||||||
@ -254,6 +323,24 @@ static struct platform_device palmtx_backlight = {
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IrDA
|
* IrDA
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
static int palmtx_irda_startup(struct device *dev)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
err = gpio_request(GPIO_NR_PALMTX_IR_DISABLE, "IR DISABLE");
|
||||||
|
if (err)
|
||||||
|
goto err;
|
||||||
|
err = gpio_direction_output(GPIO_NR_PALMTX_IR_DISABLE, 1);
|
||||||
|
if (err)
|
||||||
|
gpio_free(GPIO_NR_PALMTX_IR_DISABLE);
|
||||||
|
err:
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void palmtx_irda_shutdown(struct device *dev)
|
||||||
|
{
|
||||||
|
gpio_free(GPIO_NR_PALMTX_IR_DISABLE);
|
||||||
|
}
|
||||||
|
|
||||||
static void palmtx_irda_transceiver_mode(struct device *dev, int mode)
|
static void palmtx_irda_transceiver_mode(struct device *dev, int mode)
|
||||||
{
|
{
|
||||||
gpio_set_value(GPIO_NR_PALMTX_IR_DISABLE, mode & IR_OFF);
|
gpio_set_value(GPIO_NR_PALMTX_IR_DISABLE, mode & IR_OFF);
|
||||||
@ -261,6 +348,8 @@ static void palmtx_irda_transceiver_mode(struct device *dev, int mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct pxaficp_platform_data palmtx_ficp_platform_data = {
|
static struct pxaficp_platform_data palmtx_ficp_platform_data = {
|
||||||
|
.startup = palmtx_irda_startup,
|
||||||
|
.shutdown = palmtx_irda_shutdown,
|
||||||
.transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF,
|
.transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF,
|
||||||
.transceiver_mode = palmtx_irda_transceiver_mode,
|
.transceiver_mode = palmtx_irda_transceiver_mode,
|
||||||
};
|
};
|
||||||
@ -268,17 +357,11 @@ static struct pxaficp_platform_data palmtx_ficp_platform_data = {
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* UDC
|
* UDC
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
static void palmtx_udc_command(int cmd)
|
|
||||||
{
|
|
||||||
gpio_set_value(GPIO_NR_PALMTX_USB_POWER, !cmd);
|
|
||||||
udelay(50);
|
|
||||||
gpio_set_value(GPIO_NR_PALMTX_USB_PULLUP, !cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = {
|
static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = {
|
||||||
.gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N,
|
.gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N,
|
||||||
.gpio_vbus_inverted = 1,
|
.gpio_vbus_inverted = 1,
|
||||||
.udc_command = palmtx_udc_command,
|
.gpio_pullup = GPIO_NR_PALMTX_USB_POWER,
|
||||||
|
.gpio_pullup_inverted = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -290,17 +373,16 @@ static int power_supply_init(struct device *dev)
|
|||||||
|
|
||||||
ret = gpio_request(GPIO_NR_PALMTX_POWER_DETECT, "CABLE_STATE_AC");
|
ret = gpio_request(GPIO_NR_PALMTX_POWER_DETECT, "CABLE_STATE_AC");
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_cs_ac;
|
goto err1;
|
||||||
|
ret = gpio_direction_input(GPIO_NR_PALMTX_POWER_DETECT);
|
||||||
ret = gpio_request(GPIO_NR_PALMTX_USB_DETECT_N, "CABLE_STATE_USB");
|
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_cs_usb;
|
goto err2;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_cs_usb:
|
err2:
|
||||||
gpio_free(GPIO_NR_PALMTX_POWER_DETECT);
|
gpio_free(GPIO_NR_PALMTX_POWER_DETECT);
|
||||||
err_cs_ac:
|
err1:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -309,14 +391,8 @@ static int palmtx_is_ac_online(void)
|
|||||||
return gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT);
|
return gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int palmtx_is_usb_online(void)
|
|
||||||
{
|
|
||||||
return !gpio_get_value(GPIO_NR_PALMTX_USB_DETECT_N);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void power_supply_exit(struct device *dev)
|
static void power_supply_exit(struct device *dev)
|
||||||
{
|
{
|
||||||
gpio_free(GPIO_NR_PALMTX_USB_DETECT_N);
|
|
||||||
gpio_free(GPIO_NR_PALMTX_POWER_DETECT);
|
gpio_free(GPIO_NR_PALMTX_POWER_DETECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -327,7 +403,6 @@ static char *palmtx_supplicants[] = {
|
|||||||
static struct pda_power_pdata power_supply_info = {
|
static struct pda_power_pdata power_supply_info = {
|
||||||
.init = power_supply_init,
|
.init = power_supply_init,
|
||||||
.is_ac_online = palmtx_is_ac_online,
|
.is_ac_online = palmtx_is_ac_online,
|
||||||
.is_usb_online = palmtx_is_usb_online,
|
|
||||||
.exit = power_supply_exit,
|
.exit = power_supply_exit,
|
||||||
.supplied_to = palmtx_supplicants,
|
.supplied_to = palmtx_supplicants,
|
||||||
.num_supplicants = ARRAY_SIZE(palmtx_supplicants),
|
.num_supplicants = ARRAY_SIZE(palmtx_supplicants),
|
||||||
@ -410,12 +485,23 @@ static void __init palmtx_map_io(void)
|
|||||||
iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc));
|
iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* setup udc GPIOs initial state */
|
||||||
|
static void __init palmtx_udc_init(void)
|
||||||
|
{
|
||||||
|
if (!gpio_request(GPIO_NR_PALMTX_USB_POWER, "UDC Vbus")) {
|
||||||
|
gpio_direction_output(GPIO_NR_PALMTX_USB_POWER, 1);
|
||||||
|
gpio_free(GPIO_NR_PALMTX_USB_POWER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void __init palmtx_init(void)
|
static void __init palmtx_init(void)
|
||||||
{
|
{
|
||||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config));
|
pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config));
|
||||||
|
|
||||||
set_pxa_fb_info(&palmtx_lcd_screen);
|
set_pxa_fb_info(&palmtx_lcd_screen);
|
||||||
pxa_set_mci_info(&palmtx_mci_platform_data);
|
pxa_set_mci_info(&palmtx_mci_platform_data);
|
||||||
|
palmtx_udc_init();
|
||||||
pxa_set_udc_info(&palmtx_udc_info);
|
pxa_set_udc_info(&palmtx_udc_info);
|
||||||
pxa_set_ac97_info(NULL);
|
pxa_set_ac97_info(NULL);
|
||||||
pxa_set_ficp_info(&palmtx_ficp_platform_data);
|
pxa_set_ficp_info(&palmtx_ficp_platform_data);
|
||||||
|
@ -385,6 +385,7 @@ static struct soc_camera_link iclink[] = {
|
|||||||
.gpio = NR_BUILTIN_GPIO + 1,
|
.gpio = NR_BUILTIN_GPIO + 1,
|
||||||
}, {
|
}, {
|
||||||
.bus_id = 0, /* Must match with the camera ID above */
|
.bus_id = 0, /* Must match with the camera ID above */
|
||||||
|
.gpio = -ENXIO,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -90,12 +90,13 @@ void arch_reset(char mode)
|
|||||||
/* Jump into ROM at address 0 */
|
/* Jump into ROM at address 0 */
|
||||||
cpu_reset(0);
|
cpu_reset(0);
|
||||||
break;
|
break;
|
||||||
case 'h':
|
|
||||||
do_hw_reset();
|
|
||||||
break;
|
|
||||||
case 'g':
|
case 'g':
|
||||||
do_gpio_reset();
|
do_gpio_reset();
|
||||||
break;
|
break;
|
||||||
|
case 'h':
|
||||||
|
default:
|
||||||
|
do_hw_reset();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +67,7 @@
|
|||||||
static unsigned long spitz_pin_config[] __initdata = {
|
static unsigned long spitz_pin_config[] __initdata = {
|
||||||
/* Chip Selects */
|
/* Chip Selects */
|
||||||
GPIO78_nCS_2, /* SCOOP #2 */
|
GPIO78_nCS_2, /* SCOOP #2 */
|
||||||
|
GPIO79_nCS_3, /* NAND */
|
||||||
GPIO80_nCS_4, /* SCOOP #1 */
|
GPIO80_nCS_4, /* SCOOP #1 */
|
||||||
|
|
||||||
/* LCD - 16bpp Active TFT */
|
/* LCD - 16bpp Active TFT */
|
||||||
@ -97,10 +98,10 @@ static unsigned long spitz_pin_config[] __initdata = {
|
|||||||
GPIO51_nPIOW,
|
GPIO51_nPIOW,
|
||||||
GPIO85_nPCE_1,
|
GPIO85_nPCE_1,
|
||||||
GPIO54_nPCE_2,
|
GPIO54_nPCE_2,
|
||||||
GPIO79_PSKTSEL,
|
|
||||||
GPIO55_nPREG,
|
GPIO55_nPREG,
|
||||||
GPIO56_nPWAIT,
|
GPIO56_nPWAIT,
|
||||||
GPIO57_nIOIS16,
|
GPIO57_nIOIS16,
|
||||||
|
GPIO104_PSKTSEL,
|
||||||
|
|
||||||
/* MMC */
|
/* MMC */
|
||||||
GPIO32_MMC_CLK,
|
GPIO32_MMC_CLK,
|
||||||
@ -686,7 +687,6 @@ static void __init akita_init(void)
|
|||||||
spitz_pcmcia_config.num_devs = 1;
|
spitz_pcmcia_config.num_devs = 1;
|
||||||
platform_scoop_config = &spitz_pcmcia_config;
|
platform_scoop_config = &spitz_pcmcia_config;
|
||||||
|
|
||||||
pxa_set_i2c_info(NULL);
|
|
||||||
i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info));
|
i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info));
|
||||||
|
|
||||||
common_init();
|
common_init();
|
||||||
|
@ -104,7 +104,7 @@ static struct clk uart_clk = {
|
|||||||
|
|
||||||
static struct clk mmci_clk = {
|
static struct clk mmci_clk = {
|
||||||
.name = "MCLK",
|
.name = "MCLK",
|
||||||
.rate = 33000000,
|
.rate = 24000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
int clk_register(struct clk *clk)
|
int clk_register(struct clk *clk)
|
||||||
|
@ -238,28 +238,11 @@
|
|||||||
#define REALVIEW_INTREG_OFFSET 0x8 /* Interrupt control */
|
#define REALVIEW_INTREG_OFFSET 0x8 /* Interrupt control */
|
||||||
#define REALVIEW_DECODE_OFFSET 0xC /* Fitted logic modules */
|
#define REALVIEW_DECODE_OFFSET 0xC /* Fitted logic modules */
|
||||||
|
|
||||||
/*
|
|
||||||
* Application Flash
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define FLASH_BASE REALVIEW_FLASH_BASE
|
|
||||||
#define FLASH_SIZE REALVIEW_FLASH_SIZE
|
|
||||||
#define FLASH_END (FLASH_BASE + FLASH_SIZE - 1)
|
|
||||||
#define FLASH_BLOCK_SIZE SZ_128K
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Boot Flash
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define EPROM_BASE REALVIEW_BOOT_ROM_HI
|
|
||||||
#define EPROM_SIZE REALVIEW_BOOT_ROM_SIZE
|
|
||||||
#define EPROM_END (EPROM_BASE + EPROM_SIZE - 1)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clean base - dummy
|
* Clean base - dummy
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define CLEAN_BASE EPROM_BASE
|
#define CLEAN_BASE REALVIEW_BOOT_ROM_HI
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* System controller bit assignment
|
* System controller bit assignment
|
||||||
|
@ -18,6 +18,7 @@ struct s3c2410_spigpio_info {
|
|||||||
unsigned long pin_mosi;
|
unsigned long pin_mosi;
|
||||||
unsigned long pin_miso;
|
unsigned long pin_miso;
|
||||||
|
|
||||||
|
int num_chipselect;
|
||||||
int bus_num;
|
int bus_num;
|
||||||
|
|
||||||
void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
|
void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
|
||||||
|
@ -105,7 +105,7 @@ static struct clk uart_clk = {
|
|||||||
|
|
||||||
static struct clk mmci_clk = {
|
static struct clk mmci_clk = {
|
||||||
.name = "MCLK",
|
.name = "MCLK",
|
||||||
.rate = 33000000,
|
.rate = 24000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
int clk_register(struct clk *clk)
|
int clk_register(struct clk *clk)
|
||||||
|
@ -436,28 +436,12 @@
|
|||||||
#define SIC_INTMASK_PCI1 (1 << SIC_INT_PCI1)
|
#define SIC_INTMASK_PCI1 (1 << SIC_INT_PCI1)
|
||||||
#define SIC_INTMASK_PCI2 (1 << SIC_INT_PCI2)
|
#define SIC_INTMASK_PCI2 (1 << SIC_INT_PCI2)
|
||||||
#define SIC_INTMASK_PCI3 (1 << SIC_INT_PCI3)
|
#define SIC_INTMASK_PCI3 (1 << SIC_INT_PCI3)
|
||||||
/*
|
|
||||||
* Application Flash
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define FLASH_BASE VERSATILE_FLASH_BASE
|
|
||||||
#define FLASH_SIZE VERSATILE_FLASH_SIZE
|
|
||||||
#define FLASH_END (FLASH_BASE + FLASH_SIZE - 1)
|
|
||||||
#define FLASH_BLOCK_SIZE SZ_128K
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Boot Flash
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define EPROM_BASE VERSATILE_BOOT_ROM_HI
|
|
||||||
#define EPROM_SIZE VERSATILE_BOOT_ROM_SIZE
|
|
||||||
#define EPROM_END (EPROM_BASE + EPROM_SIZE - 1)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clean base - dummy
|
* Clean base - dummy
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define CLEAN_BASE EPROM_BASE
|
#define CLEAN_BASE VERSATILE_BOOT_ROM_HI
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* System controller bit assignment
|
* System controller bit assignment
|
||||||
|
@ -70,6 +70,10 @@ static unsigned long ai_dword;
|
|||||||
static unsigned long ai_multi;
|
static unsigned long ai_multi;
|
||||||
static int ai_usermode;
|
static int ai_usermode;
|
||||||
|
|
||||||
|
#define UM_WARN (1 << 0)
|
||||||
|
#define UM_FIXUP (1 << 1)
|
||||||
|
#define UM_SIGNAL (1 << 2)
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
static const char *usermode_action[] = {
|
static const char *usermode_action[] = {
|
||||||
"ignored",
|
"ignored",
|
||||||
@ -754,7 +758,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
|||||||
user:
|
user:
|
||||||
ai_user += 1;
|
ai_user += 1;
|
||||||
|
|
||||||
if (ai_usermode & 1)
|
if (ai_usermode & UM_WARN)
|
||||||
printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx "
|
printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx "
|
||||||
"Address=0x%08lx FSR 0x%03x\n", current->comm,
|
"Address=0x%08lx FSR 0x%03x\n", current->comm,
|
||||||
task_pid_nr(current), instrptr,
|
task_pid_nr(current), instrptr,
|
||||||
@ -762,10 +766,10 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
|||||||
thumb_mode(regs) ? tinstr : instr,
|
thumb_mode(regs) ? tinstr : instr,
|
||||||
addr, fsr);
|
addr, fsr);
|
||||||
|
|
||||||
if (ai_usermode & 2)
|
if (ai_usermode & UM_FIXUP)
|
||||||
goto fixup;
|
goto fixup;
|
||||||
|
|
||||||
if (ai_usermode & 4)
|
if (ai_usermode & UM_SIGNAL)
|
||||||
force_sig(SIGBUS, current);
|
force_sig(SIGBUS, current);
|
||||||
else
|
else
|
||||||
set_cr(cr_no_alignment);
|
set_cr(cr_no_alignment);
|
||||||
@ -796,6 +800,22 @@ static int __init alignment_init(void)
|
|||||||
res->write_proc = proc_alignment_write;
|
res->write_proc = proc_alignment_write;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ARMv6 and later CPUs can perform unaligned accesses for
|
||||||
|
* most single load and store instructions up to word size.
|
||||||
|
* LDM, STM, LDRD and STRD still need to be handled.
|
||||||
|
*
|
||||||
|
* Ignoring the alignment fault is not an option on these
|
||||||
|
* CPUs since we spin re-faulting the instruction without
|
||||||
|
* making any progress.
|
||||||
|
*/
|
||||||
|
if (cpu_architecture() >= CPU_ARCH_ARMv6 && (cr_alignment & CR_U)) {
|
||||||
|
cr_alignment &= ~CR_A;
|
||||||
|
cr_no_alignment &= ~CR_A;
|
||||||
|
set_cr(cr_alignment);
|
||||||
|
ai_usermode = UM_FIXUP;
|
||||||
|
}
|
||||||
|
|
||||||
hook_fault_code(1, do_alignment, SIGILL, "alignment exception");
|
hook_fault_code(1, do_alignment, SIGILL, "alignment exception");
|
||||||
hook_fault_code(3, do_alignment, SIGILL, "alignment exception");
|
hook_fault_code(3, do_alignment, SIGILL, "alignment exception");
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end)
|
|||||||
/*
|
/*
|
||||||
* Clean and invalidate partial last cache line.
|
* Clean and invalidate partial last cache line.
|
||||||
*/
|
*/
|
||||||
if (end & (CACHE_LINE_SIZE - 1)) {
|
if (start < end && end & (CACHE_LINE_SIZE - 1)) {
|
||||||
l2_clean_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
|
l2_clean_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
|
||||||
end &= ~(CACHE_LINE_SIZE - 1);
|
end &= ~(CACHE_LINE_SIZE - 1);
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end)
|
|||||||
/*
|
/*
|
||||||
* Invalidate all full cache lines between 'start' and 'end'.
|
* Invalidate all full cache lines between 'start' and 'end'.
|
||||||
*/
|
*/
|
||||||
while (start != end) {
|
while (start < end) {
|
||||||
unsigned long range_end = calc_range_end(start, end);
|
unsigned long range_end = calc_range_end(start, end);
|
||||||
l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE);
|
l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE);
|
||||||
start = range_end;
|
start = range_end;
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/signal.h>
|
#include <linux/signal.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
#include <linux/hardirq.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/kprobes.h>
|
#include <linux/kprobes.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
|
@ -208,6 +208,12 @@ static struct mem_type mem_types[] = {
|
|||||||
.prot_sect = PROT_SECT_DEVICE,
|
.prot_sect = PROT_SECT_DEVICE,
|
||||||
.domain = DOMAIN_IO,
|
.domain = DOMAIN_IO,
|
||||||
},
|
},
|
||||||
|
[MT_UNCACHED] = {
|
||||||
|
.prot_pte = PROT_PTE_DEVICE,
|
||||||
|
.prot_l1 = PMD_TYPE_TABLE,
|
||||||
|
.prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
|
||||||
|
.domain = DOMAIN_IO,
|
||||||
|
},
|
||||||
[MT_CACHECLEAN] = {
|
[MT_CACHECLEAN] = {
|
||||||
.prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
|
.prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
|
||||||
.domain = DOMAIN_KERNEL,
|
.domain = DOMAIN_KERNEL,
|
||||||
|
@ -16,14 +16,15 @@
|
|||||||
#include <asm/hardware/iop3xx.h>
|
#include <asm/hardware/iop3xx.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Standard IO mapping for all IOP3xx based systems
|
* Standard IO mapping for all IOP3xx based systems. Note that
|
||||||
|
* the IOP3xx OCCDR must be mapped uncached and unbuffered.
|
||||||
*/
|
*/
|
||||||
static struct map_desc iop3xx_std_desc[] __initdata = {
|
static struct map_desc iop3xx_std_desc[] __initdata = {
|
||||||
{ /* mem mapped registers */
|
{ /* mem mapped registers */
|
||||||
.virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
|
.virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
|
||||||
.pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
|
.pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
|
||||||
.length = IOP3XX_PERIPHERAL_SIZE,
|
.length = IOP3XX_PERIPHERAL_SIZE,
|
||||||
.type = MT_DEVICE,
|
.type = MT_UNCACHED,
|
||||||
}, { /* PCI IO space */
|
}, { /* PCI IO space */
|
||||||
.virtual = IOP3XX_PCI_LOWER_IO_VA,
|
.virtual = IOP3XX_PCI_LOWER_IO_VA,
|
||||||
.pfn = __phys_to_pfn(IOP3XX_PCI_LOWER_IO_PA),
|
.pfn = __phys_to_pfn(IOP3XX_PCI_LOWER_IO_PA),
|
||||||
|
@ -101,6 +101,7 @@
|
|||||||
#define OMAP24XX_GPIO_IRQSTATUS2 0x0028
|
#define OMAP24XX_GPIO_IRQSTATUS2 0x0028
|
||||||
#define OMAP24XX_GPIO_IRQENABLE2 0x002c
|
#define OMAP24XX_GPIO_IRQENABLE2 0x002c
|
||||||
#define OMAP24XX_GPIO_IRQENABLE1 0x001c
|
#define OMAP24XX_GPIO_IRQENABLE1 0x001c
|
||||||
|
#define OMAP24XX_GPIO_WAKE_EN 0x0020
|
||||||
#define OMAP24XX_GPIO_CTRL 0x0030
|
#define OMAP24XX_GPIO_CTRL 0x0030
|
||||||
#define OMAP24XX_GPIO_OE 0x0034
|
#define OMAP24XX_GPIO_OE 0x0034
|
||||||
#define OMAP24XX_GPIO_DATAIN 0x0038
|
#define OMAP24XX_GPIO_DATAIN 0x0038
|
||||||
@ -1551,7 +1552,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
|
|||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
|
#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
|
||||||
case METHOD_GPIO_24XX:
|
case METHOD_GPIO_24XX:
|
||||||
wake_status = bank->base + OMAP24XX_GPIO_SETWKUENA;
|
wake_status = bank->base + OMAP24XX_GPIO_WAKE_EN;
|
||||||
wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
|
wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
|
||||||
wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA;
|
wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA;
|
||||||
break;
|
break;
|
||||||
@ -1574,7 +1575,7 @@ static int omap_gpio_resume(struct sys_device *dev)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!cpu_is_omap24xx() && !cpu_is_omap16xx())
|
if (!cpu_class_is_omap2() && !cpu_is_omap16xx())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (i = 0; i < gpio_bank_count; i++) {
|
for (i = 0; i < gpio_bank_count; i++) {
|
||||||
|
@ -353,8 +353,8 @@ struct omapfb_device {
|
|||||||
u32 pseudo_palette[17];
|
u32 pseudo_palette[17];
|
||||||
|
|
||||||
struct lcd_panel *panel; /* LCD panel */
|
struct lcd_panel *panel; /* LCD panel */
|
||||||
struct lcd_ctrl *ctrl; /* LCD controller */
|
const struct lcd_ctrl *ctrl; /* LCD controller */
|
||||||
struct lcd_ctrl *int_ctrl; /* internal LCD ctrl */
|
const struct lcd_ctrl *int_ctrl; /* internal LCD ctrl */
|
||||||
struct lcd_ctrl_extif *ext_if; /* LCD ctrl external
|
struct lcd_ctrl_extif *ext_if; /* LCD ctrl external
|
||||||
interface */
|
interface */
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user