Merge commit 'v2.6.38-rc3' into devicetree/next
This commit is contained in:
		
						commit
						c64eae9a73
					
				
							
								
								
									
										1
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								.mailmap
									
									
									
									
									
								
							| @ -23,6 +23,7 @@ Andy Adamson <andros@citi.umich.edu> | ||||
| Arnaud Patard <arnaud.patard@rtp-net.org> | ||||
| Arnd Bergmann <arnd@arndb.de> | ||||
| Axel Dyks <xl@xlsigned.net> | ||||
| Axel Lin <axel.lin@gmail.com> | ||||
| Ben Gardner <bgardner@wabtec.com> | ||||
| Ben M Cahill <ben.m.cahill@intel.com> | ||||
| Björn Steinbrink <B.Steinbrink@gmx.de> | ||||
|  | ||||
							
								
								
									
										25
									
								
								Documentation/ABI/testing/sysfs-platform-at91
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Documentation/ABI/testing/sysfs-platform-at91
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| What:		/sys/devices/platform/at91_can/net/<iface>/mb0_id | ||||
| Date:		January 2011 | ||||
| KernelVersion:	2.6.38 | ||||
| Contact:	Marc Kleine-Budde <kernel@pengutronix.de> | ||||
| Description: | ||||
| 		Value representing the can_id of mailbox 0. | ||||
| 
 | ||||
| 		Default: 0x7ff (standard frame) | ||||
| 
 | ||||
| 		Due to a chip bug (errata 50.2.6.3 & 50.3.5.3 in | ||||
| 		"AT91SAM9263 Preliminary 6249H-ATARM-27-Jul-09") the | ||||
| 		contents of mailbox 0 may be send under certain | ||||
| 		conditions (even if disabled or in rx mode). | ||||
| 
 | ||||
| 		The workaround in the errata suggests not to use the | ||||
| 		mailbox and load it with an unused identifier. | ||||
| 
 | ||||
| 		In order to use an extended can_id add the | ||||
| 		CAN_EFF_FLAG (0x80000000U) to the can_id. Example: | ||||
| 
 | ||||
| 		- standard id 0x7ff: | ||||
| 		echo 0x7ff      > /sys/class/net/can0/mb0_id | ||||
| 
 | ||||
| 		- extended id 0x1fffffff: | ||||
| 		echo 0x9fffffff > /sys/class/net/can0/mb0_id | ||||
| @ -217,8 +217,8 @@ X!Isound/sound_firmware.c | ||||
|   <chapter id="uart16x50"> | ||||
|      <title>16x50 UART Driver</title> | ||||
| !Iinclude/linux/serial_core.h | ||||
| !Edrivers/serial/serial_core.c | ||||
| !Edrivers/serial/8250.c | ||||
| !Edrivers/tty/serial/serial_core.c | ||||
| !Edrivers/tty/serial/8250.c | ||||
|   </chapter> | ||||
| 
 | ||||
|   <chapter id="fbdev"> | ||||
|  | ||||
| @ -28,7 +28,7 @@ | ||||
| 	<holder>Convergence GmbH</holder> | ||||
| </copyright> | ||||
| <copyright> | ||||
| 	<year>2009-2010</year> | ||||
| 	<year>2009-2011</year> | ||||
| 	<holder>Mauro Carvalho Chehab</holder> | ||||
| </copyright> | ||||
| 
 | ||||
|  | ||||
| @ -28,7 +28,7 @@ | ||||
| <title>LINUX MEDIA INFRASTRUCTURE API</title> | ||||
| 
 | ||||
| <copyright> | ||||
| 	<year>2009-2010</year> | ||||
| 	<year>2009-2011</year> | ||||
| 	<holder>LinuxTV Developers</holder> | ||||
| </copyright> | ||||
| 
 | ||||
| @ -86,7 +86,7 @@ Foundation. A copy of the license is included in the chapter entitled | ||||
| </author> | ||||
| </authorgroup> | ||||
| <copyright> | ||||
| 	<year>2009-2010</year> | ||||
| 	<year>2009-2011</year> | ||||
| 	<holder>Mauro Carvalho Chehab</holder> | ||||
| </copyright> | ||||
| 
 | ||||
|  | ||||
| @ -75,6 +75,7 @@ as follows:</para> | ||||
|   </section> | ||||
| 
 | ||||
|   <section> | ||||
|     <title>RDS datastructures</title> | ||||
|     <table frame="none" pgwide="1" id="v4l2-rds-data"> | ||||
|       <title>struct | ||||
| <structname>v4l2_rds_data</structname></title> | ||||
| @ -129,10 +130,11 @@ as follows:</para> | ||||
| 
 | ||||
|     <table frame="none" pgwide="1" id="v4l2-rds-block-codes"> | ||||
|       <title>Block defines</title> | ||||
|       <tgroup cols="3"> | ||||
|       <tgroup cols="4"> | ||||
| 	<colspec colname="c1" colwidth="1*" /> | ||||
| 	<colspec colname="c2" colwidth="1*" /> | ||||
| 	<colspec colname="c3" colwidth="5*" /> | ||||
| 	<colspec colname="c3" colwidth="1*" /> | ||||
| 	<colspec colname="c4" colwidth="5*" /> | ||||
| 	<tbody valign="top"> | ||||
| 	  <row> | ||||
| 	    <entry>V4L2_RDS_BLOCK_MSK</entry> | ||||
|  | ||||
| @ -100,6 +100,7 @@ Remote Controller chapter.</contrib> | ||||
|       <year>2008</year> | ||||
|       <year>2009</year> | ||||
|       <year>2010</year> | ||||
|       <year>2011</year> | ||||
|       <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin | ||||
| Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab</holder> | ||||
|     </copyright> | ||||
| @ -381,7 +382,7 @@ and discussions on the V4L mailing list.</revremark> | ||||
| </partinfo> | ||||
| 
 | ||||
| <title>Video for Linux Two API Specification</title> | ||||
|  <subtitle>Revision 2.6.33</subtitle> | ||||
|  <subtitle>Revision 2.6.38</subtitle> | ||||
| 
 | ||||
|   <chapter id="common"> | ||||
|     &sub-common; | ||||
|  | ||||
| @ -357,14 +357,6 @@ Who:	Dave Jones <davej@redhat.com>, Matthew Garrett <mjg@redhat.com> | ||||
| 
 | ||||
| ----------------------------- | ||||
| 
 | ||||
| What:	__do_IRQ all in one fits nothing interrupt handler | ||||
| When:	2.6.32 | ||||
| Why:	__do_IRQ was kept for easy migration to the type flow handlers. | ||||
| 	More than two years of migration time is enough. | ||||
| Who:	Thomas Gleixner <tglx@linutronix.de> | ||||
| 
 | ||||
| ----------------------------- | ||||
| 
 | ||||
| What:	fakephp and associated sysfs files in /sys/bus/pci/slots/ | ||||
| When:	2011 | ||||
| Why:	In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to | ||||
|  | ||||
| @ -460,6 +460,8 @@ Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | ||||
| 2.1.30: | ||||
| 	- Fix writev() (it kept writing the first segment over and over again | ||||
| 	  instead of moving onto subsequent segments). | ||||
| 	- Fix crash in ntfs_mft_record_alloc() when mapping the new extent mft | ||||
| 	  record failed. | ||||
| 2.1.29: | ||||
| 	- Fix a deadlock when mounting read-write. | ||||
| 2.1.28: | ||||
|  | ||||
| @ -43,11 +43,11 @@ parameter is applicable: | ||||
| 	AVR32	AVR32 architecture is enabled. | ||||
| 	AX25	Appropriate AX.25 support is enabled. | ||||
| 	BLACKFIN Blackfin architecture is enabled. | ||||
| 	DRM	Direct Rendering Management support is enabled. | ||||
| 	DYNAMIC_DEBUG Build in debug messages and enable them at runtime | ||||
| 	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled | ||||
| 	EFI	EFI Partitioning (GPT) is enabled | ||||
| 	EIDE	EIDE/ATAPI support is enabled. | ||||
| 	DRM	Direct Rendering Management support is enabled. | ||||
| 	DYNAMIC_DEBUG Build in debug messages and enable them at runtime | ||||
| 	FB	The frame buffer device is enabled. | ||||
| 	GCOV	GCOV profiling is enabled. | ||||
| 	HW	Appropriate hardware is enabled. | ||||
|  | ||||
| @ -39,6 +39,9 @@ | ||||
| #include <limits.h> | ||||
| #include <stddef.h> | ||||
| #include <signal.h> | ||||
| #include <pwd.h> | ||||
| #include <grp.h> | ||||
| 
 | ||||
| #include <linux/virtio_config.h> | ||||
| #include <linux/virtio_net.h> | ||||
| #include <linux/virtio_blk.h> | ||||
| @ -298,20 +301,27 @@ static void *map_zeroed_pages(unsigned int num) | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * We use a private mapping (ie. if we write to the page, it will be | ||||
| 	 * copied). | ||||
| 	 * copied). We allocate an extra two pages PROT_NONE to act as guard | ||||
| 	 * pages against read/write attempts that exceed allocated space. | ||||
| 	 */ | ||||
| 	addr = mmap(NULL, getpagesize() * num, | ||||
| 		    PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, fd, 0); | ||||
| 	addr = mmap(NULL, getpagesize() * (num+2), | ||||
| 		    PROT_NONE, MAP_PRIVATE, fd, 0); | ||||
| 
 | ||||
| 	if (addr == MAP_FAILED) | ||||
| 		err(1, "Mmapping %u pages of /dev/zero", num); | ||||
| 
 | ||||
| 	if (mprotect(addr + getpagesize(), getpagesize() * num, | ||||
| 		     PROT_READ|PROT_WRITE) == -1) | ||||
| 		err(1, "mprotect rw %u pages failed", num); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * One neat mmap feature is that you can close the fd, and it | ||||
| 	 * stays mapped. | ||||
| 	 */ | ||||
| 	close(fd); | ||||
| 
 | ||||
| 	return addr; | ||||
| 	/* Return address after PROT_NONE page */ | ||||
| 	return addr + getpagesize(); | ||||
| } | ||||
| 
 | ||||
| /* Get some more pages for a device. */ | ||||
| @ -343,7 +353,7 @@ static void map_at(int fd, void *addr, unsigned long offset, unsigned long len) | ||||
| 	 * done to it.  This allows us to share untouched memory between | ||||
| 	 * Guests. | ||||
| 	 */ | ||||
| 	if (mmap(addr, len, PROT_READ|PROT_WRITE|PROT_EXEC, | ||||
| 	if (mmap(addr, len, PROT_READ|PROT_WRITE, | ||||
| 		 MAP_FIXED|MAP_PRIVATE, fd, offset) != MAP_FAILED) | ||||
| 		return; | ||||
| 
 | ||||
| @ -573,10 +583,10 @@ static void *_check_pointer(unsigned long addr, unsigned int size, | ||||
| 			    unsigned int line) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * We have to separately check addr and addr+size, because size could | ||||
| 	 * be huge and addr + size might wrap around. | ||||
| 	 * Check if the requested address and size exceeds the allocated memory, | ||||
| 	 * or addr + size wraps around. | ||||
| 	 */ | ||||
| 	if (addr >= guest_limit || addr + size >= guest_limit) | ||||
| 	if ((addr + size) > guest_limit || (addr + size) < addr) | ||||
| 		errx(1, "%s:%i: Invalid address %#lx", __FILE__, line, addr); | ||||
| 	/*
 | ||||
| 	 * We return a pointer for the caller's convenience, now we know it's | ||||
| @ -1872,6 +1882,8 @@ static struct option opts[] = { | ||||
| 	{ "block", 1, NULL, 'b' }, | ||||
| 	{ "rng", 0, NULL, 'r' }, | ||||
| 	{ "initrd", 1, NULL, 'i' }, | ||||
| 	{ "username", 1, NULL, 'u' }, | ||||
| 	{ "chroot", 1, NULL, 'c' }, | ||||
| 	{ NULL }, | ||||
| }; | ||||
| static void usage(void) | ||||
| @ -1894,6 +1906,12 @@ int main(int argc, char *argv[]) | ||||
| 	/* If they specify an initrd file to load. */ | ||||
| 	const char *initrd_name = NULL; | ||||
| 
 | ||||
| 	/* Password structure for initgroups/setres[gu]id */ | ||||
| 	struct passwd *user_details = NULL; | ||||
| 
 | ||||
| 	/* Directory to chroot to */ | ||||
| 	char *chroot_path = NULL; | ||||
| 
 | ||||
| 	/* Save the args: we "reboot" by execing ourselves again. */ | ||||
| 	main_args = argv; | ||||
| 
 | ||||
| @ -1950,6 +1968,14 @@ int main(int argc, char *argv[]) | ||||
| 		case 'i': | ||||
| 			initrd_name = optarg; | ||||
| 			break; | ||||
| 		case 'u': | ||||
| 			user_details = getpwnam(optarg); | ||||
| 			if (!user_details) | ||||
| 				err(1, "getpwnam failed, incorrect username?"); | ||||
| 			break; | ||||
| 		case 'c': | ||||
| 			chroot_path = optarg; | ||||
| 			break; | ||||
| 		default: | ||||
| 			warnx("Unknown argument %s", argv[optind]); | ||||
| 			usage(); | ||||
| @ -2021,6 +2047,37 @@ int main(int argc, char *argv[]) | ||||
| 	/* If we exit via err(), this kills all the threads, restores tty. */ | ||||
| 	atexit(cleanup_devices); | ||||
| 
 | ||||
| 	/* If requested, chroot to a directory */ | ||||
| 	if (chroot_path) { | ||||
| 		if (chroot(chroot_path) != 0) | ||||
| 			err(1, "chroot(\"%s\") failed", chroot_path); | ||||
| 
 | ||||
| 		if (chdir("/") != 0) | ||||
| 			err(1, "chdir(\"/\") failed"); | ||||
| 
 | ||||
| 		verbose("chroot done\n"); | ||||
| 	} | ||||
| 
 | ||||
| 	/* If requested, drop privileges */ | ||||
| 	if (user_details) { | ||||
| 		uid_t u; | ||||
| 		gid_t g; | ||||
| 
 | ||||
| 		u = user_details->pw_uid; | ||||
| 		g = user_details->pw_gid; | ||||
| 
 | ||||
| 		if (initgroups(user_details->pw_name, g) != 0) | ||||
| 			err(1, "initgroups failed"); | ||||
| 
 | ||||
| 		if (setresgid(g, g, g) != 0) | ||||
| 			err(1, "setresgid failed"); | ||||
| 
 | ||||
| 		if (setresuid(u, u, u) != 0) | ||||
| 			err(1, "setresuid failed"); | ||||
| 
 | ||||
| 		verbose("Dropping privileges completed\n"); | ||||
| 	} | ||||
| 
 | ||||
| 	/* Finally, run the Guest.  This doesn't return. */ | ||||
| 	run_guest(); | ||||
| } | ||||
|  | ||||
| @ -117,6 +117,11 @@ Running Lguest: | ||||
|      | ||||
|   for general information on how to get bridging to work. | ||||
| 
 | ||||
| - Random number generation. Using the --rng option will provide a | ||||
|   /dev/hwrng in the guest that will read from the host's /dev/random. | ||||
|   Use this option in conjunction with rng-tools (see ../hw_random.txt) | ||||
|   to provide entropy to the guest kernel's /dev/random. | ||||
| 
 | ||||
| There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest | ||||
| 
 | ||||
| Good luck! | ||||
|  | ||||
| @ -49,7 +49,8 @@ Table of Contents | ||||
| 3.3	Configuring Bonding Manually with Ifenslave | ||||
| 3.3.1		Configuring Multiple Bonds Manually | ||||
| 3.4	Configuring Bonding Manually via Sysfs | ||||
| 3.5	Overriding Configuration for Special Cases | ||||
| 3.5	Configuration with Interfaces Support | ||||
| 3.6	Overriding Configuration for Special Cases | ||||
| 
 | ||||
| 4. Querying Bonding Configuration | ||||
| 4.1	Bonding Configuration | ||||
| @ -161,8 +162,8 @@ onwards) do not have /usr/include/linux symbolically linked to the | ||||
| default kernel source include directory. | ||||
| 
 | ||||
| SECOND IMPORTANT NOTE: | ||||
| 	If you plan to configure bonding using sysfs, you do not need | ||||
| to use ifenslave. | ||||
| 	If you plan to configure bonding using sysfs or using the | ||||
| /etc/network/interfaces file, you do not need to use ifenslave. | ||||
| 
 | ||||
| 2. Bonding Driver Options | ||||
| ========================= | ||||
| @ -779,22 +780,26 @@ resend_igmp | ||||
| 
 | ||||
| 	You can configure bonding using either your distro's network | ||||
| initialization scripts, or manually using either ifenslave or the | ||||
| sysfs interface.  Distros generally use one of two packages for the | ||||
| network initialization scripts: initscripts or sysconfig.  Recent | ||||
| versions of these packages have support for bonding, while older | ||||
| sysfs interface.  Distros generally use one of three packages for the | ||||
| network initialization scripts: initscripts, sysconfig or interfaces. | ||||
| Recent versions of these packages have support for bonding, while older | ||||
| versions do not. | ||||
| 
 | ||||
| 	We will first describe the options for configuring bonding for | ||||
| distros using versions of initscripts and sysconfig with full or | ||||
| partial support for bonding, then provide information on enabling | ||||
| distros using versions of initscripts, sysconfig and interfaces with full | ||||
| or partial support for bonding, then provide information on enabling | ||||
| bonding without support from the network initialization scripts (i.e., | ||||
| older versions of initscripts or sysconfig). | ||||
| 
 | ||||
| 	If you're unsure whether your distro uses sysconfig or | ||||
| initscripts, or don't know if it's new enough, have no fear. | ||||
| 	If you're unsure whether your distro uses sysconfig, | ||||
| initscripts or interfaces, or don't know if it's new enough, have no fear. | ||||
| Determining this is fairly straightforward. | ||||
| 
 | ||||
| 	First, issue the command: | ||||
| 	First, look for a file called interfaces in /etc/network directory. | ||||
| If this file is present in your system, then your system use interfaces. See | ||||
| Configuration with Interfaces Support. | ||||
| 
 | ||||
| 	Else, issue the command: | ||||
| 
 | ||||
| $ rpm -qf /sbin/ifup | ||||
| 
 | ||||
| @ -1327,8 +1332,62 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval | ||||
| echo +eth2 > /sys/class/net/bond1/bonding/slaves | ||||
| echo +eth3 > /sys/class/net/bond1/bonding/slaves | ||||
| 
 | ||||
| 3.5 Overriding Configuration for Special Cases | ||||
| 3.5 Configuration with Interfaces Support | ||||
| ----------------------------------------- | ||||
| 
 | ||||
|         This section applies to distros which use /etc/network/interfaces file | ||||
| to describe network interface configuration, most notably Debian and it's | ||||
| derivatives. | ||||
| 
 | ||||
| 	The ifup and ifdown commands on Debian don't support bonding out of | ||||
| the box. The ifenslave-2.6 package should be installed to provide bonding | ||||
| support.  Once installed, this package will provide bond-* options to be used | ||||
| into /etc/network/interfaces. | ||||
| 
 | ||||
| 	Note that ifenslave-2.6 package will load the bonding module and use | ||||
| the ifenslave command when appropriate. | ||||
| 
 | ||||
| Example Configurations | ||||
| ---------------------- | ||||
| 
 | ||||
| In /etc/network/interfaces, the following stanza will configure bond0, in | ||||
| active-backup mode, with eth0 and eth1 as slaves. | ||||
| 
 | ||||
| auto bond0 | ||||
| iface bond0 inet dhcp | ||||
| 	bond-slaves eth0 eth1 | ||||
| 	bond-mode active-backup | ||||
| 	bond-miimon 100 | ||||
| 	bond-primary eth0 eth1 | ||||
| 
 | ||||
| If the above configuration doesn't work, you might have a system using | ||||
| upstart for system startup. This is most notably true for recent | ||||
| Ubuntu versions. The following stanza in /etc/network/interfaces will | ||||
| produce the same result on those systems. | ||||
| 
 | ||||
| auto bond0 | ||||
| iface bond0 inet dhcp | ||||
| 	bond-slaves none | ||||
| 	bond-mode active-backup | ||||
| 	bond-miimon 100 | ||||
| 
 | ||||
| auto eth0 | ||||
| iface eth0 inet manual | ||||
| 	bond-master bond0 | ||||
| 	bond-primary eth0 eth1 | ||||
| 
 | ||||
| auto eth1 | ||||
| iface eth1 inet manual | ||||
| 	bond-master bond0 | ||||
| 	bond-primary eth0 eth1 | ||||
| 
 | ||||
| For a full list of bond-* supported options in /etc/network/interfaces and some | ||||
| more advanced examples tailored to you particular distros, see the files in | ||||
| /usr/share/doc/ifenslave-2.6. | ||||
| 
 | ||||
| 3.6 Overriding Configuration for Special Cases | ||||
| ---------------------------------------------- | ||||
| 
 | ||||
| When using the bonding driver, the physical port which transmits a frame is | ||||
| typically selected by the bonding driver, and is not relevant to the user or | ||||
| system administrator.  The output port is simply selected using the policies of | ||||
|  | ||||
| @ -27,42 +27,38 @@ ASoC Codec driver breakdown | ||||
| 
 | ||||
| 1 - Codec DAI and PCM configuration | ||||
| ----------------------------------- | ||||
| Each codec driver must have a struct snd_soc_codec_dai to define its DAI and | ||||
| Each codec driver must have a struct snd_soc_dai_driver to define its DAI and | ||||
| PCM capabilities and operations. This struct is exported so that it can be | ||||
| registered with the core by your machine driver. | ||||
| 
 | ||||
| e.g. | ||||
| 
 | ||||
| struct snd_soc_codec_dai wm8731_dai = { | ||||
| 	.name = "WM8731", | ||||
| 	/* playback capabilities */ | ||||
| static struct snd_soc_dai_ops wm8731_dai_ops = { | ||||
| 	.prepare	= wm8731_pcm_prepare, | ||||
| 	.hw_params	= wm8731_hw_params, | ||||
| 	.shutdown	= wm8731_shutdown, | ||||
| 	.digital_mute	= wm8731_mute, | ||||
| 	.set_sysclk	= wm8731_set_dai_sysclk, | ||||
| 	.set_fmt	= wm8731_set_dai_fmt, | ||||
| }; | ||||
| 
 | ||||
| struct snd_soc_dai_driver wm8731_dai = { | ||||
| 	.name = "wm8731-hifi", | ||||
| 	.playback = { | ||||
| 		.stream_name = "Playback", | ||||
| 		.channels_min = 1, | ||||
| 		.channels_max = 2, | ||||
| 		.rates = WM8731_RATES, | ||||
| 		.formats = WM8731_FORMATS,}, | ||||
| 	/* capture capabilities */ | ||||
| 	.capture = { | ||||
| 		.stream_name = "Capture", | ||||
| 		.channels_min = 1, | ||||
| 		.channels_max = 2, | ||||
| 		.rates = WM8731_RATES, | ||||
| 		.formats = WM8731_FORMATS,}, | ||||
| 	/* pcm operations - see section 4 below */ | ||||
| 	.ops = { | ||||
| 		.prepare = wm8731_pcm_prepare, | ||||
| 		.hw_params = wm8731_hw_params, | ||||
| 		.shutdown = wm8731_shutdown, | ||||
| 	}, | ||||
| 	/* DAI operations - see DAI.txt */ | ||||
| 	.dai_ops = { | ||||
| 		.digital_mute = wm8731_mute, | ||||
| 		.set_sysclk = wm8731_set_dai_sysclk, | ||||
| 		.set_fmt = wm8731_set_dai_fmt, | ||||
| 	} | ||||
| 	.ops = &wm8731_dai_ops, | ||||
| 	.symmetric_rates = 1, | ||||
| }; | ||||
| EXPORT_SYMBOL_GPL(wm8731_dai); | ||||
| 
 | ||||
| 
 | ||||
| 2 - Codec control IO | ||||
| @ -186,13 +182,14 @@ when the mute is applied or freed. | ||||
| 
 | ||||
| i.e. | ||||
| 
 | ||||
| static int wm8974_mute(struct snd_soc_codec *codec, | ||||
| 	struct snd_soc_codec_dai *dai, int mute) | ||||
| static int wm8974_mute(struct snd_soc_dai *dai, int mute) | ||||
| { | ||||
| 	u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf; | ||||
| 	if(mute) | ||||
| 		wm8974_write(codec, WM8974_DAC, mute_reg | 0x40); | ||||
| 	struct snd_soc_codec *codec = dai->codec; | ||||
| 	u16 mute_reg = snd_soc_read(codec, WM8974_DAC) & 0xffbf; | ||||
| 
 | ||||
| 	if (mute) | ||||
| 		snd_soc_write(codec, WM8974_DAC, mute_reg | 0x40); | ||||
| 	else | ||||
| 		wm8974_write(codec, WM8974_DAC, mute_reg); | ||||
| 		snd_soc_write(codec, WM8974_DAC, mute_reg); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @ -12,6 +12,8 @@ the following struct:- | ||||
| struct snd_soc_card { | ||||
| 	char *name; | ||||
| 
 | ||||
| 	... | ||||
| 
 | ||||
| 	int (*probe)(struct platform_device *pdev); | ||||
| 	int (*remove)(struct platform_device *pdev); | ||||
| 
 | ||||
| @ -22,12 +24,13 @@ struct snd_soc_card { | ||||
| 	int (*resume_pre)(struct platform_device *pdev); | ||||
| 	int (*resume_post)(struct platform_device *pdev); | ||||
| 
 | ||||
| 	/* machine stream operations */ | ||||
| 	struct snd_soc_ops *ops; | ||||
| 	... | ||||
| 
 | ||||
| 	/* CPU <--> Codec DAI links  */ | ||||
| 	struct snd_soc_dai_link *dai_link; | ||||
| 	int num_links; | ||||
| 
 | ||||
| 	... | ||||
| }; | ||||
| 
 | ||||
| probe()/remove() | ||||
| @ -42,11 +45,6 @@ of any machine audio tasks that have to be done before or after the codec, DAIs | ||||
| and DMA is suspended and resumed. Optional. | ||||
| 
 | ||||
| 
 | ||||
| Machine operations | ||||
| ------------------ | ||||
| The machine specific audio operations can be set here. Again this is optional. | ||||
| 
 | ||||
| 
 | ||||
| Machine DAI Configuration | ||||
| ------------------------- | ||||
| The machine DAI configuration glues all the codec and CPU DAIs together. It can | ||||
| @ -61,8 +59,10 @@ struct snd_soc_dai_link is used to set up each DAI in your machine. e.g. | ||||
| static struct snd_soc_dai_link corgi_dai = { | ||||
| 	.name = "WM8731", | ||||
| 	.stream_name = "WM8731", | ||||
| 	.cpu_dai = &pxa_i2s_dai, | ||||
| 	.codec_dai = &wm8731_dai, | ||||
| 	.cpu_dai_name = "pxa-is2-dai", | ||||
| 	.codec_dai_name = "wm8731-hifi", | ||||
| 	.platform_name = "pxa-pcm-audio", | ||||
| 	.codec_name = "wm8713-codec.0-001a", | ||||
| 	.init = corgi_wm8731_init, | ||||
| 	.ops = &corgi_ops, | ||||
| }; | ||||
| @ -77,26 +77,6 @@ static struct snd_soc_card snd_soc_corgi = { | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| Machine Audio Subsystem | ||||
| ----------------------- | ||||
| 
 | ||||
| The machine soc device glues the platform, machine and codec driver together. | ||||
| Private data can also be set here. e.g. | ||||
| 
 | ||||
| /* corgi audio private data */ | ||||
| static struct wm8731_setup_data corgi_wm8731_setup = { | ||||
| 	.i2c_address = 0x1b, | ||||
| }; | ||||
| 
 | ||||
| /* corgi audio subsystem */ | ||||
| static struct snd_soc_device corgi_snd_devdata = { | ||||
| 	.machine = &snd_soc_corgi, | ||||
| 	.platform = &pxa2xx_soc_platform, | ||||
| 	.codec_dev = &soc_codec_dev_wm8731, | ||||
| 	.codec_data = &corgi_wm8731_setup, | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| Machine Power Map | ||||
| ----------------- | ||||
| 
 | ||||
|  | ||||
| @ -20,9 +20,10 @@ struct snd_soc_ops { | ||||
| 	int (*trigger)(struct snd_pcm_substream *, int); | ||||
| }; | ||||
| 
 | ||||
| The platform driver exports its DMA functionality via struct snd_soc_platform:- | ||||
| The platform driver exports its DMA functionality via struct | ||||
| snd_soc_platform_driver:- | ||||
| 
 | ||||
| struct snd_soc_platform { | ||||
| struct snd_soc_platform_driver { | ||||
| 	char *name; | ||||
| 
 | ||||
| 	int (*probe)(struct platform_device *pdev); | ||||
| @ -34,6 +35,13 @@ struct snd_soc_platform { | ||||
| 	int (*pcm_new)(struct snd_card *, struct snd_soc_codec_dai *, struct snd_pcm *); | ||||
| 	void (*pcm_free)(struct snd_pcm *); | ||||
| 
 | ||||
| 	/* | ||||
| 	 * For platform caused delay reporting. | ||||
| 	 * Optional. | ||||
| 	 */ | ||||
| 	snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, | ||||
| 		struct snd_soc_dai *); | ||||
| 
 | ||||
| 	/* platform stream ops */ | ||||
| 	struct snd_pcm_ops *pcm_ops; | ||||
| }; | ||||
|  | ||||
| @ -285,6 +285,9 @@ implement g_volatile_ctrl like this: | ||||
| The 'new value' union is not used in g_volatile_ctrl. In general controls | ||||
| that need to implement g_volatile_ctrl are read-only controls. | ||||
| 
 | ||||
| Note that if one or more controls in a control cluster are marked as volatile, | ||||
| then all the controls in the cluster are seen as volatile. | ||||
| 
 | ||||
| To mark a control as volatile you have to set the is_volatile flag: | ||||
| 
 | ||||
| 	ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...); | ||||
| @ -462,6 +465,15 @@ pointer to the v4l2_ctrl_ops struct that is used for that cluster. | ||||
| Obviously, all controls in the cluster array must be initialized to either | ||||
| a valid control or to NULL. | ||||
| 
 | ||||
| In rare cases you might want to know which controls of a cluster actually | ||||
| were set explicitly by the user. For this you can check the 'is_new' flag of | ||||
| each control. For example, in the case of a volume/mute cluster the 'is_new' | ||||
| flag of the mute control would be set if the user called VIDIOC_S_CTRL for | ||||
| mute only. If the user would call VIDIOC_S_EXT_CTRLS for both mute and volume | ||||
| controls, then the 'is_new' flag would be 1 for both controls. | ||||
| 
 | ||||
| The 'is_new' flag is always 1 when called from v4l2_ctrl_handler_setup(). | ||||
| 
 | ||||
| 
 | ||||
| VIDIOC_LOG_STATUS Support | ||||
| ========================= | ||||
|  | ||||
							
								
								
									
										99
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								MAINTAINERS
									
									
									
									
									
								
							| @ -162,7 +162,7 @@ L:	linux-serial@vger.kernel.org | ||||
| W:	http://serial.sourceforge.net | ||||
| S:	Maintained | ||||
| T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git | ||||
| F:	drivers/serial/8250* | ||||
| F:	drivers/tty/serial/8250* | ||||
| F:	include/linux/serial_8250.h | ||||
| 
 | ||||
| 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.] | ||||
| @ -624,11 +624,15 @@ M:	Lennert Buytenhek <kernel@wantstofly.org> | ||||
| L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | ||||
| S:	Maintained | ||||
| 
 | ||||
| ARM/ATMEL AT91RM9200 ARM ARCHITECTURE | ||||
| ARM/ATMEL AT91RM9200 AND AT91SAM ARM ARCHITECTURES | ||||
| M:	Andrew Victor <linux@maxim.org.za> | ||||
| M:	Nicolas Ferre <nicolas.ferre@atmel.com> | ||||
| M:	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> | ||||
| L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | ||||
| W:	http://maxim.org.za/at91_26.html | ||||
| S:	Maintained | ||||
| W:	http://www.linux4sam.org | ||||
| S:	Supported | ||||
| F:	arch/arm/mach-at91/ | ||||
| 
 | ||||
| ARM/BCMRING ARM ARCHITECTURE | ||||
| M:	Jiandong Zheng <jdzheng@broadcom.com> | ||||
| @ -888,8 +892,8 @@ F:	arch/arm/mach-msm/ | ||||
| F:	drivers/video/msm/ | ||||
| F:	drivers/mmc/host/msm_sdcc.c | ||||
| F:	drivers/mmc/host/msm_sdcc.h | ||||
| F:	drivers/serial/msm_serial.h | ||||
| F:	drivers/serial/msm_serial.c | ||||
| F:	drivers/tty/serial/msm_serial.h | ||||
| F:	drivers/tty/serial/msm_serial.c | ||||
| T:	git git://codeaurora.org/quic/kernel/davidb/linux-msm.git | ||||
| S:	Maintained | ||||
| 
 | ||||
| @ -1256,7 +1260,7 @@ F:	drivers/mmc/host/atmel-mci-regs.h | ||||
| ATMEL AT91 / AT32 SERIAL DRIVER | ||||
| M:	Nicolas Ferre <nicolas.ferre@atmel.com> | ||||
| S:	Supported | ||||
| F:	drivers/serial/atmel_serial.c | ||||
| F:	drivers/tty/serial/atmel_serial.c | ||||
| 
 | ||||
| ATMEL LCDFB DRIVER | ||||
| M:	Nicolas Ferre <nicolas.ferre@atmel.com> | ||||
| @ -1412,7 +1416,7 @@ M:	Sonic Zhang <sonic.zhang@analog.com> | ||||
| L:	uclinux-dist-devel@blackfin.uclinux.org | ||||
| W:	http://blackfin.uclinux.org | ||||
| S:	Supported | ||||
| F:	drivers/serial/bfin_5xx.c | ||||
| F:	drivers/tty/serial/bfin_5xx.c | ||||
| 
 | ||||
| BLACKFIN WATCHDOG DRIVER | ||||
| M:	Mike Frysinger <vapier.adi@gmail.com> | ||||
| @ -1877,7 +1881,7 @@ L:	linux-cris-kernel@axis.com | ||||
| W:	http://developer.axis.com | ||||
| S:	Maintained | ||||
| F:	arch/cris/ | ||||
| F:	drivers/serial/crisv10.* | ||||
| F:	drivers/tty/serial/crisv10.* | ||||
| 
 | ||||
| CRYPTO API | ||||
| M:	Herbert Xu <herbert@gondor.apana.org.au> | ||||
| @ -2216,7 +2220,7 @@ F:	drivers/net/wan/dscc4.c | ||||
| DZ DECSTATION DZ11 SERIAL DRIVER | ||||
| M:	"Maciej W. Rozycki" <macro@linux-mips.org> | ||||
| S:	Maintained | ||||
| F:	drivers/serial/dz.* | ||||
| F:	drivers/tty/serial/dz.* | ||||
| 
 | ||||
| EATA-DMA SCSI DRIVER | ||||
| M:	Michael Neuffer <mike@i-Connect.Net> | ||||
| @ -2643,7 +2647,7 @@ FREESCALE QUICC ENGINE UCC UART DRIVER | ||||
| M:	Timur Tabi <timur@freescale.com> | ||||
| L:	linuxppc-dev@lists.ozlabs.org | ||||
| S:	Supported | ||||
| F:	drivers/serial/ucc_uart.c | ||||
| F:	drivers/tty/serial/ucc_uart.c | ||||
| 
 | ||||
| FREESCALE SOC SOUND DRIVERS | ||||
| M:	Timur Tabi <timur@freescale.com> | ||||
| @ -3135,6 +3139,12 @@ S:	Maintained | ||||
| F:	net/ieee802154/ | ||||
| F:	drivers/ieee802154/ | ||||
| 
 | ||||
| IKANOS/ADI EAGLE ADSL USB DRIVER | ||||
| M:	Matthieu Castet <castet.matthieu@free.fr> | ||||
| M:	Stanislaw Gruszka <stf_xl@wp.pl> | ||||
| S:	Maintained | ||||
| F:	drivers/usb/atm/ueagle-atm.c | ||||
| 
 | ||||
| INTEGRITY MEASUREMENT ARCHITECTURE (IMA) | ||||
| M:	Mimi Zohar <zohar@us.ibm.com> | ||||
| S:	Supported | ||||
| @ -3146,7 +3156,7 @@ S:	Orphan | ||||
| F:	drivers/video/imsttfb.c | ||||
| 
 | ||||
| INFINIBAND SUBSYSTEM | ||||
| M:	Roland Dreier <rolandd@cisco.com> | ||||
| M:	Roland Dreier <roland@kernel.org> | ||||
| M:	Sean Hefty <sean.hefty@intel.com> | ||||
| M:	Hal Rosenstock <hal.rosenstock@gmail.com> | ||||
| L:	linux-rdma@vger.kernel.org | ||||
| @ -3323,7 +3333,6 @@ F:	drivers/net/wimax/i2400m/ | ||||
| F:	include/linux/wimax/i2400m.h | ||||
| 
 | ||||
| INTEL WIRELESS WIFI LINK (iwlwifi) | ||||
| M:	Reinette Chatre <reinette.chatre@intel.com> | ||||
| M:	Wey-Yi Guy <wey-yi.w.guy@intel.com> | ||||
| M:	Intel Linux Wireless <ilw@linux.intel.com> | ||||
| L:	linux-wireless@vger.kernel.org | ||||
| @ -3350,7 +3359,7 @@ IOC3 SERIAL DRIVER | ||||
| M:	Pat Gefre <pfg@sgi.com> | ||||
| L:	linux-serial@vger.kernel.org | ||||
| S:	Maintained | ||||
| F:	drivers/serial/ioc3_serial.c | ||||
| F:	drivers/tty/serial/ioc3_serial.c | ||||
| 
 | ||||
| IP MASQUERADING | ||||
| M:	Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar> | ||||
| @ -3527,7 +3536,7 @@ JSM Neo PCI based serial card | ||||
| M:	Breno Leitao <leitao@linux.vnet.ibm.com> | ||||
| L:	linux-serial@vger.kernel.org | ||||
| S:	Maintained | ||||
| F:	drivers/serial/jsm/ | ||||
| F:	drivers/tty/serial/jsm/ | ||||
| 
 | ||||
| K10TEMP HARDWARE MONITORING DRIVER | ||||
| M:	Clemens Ladisch <clemens@ladisch.de> | ||||
| @ -3670,6 +3679,28 @@ F:	include/linux/key-type.h | ||||
| F:	include/keys/ | ||||
| F:	security/keys/ | ||||
| 
 | ||||
| KEYS-TRUSTED | ||||
| M:	David Safford <safford@watson.ibm.com> | ||||
| M:	Mimi Zohar <zohar@us.ibm.com> | ||||
| L:	linux-security-module@vger.kernel.org | ||||
| L:	keyrings@linux-nfs.org | ||||
| S:	Supported | ||||
| F:	Documentation/keys-trusted-encrypted.txt | ||||
| F:	include/keys/trusted-type.h | ||||
| F:	security/keys/trusted.c | ||||
| F:	security/keys/trusted.h | ||||
| 
 | ||||
| KEYS-ENCRYPTED | ||||
| M:	Mimi Zohar <zohar@us.ibm.com> | ||||
| M:	David Safford <safford@watson.ibm.com> | ||||
| L:	linux-security-module@vger.kernel.org | ||||
| L:	keyrings@linux-nfs.org | ||||
| S:	Supported | ||||
| F:	Documentation/keys-trusted-encrypted.txt | ||||
| F:	include/keys/encrypted-type.h | ||||
| F:	security/keys/encrypted.c | ||||
| F:	security/keys/encrypted.h | ||||
| 
 | ||||
| KGDB / KDB /debug_core | ||||
| M:	Jason Wessel <jason.wessel@windriver.com> | ||||
| W:	http://kgdb.wiki.kernel.org/ | ||||
| @ -3677,7 +3708,7 @@ L:	kgdb-bugreport@lists.sourceforge.net | ||||
| S:	Maintained | ||||
| F:	Documentation/DocBook/kgdb.tmpl | ||||
| F:	drivers/misc/kgdbts.c | ||||
| F:	drivers/serial/kgdboc.c | ||||
| F:	drivers/tty/serial/kgdboc.c | ||||
| F:	include/linux/kdb.h | ||||
| F:	include/linux/kgdb.h | ||||
| F:	kernel/debug/ | ||||
| @ -5545,7 +5576,7 @@ M:	Pat Gefre <pfg@sgi.com> | ||||
| L:	linux-ia64@vger.kernel.org | ||||
| S:	Supported | ||||
| F:	Documentation/ia64/serial.txt | ||||
| F:	drivers/serial/ioc?_serial.c | ||||
| F:	drivers/tty/serial/ioc?_serial.c | ||||
| F:	include/linux/ioc?.h | ||||
| 
 | ||||
| SGI VISUAL WORKSTATION 320 AND 540 | ||||
| @ -5567,7 +5598,7 @@ L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | ||||
| S:	Maintained | ||||
| F:	Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen | ||||
| F:	arch/arm/mach-lh7a40x/ | ||||
| F:	drivers/serial/serial_lh7a40x.c | ||||
| F:	drivers/tty/serial/serial_lh7a40x.c | ||||
| F:	drivers/usb/gadget/lh7a40* | ||||
| F:	drivers/usb/host/ohci-lh7a40* | ||||
| 
 | ||||
| @ -5787,14 +5818,14 @@ L:	sparclinux@vger.kernel.org | ||||
| T:	git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git | ||||
| T:	git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git | ||||
| S:	Maintained | ||||
| F:	drivers/serial/suncore.c | ||||
| F:	drivers/serial/suncore.h | ||||
| F:	drivers/serial/sunhv.c | ||||
| F:	drivers/serial/sunsab.c | ||||
| F:	drivers/serial/sunsab.h | ||||
| F:	drivers/serial/sunsu.c | ||||
| F:	drivers/serial/sunzilog.c | ||||
| F:	drivers/serial/sunzilog.h | ||||
| F:	drivers/tty/serial/suncore.c | ||||
| F:	drivers/tty/serial/suncore.h | ||||
| F:	drivers/tty/serial/sunhv.c | ||||
| F:	drivers/tty/serial/sunsab.c | ||||
| F:	drivers/tty/serial/sunsab.h | ||||
| F:	drivers/tty/serial/sunsu.c | ||||
| F:	drivers/tty/serial/sunzilog.c | ||||
| F:	drivers/tty/serial/sunzilog.h | ||||
| 
 | ||||
| SPEAR PLATFORM SUPPORT | ||||
| M:	Viresh Kumar <viresh.kumar@st.com> | ||||
| @ -6124,8 +6155,8 @@ TTY LAYER | ||||
| M:	Greg Kroah-Hartman <gregkh@suse.de> | ||||
| S:	Maintained | ||||
| T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6.git | ||||
| F:	drivers/char/tty_* | ||||
| F:	drivers/serial/serial_core.c | ||||
| F:	drivers/tty/* | ||||
| F:	drivers/tty/serial/serial_core.c | ||||
| F:	include/linux/serial_core.h | ||||
| F:	include/linux/serial.h | ||||
| F:	include/linux/tty.h | ||||
| @ -6569,6 +6600,16 @@ S:	Maintained | ||||
| F:	drivers/char/virtio_console.c | ||||
| F:	include/linux/virtio_console.h | ||||
| 
 | ||||
| VIRTIO CORE, NET AND BLOCK DRIVERS | ||||
| M:	Rusty Russell <rusty@rustcorp.com.au> | ||||
| M:	"Michael S. Tsirkin" <mst@redhat.com> | ||||
| L:	virtualization@lists.linux-foundation.org | ||||
| S:	Maintained | ||||
| F:	drivers/virtio/ | ||||
| F:	drivers/net/virtio_net.c | ||||
| F:	drivers/block/virtio_blk.c | ||||
| F:	include/linux/virtio_*.h | ||||
| 
 | ||||
| VIRTIO HOST (VHOST) | ||||
| M:	"Michael S. Tsirkin" <mst@redhat.com> | ||||
| L:	kvm@vger.kernel.org | ||||
| @ -6870,7 +6911,7 @@ XILINX UARTLITE SERIAL DRIVER | ||||
| M:	Peter Korsgaard <jacmet@sunsite.dk> | ||||
| L:	linux-serial@vger.kernel.org | ||||
| S:	Maintained | ||||
| F:	drivers/serial/uartlite.c | ||||
| F:	drivers/tty/serial/uartlite.c | ||||
| 
 | ||||
| YAM DRIVER FOR AX.25 | ||||
| M:	Jean-Paul Roubelat <jpr@f6fbb.org> | ||||
| @ -6916,7 +6957,7 @@ F:	drivers/media/video/zoran/ | ||||
| ZS DECSTATION Z85C30 SERIAL DRIVER | ||||
| M:	"Maciej W. Rozycki" <macro@linux-mips.org> | ||||
| S:	Maintained | ||||
| F:	drivers/serial/zs.* | ||||
| F:	drivers/tty/serial/zs.* | ||||
| 
 | ||||
| GRE DEMULTIPLEXER DRIVER | ||||
| M:	Dmitry Kozlov <xeb@mail.ru> | ||||
|  | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| VERSION = 2 | ||||
| PATCHLEVEL = 6 | ||||
| SUBLEVEL = 38 | ||||
| EXTRAVERSION = -rc1 | ||||
| EXTRAVERSION = -rc3 | ||||
| NAME = Flesh-Eating Bats with Fangs | ||||
| 
 | ||||
| # *DOCUMENTATION*
 | ||||
|  | ||||
| @ -8,6 +8,9 @@ config ALPHA | ||||
| 	select HAVE_IRQ_WORK | ||||
| 	select HAVE_PERF_EVENTS | ||||
| 	select HAVE_DMA_ATTRS | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select GENERIC_IRQ_PROBE | ||||
| 	select AUTO_IRQ_AFFINITY if SMP | ||||
| 	help | ||||
| 	  The Alpha is a 64-bit general-purpose processor designed and | ||||
| 	  marketed by the Digital Equipment Corporation of blessed memory, | ||||
| @ -68,22 +71,6 @@ config GENERIC_IOMAP | ||||
| 	bool | ||||
| 	default n | ||||
| 
 | ||||
| config GENERIC_HARDIRQS_NO__DO_IRQ | ||||
| 	def_bool y | ||||
| 
 | ||||
| config GENERIC_HARDIRQS | ||||
| 	bool | ||||
| 	default y | ||||
| 
 | ||||
| config GENERIC_IRQ_PROBE | ||||
| 	bool | ||||
| 	default y | ||||
| 
 | ||||
| config AUTO_IRQ_AFFINITY | ||||
| 	bool | ||||
| 	depends on SMP | ||||
| 	default y | ||||
| 
 | ||||
| source "init/Kconfig" | ||||
| source "kernel/Kconfig.freezer" | ||||
| 
 | ||||
|  | ||||
| @ -10,7 +10,7 @@ CONFIG_NAMESPACES=y | ||||
| # CONFIG_PID_NS is not set | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_INITRAMFS_SOURCE="" | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| # CONFIG_BLK_DEV_BSG is not set | ||||
| # CONFIG_IOSCHED_DEADLINE is not set | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_LOCALVERSION="gum" | ||||
| # CONFIG_SWAP is not set | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_SYSCTL_SYSCALL is not set | ||||
| # CONFIG_EPOLL is not set | ||||
| # CONFIG_SHMEM is not set | ||||
|  | ||||
| @ -17,7 +17,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_RELAY=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_PROFILING=y | ||||
| CONFIG_OPROFILE=m | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODVERSIONS=y | ||||
| CONFIG_ARCH_SA1100=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| # CONFIG_LOCALVERSION_AUTO is not set | ||||
| # CONFIG_SWAP is not set | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| # CONFIG_ELF_CORE is not set | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_VM_EVENT_COUNTERS is not set | ||||
| # CONFIG_SLUB_DEBUG is not set | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
|  | ||||
| @ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_BASE_FULL is not set | ||||
| # CONFIG_EPOLL is not set | ||||
| CONFIG_SLOB=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_PROFILING=y | ||||
| CONFIG_OPROFILE=m | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
| CONFIG_MODULE_FORCE_UNLOAD=y | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
| CONFIG_MODULE_FORCE_UNLOAD=y | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_ARCH_EBSA110=y | ||||
| CONFIG_PCCARD=m | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| CONFIG_ARCH_CLPS711X=y | ||||
| CONFIG_ARCH_EDB7211=y | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_VM_EVENT_COUNTERS is not set | ||||
| # CONFIG_SLUB_DEBUG is not set | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_KALLSYMS is not set | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
| CONFIG_SLAB=y | ||||
|  | ||||
| @ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_RD_BZIP2=y | ||||
| CONFIG_RD_LZMA=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_ARCH_FOOTBRIDGE=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| CONFIG_ARCH_CLPS711X=y | ||||
| CONFIG_ARCH_FORTUNET=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=16 | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_UID16 is not set | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_RD_BZIP2=y | ||||
| CONFIG_RD_LZMA=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODVERSIONS=y | ||||
| # CONFIG_BLK_DEV_BSG is not set | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_IKCONFIG=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| # CONFIG_EPOLL is not set | ||||
| # CONFIG_IOSCHED_DEADLINE is not set | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_IKCONFIG=y | ||||
| CONFIG_LOG_BUF_SHIFT=16 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| # CONFIG_EPOLL is not set | ||||
| CONFIG_SLAB=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=16 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_UID16 is not set | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_ALL=y | ||||
| # CONFIG_SLUB_DEBUG is not set | ||||
| CONFIG_PROFILING=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_POSIX_MQUEUE=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
| CONFIG_SLAB=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=18 | ||||
| CONFIG_RELAY=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_SLUB_DEBUG is not set | ||||
| # CONFIG_COMPAT_BRK is not set | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_ALL=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_IKCONFIG=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_KALLSYMS is not set | ||||
| # CONFIG_ELF_CORE is not set | ||||
| # CONFIG_BASE_FULL is not set | ||||
|  | ||||
| @ -6,7 +6,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=16 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_SYSCTL_SYSCALL is not set | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| CONFIG_SLAB=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_SLUB_DEBUG is not set | ||||
| CONFIG_PROFILING=y | ||||
| CONFIG_OPROFILE=y | ||||
|  | ||||
| @ -7,7 +7,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_KALLSYMS is not set | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_NAMESPACES=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_SYSCTL_SYSCALL is not set | ||||
| # CONFIG_KALLSYMS is not set | ||||
| # CONFIG_VM_EVENT_COUNTERS is not set | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_HOTPLUG is not set | ||||
| # CONFIG_SHMEM is not set | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -5,7 +5,7 @@ CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_AUDIT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -2,7 +2,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_LOCALVERSION="oe1" | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_ALL=y | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -4,7 +4,7 @@ CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_PROFILING=y | ||||
| CONFIG_OPROFILE=m | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -5,7 +5,7 @@ CONFIG_POSIX_MQUEUE=y | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
|  | ||||
| @ -5,7 +5,7 @@ CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_KALLSYMS is not set | ||||
| # CONFIG_BUG is not set | ||||
| # CONFIG_ELF_CORE is not set | ||||
|  | ||||
| @ -7,7 +7,7 @@ CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| CONFIG_KALLSYMS_EXTRA_PASS=y | ||||
| CONFIG_SLAB=y | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| # CONFIG_SWAP is not set | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_AIO is not set | ||||
| # CONFIG_VM_EVENT_COUNTERS is not set | ||||
| CONFIG_MODULES=y | ||||
|  | ||||
| @ -3,7 +3,7 @@ CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_SYSVIPC=y | ||||
| CONFIG_LOG_BUF_SHIFT=13 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_ELF_CORE is not set | ||||
| # CONFIG_SHMEM is not set | ||||
| CONFIG_SLAB=y | ||||
|  | ||||
| @ -8,7 +8,7 @@ CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=16 | ||||
| CONFIG_SYSFS_DEPRECATED_V2=y | ||||
| CONFIG_BLK_DEV_INITRD=y | ||||
| CONFIG_EMBEDDED=y | ||||
| CONFIG_EXPERT=y | ||||
| # CONFIG_UID16 is not set | ||||
| # CONFIG_SHMEM is not set | ||||
| # CONFIG_VM_EVENT_COUNTERS is not set | ||||
|  | ||||
| @ -50,6 +50,12 @@ | ||||
| #define SCPCELLID2		0xFF8 | ||||
| #define SCPCELLID3		0xFFC | ||||
| 
 | ||||
| #define SCCTRL_TIMEREN0SEL_REFCLK	(0 << 15) | ||||
| #define SCCTRL_TIMEREN0SEL_TIMCLK	(1 << 15) | ||||
| 
 | ||||
| #define SCCTRL_TIMEREN1SEL_REFCLK	(0 << 17) | ||||
| #define SCCTRL_TIMEREN1SEL_TIMCLK	(1 << 17) | ||||
| 
 | ||||
| static inline void sysctl_soft_reset(void __iomem *base) | ||||
| { | ||||
| 	/* writing any value to SCSYSSTAT reg will reset system */ | ||||
|  | ||||
| @ -95,6 +95,15 @@ static inline void __iomem *__typesafe_io(unsigned long addr) | ||||
| 	return (void __iomem *)addr; | ||||
| } | ||||
| 
 | ||||
| /* IO barriers */ | ||||
| #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE | ||||
| #define __iormb()		rmb() | ||||
| #define __iowmb()		wmb() | ||||
| #else | ||||
| #define __iormb()		do { } while (0) | ||||
| #define __iowmb()		do { } while (0) | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * Now, pick up the machine-defined IO definitions | ||||
|  */ | ||||
| @ -125,17 +134,17 @@ static inline void __iomem *__typesafe_io(unsigned long addr) | ||||
|  * The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space. | ||||
|  */ | ||||
| #ifdef __io | ||||
| #define outb(v,p)		__raw_writeb(v,__io(p)) | ||||
| #define outw(v,p)		__raw_writew((__force __u16) \ | ||||
| 					cpu_to_le16(v),__io(p)) | ||||
| #define outl(v,p)		__raw_writel((__force __u32) \ | ||||
| 					cpu_to_le32(v),__io(p)) | ||||
| #define outb(v,p)	({ __iowmb(); __raw_writeb(v,__io(p)); }) | ||||
| #define outw(v,p)	({ __iowmb(); __raw_writew((__force __u16) \ | ||||
| 					cpu_to_le16(v),__io(p)); }) | ||||
| #define outl(v,p)	({ __iowmb(); __raw_writel((__force __u32) \ | ||||
| 					cpu_to_le32(v),__io(p)); }) | ||||
| 
 | ||||
| #define inb(p)	({ __u8 __v = __raw_readb(__io(p)); __v; }) | ||||
| #define inb(p)	({ __u8 __v = __raw_readb(__io(p)); __iormb(); __v; }) | ||||
| #define inw(p)	({ __u16 __v = le16_to_cpu((__force __le16) \ | ||||
| 			__raw_readw(__io(p))); __v; }) | ||||
| 			__raw_readw(__io(p))); __iormb(); __v; }) | ||||
| #define inl(p)	({ __u32 __v = le32_to_cpu((__force __le32) \ | ||||
| 			__raw_readl(__io(p))); __v; }) | ||||
| 			__raw_readl(__io(p))); __iormb(); __v; }) | ||||
| 
 | ||||
| #define outsb(p,d,l)		__raw_writesb(__io(p),d,l) | ||||
| #define outsw(p,d,l)		__raw_writesw(__io(p),d,l) | ||||
| @ -192,14 +201,6 @@ extern void _memset_io(volatile void __iomem *, int, size_t); | ||||
| #define writel_relaxed(v,c)	((void)__raw_writel((__force u32) \ | ||||
| 					cpu_to_le32(v),__mem_pci(c))) | ||||
| 
 | ||||
| #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE | ||||
| #define __iormb()		rmb() | ||||
| #define __iowmb()		wmb() | ||||
| #else | ||||
| #define __iormb()		do { } while (0) | ||||
| #define __iowmb()		do { } while (0) | ||||
| #endif | ||||
| 
 | ||||
| #define readb(c)		({ u8  __v = readb_relaxed(c); __iormb(); __v; }) | ||||
| #define readw(c)		({ u16 __v = readw_relaxed(c); __iormb(); __v; }) | ||||
| #define readl(c)		({ u32 __v = readl_relaxed(c); __iormb(); __v; }) | ||||
|  | ||||
| @ -188,7 +188,7 @@ | ||||
|  * translation for translating DMA addresses.  Use the driver | ||||
|  * DMA support - see dma-mapping.h. | ||||
|  */ | ||||
| static inline unsigned long virt_to_phys(void *x) | ||||
| static inline unsigned long virt_to_phys(const volatile void *x) | ||||
| { | ||||
| 	return __virt_to_phys((unsigned long)(x)); | ||||
| } | ||||
|  | ||||
| @ -392,24 +392,22 @@ ENDPROC(__turn_mmu_on) | ||||
| 
 | ||||
| #ifdef CONFIG_SMP_ON_UP | ||||
| __fixup_smp: | ||||
| 	mov	r4, #0x00070000 | ||||
| 	orr	r3, r4, #0xff000000	@ mask 0xff070000
 | ||||
| 	orr	r4, r4, #0x41000000	@ val 0x41070000
 | ||||
| 	and	r0, r9, r3 | ||||
| 	teq	r0, r4			@ ARM CPU and ARMv6/v7?
 | ||||
| 	and	r3, r9, #0x000f0000	@ architecture version
 | ||||
| 	teq	r3, #0x000f0000		@ CPU ID supported?
 | ||||
| 	bne	__fixup_smp_on_up	@ no, assume UP
 | ||||
| 
 | ||||
| 	orr	r3, r3, #0x0000ff00 | ||||
| 	orr	r3, r3, #0x000000f0	@ mask 0xff07fff0
 | ||||
| 	bic	r3, r9, #0x00ff0000 | ||||
| 	bic	r3, r3, #0x0000000f	@ mask 0xff00fff0
 | ||||
| 	mov	r4, #0x41000000 | ||||
| 	orr	r4, r4, #0x0000b000 | ||||
| 	orr	r4, r4, #0x00000020	@ val 0x4107b020
 | ||||
| 	and	r0, r9, r3 | ||||
| 	teq	r0, r4			@ ARM 11MPCore?
 | ||||
| 	orr	r4, r4, #0x00000020	@ val 0x4100b020
 | ||||
| 	teq	r3, r4			@ ARM 11MPCore?
 | ||||
| 	moveq	pc, lr			@ yes, assume SMP
 | ||||
| 
 | ||||
| 	mrc	p15, 0, r0, c0, c0, 5	@ read MPIDR
 | ||||
| 	tst	r0, #1 << 31 | ||||
| 	movne	pc, lr			@ bit 31 => SMP
 | ||||
| 	and	r0, r0, #0xc0000000	@ multiprocessing extensions and
 | ||||
| 	teq	r0, #0x80000000		@ not part of a uniprocessor system?
 | ||||
| 	moveq	pc, lr			@ yes, assume SMP
 | ||||
| 
 | ||||
| __fixup_smp_on_up: | ||||
| 	adr	r0, 1f | ||||
|  | ||||
| @ -36,6 +36,7 @@ static void twd_set_mode(enum clock_event_mode mode, | ||||
| 		/* timer load already set up */ | ||||
| 		ctrl = TWD_TIMER_CONTROL_ENABLE | TWD_TIMER_CONTROL_IT_ENABLE | ||||
| 			| TWD_TIMER_CONTROL_PERIODIC; | ||||
| 		__raw_writel(twd_timer_rate / HZ, twd_base + TWD_TIMER_LOAD); | ||||
| 		break; | ||||
| 	case CLOCK_EVT_MODE_ONESHOT: | ||||
| 		/* period set, and timer enabled in 'next_event' hook */ | ||||
| @ -81,7 +82,7 @@ int twd_timer_ack(void) | ||||
| 
 | ||||
| static void __cpuinit twd_calibrate_rate(void) | ||||
| { | ||||
| 	unsigned long load, count; | ||||
| 	unsigned long count; | ||||
| 	u64 waitjiffies; | ||||
| 
 | ||||
| 	/*
 | ||||
| @ -116,10 +117,6 @@ static void __cpuinit twd_calibrate_rate(void) | ||||
| 		printk("%lu.%02luMHz.\n", twd_timer_rate / 1000000, | ||||
| 			(twd_timer_rate / 1000000) % 100); | ||||
| 	} | ||||
| 
 | ||||
| 	load = twd_timer_rate / HZ; | ||||
| 
 | ||||
| 	__raw_writel(load, twd_base + TWD_TIMER_LOAD); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  | ||||
| @ -427,6 +427,13 @@ void __init ep93xx_gpio_init(void) | ||||
| { | ||||
| 	int i; | ||||
| 
 | ||||
| 	/* Set Ports C, D, E, G, and H for GPIO use */ | ||||
| 	ep93xx_devcfg_set_bits(EP93XX_SYSCON_DEVCFG_KEYS | | ||||
| 				 EP93XX_SYSCON_DEVCFG_GONK | | ||||
| 				 EP93XX_SYSCON_DEVCFG_EONIDE | | ||||
| 				 EP93XX_SYSCON_DEVCFG_GONIDE | | ||||
| 				 EP93XX_SYSCON_DEVCFG_HONIDE); | ||||
| 
 | ||||
| 	for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) | ||||
| 		gpiochip_add(&ep93xx_gpio_banks[i].chip); | ||||
| } | ||||
|  | ||||
| @ -17,8 +17,8 @@ | ||||
| 	/* For NetWinder debugging */ | ||||
| 		.macro	addruart, rp, rv | ||||
| 		mov	\rp, #0x000003f8 | ||||
| 		orr	\rv, \rp, #0x7c000000	@ physical
 | ||||
| 		orr	\rp, \rp, #0xff000000	@ virtual
 | ||||
| 		orr	\rv, \rp, #0xff000000	@ virtual
 | ||||
| 		orr	\rp, \rp, #0x7c000000	@ physical
 | ||||
| 		.endm | ||||
| 
 | ||||
| #define UART_SHIFT	0 | ||||
|  | ||||
| @ -43,7 +43,7 @@ static const unsigned        qsd8x50_surf_smc91x_gpio __initdata = 156; | ||||
|  * at run-time: they vary from board to board, and the true | ||||
|  * configuration won't be known until boot. | ||||
|  */ | ||||
| static struct resource smc91x_resources[] __initdata = { | ||||
| static struct resource smc91x_resources[] = { | ||||
| 	[0] = { | ||||
| 		.flags = IORESOURCE_MEM, | ||||
| 	}, | ||||
| @ -52,7 +52,7 @@ static struct resource smc91x_resources[] __initdata = { | ||||
| 	}, | ||||
| }; | ||||
| 
 | ||||
| static struct platform_device smc91x_device __initdata = { | ||||
| static struct platform_device smc91x_device = { | ||||
| 	.name           = "smc91x", | ||||
| 	.id             = 0, | ||||
| 	.num_resources  = ARRAY_SIZE(smc91x_resources), | ||||
|  | ||||
| @ -9,6 +9,7 @@ config ARCH_OMAP730 | ||||
| 	depends on ARCH_OMAP1 | ||||
| 	bool "OMAP730 Based System" | ||||
| 	select CPU_ARM926T | ||||
| 	select OMAP_MPU_TIMER | ||||
| 	select ARCH_OMAP_OTG | ||||
| 
 | ||||
| config ARCH_OMAP850 | ||||
| @ -22,6 +23,7 @@ config ARCH_OMAP15XX | ||||
| 	default y | ||||
| 	bool "OMAP15xx Based System" | ||||
| 	select CPU_ARM925T | ||||
| 	select OMAP_MPU_TIMER | ||||
| 
 | ||||
| config ARCH_OMAP16XX | ||||
| 	depends on ARCH_OMAP1 | ||||
|  | ||||
| @ -3,12 +3,11 @@ | ||||
| #
 | ||||
| 
 | ||||
| # Common support
 | ||||
| obj-y := io.o id.o sram.o irq.o mux.o flash.o serial.o devices.o dma.o | ||||
| obj-y := io.o id.o sram.o time.o irq.o mux.o flash.o serial.o devices.o dma.o | ||||
| obj-y += clock.o clock_data.o opp_data.o | ||||
| 
 | ||||
| obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o | ||||
| 
 | ||||
| obj-$(CONFIG_OMAP_MPU_TIMER)	+= time.o | ||||
| obj-$(CONFIG_OMAP_32K_TIMER)	+= timer32k.o | ||||
| 
 | ||||
| # Power Management
 | ||||
|  | ||||
| @ -14,19 +14,6 @@ | ||||
| #include <mach/irqs.h> | ||||
| #include <asm/hardware/gic.h> | ||||
| 
 | ||||
| /* | ||||
|  * We use __glue to avoid errors with multiple definitions of | ||||
|  * .globl omap_irq_flags as it's included from entry-armv.S but not | ||||
|  * from entry-common.S. | ||||
|  */ | ||||
| #ifdef __glue | ||||
| 		.pushsection .data | ||||
| 		.globl	omap_irq_flags
 | ||||
| omap_irq_flags: | ||||
| 		.word	0
 | ||||
| 		.popsection | ||||
| #endif | ||||
| 
 | ||||
|  		.macro	disable_fiq
 | ||||
| 		.endm | ||||
| 
 | ||||
|  | ||||
| @ -57,6 +57,7 @@ struct omap_irq_bank { | ||||
| 	unsigned long wake_enable; | ||||
| }; | ||||
| 
 | ||||
| u32 omap_irq_flags; | ||||
| static unsigned int irq_bank_count; | ||||
| static struct omap_irq_bank *irq_banks; | ||||
| 
 | ||||
| @ -176,7 +177,6 @@ static struct irq_chip omap_irq_chip = { | ||||
| 
 | ||||
| void __init omap_init_irq(void) | ||||
| { | ||||
| 	extern unsigned int omap_irq_flags; | ||||
| 	int i, j; | ||||
| 
 | ||||
| #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) | ||||
|  | ||||
| @ -44,16 +44,21 @@ | ||||
| #include <linux/clocksource.h> | ||||
| #include <linux/clockchips.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/sched.h> | ||||
| 
 | ||||
| #include <asm/system.h> | ||||
| #include <mach/hardware.h> | ||||
| #include <asm/leds.h> | ||||
| #include <asm/irq.h> | ||||
| #include <asm/sched_clock.h> | ||||
| 
 | ||||
| #include <asm/mach/irq.h> | ||||
| #include <asm/mach/time.h> | ||||
| 
 | ||||
| #include <plat/common.h> | ||||
| 
 | ||||
| #ifdef CONFIG_OMAP_MPU_TIMER | ||||
| 
 | ||||
| #define OMAP_MPU_TIMER_BASE		OMAP_MPU_TIMER1_BASE | ||||
| #define OMAP_MPU_TIMER_OFFSET		0x100 | ||||
| 
 | ||||
| @ -67,7 +72,7 @@ typedef struct { | ||||
| ((volatile omap_mpu_timer_regs_t*)OMAP1_IO_ADDRESS(OMAP_MPU_TIMER_BASE +	\ | ||||
| 				 (n)*OMAP_MPU_TIMER_OFFSET)) | ||||
| 
 | ||||
| static inline unsigned long omap_mpu_timer_read(int nr) | ||||
| static inline unsigned long notrace omap_mpu_timer_read(int nr) | ||||
| { | ||||
| 	volatile omap_mpu_timer_regs_t* timer = omap_mpu_timer_base(nr); | ||||
| 	return timer->read_tim; | ||||
| @ -212,6 +217,32 @@ static struct clocksource clocksource_mpu = { | ||||
| 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS, | ||||
| }; | ||||
| 
 | ||||
| static DEFINE_CLOCK_DATA(cd); | ||||
| 
 | ||||
| static inline unsigned long long notrace _omap_mpu_sched_clock(void) | ||||
| { | ||||
| 	u32 cyc = mpu_read(&clocksource_mpu); | ||||
| 	return cyc_to_sched_clock(&cd, cyc, (u32)~0); | ||||
| } | ||||
| 
 | ||||
| #ifndef CONFIG_OMAP_32K_TIMER | ||||
| unsigned long long notrace sched_clock(void) | ||||
| { | ||||
| 	return _omap_mpu_sched_clock(); | ||||
| } | ||||
| #else | ||||
| static unsigned long long notrace omap_mpu_sched_clock(void) | ||||
| { | ||||
| 	return _omap_mpu_sched_clock(); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| static void notrace mpu_update_sched_clock(void) | ||||
| { | ||||
| 	u32 cyc = mpu_read(&clocksource_mpu); | ||||
| 	update_sched_clock(&cd, cyc, (u32)~0); | ||||
| } | ||||
| 
 | ||||
| static void __init omap_init_clocksource(unsigned long rate) | ||||
| { | ||||
| 	static char err[] __initdata = KERN_ERR | ||||
| @ -219,17 +250,13 @@ static void __init omap_init_clocksource(unsigned long rate) | ||||
| 
 | ||||
| 	setup_irq(INT_TIMER2, &omap_mpu_timer2_irq); | ||||
| 	omap_mpu_timer_start(1, ~0, 1); | ||||
| 	init_sched_clock(&cd, mpu_update_sched_clock, 32, rate); | ||||
| 
 | ||||
| 	if (clocksource_register_hz(&clocksource_mpu, rate)) | ||||
| 		printk(err, clocksource_mpu.name); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * --------------------------------------------------------------------------- | ||||
|  * Timer initialization | ||||
|  * --------------------------------------------------------------------------- | ||||
|  */ | ||||
| static void __init omap_timer_init(void) | ||||
| static void __init omap_mpu_timer_init(void) | ||||
| { | ||||
| 	struct clk	*ck_ref = clk_get(NULL, "ck_ref"); | ||||
| 	unsigned long	rate; | ||||
| @ -246,6 +273,66 @@ static void __init omap_timer_init(void) | ||||
| 	omap_init_clocksource(rate); | ||||
| } | ||||
| 
 | ||||
| #else | ||||
| static inline void omap_mpu_timer_init(void) | ||||
| { | ||||
| 	pr_err("Bogus timer, should not happen\n"); | ||||
| } | ||||
| #endif	/* CONFIG_OMAP_MPU_TIMER */ | ||||
| 
 | ||||
| #if defined(CONFIG_OMAP_MPU_TIMER) && defined(CONFIG_OMAP_32K_TIMER) | ||||
| static unsigned long long (*preferred_sched_clock)(void); | ||||
| 
 | ||||
| unsigned long long notrace sched_clock(void) | ||||
| { | ||||
| 	if (!preferred_sched_clock) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	return preferred_sched_clock(); | ||||
| } | ||||
| 
 | ||||
| static inline void preferred_sched_clock_init(bool use_32k_sched_clock) | ||||
| { | ||||
| 	if (use_32k_sched_clock) | ||||
| 		preferred_sched_clock = omap_32k_sched_clock; | ||||
| 	else | ||||
| 		preferred_sched_clock = omap_mpu_sched_clock; | ||||
| } | ||||
| #else | ||||
| static inline void preferred_sched_clock_init(bool use_32k_sched_clcok) | ||||
| { | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| static inline int omap_32k_timer_usable(void) | ||||
| { | ||||
| 	int res = false; | ||||
| 
 | ||||
| 	if (cpu_is_omap730() || cpu_is_omap15xx()) | ||||
| 		return res; | ||||
| 
 | ||||
| #ifdef CONFIG_OMAP_32K_TIMER | ||||
| 	res = omap_32k_timer_init(); | ||||
| #endif | ||||
| 
 | ||||
| 	return res; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * --------------------------------------------------------------------------- | ||||
|  * Timer initialization | ||||
|  * --------------------------------------------------------------------------- | ||||
|  */ | ||||
| static void __init omap_timer_init(void) | ||||
| { | ||||
| 	if (omap_32k_timer_usable()) { | ||||
| 		preferred_sched_clock_init(1); | ||||
| 	} else { | ||||
| 		omap_mpu_timer_init(); | ||||
| 		preferred_sched_clock_init(0); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| struct sys_timer omap_timer = { | ||||
| 	.init		= omap_timer_init, | ||||
| }; | ||||
|  | ||||
| @ -52,10 +52,9 @@ | ||||
| #include <asm/irq.h> | ||||
| #include <asm/mach/irq.h> | ||||
| #include <asm/mach/time.h> | ||||
| #include <plat/common.h> | ||||
| #include <plat/dmtimer.h> | ||||
| 
 | ||||
| struct sys_timer omap_timer; | ||||
| 
 | ||||
| /*
 | ||||
|  * --------------------------------------------------------------------------- | ||||
|  * 32KHz OS timer | ||||
| @ -181,14 +180,14 @@ static __init void omap_init_32k_timer(void) | ||||
|  * Timer initialization | ||||
|  * --------------------------------------------------------------------------- | ||||
|  */ | ||||
| static void __init omap_timer_init(void) | ||||
| bool __init omap_32k_timer_init(void) | ||||
| { | ||||
| 	omap_init_clocksource_32k(); | ||||
| 
 | ||||
| #ifdef CONFIG_OMAP_DM_TIMER | ||||
| 	omap_dm_timer_init(); | ||||
| #endif | ||||
| 	omap_init_32k_timer(); | ||||
| } | ||||
| 
 | ||||
| struct sys_timer omap_timer = { | ||||
| 	.init		= omap_timer_init, | ||||
| }; | ||||
| 	return true; | ||||
| } | ||||
|  | ||||
| @ -124,8 +124,9 @@ static inline void cm_t3517_init_hecc(void) {} | ||||
| #if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) | ||||
| #define RTC_IO_GPIO		(153) | ||||
| #define RTC_WR_GPIO		(154) | ||||
| #define RTC_RD_GPIO		(160) | ||||
| #define RTC_RD_GPIO		(53) | ||||
| #define RTC_CS_GPIO		(163) | ||||
| #define RTC_CS_EN_GPIO		(160) | ||||
| 
 | ||||
| struct v3020_platform_data cm_t3517_v3020_pdata = { | ||||
| 	.use_gpio	= 1, | ||||
| @ -145,6 +146,16 @@ static struct platform_device cm_t3517_rtc_device = { | ||||
| 
 | ||||
| static void __init cm_t3517_init_rtc(void) | ||||
| { | ||||
| 	int err; | ||||
| 
 | ||||
| 	err = gpio_request(RTC_CS_EN_GPIO, "rtc cs en"); | ||||
| 	if (err) { | ||||
| 		pr_err("CM-T3517: rtc cs en gpio request failed: %d\n", err); | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	gpio_direction_output(RTC_CS_EN_GPIO, 1); | ||||
| 
 | ||||
| 	platform_device_register(&cm_t3517_rtc_device); | ||||
| } | ||||
| #else | ||||
| @ -214,12 +225,12 @@ static struct mtd_partition cm_t3517_nand_partitions[] = { | ||||
| 	}, | ||||
| 	{ | ||||
| 		.name           = "linux", | ||||
| 		.offset         = MTDPART_OFS_APPEND,	/* Offset = 0x280000 */ | ||||
| 		.offset         = MTDPART_OFS_APPEND,	/* Offset = 0x2A0000 */ | ||||
| 		.size           = 32 * NAND_BLOCK_SIZE, | ||||
| 	}, | ||||
| 	{ | ||||
| 		.name           = "rootfs", | ||||
| 		.offset         = MTDPART_OFS_APPEND,	/* Offset = 0x680000 */ | ||||
| 		.offset         = MTDPART_OFS_APPEND,	/* Offset = 0x6A0000 */ | ||||
| 		.size           = MTDPART_SIZ_FULL, | ||||
| 	}, | ||||
| }; | ||||
| @ -256,11 +267,19 @@ static void __init cm_t3517_init_irq(void) | ||||
| static struct omap_board_mux board_mux[] __initdata = { | ||||
| 	/* GPIO186 - Green LED */ | ||||
| 	OMAP3_MUX(SYS_CLKOUT2, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||||
| 	/* RTC GPIOs: IO, WR#, RD#, CS# */ | ||||
| 
 | ||||
| 	/* RTC GPIOs: */ | ||||
| 	/* IO - GPIO153 */ | ||||
| 	OMAP3_MUX(MCBSP4_DR, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||||
| 	/* WR# - GPIO154 */ | ||||
| 	OMAP3_MUX(MCBSP4_DX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||||
| 	OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||||
| 	/* RD# - GPIO53 */ | ||||
| 	OMAP3_MUX(GPMC_NCS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||||
| 	/* CS# - GPIO163 */ | ||||
| 	OMAP3_MUX(UART3_CTS_RCTX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||||
| 	/* CS EN - GPIO160 */ | ||||
| 	OMAP3_MUX(MCBSP_CLKS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||||
| 
 | ||||
| 	/* HSUSB1 RESET */ | ||||
| 	OMAP3_MUX(UART2_TX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||||
| 	/* HSUSB2 RESET */ | ||||
|  | ||||
| @ -275,8 +275,7 @@ static struct twl4030_gpio_platform_data devkit8000_gpio_data = { | ||||
| 	.irq_base	= TWL4030_GPIO_IRQ_BASE, | ||||
| 	.irq_end	= TWL4030_GPIO_IRQ_END, | ||||
| 	.use_leds	= true, | ||||
| 	.pullups	= BIT(1), | ||||
| 	.pulldowns	= BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13) | ||||
| 	.pulldowns	= BIT(1) | BIT(2) | BIT(6) | BIT(8) | BIT(13) | ||||
| 				| BIT(15) | BIT(16) | BIT(17), | ||||
| 	.setup		= devkit8000_twl_gpio_setup, | ||||
| }; | ||||
|  | ||||
| @ -34,7 +34,6 @@ | ||||
| #include "cm2_44xx.h" | ||||
| #include "cm-regbits-44xx.h" | ||||
| #include "prm44xx.h" | ||||
| #include "prm44xx.h" | ||||
| #include "prm-regbits-44xx.h" | ||||
| #include "control.h" | ||||
| #include "scrm44xx.h" | ||||
|  | ||||
| @ -423,6 +423,12 @@ int clkdm_add_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | ||||
| { | ||||
| 	struct clkdm_dep *cd; | ||||
| 
 | ||||
| 	if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||||
| 		pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||||
| 		       clkdm1->name, clkdm2->name, __func__); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!clkdm1 || !clkdm2) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| @ -458,6 +464,12 @@ int clkdm_del_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | ||||
| { | ||||
| 	struct clkdm_dep *cd; | ||||
| 
 | ||||
| 	if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||||
| 		pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||||
| 		       clkdm1->name, clkdm2->name, __func__); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!clkdm1 || !clkdm2) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| @ -500,6 +512,12 @@ int clkdm_read_wkdep(struct clockdomain *clkdm1, struct clockdomain *clkdm2) | ||||
| 	if (!clkdm1 || !clkdm2) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| 	if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||||
| 		pr_err("clockdomain: %s/%s: %s: not yet implemented\n", | ||||
| 		       clkdm1->name, clkdm2->name, __func__); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| 
 | ||||
| 	cd = _clkdm_deps_lookup(clkdm2, clkdm1->wkdep_srcs); | ||||
| 	if (IS_ERR(cd)) { | ||||
| 		pr_debug("clockdomain: hardware cannot set/clear wake up of " | ||||
| @ -527,6 +545,12 @@ int clkdm_clear_all_wkdeps(struct clockdomain *clkdm) | ||||
| 	struct clkdm_dep *cd; | ||||
| 	u32 mask = 0; | ||||
| 
 | ||||
| 	if (!cpu_is_omap24xx() && !cpu_is_omap34xx()) { | ||||
| 		pr_err("clockdomain: %s: %s: not yet implemented\n", | ||||
| 		       clkdm->name, __func__); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!clkdm) | ||||
| 		return -EINVAL; | ||||
| 
 | ||||
| @ -830,8 +854,7 @@ void omap2_clkdm_allow_idle(struct clockdomain *clkdm) | ||||
| 	 * dependency code and data for OMAP4. | ||||
| 	 */ | ||||
| 	if (cpu_is_omap44xx()) { | ||||
| 		WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " | ||||
| 			  "support is not yet implemented\n"); | ||||
| 		pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); | ||||
| 	} else { | ||||
| 		if (atomic_read(&clkdm->usecount) > 0) | ||||
| 			_clkdm_add_autodeps(clkdm); | ||||
| @ -872,8 +895,7 @@ void omap2_clkdm_deny_idle(struct clockdomain *clkdm) | ||||
| 	 * dependency code and data for OMAP4. | ||||
| 	 */ | ||||
| 	if (cpu_is_omap44xx()) { | ||||
| 		WARN_ONCE(1, "clockdomain: OMAP4 wakeup/sleep dependency " | ||||
| 			  "support is not yet implemented\n"); | ||||
| 		pr_err("clockdomain: %s: OMAP4 wakeup/sleep dependency support: not yet implemented\n", clkdm->name); | ||||
| 	} else { | ||||
| 		if (atomic_read(&clkdm->usecount) > 0) | ||||
| 			_clkdm_del_autodeps(clkdm); | ||||
|  | ||||
| @ -30,8 +30,6 @@ | ||||
| #include "cm1_44xx.h" | ||||
| #include "cm2_44xx.h" | ||||
| 
 | ||||
| #include "cm1_44xx.h" | ||||
| #include "cm2_44xx.h" | ||||
| #include "cm-regbits-44xx.h" | ||||
| #include "prm44xx.h" | ||||
| #include "prcm44xx.h" | ||||
|  | ||||
| @ -264,7 +264,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) | ||||
| 	if (IS_ERR(od)) { | ||||
| 		pr_err("%s: Cant build omap_device for %s:%s.\n", | ||||
| 			__func__, name, oh->name); | ||||
| 		return IS_ERR(od); | ||||
| 		return PTR_ERR(od); | ||||
| 	} | ||||
| 
 | ||||
| 	mem = platform_get_resource(&od->pdev, IORESOURCE_MEM, 0); | ||||
|  | ||||
| @ -38,20 +38,6 @@ | ||||
|  */ | ||||
| 
 | ||||
| #ifdef MULTI_OMAP2 | ||||
| 
 | ||||
| /* | ||||
|  * We use __glue to avoid errors with multiple definitions of | ||||
|  * .globl omap_irq_base as it's included from entry-armv.S but not | ||||
|  * from entry-common.S. | ||||
|  */ | ||||
| #ifdef __glue | ||||
| 		.pushsection .data | ||||
| 		.globl	omap_irq_base
 | ||||
| omap_irq_base: | ||||
| 		.word	0
 | ||||
| 		.popsection | ||||
| #endif | ||||
| 
 | ||||
| 		/* | ||||
| 		 * Configure the interrupt base on the first interrupt. | ||||
| 		 * See also omap_irq_base_init for setting omap_irq_base. | ||||
|  | ||||
| @ -314,14 +314,13 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data) | ||||
| 	return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); | ||||
| } | ||||
| 
 | ||||
| void __iomem *omap_irq_base; | ||||
| 
 | ||||
| /*
 | ||||
|  * Initialize asm_irq_base for entry-macro.S | ||||
|  */ | ||||
| static inline void omap_irq_base_init(void) | ||||
| { | ||||
| 	extern void __iomem *omap_irq_base; | ||||
| 
 | ||||
| #ifdef MULTI_OMAP2 | ||||
| 	if (cpu_is_omap24xx()) | ||||
| 		omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE); | ||||
| 	else if (cpu_is_omap34xx()) | ||||
| @ -330,7 +329,6 @@ static inline void omap_irq_base_init(void) | ||||
| 		omap_irq_base = OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE); | ||||
| 	else | ||||
| 		pr_err("Could not initialize omap_irq_base\n"); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| void __init omap2_init_common_infrastructure(void) | ||||
|  | ||||
| @ -160,7 +160,7 @@ static int __init _omap_mux_get_by_name(struct omap_mux_partition *partition, | ||||
| 	struct omap_mux *mux = NULL; | ||||
| 	struct omap_mux_entry *e; | ||||
| 	const char *mode_name; | ||||
| 	int found = 0, found_mode, mode0_len = 0; | ||||
| 	int found = 0, found_mode = 0, mode0_len = 0; | ||||
| 	struct list_head *muxmodes = &partition->muxmodes; | ||||
| 
 | ||||
| 	mode_name = strchr(muxname, '.'); | ||||
|  | ||||
| @ -134,7 +134,7 @@ static void omap2_enter_full_retention(void) | ||||
| 
 | ||||
| 	/* Block console output in case it is on one of the OMAP UARTs */ | ||||
| 	if (!is_suspending()) | ||||
| 		if (try_acquire_console_sem()) | ||||
| 		if (!console_trylock()) | ||||
| 			goto no_sleep; | ||||
| 
 | ||||
| 	omap_uart_prepare_idle(0); | ||||
| @ -151,7 +151,7 @@ static void omap2_enter_full_retention(void) | ||||
| 	omap_uart_resume_idle(0); | ||||
| 
 | ||||
| 	if (!is_suspending()) | ||||
| 		release_console_sem(); | ||||
| 		console_unlock(); | ||||
| 
 | ||||
| no_sleep: | ||||
| 	if (omap2_pm_debug) { | ||||
|  | ||||
| @ -398,7 +398,7 @@ void omap_sram_idle(void) | ||||
| 	if (!is_suspending()) | ||||
| 		if (per_next_state < PWRDM_POWER_ON || | ||||
| 		    core_next_state < PWRDM_POWER_ON) | ||||
| 			if (try_acquire_console_sem()) | ||||
| 			if (!console_trylock()) | ||||
| 				goto console_still_active; | ||||
| 
 | ||||
| 	/* PER */ | ||||
| @ -481,7 +481,7 @@ void omap_sram_idle(void) | ||||
| 	} | ||||
| 
 | ||||
| 	if (!is_suspending()) | ||||
| 		release_console_sem(); | ||||
| 		console_unlock(); | ||||
| 
 | ||||
| console_still_active: | ||||
| 	/* Disable IO-PAD and IO-CHAIN wakeup */ | ||||
|  | ||||
| @ -19,7 +19,6 @@ | ||||
| #include <plat/prcm.h> | ||||
| 
 | ||||
| #include "powerdomain.h" | ||||
| #include "prm-regbits-34xx.h" | ||||
| #include "prm.h" | ||||
| #include "prm-regbits-24xx.h" | ||||
| #include "prm-regbits-34xx.h" | ||||
|  | ||||
| @ -812,7 +812,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | ||||
| 
 | ||||
| 	oh->dev_attr = uart; | ||||
| 
 | ||||
| 	acquire_console_sem(); /* in case the earlycon is on the UART */ | ||||
| 	console_lock(); /* in case the earlycon is on the UART */ | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Because of early UART probing, UART did not get idled | ||||
| @ -838,7 +838,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | ||||
| 	omap_uart_block_sleep(uart); | ||||
| 	uart->timeout = DEFAULT_TIMEOUT; | ||||
| 
 | ||||
| 	release_console_sem(); | ||||
| 	console_unlock(); | ||||
| 
 | ||||
| 	if ((cpu_is_omap34xx() && uart->padconf) || | ||||
| 	    (uart->wk_en && uart->wk_mask)) { | ||||
|  | ||||
| @ -42,6 +42,8 @@ | ||||
| 
 | ||||
| #include "timer-gp.h" | ||||
| 
 | ||||
| #include <plat/common.h> | ||||
| 
 | ||||
| /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */ | ||||
| #define MAX_GPTIMER_ID		12 | ||||
| 
 | ||||
| @ -176,10 +178,14 @@ static void __init omap2_gp_clockevent_init(void) | ||||
| /* 
 | ||||
|  * When 32k-timer is enabled, don't use GPTimer for clocksource | ||||
|  * instead, just leave default clocksource which uses the 32k | ||||
|  * sync counter.  See clocksource setup in see plat-omap/common.c.  | ||||
|  * sync counter.  See clocksource setup in plat-omap/counter_32k.c | ||||
|  */ | ||||
| 
 | ||||
| static inline void __init omap2_gp_clocksource_init(void) {} | ||||
| static void __init omap2_gp_clocksource_init(void) | ||||
| { | ||||
| 	omap_init_clocksource_32k(); | ||||
| } | ||||
| 
 | ||||
| #else | ||||
| /*
 | ||||
|  * clocksource | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user