Merge commit 'v2.6.28-rc7' into core/locking
This commit is contained in:
		
						commit
						cb9c34e6d0
					
				| @ -42,14 +42,8 @@ IRQ.txt | ||||
| 	- description of what an IRQ is. | ||||
| ManagementStyle | ||||
| 	- how to (attempt to) manage kernel hackers. | ||||
| MSI-HOWTO.txt | ||||
| 	- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ. | ||||
| RCU/ | ||||
| 	- 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 | ||||
| 	- info on Secure Attention Keys. | ||||
| SM501.txt | ||||
| @ -86,20 +80,16 @@ blackfin/ | ||||
| 	- directory with documentation for the Blackfin arch. | ||||
| block/ | ||||
| 	- info on the Block I/O (BIO) layer. | ||||
| blockdev/ | ||||
| 	- info on block devices & drivers | ||||
| cachetlb.txt | ||||
| 	- describes the cache/TLB flushing interfaces Linux uses. | ||||
| cciss.txt | ||||
| 	- info, major/minor #'s for Compaq's SMART Array Controllers. | ||||
| cdrom/ | ||||
| 	- directory with information on the CD-ROM drivers that Linux has. | ||||
| computone.txt | ||||
| 	- info on Computone Intelliport II/Plus Multiport Serial Driver. | ||||
| connector/ | ||||
| 	- docs on the netlink based userspace<->kernel space communication mod. | ||||
| console/ | ||||
| 	- documentation on Linux console drivers. | ||||
| cpqarray.txt | ||||
| 	- info on using Compaq's SMART2 Intelligent Disk Array Controllers. | ||||
| cpu-freq/ | ||||
| 	- info on CPU frequency and voltage scaling. | ||||
| cpu-hotplug.txt | ||||
| @ -126,8 +116,6 @@ device-mapper/ | ||||
| 	- directory with info on Device Mapper. | ||||
| devices.txt | ||||
| 	- 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 | ||||
| 	- file containing a list of files that should never be diff'ed. | ||||
| driver-model/ | ||||
| @ -152,14 +140,10 @@ filesystems/ | ||||
| 	- info on the vfs and the various filesystems that Linux supports. | ||||
| firmware_class/ | ||||
| 	- request_firmware() hotplug interface info. | ||||
| floppy.txt | ||||
| 	- notes and driver options for the floppy disk driver. | ||||
| frv/ | ||||
| 	- Fujitsu FR-V Linux documentation. | ||||
| gpio.txt | ||||
| 	- overview of GPIO (General Purpose Input/Output) access conventions. | ||||
| hayes-esp.txt | ||||
| 	- info on using the Hayes ESP serial driver. | ||||
| highuid.txt | ||||
| 	- notes on the change from 16 bit to 32 bit user/group IDs. | ||||
| timers/ | ||||
| @ -186,8 +170,6 @@ io_ordering.txt | ||||
| 	- info on ordering I/O writes to memory-mapped addresses. | ||||
| ioctl/ | ||||
| 	- directory with documents describing various IOCTL calls. | ||||
| ioctl-number.txt | ||||
| 	- how to implement and register device/driver ioctl calls. | ||||
| iostats.txt | ||||
| 	- info on I/O statistics Linux kernel provides. | ||||
| irqflags-tracing.txt | ||||
| @ -250,14 +232,10 @@ mips/ | ||||
| 	- directory with info about Linux on MIPS architecture. | ||||
| mono.txt | ||||
| 	- 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 | ||||
| 	- info on the generic mutex subsystem. | ||||
| namespaces/ | ||||
| 	- directory with various information about namespaces | ||||
| nbd.txt | ||||
| 	- info on a TCP implementation of a network block device. | ||||
| netlabel/ | ||||
| 	- directory with information on the NetLabel subsystem. | ||||
| networking/ | ||||
| @ -270,8 +248,6 @@ numastat.txt | ||||
| 	- info on how to read Numa policy hit/miss statistics in sysfs. | ||||
| oops-tracing.txt | ||||
| 	- how to decode those nasty internal kernel error dump messages. | ||||
| paride.txt | ||||
| 	- information about the parallel port IDE subsystem. | ||||
| parisc/ | ||||
| 	- directory with info on using Linux on PA-RISC architecture. | ||||
| parport.txt | ||||
| @ -290,20 +266,16 @@ powerpc/ | ||||
| 	- directory with info on using Linux with the PowerPC. | ||||
| preempt-locking.txt | ||||
| 	- info on locking under a preemptive kernel. | ||||
| printk-formats.txt | ||||
| 	- how to get printk format specifiers right | ||||
| prio_tree.txt | ||||
| 	- 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 | ||||
| 	- 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 | ||||
| 	- documentation of the robust futex ABI. | ||||
| robust-futexes.txt | ||||
| 	- a description of what robust futexes are. | ||||
| rocket.txt | ||||
| 	- info on the Comtrol RocketPort multiport serial driver. | ||||
| rt-mutex-design.txt | ||||
| 	- description of the RealTime mutex implementation design. | ||||
| rt-mutex.txt | ||||
| @ -332,8 +304,6 @@ sparc/ | ||||
| 	- directory with info on using Linux on Sparc architecture. | ||||
| sparse.txt | ||||
| 	- 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/ | ||||
| 	- overview of Linux kernel Serial Peripheral Interface (SPI) support. | ||||
| 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. | ||||
| stable_kernel_rules.txt | ||||
| 	- rules and procedures for the -stable kernel releases. | ||||
| stallion.txt | ||||
| 	- info on using the Stallion multiport serial driver. | ||||
| svga.txt | ||||
| 	- short guide on selecting video modes at boot via VGA BIOS. | ||||
| sysfs-rules.txt | ||||
| 	- How not to use sysfs. | ||||
| sx.txt | ||||
| 	- info on the Specialix SX/SI multiport serial driver. | ||||
| sysctl/ | ||||
| 	- directory with info on the /proc/sys/* files. | ||||
| sysrq.txt | ||||
| @ -358,8 +324,6 @@ telephony/ | ||||
| 	- directory with info on telephony (e.g. voice over IP) support. | ||||
| time_interpolators.txt | ||||
| 	- info on time interpolators. | ||||
| tty.txt | ||||
| 	- guide to the locking policies of the tty layer. | ||||
| uml/ | ||||
| 	- directory with information about User Mode Linux. | ||||
| 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. | ||||
| 
 | ||||
| 		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. | ||||
| 
 | ||||
| 		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 | ||||
| 		when pressing the power button. | ||||
| 		# cat ff_pwr_btn | ||||
| 		0 | ||||
| 		0	enabled | ||||
| 		# press the power button for 3 times; | ||||
| 		# cat ff_pwr_btn | ||||
| 		3 | ||||
| 		3	enabled | ||||
| 		# echo disable > ff_pwr_btn | ||||
| 		# cat ff_pwr_btn | ||||
| 		disable | ||||
| 		3	disabled | ||||
| 		# press the power button for 3 times; | ||||
| 		# cat ff_pwr_btn | ||||
| 		disable | ||||
| 		3	disabled | ||||
| 		# echo enable > 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, | ||||
| 		 * and it triggers an ACPI fixed event when the enable bit is set again | ||||
| 		 */ | ||||
| 		# press the power button for 3 times; | ||||
| 		# cat ff_pwr_btn | ||||
| 		7 | ||||
| 		7	enabled | ||||
| 		# echo disable > ff_pwr_btn | ||||
| 		# press the power button for 3 times; | ||||
| 		# echo clear > ff_pwr_btn	/* clear the status bit */ | ||||
| 		# echo disable > 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, | ||||
| 		int nents, int direction) | ||||
| 
 | ||||
| Maps a scatter gather list from the block layer. | ||||
| 
 | ||||
| Returns: the number of physical segments mapped (this may be shorter | ||||
| than <nents> passed in if the block layer determines that some | ||||
| elements of the scatter/gather list are physically adjacent and thus | ||||
| may be mapped with a single entry). | ||||
| than <nents> passed in if some elements of the scatter/gather list are | ||||
| physically or virtually adjacent and an IOMMU maps them with a single | ||||
| entry). | ||||
| 
 | ||||
| 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. | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| 00-INDEX | ||||
| 	- this file | ||||
| MSI-HOWTO.txt | ||||
| 	- the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ. | ||||
| PCI-DMA-mapping.txt | ||||
| 	- info for PCI drivers using DMA portably across all platforms | ||||
| 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 | ||||
							
								
								
									
										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 | ||||
| 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 | ||||
| @ -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 | ||||
| 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 | ||||
| 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 | ||||
| @ -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 | ||||
| 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 | ||||
| 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. | ||||
| @ -37,26 +37,29 @@ demonstrate this problem using nested bash shells: | ||||
| 
 | ||||
| 	<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. | ||||
| 
 | ||||
| 	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 | ||||
| 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 | ||||
| being frozen. This allows the bash example above and gdb to run as | ||||
| 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 | ||||
| cgroup. Subsequently writing "THAWED" will unfreeze the tasks in the cgroup. | ||||
| 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 : | ||||
| 
 | ||||
|    # mkdir /containers/freezer | ||||
|    # mkdir /containers | ||||
|    # mount -t cgroup -ofreezer freezer  /containers | ||||
|    # mkdir /containers/0 | ||||
|    # echo $some_pid > /containers/0/tasks | ||||
| @ -94,6 +97,6 @@ things happens: | ||||
| 		the freezer.state file | ||||
| 	2) Userspace retries the freezing operation by writing "FROZEN" to | ||||
| 		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" | ||||
| 		state disappear from the cgroup's set of tasks. | ||||
|  | ||||
| @ -23,6 +23,7 @@ Contents: | ||||
| 1.3 sparc64 | ||||
| 1.4 ppc | ||||
| 1.5 SuperH | ||||
| 1.6 Blackfin | ||||
| 
 | ||||
| 2. "Policy" / "Governor"? | ||||
| 2.1 Policy | ||||
| @ -97,6 +98,17 @@ The following SuperH processors are supported by cpufreq: | ||||
| SH-3 | ||||
| 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" ? | ||||
| ========================== | ||||
|  | ||||
| @ -28,10 +28,7 @@ Manish Singh  <manish.singh@oracle.com> | ||||
| Caveats | ||||
| ======= | ||||
| Features which OCFS2 does not support yet: | ||||
| 	- extended attributes | ||||
| 	- quotas | ||||
| 	- cluster aware flock | ||||
| 	- cluster aware lockf | ||||
| 	- Directory change notification (F_NOTIFY) | ||||
| 	- Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) | ||||
| 	- POSIX ACLs | ||||
|  | ||||
| @ -44,6 +44,7 @@ Table of Contents | ||||
|   2.14	/proc/<pid>/io - Display the IO accounting fields | ||||
|   2.15	/proc/<pid>/coredump_filter - Core dump filtering settings | ||||
|   2.16	/proc/<pid>/mountinfo - Information about mounts | ||||
|   2.17	/proc/sys/fs/epoll - Configuration options for the epoll interface | ||||
| 
 | ||||
| ------------------------------------------------------------------------------ | ||||
| Preface | ||||
| @ -2483,4 +2484,30 @@ For more information on mount propagation see: | ||||
| 
 | ||||
|   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 is empty (consuming 134 bytes on x86). | ||||
| 
 | ||||
| The config option CONFIG_INITRAMFS_SOURCE (for some reason buried under | ||||
| devices->block devices in menuconfig, and living in usr/Kconfig) can be used | ||||
| to specify a source for the initramfs archive, which will automatically be | ||||
| incorporated into the resulting binary.  This option can point to an existing | ||||
| gzipped cpio archive, a directory containing files to be archived, or a text | ||||
| file specification such as the following example: | ||||
| The config option CONFIG_INITRAMFS_SOURCE (in General Setup in menuconfig, | ||||
| and living in usr/Kconfig) can be used to specify a source for the | ||||
| initramfs archive, which will automatically be incorporated into the | ||||
| resulting binary.  This option can point to an existing gzipped cpio | ||||
| archive, a directory containing files to be archived, or a text file | ||||
| specification such as the following example: | ||||
| 
 | ||||
|   dir /dev 755 0 0 | ||||
|   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: | ||||
| - dcssblk: s390 dcss block device driver | ||||
| 
 | ||||
| An address space operation named get_xip_page is used to retrieve reference | ||||
| to a struct page. To address the target page, a reference to an address_space, | ||||
| and a sector number is provided. A 3rd argument indicates whether the | ||||
| function should allocate blocks if needed. | ||||
| An address space operation named get_xip_mem is used to retrieve references | ||||
| to a page frame number and a kernel address. To obtain these values a reference | ||||
| to an address_space is provided. This function assigns values to the kmem and | ||||
| 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 | ||||
| do page cache read/write operations. | ||||
|  | ||||
							
								
								
									
										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 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_sync(button_dev); | ||||
| 	return IRQ_HANDLED; | ||||
| } | ||||
| 
 | ||||
| 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 | ||||
| 			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> | ||||
| 			Each bit of the <int> indicates an ACPI debug layer, | ||||
| 			1: enable, 0: disable. It is useful for boot time | ||||
| 			debugging. After system has booted up, it can be set | ||||
| 			via /sys/module/acpi/parameters/debug_layer. | ||||
| 			CONFIG_ACPI_DEBUG must be enabled for this to produce any output. | ||||
| 			Available bits (add the numbers together) to enable debug output | ||||
| 			for specific parts of the ACPI subsystem: | ||||
| 			0x01 utilities 0x02 hardware 0x04 events 0x08 tables | ||||
| 			0x10 namespace 0x20 parser 0x40 dispatcher | ||||
| 			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. | ||||
| 			CONFIG_ACPI_DEBUG must be enabled to produce any ACPI | ||||
| 			debug output.  Bits in debug_layer correspond to a | ||||
| 			_COMPONENT in an ACPI source file, e.g., | ||||
| 			    #define _COMPONENT ACPI_PCI_COMPONENT | ||||
| 			Bits in debug_level correspond to a level in | ||||
| 			ACPI_DEBUG_PRINT statements, e.g., | ||||
| 			    ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... | ||||
| 			See Documentation/acpi/debug.txt for more information | ||||
| 			about debug layers and levels. | ||||
| 
 | ||||
| 	acpi.debug_level=	[HW,ACPI] | ||||
| 			Format: <int> | ||||
| 			Each bit of the <int> indicates an ACPI debug level, | ||||
| 			which corresponds to the level in an ACPI_DEBUG_PRINT | ||||
| 			statement.  After system has booted up, this mask | ||||
| 			can be set via /sys/module/acpi/parameters/debug_level. | ||||
| 			Enable AML "Debug" output, i.e., stores to the Debug | ||||
| 			object while interpreting AML: | ||||
| 			    acpi.debug_layer=0xffffffff acpi.debug_level=0x2 | ||||
| 			Enable PCI/PCI interrupt routing info messages: | ||||
| 			    acpi.debug_layer=0x400000 acpi.debug_level=0x4 | ||||
| 			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 | ||||
| 			any output.  The number can be in decimal or prefixed | ||||
| 			with 0x in hex.  Some of these options produce so much | ||||
| 			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. | ||||
| 			Some values produce so much output that the system is | ||||
| 			unusable.  The "log_buf_len" parameter may be useful | ||||
| 			if you need to capture more output. | ||||
| 
 | ||||
|  	acpi.power_nocheck=	[HW,ACPI] | ||||
|  			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: | ||||
| 			isolate - enable device isolation (each device, as far | ||||
| 			          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 | ||||
| 				    they are unmapped. Otherwise they are | ||||
| 				    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] | ||||
| 			See drivers/char/README.epca and | ||||
| 			Documentation/digiepca.txt. | ||||
| 			Documentation/serial/digiepca.txt. | ||||
| 
 | ||||
| 	disable_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. | ||||
| 
 | ||||
| 	floppy=		[HW] | ||||
| 			See Documentation/floppy.txt. | ||||
| 			See Documentation/blockdev/floppy.txt. | ||||
| 
 | ||||
| 	force_pal_cache_flush | ||||
| 			[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. | ||||
| 
 | ||||
| 	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. | ||||
| 			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 | ||||
| 			the IO APIC. | ||||
| 
 | ||||
| 	max_addr=[KMG]	[KNL,BOOT,ia64] All physical memory greater than or | ||||
| 			equal to this physical address is ignored. | ||||
| 	max_addr=nn[KMG]	[KNL,BOOT,ia64] All physical memory greater than | ||||
| 			or equal to this physical address is ignored. | ||||
| 
 | ||||
| 	max_luns=	[SCSI] Maximum number of LUNs to probe. | ||||
| 			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] | ||||
| 
 | ||||
| 	min_addr=nn[KMG]	[KNL,BOOT,ia64] All physical memory below this | ||||
| 			physical address is ignored. | ||||
| 
 | ||||
| 	mminit_loglevel= | ||||
| 			[KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this | ||||
| 			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] | ||||
| 			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: | ||||
| 		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 | ||||
| 
 | ||||
| 	pd.		[PARIDE] | ||||
| 			See Documentation/paride.txt. | ||||
| 			See Documentation/blockdev/paride.txt. | ||||
| 
 | ||||
| 	pdcchassis=	[PARISC,HW] Disable/Enable PDC Chassis Status codes at | ||||
| 			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 | ||||
| 
 | ||||
| 	pf.		[PARIDE] | ||||
| 			See Documentation/paride.txt. | ||||
| 			See Documentation/blockdev/paride.txt. | ||||
| 
 | ||||
| 	pg.		[PARIDE] | ||||
| 			See Documentation/paride.txt. | ||||
| 			See Documentation/blockdev/paride.txt. | ||||
| 
 | ||||
| 	pirq=		[SMP,APIC] Manual mp-table setup | ||||
| 			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 | ||||
| 			before loading. | ||||
| 			See Documentation/ramdisk.txt. | ||||
| 			See Documentation/blockdev/ramdisk.txt. | ||||
| 
 | ||||
| 	psmouse.proto=	[HW,MOUSE] Highest PS2 mouse protocol extension to | ||||
| 			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> | ||||
| 
 | ||||
| 	pt.		[PARIDE] | ||||
| 			See Documentation/paride.txt. | ||||
| 			See Documentation/blockdev/paride.txt. | ||||
| 
 | ||||
| 	pty.legacy_count= | ||||
| 			[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. | ||||
| 
 | ||||
| 	ramdisk_blocksize=	[RAM] | ||||
| 			See Documentation/ramdisk.txt. | ||||
| 			See Documentation/blockdev/ramdisk.txt. | ||||
| 
 | ||||
| 	ramdisk_size=	[RAM] Sizes of RAM disks in kilobytes | ||||
| 			See Documentation/ramdisk.txt. | ||||
| 			See Documentation/blockdev/ramdisk.txt. | ||||
| 
 | ||||
| 	rcupdate.blimit=	[KNL,BOOT] | ||||
| 			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 | ||||
| 
 | ||||
| 	specialix=	[HW,SERIAL] Specialix multi-serial port adapter | ||||
| 			See Documentation/specialix.txt. | ||||
| 			See Documentation/serial/specialix.txt. | ||||
| 
 | ||||
| 	spia_io_base=	[HW,MTD] | ||||
| 	spia_fio_base= | ||||
|  | ||||
| @ -96,7 +96,7 @@ Letting the PHY Abstraction Layer do Everything | ||||
|    static void adjust_link(struct net_device *dev); | ||||
|   | ||||
|  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, | ||||
|  the bus is responsible for making its ID unique. | ||||
|   | ||||
|  | ||||
							
								
								
									
										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 | ||||
| works just fine) and run the following command: | ||||
| 
 | ||||
| 	unshar Documentation/computone.txt | ||||
| 	unshar Documentation/serial/computone.txt | ||||
| 		(This file) | ||||
| 
 | ||||
| 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 | ||||
| 	  dell-m4-1	Dell desktops | ||||
| 	  dell-m4-2	Dell desktops | ||||
| 	  dell-m4-3	Dell desktops | ||||
| 
 | ||||
| 	STAC92HD73* | ||||
| 	  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 | ||||
| 	  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 | ||||
| 	 * 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) | ||||
| 	{ | ||||
|  | ||||
| @ -37,7 +37,7 @@ $ echo mmiotrace > /debug/tracing/current_tracer | ||||
| $ cat /debug/tracing/trace_pipe > mydump.txt & | ||||
| Start X or whatever. | ||||
| $ echo "X is up" > /debug/tracing/trace_marker | ||||
| $ echo none > /debug/tracing/current_tracer | ||||
| $ echo nop > /debug/tracing/current_tracer | ||||
| Check for lost events. | ||||
| 
 | ||||
| 
 | ||||
| @ -66,7 +66,7 @@ which action. It is recommended to place descriptive markers about what you | ||||
| do. | ||||
| 
 | ||||
| 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 | ||||
| pressing ctrl+c. | ||||
| 
 | ||||
| @ -81,7 +81,9 @@ are: | ||||
| $ cat /debug/tracing/trace_entries | ||||
| gives you a number. Approximately double this number and write it back, for | ||||
| instance: | ||||
| $ echo 0 > /debug/tracing/tracing_enabled | ||||
| $ echo 128000 > /debug/tracing/trace_entries | ||||
| $ echo 1 > /debug/tracing/tracing_enabled | ||||
| Then start again from the top. | ||||
| 
 | ||||
| If you are doing a trace for a driver project, e.g. Nouveau, you should also | ||||
|  | ||||
							
								
								
									
										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 | ||||
| 
 | ||||
							
								
								
									
										20
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								MAINTAINERS
									
									
									
									
									
								
							| @ -1809,7 +1809,7 @@ S:	Maintained | ||||
| 
 | ||||
| FTRACE | ||||
| P:	Steven Rostedt | ||||
| M:	srostedt@redhat.com | ||||
| M:	rostedt@goodmis.org | ||||
| S:	Maintained | ||||
| 
 | ||||
| FUJITSU FR-V (FRV) PORT | ||||
| @ -2216,6 +2216,13 @@ M:	adaplas@gmail.com | ||||
| L:	linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) | ||||
| 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 | ||||
| P:	Tigran Aivazian | ||||
| M:	tigran@aivazian.fsnet.co.uk | ||||
| @ -2696,6 +2703,11 @@ P:	Arnaldo Carvalho de Melo | ||||
| M:	acme@ghostprotocols.net | ||||
| S:	Maintained | ||||
| 
 | ||||
| LIS3LV02D ACCELEROMETER DRIVER | ||||
| P:	Eric Piel | ||||
| M:	eric.piel@tremplin-utc.net | ||||
| S:	Maintained | ||||
| 
 | ||||
| LM83 HARDWARE MONITOR DRIVER | ||||
| P:	Jean Delvare | ||||
| M:	khali@linux-fr.org | ||||
| @ -3377,7 +3389,9 @@ S:	Maintained | ||||
| 
 | ||||
| PNP SUPPORT | ||||
| P:	Adam Belay | ||||
| M:	ambx1@neo.rr.com | ||||
| M:	abelay@mit.edu | ||||
| P:	Bjorn Helgaas | ||||
| M:	bjorn.helgaas@hp.com | ||||
| S:	Maintained | ||||
| 
 | ||||
| PNXxxxx I2C DRIVER | ||||
| @ -3914,8 +3928,6 @@ M:	bootc@bootc.net | ||||
| S:	Maintained | ||||
| 
 | ||||
| SOFTWARE RAID (Multiple Disks) SUPPORT | ||||
| P:	Ingo Molnar | ||||
| M:	mingo@redhat.com | ||||
| P:	Neil Brown | ||||
| M:	neilb@suse.de | ||||
| L:	linux-raid@vger.kernel.org | ||||
|  | ||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,8 +1,8 @@ | ||||
| VERSION = 2 | ||||
| PATCHLEVEL = 6 | ||||
| SUBLEVEL = 28 | ||||
| EXTRAVERSION = -rc4 | ||||
| NAME = Killer Bat of Doom | ||||
| EXTRAVERSION = -rc7 | ||||
| NAME = Erotic Pickled Herring | ||||
| 
 | ||||
| # *DOCUMENTATION*
 | ||||
| # 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 | ||||
| #	arch_has_single_step()	if there is hardware single-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 | ||||
| #	linux/regset.h		user_regset interfaces | ||||
| #	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); | ||||
| } | ||||
| 
 | ||||
| void __devinit | ||||
| void | ||||
| pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, | ||||
| 			 struct resource *res) | ||||
| { | ||||
|  | ||||
| @ -121,7 +121,7 @@ wait_boot_cpu_to_stop(int cpuid) | ||||
| /*
 | ||||
|  * Where secondaries begin a life of C. | ||||
|  */ | ||||
| void __init | ||||
| void __cpuinit | ||||
| smp_callin(void) | ||||
| { | ||||
| 	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 | ||||
|  * interesting message.  ;-) | ||||
|  */ | ||||
| static void __init | ||||
| static void __cpuinit | ||||
| send_secondary_console_msg(char *str, int cpuid) | ||||
| { | ||||
| 	struct percpu_struct *cpu; | ||||
| @ -289,7 +289,7 @@ recv_secondary_console_msg(void) | ||||
| /*
 | ||||
|  * 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) | ||||
| { | ||||
| 	struct percpu_struct *cpu; | ||||
|  | ||||
| @ -31,7 +31,7 @@ | ||||
| 
 | ||||
| static int opDEC_fix; | ||||
| 
 | ||||
| static void __init | ||||
| static void __cpuinit | ||||
| opDEC_check(void) | ||||
| { | ||||
| 	__asm__ __volatile__ ( | ||||
| @ -1072,7 +1072,7 @@ give_sigbus: | ||||
| 	return; | ||||
| } | ||||
| 
 | ||||
| void __init | ||||
| void __cpuinit | ||||
| trap_init(void) | ||||
| { | ||||
| 	/* Tell PAL-code what global pointer we want in the kernel.  */ | ||||
|  | ||||
| @ -179,7 +179,7 @@ CONFIG_MACH_HUSKY=y | ||||
| # CONFIG_MACH_AKITA is not set | ||||
| # CONFIG_MACH_SPITZ 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_PXA_ESERIES is not set | ||||
| # CONFIG_TRIZEPS_PXA is not set | ||||
|  | ||||
| @ -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, | ||||
| 		size_t, enum dma_data_direction); | ||||
| #else | ||||
| #define dmabounce_sync_for_cpu(dev,dma,off,sz,dir)	(1) | ||||
| #define dmabounce_sync_for_device(dev,dma,off,sz,dir)	(1) | ||||
| static inline int dmabounce_sync_for_cpu(struct device *d, dma_addr_t addr, | ||||
| 	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 */ | ||||
| 	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; | ||||
| } | ||||
| 
 | ||||
| @ -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_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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -23,6 +23,12 @@ | ||||
| 
 | ||||
| #define IOP_ADMA_SLOT_SIZE 32 | ||||
| #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 | ||||
|  | ||||
| @ -19,12 +19,13 @@ struct map_desc { | ||||
| }; | ||||
| 
 | ||||
| /* types 0-3 are defined in asm/io.h */ | ||||
| #define MT_CACHECLEAN		4 | ||||
| #define MT_MINICLEAN		5 | ||||
| #define MT_LOW_VECTORS		6 | ||||
| #define MT_HIGH_VECTORS		7 | ||||
| #define MT_MEMORY		8 | ||||
| #define MT_ROM			9 | ||||
| #define MT_UNCACHED		4 | ||||
| #define MT_CACHECLEAN		5 | ||||
| #define MT_MINICLEAN		6 | ||||
| #define MT_LOW_VECTORS		7 | ||||
| #define MT_HIGH_VECTORS		8 | ||||
| #define MT_MEMORY		9 | ||||
| #define MT_ROM			10 | ||||
| 
 | ||||
| #ifdef CONFIG_MMU | ||||
| extern void iotable_init(struct map_desc *, int); | ||||
|  | ||||
| @ -94,20 +94,6 @@ | ||||
| #include <asm/hardware/ep7212.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 */ | ||||
| #define REGISTER_START   0x80000000 | ||||
| #define REGISTER_SIZE    0x4000 | ||||
| @ -198,14 +184,6 @@ | ||||
| #define CEIVA_FLASH_SIZE        0x100000 | ||||
| #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 | ||||
|  */ | ||||
|  | ||||
| @ -275,9 +275,9 @@ static struct map_desc cl7500_io_desc[] __initdata = { | ||||
| 		.length		= ISA_SIZE, | ||||
| 		.type		= MT_DEVICE | ||||
| 	}, {	/* Flash	*/ | ||||
| 		.virtual	= FLASH_BASE, | ||||
| 		.pfn		= __phys_to_pfn(FLASH_START), | ||||
| 		.length		= FLASH_SIZE, | ||||
| 		.virtual	= CLPS7500_FLASH_BASE, | ||||
| 		.pfn		= __phys_to_pfn(CLPS7500_FLASH_START), | ||||
| 		.length		= CLPS7500_FLASH_SIZE, | ||||
| 		.type		= MT_DEVICE | ||||
| 	}, {	/* LED		*/ | ||||
| 		.virtual	= LED_BASE, | ||||
|  | ||||
| @ -39,9 +39,9 @@ | ||||
| #define ISA_SIZE		0x00010000 | ||||
| #define ISA_BASE		0xe1000000 | ||||
| 
 | ||||
| #define FLASH_START		0x01000000	/* XXX */ | ||||
| #define FLASH_SIZE		0x01000000 | ||||
| #define FLASH_BASE		0xe2000000 | ||||
| #define CLPS7500_FLASH_START	0x01000000	/* XXX */ | ||||
| #define CLPS7500_FLASH_SIZE	0x01000000 | ||||
| #define CLPS7500_FLASH_BASE	0xe2000000 | ||||
| 
 | ||||
| #define LED_START		0x0302B000 | ||||
| #define LED_SIZE		0x00001000 | ||||
|  | ||||
| @ -19,9 +19,9 @@ | ||||
| #ifdef CONFIG_ARCH_H7202 | ||||
| 
 | ||||
| /* FLASH */ | ||||
| #define FLASH_VIRT		0xd0000000 | ||||
| #define FLASH_PHYS		0x00000000 | ||||
| #define FLASH_SIZE		0x02000000 | ||||
| #define H720X_FLASH_VIRT	0xd0000000 | ||||
| #define H720X_FLASH_PHYS	0x00000000 | ||||
| #define H720X_FLASH_SIZE	0x02000000 | ||||
| 
 | ||||
| /* onboard LAN controller */ | ||||
| # define ETH0_PHYS		0x08000000 | ||||
|  | ||||
| @ -407,28 +407,11 @@ | ||||
|  */ | ||||
| #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 | ||||
|  * | ||||
|  */ | ||||
| #define CLEAN_BASE                      EPROM_BASE | ||||
| #define CLEAN_BASE                      INTEGRATOR_BOOT_ROM_HI | ||||
| 
 | ||||
| /*
 | ||||
|  *  Timer definitions | ||||
|  | ||||
| @ -404,7 +404,8 @@ static inline void iop_desc_set_next_desc(struct iop_adma_desc_slot *desc, | ||||
| 					u32 next_desc_addr) | ||||
| { | ||||
| 	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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -33,6 +33,7 @@ | ||||
| #define LCD_CONN_TYPE(_x)	((_x) & 0x0f) | ||||
| #define LCD_CONN_WIDTH(_x)	(((_x) >> 4) & 0x1f) | ||||
| 
 | ||||
| #define LCD_TYPE_MASK		0xf | ||||
| #define LCD_TYPE_UNKNOWN	0 | ||||
| #define LCD_TYPE_MONO_STN	1 | ||||
| #define LCD_TYPE_MONO_DSTN	2 | ||||
|  | ||||
| @ -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); | ||||
| 
 | ||||
| 	/* 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, | ||||
| 			   is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW); | ||||
| 
 | ||||
|  | ||||
| @ -24,6 +24,7 @@ ENTRY(mioa701_jumpaddr) | ||||
| 1: | ||||
| 	mov	r0,     #0xa0000000	@ Don't suppose memory access works
 | ||||
| 	orr	r0, r0, #0x00200000	@ even if it's supposed to
 | ||||
| 	orr	r0, r0, #0x0000b000 | ||||
| 	mov	r1, #0 | ||||
| 	str	r1, [r0]		@ Early disable resume for next boot
 | ||||
| 	ldr	r0, mioa701_jumpaddr	@ (Murphy's Law)
 | ||||
|  | ||||
| @ -56,6 +56,9 @@ static unsigned long palmtx_pin_config[] __initdata = { | ||||
| 	GPIO110_MMC_DAT_2, | ||||
| 	GPIO111_MMC_DAT_3, | ||||
| 	GPIO112_MMC_CMD, | ||||
| 	GPIO14_GPIO,	/* SD detect */ | ||||
| 	GPIO114_GPIO,	/* SD power */ | ||||
| 	GPIO115_GPIO,	/* SD r/o switch */ | ||||
| 
 | ||||
| 	/* AC97 */ | ||||
| 	GPIO28_AC97_BITCLK, | ||||
| @ -64,6 +67,7 @@ static unsigned long palmtx_pin_config[] __initdata = { | ||||
| 	GPIO31_AC97_SYNC, | ||||
| 
 | ||||
| 	/* IrDA */ | ||||
| 	GPIO40_GPIO,	/* ir disable */ | ||||
| 	GPIO46_FICP_RXD, | ||||
| 	GPIO47_FICP_TXD, | ||||
| 
 | ||||
| @ -71,7 +75,8 @@ static unsigned long palmtx_pin_config[] __initdata = { | ||||
| 	GPIO16_PWM0_OUT, | ||||
| 
 | ||||
| 	/* USB */ | ||||
| 	GPIO13_GPIO, | ||||
| 	GPIO13_GPIO,	/* usb detect */ | ||||
| 	GPIO95_GPIO,	/* usb power */ | ||||
| 
 | ||||
| 	/* PCMCIA */ | ||||
| 	GPIO48_nPOE, | ||||
| @ -84,6 +89,45 @@ static unsigned long palmtx_pin_config[] __initdata = { | ||||
| 	GPIO55_nPREG, | ||||
| 	GPIO56_nPWAIT, | ||||
| 	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; | ||||
| 
 | ||||
| 	/* Setup an interrupt for detecting card insert/remove events */ | ||||
| 	err = request_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, palmtx_detect_int, | ||||
| 			IRQF_DISABLED | IRQF_SAMPLE_RANDOM | | ||||
| 	err = gpio_request(GPIO_NR_PALMTX_SD_DETECT_N, "SD IRQ"); | ||||
| 	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, | ||||
| 			"SD/MMC card detect", data); | ||||
| 	if (err) { | ||||
| 		printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n", | ||||
| 				__func__); | ||||
| 		return err; | ||||
| 		goto err2; | ||||
| 	} | ||||
| 
 | ||||
| 	err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER"); | ||||
| 	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"); | ||||
| 	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__); | ||||
| 
 | ||||
| 	return 0; | ||||
| 
 | ||||
| ro_err: | ||||
| err5: | ||||
| 	gpio_free(GPIO_NR_PALMTX_SD_READONLY); | ||||
| err4: | ||||
| 	gpio_free(GPIO_NR_PALMTX_SD_POWER); | ||||
| pwr_err: | ||||
| 	free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data); | ||||
| err3: | ||||
| 	free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data); | ||||
| err2: | ||||
| 	gpio_free(GPIO_NR_PALMTX_SD_DETECT_N); | ||||
| 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_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) | ||||
| @ -167,7 +229,6 @@ static unsigned int palmtx_matrix_keys[] = { | ||||
| 
 | ||||
| 	KEY(3, 0, KEY_RIGHT), | ||||
| 	KEY(3, 2, KEY_LEFT), | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| 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"); | ||||
| 	if (ret) | ||||
| 		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"); | ||||
| 	if (ret) | ||||
| 		goto err2; | ||||
| 	ret = gpio_direction_output(GPIO_NR_PALMTX_LCD_POWER, 0); | ||||
| 	if (ret) | ||||
| 		goto err3; | ||||
| 
 | ||||
| 	return 0; | ||||
| err3: | ||||
| 	gpio_free(GPIO_NR_PALMTX_LCD_POWER); | ||||
| err2: | ||||
| 	gpio_free(GPIO_NR_PALMTX_BL_POWER); | ||||
| err: | ||||
| @ -254,6 +323,24 @@ static struct platform_device palmtx_backlight = { | ||||
| /******************************************************************************
 | ||||
|  * 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) | ||||
| { | ||||
| 	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 = { | ||||
| 	.startup		= palmtx_irda_startup, | ||||
| 	.shutdown		= palmtx_irda_shutdown, | ||||
| 	.transceiver_cap	= IR_SIRMODE | IR_FIRMODE | IR_OFF, | ||||
| 	.transceiver_mode	= palmtx_irda_transceiver_mode, | ||||
| }; | ||||
| @ -268,17 +357,11 @@ static struct pxaficp_platform_data palmtx_ficp_platform_data = { | ||||
| /******************************************************************************
 | ||||
|  * 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 = { | ||||
| 	.gpio_vbus		= GPIO_NR_PALMTX_USB_DETECT_N, | ||||
| 	.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"); | ||||
| 	if (ret) | ||||
| 		goto err_cs_ac; | ||||
| 
 | ||||
| 	ret = gpio_request(GPIO_NR_PALMTX_USB_DETECT_N, "CABLE_STATE_USB"); | ||||
| 		goto err1; | ||||
| 	ret = gpio_direction_input(GPIO_NR_PALMTX_POWER_DETECT); | ||||
| 	if (ret) | ||||
| 		goto err_cs_usb; | ||||
| 		goto err2; | ||||
| 
 | ||||
| 	return 0; | ||||
| 
 | ||||
| err_cs_usb: | ||||
| err2: | ||||
| 	gpio_free(GPIO_NR_PALMTX_POWER_DETECT); | ||||
| err_cs_ac: | ||||
| err1: | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| @ -309,14 +391,8 @@ static int palmtx_is_ac_online(void) | ||||
| 	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) | ||||
| { | ||||
| 	gpio_free(GPIO_NR_PALMTX_USB_DETECT_N); | ||||
| 	gpio_free(GPIO_NR_PALMTX_POWER_DETECT); | ||||
| } | ||||
| 
 | ||||
| @ -327,7 +403,6 @@ static char *palmtx_supplicants[] = { | ||||
| static struct pda_power_pdata power_supply_info = { | ||||
| 	.init            = power_supply_init, | ||||
| 	.is_ac_online    = palmtx_is_ac_online, | ||||
| 	.is_usb_online   = palmtx_is_usb_online, | ||||
| 	.exit            = power_supply_exit, | ||||
| 	.supplied_to     = 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)); | ||||
| } | ||||
| 
 | ||||
| /* 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) | ||||
| { | ||||
| 	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config)); | ||||
| 
 | ||||
| 	set_pxa_fb_info(&palmtx_lcd_screen); | ||||
| 	pxa_set_mci_info(&palmtx_mci_platform_data); | ||||
| 	palmtx_udc_init(); | ||||
| 	pxa_set_udc_info(&palmtx_udc_info); | ||||
| 	pxa_set_ac97_info(NULL); | ||||
| 	pxa_set_ficp_info(&palmtx_ficp_platform_data); | ||||
|  | ||||
| @ -385,6 +385,7 @@ static struct soc_camera_link iclink[] = { | ||||
| 		.gpio	= NR_BUILTIN_GPIO + 1, | ||||
| 	}, { | ||||
| 		.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 */ | ||||
| 		cpu_reset(0); | ||||
| 		break; | ||||
| 	case 'h': | ||||
| 		do_hw_reset(); | ||||
| 		break; | ||||
| 	case 'g': | ||||
| 		do_gpio_reset(); | ||||
| 		break; | ||||
| 	case 'h': | ||||
| 	default: | ||||
| 		do_hw_reset(); | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -67,6 +67,7 @@ | ||||
| static unsigned long spitz_pin_config[] __initdata = { | ||||
| 	/* Chip Selects */ | ||||
| 	GPIO78_nCS_2,	/* SCOOP #2 */ | ||||
| 	GPIO79_nCS_3,	/* NAND */ | ||||
| 	GPIO80_nCS_4,	/* SCOOP #1 */ | ||||
| 
 | ||||
| 	/* LCD - 16bpp Active TFT */ | ||||
| @ -97,10 +98,10 @@ static unsigned long spitz_pin_config[] __initdata = { | ||||
| 	GPIO51_nPIOW, | ||||
| 	GPIO85_nPCE_1, | ||||
| 	GPIO54_nPCE_2, | ||||
| 	GPIO79_PSKTSEL, | ||||
| 	GPIO55_nPREG, | ||||
| 	GPIO56_nPWAIT, | ||||
| 	GPIO57_nIOIS16, | ||||
| 	GPIO104_PSKTSEL, | ||||
| 
 | ||||
| 	/* MMC */ | ||||
| 	GPIO32_MMC_CLK, | ||||
| @ -686,7 +687,6 @@ static void __init akita_init(void) | ||||
| 	spitz_pcmcia_config.num_devs = 1; | ||||
| 	platform_scoop_config = &spitz_pcmcia_config; | ||||
| 
 | ||||
| 	pxa_set_i2c_info(NULL); | ||||
| 	i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info)); | ||||
| 
 | ||||
| 	common_init(); | ||||
|  | ||||
| @ -104,7 +104,7 @@ static struct clk uart_clk = { | ||||
| 
 | ||||
| static struct clk mmci_clk = { | ||||
| 	.name	= "MCLK", | ||||
| 	.rate	= 33000000, | ||||
| 	.rate	= 24000000, | ||||
| }; | ||||
| 
 | ||||
| int clk_register(struct clk *clk) | ||||
|  | ||||
| @ -238,28 +238,11 @@ | ||||
| #define REALVIEW_INTREG_OFFSET		0x8	/* Interrupt control */ | ||||
| #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 | ||||
|  *  | ||||
|  */ | ||||
| #define CLEAN_BASE                      EPROM_BASE | ||||
| #define CLEAN_BASE                      REALVIEW_BOOT_ROM_HI | ||||
| 
 | ||||
| /*
 | ||||
|  * System controller bit assignment | ||||
|  | ||||
| @ -18,6 +18,7 @@ struct s3c2410_spigpio_info { | ||||
| 	unsigned long		 pin_mosi; | ||||
| 	unsigned long		 pin_miso; | ||||
| 
 | ||||
| 	int			 num_chipselect; | ||||
| 	int			 bus_num; | ||||
| 
 | ||||
| 	void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs); | ||||
|  | ||||
| @ -105,7 +105,7 @@ static struct clk uart_clk = { | ||||
| 
 | ||||
| static struct clk mmci_clk = { | ||||
| 	.name	= "MCLK", | ||||
| 	.rate	= 33000000, | ||||
| 	.rate	= 24000000, | ||||
| }; | ||||
| 
 | ||||
| int clk_register(struct clk *clk) | ||||
|  | ||||
| @ -436,28 +436,12 @@ | ||||
| #define SIC_INTMASK_PCI1                (1 << SIC_INT_PCI1) | ||||
| #define SIC_INTMASK_PCI2                (1 << SIC_INT_PCI2) | ||||
| #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 | ||||
|  *  | ||||
|  */ | ||||
| #define CLEAN_BASE                      EPROM_BASE | ||||
| #define CLEAN_BASE                      VERSATILE_BOOT_ROM_HI | ||||
| 
 | ||||
| /*
 | ||||
|  * System controller bit assignment | ||||
|  | ||||
| @ -150,7 +150,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end) | ||||
| 	/*
 | ||||
| 	 * 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)); | ||||
| 		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'. | ||||
| 	 */ | ||||
| 	while (start != end) { | ||||
| 	while (start < end) { | ||||
| 		unsigned long range_end = calc_range_end(start, end); | ||||
| 		l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE); | ||||
| 		start = range_end; | ||||
|  | ||||
| @ -208,6 +208,12 @@ static struct mem_type mem_types[] = { | ||||
| 		.prot_sect	= PROT_SECT_DEVICE, | ||||
| 		.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] = { | ||||
| 		.prot_sect = PMD_TYPE_SECT | PMD_SECT_XN, | ||||
| 		.domain    = DOMAIN_KERNEL, | ||||
|  | ||||
| @ -16,14 +16,15 @@ | ||||
| #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 = { | ||||
| 	 {	/* mem mapped registers */ | ||||
| 		.virtual	= IOP3XX_PERIPHERAL_VIRT_BASE, | ||||
| 		.pfn		= __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE), | ||||
| 		.length		= IOP3XX_PERIPHERAL_SIZE, | ||||
| 		.type		= MT_DEVICE, | ||||
| 		.type		= MT_UNCACHED, | ||||
| 	 }, {	/* PCI IO space */ | ||||
| 		.virtual	= IOP3XX_PCI_LOWER_IO_VA, | ||||
| 		.pfn		= __phys_to_pfn(IOP3XX_PCI_LOWER_IO_PA), | ||||
|  | ||||
| @ -101,6 +101,7 @@ | ||||
| #define OMAP24XX_GPIO_IRQSTATUS2	0x0028 | ||||
| #define OMAP24XX_GPIO_IRQENABLE2	0x002c | ||||
| #define OMAP24XX_GPIO_IRQENABLE1	0x001c | ||||
| #define OMAP24XX_GPIO_WAKE_EN		0x0020 | ||||
| #define OMAP24XX_GPIO_CTRL		0x0030 | ||||
| #define OMAP24XX_GPIO_OE		0x0034 | ||||
| #define OMAP24XX_GPIO_DATAIN		0x0038 | ||||
| @ -1551,7 +1552,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg) | ||||
| #endif | ||||
| #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) | ||||
| 		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_set = bank->base + OMAP24XX_GPIO_SETWKUENA; | ||||
| 			break; | ||||
| @ -1574,7 +1575,7 @@ static int omap_gpio_resume(struct sys_device *dev) | ||||
| { | ||||
| 	int i; | ||||
| 
 | ||||
| 	if (!cpu_is_omap24xx() && !cpu_is_omap16xx()) | ||||
| 	if (!cpu_class_is_omap2() && !cpu_is_omap16xx()) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	for (i = 0; i < gpio_bank_count; i++) { | ||||
|  | ||||
| @ -128,7 +128,7 @@ void clk_deny_idle(struct clk *clk); | ||||
|  * clk_allow_idle - Counters previous clk_deny_idle | ||||
|  * @clk: clock signal handle | ||||
|  */ | ||||
| void clk_deny_idle(struct clk *clk); | ||||
| void clk_allow_idle(struct clk *clk); | ||||
| 
 | ||||
| extern void omap_pm_idle(void); | ||||
| extern void omap_pm_suspend(void); | ||||
|  | ||||
| @ -101,7 +101,7 @@ extern u16 _bfin_swrst; /* shadow for Software Reset Register (SWRST) */ | ||||
| extern unsigned long _ramstart, _ramend, _rambase; | ||||
| extern unsigned long memory_start, memory_end, physical_mem_end; | ||||
| extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[], | ||||
| 	_ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _ebss_b_l1[], | ||||
| 	_ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _sbss_b_l1[], _ebss_b_l1[], | ||||
| 	_stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[], | ||||
| 	_ebss_l2[], _l2_lma_start[]; | ||||
| 
 | ||||
|  | ||||
| @ -15,7 +15,11 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr, | ||||
| #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | ||||
| #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | ||||
| 
 | ||||
| #define dma_mapping_error | ||||
| static inline | ||||
| int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | ||||
| { | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Map a single buffer of the indicated size for DMA in streaming mode. | ||||
|  | ||||
| @ -218,7 +218,7 @@ inline int check_gpio(unsigned gpio) | ||||
| 	if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 | ||||
| 	    || gpio == GPIO_PH14 || gpio == GPIO_PH15 | ||||
| 	    || gpio == GPIO_PJ14 || gpio == GPIO_PJ15 | ||||
| 	    || gpio > MAX_BLACKFIN_GPIOS) | ||||
| 	    || gpio >= MAX_BLACKFIN_GPIOS) | ||||
| 		return -EINVAL; | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -188,10 +188,11 @@ static struct cplb_desc cplb_data[] = { | ||||
| 
 | ||||
| static u16 __init lock_kernel_check(u32 start, u32 end) | ||||
| { | ||||
| 	if ((end   <= (u32) _end && end   >= (u32)_stext) || | ||||
| 	    (start <= (u32) _end && start >= (u32)_stext)) | ||||
| 		return IN_KERNEL; | ||||
| 	return 0; | ||||
| 	if (start >= (u32)_end || end <= (u32)_stext) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	/* This cplb block overlapped with kernel area. */ | ||||
| 	return IN_KERNEL; | ||||
| } | ||||
| 
 | ||||
| static unsigned short __init | ||||
|  | ||||
| @ -351,9 +351,14 @@ int _access_ok(unsigned long addr, unsigned long size) | ||||
| 		return 1; | ||||
| #endif | ||||
| #if L1_DATA_B_LENGTH != 0 | ||||
| 	if (addr >= L1_DATA_B_START | ||||
| 	if (addr >= L1_DATA_B_START + (_ebss_b_l1 - _sdata_b_l1) | ||||
| 	    && addr + size <= L1_DATA_B_START + L1_DATA_B_LENGTH) | ||||
| 		return 1; | ||||
| #endif | ||||
| #if L2_LENGTH != 0 | ||||
| 	if (addr >= L2_START + (_ebss_l2 - _stext_l2) | ||||
| 	    && addr + size <= L2_START + L2_LENGTH) | ||||
| 		return 1; | ||||
| #endif | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -119,23 +119,23 @@ void __init bfin_relocate_l1_mem(void) | ||||
| 	/* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */ | ||||
| 	dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length); | ||||
| 
 | ||||
| 	l1_data_a_length = _ebss_l1 - _sdata_l1; | ||||
| 	l1_data_a_length = _sbss_l1 - _sdata_l1; | ||||
| 	if (l1_data_a_length > L1_DATA_A_LENGTH) | ||||
| 		panic("L1 Data SRAM Bank A Overflow\n"); | ||||
| 
 | ||||
| 	/* Copy _sdata_l1 to _ebss_l1 to L1 data bank A SRAM */ | ||||
| 	/* Copy _sdata_l1 to _sbss_l1 to L1 data bank A SRAM */ | ||||
| 	dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); | ||||
| 
 | ||||
| 	l1_data_b_length = _ebss_b_l1 - _sdata_b_l1; | ||||
| 	l1_data_b_length = _sbss_b_l1 - _sdata_b_l1; | ||||
| 	if (l1_data_b_length > L1_DATA_B_LENGTH) | ||||
| 		panic("L1 Data SRAM Bank B Overflow\n"); | ||||
| 
 | ||||
| 	/* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */ | ||||
| 	/* Copy _sdata_b_l1 to _sbss_b_l1 to L1 data bank B SRAM */ | ||||
| 	dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + | ||||
| 			l1_data_a_length, l1_data_b_length); | ||||
| 
 | ||||
| 	if (L2_LENGTH != 0) { | ||||
| 		l2_length = _ebss_l2 - _stext_l2; | ||||
| 		l2_length = _sbss_l2 - _stext_l2; | ||||
| 		if (l2_length > L2_LENGTH) | ||||
| 			panic("L2 SRAM Overflow\n"); | ||||
| 
 | ||||
| @ -827,7 +827,7 @@ void __init setup_arch(char **cmdline_p) | ||||
| 				printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n", | ||||
| 				       bfin_compiled_revid(), bfin_revid()); | ||||
| 		} | ||||
| 		if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) | ||||
| 		if (bfin_revid() < CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) | ||||
| 			printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n", | ||||
| 			       CPU, bfin_revid()); | ||||
| 	} | ||||
|  | ||||
| @ -59,7 +59,7 @@ | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| #ifdef CONFIG_VERBOSE_DEBUG | ||||
| #ifdef CONFIG_DEBUG_VERBOSE | ||||
| #define verbose_printk(fmt, arg...) \ | ||||
| 	printk(fmt, ##arg) | ||||
| #else | ||||
| @ -147,9 +147,12 @@ static void decode_address(char *buf, unsigned long address) | ||||
| 				char *name = p->comm; | ||||
| 				struct file *file = vma->vm_file; | ||||
| 
 | ||||
| 				if (file) | ||||
| 					name = d_path(&file->f_path, _tmpbuf, | ||||
| 				if (file) { | ||||
| 					char *d_name = d_path(&file->f_path, _tmpbuf, | ||||
| 						      sizeof(_tmpbuf)); | ||||
| 					if (!IS_ERR(d_name)) | ||||
| 						name = d_name; | ||||
| 				} | ||||
| 
 | ||||
| 				/* FLAT does not have its text aligned to the start of
 | ||||
| 				 * the map while FDPIC ELF does ... | ||||
| @ -571,7 +574,7 @@ asmlinkage void trap_c(struct pt_regs *fp) | ||||
| #endif | ||||
| 			panic("Kernel exception"); | ||||
| 		} else { | ||||
| #ifdef CONFIG_VERBOSE_DEBUG | ||||
| #ifdef CONFIG_DEBUG_VERBOSE | ||||
| 			unsigned long *stack; | ||||
| 			/* Dump the user space stack */ | ||||
| 			stack = (unsigned long *)rdusp(); | ||||
|  | ||||
| @ -25,9 +25,13 @@ | ||||
|  */ | ||||
| .macro do_flush flushins:req optflushins optnopins label | ||||
| 
 | ||||
| 	R2 = -L1_CACHE_BYTES;
 | ||||
| 
 | ||||
| 	/* start = (start & -L1_CACHE_BYTES) */ | ||||
| 	R0 = R0 & R2;
 | ||||
| 
 | ||||
| 	/* end = ((end - 1) & -L1_CACHE_BYTES) + L1_CACHE_BYTES; */ | ||||
| 	R1 += -1;
 | ||||
| 	R2 = -L1_CACHE_BYTES;
 | ||||
| 	R1 = R1 & R2;
 | ||||
| 	R1 += L1_CACHE_BYTES;
 | ||||
| 
 | ||||
| @ -63,7 +67,7 @@ ENDPROC(_blackfin_icache_flush_range) | ||||
| 
 | ||||
| /* Flush all cache lines assocoiated with this area of memory. */ | ||||
| ENTRY(_blackfin_icache_dcache_flush_range) | ||||
| 	do_flush IFLUSH, FLUSH | ||||
| 	do_flush FLUSH, IFLUSH | ||||
| ENDPROC(_blackfin_icache_dcache_flush_range) | ||||
| 
 | ||||
| /* Throw away all D-cached data in specified region without any obligation to | ||||
|  | ||||
| @ -72,13 +72,13 @@ unsigned int __bfin_cycles_mod; | ||||
| 
 | ||||
| /**************************************************************************/ | ||||
| 
 | ||||
| static unsigned int bfin_getfreq(unsigned int cpu) | ||||
| static unsigned int bfin_getfreq_khz(unsigned int cpu) | ||||
| { | ||||
| 	/* The driver only support single cpu */ | ||||
| 	if (cpu != 0) | ||||
| 		return -1; | ||||
| 
 | ||||
| 	return get_cclk(); | ||||
| 	return get_cclk() / 1000; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -96,7 +96,7 @@ static int bfin_target(struct cpufreq_policy *policy, | ||||
| 
 | ||||
| 	cclk_hz = bfin_freq_table[index].frequency; | ||||
| 
 | ||||
| 	freqs.old = bfin_getfreq(0); | ||||
| 	freqs.old = bfin_getfreq_khz(0); | ||||
| 	freqs.new = cclk_hz; | ||||
| 	freqs.cpu = 0; | ||||
| 
 | ||||
| @ -137,8 +137,8 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy) | ||||
| 	if (policy->cpu != 0) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| 	cclk = get_cclk(); | ||||
| 	sclk = get_sclk(); | ||||
| 	cclk = get_cclk() / 1000; | ||||
| 	sclk = get_sclk() / 1000; | ||||
| 
 | ||||
| #if ANOMALY_05000273 || (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE)) | ||||
| 	min_cclk = sclk * 2; | ||||
| @ -152,7 +152,7 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy) | ||||
| 		dpm_state_table[index].csel = csel << 4; /* Shift now into PLL_DIV bitpos */ | ||||
| 		dpm_state_table[index].tscale =  (TIME_SCALE / (1 << csel)) - 1; | ||||
| 
 | ||||
| 		pr_debug("cpufreq: freq:%d csel:%d tscale:%d\n", | ||||
| 		pr_debug("cpufreq: freq:%d csel:0x%x tscale:%d\n", | ||||
| 						 bfin_freq_table[index].frequency, | ||||
| 						 dpm_state_table[index].csel, | ||||
| 						 dpm_state_table[index].tscale); | ||||
| @ -173,7 +173,7 @@ static struct freq_attr *bfin_freq_attr[] = { | ||||
| static struct cpufreq_driver bfin_driver = { | ||||
| 	.verify = bfin_verify_speed, | ||||
| 	.target = bfin_target, | ||||
| 	.get = bfin_getfreq, | ||||
| 	.get = bfin_getfreq_khz, | ||||
| 	.init = __bfin_cpu_init, | ||||
| 	.name = "bfin cpufreq", | ||||
| 	.owner = THIS_MODULE, | ||||
|  | ||||
| @ -277,7 +277,7 @@ ENTRY(_bfin_return_from_exception) | ||||
| 	p5.h = hi(ILAT);
 | ||||
| 	r6 = [p5];
 | ||||
| 	r7 = 0x20;		/* Did I just cause anther HW error? */
 | ||||
| 	r7 = r7 & r1;
 | ||||
| 	r6 = r7 & r6;
 | ||||
| 	CC = R7 == R6;
 | ||||
| 	if CC JUMP _double_fault;
 | ||||
| #endif | ||||
|  | ||||
| @ -183,10 +183,10 @@ static void __init l2_sram_init(void) | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	free_l2_sram_head.next->paddr = (void *)L2_START + | ||||
| 		(_etext_l2 - _stext_l2) + (_edata_l2 - _sdata_l2); | ||||
| 	free_l2_sram_head.next->size = L2_LENGTH - | ||||
| 		(_etext_l2 - _stext_l2) + (_edata_l2 - _sdata_l2); | ||||
| 	free_l2_sram_head.next->paddr = | ||||
| 		(void *)L2_START + (_ebss_l2 - _stext_l2); | ||||
| 	free_l2_sram_head.next->size = | ||||
| 		L2_LENGTH - (_ebss_l2 - _stext_l2); | ||||
| 	free_l2_sram_head.next->pid = 0; | ||||
| 	free_l2_sram_head.next->next = NULL; | ||||
| 
 | ||||
|  | ||||
| @ -35,6 +35,15 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, | ||||
| 	int error = -EBADF; | ||||
| 	struct file * file = NULL; | ||||
| 
 | ||||
| 	/* As with sparc32, make sure the shift for mmap2 is constant
 | ||||
| 	   (12), no matter what PAGE_SIZE we have.... */ | ||||
| 
 | ||||
| 	/* But unlike sparc32, don't just silently break if we're
 | ||||
| 	   trying to map something we can't */ | ||||
| 	if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1)) | ||||
| 		return -EINVAL; | ||||
| 	pgoff >>= PAGE_SHIFT - 12; | ||||
| 
 | ||||
| 	flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||||
| 	if (!(flags & MAP_ANONYMOUS)) { | ||||
| 		file = fget(fd); | ||||
| @ -42,16 +51,6 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, | ||||
| 			goto out; | ||||
| 	} | ||||
| 
 | ||||
| 	/* As with sparc32, make sure the shift for mmap2 is constant
 | ||||
| 	   (12), no matter what PAGE_SIZE we have.... */ | ||||
| 
 | ||||
| 	/* But unlike sparc32, don't just silently break if we're
 | ||||
| 	   trying to map something we can't */ | ||||
| 	if (pgoff & ((1<<(PAGE_SHIFT-12))-1)) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| 	pgoff >>= (PAGE_SHIFT - 12); | ||||
| 
 | ||||
| 	down_write(¤t->mm->mmap_sem); | ||||
| 	error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | ||||
| 	up_write(¤t->mm->mmap_sem); | ||||
|  | ||||
| @ -226,7 +226,7 @@ extern long ia64_cmpxchg_called_with_bad_pointer (void); | ||||
| /************************************************/ | ||||
| #define ia64_ssm			IA64_INTRINSIC_MACRO(ssm) | ||||
| #define ia64_rsm			IA64_INTRINSIC_MACRO(rsm) | ||||
| #define ia64_getreg			IA64_INTRINSIC_API(getreg) | ||||
| #define ia64_getreg			IA64_INTRINSIC_MACRO(getreg) | ||||
| #define ia64_setreg			IA64_INTRINSIC_API(setreg) | ||||
| #define ia64_set_rr			IA64_INTRINSIC_API(set_rr) | ||||
| #define ia64_get_rr			IA64_INTRINSIC_API(get_rr) | ||||
|  | ||||
| @ -78,6 +78,19 @@ extern unsigned long ia64_native_getreg_func(int regnum); | ||||
| 			ia64_native_rsm(mask);	\ | ||||
| 	} while (0) | ||||
| 
 | ||||
| /* returned ip value should be the one in the caller,
 | ||||
|  * not in __paravirt_getreg() */ | ||||
| #define paravirt_getreg(reg)					\ | ||||
| 	({							\ | ||||
| 		unsigned long res;				\ | ||||
| 		BUILD_BUG_ON(!__builtin_constant_p(reg));	\ | ||||
| 		if ((reg) == _IA64_REG_IP)			\ | ||||
| 			res = ia64_native_getreg(_IA64_REG_IP); \ | ||||
| 		else						\ | ||||
| 			res = pv_cpu_ops.getreg(reg);		\ | ||||
| 		res;						\ | ||||
| 	}) | ||||
| 
 | ||||
| /******************************************************************************
 | ||||
|  * replacement of hand written assembly codes. | ||||
|  */ | ||||
|  | ||||
| @ -325,8 +325,6 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs) | ||||
|   #define arch_has_block_step()   (1) | ||||
|   extern void user_enable_block_step(struct task_struct *); | ||||
| 
 | ||||
| #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||||
| 
 | ||||
| #endif /* !__KERNEL__ */ | ||||
| 
 | ||||
| /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ | ||||
|  | ||||
| @ -499,6 +499,7 @@ GLOBAL_ENTRY(prefetch_stack) | ||||
| END(prefetch_stack) | ||||
| 
 | ||||
| GLOBAL_ENTRY(kernel_execve) | ||||
| 	rum psr.ac | ||||
| 	mov r15=__NR_execve			// put syscall number in place | ||||
| 	break __BREAK_SYSCALL | ||||
| 	br.ret.sptk.many rp | ||||
|  | ||||
| @ -260,7 +260,7 @@ start_ap: | ||||
| 	 * Switch into virtual mode: | ||||
| 	 */ | ||||
| 	movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \ | ||||
| 		  |IA64_PSR_DI) | ||||
| 		  |IA64_PSR_DI|IA64_PSR_AC) | ||||
| 	;;
 | ||||
| 	mov cr.ipsr=r16 | ||||
| 	movl r17=1f | ||||
|  | ||||
| @ -1139,7 +1139,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs, | ||||
| 	return previous_current; | ||||
| 
 | ||||
| no_mod: | ||||
| 	printk(KERN_INFO "cpu %d, %s %s, original stack not modified\n", | ||||
| 	mprintk(KERN_INFO "cpu %d, %s %s, original stack not modified\n", | ||||
| 			smp_processor_id(), type, msg); | ||||
| 	return previous_current; | ||||
| } | ||||
|  | ||||
| @ -130,7 +130,7 @@ ia64_native_getreg_func(int regnum) | ||||
| 	unsigned long res = -1; | ||||
| 	switch (regnum) { | ||||
| 	CASE_GET_REG(GP); | ||||
| 	CASE_GET_REG(IP); | ||||
| 	/*CASE_GET_REG(IP);*/ /* returned ip value shouldn't be constant */ | ||||
| 	CASE_GET_REG(PSR); | ||||
| 	CASE_GET_REG(TP); | ||||
| 	CASE_GET_REG(SP); | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user