aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-12-19Merge branch 'master' of ↵John W. Linville2-1/+9
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
2012-12-19ARM: EXYNOS: Avoid passing the clks through platform dataPadmavathi Venna1-12/+0
I2S controller has an internal mux for RCLK source clks. The list of source clk names were passed through platform data in non-dt case. The variable holding the list of RCLK source clk names is not required, as the list of clks need to be registered with clkdev using generic connection id. This is required as part of adding DT support for I2S controller driver. Signed-off-by: Padmavathi Venna <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: S5PV210: Avoid passing the clks through platform dataPadmavathi Venna1-16/+0
I2S controller has an internal mux for RCLK source clks. The list of source clk names were passed through platform data in non-dt case. The variable holding the list of RCLK source clk names is not required, as the list of clks need to be registered with clkdev using generic connection id. This is required as part of adding DT support for I2S controller driver. Signed-off-by: Padmavathi Venna <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: S5P64X0: Add I2S clkdev supportPadmavathi Venna3-47/+75
I2S controller has an internal mux for RCLK source clk. The list of source clk names were passed through platform data in non-dt case. Register the existing RCLK source clocks with clkdev using generic connection id. This is required as part of adding DT support for I2S controller driver. Signed-off-by: Padmavathi Venna <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: S5PC100: Add I2S clkdev supportPadmavathi Venna2-34/+30
I2S controller has an internal mux for RCLK source clk. The list of source clk names were passed through platform data in non-dt case. Register the existing RCLK source clocks with clkdev using generic connection id. This is required as part of adding DT support for I2S controller driver. Signed-off-by: Padmavathi Venna <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: S3C64XX: Add I2S clkdev supportPadmavathi Venna2-60/+77
I2S controller has an internal mux for RCLK source clks. The list of source clk names were passed through platform data in non-dt case. Register the existing RCLK source clocks with clkdev using generic connection id. This is required as part of adding DT support for I2S controller driver. Signed-off-by: Padmavathi Venna <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19mlx4_core: Fix error flow in the flow steering wrapperHadar Hen Zion1-1/+1
The error flow of the flow steering wrapper had a typo which caused the wrong firmware command to be called, fix it. Signed-off-by: Hadar Hen Zion <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2012-12-19mlx4_core: Add QPN enforcement for flow steering rules set by VFsHadar Hen Zion1-6/+20
Since VFs may be mapped to VMs which aren't trusted entities, flow steering rules attached through the wrapper on behalf of VFs must be checked to make sure that the specified QP number is assigned to that VF. Also, make sure to keep the QP busy till the end of the operation from the resource tracker point of view. Signed-off-by: Hadar Hen Zion <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2012-12-19cxgb4: Add LE hash collision bug fix path in LLD driverVipul Pandya4-10/+193
It supports establishing passive open connection through firmware filter work request. Passive open connection will go through this path as now instead of listening server we create a server filter which will redirect the incoming SYN packet to the offload queue. It divides filter region into regular filters and server filter portion. It introduces new server filter region which will be exclusively used for creating server filters. This region will not overlap with regular filter region. It provides new API cxgb4_alloc_sftid in LLD for getting stid in case of LE hash collision path. This new stid will be used to open server filter in the filter region. Signed-off-by: Vipul Pandya <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2012-12-19cxgb4: Add T4 filter supportVipul Pandya8-7/+757
The T4 architecture is capable of filtering ingress packets at line rate using the rule in TCAM. If packet hits a rule in the TCAM then it can be either dropped or passed to the receive queues based on a rule settings. This patch adds framework for managing filters and to use T4's filter capabilities. It constructs a Firmware Filter Work Request which writes the filter at a specified index to get the work done. It hosts shadow copy of ingress filter entry to check field size limitations and save memory in the case where the filter table is large. Signed-off-by: Vipul Pandya <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2012-12-19ARM: EXYNOS: Fix MSHC clocks instance namesDongjin Kim1-2/+2
Replace clock instance name of MSHC controller for BIC and CIU of Exynos4412. Signed-off-by: Dongjin Kim <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: EXYNOS: Fix NULL pointer dereference bug in SMDKV310Sachin Kamat1-2/+2
When DRM support for Samsung SoC and Samsung S3C framebuffer support are selected, the kernel crashes as it does not get the required platform data. Change the compile macro to CONFIG_DRM_EXYNOS_FIMD to fix this. Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: EXYNOS: Fix NULL pointer dereference bug in SMDK4X12Sachin Kamat1-2/+2
When DRM support for Samsung SoC and Samsung S3C framebuffer support are selected, the kernel crashes as it does not get the required platform data. Change the compile macro to CONFIG_DRM_EXYNOS_FIMD to fix this. Fixes the following boot time crash: Unable to handle kernel NULL pointer dereference at virtual address 00000000 PC is at 0x0 LR is at s3c_fb_probe+0x198/0x788 [<c0152270>] (s3c_fb_probe+0x198/0x788) from [<c019e52c>] (platform_drv_probe+0x18/0x1c) [<c019e52c>] (platform_drv_probe+0x18/0x1c) from [<c019d2e4>] (driver_probe_device+0x70/0x1f0) [<c019d2e4>] (driver_probe_device+0x70/0x1f0) from [<c019d4f0>] (__driver_attach+0x8c/0x90) [<c019d4f0>] (__driver_attach+0x8c/0x90) from [<c019bc3c>] (bus_for_each_dev+0x50/0x7c) [<c019bc3c>] (bus_for_each_dev+0x50/0x7c) from [<c019cb4c>] (bus_add_driver+0x170/0x23c) [<c019cb4c>] (bus_add_driver+0x170/0x23c) from [<c019d9a4>] (driver_register+0x78/0x144) [<c019d9a4>] (driver_register+0x78/0x144) from [<c000862c>] (do_one_initcall+0x34/0x174) [<c000862c>] (do_one_initcall+0x34/0x174) from [<c020ed7c>] (kernel_init+0x100/0x2a0) [<c020ed7c>] (kernel_init+0x100/0x2a0) from [<c000e118>] (ret_from_fork+0x14/0x3c) Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19ARM: EXYNOS: Fix NULL pointer dereference bug in OrigenSachin Kamat1-2/+2
When DRM support for Samsung SoC and Samsung S3C framebuffer support are selected, the kernel crashes as it does not get the required platform data. Change the compile macro to CONFIG_DRM_EXYNOS_FIMD to fix this. Without this patch the following crash occurs during bootup: Unable to handle kernel NULL pointer dereference at virtual address 00000000 PC is at 0x0 LR is at s3c_fb_probe+0x198/0x788 [<c01520e8>] (s3c_fb_probe+0x198/0x788) from [<c01a3dd4>] (platform_drv_probe+0x18/0x1c) [<c01a3dd4>] (platform_drv_probe+0x18/0x1c) from [<c01a2b8c>] (driver_probe_device+0x70/0x1f0) [<c01a2b8c>] (driver_probe_device+0x70/0x1f0) from [<c01a2d98>] (__driver_attach+0x8c/0x90) [<c01a2d98>] (__driver_attach+0x8c/0x90) from [<c01a14e4>] (bus_for_each_dev+0x50/0x7c) [<c01a14e4>] (bus_for_each_dev+0x50/0x7c) from [<c01a23f4>] (bus_add_driver+0x170/0x23c) [<c01a23f4>] (bus_add_driver+0x170/0x23c) from [<c01a324c>] (driver_register+0x78/0x144) [<c01a324c>] (driver_register+0x78/0x144) from [<c000862c>] (do_one_initcall+0x34/0x174) [<c000862c>] (do_one_initcall+0x34/0x174) from [<c01de210>] (kernel_init+0x100/0x2a0) [<c01de210>] (kernel_init+0x100/0x2a0) from [<c000e118>] (ret_from_fork+0x14/0x3c) Signed-off-by: Sachin Kamat <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-12-19IPoIB: Call skb_dst_drop() once skb is enqueued for sendingRoland Dreier2-1/+5
Currently, IPoIB delays collecting send completions for TX packets in order to batch work more efficiently. It does skb_orphan() right after queuing the packets so that destructors run early, to avoid problems like holding socket send buffers for too long (since we might not collect a send completion until a long time after the packet is actually sent). However, IPoIB clears IFF_XMIT_DST_RELEASE because it actually looks at skb_dst() to update the PMTU when it gets a too-long packet. This means that the packets sitting in the TX ring with uncollected send completions are holding a reference on the dst. We've seen this lead to pathological behavior with respect to route and neighbour GC. The easy fix for this is to call skb_dst_drop() when we call skb_orphan(). Also, give packets sent via connected mode (CM) the same skb_orphan() / skb_dst_drop() treatment that packets sent via datagram mode get. Signed-off-by: Roland Dreier <[email protected]>
2012-12-19Merge tag 'for-3.8-rc1' of git://gitorious.org/linux-pwm/linux-pwmLinus Torvalds24-221/+1593
Pull pwm changes from Thierry Reding: "A new driver has been added for the SPEAr platform and the TWL4030/6030 driver has been replaced by two drivers that control the regular PWMs and the PWM driven LEDs provided by the chips. The vt8500, tiecap, tiehrpwm, i.MX, LPC32xx and Samsung drivers have all been improved and the device tree bindings now support the PWM signal polarity." Fix up trivial conflicts due to __devinit/exit removal. * tag 'for-3.8-rc1' of git://gitorious.org/linux-pwm/linux-pwm: (21 commits) pwm: samsung: add missing s3c->pwm_id assignment pwm: lpc32xx: Set the chip base for dynamic allocation pwm: lpc32xx: Properly disable the clock on device removal pwm: lpc32xx: Fix the PWM polarity pwm: i.MX: eliminate build warning pwm: Export of_pwm_xlate_with_flags() pwm: Remove pwm-twl6030 driver pwm: New driver to support PWM driven LEDs on TWL4030/6030 series of PMICs pwm: New driver to support PWMs on TWL4030/6030 series of PMICs pwm: pwm-tiehrpwm: pinctrl support pwm: tiehrpwm: Add device-tree binding pwm: pwm-tiehrpwm: Adding TBCLK gating support. pwm: pwm-tiecap: pinctrl support pwm: tiecap: Add device-tree binding pwm: Add TI PWM subsystem driver pwm: Device tree support for PWM polarity pwm: vt8500: Ensure PWM clock is enabled during pwm_config pwm: vt8500: Fix build error pwm: spear: Staticize spear_pwm_config() pwm: Add SPEAr PWM chip driver support ...
2012-12-19of: define struct device in of_platform.h if !OF_DEVICE and !OF_ADDRESSJonas Gorski1-0/+1
Fixes the following warning: include/linux/of_platform.h:106:13: warning: 'struct device' declared inside parameter list [enabled by default] include/linux/of_platform.h:106:13: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] Signed-off-by: Jonas Gorski <[email protected]> Signed-off-by: Rob Herring <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2012-12-19Merge tag 'for-v3.8-part2' of git://git.infradead.org/battery-2.6Linus Torvalds2-22/+22
Pull battery update, part 2, from Anton Vorontsov: "These are left overs that I didn't have time to review/apply before the merge window opened. I didn't want to "spoil" the first pull request with these late patches, so they were not included: - A small patch for the RX51 OMAP board (Nokia N900 phone), the patch creates a battery monitor device instance, so that it can be probed. It was acked by the OMAP maintainer; - A couple of late bug fixes for the charger-manager: corrects corner cases for the battery full handling." * tag 'for-v3.8-part2' of git://git.infradead.org/battery-2.6: charger-manager: Fix bug when check dropped voltage after fullbatt event charger-manager: Fix bug related to checking fully charged state of battery ARM: OMAP: rx51: Register platform device for rx51_battery
2012-12-19UAPI: (Scripted) Disintegrate arch/m32r/include/asmDavid Howells38-615/+668
Signed-off-by: David Howells <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Acked-by: Michael Kerrisk <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Acked-by: Dave Jones <[email protected]>
2012-12-19UAPI: (Scripted) Disintegrate arch/h8300/include/asmDavid Howells39-546/+595
Signed-off-by: David Howells <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Acked-by: Michael Kerrisk <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Acked-by: Dave Jones <[email protected]>
2012-12-19Merge tag 'modules-next-for-linus' of ↵Linus Torvalds36-210/+434
git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module update from Rusty Russell: "Nothing all that exciting; a new module-from-fd syscall for those who want to verify the source of the module (ChromeOS) and/or use standard IMA on it or other security hooks." * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: MODSIGN: Fix kbuild output when using default extra_certificates MODSIGN: Avoid using .incbin in C source modules: don't hand 0 to vmalloc. module: Remove a extra null character at the top of module->strtab. ASN.1: Use the ASN1_LONG_TAG and ASN1_INDEFINITE_LENGTH constants ASN.1: Define indefinite length marker constant moduleparam: use __UNIQUE_ID() __UNIQUE_ID() MODSIGN: Add modules_sign make target powerpc: add finit_module syscall. ima: support new kernel module syscall add finit_module syscall to asm-generic ARM: add finit_module syscall to ARM security: introduce kernel_module_from_file hook module: add flags arg to sys_finit_module() module: add syscall to load module from fd
2012-12-19Merge tag 'byteswap-for-linus-20121219' of ↵Linus Torvalds4-3/+45
git://git.infradead.org/users/dwmw2/byteswap Pull preparatory gcc intrisics bswap patch from David Woodhouse: "This single patch is effectively a no-op for now. It enables architectures to opt in to using GCC's __builtin_bswapXX() intrinsics for byteswapping, and if we merge this now then the architecture maintainers can enable it for their arch during the next cycle without dependency issues. It's worth making it a par-arch opt-in, because although in *theory* the compiler should never do worse than hand-coded assembler (and of course it also ought to do a lot better on platforms like Atom and PowerPC which have load-and-swap or store-and-swap instructions), that isn't always the case. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46453 for example." * tag 'byteswap-for-linus-20121219' of git://git.infradead.org/users/dwmw2/byteswap: byteorder: allow arch to opt to use GCC intrinsics for byteswapping
2012-12-19blk: avoid divide-by-zero with zero discard granularityLinus Torvalds1-4/+15
Commit 8dd2cb7e880d ("block: discard granularity might not be power of 2") changed a couple of 'binary and' operations into modulus operations. Which turned the harmless case of a zero discard_granularity into a possible divide-by-zero. The code also had a much more subtle bug: it was doing the modulus of a value in bytes using 'sector_t'. That was always conceptually wrong, but didn't actually matter back when the code assumed a power-of-two granularity: we only looked at the low bits anyway. But with potentially arbitrary sector numbers, using a 'sector_t' to express bytes is very very wrong: depending on configuration it limits the starting offset of the device to just 32 bits, and any overflow would result in a wrong value if the modulus wasn't a power-of-two. So re-write the code to not only protect against the divide-by-zero, but to do the starting sector arithmetic in sectors, and using the proper types. [ For any mathematicians out there: it also looks monumentally stupid to do the 'modulo granularity' operation *twice*, never mind having a "+ granularity" in the second modulus op. But that's the easiest way to avoid negative values or overflow, and it is how the original code was done. ] Reported-by: Ingo Molnar <[email protected]> Reported-by: Doug Anderson <[email protected]> Cc: Neil Brown <[email protected]> Cc: Shaohua Li <[email protected]> Acked-by: Jens Axboe <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2012-12-19spi/sh-hspi: fix return value check in hspi_probe().Cyril Roelandt1-1/+1
According to its documentation, clk_get() returns a "valid IS_ERR() condition containing errno", so we should call IS_ERR() rather than a NULL check. Signed-off-by: Cyril Roelandt <[email protected]> Acked-by: Kuninori Morimoto <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2012-12-19spi: fix tegra SPI binding examplesAllen Martin2-2/+2
Fix name of slink binding and address of sflash example to make it self consistent. Signed-off-by: Allen Martin <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2012-12-19of: Fix export of of_find_matching_node_and_match()Grant Likely1-1/+1
Commit 50c8af4cf9, "of: introduce for_each_matching_node_and_match()" renamed of_find_matching_node() to of_find_matching_node_and_match() and created a new static inline of_find_matching_node() wrapper around the new name. However, the change neglected to change the EXPORT_SYMBOL() reference causing build errors for modules. This patch fixes the EXPORT_SYMBOL() statement. Discovered on a PowerPC Efika build with the mpc52xx_uart driver being built as a module. Reported-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Grant Likely <[email protected]>
2012-12-19ALSA: usb-audio: Support for Digidesign Mbox 2 USB sound card:Damien Zammit4-0/+183
This patch is the result of a lot of trial and error, since there are no specs available for the device. Full duplex support is provided, i.e. playback and recording in stereo. The format is hardcoded at 48000Hz @ 24 bit, which is the maximum that the device supports. Also, MIDI in and MIDI out both work. Users will notice that the S/PDIF light also flashes when playback or recording is active. I believe this means that S/PDIF input/output is simultaneously activated with the analogue i/o during use. But this particular functionality remains untested. Note that this particular version of the patch is so far untested on the physical hardware because I have not compiled a full kernel with the changes. However, extensive testing has been done by many users of the hardware who believe other versions of my patch have worked since circa 2009. [Modified to make a function static by tiwai] Signed-off-by: Damien Zammit <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2012-12-18xtensa: don't try to build DTB when OF is disabledMax Filippov2-2/+2
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: set the correct ethernet address for xtfpgaChris Zankel1-2/+34
The last byte of the mac address is determined by a DIP switch, so update the OF property with that address. Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: clean up files to make them code-style compliantChris Zankel49-175/+160
Remove heading and trailing spaces, trim trailing lines, and wrap lines that are longer than 80 characters. Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: provide endianness macro for sparseMax Filippov1-0/+7
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: fix RASID SR initializationMax Filippov1-1/+1
set_rasid_register accepts new RASID SR value, but ASID_USER_FIRST is ASID value for the ring 1; RASID value is made by ASID_INSERT macro. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: initialize CPENABLE SR when core has oneMax Filippov1-1/+1
XCHAL_CP_NUM is defined in variant/tie.h and it is not included by head.S, leaving CPENABLE register uninitialised. XCHAL_HAVE_CP is defined in variant/core.h to 1 when core has CPENABLE SR. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: reset all timers on initializationMax Filippov1-1/+1
There are XCHAL_NUM_TIMERS, reset them all. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18Use for_each_compatible_node() macro.Wei Yongjun1-2/+2
Signed-off-by: Wei Yongjun <[email protected]> Acked-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add XTFPGA DTSMax Filippov5-0/+122
Add common XTFPGA parts as *.dtsi (base board, flash) and DTS for LX60 and for ML605. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add support for the XTFPGA boardsMax Filippov9-0/+472
The Avnet LX60/LX110/LX200 board is an FPGA board that can be configured with an Xtensa processor and an OpenCores Ethernet device. Signed-off-by: Chris Zankel <[email protected]> Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add device trees supportMax Filippov7-25/+164
Device trees allow specification of hardware topology and device parameters at runtime instead of hard-coding them in platform setup code. This allows running single binary kernel on a range of compatible boards. New boot parameters tag BP_TAG_FDT is allocated and a pointer to flat device tree is passed in it. Note that current interrupt mapping scheme uses single cell for interrupt identification. That means that IRQ numbers used in DTS must be CPU internal IRQ numbers, not external. It is possible to extend interrupt identification to two cells, and use second cell to tell external IRQ numbers form internal. That would allow to use single DTS on multiple boards with different mapping of external IRQ numbers. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add IRQ domains supportMax Filippov3-34/+94
IRQ domains provide a mechanism for conversion of linux IRQ numbers to hardware IRQ numbers and vice versus. It is used by OpenFirmware for linking device tree objects to their respective interrupt controllers. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add U-Boot image support (uImage).Max Filippov2-1/+16
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: clean up boot make rulesMax Filippov3-29/+33
- remove duplicate rules for binary and packed image - use predefined macros for ld/objcopy/gzip - remove build-id section from bootable elf image Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: fix mb and wmb definitionsMax Filippov1-3/+3
Define mb and wmb as memw to force memory barrier. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add s32c1i-based spinlock implementationsMax Filippov1-1/+187
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add s32c1i-based bitops implementationsMax Filippov1-1/+126
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add s32c1i-based atomic ops implementationsMax Filippov2-106/+236
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add s32c1i sanity checkMax Filippov3-0/+135
Add a brief sanity test of S32C1I functionality. This instruction is needed by the kernel and userland as part of the base ABI (including GCC atomic builtins, certain threading packages, future atomic support in the C++ standard, etc). However, correct operation of this instruction requires some cooperation by hardware external to the processor (such as bus bridge, bus fabric, or memory controller). Minimally exercising this mechanism and reporting explicit status early in the boot process is helpful to chip vendors using the Linux kernel as a benchmark of correctness of hardware. As it turns out, S32C1I is not exercised by the kernel and by uClibc based userland as of early June 2008. This is expected to change soon as both incorporate more recent open source developments. Signed-off-by: Marc Gauthier <[email protected]> Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: add trap_set_handler functionMax Filippov2-0/+34
trap_set_handler sets new C-handler in the exception table and returns previous handler. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: initialize atomctl SRMax Filippov3-0/+102
In order to use S32C1I instruction on cores with ATOMCTL SR the register must be properly initialized. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: save and restore scompare1 SR on kernel entryMax Filippov3-1/+15
Although scompare1 may be saved/restored by xchal_ncp_{load,store} macros, explicit save/restore of registers manipulated by the kernel itself is considered more correct. Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>
2012-12-18xtensa: display s32c1i feature flag in cpuinfoMax Filippov1-0/+3
Signed-off-by: Max Filippov <[email protected]> Signed-off-by: Chris Zankel <[email protected]>