summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2018-11-29net: usb: asix: add testmode supportDominik Sliwa
Using module parameter, Etherent compliance testing can be run. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-11-29Input: atmel_mxt_ts - fix reset-gpio for level based irqsSebastian Reichel
The current reset-gpio support triggers an interrupt storm on platforms using the maxtouch with level based interrupt. The Motorola Droid 4, which I used for some of the tests is not affected, since it uses a edge based interrupt. This change avoids the interrupt storm by enabling the device while its interrupt is disabled. Afterwards we wait 100ms. This is important for two reasons: The device is unresponsive for some time (~22ms for mxt224E) and the CHG (interrupt) line is not working properly for 100ms. We don't need to wait for any following interrupts, since the following mxt_initialize() checks for bootloader mode anyways. This fixes a boot issue on GE PPD (watchdog kills device due to interrupt storm) and does not cause regression on Motorola Droid 4. Fixes: f657b00df22e ("Input: atmel_mxt_ts - add support for reset line") Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Reviewed-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit ca1cd36cef00260db6b35b32d863e0c580c0488d) Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> (cherry picked from commit 40af4dba5fe9c14bd254fde06b1f64f8c0348974)
2018-11-29Input: atmel_mxt_ts - add support for reset lineSebastian Reichel
Provide support for controlling reset pin. If this is not driven correctly the device will be held in reset and will not respond. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit f657b00df22e231da217ca0162a75db452475e8f) Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> (cherry picked from commit 51a32466a0ca40843039b6d1f1e719bc93db8a21)
2018-11-29Input: atmel_mxt_ts - use more managed resourcesSebastian Reichel
Switch mxt_data and interrupt to resource managed allocation methods, which cleans up the driver slightly and prepares for adding reset GPIO support. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit 8cc8446b9b62ef954b630ed30e53bd1553e916a6)
2018-11-29Input: atmel_mxt_ts - add T100 as a readable objectMaxime Roussin-Bélanger
When using the 'object' sysfs attribute, T100 is not displayed in the output. Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit 089b50d95948f691589cca4d81f1f8761747dbaa)
2018-11-29Input: touchscreen - use local variables consistentlyGuenter Roeck
If a function declares a variable to access a structure element, use it consistently. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit d7ddf15414dd598b9b875664e6b7aebe6c988f5d)
2018-11-29Revert "input: atmel_mxt_ts: support reset gpio line"Dominik Sliwa
This reverts commit 28531a1ff5ca27c0ab7e2f99bbb0058858b72aa5.
2018-09-27mtd: nand: add missing nand manufacturers idsMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2018-06-19input: atmel_mxt_ts: support reset gpio lineDominik Sliwa
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit 22a2065b9a3fa6ad458e3100b66c4acaa05f2466) Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-03-28crypto, tegra: fix build without pm runtimeColibri-T30_LXDE-Image_2.8b2.97-20180331Colibri-T20_LXDE-Image_2.8b2.97-20180331Apalis-T30_LXDE-Image_2.8b2.97-20180331Marcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2017-09-26input: atmel_mxt_ts driver updateNick Dyer
Update mxt driver to upstream version. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-09-20tegra_udc.c: fix compilation with gcc 7Max Krummenacher
With gcc 7 the following compile time error occurs: | .../drivers/usb/gadget/tegra_udc.c:2565:17: error: 'out' directive writing 3 bytes into a region of size between 2 and 11 [-Werror=format-overflow=] | sprintf(name, "ep%dout", i); | ^~~~~~~~~ | .../drivers/usb/gadget/tegra_udc.c:2565:3: note: 'sprintf' output between 7 and 16 bytes into a destination of size 14 | sprintf(name, "ep%dout", i); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ The last end point will never be greater than 32 but the compiler can not find this out from the code. Work around this by passing a format specifier to interpreat i as a signed char. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-09-20video: tegra: make tegra_fb_find_mode check default modesDominik Sliwa
We were only looking in tegra, VESA and CEA tables. Let's also check standard video mode definitions table Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-06-30iio: adc: fix number of channels when not using TS blockStefan Agner
The number of channels registered when not using the touchscreen block has been wrong. This did not allow to access all channels in case where touchscreen is not used. By default Apalis and Colibri T30 do use the touchscreen block, so the bug has not affected the products when used with default platform data. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-03-31drivers/base: fix compiler warning in SoC export driver - idr should be idaLee Jones
This fixes: note: expected ‘struct ida *’ but argument is of type ‘struct idr *’ warning: passing argument 1 of ‘ida_pre_get’ from incompatible pointer type Reported-by: Arnd Bergman <arnd@arndb.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 3a4ffe930a2d2dad07604fe74d21b878decc6461)
2017-03-31drivers/base: add bus for System-on-Chip devicesLee Jones
Traditionally, any System-on-Chip based platform creates a flat list of platform_devices directly under /sys/devices/platform. In order to give these some better structure, this introduces a new bus type for soc_devices that are registered with the new soc_device_register() function. All devices that are on the same chip should then be registered as child devices of the soc device. The soc bus also exports a few standardised device attributes which allow user space to query the specific type of soc. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 74d1d82cdaaec727f5072eb1c9f49b7e920e076f)
2017-03-31colibri_t20: hack: prevent boot lock-up if hdmi is not connectedMarcel Ziswiler
Hack to prevent boot lock-up if HDMI is not connected. This has been observed on recent T20 SoC production lots produced some when after mid 2015. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2017-03-31mmc: core: add eMMC hardware reset supportAdrian Hunter
eMMC's may have a hardware reset line. This patch provides a host controller operation to implement hardware reset and a function to reset and reinitialize the card. Also, for MMC, the reset is always performed before initialization. The host must set the new host capability MMC_CAP_HW_RESET to enable hardware reset. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Chris Ball <cjb@laptop.org> (cherry picked from commit b2499518b5ad7e28bb3ed348fd3f370eeb1e36c0)
2016-09-29video: tegra: dsi: fix gcc-6 compilationMarcel Ziswiler
drivers/video/tegra/dc/dsi.c: In function 'tegra_dsi_read_fifo': drivers/video/tegra/dc/dsi.c:2515:3: error: this 'if' clause does not guard... [-Werror=misleading-indentation] if (rd_fifo_cnt << 2 > DSI_READ_FIFO_DEPTH) ^~ drivers/video/tegra/dc/dsi.c:2518:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if' break; ^~~~~ Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2016-09-29tegra: HDMI allow more aspect ratiosDominik Sliwa
When connected display EDID presents aspect ratio that is in valid range, but it's not in a table of valid ratios accept it with a warning message. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-09-29tegra: Fix unsupported HDMI screen crashDominik Sliwa
Connecting unsuported screen to HDMI resulted in kernel panic. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2016-06-22mmc: sdhci: handle command timeout after transfer complete interruptNicolas Serafini
On a tegra3 platform with Hynix eMMC we can observe that sometimes we receive a command timeout after a transfer complete interrupt on a multiple block read request. Here is the output using MMC_DEBUG and ftrace. When it works: tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 0 enabled=1 tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 52000000 enabled=0 __mmc_start_req: mmc0: starting CMD18 arg 00a73044 flags 000000b5 __mmc_start_req: mmc0: blksz 512 blocks 2 flags 00000200 tsac 150 ms nsac 1000 __mmc_start_req: mmc0: CMD12 arg 00000000 flags 0000049d sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 sdhci_finish_command: sdhci_finish_command:1075 sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000002 sdhci_tasklet_finish: sdhci_tasklet_finish:2064 When we have the error: tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 0 enabled=1 tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 52000000 enabled=0 __mmc_start_req: mmc0: starting CMD18 arg 00a63d12 flags 000000b5 __mmc_start_req: mmc0: blksz 512 blocks 2 flags 00000200 tsac 150 ms nsac 1000 __mmc_start_req: mmc0: CMD12 arg 00000000 flags 0000049d sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001 sdhci_finish_command: sdhci_finish_command:1075 sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00018000 ------NOW THE REQUEST BLOCK UNTIL TIMEOUT------ We can see that when it works the multiple read blocks command stopped by the CMD12 receive two interrupts. The first is the Transfer complete interrupt (SDHCI_INT_RESPONSE) and just after the Block Gap Event interrupt (SDHCI_INT_DATA_END). In this case the command is finished and the data is finished too. In the bad case instead of receiving SDHCI_INT_DATA_END we receive a command timeout error (SDHCI_INT_TIMEOUT) but command was already finished by the SDHCI_INT_RESPONSE so not more command is waiting and the driver wait until the timeout timer end because this case is not managed. Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-22mmc: host: sdhci: fix suspend/resume issueMarcel Ziswiler
This fixes the following eMMC suspend/resume issue as seen on Colibri T30 1GB IT V1.1A: [ 75.479664] mmcblk0: error -110 transferring data, sector 287240, nr 2, cmd response 0x900, card status 0xc00 [ 75.580923] end_request: I/O error, dev mmcblk0, sector 287240 [ 75.586782] Buffer I/O error on device mmcblk0p2, logical block 123140 [ 75.593313] lost page write due to I/O error on mmcblk0p2 (fixes an issue probably caused by a merge conflict introduced by commit 7f7b042a978edfc6c7d1e14ec9c6ec01ffcc284b) Signed-off-by: Mirza Krak <mirza.krak@hostmobility.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-06-22media: Epson S2D13P04 decoder support for Colibri T30Wojciech Bieganski
This commit adds support for Epson S2D13P04 (4-input analog video decoder with parallel interface) for Colibri T30. Currently the only supported standard is PAL-B/G/I/N and the output is arranged in 'merge mode' (4 input streams on one screen) Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2016-03-23rtl8192cu: Add new device IDsColibri_T30_LinuxImageV2.6Beta1_20160331Colibri_T20_LinuxImageV2.6Beta1_20160331Apalis_T30_LinuxImageV2.6Beta1_20160331Larry Finger
The latest vendor (non-mac80211) driver of 9/22/2011 shows some new device IDs for rtl8192cu. In addition, some typos in the table are fixed and one duplicate is removed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> (cherry picked from commit 6cddafab54e9a17b2efefe982547865955a5ff3a)
2016-03-21Input: sentelic - use "static inline" instead of "inline"Khem Raj
gcc-5 defaults to gnu11 which used c99 inline semantics in c99 'inline' is not externally visible unlike gnu89, therefore we use 'static inline' which has same semantics between gnu89 and c99 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit bde304575f3ecaa9570a9329196dffaadf3adafa)
2016-03-21Input: lifebook - use "static inline" instead of "inline" in lifebook.hChen Gang
For functions defined in header files we should use static inline rather than inline, which breaks under the latest upstream gcc (which is really gcc issue, but static inline is better suited regardless). The related error (with allmodconfig under tile): MODPOST 4002 modules ERROR: "lifebook_detect" [drivers/input/mouse/psmouse.ko] undefined! Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit bd447b61c49fc26f0299587db3e6d66da49dc529)
2015-11-02Various Tegra HS UART backportsMitja Spes
Various Tegra HS UART backports Signed-off-by: Mitja Spes <mitja@lxnav.com>
2015-11-02Fix HS UART HW buffer overrun issueMitja Spes
Fix HS UART HW buffer overrun issue when using no flow control Signed-off-by: Mitja Spes <mitja@lxnav.com>
2015-11-02input: touchscreen: fusion: implement multitouch with slot handlingStefan Agner
According to multi-touch-protocol.txt the kernel knows two type of devices: - Type A: devices which provide anonymous contacts - Type B: devices which are capable of tracking individual contacts The Fusion touch screen is a Type B device: The Touch ID field allows to differentiate between 2 different fingers. This updates the driver to properly allocate a slot for each identified contact and use the helper functions available from the input core system. (cherry picked from commit 698d0a9bb80d94adef58122717c61f55dd61e22d)
2015-11-02input: touchscreen: fusion: use level triggered interruptStefan Agner
Use level triggered interrupt which makes sure that even we miss a rising edge (due to latencies in the kernel), the interrupt still will be handled later, and doesn't freeze the input device. (cherry picked from commit ef25b8a9f9c0ca7cc0f0f955d89d112c3e19f75b)
2015-10-23usb: gadget: android: Use strlcpy instead of sscanf to get string attributesTobias Klauser
sscanf() stops at first space it encounters, thus spaces are not represented i.e. in iManufacturer or iProduct. Fix this by using strlcpy for string attributes. [ZI: Backported from upstream android gadget driver] Signed-off-by: Tobias Klauser <tobias.klauser@zhinst.com>
2015-10-14mmc: core: Disable HPI for certain Hynix eMMC cardsMarcel Ziswiler
Certain Hynix eMMC 4.41 cards might get broken when HPI feature is used and hence this patch disables the HPI feature for such buggy cards. As some of the other features like BKOPs/Cache/Sanitize are dependent on HPI feature, those features would also get disabled if HPI is disabled. Change-Id: I6a638ce089cbd977122e47aecb721bc3f0adf7b0 Signed-off-by: Pratibhasagar V <pratibha@codeaurora.org> Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> Fix ported from the following Android MSM kernel commit: https://www.codeaurora.org/cgit/quic/la/kernel/msm/commit/?id=84af3731019921a28d595dbf6cbf00539706a42c
2015-10-11mmc: sdhci: handle busy-end interrupt during commandChanho Min
It is fully legal for a controller to start handling busy-end interrupt before it has signaled that the command has completed. So make sure we do things in the proper order, Or it results that command interrupt is ignored so it can cause unexpected operations. This is founded at some toshiba emmc with the bellow warning. "mmc0: Got command interrupt 0x00000001 even though no command operation was in progress." This issue has been also reported by Youssef TRIKI: It is not specific to Toshiba devices, and happens with eMMC devices as well as SD card which support Auto-CMD12 rather than CMD23. Also, similar patch is submitted by: Gwendal Grignou <gwendal@chromium.org> Changes since v1: Fixed conflict with the next of git.linaro.org/people/ulf.hansson/mmc.git and Tested if issue is fixed again. Signed-off-by: Hankyung Yu <hankyung.yu@lge.com> Signed-off-by: Chanho Min <chanho.min@lge.com> Tested-by: Youssef TRIKI <youssef.triki@st.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit e99783a45220a2c5f5a598e0e81213ecf2dbcf2f)
2015-10-11sdhci : handle busy timeout irqMatthieu CASTET
When we wait for busy after sending a command, if there is a timeout, we got SDHCI_INT_DATA_TIMEOUT flags. Before this commit we got the message : "Got data interrupt 0x00100000 even though no data operation was in progress." and we need to wait 10s that sdhci_timeout_timer expires. Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit c5abd5e8998e20c2e82999670a03f26f1437d744)
2015-10-11mmc: sdhci: clean up sdio interrupt enable handlingRussell King
We don't need to change the SDHCI_SDIO_IRQ_ENABLED flag when we're merely receiving an interrupt - IRQ handling thread in the MMC core will either re-enable or disable the interrupt via the enable_sdio_irq callback, which will update this status appropriately. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Tested-by: Markus Pargmann <mpa@pengutronix.de> Tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <chris@printf.net> (cherry picked from commit ef104333a234f66cd13fd16632086a21b90fced6)
2015-10-11mmc: sdhci: clean up interrupt handlingRussell King
sdhci interrupt handling is a mess; there is a lot of code doing very similar things. Let's clean this up a bit: 1. set's clear down cmd, data and bus power interrupts in one go - we're always going to handle these. 2. use a do { } while () loop for looping while there are pending interrupts. 3. group clearing of bits in intmask into one place. This results in the code becoming simpler and easier to read. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Tested-by: Markus Pargmann <mpa@pengutronix.de> Tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Chris Ball <chris@printf.net> (cherry picked from commit 41005003bcaf4ecfc80e02af01247f2670269816)
2015-10-10mmc: sdhci: check interrupt flags in ISR againAlexander Stein
When using MSI it is possible that a new MSI is sent while an earlier MSI is currently handled. In this case SDHCI_INT_STATUS only contains SDHCI_INT_RESPONSE and the ISR would not be called again. But at the end of the ISR SDHCI_INT_DATA_END is now also pending which would be ignored. Fix this by rereading the interrupt flags in the ISR until no interrupt we care is pending. Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Chris Ball <cjb@laptop.org> (cherry picked from commit 6379b2375a0c5a6ad437616a4018e6b8fd95e97c)
2015-10-09mmc: sdhci-pci: add runtime pm supportAdrian Hunter
Ths patch allows runtime PM for sdhci-pci, runtime suspending after inactivity of 50ms and ensuring runtime resume before SDHC registers are accessed. During runtime suspend, interrupts are masked. The host controller state is restored at runtime resume. For Medfield, the host controller's card detect mechanism is supplanted by an always-on GPIO which provides for card detect wake-up. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Chris Ball <cjb@laptop.org> (cherry picked from commit 66fd8ad5100b5003046aa744a4f12fa31bb831f9)
2015-06-10colibri_t20/t30: net: usb: asix: ethernet mac address handlingMarcel Ziswiler
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). Please note that instead of defaulting to the default ASIX MAC address if no valid one is encountered this driver now generates a random one pre-fixed with the ASIX OUI.
2015-06-10net: usb: asix: integrate driver 4.17.0Marcel Ziswiler
Integrate latest ASIX proprietary driver version 4.17.0 (AX88772C_772B_772A_760_772_178_LINUX_DRIVER_v4.17.0_Source.tar.bz2).
2015-05-12spi:tegra: fix number of words in transferMurat Khairulin
Calculate the number of words in a transfer properly: if there are 129-131 bytes, then number of words is more than 32, therefore the transfer should be handled with DMA rather than FIFO.
2015-05-12Merge branch 'tegra-nand-next' into tegra-nextMarcel Ziswiler
2015-05-04drivers: w1: tegra_w1: Improve IRQ detectionSanchayan Maity
On Tegra30, on a high CPU load or operating at maximum frequency results in continous interrupt generation, with the following log spewout: (tegra_w1_irq: line 236) spurious interrupt, status = 0x800 (tegra_w1_irq: line 236) spurious interrupt, status = 0x800 (tegra_w1_irq: line 236) spurious interrupt, status = 0x800 (tegra_w1_irq: line 236) spurious interrupt, status = 0x800 which shows the TX_FIFO_DATA_REQ to be somehow continously being set. To circumvent this specifically detect the bit transfer and presence done IRQ's only, for generating a "completion" signal on which the core logic waits. We anyhow only wait for these interrupts in particular. While at it, also change the error message to be printed only if it is conditionally enabled instead of all the time, which floods the serial console and allows a wrong interpretation of the one wire device not working at all. Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2015-05-04drivers: w1: tegra_w1: Fix race condition on high CPU loadSanchayan Maity
On Tegra3 at high CPU load, for example while running stress, reading data from one wire results in the following stack trace: [ 58.436052] [<c05e93d4>] (__raw_spin_lock_irqsave+0x3c/0xac) from [<c05e945c>] (_raw_spin_lock_irqsave+0x18/0x1c) [ 58.446322] [<c05e945c>] (_raw_spin_lock_irqsave+0x18/0x1c) from [<c0048eb4>] (complete+0x28/0x64) [ 58.455276] [<c0048eb4>] (complete+0x28/0x64) from [<c03e276c>] (tegra_w1_irq+0x74/0xb4) [ 58.463376] [<c03e276c>] (tegra_w1_irq+0x74/0xb4) from [<c009a1fc>] (handle_irq_event_percpu+0x9c/0x278) [ 58.472847] [<c009a1fc>] (handle_irq_event_percpu+0x9c/0x278) from [<c009a424>] (handle_irq_event+0x4c/0x6c) [ 58.482666] [<c009a424>] (handle_irq_event+0x4c/0x6c) from [<c009cc40>] (handle_fasteoi_irq+0xe0/0x118) [ 58.492048] [<c009cc40>] (handle_fasteoi_irq+0xe0/0x118) from [<c0099bd8>] (generic_handle_irq+0x30/0x40) [ 58.501616] [<c0099bd8>] (generic_handle_irq+0x30/0x40) from [<c000ecfc>] (handle_IRQ+0x88/0xc8) [ 58.510393] [<c000ecfc>] (handle_IRQ+0x88/0xc8) from [<c0008430>] (asm_do_IRQ+0x18/0x1c) [ 58.518475] [<c0008430>] (asm_do_IRQ+0x18/0x1c) from [<c000e098>] (__irq_usr+0x38/0xc0) [ 58.526464] Exception stack(0xe51a3fb0 to 0xe51a3ff8) [ 58.531506] 3fa0: 00000000 bea29b04 4030b1b0 4030b4c8 [ 58.539673] 3fc0: 4030b22c 4fd2f305 0000d770 0000d6b0 00000000 00000001 0000000d 00000145 [ 58.547839] 3fe0: 193c62ce bea29af4 4030b22c 4020beb4 600b0010 ffffffff [ 58.554445] Code: e5843004 e10f0000 f10c0080 e3a02001 (e1953f9f) [ 58.560539] ---[ end trace fb2fc83ceb8e95c1 ]--- [ 58.565154] Kernel panic - not syncing: Fatal exception in interrupt [ 58.571520] [<c0014ef4>] (unwind_backtrace+0x0/0xec) from [<c05e10c8>] (dump_stack+0x20/0x24) [ 58.580039] [<c05e10c8>] (dump_stack+0x20/0x24) from [<c05e16a0>] (panic+0x7c/0x1ac) [ 58.587783] [<c05e16a0>] (panic+0x7c/0x1ac) from [<c0012038>] (die+0x280/0x2e8) [ 58.595087] [<c0012038>] (die+0x280/0x2e8) from [<c05e1130>] (__do_kernel_fault.part.3+0x64/0x84) [ 58.603952] [<c05e1130>] (__do_kernel_fault.part.3+0x64/0x84) from [<c0015c84>] (do_page_fault+0x204/0x21c) [ 58.613681] [<c0015c84>] (do_page_fault+0x204/0x21c) from [<c000830c>] (do_DataAbort+0x44/0xa8) [ 58.622369] [<c000830c>] (do_DataAbort+0x44/0xa8) from [<c000de18>] (__dabt_svc+0x38/0x60) This seems to be generated due a possible race condition between the on stack kernel completion being set to NULL in tegra_w1_touch_bit, while a possible spurious IRQ calling this completion in the IRQ handler. This is a temporary bandaid and the ideal solution would be to find why this affects the Tegra3 and not Tegra2. Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2015-04-02apalis_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, 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.
2015-04-02igb: 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.
2015-04-02igb: integrate igb driver 5.2.17Marcel Ziswiler
Integrate latest igb driver version 5.2.17 (igb-5.2.17.tar.gz from e1000.sf.net).
2015-04-02colibri_t20: initial 16-bit BCH ECC supportMarcel Ziswiler
2015-03-30Merge remote-tracking branch 'remotes/ubifs-v3.1/master' into tegra-nand-nextMarcel Ziswiler
Conflicts: drivers/mtd/ubi/ubi.h drivers/mtd/ubi/wl.c