summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-07-25cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()Li Zefan
These 2 syncronize_rcu()s make attaching a task to a cgroup quite slow, and it can't be ignored in some situations. A real case from Colin Cross: Android uses cgroups heavily to manage thread priorities, putting threads in a background group with reduced cpu.shares when they are not visible to the user, and in a foreground group when they are. Some RPCs from foreground threads to background threads will temporarily move the background thread into the foreground group for the duration of the RPC. This results in many calls to cgroup_attach_task. In cgroup_attach_task() it's task->cgroups that is protected by RCU, and put_css_set() calls kfree_rcu() to free it. If we remove this synchronize_rcu(), there can be threads in RCU-read sections accessing their old cgroup via current->cgroups with concurrent rmdir operation, but this is safe. # time for ((i=0; i<50; i++)) { echo $$ > /mnt/sub/tasks; echo $$ > /mnt/tasks; } real 0m2.524s user 0m0.008s sys 0m0.004s With this patch: real 0m0.004s user 0m0.004s sys 0m0.000s tj: These synchronize_rcu()s are utterly confused. synchornize_rcu() necessarily has to come between two operations to guarantee that the changes made by the former operation are visible to all rcu readers before proceeding to the latter operation. Here, synchornize_rcu() are at the end of attach operations with nothing beyond it. Its only effect would be delaying completion of write(2) to sysfs tasks/procs files until all rcu readers see the change, which doesn't mean anything. Signed-off-by: Li Zefan <lizefan@huawei.com> Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Colin Cross <ccross@google.com> Conflicts: kernel/cgroup.c
2014-07-25apalis/colibri t30: use hda hdmi audio and split sound initMarcel Ziswiler
Use HDA HDMI audio now on Colibri T30 as well allowing for up to 7.1 multi-channel playback. Split board sound initialisation between Apalis and Colibri T30 in order to distinguish better between default SPDIF being supported out-of-the-box on Apalis vs. this being an optional feature for the Colibri. Therefore remove SPDIF for the Colibri T30. While at it add csus clock required for vi_sensor camera master clock on Apalis T30 and clk_out_2/extern2 for Colibri T30, fix debug UART1 initialisation, get rid of spurious CONFIG_SND_USB enable and further clean-up both board platform data files.
2014-07-25apalis/colibri t30: 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 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).
2014-07-25apalis/colibri t20/t30: enable fhandle for systemdMarcel Ziswiler
Enable CONFIG_FHANDLE required for systemd >= 209 according to lists.freedesktop.org/archives/systemd-devel/2014-February/017362.html While at it put them all 3 on par concerning ARM Errata configuration.
2014-07-23apalis/colibri t30: fix issue with slow spdif clockMarcel Ziswiler
Fix issue with slow SPDIF clock by just doubling desired rate prior to doing any further calculations on it. BTW: A proper fix might involve overall clock doubler configuration.
2014-07-22apalis/colibri t20/t30: fix/introduce spi device controller dataMarcel Ziswiler
Fix (Colibri) resp. introduce (Apalis) SPI device controller data to properly use HW based chip select with one clock of setup and hold time each for both MCP2515 CAN controller(s) as well as spidev.
2014-07-21mmc: card: retry if transfer aborted due to out of rangeStefan Agner
This works around a issue we see when using eMMC 4.5 on tegra SDHCI host controller.
2014-07-21mmc: tegra: use 1.8V quirk only on affected instancesStefan Agner
The 1.8V quirk also affected the internal eMMC which disabled newer modes such as SDR50, SDR104 and DDR50. This in turn lead to an out of spec usage since the clock was still 50MHz. By creating a no_1v8 field in the platform data we can now enable this work around on a per-instance basis. Hence we enable the quirk only on the controllers which are connected to the external SD-slots.
2014-07-16arm: tegra3: PCIe Clock and Reset Conform to SpecificationEric Yuen
PCIe Reset line must be asserted for at least 100us after clock is enabled. PEX 2 Controller Register fix, offsets are not at constant intervals. Bug 1521306 Reviewed-on: http://git-master/r/225399 (cherry picked from commit df0760bf515236bed2e87e590509642ab72a01b5) Change-Id: I7b44ea51e7e02f2bca93cfc75ed85e01ab91fe03 Signed-off-by: Shreshtha Sahu <ssahu@nvidia.com>
2014-07-14fbcon: workaround full screen boot-logo issueRaul Munoz
Force round down in division calculating required logo height as preceding code did round up as follows: logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height); Which resulted in no boot-logo shown at all due to not enough lines being available.
2014-07-08asoc: tegra20_ac97: fix sampling rateMarcel Ziswiler
The AC97 sampling rate is really fixed to 48 kHz at all times. While at it clean-up dangerous time out handling.
2014-07-08Linux playback channel fixDaniel Kochmanski
2014-07-08AC97 working capture deviceDaniel Kochmanski
2014-07-08media: vi driver on Colibri T20 is working againWojciech Bieganski
This commit resolves an issue of non-working vi camera driver on Colibri T20 occured after a l4t-r16-r4 merge.
2014-07-08media: AS0260 camera driver improvementsWojciech Bieganski
2014-05-09colibri t20/t30: add spi controller platform data for hw csMarcel Ziswiler
Add SPI controller platform data required for use of hardware chip selects. While at it pull-up SPI chip select pin due to NVIDIA's designers taking the term chip select a little too personal: they indeed only select a chip otherwise all the chip select pins are just left floating!
2014-05-09colibri t20/t30: clarify mcp2515 resetMarcel Ziswiler
The MCP2515 on the Colibri EvalBoard V3.1a actually uses regular system reset aka RESET_OUT# on SODIMM 87 to reset the MCP2515. Therefore clean-up resp. remove any MECS Tellurium legacy in that respect. While at it adjust copyright year, re-order some include, clean-up some struct spacing, re-order clocks and improve some comments.
2014-05-08media: enabled CSI mode in AS0260 camera driverWojciech Bieganski
2014-04-29arm: tegra: dc: disable dc when framebuffer off detectedStefan Agner
Don't initialize the whole display controller (dc) when framebuffer mode is set to off. This avoids creation of the /dev/tegra_dc_x device. The tegra X driver requires for each tegra_dc_x device an framebuffer device with the same id. This patch avoids creation of both, which makes the tegra X driver load correctly. Note: Turning off tegrafb0 still leads to kernel crash due to hard coded device enumeration.
2014-04-22can: mcp251x: fix locking in BERR counter functionalityMarcel Ziswiler
Symptoms: The interface stops receiving CAN frames when reception of CAN frame and call to the introduced get_berr_counter function coincide. Reproduction: Ip requests, among others, the berr field for the can interfaces. NOTE that it does so even if called as 'ip link show lo', as interface-based filtering is only done after the system calls to receive interface information. Run candump on a MCP-based can interface that has a lot of traffic (via 'cangen -g1' on another can node). On the system with the MCP chip, run while /bin/true; do ip link > /dev/null ; done; Reception of CAN-frames (as shown by candump) will cease within seconds. This issue got introduced by commit 1b59090a47101b4bf379d2c35986ad3f0bcb2aa1 as access to the SPI registers of the MCP251x were not locked. Issue report and patch courtesy David R. Piegdon of Indurad GmbH.
2014-04-22media: added improved Aptina AS0260 driverWojciech Bieganski
Driver features: 1. Supported formats: - Full HD, 1920x1080, 8.5 FPS, YUYV - VGA, 640x480, 30 FPS, YUYV 2. Available controls with enabled AE (auto exposure): - brightness [0...255], - contrast [16...64], - saturation [0...256], - hue [-2200...2200], - gamma [100...280]. 3. Works only in parallell interface mode (CSI in progress). 4. No external tools needed (for i2c).
2014-04-22media: image from analog cameras is back to full speedWojciech Bieganski
This commit restores the full framerate (25 FPS), after a drop to 16 FPS caused by a l4t-r16-r4 merge.
2014-04-22media: added camera settings per decoderWojciech Bieganski
This commit adds settings such as: - values of horizontal/vertical active start, - enabling/disabling internal sync, to the private data of decoders: MAX9526, ADV7180, TVP5150, OV7670 and AS0260. The feature is available through *_tegra_camera_platform_data struct initialised in board-*.c files.
2014-04-04media: fixes in board-*.c files for Colibri T20/T30 and Apalis T30Wojciech Bieganski
This commit fixes the crash that occures while loading tegra_v4l2_camera module caused by its new features (private data per sensor). updated files: arch/arm/mach-tegra/board-apalis_t30.c arch/arm/mach-tegra/board-colibri_t20.c arch/arm/mach-tegra/board-colibri_t30.c
2014-04-04media: symbol tegra_powergate_partition now exportsWojciech Bieganski
This commit fixes the kernel compilation error with the lack of the export of tegra_powergate_partition symbol in arch/arm/mach-tegra/powergate.c
2014-04-04media: a quick fix to make tegra_v4l2_camera module reloadableWojciech Bieganski
2014-04-04media: tegra_v4l2: add CSI pad calibrationBryan Wu
Bug 1369083 Change-Id: I1a81bcb62e8f6bb654ffbebba09661187ab4b512 Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/309536 Tested-by: Vikram Fugro <vfugro@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Kaustubh Purandare <kpurandare@nvidia.com> Reviewed-by: Winnie Hsu <whsu@nvidia.com> Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2014-04-04media: tegra_v4l2: add dual camera supportBryan Wu
Add support for dual cameras from both CSI-A and CSI-B: - move all the CSI settings into video buffer struct - queue the video buffer struct to a dedicated queue - process one video buffer struct from the queue at one time Bug 1369083 Change-Id: Ie64d69282ab991b66e97327e288a2bacde088bd6 Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/246269 (cherry picked from commit 228b0c2d9ae3fa1121f88836626d654ae0fc4ff0) Reviewed-on: http://git-master/r/279987 Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Tested-by: Matthew Pedro <mapedro@nvidia.com> Conflicts: drivers/media/video/tegra_v4l2_camera.c
2014-04-04media: tegra_v4l2: pass platform_data via soc_camera_linkBryan Wu
soc_camera_link supports passing power on/off control callback to soc_camera stack. So the power control can be handled by soc_camera stack instead of our Tegra V4L2 host driver. Also pass other platform_data fields via soc_camera_link instead of a hacking nvhost_device_data struct. Bug 1240806 Bug 1369083 Change-Id: I443a7d28196cc8292805da70d2d5ff1c3cd50a5d Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/246267 (cherry picked from commit 9083d270bf93b583cd5bf5151a52ea250f8541a3) Reviewed-on: http://git-master/r/279986 Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Tested-by: Matthew Pedro <mapedro@nvidia.com> Conflicts: drivers/media/video/tegra_v4l2_camera.c
2014-04-04media: tegra: add supporting for RAW8/RAW10 input and outputBryan Wu
CSI host controller of Tegra can support Bayer Raw8 and Raw 10 data input, it also output data as extended 16-bit data format in memory directly. Raw data output should be handled by the second output channel. This patch add supporting for Raw data input/output and the second output channel. All were tested on Cardhu board. Change-Id: Ifd1d8c94671a1d4571dcf176774e2d3cffafc399 Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/200225 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Matthew Pedro <mapedro@nvidia.com> Conflicts: drivers/media/video/tegra_v4l2_camera.c
2014-03-31apalis_t30: ieee 1588 ptp supportMarcel Ziswiler
Enable IEEE 1588 precision time protocol (PTP) support.
2014-03-31apalis_t30: 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 and Apalis T30 1GB V1.0A both with blank NVMs as well as iNVMs programmed with Intel's defaults.
2014-03-31igb: 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.
2014-03-31igb: integrate igb driver 5.1.2Marcel Ziswiler
Integrate latest igb driver version 5.1.2 (igb-5.1.2.tar.gz from e1000.sf.net).
2014-03-31ptp: Add a method for obtaining the device index.Richard Cochran
This commit adds a method that MAC drivers may call in order to find out the device number of their associated PTP Hardware Clock. Signed-off-by: Richard Cochran <richardcochran@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-31ethtool: Introduce a method for getting time stamping capabilities.Richard Cochran
This commit adds a new ethtool ioctl that exposes the SO_TIMESTAMPING capabilities of a network interface. In addition, user space programs can use this ioctl to discover the PTP Hardware Clock (PHC) device associated with the interface. Since software receive time stamps are handled by the stack, the generic ethtool code can answer the query correctly in case the MAC or PHY drivers lack special time stamping features. Signed-off-by: Richard Cochran <richardcochran@gmail.com> Reviewed-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-31ethtool: Centralise validation of ETHTOOL_{G, S}RXFHINDIR parametersBen Hutchings
Add a new ethtool operation (get_rxfh_indir_size) to get the indirectional table size. Use this to validate the user buffer size before calling get_rxfh_indir or set_rxfh_indir. Use get_rxnfc to get the number of RX rings, and validate the contents of the new indirection table before calling set_rxfh_indir. Remove this validation from drivers. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Acked-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-13solved low framerate issue with analog camerasColibri_T30_LinuxImageV2.1Beta3_20140318Colibri_T20_LinuxImageV2.1Beta3_20140318Apalis_T30_LinuxImageV2.1Beta3_20140318Wojciech Bieganski
2014-03-13added Aptina AS0260SOC driverWojciech Bieganski
2014-03-13OV7670 and TVP5150 drivers added, updated configsWojciech Bieganski
2014-03-12PCI: Disable Gen2 for Tegra20 and Tegra30Eric Brower
Tegra20 and Tegra30 do not support gen2 PCIe, so correct the register setting to disable it. Signed-off-by: Eric Brower <ebrower@nvidia.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Thierry Reding <treding@nvidia.com>
2014-03-12Merge branch 'l4t/l4t-r16-r2' into colibriMarcel Ziswiler
Conflicts: drivers/media/video/tegra_v4l2_camera.c reverted to current driver supporting ACM rather than CSI2 drivers/media/video/videobuf2-dma-nvmap.c drivers/video/tegra/host/Makefile
2014-03-10tty: serial: tegra: initialize with lower baudrateStefan Agner
While setup, there is a time the serial port is running on a predefined speed (115200). When data arrived during this phase at a lower baudrate (e.g. 9600), a lot of overrun and break error messages were shown. Due to those messages, the terminal setup never finished, and thus never reached the selected baudrate (e.g. 9600). By choosing a lower baudrate at the startup (9600), a lot less (if any at all) messages are shown and those initialization always succeeds. Another solution would be to disable those messages completely. However, while normal mode its good to have those UART error messages.
2014-02-10video: tegra: fb: colibri_t20: hack avoid 24 Hz modeMarcel Ziswiler
Hack to avoid 24 Hz mode in X resulting in no display at all. This has been encountered using e.g. a Samsung SyncMaster F2380 if connected by HDMI. root@colibri-t20:~# xrandr Screen 0: minimum 256 x 128, current 1920 x 1080, maximum 2048 x 2048 LVDS-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1920x1080 60.0*+ HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 160mm x 90mm 1920x1080 60.0 + 24.0* 1680x1050 59.9 1280x1024 75.0 60.0 1440x900 75.0 59.9 1280x960 60.0 1280x800 59.9 1152x864 75.0 1280x720 60.0 50.0 1024x768 75.0 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 720x576 50.0 720x480 59.9 640x480 75.0 72.8 66.7 59.9 720x400 70.1 This is really just enabling the same hack from Apalis/Colibri T30 which is now relevant on the Colibri T20 as well due to the modedb changes: 3a6fc5303b9e798295caa01d2cfe75b05fdccf55
2014-02-06video: tegra: check if framebuffer is registredColibri_T30_LinuxImageV2.1Beta2_20140206Colibri_T20_LinuxImageV2.1Beta2_20140207Apalis_T30_LinuxImageV2.1Beta2_20140206Stefan Agner
Before updating modes on HDMI hotplug, check if framebuffer is registered at all. This allows to disable framebuffers completely.
2014-02-04input: touchscreen: fusion: platform independent GPIO descriptionStefan Agner
Use platform independent description for requested GPIOs.
2014-02-04apalis_t30: add Fusion touchscreen driverStefan Agner
Activate Fusion touchscreen driver. Use GPIO 5/6 as pen down/reset GPIO and provide a helper function to free the GPIO before the driver requests them.
2014-01-29Merge branch 'fusion-touchscreen' into colibriStefan Agner
2014-01-29colibri_t20/colibri_t30: use new platform data for fusion touchscreenStefan Agner
Fusion touchscreen driver now uses platform data to do GPIO initialization by itself. Make use of this by providing GPIO numbers instead of doing initialization in the board initialization.
2014-01-29input: touchscreen: fusion: fix error handlingStefan Agner
Fix chip reset by sleeping long enought after reset. Do proper error handling (free GPIO on failure). Use dev_* for message logging to get similar messages for all fusion driver related errors and warnings.