summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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>
2016-05-23camera: tegra: Fix security vulnerability issueFrank Chen
Deprecate outdated UPDATE_GPIO function in camera.pcl driver. This function is not used by any code anymore and is a security vulnerability since it is trying to access user mode pointer directly. Bug 1745102 Change-Id: I4e7e5f9c186f980dcadfe52ec4284102255f19cf Signed-off-by: Frank Chen <frankc@nvidia.com> Reviewed-on: http://git-master/r/1115302 (cherry picked from commit 2e5c355c904a19d71456a04c70f3fb4fc7d918b0) Reviewed-on: http://git-master/r/1123362 Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Tested-by: Matthew Pedro <mapedro@nvidia.com>
2016-05-20camera: tegra: Fix security vulnerability issueFrank Chen
We need to validate power on/off function size passed in from user mode in order to avoid integer overflow or out of memory failures. Bug 1745100 Change-Id: Idddd848f7dc1e864559ad219f9204325128484e5 Signed-off-by: Frank Chen <frankc@nvidia.com> Signed-off-by: Bibek Basu <bbasu@nvidia.com> Reviewed-on: http://git-master/r/1114354 (cherry picked from commit 8b3afcc132882f3102083f9a24de7f55476ca59b) Reviewed-on: http://git-master/r/1150944 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2016-05-20media: tegra: camera: Fix stack overreadAmey Asgaonkar
We are not checking a variable which is user controlled. This can lead to reading of the stack data. Adding a check to ensure it is less than the max possible value of the variable. Bug 1763649 Change-Id: I395e882d030199bdd7684837906a9b5d60741650 Signed-off-by: Amey Asgaonkar <aasgaonkar@nvidia.com> Signed-off-by: Bibek Basu <bbasu@nvidia.com> Reviewed-on: http://git-master/r/1150943 GVS: Gerrit_Virtual_Submit Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2016-05-16arm: tegra: new dvfs update for aging factorBibek Basu
Following support added DVFS for Gauranteed freq considering aging CPU freq limit at higher temperature EDP max current limits for each SKU Bug 200195229 Change-Id: If00f3fd6b891cf366047dda331bd7ab1c15b40f7 Signed-off-by: Bibek Basu <bbasu@nvidia.com> Reviewed-on: http://git-master/r/1146577 GVS: Gerrit_Virtual_Submit Reviewed-by: Winnie Hsu <whsu@nvidia.com>
2016-05-13arm: tegra: emc dvfs selection based on ddrBibek Basu
select emc evfs table based on DDR present using RAMCODE Bug 200195279 Change-Id: I7fbc693383c9e231b2c2119020eebc7bba544c6e Signed-off-by: Bibek Basu <bbasu@nvidia.com> Reviewed-on: http://git-master/r/1144528 Reviewed-by: Jimmy Zhang <jimmzhang@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Winnie Hsu <whsu@nvidia.com>
2016-05-02arm: config: T124: L4T: systemd related configsNinad Malwade
Added kernel configurations to support systemd functionality boot.img size is increased by 69632 bytes Bug 1731796 Change-Id: I4209fee15843ac645600500ed8c9fc37b7ff0c04 Signed-off-by: Ninad Malwade <nmalwade@nvidia.com> Reviewed-on: http://git-master/r/1134828 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Rajkumar Kasirajan <rkasirajan@nvidia.com> Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2016-04-28video: tegra: nvmap: Add ref count in nvmap_vma_listSri Krishna chowdary
Add ref count to prevent invalid vma removal from the h->vmas list and also allow addition of a different vma which also has same nvmap_vma_priv as vm_private_data into the h->vmas list. Both cases are allowed in valid usage of nvmap_vma_open/nvmap_vma_close. Bug 200164002 Change-Id: Ifc4d281dd91e1d072a9a3ee85e925040bd65a6bc Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/1133708 Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
2016-04-28[media] v4l: vb2-dma-contig: fix vb2_get_vma()Sri Krishna chowdary
nvmap expects that same VMA is opened and closed to disallow memory leaks. So, nvmap panics if a previously non-existent vma is being closed through it. Hence modify the sequence in vb2_get_vma() to open the vma_copy before returning it. This way nvmap sees that the vma_copy exists in its list and will close the vma. Bug 200164002 Change-Id: I45dfb8ca710375a0e70d9802ebdcc9fd4d0b4600 Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/931997 (cherry picked from commit bf1d15d8a879a599f9801310cecbbb61ea60e931) Reviewed-on: http://git-master/r/1133707 Tested-by: Bryan Wu <pengw@nvidia.com> Reviewed-by: Bryan Wu <pengw@nvidia.com> Reviewed-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2016-04-05media: tegra: nvavp: Fix reloc offset checkSomu Sundaram
- Check whether command buffer data offset is 32-bit aligned - Check whether relocation offset is 32-bit aligned and calculated offset is within command buffer size - Check whether target offset is 32-bit aligned and derived address is within target buffer size Bug 1741516 Change-Id: Ie5370bc1538c8cf9a702904fb88eb850baeb063d Signed-off-by: Somu Sundaram <somasundaram@nvidia.com> Reviewed-on: http://git-master/r/1113949 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Tested-by: Somu Sundaram <somasundarams@nvidia.com> Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2016-04-05media: tegra: nvavp: Fix arbitrary kernel writeSomu Sundaram
Add checks for command buffer offset, relocation offset in command buffer and target offset for patching relocation to prevent aritrary kernel write Bug 1741516 Change-Id: Ia6183ca75f983c0ede23606be9e5d824aa5fa41d Signed-off-by: Somu Sundaram <somasundaram@nvidia.com> Reviewed-on: http://git-master/r/1111699 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Matthew Pedro <mapedro@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: Somu Sundaram <somasundarams@nvidia.com> Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2016-03-29pipe: iovec: Fix memory corruption when retrying atomic copy as non-atomicBen Hutchings
pipe_iov_copy_{from,to}_user() may be tried twice with the same iovec, the first time atomically and the second time not. The second attempt needs to continue from the iovec position, pipe buffer offset and remaining length where the first attempt failed, but currently the pipe buffer offset and remaining length are reset. This will corrupt the piped data (possibly also leading to an information leak between processes) and may also corrupt kernel memory. This was fixed upstream by commits f0d1bec9d58d ("new helper: copy_page_from_iter()") and 637b58c2887e ("switch pipe_read() to copy_page_to_iter()"), but those aren't suitable for stable. This fix for older kernel versions was made by Seth Jennings for RHEL and I have extracted it from their update. CVE-2015-1805 Bug 1744232 References: https://bugzilla.redhat.com/show_bug.cgi?id=1202855 Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 14f81062f365fa9e3839bb2a16862217b71a553c) Change-Id: Ia5f97a4cfdaa2eb0e2a4974c2f04bc9a75934bd4 Reviewed-on: http://git-master/r/1111957 (cherry picked from commit e5bc77c0676277fd0b58ee469bd5638019a65d95) Reviewed-on: http://git-master/r/1112337 GVS: Gerrit_Virtual_Submit Tested-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2016-03-16media: tegra: nvavp: Fix heap overflowSomasundaram S
Increase NVAVP_MAX_RELOCATION_COUNT to max. possible value and add check to return error if num_relocs in nvavp_pushbuffer_submit_ioctl exceeds NVAVP_MAX_RELOCATION_COUNT Bug 1739930 Change-Id: Ief36cedd692aa53135fc6a0039b19f18609259dd Signed-off-by: Somasundaram S <somasundaram@nvidia.com> Reviewed-on: http://git-master/r/1030885 Tested-by: Somu Sundaram <somasundarams@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2016-03-14gpu: nvgpu: validate wait notification offsetKonsta Holtta
Make sure that the notification object fits within the supplied buffer. Bug 1739182 Change-Id: Ifb66f848e3758438f37645be6f534f5b60260214 Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1026431 (cherry picked from commit 2484c47f123c717030aa00253446e8756e1a0807) Reviewed-on: http://git-master/r/1030663 Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Tested-by: Matthew Pedro <mapedro@nvidia.com>
2016-03-14gpu: nvgpu: validate error notifier offsetKonsta Holtta
Make sure that the notifier object fits within the supplied buffer. Bug 1739183 Bug 1739932 Change-Id: I713574ce797ffc23cec10b5114f469dbadc68f1e Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1026410 (cherry picked from commit f476b93eb19b962b8760457102448bd533efc54d) Reviewed-on: http://git-master/r/1029379 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2016-03-14video: tegra: host: validate error notifier offsetKonsta Holtta
Make sure that the notifier object fits within the supplied buffer. Bug 1739183 Change-Id: Ifbf46eddea86bedf0236851ea1c3f73e5f820beb Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1026409 (cherry picked from commit 4086d2137e9b51137aa335fa264d924c73dea5fc) Reviewed-on: http://git-master/r/1029074 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
2016-01-12watchdog: remove timeout setting in open callJeetesh Burman
timeout should not be set as part of open call. It should be set as part of Probe if watchdog enabled on probe, Otherwise timeout should be 0 since watchdog is not enabled. Bug 200160105 Change-Id: I2bc0f35436dafd01d17e3ea2ec5459fd0d75af5a Signed-off-by: Jeetesh Burman <jburman@nvidia.com> Reviewed-on: http://git-master/r/927429 Reviewed-by: Bibek Basu <bbasu@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2016-01-12watchdog: enable TEGRA_WATCHDOG_ENABLE_ON_PROBEJeetesh Burman
enable TEGRA_WATCHDOG_ENABLE_ON_PROBE to set "timeout" in probe call Bug 200160105 Change-Id: Ifcef77b3229acee821c5cdd2f31e449e010b9d2f Signed-off-by: Jeetesh Burman <jburman@nvidia.com> Reviewed-on: http://git-master/r/927464 GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2015-12-10tegra: ictlr: clear error status registerBibek Basu
Clear error status register during init Bug 1709814 Change-Id: I348526828015c84027b647bc728355ac9271a5fe Signed-off-by: Bibek Basu <bbasu@nvidia.com> Reviewed-on: http://git-master/r/842868 Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2015-12-10ata: ahci: Enable 40 bit alignment detectionPreetham Chandru R
Bug 1694187 Change-Id: Idb8d95f0a7bc099989cc5b7b0bc97bf5cc896b32 Signed-off-by: Preetham Chandru R <pchandru@nvidia.com> Reviewed-on: http://git-master/r/837972 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Reviewed-by: Venu Byravarasu <vbyravarasu@nvidia.com>