https://github.com/rntmancuso/linux-xlnx-prof

sort by:
Revision Author Date Message Commit Date
f4ff79d microblaze: Calculate kernel pad automatically The kernel needs to setup the first two tlbs with pad which is used for early page allocation which is used by mapin_ram() to allocate tables for lowmem memory before memory initialisation is done. Calculate pad directly from lowmem size. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 06 November 2013, 15:39:10 UTC
d879fd7 remoteproc: mb: Update driver to reflect the latest AMP configuration New driver is used for ARM to Microblaze AMP configuration. - Add support for loading Microblaze bootloader - Communication via gpios and with gpio interface usage - Create devicetree description Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:10 UTC
3c0c5dc remoteproc: mb: Fix error return path Do not call rproc_put() when rproc_alloc() failed. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:10 UTC
9dc6361 remoteproc: mb: Use devres group and simplify irq allocation Using devres group driver can be dramatically simplified where irq list can be simple removed. Also use devm_request_irq function instead of request_irq. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:10 UTC
fa1205e remoteproc: mb: Update driver copyrights Trivial. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:10 UTC
713807f remoteproc: Do not use moduleloader.h in the driver It is causing compilation failure for multi_v7_defconfig. Reported-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:10 UTC
e8e1b4e remoteproc: mb: Remove not used zynq_cpun_start extern Just clean up. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:09 UTC
e70f2c6 remoteproc: Do not use of_irq_count in xilinx drivers Driver resources are already filled and driver can use them. The reason is that of_irq_count() is not exported for modules in the mainline. The next patch which revert this patch which we have in our tree. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:09 UTC
c58297a gpio: xilinx: Use platform_driver Register driver as platform driver. Based on this change, probe function uses devm_ which clear incorrect kfree(chip) usage. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:09 UTC
f487c33 gpio: xilinx: Fix minor coding style issue. Trivial. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:09 UTC
3d6d91c gpio: xilinx: Fix type for irq_base irq_alloc_descs() returns negative numbers on error path. Use int type to capture it. Bug was introduced by this commit: "GPIO: xilinx: Add irq support to the driver" (sha1: 796ae5e3e4ae5f550e0ba01ade34604c83b08cfd) Reported-by: Kester Aernoudt <kestera@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:09 UTC
c22b2dc GPIO: xilinx: Do not use xgpiops but use only xgpio It is typical c&p error because these functions were taken from gpiops driver. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:09 UTC
a0c5402 GPIO: xilinx: Do not allocate interrupts for IPs without IRQ support Check if IP has IRQ connected. If not ignore IRQ allocation. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:08 UTC
0e52fa7 GPIO: xilinx: Add irq support to the driver Only rising edge is supported. Allocate irq chip per channel. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:08 UTC
c2137bd GPIO: xilinx: Fix kernel-doc mainline Fix kernel-doc format in the whole driver not to report any warning. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:08 UTC
8ad24c3 GPIO: xilinx: Use standard coding style for macros Trivial. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:08 UTC
61f79c8 GPIO: xilinx: Use BIT macro Use BIT macro from linux/bitops.h. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:08 UTC
ba08f30 GPIO: xilinx: Use __raw_readl/__raw_writel IO functions This driver can be used on Xilinx ARM Zynq platform where in_be32/out_be32 functions are not implemented. Use __raw_readl/__raw_writel functions which are implemented on Microblaze and PowerPC. For ARM readl/writel functions are used instead. The correct way how to implement this is to detect endians directly on IP. But for the gpio case without interrupt connected(it means without interrupt logic) there are just 2 registers data and tristate where auto detection can't be done. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:07 UTC
be8df6e GPIO: xilinx: Synchronization with mainline version Fix all issues which have been found in upstreaming this driver. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:07 UTC
f93e31a GPIO: xilinx: Simplify driver probe function Simplification is done by using OF helper function which increase readability of code and remove (if (var) var = be32_to_cpup;) assignment. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 October 2013, 15:20:07 UTC
c35c1bb lib: devres: Fix build breakage The ERR_PTR() and IS_ERR() macros used by the devm_ioremap_resource() function are defined in the linux/err.h header. On ARM this seems to be pulled in by one of the other headers but the build fails at least on OpenRISC. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 31 October 2013, 15:20:07 UTC
bf6ba60 lib: devres: Introduce devm_ioremap_resource() The devm_request_and_ioremap() function is very useful and helps avoid a whole lot of boilerplate. However, one issue that keeps popping up is its lack of a specific error code to determine which of the steps that it performs failed. Furthermore, while the function gives an example and suggests what error code to return on failure, a wide variety of error codes are used throughout the tree. In an attempt to fix these problems, this patch adds a new function that drivers can transition to. The devm_ioremap_resource() returns a pointer to the remapped I/O memory on success or an ERR_PTR() encoded error code on failure. Callers can check for failure using IS_ERR() and determine its cause by extracting the error code using PTR_ERR(). devm_request_and_ioremap() is implemented as a wrapper around the new API and return NULL on failure as before. This ensures that backwards compatibility is maintained until all users have been converted to the new API, at which point the old devm_request_and_ioremap() function should be removed. A semantic patch is included which can be used to convert from the old devm_request_and_ioremap() API to the new devm_ioremap_resource() API. Some non-trivial cases may require manual intervention, though. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Cc: Arnd Bergmann <arnd@arndb.de> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 31 October 2013, 15:20:07 UTC
4de9a4b arm: Move chained_irq_(enter|exit) to a generic file These functions have been introduced by commit 10a8c383 (irq: introduce entry and exit functions for chained handlers) in asm/mach/irq.h. This patch moves them to linux/irqchip/chained_irq.h so that generic irqchip drivers do not rely on architecture specific header files. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Tested-by: Marc Zyngier <marc.zyngier@arm.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rob Herring <rob.herring@calxeda.com> 31 October 2013, 15:20:07 UTC
7b57812 ARM: 7670/1: fix the memset fix Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations") attempted to fix a compliance issue with the memset return value. However the memset itself became broken by that patch for misaligned pointers. This fixes the above by branching over the entry code from the misaligned fixup code to avoid reloading the original pointer. Also, because the function entry alignment is wrong in the Thumb mode compilation, that fixup code is moved to the end. While at it, the entry instructions are slightly reworked to help dual issue pipelines. Signed-off-by: Nicolas Pitre <nico@linaro.org> Tested-by: Alexander Holler <holler@ahsoftware.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> 31 October 2013, 15:12:32 UTC
fd2c402 microblaze: Don't mark arch_kgdb_ops as const. Other architectures don't do it, and it conflicts with the extern'd definition in include/linux/kgdb.h. The patch fails checkpatch but it reflects current functions declaration and solved compilation error. Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com> CC: Michal Simek <monstr@monstr.eu> CC: linux-kernel@vger.kernel.org Signed-off-by: Michal Simek <michal.simek@xilinx.com> 28 October 2013, 17:53:33 UTC
7a65c6d zynq: DTS synchronization with device tree BSP All DTSes generated byt device tree BSP 14.7. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 18 October 2013, 17:47:29 UTC
53e8683 usb: xilinx: Add support for usb phy reset via gpio Some USB phys on zynq boards needs to be reset before usage. All boards are using reset through ps7_gpio but another gpio controller can be used as well. This patch adds support for gpio usb phy reset which should be decribed in DTS in the format: ps7_usb_0: ps7-usb@e0002000 { compatible = "xlnx,ps7-usb-1.00.a"; usb-reset = <&ps7_gpio_0 7 0>; ... } ; Signed-off-by: Michal Simek <michal.simek@xilinx.com> 18 October 2013, 12:21:16 UTC
114c227 Merge tag 'v3.8.11' into xlnx_3.8 This is the 3.8.11 stable release Signed-off-by: Michal Simek <michal.simek@xilinx.com> 27 September 2013, 05:47:48 UTC
7d2de31 xdevcfg: Automatic endian-swap and header removal Allows writing a raw .bit file directly to /dev/xdevcfg, without having to process it using bootgen -split. The change itself is really quite trivial, but the kernel implementation is complicated by the fact that userspace writes the bit-file in small chunks. These chunks may not be lined up on word boundaries, so it is not possible to endian-swap the last few bytes, until the next chunk arrives. Thus the addition of "residue_buf" to carry across the last couple of bytes between calls to write() method. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 26 September 2013, 05:59:49 UTC
72582d7 microblaze: Add linux.bin.ub target Currently the linux.bin target creates both linux.bin and linux.bin.ub. Add linux.bin.ub as separate target to generate linux.bin.ub. Signed-off-by: Jason Wu <huanyu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 September 2013, 11:10:04 UTC
2c347f3 apf: Remove unnecessary and wrong shutdown function The shutdown function is not needed, and it causes reboot to fail. Removing this function allows reboot to work correctly and the driver works correctly after reboot Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 12 September 2013, 07:38:40 UTC
30fbec6 apf: Fix for backward compatibility with Linux 3.8 Replace devm_ioremap_resource with devm_ioremap and other code Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 12 September 2013, 07:38:01 UTC
2841768 apf: Increase the number of buffers Increase the number of buffers from 32 to 256 Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:42 UTC
ed60f27 apf: Add cache flush invalidate support Add cache flush invalidate support for physically contiguous memories in the apf dma driver Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:40 UTC
4f71cad apf: Correct the order of struct elements Correct the order of some struct elements that got changed in an earlier patch Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:39 UTC
47b4446 apf: Remove more sparse warnings Removed more sparse warnings based on input from Michal Simek Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:38 UTC
36c1124 apf: Remove compile warnings Remove some compile/sparse warnings related to this series of patches Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:37 UTC
218d557 apf: Remove typedef of xlnk_args Remove typedef union {..} xlnk_args and replace with named union called xlnk_args, and fix sparse warnings related to these changes Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:35 UTC
1fd664c apf: Remove volatile and replace with ioread/iowrite Remove volatile attribute in declaration and modify usage of variable by calling ioread32 or iowrite32 instead of accessing the variable directly Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:34 UTC
9a654d8 apf: Replace xlnk_handle_t type with u32 Replace the xlnk_handle_t type with u32 Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:33 UTC
4169a0e apf: Cleanup of volatile usage Remove volatile attributes and modify all accesses to the affected variables to use DMA_IN or DMA_OUT macros, which in turn use ioread32 or iowrite32 Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:31 UTC
6f4c6e6 apf: Removed unused union Removed unused union xdma_args Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:30 UTC
044ce99 apf: Fix Kconfig entry Replace spaces by tabs and remove if ... and use depends on instead. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:29 UTC
9450bdf Minor cleanup of apf driver Removed dead code enclosed in #ifdef 0 ... Removed unnecessary pr_debug lines Removed some comments that are not relevant now (TODO:..) Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:27 UTC
ed919d5 zynq: Remove duplicated headers from drivers Code cleanup. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:26 UTC
e6bb1c8 apf: Enable drivers just for Zynq Do not compile these drivers for others architectures. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:25 UTC
ee2121f apf: xilinx-dma-apf: Simplify probe function Use devm_ functions to simplify driver probing. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:23 UTC
cf0b905 apf: xlnk-eng: Simplify probe function Use devm_ functions to simplify driver probing. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:22 UTC
d83e6e2 apf: Fix driver module initialization Use module_platform_driver and sort init and exit functions. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:21 UTC
c37c21c apf: Add kernel modules to the kernel This patch is created from origin Xidane kernel modules with these additional steps: - Fix checkpatch.pl warnings - Fix coding style - Move all modules to staging/apf folder - dos2unix translation - Fix compilation warnings - Change files permission Signed-off-by: S Mohan <s.mohan@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 11 September 2013, 05:28:17 UTC
71637b7 zynq: Remove platform_device_init definition This function was removed by: "arm: zynq: Move pl330 driver to the drivers/dma" (sha1: dcd3488987548b15f8b9d0dfc703a3c19d109f69) Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 13:03:31 UTC
b8cf855 arm: zynq: hotplug: Remove unreachable code zynq_platform_do_lowpower() does never return. Hence remove all code which relies on that function returning and consolidate the remains. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 13:01:28 UTC
fd5475a arm: mach-zynq: platsmp: Fix CPU presence check Fix an off-by-one error in the logic that checks if a CPU is present. The ncores variable is a count of cores while the cpu variable is a 0 based index. So if ncores == cpu, cpu is out of range. Fix this comparison so non-existent CPUs are not probed. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 13:01:27 UTC
c80a374 arm: zynq: Invalidate L1 in secondary boot With an implementation of cpu_kill() (commit fda2191, 'zynq: Add support for zynq_cpu_kill function') the killed core's L1 is not guaranteed to be properly flushed when going into suspend. Also, during boot, Linux initiates a clean-invalidate operation only, resulting in faulty data to be written to the memory system during resume. Therefore invalidate the L1 in the secondary boot path to avoid these issues. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 13:01:26 UTC
6a2a897 arm: Add v7_invalidate_l1 to cache-v7.S mach-socfpga is another platform that needs to use v7_invalidate_l1 to bringup additional cores. There was a comment that the ideal place for v7_invalidate_l1 should be in arm/mm/cache-v7.S Signed-off-by: Dinh Nguyen <dinguyen@altera.com> Acked-by: Simon Horman <horms+renesas@verge.net.au> Acked-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Pavel Machek <pavel@denx.de> Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Pavel Machek <pavel@denx.de> Tested-by: Stephen Warren <swarren@nvidia.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Russell King <linux@arm.linux.org.uk> Cc: Olof Johansson <olof@lixom.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rob Herring <rob.herring@calxeda.com> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by: Olof Johansson <olof@lixom.net> 23 August 2013, 13:01:26 UTC
c20a7e4 zynq: Fix smp code not to rewrite code when starting address is 0x0 This is used by remoteproc. 23 August 2013, 12:51:38 UTC
f5bf44b zynq: Add support for zynq_cpu_kill function Use simple hook to slcr to stop cpu. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:37 UTC
5f5f91f arm: zynq: Sychronization hotplug code with mainline Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:37 UTC
fbbff50 arm: zynq: slcr: Use read-modify-write for register writes zynq_slcr_cpu_start/stop() ignored the current register state when writing to a register. Fixing this by implementing proper read-modify-write. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:36 UTC
54bdfbf arm: zynq: slcr: Fix array size An array holding status bits was defined too small. This is fixed by removing the static array size with a compile time calculation. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:35 UTC
ea5ef72 arm: zynq: slcr: Remove clock controls All clock controls are handled through the CCF and device drivers. All clock related code in the SLCR driver is deprecated. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:35 UTC
6512329 arm: zynq: Synchronize common.c with mainline Get rid of ioremap from map_io. And move function to the same location as is in the mainline. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:34 UTC
3bc9376 arm: zynq: Synchronize smp code with mainline version - Remove mem backup - not needed - Using simple trampoline ensure long jump to secondary_startup code. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:31 UTC
5e747a7 arm: zynq: Get rid of xilinx function prefix Xilinx is vendor name not SoC name. Use zynq instead. Also remove one checkpatch warning: WARNING: static const char * array should probably be static const char * const +static const char *xilinx_dt_match[] = { Signed-off-by: Michal Simek <michal.simek@xilinx.com> 23 August 2013, 12:51:04 UTC
dbce144 rpmsg: Fix AF_RPMSG protocol macro AF_MAX must be the latest one in the protocol list. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 05 August 2013, 06:27:37 UTC
ad40430 remoteproc: Fix Kconfig dependecies There are unmet dependencies which have to be resolved. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 05 August 2013, 06:25:47 UTC
b64b3d0 spi: xilinx-qps: Fill bus-num based on order in aliases Do not add bus-num as node property but fill it automatically based on order in aliases. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 01 August 2013, 13:09:07 UTC
9b6c6cd zynq: Use automatic generated DTSes Add the latest automatic generated DTSes which reflect the latest device-tree BSP. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 31 July 2013, 09:14:01 UTC
6849e74 ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on assumptions about the implementation of memset and similar functions. The current ARM optimized memset code does not return the value of its first argument, as is usually expected from standard implementations. For instance in the following function: void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter) { memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter)); waiter->magic = waiter; INIT_LIST_HEAD(&waiter->list); } compiled as: 800554d0 <debug_mutex_lock_common>: 800554d0: e92d4008 push {r3, lr} 800554d4: e1a00001 mov r0, r1 800554d8: e3a02010 mov r2, #16 ; 0x10 800554dc: e3a01011 mov r1, #17 ; 0x11 800554e0: eb04426e bl 80165ea0 <memset> 800554e4: e1a03000 mov r3, r0 800554e8: e583000c str r0, [r3, #12] 800554ec: e5830000 str r0, [r3] 800554f0: e5830004 str r0, [r3, #4] 800554f4: e8bd8008 pop {r3, pc} GCC assumes memset returns the value of pointer 'waiter' in register r0; causing register/memory corruptions. This patch fixes the return value of the assembly version of memset. It adds a 'mov' instruction and merges an additional load+store into existing load/store instructions. For ease of review, here is a breakdown of the patch into 4 simple steps: Step 1 ====== Perform the following substitutions: ip -> r8, then r0 -> ip, and insert 'mov ip, r0' as the first statement of the function. At this point, we have a memset() implementation returning the proper result, but corrupting r8 on some paths (the ones that were using ip). Step 2 ====== Make sure r8 is saved and restored when (! CALGN(1)+0) == 1: save r8: - str lr, [sp, #-4]! + stmfd sp!, {r8, lr} and restore r8 on both exit paths: - ldmeqfd sp!, {pc} @ Now <64 bytes to go. + ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go. (...) tst r2, #16 stmneia ip!, {r1, r3, r8, lr} - ldr lr, [sp], #4 + ldmfd sp!, {r8, lr} Step 3 ====== Make sure r8 is saved and restored when (! CALGN(1)+0) == 0: save r8: - stmfd sp!, {r4-r7, lr} + stmfd sp!, {r4-r8, lr} and restore r8 on both exit paths: bgt 3b - ldmeqfd sp!, {r4-r7, pc} + ldmeqfd sp!, {r4-r8, pc} (...) tst r2, #16 stmneia ip!, {r4-r7} - ldmfd sp!, {r4-r7, lr} + ldmfd sp!, {r4-r8, lr} Step 4 ====== Rewrite register list "r4-r7, r8" as "r4-r8". Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com> Reviewed-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Dirk Behme <dirk.behme@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 455bd4c430b0c0a361f38e8658a0d6cb469942b5) 30 July 2013, 18:47:49 UTC
c526f9f arm: zynq: Change OPP calculation When the frequencies given in OPPs are converted to a frequency table for the cpufreq driver, we lose three magnitudes of resolution, since the CCF works with Hz and cpufreq with kHz frequencies. Leverage the new 'clk_round_rate_nearest()' API function to calculate OPP frequencies which should result in the intended actual frequency. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:48 UTC
41f1953 clk: Introduce 'clk_round_rate_nearest()' Introduce a new API function to round a rate to the closest possible rate the HW clock can generate. In contrast to 'clk_round_rate()' which works similar, but always returns a frequency <= its input rate. The function code was sent to LKML by Uwe Kleine-König <u.kleine-koenig@pengutronix.de>. Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:48 UTC
61a369f tty: xuartps: Update suspend/resume code This update allows the UART input frequency to change during a suspend cycle. This way PLLs can be bypassed even while the UART is the active wake up device. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:47 UTC
693eaa6 cpufreq: zynq: Support suspend Add a check to prevent changes to the clock dividers while PLLs are bypassed. Without this check, cpufreq may set a minimum divider for the CPU clock based on the very low frequency during PLL bypass. This results in exceeding all limits for the CPU frequency when the original PLL frequency is restored during resume. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:47 UTC
ed27b2b arm: zynq: Set proper GIC flags Zynq is able to wake up on any IRQ, so flag it with IRQCHIP_SKIP_SET_WAKE, and we want to mask off the IRQs when going to suspend to avoid transient effects so also flag this with IRQCHIP_MASK_ON_SUSPEND. This is essentially, making the same changes as commit 'ARM: ux500: set proper GIC flags' (sha1: 7e1f97ea8ffa66679252520dbbbd6ec413ecae68) for Zynq. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:46 UTC
8f34342 clk/zynq/clkc: Add 'fclk-enable' functionality In cases no proper drivers are avaiable and enabling the FCLKs through the CCF and activation through userspace is not an option either, the clkc needs a way to enable the FCLKs. A new property - 'fclk-enable' - is added to the DT bindings. It's value is a bitmask, where a set bit results in enabling the corresponding FCLK through the clkc. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> (cherry picked from commit d0b69caa6c963ed23f7bd725fcc68670dd2ed257) 30 July 2013, 18:47:46 UTC
add5830 arm: zynq: Migrate to clock controller Switch Zynq, including its drivers, over to use the new clock controller. And remove old clock implementation. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:45 UTC
0664ef7 clk: zynq: Factor out PLL driver Refactor the PLL driver so it works with the clock controller driver. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:47:44 UTC
172397f clk: zynq: Add clock controller driver Add a clock controller driver and documentation. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:30:00 UTC
7317e42 i2c: xi2cps: Don't obstruct rate changes if suspended When the driver is suspended its input frequency doesn't matter and changes to it should not be prevented. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> 30 July 2013, 18:29:59 UTC
57606dc clk: Always notify whole subtree when reparenting A clock's notifier count only reflects notifiers which are registered directly for that clock. A reparent operation though affects the whole subtree because of a potential rate change. When issuing the pre rate change notifications only the notifier count for the clock to be changed is considered and notifiers for subclocks may never be called. Resulting in clocks in the subtree which have registered notifiers, may receive a POST_- or ABORT_RATE_CHANGE notification, without a PRE_RATE_CHANGE_NOTIFICATION. Therefore always traverse the whole subtree when issueing pre rate change notifications during a reparent operation. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Mike Turquette <mturquette@linaro.org> (cherry picked from commit f3aab5d61400b794ec759b9345e93e7ba57eb369) 30 July 2013, 18:29:07 UTC
2c34ca4 clk: Properly handle notifier return values Notifiers may return NOTIFY_(OK|DONE|STOP|BAD). The CCF uses an inconsistent mix of checking against NOTIFY_STOP or NOTIFY_BAD. This inconsistency leaves errors undetected in some cases: clk_set_parent() calls __clk_speculate_rates(), which stops when it hits a NOTIFIER_BAD (STOP is ignored), and passes this value back to the caller. clk_set_parent() compares this return value against NOTIFY_STOP only, ignoring NOTIFY_BAD returns. Use NOTIFY_STOP_MASK to detect a negative notifier return value and document all four return value options. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Mike Turquette <mturquette@linaro.org> (cherry picked from commit fb72a0590b770f7da6a02bde6b8a147a3d9f6168) 30 May 2013, 18:30:52 UTC
602b608 clk: divider: Introduce CLK_DIVIDER_ALLOW_ZERO flag Dividers which have CLK_DIVIDER_ONE_BASED set have a redundant state, being a divider value of zero. Some hardware implementations allow a zero divider which simply doesn't alter the frequency. I.e. it acts like a divide by one or bypassing the divider. This flag is used to handle such HW in the clk-divider model. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Mike Turquette <mturquette@linaro.org> (cherry picked from commit 056b205316cc3dcf8a67cf813a26ff8a72bf3cb9) 30 May 2013, 18:30:51 UTC
44d365f Merge commit 'f128e2ef41bc11fcc57d2f3f8e2a3cae90410b79' into petalinux/master-next Upgrade petalinux/master-next branch to state before v3.9 merge to OSL master-next. There were just small 3 conflicts in which were resolved by using version from the OSL repo. arch/arm/mach-zynq/xaxipcie.c drivers/net/ethernet/xilinx/xilinx_emacps.c drivers/watchdog/of_xilinx_wdt.c Signed-off-by: Michal Simek <michal.simek@xilinx.com> 24 May 2013, 05:56:40 UTC
f128e2e microblaze: Add missing return from debugfs_tlb Function must return any value. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 08 May 2013, 06:01:34 UTC
09a6695 microblaze: Fix coding style issues Fix coding style issues reported by checkpatch.pl. Signed-off-by: Michal Simek <monstr@monstr.eu> 08 May 2013, 06:01:23 UTC
65eac13 microblaze: Do not use module.h in files which are not modules Based on the patch: "lib: reduce the use of module.h wherever possible" (sha1: 8bc3bcc93a2b4e47d5d410146f6546bca6171663) fix all microblaze files which are not modules. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 08 May 2013, 05:38:19 UTC
221c0f4 usb: xilinxps_udc: Fixed zero length packet issue with control endpoint. Disabled sending Zero Length Packet (ZLP) automatically based on ZLT bit in dQH for Control IN and OUT endpoints. Signed-off-by: Naveen Mamindlapalli <naveenm@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 06 May 2013, 09:46:50 UTC
814cfa1 Revert "usb: xilinxps_udc: Fixed zero length packet issue with control endpoint." This reverts commit 17fb76b1b2b976bc5411dbbdfc5243530922e3d2. This patch doesn't handle the case where the number of bytes to send on control endpoint is same as wLength and multiple of ep max pkt size. In this case the device expects a zero length IN data packet which is not correct. The device should actually move to status phase. Signed-off-by: Naveen Mamindlapalli <naveenm@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> 06 May 2013, 09:46:27 UTC
bad4b25 microblaze: Do not select OPT_LIB_ASM by default This option is valid only for BE systems. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 03 May 2013, 07:29:28 UTC
bfd1142 microblaze: Fix initrd support Initrd/ramdisk support has been never validated. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 03 May 2013, 06:13:45 UTC
3cd0c0b microblaze: Fix free_init_pages function - fce() is used only in init.c file - let's use static - start and end addresses should be page align - remove additional addr variable - use pr_info instead of printk(KERN_INFO...) - use __free_page(page) instead of free_page(start) it is faster because of no checking, if ramdisk is out of the kernel you will get kernel panic anyway Signed-off-by: Michal Simek <michal.simek@xilinx.com> 03 May 2013, 06:13:45 UTC
d47b8a8 microblaze: Do not use r6 in head.S r6 stores pointer to ramdisk and shouldn't be used before it is passed to machine_early_init. Signed-off-by: Michal Simek <michal.simek@xilinx.com> 03 May 2013, 06:13:37 UTC
9fa1d01 Linux 3.8.11 01 May 2013, 16:56:10 UTC
e8036a5 ARM: 7692/1: iop3xx: move IOP3XX_PERIPHERAL_VIRT_BASE commit f5d6a1441a5045824f36ff7c6b6bbae0373472a6 upstream. Currently IOP3XX_PERIPHERAL_VIRT_BASE conflicts with PCI_IO_VIRT_BASE: address size PCI_IO_VIRT_BASE 0xfee00000 0x200000 IOP3XX_PERIPHERAL_VIRT_BASE 0xfeffe000 0x2000 Fix by moving IOP3XX_PERIPHERAL_VIRT_BASE below PCI_IO_VIRT_BASE. The patch fixes the following kernel panic with 3.9-rc1 on iop3xx boards: [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.9.0-rc1-iop32x (aaro@blackmetal) (gcc version 4.7.2 (GCC) ) #20 PREEMPT Tue Mar 5 16:44:36 EET 2013 [ 0.000000] bootconsole [earlycon0] enabled [ 0.000000] ------------[ cut here ]------------ [ 0.000000] kernel BUG at mm/vmalloc.c:1145! [ 0.000000] Internal error: Oops - BUG: 0 [#1] PREEMPT ARM [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 Not tainted (3.9.0-rc1-iop32x #20) [ 0.000000] PC is at vm_area_add_early+0x4c/0x88 [ 0.000000] LR is at add_static_vm_early+0x14/0x68 [ 0.000000] pc : [<c03e74a8>] lr : [<c03e1c40>] psr: 800000d3 [ 0.000000] sp : c03ffee4 ip : dfffdf88 fp : c03ffef4 [ 0.000000] r10: 00000002 r9 : 000000cf r8 : 00000653 [ 0.000000] r7 : c040eca8 r6 : c03e2408 r5 : dfffdf60 r4 : 00200000 [ 0.000000] r3 : dfffdfd8 r2 : feffe000 r1 : ff000000 r0 : dfffdf60 [ 0.000000] Flags: Nzcv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel [ 0.000000] Control: 0000397f Table: a0004000 DAC: 00000017 [ 0.000000] Process swapper (pid: 0, stack limit = 0xc03fe1b8) [ 0.000000] Stack: (0xc03ffee4 to 0xc0400000) [ 0.000000] fee0: 00200000 c03fff0c c03ffef8 c03e1c40 c03e7468 00200000 fee00000 [ 0.000000] ff00: c03fff2c c03fff10 c03e23e4 c03e1c38 feffe000 c0408ee4 ff000000 c0408f04 [ 0.000000] ff20: c03fff3c c03fff30 c03e2434 c03e23b4 c03fff84 c03fff40 c03e2c94 c03e2414 [ 0.000000] ff40: c03f8878 c03f6410 ffff0000 000bffff 00001000 00000008 c03fff84 c03f6410 [ 0.000000] ff60: c04227e8 c03fffd4 a0008000 c03f8878 69052e30 c02f96eb c03fffbc c03fff88 [ 0.000000] ff80: c03e044c c03e268c 00000000 0000397f c0385130 00000001 ffffffff c03f8874 [ 0.000000] ffa0: dfffffff a0004000 69052e30 a03f61a0 c03ffff4 c03fffc0 c03dd5cc c03e0184 [ 0.000000] ffc0: 00000000 00000000 00000000 00000000 00000000 c03f8878 0000397d c040601c [ 0.000000] ffe0: c03f8874 c0408674 00000000 c03ffff8 a0008040 c03dd558 00000000 00000000 [ 0.000000] Backtrace: [ 0.000000] [<c03e745c>] (vm_area_add_early+0x0/0x88) from [<c03e1c40>] (add_static_vm_early+0x14/0x68) Tested-by: Mikael Pettersson <mikpe@it.uu.se> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:20 UTC
84237e8 ARM: 7699/1: sched_clock: Add more notrace to prevent recursion commit cea15092f098b7018e89f64a5a14bb71955965d5 upstream. cyc_to_sched_clock() is called by sched_clock() and cyc_to_ns() is called by cyc_to_sched_clock(). I suspect that some compilers inline both of these functions into sched_clock() and so we've been getting away without having a notrace marking. It seems that my compiler isn't inlining cyc_to_sched_clock() though, so I'm hitting a recursion bug when I enable the function graph tracer, causing my system to crash. Marking these functions notrace fixes it. Technically cyc_to_ns() doesn't need the notrace because it's already marked inline, but let's just add it so that if we ever remove inline from that function it doesn't blow up. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:20 UTC
19ffe4c tracing: Fix selftest function recursion accounting commit 05cbbf643b8eea1be21082c53cdb856d1dc6d765 upstream. The test that checks function recursion does things differently if the arch does not support all ftrace features. But that really doesn't make a difference with how the test runs, and either way the count variable should be 2 at the end. Currently the test wrongly fails for archs that don't support all the ftrace features. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:20 UTC
d1b376a net: drop dst before queueing fragments [ Upstream commit 97599dc792b45b1669c3cdb9a4b365aad0232f65 ] Commit 4a94445c9a5c (net: Use ip_route_input_noref() in input path) added a bug in IP defragmentation handling, as non refcounted dst could escape an RCU protected section. Commit 64f3b9e203bd068 (net: ip_expire() must revalidate route) fixed the case of timeouts, but not the general problem. Tom Parkin noticed crashes in UDP stack and provided a patch, but further analysis permitted us to pinpoint the root cause. Before queueing a packet into a frag list, we must drop its dst, as this dst has limited lifetime (RCU protected) When/if a packet is finally reassembled, we use the dst of the very last skb, still protected by RCU and valid, as the dst of the reassembled packet. Use same logic in IPv6, as there is no need to hold dst references. Reported-by: Tom Parkin <tparkin@katalix.com> Tested-by: Tom Parkin <tparkin@katalix.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:20 UTC
98c287e net: fix incorrect credentials passing [ Upstream commit 83f1b4ba917db5dc5a061a44b3403ddb6e783494 ] Commit 257b5358b32f ("scm: Capture the full credentials of the scm sender") changed the credentials passing code to pass in the effective uid/gid instead of the real uid/gid. Obviously this doesn't matter most of the time (since normally they are the same), but it results in differences for suid binaries when the wrong uid/gid ends up being used. This just undoes that (presumably unintentional) part of the commit. Reported-by: Andy Lutomirski <luto@amacapital.net> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Serge E. Hallyn <serge@hallyn.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:20 UTC
24fce11 net: rate-limit warn-bad-offload splats. [ Upstream commit c846ad9b880ece01bb4d8d07ba917734edf0324f ] If one does do something unfortunate and allow a bad offload bug into the kernel, this the skb_warn_bad_offload can effectively live-lock the system, filling the logs with the same error over and over. Add rate limitation to this so that box remains otherwise functional in this case. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:20 UTC
72b1b8d tcp: call tcp_replace_ts_recent() from tcp_ack() [ Upstream commit 12fb3dd9dc3c64ba7d64cec977cca9b5fb7b1d4e ] commit bd090dfc634d (tcp: tcp_replace_ts_recent() should not be called from tcp_validate_incoming()) introduced a TS ecr bug in slow path processing. 1 A > B P. 1:10001(10000) ack 1 <nop,nop,TS val 1001 ecr 200> 2 B < A . 1:1(0) ack 1 win 257 <sack 9001:10001,TS val 300 ecr 1001> 3 A > B . 1:1001(1000) ack 1 win 227 <nop,nop,TS val 1002 ecr 200> 4 A > B . 1001:2001(1000) ack 1 win 227 <nop,nop,TS val 1002 ecr 200> (ecr 200 should be ecr 300 in packets 3 & 4) Problem is tcp_ack() can trigger send of new packets (retransmits), reflecting the prior TSval, instead of the TSval contained in the currently processed incoming packet. Fix this by calling tcp_replace_ts_recent() from tcp_ack() after the checks, but before the actions. Reported-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Neal Cardwell <ncardwell@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 01 May 2013, 16:46:19 UTC
back to top