summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-11-21apalis-tk1: integrate adv7280-m, ap1302, ov5640 and tc358743 supportMarcel Ziswiler
Integrate SoC camera support for the following CSI-2 codecs/sensors: - Analog Devices ADV7280-M, analog camera decoder with deinterlacer, PAL/NTSC@60fps - ON Semiconductor (formerly Aptina) AP1302 ISP + AR1820 image sensor, 13Mpx, 1080p@30fps - OmniVision OV5640, 5Mpx sensor, 1080p@30fps - Toshiba TC358743 HDMI to CSI-2 bridge, 1080p@60fps Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21media: support for second single-lane decoder (ADV7280M)Wojciech Bieganski
Connected to CSI CIL-E. Cameras doesn't work simultaneously. Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21media: tc358743: update hdmi to csi-2 driverTomasz Gorochowik
A major part of the driver has been rewritten in order to avoid writing binary blobs to the chip. This version also adds support for more video modes. Input video modes supported: - 1920x1080 @ 60 - 1280x1024 @ 75 - 1280x720 @ 60 - 1024x768 @ 75 - 800x600 @ 75 - 640x480 @ 75 Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21ADV7280M video decoder with deinterlacer supportWojciech Bieganski
known issues: - decoder outputs PAL (720x576), but the image looks fine only when streamed in 640x576 mode, - vertical synchronisation glitches, - setting queue-size in gstreamer greater than 1 results in blinking image, - every start of streaming requires reloading of the modules Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21TC358743 HDMI to CSI-2 bridge supportWojciech Bieganski
known issues: - HDMI input works only in 640x480 mode, 720p only in test pattern mode, any 4-lane mode doesn't work - set HDMI transmitter to VGA mode before starting the stream Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21OV5640 camera supportWojciech Bieganski
known issues: - works only in 1080p mode, - vertical synchronisation glitches, - setting queue-size in gstreamer greater than 1 results in blinking image - every start of streaming requires reloading of the modules Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21AP1302 from ON Semiconductor support addedMarcel Ziswiler
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21YUV sensors support added to tegra_camera driverWojciech Bieganski
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: re-add soc camera platform dataMarcel Ziswiler
Re-add SoC camera platform data from Ardbeg/Jetson TK1 board files. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: integrate optional edp supportMarcel Ziswiler
Integrate optional eDP support (e.g. uncomment define of APALIS_TK1_EDP as found in the platform data header file. Tested using a prototype Apalis TK1 mezzanine connecting to a Samsung LTN156FL02-L01 panel featuring a 4K aka UHD resolution of 3840 by 2160. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: clean-up board platform data header fileMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: clean-up board platform dataMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: clean-up defconfigMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: select dp pinmux function for dp_hpdMarcel Ziswiler
Select dp pinmux function for Apalis GPIO2 aka DP_HPD to allow it to be used as eDP hot-plug detect. From user space customer may still configure and use it as a regular GPIO if desired. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: remove gpio functionality from dp_hpd and gpio_pff2 pinsMarcel Ziswiler
Remove default GPIO functionality from Apalis GPIO1 aka GPIO_PFF2 and Apalis GPIO2 aka DP_HPD as if later trying to use resp. pins as special function (e.g. the former for eDP hot-plug detect and the later for SATA data activity) there is currently no sane way of removing the GPIO functionality again. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis-tk1: add comment concerning ssp1 on usb2p0 functionality being tbdMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-11-21apalis_tk1: Enable UART4Dominik Sliwa
Uncomment UART4 device tree node and enable support in machfile Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-11-21apalis-tk1: fix cl-dvfs and soctherm to unlock full performanceMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-09-29video: tegra: dc: fix gcc-6 compilationApalis_TK1_LinuxImageV2.6.1Beta1_20160929Marcel Ziswiler
drivers/video/tegra/dc/dc.c:116:3: error: 'can_filter' defined but not used [-Werror=unused-const-variable=] } can_filter[] = { ^~~~~~~~~~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29media: platform: tegra: fix gcc-6 compilationMarcel Ziswiler
drivers/media/platform/tegra/ad5816.c: In function 'ad5816_param_wr': drivers/media/platform/tegra/ad5816.c:682:6: error: this 'if' clause does not guard... [-Werror=misleading-indentation] if (info->s_mode != NVC_SYNC_STEREO) ^~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29media: tegra: fix gcc-6 compilationMarcel Ziswiler
drivers/media/platform/tegra/dw9718.c:627:6: error: this 'if' clause does not guard... [-Werror=misleading-indentation] if (info->s_mode != NVC_SYNC_STEREO) ^~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29video: tegra: host: gk20a: fix gcc-6 compilationMarcel Ziswiler
drivers/gpu/nvgpu/gk20a/mm_gk20a.c:124:18: error: 'gmmu_page_masks' defined but not used [-Werror=unused-const-variable=] static const u64 gmmu_page_masks[gmmu_nr_page_sizes] = { ~0xfffLL, ~0x1ffffLL }; ^~~~~~~~~~~~~~~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29gpu: nvgpu: fix gcc-6 compilationMarcel Ziswiler
drivers/gpu/nvgpu/gk20a/regops_gk20a.c:344:40: error: 'gk20a_runcontrol_whitelist_ranges' defined but not used [-Werror=unused-const-variable=] static const struct regop_offset_range gk20a_runcontrol_whitelist_ranges[] = { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/nvgpu/gk20a/regops_gk20a.c:350:18: error: 'gk20a_runcontrol_whitelist_ranges_count' defined but not used [-Werror=unused-const-variable=] static const u32 gk20a_runcontrol_whitelist_ranges_count = ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/nvgpu/gk20a/regops_gk20a.c:366:40: error: 'gk20a_qctl_whitelist_ranges' defined but not used [-Werror=unused-const-variable=] static const struct regop_offset_range gk20a_qctl_whitelist_ranges[] = { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/nvgpu/gk20a/regops_gk20a.c:373:18: error: 'gk20a_qctl_whitelist_ranges_count' defined but not used [-Werror=unused-const-variable=] static const u32 gk20a_qctl_whitelist_ranges_count = ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29arm: tegra: ardbeg: fix gcc-6 compilationMarcel Ziswiler
arch/arm/mach-tegra/board-ardbeg.c: In function 'ardbeg_touch_init': arch/arm/mach-tegra/board-ardbeg.c:1159:6: error: this 'else' clause does not guard... [-Werror=misleading-indentation] } else ^~~~ arch/arm/mach-tegra/board-ardbeg.c:1161:5: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'else' rm31080a_ardbeg_spi_board[0].irq = ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/arm/mach-tegra/board-ardbeg.c: In function 'tegra_ardbeg_late_init': arch/arm/mach-tegra/board-ardbeg.c:1470:2: error: this 'else' clause does not guard... [-Werror=misleading-indentation] else ^~~~ arch/arm/mach-tegra/board-ardbeg.c:1474:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'else' tegra_io_dpd_enable(&pexbias_io); ^~~~~~~~~~~~~~~~~~~ At top level: arch/arm/mach-tegra/board-ardbeg.c:1608:27: error: 'loki_dt_board_compat' defined but not used [-Werror=unused-const-variable=] static const char * const loki_dt_board_compat[] = { ^~~~~~~~~~~~~~~~~~~~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29compiler-gcc: disable -ftracer for __noclone functionsPaolo Bonzini
commit 95272c29378ee7dc15f43fa2758cb28a5913a06d upstream. -ftracer can duplicate asm blocks causing compilation to fail in noclone functions. For example, KVM declares a global variable in an asm like asm("2: ... \n .pushsection data \n .global vmx_return \n vmx_return: .long 2b"); and -ftracer causes a double declaration. Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Michal Marek <mmarek@suse.cz> Cc: stable@vger.kernel.org Cc: kvm@vger.kernel.org Reported-by: Linda Walsh <lkml@tlinx.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Willy Tarreau <w@1wt.eu> (cherry picked from commit 5d814ad8d35e5e23e0c27fb0f0b80c1044ecefad)
2016-09-29compiler-gcc: integrate the various compiler-gcc[345].h filesJoe Perches
commit cb984d101b30eb7478d32df56a0023e4603cba7f upstream. As gcc major version numbers are going to advance rather rapidly in the future, there's no real value in separate files for each compiler version. Deduplicate some of the macros #defined in each file too. Neaten comments using normal kernel commenting style. Signed-off-by: Joe Perches <joe@perches.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Michal Marek <mmarek@suse.cz> Cc: Segher Boessenkool <segher@kernel.crashing.org> Cc: Sasha Levin <levinsasha928@gmail.com> Cc: Anton Blanchard <anton@samba.org> Cc: Alan Modra <amodra@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> [ philm: backport to 3.10-stable ] Signed-off-by: Philip Müller <philm@manjaro.org> Signed-off-by: Willy Tarreau <w@1wt.eu> (cherry picked from commit a4a4f1cd733fe5b345db4e8cc19bb8868d562a8a)
2016-09-29fbcon: logo: allow easy integration of a custom Linux boot logoMarcel Ziswiler
This patch allows for easy integration of a custom Linux boot logo to replace the Tux' being shown by default. Use gimp or the like to create a raw PPM in your desired resolution. Reduce the number of colours in the image to 224: user@host:~$ ppmquant 224 Toradex-640x480.ppm > \ Toradex-640x480-224.ppm ppmquant: making histogram... ppmquant: 370 colors found ppmquant: choosing 224 colors... ppmquant: mapping image to new colors... Convert it from raw PPM to ASCII format: user@host:~$ pnmnoraw Toradex-640x480-224.ppm > \ Toradex-640x480-ascii-224.ppm Copy it into the Linux sources: cp Toradex-640x480-ascii-224.ppm linux-toradex/drivers/video/logo/\ logo_custom_clut224.ppm Activate exclusively custom Linux logo in the kernel configuration: Device Drivers -> Graphics support -> Bootup logo -> Custom 224-color Linux logo And re-compile the kernel. (cherry picked from commit fa2371bff9ac03581881849d8f95678ef3992719)
2016-09-29apalis_tk1: Optimized RAM settingDominik Sliwa
Optimized DVFS table for Apalis TK1 boards. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-09-29spi-tegra114: Warning when clock rate switch failsDominik Sliwa
When setting transfer clock rate out of bounds old clock rate was used without any notice. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-06-29arm: tegra: initial support for apalis tk1Apalis_TK1_LinuxImageV2.6Beta2_20160701Marcel Ziswiler
This patch adds support for the Toradex Apalis TK1 acomputer on module which can be used on different carrier boards. The module consists of a Tegra TK1 SoC, a PMIC solution, 2 GB of DDR3L RAM, a bunch of level shifters, an eMMC, a TMP451 temperature sensor chip, an I210 gigabit Ethernet controller and a SGTL5000 audio codec. Furthermore, there is a Kinetis MK20DN512 companion micro controller for analogue, CAN and resistive touch functionality which is not yet supported. This is known to boot into either a basic Angstrom/OpenEmbedded/Yocto or L4T/JetPack Ubuntu based image. The following things are known to work to a certain extend: - analogue/digital audio - debug UART1 - DVFS power management incl. low power core migration - eMMC - gigabit Ethernet - GPIOs - HDMI (incl. HDA audio) - I2C - LVDS - PCIe - SATA - SD/MMC cards - temperature sensor - USB host ports The rest is untested. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29apalis-tk1: fix backlight pwm and add 800x600 and 1024x600 lvds timingsMarcel Ziswiler
Fix the backlight PWM instance used and add 800x600 and 1024x600 LVDS panel timings. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29video: tegra: correct lvds clk sequenceMarcel Ziswiler
Patch taken from Manoj Gupta's post on NVIDIA's public embedded systems forum: https://devtalk.nvidia.com/default/topic/822612/jetson-tk1/-issue-lvds-panel-enabled-effect-hdmi-out-image-pull-down-menu-items/post/4673174/#4673174 Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29video: tegra: fix build with enabled tegra lvds driverMarcel Ziswiler
This fixes the following build time error in case CONFIG_TEGRA_LVDS is enabled: drivers/video/tegra/dc/sor.h: In function 'tegra_sor_clk_enable': drivers/video/tegra/dc/sor.h:180:2: error: implicit declaration of function 'clk_prepare_enable' [-Werror=implicit-function-declaration] clk_prepare_enable(sor->sor_clk); ^ drivers/video/tegra/dc/sor.h: In function 'tegra_sor_clk_disable': drivers/video/tegra/dc/sor.h:185:2: error: implicit declaration of function 'clk_disable_unprepare' [-Werror=implicit-function-declaration] clk_disable_unprepare(sor->sor_clk); ^ In file included from drivers/video/tegra/dc/dc_priv_defs.h:26:0, from drivers/video/tegra/dc/dc_priv.h:23, from drivers/video/tegra/dc/lvds.c:23: include/linux/clk.h: At top level: include/linux/clk.h:330:19: error: static declaration of 'clk_prepare_enable' follows non-static declaration static inline int clk_prepare_enable(struct clk *clk) ^ In file included from drivers/video/tegra/dc/lvds.h:20:0, from drivers/video/tegra/dc/lvds.c:22: drivers/video/tegra/dc/sor.h:180:2: note: previous implicit declaration of 'clk_prepare_enable' was here clk_prepare_enable(sor->sor_clk); ^ In file included from drivers/video/tegra/dc/dc_priv_defs.h:26:0, from drivers/video/tegra/dc/dc_priv.h:23, from drivers/video/tegra/dc/lvds.c:23: include/linux/clk.h:345:20: error: conflicting types for 'clk_disable_unprepare' [-Werror] static inline void clk_disable_unprepare(struct clk *clk) ^ include/linux/clk.h:345:20: error: static declaration of 'clk_disable_unprepare' follows non-static declaration In file included from drivers/video/tegra/dc/lvds.h:20:0, from drivers/video/tegra/dc/lvds.c:22: drivers/video/tegra/dc/sor.h:185:2: note: previous implicit declaration of 'clk_disable_unprepare' was here clk_disable_unprepare(sor->sor_clk); ^ Final patch taken from Manoj Gupta's post on NVIDIA's public embedded systems forum: https://devtalk.nvidia.com/default/topic/822612/jetson-tk1/-issue-lvds-panel-enabled-effect-hdmi-out-image-pull-down-menu-items/post/4663817/#4663817 Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29apalis-tk1: make hda 2nd sound card hackMarcel Ziswiler
Hack HDA driver to make it the 2nd rather than the first sound card as the first one should be the SGTL5000 which is always present on our T30 and TK1 modules. Especially on Ixora where there is no HDA codec on the carrier board HDA being the first sound card does not make much sense even more though as there was no primary device (e.g. device=hw:0,0). Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com> (cherry picked from commit fff75b252e0aed1d8be2b62234624f726c153776)
2016-06-29apalis-tk1: integrate sgtl5000 audio codecMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29mmc: tegra: apalis-tk1: hack to make sd1 functionalMarcel Ziswiler
Disable the external loopback and use the internal loopback as per SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits being set to 0xfffd according to the TRM. Enable card detect polling as we can't use SD1_CD# aka SDMMC3_CLK_LB_OUT for now as it features some magic properties even though the external loopback is disabled and the internal loopback used as per SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits being set to 0xfffd according to the TRM! Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29apalis_t30/tk1: igb: no nvm and Ethernet MAC address handlingMarcel Ziswiler
Springville/i211 with a blank Flash/iNVM use different PCI IDs. Extend the driver to load despite i210/i211 data sheets claiming tools only, not for driver. Only warn rather than fail on NVM validation failures on Apalis T30. Revise Ethernet MAC address assignment: should now handle up to two instances of custom user MACs (2nd one with a 0x100000 offset). This way customer does not have to worry about NVM on a secondary Ethernet on the carrier board and still gets a valid official MAC address from us (e.g. analogous to how we did it on our Protea carrier board). Use the Toradex OUI as default MAC address if no valid one is encountered. Tested on samples of Apalis T30 2GB V1.0B, V1.0C, V1.1A, Apalis T30 1GB V1.0A, V1.1A and Apalis T30 1GB IT V1.1A both with blank NVMs as well as iNVMs programmed with Intel's defaults. Tested on samples of Apalis TK1 2GB V1.0A and V1.0B both with blank NVMs as well as iNVMs programmed with Intel's defaults. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com> (cherry picked from commit c4c3c7449bdb15c53bfebb0a29c73b24ea810d23)
2016-06-29igb: integrate tools only device supportMarcel Ziswiler
Springville/i211 with a blank Flash/iNVM use a different PCI ID (tools only, not for driver) than properly programmed ones. While at it also fix ethtool time stamping as well as RX flow hash indirection functionality. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com> (cherry picked from commit 2c7123458270c9b3ec9b5ed668f9d55a7f8dbad9)
2016-06-29igb: integrate igb driver 5.3.5.3Marcel Ziswiler
Integrate latest igb driver version 5.3.5.3 (igb-5.3.5.3.tar.gz from e1000.sf.net). Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29tegra: fix dvfs gcc 5.2 build errorMarcel Ziswiler
This fixes the following GCC 5.2 built time error: arch/arm/mach-tegra/tegra_cl_dvfs.c: In function 'monitor_get': arch/arm/mach-tegra/tegra_cl_dvfs.c:372:8: error: 'v' may be used uninitialized in this function [-Werror=maybe-uninitialized] *data &= CL_DVFS_MONITOR_DATA_MASK; ^ arch/arm/mach-tegra/tegra_cl_dvfs.c:2949:6: note: 'v' was declared here u32 v, s; ^ arch/arm/mach-tegra/tegra_cl_dvfs.c: In function 'cl_dvfs_calibrate': arch/arm/mach-tegra/tegra_cl_dvfs.c:372:8: error: 'data' may be used uninitialized in this function [-Werror=maybe-uninitialized] *data &= CL_DVFS_MONITOR_DATA_MASK; ^ arch/arm/mach-tegra/tegra_cl_dvfs.c:902:11: note: 'data' was declared here u32 val, data; ^ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-29tegra12_clocks.c: fix unusual comparisionMax Krummenacher
newer compilers throw the following error: arch/arm/mach-tegra/tegra12_clocks.c: In function 'tegra12_cpu_clk_init': arch/arm/mach-tegra/tegra12_clocks.c:1334:31: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses] c->state = (!is_lp_cluster() == (c->u.cpu.mode == MODE_G))? ON : OFF; Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-06-29ARM: 8429/1: disable GCC SRA optimizationArd Biesheuvel
While working on the 32-bit ARM port of UEFI, I noticed a strange corruption in the kernel log. The following snprintf() statement (in drivers/firmware/efi/efi.c:efi_md_typeattr_format()) snprintf(pos, size, "|%3s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]", was producing the following output in the log: | | | | | |WB|WT|WC|UC] | | | | | |WB|WT|WC|UC] | | | | | |WB|WT|WC|UC] |RUN| | | | |WB|WT|WC|UC]* |RUN| | | | |WB|WT|WC|UC]* | | | | | |WB|WT|WC|UC] |RUN| | | | |WB|WT|WC|UC]* | | | | | |WB|WT|WC|UC] |RUN| | | | | | | |UC] |RUN| | | | | | | |UC] As it turns out, this is caused by incorrect code being emitted for the string() function in lib/vsprintf.c. The following code if (!(spec.flags & LEFT)) { while (len < spec.field_width--) { if (buf < end) *buf = ' '; ++buf; } } for (i = 0; i < len; ++i) { if (buf < end) *buf = *s; ++buf; ++s; } while (len < spec.field_width--) { if (buf < end) *buf = ' '; ++buf; } when called with len == 0, triggers an issue in the GCC SRA optimization pass (Scalar Replacement of Aggregates), which handles promotion of signed struct members incorrectly. This is a known but as yet unresolved issue. (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932). In this particular case, it is causing the second while loop to be executed erroneously a single time, causing the additional space characters to be printed. So disable the optimization by passing -fno-ipa-sra. Cc: <stable@vger.kernel.org> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit a077224fd35b2f7fbc93f14cf67074fc792fbac2)
2016-06-29ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.hBehan Webster
With compilers which follow the C99 standard (like modern versions of gcc and clang), "extern inline" does the wrong thing (emits code for an externally linkable version of the inline function). In this case using static inline and removing the NULL version of return_address in return_address.c does the right thing. Signed-off-by: Behan Webster <behanw@converseincode.com> Reviewed-by: Mark Charlebois <charlebm@gmail.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit aeea3592a13bf12861943e44fc48f1f270941f8d)
2016-06-29kernel: add support for gcc 5Sasha Levin
We're missing include/linux/compiler-gcc5.h which is required now because gcc branched off to v5 in trunk. Just copy the relevant bits out of include/linux/compiler-gcc4.h, no new code is added as of now. This fixes a build error when using gcc 5. Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> (cherry picked from commit 71458cfc782eafe4b27656e078d379a34e472adf)
2016-06-29Revert "mmc: enable flag for disabling access to boot partitions"Marcel Ziswiler
This reverts commit ca90caa335e3ded32ad6b0a92ad0fa00b67b2322. We do require eMMC hardware area boot partition access for fw-util aka U-Boot envrionment access. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-06-16mmc: Allow forward compatibility for eMMCRomain Izard
As stated by the eMMC 5.0 specification, a chip should not be rejected only because of the revision stated in the EXT_CSD_REV field of the EXT_CSD register. Remove the control on this value, the control of the CSD_STRUCTURE field should be sufficient to reject future incompatible changes. Signed-off-by: Romain Izard <romain.izard.pro@gmail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 03a59437ef6b6ad7fb0165cb9b96c08d6bf057fc)
2016-05-27ata: ahci_tegra: disable DIPMtegra-l4t-r21.5Preetham Chandru R
DIPM is not a POR for Tegra AHCI Sata Controller Bug 200087528 Change-Id: I5a742170177c9f57426f3756a8cfafefa88af92b Signed-off-by: Preetham Chandru R <pchandru@nvidia.com> Reviewed-on: http://git-master/r/1013776 (cherry picked from commit 7ebd3b1058491ee87686e9e731b79ecd914e00d9) Reviewed-on: http://git-master/r/1031624 Reviewed-by: Bibek Basu <bbasu@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Winnie Hsu <whsu@nvidia.com>
2016-05-26platform: tegra: nvavp: fix for pre-decrement of clk_enabled cntrBhushan Rupde
Bug 1729847 Change-Id: Ie455b0469a1d4e35453ca9e36c5e90dfdc6f56a2 Signed-off-by: Bhushan Rupde <brupde@nvidia.com> Reviewed-on: http://git-master/r/1147432 Reviewed-by: Mohan Nimaje <mnimaje@nvidia.com> Reviewed-by: Soumen Dey <sdey@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2016-05-24video: tegra: host: Fix ch open error handlingArto Merilainen
In case kernel fails to open a channel (e.g. due to inability to allocate hardware context or turn on the device), the channel open function releases the resources that were already allocated successfully. However, currently the error path additionally calls the channel release function for putting the channel pointer after the private data structures have been freed - thereby causing use-after-free memory usage. This patch reworks error handling in channel open to release channel without risking usage of already freed memory. Bug 1763577 Change-Id: Ic7562e69f2babad653afc7a11e413701494a30b4 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/1148081 Reviewed-by: Winnie Hsu <whsu@nvidia.com> Tested-by: Winnie Hsu <whsu@nvidia.com>
2016-05-23video: tegra: host: check if offset is u32 alignedDeepak Nibade
In nvhost_ioctl_ctrl_module_regrdwr(), we copy offset to read/write from user space but we do not have any check on it So it is possible for user space to add unaligned offset and request read/write which would crash the system Fix this by explicitly checking alignment of the offset passed by user space Bug 1739935 Change-Id: Iea2a07c60500af876b732a0e9d9d08535aa53b5c Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1029405 (cherry picked from commit 422baa09a17a6a17f4e572aa5441ca174634de0d) Reviewed-on: http://git-master/r/1123363 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu <bbasu@nvidia.com> Tested-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Matthew Pedro <mapedro@nvidia.com>