Merge branch 'gic' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 into next/cleanup
* 'gic' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: irqchip: gic: Perform the gic_secondary_init() call via CPU notifier irqchip: gic: Call handle_bad_irq() directly arm: Move chained_irq_(enter|exit) to a generic file arm: Move the set_handle_irq and handle_arch_irq declarations to asm/irq.h + Linux 3.9-rc3 Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
		
						commit
						c2573077df
					
				| @ -13,9 +13,6 @@ Required parent device properties: | ||||
|                                   4 = active high level-sensitive | ||||
|                                   8 = active low level-sensitive | ||||
| 
 | ||||
| Optional parent device properties: | ||||
| - reg                    : contains the PRCMU mailbox address for the AB8500 i2c port | ||||
| 
 | ||||
| The AB8500 consists of a large and varied group of sub-devices: | ||||
| 
 | ||||
| Device                     IRQ Names              Supply Names   Description | ||||
| @ -86,9 +83,8 @@ Non-standard child device properties: | ||||
|    - stericsson,amic2-bias-vamic1           : Analoge Mic wishes to use a non-standard Vamic | ||||
|    - stericsson,earpeice-cmv                : Earpeice voltage (only: 950 | 1100 | 1270 | 1580) | ||||
| 
 | ||||
| ab8500@5 { | ||||
| ab8500 { | ||||
|          compatible = "stericsson,ab8500"; | ||||
|          reg = <5>; /* mailbox 5 is i2c */ | ||||
|          interrupts = <0 40 0x4>; | ||||
|          interrupt-controller; | ||||
|          #interrupt-cells = <2>; | ||||
|  | ||||
| @ -11,6 +11,9 @@ Required properties: | ||||
| 	- "nvidia,tegra20-uart" | ||||
| 	- "nxp,lpc3220-uart" | ||||
| 	- "ibm,qpace-nwp-serial" | ||||
| 	- "altr,16550-FIFO32" | ||||
| 	- "altr,16550-FIFO64" | ||||
| 	- "altr,16550-FIFO128" | ||||
| 	- "serial" if the port type is unknown. | ||||
| - reg : offset and length of the register set for the device. | ||||
| - interrupts : should contain uart interrupt. | ||||
|  | ||||
| @ -3,10 +3,26 @@ ALPS Touchpad Protocol | ||||
| 
 | ||||
| Introduction | ||||
| ------------ | ||||
| Currently the ALPS touchpad driver supports five protocol versions in use by | ||||
| ALPS touchpads, called versions 1, 2, 3, 4 and 5. | ||||
| 
 | ||||
| Currently the ALPS touchpad driver supports four protocol versions in use by | ||||
| ALPS touchpads, called versions 1, 2, 3, and 4. Information about the various | ||||
| protocol versions is contained in the following sections. | ||||
| Since roughly mid-2010 several new ALPS touchpads have been released and | ||||
| integrated into a variety of laptops and netbooks.  These new touchpads | ||||
| have enough behavior differences that the alps_model_data definition | ||||
| table, describing the properties of the different versions, is no longer | ||||
| adequate.  The design choices were to re-define the alps_model_data | ||||
| table, with the risk of regression testing existing devices, or isolate | ||||
| the new devices outside of the alps_model_data table.  The latter design | ||||
| choice was made.  The new touchpad signatures are named: "Rushmore", | ||||
| "Pinnacle", and "Dolphin", which you will see in the alps.c code. | ||||
| For the purposes of this document, this group of ALPS touchpads will | ||||
| generically be called "new ALPS touchpads". | ||||
| 
 | ||||
| We experimented with probing the ACPI interface _HID (Hardware ID)/_CID | ||||
| (Compatibility ID) definition as a way to uniquely identify the | ||||
| different ALPS variants but there did not appear to be a 1:1 mapping. | ||||
| In fact, it appeared to be an m:n mapping between the _HID and actual | ||||
| hardware type. | ||||
| 
 | ||||
| Detection | ||||
| --------- | ||||
| @ -20,9 +36,13 @@ If the E6 report is successful, the touchpad model is identified using the "E7 | ||||
| report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is | ||||
| matched against known models in the alps_model_data_array. | ||||
| 
 | ||||
| With protocol versions 3 and 4, the E7 report model signature is always | ||||
| 73-02-64. To differentiate between these versions, the response from the | ||||
| "Enter Command Mode" sequence must be inspected as described below. | ||||
| For older touchpads supporting protocol versions 3 and 4, the E7 report | ||||
| model signature is always 73-02-64. To differentiate between these | ||||
| versions, the response from the "Enter Command Mode" sequence must be | ||||
| inspected as described below. | ||||
| 
 | ||||
| The new ALPS touchpads have an E7 signature of 73-03-50 or 73-03-0A but | ||||
| seem to be better differentiated by the EC Command Mode response. | ||||
| 
 | ||||
| Command Mode | ||||
| ------------ | ||||
| @ -47,6 +67,14 @@ address of the register being read, and the third contains the value of the | ||||
| register. Registers are written by writing the value one nibble at a time | ||||
| using the same encoding used for addresses. | ||||
| 
 | ||||
| For the new ALPS touchpads, the EC command is used to enter command | ||||
| mode. The response in the new ALPS touchpads is significantly different, | ||||
| and more important in determining the behavior.  This code has been | ||||
| separated from the original alps_model_data table and put in the | ||||
| alps_identify function.  For example, there seem to be two hardware init | ||||
| sequences for the "Dolphin" touchpads as determined by the second byte | ||||
| of the EC response. | ||||
| 
 | ||||
| Packet Format | ||||
| ------------- | ||||
| 
 | ||||
| @ -187,3 +215,28 @@ There are several things worth noting here. | ||||
|     well. | ||||
| 
 | ||||
| So far no v4 devices with tracksticks have been encountered. | ||||
| 
 | ||||
| ALPS Absolute Mode - Protocol Version 5 | ||||
| --------------------------------------- | ||||
| This is basically Protocol Version 3 but with different logic for packet | ||||
| decode.  It uses the same alps_process_touchpad_packet_v3 call with a | ||||
| specialized decode_fields function pointer to correctly interpret the | ||||
| packets.  This appears to only be used by the Dolphin devices. | ||||
| 
 | ||||
| For single-touch, the 6-byte packet format is: | ||||
| 
 | ||||
|  byte 0:    1    1    0    0    1    0    0    0 | ||||
|  byte 1:    0   x6   x5   x4   x3   x2   x1   x0 | ||||
|  byte 2:    0   y6   y5   y4   y3   y2   y1   y0 | ||||
|  byte 3:    0    M    R    L    1    m    r    l | ||||
|  byte 4:   y10  y9   y8   y7  x10   x9   x8   x7 | ||||
|  byte 5:    0   z6   z5   z4   z3   z2   z1   z0 | ||||
| 
 | ||||
| For mt, the format is: | ||||
| 
 | ||||
|  byte 0:    1    1    1    n3   1   n2   n1   x24 | ||||
|  byte 1:    1   y7   y6    y5  y4   y3   y2    y1 | ||||
|  byte 2:    ?   x2   x1   y12 y11  y10   y9    y8 | ||||
|  byte 3:    0  x23  x22   x21 x20  x19  x18   x17 | ||||
|  byte 4:    0   x9   x8    x7  x6   x5   x4    x3 | ||||
|  byte 5:    0  x16  x15   x14 x13  x12  x11   x10 | ||||
|  | ||||
| @ -105,6 +105,83 @@ Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com> | ||||
|      Proto [2 bytes] | ||||
|      Raw protocol(IP, IPv6, etc) frame. | ||||
| 
 | ||||
|   3.3 Multiqueue tuntap interface: | ||||
| 
 | ||||
|   From version 3.8, Linux supports multiqueue tuntap which can uses multiple | ||||
|   file descriptors (queues) to parallelize packets sending or receiving. The | ||||
|   device allocation is the same as before, and if user wants to create multiple | ||||
|   queues, TUNSETIFF with the same device name must be called many times with | ||||
|   IFF_MULTI_QUEUE flag. | ||||
| 
 | ||||
|   char *dev should be the name of the device, queues is the number of queues to | ||||
|   be created, fds is used to store and return the file descriptors (queues) | ||||
|   created to the caller. Each file descriptor were served as the interface of a | ||||
|   queue which could be accessed by userspace. | ||||
| 
 | ||||
|   #include <linux/if.h> | ||||
|   #include <linux/if_tun.h> | ||||
| 
 | ||||
|   int tun_alloc_mq(char *dev, int queues, int *fds) | ||||
|   { | ||||
|       struct ifreq ifr; | ||||
|       int fd, err, i; | ||||
| 
 | ||||
|       if (!dev) | ||||
|           return -1; | ||||
| 
 | ||||
|       memset(&ifr, 0, sizeof(ifr)); | ||||
|       /* Flags: IFF_TUN   - TUN device (no Ethernet headers) | ||||
|        *        IFF_TAP   - TAP device | ||||
|        * | ||||
|        *        IFF_NO_PI - Do not provide packet information | ||||
|        *        IFF_MULTI_QUEUE - Create a queue of multiqueue device | ||||
|        */ | ||||
|       ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_MULTI_QUEUE; | ||||
|       strcpy(ifr.ifr_name, dev); | ||||
| 
 | ||||
|       for (i = 0; i < queues; i++) { | ||||
|           if ((fd = open("/dev/net/tun", O_RDWR)) < 0) | ||||
|              goto err; | ||||
|           err = ioctl(fd, TUNSETIFF, (void *)&ifr); | ||||
|           if (err) { | ||||
|              close(fd); | ||||
|              goto err; | ||||
|           } | ||||
|           fds[i] = fd; | ||||
|       } | ||||
| 
 | ||||
|       return 0; | ||||
|   err: | ||||
|       for (--i; i >= 0; i--) | ||||
|           close(fds[i]); | ||||
|       return err; | ||||
|   } | ||||
| 
 | ||||
|   A new ioctl(TUNSETQUEUE) were introduced to enable or disable a queue. When | ||||
|   calling it with IFF_DETACH_QUEUE flag, the queue were disabled. And when | ||||
|   calling it with IFF_ATTACH_QUEUE flag, the queue were enabled. The queue were | ||||
|   enabled by default after it was created through TUNSETIFF. | ||||
| 
 | ||||
|   fd is the file descriptor (queue) that we want to enable or disable, when | ||||
|   enable is true we enable it, otherwise we disable it | ||||
| 
 | ||||
|   #include <linux/if.h> | ||||
|   #include <linux/if_tun.h> | ||||
| 
 | ||||
|   int tun_set_queue(int fd, int enable) | ||||
|   { | ||||
|       struct ifreq ifr; | ||||
| 
 | ||||
|       memset(&ifr, 0, sizeof(ifr)); | ||||
| 
 | ||||
|       if (enable) | ||||
|          ifr.ifr_flags = IFF_ATTACH_QUEUE; | ||||
|       else | ||||
|          ifr.ifr_flags = IFF_DETACH_QUEUE; | ||||
| 
 | ||||
|       return ioctl(fd, TUNSETQUEUE, (void *)&ifr); | ||||
|   } | ||||
| 
 | ||||
| Universal TUN/TAP device driver Frequently Asked Question. | ||||
|     | ||||
| 1. What platforms are supported by TUN/TAP driver ? | ||||
|  | ||||
| @ -1873,7 +1873,7 @@ feature: | ||||
| 
 | ||||
| 	status\input  |     0      |     1      |    else    | | ||||
| 	--------------+------------+------------+------------+ | ||||
| 	not allocated |(do nothing)| alloc+swap |   EINVAL   | | ||||
| 	not allocated |(do nothing)| alloc+swap |(do nothing)| | ||||
| 	--------------+------------+------------+------------+ | ||||
| 	allocated     |    free    |    swap    |   clear    | | ||||
| 	--------------+------------+------------+------------+ | ||||
|  | ||||
							
								
								
									
										27
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								MAINTAINERS
									
									
									
									
									
								
							| @ -4005,6 +4005,22 @@ M:	Stanislaw Gruszka <stf_xl@wp.pl> | ||||
| S:	Maintained | ||||
| F:	drivers/usb/atm/ueagle-atm.c | ||||
| 
 | ||||
| INA209 HARDWARE MONITOR DRIVER | ||||
| M:	Guenter Roeck <linux@roeck-us.net> | ||||
| L:	lm-sensors@lm-sensors.org | ||||
| S:	Maintained | ||||
| F:	Documentation/hwmon/ina209 | ||||
| F:	Documentation/devicetree/bindings/i2c/ina209.txt | ||||
| F:	drivers/hwmon/ina209.c | ||||
| 
 | ||||
| INA2XX HARDWARE MONITOR DRIVER | ||||
| M:	Guenter Roeck <linux@roeck-us.net> | ||||
| L:	lm-sensors@lm-sensors.org | ||||
| S:	Maintained | ||||
| F:	Documentation/hwmon/ina2xx | ||||
| F:	drivers/hwmon/ina2xx.c | ||||
| F:	include/linux/platform_data/ina2xx.h | ||||
| 
 | ||||
| INDUSTRY PACK SUBSYSTEM (IPACK) | ||||
| M:	Samuel Iglesias Gonsalvez <siglesias@igalia.com> | ||||
| M:	Jens Taprogge <jens.taprogge@taprogge.org> | ||||
| @ -5098,6 +5114,15 @@ S:	Maintained | ||||
| F:	Documentation/hwmon/max6650 | ||||
| F:	drivers/hwmon/max6650.c | ||||
| 
 | ||||
| MAX6697 HARDWARE MONITOR DRIVER | ||||
| M:	Guenter Roeck <linux@roeck-us.net> | ||||
| L:	lm-sensors@lm-sensors.org | ||||
| S:	Maintained | ||||
| F:	Documentation/hwmon/max6697 | ||||
| F:	Documentation/devicetree/bindings/i2c/max6697.txt | ||||
| F:	drivers/hwmon/max6697.c | ||||
| F:	include/linux/platform_data/max6697.h | ||||
| 
 | ||||
| MAXIRADIO FM RADIO RECEIVER DRIVER | ||||
| M:	Hans Verkuil <hverkuil@xs4all.nl> | ||||
| L:	linux-media@vger.kernel.org | ||||
| @ -6412,6 +6437,8 @@ F:	Documentation/networking/LICENSE.qla3xxx | ||||
| F:	drivers/net/ethernet/qlogic/qla3xxx.* | ||||
| 
 | ||||
| QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER | ||||
| M:	Rajesh Borundia <rajesh.borundia@qlogic.com> | ||||
| M:	Shahed Shaikh <shahed.shaikh@qlogic.com> | ||||
| M:	Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> | ||||
| M:	Sony Chacko <sony.chacko@qlogic.com> | ||||
| M:	linux-driver@qlogic.com | ||||
|  | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| VERSION = 3 | ||||
| PATCHLEVEL = 9 | ||||
| SUBLEVEL = 0 | ||||
| EXTRAVERSION = -rc2 | ||||
| EXTRAVERSION = -rc3 | ||||
| NAME = Unicycling Gorilla | ||||
| 
 | ||||
| # *DOCUMENTATION*
 | ||||
|  | ||||
| @ -319,13 +319,6 @@ config ARCH_WANT_OLD_COMPAT_IPC | ||||
| 	select ARCH_WANT_COMPAT_IPC_PARSE_VERSION | ||||
| 	bool | ||||
| 
 | ||||
| config HAVE_VIRT_TO_BUS | ||||
| 	bool | ||||
| 	help | ||||
| 	  An architecture should select this if it implements the | ||||
| 	  deprecated interface virt_to_bus().  All new architectures | ||||
| 	  should probably not select this. | ||||
| 
 | ||||
| config HAVE_ARCH_SECCOMP_FILTER | ||||
| 	bool | ||||
| 	help | ||||
|  | ||||
| @ -9,7 +9,7 @@ config ALPHA | ||||
| 	select HAVE_PERF_EVENTS | ||||
| 	select HAVE_DMA_ATTRS | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select GENERIC_IRQ_PROBE | ||||
| 	select AUTO_IRQ_AFFINITY if SMP | ||||
| 	select GENERIC_IRQ_SHOW | ||||
|  | ||||
| @ -49,7 +49,7 @@ config ARM | ||||
| 	select HAVE_REGS_AND_STACK_ACCESS_API | ||||
| 	select HAVE_SYSCALL_TRACEPOINTS | ||||
| 	select HAVE_UID16 | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select KTIME_SCALAR | ||||
| 	select PERF_USE_VMALLOC | ||||
| 	select RTC_LIB | ||||
| @ -556,7 +556,6 @@ config ARCH_IXP4XX | ||||
| config ARCH_DOVE | ||||
| 	bool "Marvell Dove" | ||||
| 	select ARCH_REQUIRE_GPIOLIB | ||||
| 	select COMMON_CLK_DOVE | ||||
| 	select CPU_V7 | ||||
| 	select GENERIC_CLOCKEVENTS | ||||
| 	select MIGHT_HAVE_PCI | ||||
| @ -1658,13 +1657,16 @@ config LOCAL_TIMERS | ||||
| 	  accounting to be spread across the timer interval, preventing a | ||||
| 	  "thundering herd" at every timer tick. | ||||
| 
 | ||||
| # The GPIO number here must be sorted by descending number. In case of | ||||
| # a multiplatform kernel, we just want the highest value required by the | ||||
| # selected platforms. | ||||
| config ARCH_NR_GPIO | ||||
| 	int | ||||
| 	default 1024 if ARCH_SHMOBILE || ARCH_TEGRA | ||||
| 	default 355 if ARCH_U8500 | ||||
| 	default 264 if MACH_H4700 | ||||
| 	default 512 if SOC_OMAP5 | ||||
| 	default 355 if ARCH_U8500 | ||||
| 	default 288 if ARCH_VT8500 || ARCH_SUNXI | ||||
| 	default 264 if MACH_H4700 | ||||
| 	default 0 | ||||
| 	help | ||||
| 	  Maximum number of GPIOs in the system. | ||||
| @ -1888,8 +1890,9 @@ config XEN_DOM0 | ||||
| 
 | ||||
| config XEN | ||||
| 	bool "Xen guest support on ARM (EXPERIMENTAL)" | ||||
| 	depends on ARM && OF | ||||
| 	depends on ARM && AEABI && OF | ||||
| 	depends on CPU_V7 && !CPU_V6 | ||||
| 	depends on !GENERIC_ATOMIC64 | ||||
| 	help | ||||
| 	  Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. | ||||
| 
 | ||||
|  | ||||
| @ -492,7 +492,7 @@ config DEBUG_IMX_UART_PORT | ||||
| 						DEBUG_IMX31_UART || \ | ||||
| 						DEBUG_IMX35_UART || \ | ||||
| 						DEBUG_IMX51_UART || \ | ||||
| 						DEBUG_IMX50_IMX53_UART || \ | ||||
| 						DEBUG_IMX53_UART || \ | ||||
| 						DEBUG_IMX6Q_UART | ||||
| 	default 1 | ||||
| 	help | ||||
|  | ||||
| @ -115,4 +115,4 @@ i: | ||||
| 	$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
 | ||||
| 	$(obj)/Image System.map "$(INSTALL_PATH)" | ||||
| 
 | ||||
| subdir-	    := bootp compressed | ||||
| subdir-	    := bootp compressed dts | ||||
|  | ||||
| @ -64,5 +64,13 @@ | ||||
| 			status = "okay"; | ||||
| 			/* No CD or WP GPIOs */ | ||||
| 		}; | ||||
| 
 | ||||
| 		usb@d0050000 { | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 
 | ||||
| 		usb@d0051000 { | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| @ -31,7 +31,6 @@ | ||||
| 	mpic: interrupt-controller@d0020000 { | ||||
| 	      compatible = "marvell,mpic"; | ||||
| 	      #interrupt-cells = <1>; | ||||
| 	      #address-cells = <1>; | ||||
| 	      #size-cells = <1>; | ||||
| 	      interrupt-controller; | ||||
| 	}; | ||||
| @ -54,7 +53,7 @@ | ||||
| 				reg = <0xd0012000 0x100>; | ||||
| 				reg-shift = <2>; | ||||
| 				interrupts = <41>; | ||||
| 				reg-io-width = <4>; | ||||
| 				reg-io-width = <1>; | ||||
| 				status = "disabled"; | ||||
| 		}; | ||||
| 		serial@d0012100 { | ||||
| @ -62,7 +61,7 @@ | ||||
| 				reg = <0xd0012100 0x100>; | ||||
| 				reg-shift = <2>; | ||||
| 				interrupts = <42>; | ||||
| 				reg-io-width = <4>; | ||||
| 				reg-io-width = <1>; | ||||
| 				status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -46,7 +46,7 @@ | ||||
| 				reg = <0xd0012200 0x100>; | ||||
| 				reg-shift = <2>; | ||||
| 				interrupts = <43>; | ||||
| 				reg-io-width = <4>; | ||||
| 				reg-io-width = <1>; | ||||
| 				status = "disabled"; | ||||
| 		}; | ||||
| 		serial@d0012300 { | ||||
| @ -54,7 +54,7 @@ | ||||
| 				reg = <0xd0012300 0x100>; | ||||
| 				reg-shift = <2>; | ||||
| 				interrupts = <44>; | ||||
| 				reg-io-width = <4>; | ||||
| 				reg-io-width = <1>; | ||||
| 				status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -105,7 +105,7 @@ | ||||
| 			compatible = "fixed-clock"; | ||||
| 			reg = <1>; | ||||
| 			#clock-cells = <0>; | ||||
| 			clock-frequency = <150000000>; | ||||
| 			clock-frequency = <250000000>; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| @ -319,9 +319,8 @@ | ||||
| 				}; | ||||
| 			}; | ||||
| 
 | ||||
| 			ab8500@5 { | ||||
| 			ab8500 { | ||||
| 				compatible = "stericsson,ab8500"; | ||||
| 				reg = <5>; /* mailbox 5 is i2c */ | ||||
| 				interrupt-parent = <&intc>; | ||||
| 				interrupts = <0 40 0x4>; | ||||
| 				interrupt-controller; | ||||
|  | ||||
| @ -197,6 +197,11 @@ | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| 		rtc@d8500 { | ||||
| 			compatible = "marvell,orion-rtc"; | ||||
| 			reg = <0xd8500 0x20>; | ||||
| 		}; | ||||
| 
 | ||||
| 		crypto: crypto@30000 { | ||||
| 			compatible = "marvell,orion-crypto"; | ||||
| 			reg = <0x30000 0x10000>, | ||||
|  | ||||
| @ -221,7 +221,7 @@ | ||||
| 				}; | ||||
| 			}; | ||||
| 
 | ||||
| 			ab8500@5 { | ||||
| 			ab8500 { | ||||
| 				ab8500-regulators { | ||||
| 					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { | ||||
| 						regulator-name = "V-DISPLAY"; | ||||
|  | ||||
| @ -158,7 +158,7 @@ | ||||
| 				}; | ||||
| 			}; | ||||
| 
 | ||||
| 			ab8500@5 { | ||||
| 			ab8500 { | ||||
| 				ab8500-regulators { | ||||
| 					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { | ||||
| 						regulator-name = "V-DISPLAY"; | ||||
|  | ||||
| @ -42,10 +42,9 @@ | ||||
| 			fsl,pins = <689 0x10000		/* DISP1_DRDY	*/ | ||||
| 				    482 0x10000		/* DISP1_HSYNC	*/ | ||||
| 				    489 0x10000		/* DISP1_VSYNC	*/ | ||||
| 				    684 0x10000		/* DISP1_DAT_0	*/ | ||||
| 				    515 0x10000		/* DISP1_DAT_22	*/ | ||||
| 				    523 0x10000		/* DISP1_DAT_23	*/ | ||||
| 				    543 0x10000		/* DISP1_DAT_21	*/ | ||||
| 				    545 0x10000		/* DISP1_DAT_21	*/ | ||||
| 				    553 0x10000		/* DISP1_DAT_20	*/ | ||||
| 				    558 0x10000		/* DISP1_DAT_19	*/ | ||||
| 				    564 0x10000		/* DISP1_DAT_18	*/ | ||||
|  | ||||
| @ -42,12 +42,10 @@ | ||||
| 
 | ||||
| 	ocp@f1000000 { | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <166666667>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12100 { | ||||
| 			clock-frequency = <166666667>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
| @ -50,7 +50,6 @@ | ||||
| 			}; | ||||
| 		}; | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
| @ -37,7 +37,6 @@ | ||||
| 			}; | ||||
| 		}; | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -38,7 +38,6 @@ | ||||
| 			}; | ||||
| 		}; | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -73,7 +73,6 @@ | ||||
| 			}; | ||||
| 		}; | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -51,7 +51,6 @@ | ||||
| 			}; | ||||
| 		}; | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -78,7 +78,6 @@ | ||||
| 			}; | ||||
| 		}; | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -115,7 +115,6 @@ | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -34,7 +34,6 @@ | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -13,7 +13,6 @@ | ||||
| 
 | ||||
| 	ocp@f1000000 { | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <166666667>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
| @ -13,7 +13,6 @@ | ||||
| 
 | ||||
| 	ocp@f1000000 { | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
| @ -90,7 +90,6 @@ | ||||
|                 }; | ||||
| 
 | ||||
|                 serial@12000 { | ||||
|                         clock-frequency = <200000000>; | ||||
|                         status = "ok"; | ||||
|                 }; | ||||
| 
 | ||||
|  | ||||
| @ -23,7 +23,6 @@ | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <166666667>; | ||||
| 			status = "okay"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -117,7 +117,6 @@ | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -18,12 +18,10 @@ | ||||
| 
 | ||||
| 	ocp@f1000000 { | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12100 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -108,7 +108,6 @@ | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12000 { | ||||
| 			clock-frequency = <200000000>; | ||||
| 			status = "ok"; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -38,6 +38,7 @@ | ||||
| 			interrupt-controller; | ||||
| 			#interrupt-cells = <2>; | ||||
| 			interrupts = <35>, <36>, <37>, <38>; | ||||
| 			clocks = <&gate_clk 7>; | ||||
| 		}; | ||||
| 
 | ||||
| 		gpio1: gpio@10140 { | ||||
| @ -49,6 +50,7 @@ | ||||
| 			interrupt-controller; | ||||
| 			#interrupt-cells = <2>; | ||||
| 			interrupts = <39>, <40>, <41>; | ||||
| 			clocks = <&gate_clk 7>; | ||||
| 		}; | ||||
| 
 | ||||
| 		serial@12000 { | ||||
| @ -57,7 +59,6 @@ | ||||
| 			reg-shift = <2>; | ||||
| 			interrupts = <33>; | ||||
| 			clocks = <&gate_clk 7>; | ||||
| 			/* set clock-frequency in board dts */ | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| @ -67,7 +68,6 @@ | ||||
| 			reg-shift = <2>; | ||||
| 			interrupts = <34>; | ||||
| 			clocks = <&gate_clk 7>; | ||||
| 			/* set clock-frequency in board dts */ | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
| 
 | ||||
| @ -75,6 +75,7 @@ | ||||
| 			compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc"; | ||||
| 			reg = <0x10300 0x20>; | ||||
| 			interrupts = <53>; | ||||
| 			clocks = <&gate_clk 7>; | ||||
| 		}; | ||||
| 
 | ||||
| 		spi@10600 { | ||||
|  | ||||
| @ -11,7 +11,7 @@ | ||||
| 
 | ||||
| / { | ||||
| 	model = "LaCie Ethernet Disk mini V2"; | ||||
| 	compatible = "lacie,ethernet-disk-mini-v2", "marvell-orion5x-88f5182", "marvell,orion5x"; | ||||
| 	compatible = "lacie,ethernet-disk-mini-v2", "marvell,orion5x-88f5182", "marvell,orion5x"; | ||||
| 
 | ||||
| 	memory { | ||||
| 		reg = <0x00000000 0x4000000>; /* 64 MB */ | ||||
|  | ||||
| @ -298,7 +298,7 @@ | ||||
| 				}; | ||||
| 			}; | ||||
| 
 | ||||
| 			ab8500@5 { | ||||
| 			ab8500 { | ||||
| 				ab8500-regulators { | ||||
| 					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { | ||||
| 						regulator-name = "V-DISPLAY"; | ||||
|  | ||||
| @ -75,6 +75,9 @@ | ||||
| 				compatible = "arm,pl330", "arm,primecell"; | ||||
| 				reg = <0xffe01000 0x1000>; | ||||
| 				interrupts = <0 180 4>; | ||||
| 				#dma-cells = <1>; | ||||
| 				#dma-channels = <8>; | ||||
| 				#dma-requests = <32>; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
|  | ||||
| @ -118,6 +118,7 @@ | ||||
| 		compatible = "arm,cortex-a9-twd-timer"; | ||||
| 		reg = <0x50040600 0x20>; | ||||
| 		interrupts = <1 13 0x304>; | ||||
| 		clocks = <&tegra_car 132>; | ||||
| 	}; | ||||
| 
 | ||||
| 	intc: interrupt-controller { | ||||
|  | ||||
| @ -119,6 +119,7 @@ | ||||
| 		compatible = "arm,cortex-a9-twd-timer"; | ||||
| 		reg = <0x50040600 0x20>; | ||||
| 		interrupts = <1 13 0xf04>; | ||||
| 		clocks = <&tegra_car 214>; | ||||
| 	}; | ||||
| 
 | ||||
| 	intc: interrupt-controller { | ||||
|  | ||||
| @ -116,6 +116,7 @@ CONFIG_SND_SOC=y | ||||
| CONFIG_SND_MXS_SOC=y | ||||
| CONFIG_SND_SOC_MXS_SGTL5000=y | ||||
| CONFIG_USB=y | ||||
| CONFIG_USB_EHCI_HCD=y | ||||
| CONFIG_USB_CHIPIDEA=y | ||||
| CONFIG_USB_CHIPIDEA_HOST=y | ||||
| CONFIG_USB_STORAGE=y | ||||
|  | ||||
| @ -126,6 +126,8 @@ CONFIG_INPUT_MISC=y | ||||
| CONFIG_INPUT_TWL4030_PWRBUTTON=y | ||||
| CONFIG_VT_HW_CONSOLE_BINDING=y | ||||
| # CONFIG_LEGACY_PTYS is not set | ||||
| CONFIG_SERIAL_8250=y | ||||
| CONFIG_SERIAL_8250_CONSOLE=y | ||||
| CONFIG_SERIAL_8250_NR_UARTS=32 | ||||
| CONFIG_SERIAL_8250_EXTENDED=y | ||||
| CONFIG_SERIAL_8250_MANY_PORTS=y | ||||
|  | ||||
| @ -30,6 +30,11 @@ extern void asm_do_IRQ(unsigned int, struct pt_regs *); | ||||
| void handle_IRQ(unsigned int, struct pt_regs *); | ||||
| void init_IRQ(void); | ||||
| 
 | ||||
| #ifdef CONFIG_MULTI_IRQ_HANDLER | ||||
| extern void (*handle_arch_irq)(struct pt_regs *); | ||||
| extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -20,11 +20,6 @@ struct seq_file; | ||||
| extern void init_FIQ(int); | ||||
| extern int show_fiq_list(struct seq_file *, int); | ||||
| 
 | ||||
| #ifdef CONFIG_MULTI_IRQ_HANDLER | ||||
| extern void (*handle_arch_irq)(struct pt_regs *); | ||||
| extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * This is for easy migration, but should be changed in the source | ||||
|  */ | ||||
| @ -35,35 +30,4 @@ do {							\ | ||||
| 	raw_spin_unlock(&desc->lock);			\ | ||||
| } while(0) | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| /*
 | ||||
|  * Entry/exit functions for chained handlers where the primary IRQ chip | ||||
|  * may implement either fasteoi or level-trigger flow control. | ||||
|  */ | ||||
| static inline void chained_irq_enter(struct irq_chip *chip, | ||||
| 				     struct irq_desc *desc) | ||||
| { | ||||
| 	/* FastEOI controllers require no action on entry. */ | ||||
| 	if (chip->irq_eoi) | ||||
| 		return; | ||||
| 
 | ||||
| 	if (chip->irq_mask_ack) { | ||||
| 		chip->irq_mask_ack(&desc->irq_data); | ||||
| 	} else { | ||||
| 		chip->irq_mask(&desc->irq_data); | ||||
| 		if (chip->irq_ack) | ||||
| 			chip->irq_ack(&desc->irq_data); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| static inline void chained_irq_exit(struct irq_chip *chip, | ||||
| 				    struct irq_desc *desc) | ||||
| { | ||||
| 	if (chip->irq_eoi) | ||||
| 		chip->irq_eoi(&desc->irq_data); | ||||
| 	else | ||||
| 		chip->irq_unmask(&desc->irq_data); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -2,6 +2,7 @@ | ||||
| #define _ASM_ARM_XEN_EVENTS_H | ||||
| 
 | ||||
| #include <asm/ptrace.h> | ||||
| #include <asm/atomic.h> | ||||
| 
 | ||||
| enum ipi_vector { | ||||
| 	XEN_PLACEHOLDER_VECTOR, | ||||
| @ -15,26 +16,8 @@ static inline int xen_irqs_disabled(struct pt_regs *regs) | ||||
| 	return raw_irqs_disabled_flags(regs->ARM_cpsr); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * We cannot use xchg because it does not support 8-byte | ||||
|  * values. However it is safe to use {ldr,dtd}exd directly because all | ||||
|  * platforms which Xen can run on support those instructions. | ||||
|  */ | ||||
| static inline xen_ulong_t xchg_xen_ulong(xen_ulong_t *ptr, xen_ulong_t val) | ||||
| { | ||||
| 	xen_ulong_t oldval; | ||||
| 	unsigned int tmp; | ||||
| 
 | ||||
| 	wmb(); | ||||
| 	asm volatile("@ xchg_xen_ulong\n" | ||||
| 		"1:     ldrexd  %0, %H0, [%3]\n" | ||||
| 		"       strexd  %1, %2, %H2, [%3]\n" | ||||
| 		"       teq     %1, #0\n" | ||||
| 		"       bne     1b" | ||||
| 		: "=&r" (oldval), "=&r" (tmp) | ||||
| 		: "r" (val), "r" (ptr) | ||||
| 		: "memory", "cc"); | ||||
| 	return oldval; | ||||
| } | ||||
| #define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((ptr),	\ | ||||
| 							    atomic64_t,	\ | ||||
| 							    counter), (val)) | ||||
| 
 | ||||
| #endif /* _ASM_ARM_XEN_EVENTS_H */ | ||||
|  | ||||
| @ -176,6 +176,7 @@ static struct w1_gpio_platform_data w1_gpio_pdata = { | ||||
| 	/* If you choose to use a pin other than PB16 it needs to be 3.3V */ | ||||
| 	.pin		= AT91_PIN_PB16, | ||||
| 	.is_open_drain  = 1, | ||||
| 	.ext_pullup_enable_pin	= -EINVAL, | ||||
| }; | ||||
| 
 | ||||
| static struct platform_device w1_device = { | ||||
|  | ||||
| @ -188,6 +188,7 @@ static struct spi_board_info portuxg20_spi_devices[] = { | ||||
| static struct w1_gpio_platform_data w1_gpio_pdata = { | ||||
| 	.pin		= AT91_PIN_PA29, | ||||
| 	.is_open_drain	= 1, | ||||
| 	.ext_pullup_enable_pin	= -EINVAL, | ||||
| }; | ||||
| 
 | ||||
| static struct platform_device w1_device = { | ||||
|  | ||||
| @ -22,10 +22,9 @@ | ||||
| #include <linux/module.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/irqdomain.h> | ||||
| #include <linux/irqchip/chained_irq.h> | ||||
| #include <linux/of_address.h> | ||||
| 
 | ||||
| #include <asm/mach/irq.h> | ||||
| 
 | ||||
| #include <mach/hardware.h> | ||||
| #include <mach/at91_pio.h> | ||||
| 
 | ||||
|  | ||||
| @ -26,6 +26,7 @@ | ||||
| #include <linux/irqchip.h> | ||||
| #include <linux/of_address.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <linux/irqchip/chained_irq.h> | ||||
| 
 | ||||
| #include <asm/proc-fns.h> | ||||
| #include <asm/exception.h> | ||||
|  | ||||
| @ -20,7 +20,6 @@ | ||||
| #include <linux/jiffies.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -75,13 +74,6 @@ static DEFINE_SPINLOCK(boot_lock); | ||||
| 
 | ||||
| static void __cpuinit exynos_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * let the primary processor know we're out of the | ||||
| 	 * pen, then head off into the C entry point | ||||
|  | ||||
| @ -17,7 +17,6 @@ | ||||
| #include <linux/init.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/smp_scu.h> | ||||
| 
 | ||||
| @ -25,11 +24,6 @@ | ||||
| 
 | ||||
| extern void secondary_startup(void); | ||||
| 
 | ||||
| static void __cpuinit highbank_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) | ||||
| { | ||||
| 	highbank_set_cpu_jump(cpu, secondary_startup); | ||||
| @ -67,7 +61,6 @@ static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) | ||||
| struct smp_operations highbank_smp_ops __initdata = { | ||||
| 	.smp_init_cpus		= highbank_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= highbank_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= highbank_secondary_init, | ||||
| 	.smp_boot_secondary	= highbank_boot_secondary, | ||||
| #ifdef CONFIG_HOTPLUG_CPU | ||||
| 	.cpu_die		= highbank_cpu_die, | ||||
|  | ||||
| @ -172,7 +172,7 @@ static struct clk *clk[clk_max]; | ||||
| static struct clk_onecell_data clk_data; | ||||
| 
 | ||||
| static enum mx6q_clks const clks_init_on[] __initconst = { | ||||
| 	mmdc_ch0_axi, rom, | ||||
| 	mmdc_ch0_axi, rom, pll1_sys, | ||||
| }; | ||||
| 
 | ||||
| static struct clk_div_table clk_enet_ref_table[] = { | ||||
|  | ||||
| @ -26,16 +26,16 @@ ENDPROC(v7_secondary_startup) | ||||
| 
 | ||||
| #ifdef CONFIG_PM | ||||
| /* | ||||
|  * The following code is located into the .data section.  This is to | ||||
|  * allow phys_l2x0_saved_regs to be accessed with a relative load | ||||
|  * as we are running on physical address here. | ||||
|  * The following code must assume it is running from physical address | ||||
|  * where absolute virtual addresses to the data section have to be | ||||
|  * turned into relative ones. | ||||
|  */ | ||||
| 	.data | ||||
| 	.align | ||||
| 
 | ||||
| #ifdef CONFIG_CACHE_L2X0 | ||||
| 	.macro	pl310_resume
 | ||||
| 	ldr	r2, phys_l2x0_saved_regs | ||||
| 	adr	r0, l2x0_saved_regs_offset | ||||
| 	ldr	r2, [r0] | ||||
| 	add	r2, r2, r0 | ||||
| 	ldr	r0, [r2, #L2X0_R_PHY_BASE]	@ get physical base of l2x0
 | ||||
| 	ldr	r1, [r2, #L2X0_R_AUX_CTRL]	@ get aux_ctrl value
 | ||||
| 	str	r1, [r0, #L2X0_AUX_CTRL]	@ restore aux_ctrl
 | ||||
| @ -43,9 +43,9 @@ ENDPROC(v7_secondary_startup) | ||||
| 	str	r1, [r0, #L2X0_CTRL]		@ re-enable L2
 | ||||
| 	.endm | ||||
| 
 | ||||
| 	.globl	phys_l2x0_saved_regs
 | ||||
| phys_l2x0_saved_regs: | ||||
|         .long   0
 | ||||
| l2x0_saved_regs_offset: | ||||
| 	.word	l2x0_saved_regs - . | ||||
| 
 | ||||
| #else | ||||
| 	.macro	pl310_resume
 | ||||
| 	.endm | ||||
|  | ||||
| @ -12,7 +12,6 @@ | ||||
| 
 | ||||
| #include <linux/init.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <asm/page.h> | ||||
| #include <asm/smp_scu.h> | ||||
| #include <asm/mach/map.h> | ||||
| @ -52,16 +51,6 @@ void imx_scu_standby_enable(void) | ||||
| 	writel_relaxed(val, scu_base); | ||||
| } | ||||
| 
 | ||||
| static void __cpuinit imx_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| static int __cpuinit imx_boot_secondary(unsigned int cpu, struct task_struct *idle) | ||||
| { | ||||
| 	imx_set_cpu_jump(cpu, v7_secondary_startup); | ||||
| @ -96,7 +85,6 @@ static void __init imx_smp_prepare_cpus(unsigned int max_cpus) | ||||
| struct smp_operations  imx_smp_ops __initdata = { | ||||
| 	.smp_init_cpus		= imx_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= imx_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= imx_secondary_init, | ||||
| 	.smp_boot_secondary	= imx_boot_secondary, | ||||
| #ifdef CONFIG_HOTPLUG_CPU | ||||
| 	.cpu_die		= imx_cpu_die, | ||||
|  | ||||
| @ -22,8 +22,6 @@ | ||||
| #include "common.h" | ||||
| #include "hardware.h" | ||||
| 
 | ||||
| extern unsigned long phys_l2x0_saved_regs; | ||||
| 
 | ||||
| static int imx6q_suspend_finish(unsigned long val) | ||||
| { | ||||
| 	cpu_do_idle(); | ||||
| @ -57,18 +55,5 @@ static const struct platform_suspend_ops imx6q_pm_ops = { | ||||
| 
 | ||||
| void __init imx6q_pm_init(void) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * The l2x0 core code provides an infrastucture to save and restore | ||||
| 	 * l2x0 registers across suspend/resume cycle.  But because imx6q | ||||
| 	 * retains L2 content during suspend and needs to resume L2 before | ||||
| 	 * MMU is enabled, it can only utilize register saving support and | ||||
| 	 * have to take care of restoring on its own.  So we save physical | ||||
| 	 * address of the data structure used by l2x0 core to save registers, | ||||
| 	 * and later restore the necessary ones in imx6q resume entry. | ||||
| 	 */ | ||||
| #ifdef CONFIG_CACHE_L2X0 | ||||
| 	phys_l2x0_saved_regs = __pa(&l2x0_saved_regs); | ||||
| #endif | ||||
| 
 | ||||
| 	suspend_set_ops(&imx6q_pm_ops); | ||||
| } | ||||
|  | ||||
| @ -163,6 +163,7 @@ static struct platform_device vulcan_max6369 = { | ||||
| 
 | ||||
| static struct w1_gpio_platform_data vulcan_w1_gpio_pdata = { | ||||
| 	.pin			= 14, | ||||
| 	.ext_pullup_enable_pin	= -EINVAL, | ||||
| }; | ||||
| 
 | ||||
| static struct platform_device vulcan_w1_gpio = { | ||||
|  | ||||
| @ -41,16 +41,12 @@ static void __init kirkwood_legacy_clk_init(void) | ||||
| 
 | ||||
| 	struct device_node *np = of_find_compatible_node( | ||||
| 		NULL, NULL, "marvell,kirkwood-gating-clock"); | ||||
| 
 | ||||
| 	struct of_phandle_args clkspec; | ||||
| 	struct clk *clk; | ||||
| 
 | ||||
| 	clkspec.np = np; | ||||
| 	clkspec.args_count = 1; | ||||
| 
 | ||||
| 	clkspec.args[0] = CGC_BIT_GE0; | ||||
| 	orion_clkdev_add(NULL, "mv643xx_eth_port.0", | ||||
| 			 of_clk_get_from_provider(&clkspec)); | ||||
| 
 | ||||
| 	clkspec.args[0] = CGC_BIT_PEX0; | ||||
| 	orion_clkdev_add("0", "pcie", | ||||
| 			 of_clk_get_from_provider(&clkspec)); | ||||
| @ -59,9 +55,24 @@ static void __init kirkwood_legacy_clk_init(void) | ||||
| 	orion_clkdev_add("1", "pcie", | ||||
| 			 of_clk_get_from_provider(&clkspec)); | ||||
| 
 | ||||
| 	clkspec.args[0] = CGC_BIT_GE1; | ||||
| 	orion_clkdev_add(NULL, "mv643xx_eth_port.1", | ||||
| 	clkspec.args[0] = CGC_BIT_SDIO; | ||||
| 	orion_clkdev_add(NULL, "mvsdio", | ||||
| 			 of_clk_get_from_provider(&clkspec)); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * The ethernet interfaces forget the MAC address assigned by | ||||
| 	 * u-boot if the clocks are turned off. Until proper DT support | ||||
| 	 * is available we always enable them for now. | ||||
| 	 */ | ||||
| 	clkspec.args[0] = CGC_BIT_GE0; | ||||
| 	clk = of_clk_get_from_provider(&clkspec); | ||||
| 	orion_clkdev_add(NULL, "mv643xx_eth_port.0", clk); | ||||
| 	clk_prepare_enable(clk); | ||||
| 
 | ||||
| 	clkspec.args[0] = CGC_BIT_GE1; | ||||
| 	clk = of_clk_get_from_provider(&clkspec); | ||||
| 	orion_clkdev_add(NULL, "mv643xx_eth_port.1", clk); | ||||
| 	clk_prepare_enable(clk); | ||||
| } | ||||
| 
 | ||||
| static void __init kirkwood_of_clk_init(void) | ||||
|  | ||||
| @ -15,7 +15,6 @@ | ||||
| #include <linux/jiffies.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/cputype.h> | ||||
| @ -41,13 +40,6 @@ static inline int get_core_count(void) | ||||
| 
 | ||||
| static void __cpuinit msm_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * let the primary processor know we're out of the | ||||
| 	 * pen, then head off into the C entry point | ||||
|  | ||||
| @ -100,7 +100,7 @@ static struct irq_domain_ops icoll_irq_domain_ops = { | ||||
| 	.xlate = irq_domain_xlate_onecell, | ||||
| }; | ||||
| 
 | ||||
| void __init icoll_of_init(struct device_node *np, | ||||
| static void __init icoll_of_init(struct device_node *np, | ||||
| 			  struct device_node *interrupt_parent) | ||||
| { | ||||
| 	/*
 | ||||
|  | ||||
| @ -402,17 +402,17 @@ static void __init cfa10049_init(void) | ||||
| { | ||||
| 	enable_clk_enet_out(); | ||||
| 	update_fec_mac_prop(OUI_CRYSTALFONTZ); | ||||
| 
 | ||||
| 	mxsfb_pdata.mode_list = cfa10049_video_modes; | ||||
| 	mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); | ||||
| 	mxsfb_pdata.default_bpp = 32; | ||||
| 	mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; | ||||
| } | ||||
| 
 | ||||
| static void __init cfa10037_init(void) | ||||
| { | ||||
| 	enable_clk_enet_out(); | ||||
| 	update_fec_mac_prop(OUI_CRYSTALFONTZ); | ||||
| 
 | ||||
| 	mxsfb_pdata.mode_list = cfa10049_video_modes; | ||||
| 	mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); | ||||
| 	mxsfb_pdata.default_bpp = 32; | ||||
| 	mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; | ||||
| } | ||||
| 
 | ||||
| static void __init apf28_init(void) | ||||
|  | ||||
| @ -18,6 +18,7 @@ | ||||
| 
 | ||||
| #include <mach/mx23.h> | ||||
| #include <mach/mx28.h> | ||||
| #include <mach/common.h> | ||||
| 
 | ||||
| /*
 | ||||
|  * Define the MX23 memory map. | ||||
|  | ||||
| @ -19,6 +19,7 @@ | ||||
| #include <asm/processor.h>	/* for cpu_relax() */ | ||||
| 
 | ||||
| #include <mach/mxs.h> | ||||
| #include <mach/common.h> | ||||
| 
 | ||||
| #define OCOTP_WORD_OFFSET		0x20 | ||||
| #define OCOTP_WORD_COUNT		0x20 | ||||
|  | ||||
| @ -31,6 +31,8 @@ | ||||
| 
 | ||||
| #include <plat/i2c.h> | ||||
| 
 | ||||
| #include <mach/irqs.h> | ||||
| 
 | ||||
| #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) | ||||
| void omap7xx_map_io(void); | ||||
| #else | ||||
|  | ||||
| @ -311,9 +311,6 @@ config MACH_OMAP_ZOOM2 | ||||
| 	default y | ||||
| 	select OMAP_PACKAGE_CBB | ||||
| 	select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||||
| 	select SERIAL_8250 | ||||
| 	select SERIAL_8250_CONSOLE | ||||
| 	select SERIAL_CORE_CONSOLE | ||||
| 
 | ||||
| config MACH_OMAP_ZOOM3 | ||||
| 	bool "OMAP3630 Zoom3 board" | ||||
| @ -321,9 +318,6 @@ config MACH_OMAP_ZOOM3 | ||||
| 	default y | ||||
| 	select OMAP_PACKAGE_CBP | ||||
| 	select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||||
| 	select SERIAL_8250 | ||||
| 	select SERIAL_8250_CONSOLE | ||||
| 	select SERIAL_CORE_CONSOLE | ||||
| 
 | ||||
| config MACH_CM_T35 | ||||
| 	bool "CompuLab CM-T35/CM-T3730 modules" | ||||
|  | ||||
| @ -102,6 +102,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") | ||||
| 	.init_irq	= omap_intc_of_init, | ||||
| 	.handle_irq	= omap3_intc_handle_irq, | ||||
| 	.init_machine	= omap_generic_init, | ||||
| 	.init_late	= omap3_init_late, | ||||
| 	.init_time	= omap3_sync32k_timer_init, | ||||
| 	.dt_compat	= omap3_boards_compat, | ||||
| 	.restart	= omap3xxx_restart, | ||||
| @ -119,6 +120,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)") | ||||
| 	.init_irq	= omap_intc_of_init, | ||||
| 	.handle_irq	= omap3_intc_handle_irq, | ||||
| 	.init_machine	= omap_generic_init, | ||||
| 	.init_late	= omap3_init_late, | ||||
| 	.init_time	= omap3_secure_sync32k_timer_init, | ||||
| 	.dt_compat	= omap3_gp_boards_compat, | ||||
| 	.restart	= omap3xxx_restart, | ||||
|  | ||||
| @ -17,6 +17,7 @@ | ||||
| #include <linux/io.h> | ||||
| #include <linux/gpio.h> | ||||
| #include <linux/leds.h> | ||||
| #include <linux/usb/phy.h> | ||||
| #include <linux/usb/musb.h> | ||||
| #include <linux/platform_data/spi-omap2-mcspi.h> | ||||
| 
 | ||||
| @ -98,6 +99,7 @@ static void __init rx51_init(void) | ||||
| 	sdrc_params = nokia_get_sdram_timings(); | ||||
| 	omap_sdrc_init(sdrc_params, sdrc_params); | ||||
| 
 | ||||
| 	usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | ||||
| 	usb_musb_init(&musb_board_data); | ||||
| 	rx51_peripherals_init(); | ||||
| 
 | ||||
|  | ||||
| @ -108,7 +108,6 @@ void omap35xx_init_late(void); | ||||
| void omap3630_init_late(void); | ||||
| void am35xx_init_late(void); | ||||
| void ti81xx_init_late(void); | ||||
| void omap4430_init_late(void); | ||||
| int omap2_common_pm_late_init(void); | ||||
| 
 | ||||
| #if defined(CONFIG_SOC_OMAP2420) || defined(CONFIG_SOC_OMAP2430) | ||||
|  | ||||
| @ -1122,9 +1122,6 @@ int gpmc_calc_timings(struct gpmc_timings *gpmc_t, | ||||
| 	/* TODO: remove, see function definition */ | ||||
| 	gpmc_convert_ps_to_ns(gpmc_t); | ||||
| 
 | ||||
| 	/* Now the GPMC is initialised, unreserve the chip-selects */ | ||||
| 	gpmc_cs_map = 0; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| @ -1383,6 +1380,9 @@ static int gpmc_probe(struct platform_device *pdev) | ||||
| 	if (IS_ERR_VALUE(gpmc_setup_irq())) | ||||
| 		dev_warn(gpmc_dev, "gpmc_setup_irq failed\n"); | ||||
| 
 | ||||
| 	/* Now the GPMC is initialised, unreserve the chip-selects */ | ||||
| 	gpmc_cs_map = 0; | ||||
| 
 | ||||
| 	rc = gpmc_probe_dt(pdev); | ||||
| 	if (rc < 0) { | ||||
| 		clk_disable_unprepare(gpmc_l3_clk); | ||||
|  | ||||
| @ -211,8 +211,6 @@ static int __init _omap_mux_get_by_name(struct omap_mux_partition *partition, | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| 
 | ||||
| 	pr_err("%s: Could not find signal %s\n", __func__, muxname); | ||||
| 
 | ||||
| 	return -ENODEV; | ||||
| } | ||||
| 
 | ||||
| @ -234,6 +232,8 @@ int __init omap_mux_get_by_name(const char *muxname, | ||||
| 		return mux_mode; | ||||
| 	} | ||||
| 
 | ||||
| 	pr_err("%s: Could not find signal %s\n", __func__, muxname); | ||||
| 
 | ||||
| 	return -ENODEV; | ||||
| } | ||||
| 
 | ||||
| @ -739,8 +739,9 @@ static void __init omap_mux_dbg_create_entry( | ||||
| 	list_for_each_entry(e, &partition->muxmodes, node) { | ||||
| 		struct omap_mux *m = &e->mux; | ||||
| 
 | ||||
| 		(void)debugfs_create_file(m->muxnames[0], S_IWUSR, mux_dbg_dir, | ||||
| 					  m, &omap_mux_dbg_signal_fops); | ||||
| 		(void)debugfs_create_file(m->muxnames[0], S_IWUSR | S_IRUGO, | ||||
| 					  mux_dbg_dir, m, | ||||
| 					  &omap_mux_dbg_signal_fops); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -66,13 +66,6 @@ static void __cpuinit omap4_secondary_init(unsigned int cpu) | ||||
| 		omap_secure_dispatcher(OMAP4_PPA_CPU_ACTRL_SMP_INDEX, | ||||
| 							4, 0, 0, 0, 0, 0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Synchronise with the boot thread. | ||||
| 	 */ | ||||
|  | ||||
| @ -11,7 +11,6 @@ | ||||
| #include <linux/delay.h> | ||||
| #include <linux/of.h> | ||||
| #include <linux/of_address.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <asm/page.h> | ||||
| #include <asm/mach/map.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -48,13 +47,6 @@ void __init sirfsoc_map_scu(void) | ||||
| 
 | ||||
| static void __cpuinit sirfsoc_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * let the primary processor know we're out of the | ||||
| 	 * pen, then head off into the C entry point | ||||
|  | ||||
| @ -505,6 +505,7 @@ static struct w1_gpio_platform_data w1_gpio_platform_data = { | ||||
| 	.pin			= GPIO_ONE_WIRE, | ||||
| 	.is_open_drain		= 0, | ||||
| 	.enable_external_pullup	= w1_enable_external_pullup, | ||||
| 	.ext_pullup_enable_pin	= -EINVAL, | ||||
| }; | ||||
| 
 | ||||
| struct platform_device raumfeld_w1_gpio_device = { | ||||
|  | ||||
| @ -25,6 +25,7 @@ | ||||
| #include <linux/ioport.h> | ||||
| #include <linux/device.h> | ||||
| #include <linux/irqdomain.h> | ||||
| #include <linux/irqchip/chained_irq.h> | ||||
| 
 | ||||
| #include <asm/mach/irq.h> | ||||
| 
 | ||||
|  | ||||
| @ -23,7 +23,6 @@ | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/delay.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <mach/common.h> | ||||
| #include <mach/emev2.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -85,11 +84,6 @@ static int __maybe_unused emev2_cpu_kill(unsigned int cpu) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| static void __cpuinit emev2_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| static int __cpuinit emev2_boot_secondary(unsigned int cpu, struct task_struct *idle) | ||||
| { | ||||
| 	cpu = cpu_logical_map(cpu); | ||||
| @ -124,7 +118,6 @@ static void __init emev2_smp_init_cpus(void) | ||||
| struct smp_operations emev2_smp_ops __initdata = { | ||||
| 	.smp_init_cpus		= emev2_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= emev2_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= emev2_secondary_init, | ||||
| 	.smp_boot_secondary	= emev2_boot_secondary, | ||||
| #ifdef CONFIG_HOTPLUG_CPU | ||||
| 	.cpu_kill		= emev2_cpu_kill, | ||||
|  | ||||
| @ -23,7 +23,6 @@ | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/delay.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <mach/common.h> | ||||
| #include <mach/r8a7779.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -132,11 +131,6 @@ static int __maybe_unused r8a7779_cpu_kill(unsigned int cpu) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| static void __cpuinit r8a7779_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| static int __cpuinit r8a7779_boot_secondary(unsigned int cpu, struct task_struct *idle) | ||||
| { | ||||
| 	struct r8a7779_pm_ch *ch = NULL; | ||||
| @ -186,7 +180,6 @@ static void __init r8a7779_smp_init_cpus(void) | ||||
| struct smp_operations r8a7779_smp_ops  __initdata = { | ||||
| 	.smp_init_cpus		= r8a7779_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= r8a7779_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= r8a7779_secondary_init, | ||||
| 	.smp_boot_secondary	= r8a7779_boot_secondary, | ||||
| #ifdef CONFIG_HOTPLUG_CPU | ||||
| 	.cpu_kill		= r8a7779_cpu_kill, | ||||
|  | ||||
| @ -23,7 +23,6 @@ | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/delay.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <mach/common.h> | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -59,11 +58,6 @@ static unsigned int __init sh73a0_get_core_count(void) | ||||
| 	return scu_get_core_count(scu_base); | ||||
| } | ||||
| 
 | ||||
| static void __cpuinit sh73a0_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| static int __cpuinit sh73a0_boot_secondary(unsigned int cpu, struct task_struct *idle) | ||||
| { | ||||
| 	cpu = cpu_logical_map(cpu); | ||||
| @ -138,7 +132,6 @@ static void sh73a0_cpu_die(unsigned int cpu) | ||||
| struct smp_operations sh73a0_smp_ops __initdata = { | ||||
| 	.smp_init_cpus		= sh73a0_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= sh73a0_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= sh73a0_secondary_init, | ||||
| 	.smp_boot_secondary	= sh73a0_boot_secondary, | ||||
| #ifdef CONFIG_HOTPLUG_CPU | ||||
| 	.cpu_kill		= sh73a0_cpu_kill, | ||||
|  | ||||
| @ -22,7 +22,6 @@ | ||||
| #include <linux/io.h> | ||||
| #include <linux/of.h> | ||||
| #include <linux/of_address.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/smp_scu.h> | ||||
| @ -33,16 +32,6 @@ | ||||
| extern void __iomem *sys_manager_base_addr; | ||||
| extern void __iomem *rst_manager_base_addr; | ||||
| 
 | ||||
| static void __cpuinit socfpga_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| static int __cpuinit socfpga_boot_secondary(unsigned int cpu, struct task_struct *idle) | ||||
| { | ||||
| 	int trampoline_size = &secondary_trampoline_end - &secondary_trampoline; | ||||
| @ -109,7 +98,6 @@ static void socfpga_cpu_die(unsigned int cpu) | ||||
| struct smp_operations socfpga_smp_ops __initdata = { | ||||
| 	.smp_init_cpus		= socfpga_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= socfpga_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= socfpga_secondary_init, | ||||
| 	.smp_boot_secondary	= socfpga_boot_secondary, | ||||
| #ifdef CONFIG_HOTPLUG_CPU | ||||
| 	.cpu_die		= socfpga_cpu_die, | ||||
|  | ||||
| @ -15,7 +15,6 @@ | ||||
| #include <linux/jiffies.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/smp_scu.h> | ||||
| #include <mach/spear.h> | ||||
| @ -27,13 +26,6 @@ static void __iomem *scu_base = IOMEM(VA_SCU_BASE); | ||||
| 
 | ||||
| static void __cpuinit spear13xx_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * let the primary processor know we're out of the | ||||
| 	 * pen, then head off into the C entry point | ||||
|  | ||||
| @ -14,7 +14,7 @@ | ||||
| #define pr_fmt(fmt) "SPEAr3xx: " fmt | ||||
| 
 | ||||
| #include <linux/amba/pl022.h> | ||||
| #include <linux/amba/pl08x.h> | ||||
| #include <linux/amba/pl080.h> | ||||
| #include <linux/io.h> | ||||
| #include <plat/pl080.h> | ||||
| #include <mach/generic.h> | ||||
|  | ||||
| @ -18,7 +18,6 @@ | ||||
| #include <linux/jiffies.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| #include <linux/clk/tegra.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| @ -44,13 +43,6 @@ static cpumask_t tegra_cpu_init_mask; | ||||
| 
 | ||||
| static void __cpuinit tegra_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	cpumask_set_cpu(cpu, &tegra_cpu_init_mask); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -16,7 +16,6 @@ | ||||
| #include <linux/device.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -57,13 +56,6 @@ static DEFINE_SPINLOCK(boot_lock); | ||||
| 
 | ||||
| static void __cpuinit ux500_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * let the primary processor know we're out of the | ||||
| 	 * pen, then head off into the C entry point | ||||
|  | ||||
| @ -21,8 +21,6 @@ | ||||
| #include <linux/smp.h> | ||||
| #include <linux/of.h> | ||||
| 
 | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/psci.h> | ||||
| #include <asm/smp_plat.h> | ||||
| 
 | ||||
| @ -45,14 +43,8 @@ static int __cpuinit virt_boot_secondary(unsigned int cpu, | ||||
| 	return -ENODEV; | ||||
| } | ||||
| 
 | ||||
| static void __cpuinit virt_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	gic_secondary_init(0); | ||||
| } | ||||
| 
 | ||||
| struct smp_operations __initdata virt_smp_ops = { | ||||
| 	.smp_init_cpus		= virt_smp_init_cpus, | ||||
| 	.smp_prepare_cpus	= virt_smp_prepare_cpus, | ||||
| 	.smp_secondary_init	= virt_secondary_init, | ||||
| 	.smp_boot_secondary	= virt_boot_secondary, | ||||
| }; | ||||
|  | ||||
| @ -342,6 +342,7 @@ static int __init atomic_pool_init(void) | ||||
| { | ||||
| 	struct dma_pool *pool = &atomic_pool; | ||||
| 	pgprot_t prot = pgprot_dmacoherent(pgprot_kernel); | ||||
| 	gfp_t gfp = GFP_KERNEL | GFP_DMA; | ||||
| 	unsigned long nr_pages = pool->size >> PAGE_SHIFT; | ||||
| 	unsigned long *bitmap; | ||||
| 	struct page *page; | ||||
| @ -361,8 +362,8 @@ static int __init atomic_pool_init(void) | ||||
| 		ptr = __alloc_from_contiguous(NULL, pool->size, prot, &page, | ||||
| 					      atomic_pool_init); | ||||
| 	else | ||||
| 		ptr = __alloc_remap_buffer(NULL, pool->size, GFP_KERNEL, prot, | ||||
| 					   &page, atomic_pool_init); | ||||
| 		ptr = __alloc_remap_buffer(NULL, pool->size, gfp, prot, &page, | ||||
| 					   atomic_pool_init); | ||||
| 	if (ptr) { | ||||
| 		int i; | ||||
| 
 | ||||
|  | ||||
| @ -157,9 +157,12 @@ void __init orion_setup_cpu_mbus_target(const struct orion_addr_map_cfg *cfg, | ||||
| 		u32 size = readl(ddr_window_cpu_base + DDR_SIZE_CS_OFF(i)); | ||||
| 
 | ||||
| 		/*
 | ||||
| 		 * Chip select enabled? | ||||
| 		 * We only take care of entries for which the chip | ||||
| 		 * select is enabled, and that don't have high base | ||||
| 		 * address bits set (devices can only access the first | ||||
| 		 * 32 bits of the memory). | ||||
| 		 */ | ||||
| 		if (size & 1) { | ||||
| 		if ((size & 1) && !(base & 0xF)) { | ||||
| 			struct mbus_dram_window *w; | ||||
| 
 | ||||
| 			w = &orion_mbus_dram_info.cs[cs++]; | ||||
|  | ||||
| @ -16,6 +16,7 @@ | ||||
| #include <linux/kernel.h> | ||||
| #include <linux/interrupt.h> | ||||
| #include <linux/irq.h> | ||||
| #include <linux/irqchip/chained_irq.h> | ||||
| #include <linux/io.h> | ||||
| 
 | ||||
| #include <mach/map.h> | ||||
| @ -23,8 +24,6 @@ | ||||
| #include <plat/irq-vic-timer.h> | ||||
| #include <plat/regs-timer.h> | ||||
| 
 | ||||
| #include <asm/mach/irq.h> | ||||
| 
 | ||||
| static void s3c_irq_demux_vic_timer(unsigned int irq, struct irq_desc *desc) | ||||
| { | ||||
| 	struct irq_chip *chip = irq_get_chip(irq); | ||||
|  | ||||
| @ -14,6 +14,7 @@ | ||||
| #include <linux/kernel.h> | ||||
| #include <linux/interrupt.h> | ||||
| #include <linux/irq.h> | ||||
| #include <linux/irqchip/chained_irq.h> | ||||
| #include <linux/io.h> | ||||
| #include <linux/gpio.h> | ||||
| #include <linux/slab.h> | ||||
| @ -22,8 +23,6 @@ | ||||
| #include <plat/gpio-core.h> | ||||
| #include <plat/gpio-cfg.h> | ||||
| 
 | ||||
| #include <asm/mach/irq.h> | ||||
| 
 | ||||
| #define GPIO_BASE(chip)		((void __iomem *)((unsigned long)((chip)->base) & 0xFFFFF000u)) | ||||
| 
 | ||||
| #define CON_OFFSET		0x700 | ||||
|  | ||||
| @ -10,7 +10,7 @@ choice | ||||
| 
 | ||||
| config ARCH_SPEAR13XX | ||||
| 	bool "ST SPEAr13xx with Device Tree" | ||||
| 	select ARCH_HAVE_CPUFREQ | ||||
| 	select ARCH_HAS_CPUFREQ | ||||
| 	select ARM_GIC | ||||
| 	select CPU_V7 | ||||
| 	select GPIO_SPEAR_SPICS | ||||
|  | ||||
| @ -14,7 +14,6 @@ | ||||
| #include <linux/device.h> | ||||
| #include <linux/jiffies.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/irqchip/arm-gic.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/smp_plat.h> | ||||
| @ -36,13 +35,6 @@ static DEFINE_SPINLOCK(boot_lock); | ||||
| 
 | ||||
| void __cpuinit versatile_secondary_init(unsigned int cpu) | ||||
| { | ||||
| 	/*
 | ||||
| 	 * if any interrupts are already enabled for the primary | ||||
| 	 * core (e.g. timer irq), then they will not have been enabled | ||||
| 	 * for us: do so | ||||
| 	 */ | ||||
| 	gic_secondary_init(0); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * let the primary processor know we're out of the | ||||
| 	 * pen, then head off into the C entry point | ||||
|  | ||||
| @ -7,7 +7,7 @@ config AVR32 | ||||
| 	select HAVE_OPROFILE | ||||
| 	select HAVE_KPROBES | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select GENERIC_IRQ_PROBE | ||||
| 	select GENERIC_ATOMIC64 | ||||
| 	select HARDIRQS_SW_RESEND | ||||
|  | ||||
| @ -33,7 +33,7 @@ config BLACKFIN | ||||
| 	select ARCH_HAVE_CUSTOM_GPIO_H | ||||
| 	select ARCH_WANT_OPTIONAL_GPIOLIB | ||||
| 	select HAVE_UID16 | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select ARCH_WANT_IPC_PARSE_VERSION | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select GENERIC_ATOMIC64 | ||||
|  | ||||
| @ -43,7 +43,7 @@ config CRIS | ||||
| 	select GENERIC_ATOMIC64 | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select HAVE_UID16 | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select ARCH_WANT_IPC_PARSE_VERSION | ||||
| 	select GENERIC_IRQ_SHOW | ||||
| 	select GENERIC_IOMAP | ||||
|  | ||||
| @ -6,7 +6,7 @@ config FRV | ||||
| 	select HAVE_PERF_EVENTS | ||||
| 	select HAVE_UID16 | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select GENERIC_IRQ_SHOW | ||||
| 	select HAVE_DEBUG_BUGVERBOSE | ||||
| 	select ARCH_HAVE_NMI_SAFE_CMPXCHG | ||||
|  | ||||
| @ -5,7 +5,7 @@ config H8300 | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select GENERIC_ATOMIC64 | ||||
| 	select HAVE_UID16 | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select ARCH_WANT_IPC_PARSE_VERSION | ||||
| 	select GENERIC_IRQ_SHOW | ||||
| 	select GENERIC_CPU_DEVICES | ||||
|  | ||||
| @ -26,7 +26,7 @@ config IA64 | ||||
| 	select HAVE_MEMBLOCK | ||||
| 	select HAVE_MEMBLOCK_NODE_MAP | ||||
| 	select HAVE_VIRT_CPU_ACCOUNTING | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select ARCH_DISCARD_MEMBLOCK | ||||
| 	select GENERIC_IRQ_PROBE | ||||
| 	select GENERIC_PENDING_IRQ if SMP | ||||
|  | ||||
| @ -10,7 +10,7 @@ config M32R | ||||
| 	select ARCH_WANT_IPC_PARSE_VERSION | ||||
| 	select HAVE_DEBUG_BUGVERBOSE | ||||
| 	select HAVE_GENERIC_HARDIRQS | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select GENERIC_IRQ_PROBE | ||||
| 	select GENERIC_IRQ_SHOW | ||||
| 	select GENERIC_ATOMIC64 | ||||
|  | ||||
| @ -63,10 +63,10 @@ struct stat64 { | ||||
| 	long long	st_size; | ||||
| 	unsigned long	st_blksize; | ||||
| 
 | ||||
| #if defined(__BIG_ENDIAN) | ||||
| #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) | ||||
| 	unsigned long	__pad4;		/* future possible st_blocks high bits */ | ||||
| 	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */ | ||||
| #elif defined(__LITTLE_ENDIAN) | ||||
| #elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) | ||||
| 	unsigned long	st_blocks;	/* Number 512-byte blocks allocated. */ | ||||
| 	unsigned long	__pad4;		/* future possible st_blocks high bits */ | ||||
| #else | ||||
|  | ||||
| @ -8,7 +8,7 @@ config M68K | ||||
| 	select GENERIC_IRQ_SHOW | ||||
| 	select GENERIC_ATOMIC64 | ||||
| 	select HAVE_UID16 | ||||
| 	select HAVE_VIRT_TO_BUS | ||||
| 	select VIRT_TO_BUS | ||||
| 	select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS | ||||
| 	select GENERIC_CPU_DEVICES | ||||
| 	select GENERIC_STRNCPY_FROM_USER if MMU | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user