- 12 4月, 2017 1 次提交
-
-
由 Michael Hennerich 提交于
This patch adds support for the Analog Devices / Linear Technology LTC4306 and LTC4305 4/2 Channel I2C Bus Multiplexer/Switches. The LTC4306 optionally provides two general purpose input/output pins (GPIOs) that can be configured as logic inputs, opendrain outputs or push-pull outputs via the generic GPIOLIB framework. Signed-off-by: NMichael Hennerich <michael.hennerich@analog.com> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
- 03 4月, 2017 7 次提交
-
-
由 Peter Rosin 提交于
i2c_mux_add_adapter already logs a message on failure. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Peter Rosin 提交于
i2c_mux_add_adapter already logs a message on failure. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Peter Rosin 提交于
i2c_mux_add_adapter already logs a message on failure. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Peter Rosin 提交于
i2c_mux_add_adapter already logs a message on failure. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Peter Rosin 提交于
i2c_mux_add_adapter already logs a message on failure. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Peter Rosin 提交于
i2c_mux_add_adapter already logs a message on failure. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Peter Rosin 提交于
No callers then need to report any further info, thus reducing both the amount of code and the log noise. Reviewed-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
- 16 3月, 2017 1 次提交
-
-
由 Julia Cartwright 提交于
The pca954x i2c mux driver currently implements an irq_chip for handling interrupts; due to how irq_chip handling is done, it's necessary for the irq_chip methods to be invoked from hardirq context, even on a a real-time kernel. Because the spinlock_t type becomes a "sleeping" spinlock w/ RT kernels, it is not suitable to be used with irq_chips. A quick audit of the operations under the lock reveal that they do only minimal, bounded work, and are therefore safe to do under a raw spinlock. Signed-off-by: NJulia Cartwright <julia@ni.com> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
- 09 3月, 2017 10 次提交
-
-
由 Wolfram Sang 提交于
This reverts commit b0c1e95a. It contains a flaw and the next version has more features added which makes me want to move it to the next cycle. Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Wolfram Sang 提交于
This reverts commit 02dbfa5e. I grabbed the wrong version from the list and will pull the proper one from Peter Rosin's mux tree. Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Javier Martinez Canillas 提交于
After commit 7999eecb ("i2c: exynos5: fix arbitration lost handling"), some I2C transactions are failing because the TRANSFER_DONE_AUTO field is not set in the I2C_TRANS_STATUS register so the i2c->status value is left to -EINVAL causing the i2c->msg_complete completion to never be signaled. For example, when reading the time of an I2C rtc on an Exynos5800 machine: $ cat /sys/class/rtc/rtc0/time [ 25.924594] exynos5-hsi2c 12e10000.i2c: rx timeout [ 65.028365] max77686-rtc max77802-rtc: Fail to read time reg(-22) cat: /sys/class/rtc/rtc0/time: Invalid argument The Exynos5422 manual states clearly that most I2C_TRANS_STATUS reg bits (including TRANSFER_DONE_AUTO) are cleared after the register is read. So reading has side effects and should only be done if HSI2C_INT_I2C was set. Fixes: 7999eecb ("i2c: exynos5: fix arbitration lost handling") Signed-off-by: NJavier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: NAndrzej Hajda <a.hajda@samsung.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Zhangfei Gao 提交于
Some platforms like hi3660 need do reset first to allow accessing registers Signed-off-by: NZhangfei Gao <zhangfei.gao@linaro.org> Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com> Tested-by: NRamiro Oliveira <ramiro.oliveira@synopsys.com> Acked-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Heiner Kallweit 提交于
Most likely a copy & paste error. Signed-off-by: NHeiner Kallweit <hkallweit1@gmail.com> Acked-by: NJerome Brunet <jbrunet@baylibre.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de> Fixes: 30021e37 ("i2c: add support for Amlogic Meson I2C controller")
-
由 Dmitry Torokhov 提交于
This will allow marking device property lists as __initdata, the same as board info structures themselves. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Wolfram Sang 提交于
All length fields in Linux I2C are u16, so a HW length limitation of 16 bit lengths is not a limitation. Remove the quirk structure. Tested-by: NJun Gao <jun.gao@mediatek.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Jaedon Shin 提交于
The BSC data buffers to send and receive data are each of size 32 bytes or 8 bytes 'xfersz' depending on SoC. The problem observed for all the combined message transfer was if length of data transfer was a multiple of 'xfersz' a repeated START was being transmitted by BSC driver. Fixed this by appropriately setting START/STOP conditions for such transfers. Fixes: dd1aa252 ("i2c: brcmstb: Add Broadcom settop SoC i2c controller driver") Signed-off-by: NJaedon Shin <jaedon.shin@gmail.com> Acked-by: NKamal Dasu <kdasu.kdev@gmail.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Qi Hou 提交于
Refcount of of_node is increased with of_node_get() in i2c_mux_add_adapter(). It must be decreased with of_node_put() in i2c_mux_del_adapters(). Signe-off-by: NQi Hou <qi.hou@windriver.com> Reviewed-by: NZhang Xiao <xiao.zhang@windriver.com> Acked-by: NPeter Rosin <peda@axentia.se> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Chris Brandt 提交于
While modifying the driver to use the STOP interrupt, the completion of the intermediate transfers need to wake the driver back up in order to initiate the next transfer (restart condition). Otherwise you get never ending interrupts and only the first transfer sent. Fixes: 71ccea09 ("i2c: riic: correctly finish transfers") Reported-by: NSimon Horman <horms@verge.net.au> Signed-off-by: NChris Brandt <chris.brandt@renesas.com> Tested-by: NSimon Horman <horms+renesas@verge.net.au> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 03 3月, 2017 1 次提交
-
-
由 Qi Hou 提交于
Refcount of of_node is increased with of_node_get() in i2c_mux_add_adapter(). It must be decreased with of_node_put() in i2c_mux_del_adapters(). Cc: stable@vger.kernel.org Signed-off-by: NQi Hou <qi.hou@windriver.com> Reviewed-by: NZhang Xiao <xiao.zhang@windriver.com> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
- 02 3月, 2017 1 次提交
-
-
由 Ingo Molnar 提交于
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> Fix up affected files that include this signal functionality via sched.h. Acked-by: NLinus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: NIngo Molnar <mingo@kernel.org>
-
- 23 2月, 2017 3 次提交
-
-
由 Jan Glauber 提交于
Using pci_alloc_irq_vectors() instead of the deprecated pci_enable_msix() allows to remove the msix_entry from struct octeon_i2c and thus to get rid of the config symbol check. Signed-off-by: NJan Glauber <jglauber@cavium.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Andrzej Hajda 提交于
In case of arbitration lost adequate interrupt sometimes is not signaled. As a result transfer timeouts and is not retried, as it should. To avoid such cases code is added to check transaction status in case of every interrupt. Signed-off-by: NAndrzej Hajda <a.hajda@samsung.com> Tested-by: NAndi Shyti <andi.shyti@samsung.com> Reviewed-by: NAndi Shyti <andi.shyti@samsung.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Andrzej Hajda 提交于
Fifo-almost-empty irq signal should be disabled as soon as possible, to avoid unnecessary interrupt storm. The best moment is when there is no more data to feed fifo. This patch fixes system stalls caused by IRQ storm. Signed-off-by: NAndrzej Hajda <a.hajda@samsung.com> Tested-by: NMarek Szyprowski <m.szyprowski@samsung.com> Tested-by: NAndi Shyti <andi.shyti@samsung.com> Reviewed-by: NAndi Shyti <andi.shyti@samsung.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 21 2月, 2017 3 次提交
-
-
由 Alexandre Belloni 提交于
When going to suspend, the I2C registers may be lost because the power to VDDcore is cut. Restore them when resuming. Signed-off-by: NAlexandre Belloni <alexandre.belloni@free-electrons.com> Acked-by: NLudovic Desroches <ludovic.desroches@microchip.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Stefan Wahren 提交于
Since commit e2474541 ("bcm2835: Fix hang for writing messages larger than 16 bytes") the interrupt handler is prone to a possible NULL pointer dereference. This could happen if an interrupt fires before curr_msg is set by bcm2835_i2c_xfer_msg() and randomly occurs on the RPi 3. Even this is an unexpected behavior the driver must handle that with an error instead of a crash. Reported-by: NPeter Robinson <pbrobinson@gmail.com> Fixes: e2474541 ("bcm2835: Fix hang for writing messages larger than 16 bytes") Signed-off-by: NStefan Wahren <stefan.wahren@i2se.com> Acked-by: NNoralf Trønnes <noralf@tronnes.org> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Shardar Shariff Md 提交于
Add Tegra BPMP I2C driver. The BPMP is the boot and power management processor embedded in Tegra SoCs. In newer SoC versions, access to one of the I2C busses goes via the BPMP, requiring a different "proxy" I2C driver that accesses the bus via the real I2C driver embedded in the BPMP firmware. Signed-off-by: NShardar Shariff Md <smohammed@nvidia.com> Signed-off-by: NThierry Reding <treding@nvidia.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 15 2月, 2017 1 次提交
-
-
由 Jarkko Nikula 提交于
This reverts commit 63d0f0a6. It caused a regression on platforms where I2C controller is synthesized with dynamic TAR update disabled. Detection code is testing is bit DW_IC_CON_10BITADDR_MASTER in register DW_IC_CON read-only but fails to restore original value in case bit is read-write. Instead of fixing this we revert the commit since it was preparation for the commit 0317e6c0 ("i2c: designware: do not disable adapter after transfer") which was also reverted. Reported-by: NShah Nehal-Bakulchandra <Nehal-bakulchandra.Shah@amd.com> Reported-by: NSuravee Suthikulpanit <suravee.suthikulpanit@amd.com> Acked-By: NLucas De Marchi <lucas.demarchi@intel.com> Cc: <stable@vger.kernel.org> # v4.9+ Fixes: 63d0f0a6 ("i2c: designware: detect when dynamic tar update is possible") Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 10 2月, 2017 10 次提交
-
-
由 Phil Reid 提交于
Various muxes can aggregate multiple interrupts from each i2c bus. All of the muxes with interrupt support combine the active low irq lines using an internal 'and' function and generate a combined active low output. The muxes do provide the ability to read a control register to determine which irq is active. By making the mux an irq controller isr latency can potentially be reduced by reading the status register and then only calling the registered isr on that bus segment. As there is no irq masking on the mux irq are disabled until irq_unmask is called at least once. Signed-off-by: NPhil Reid <preid@electromag.com.au> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Phil Reid 提交于
The spec for the pca954x was missing. This chip is the same as the pca9540 except that it has interrupt lines. While the i2c_device_id table mapped the pca9542 to the pca9540 definition the compatible table did not. In preparation for irq support add the pca9542 definition. Signed-off-by: NPhil Reid <preid@electromag.com.au> Signed-off-by: NPeter Rosin <peda@axentia.se>
-
由 Chris Brandt 提交于
This fixes the condition where the controller has not fully completed its final transfer and leaves the bus and controller in a undesirable state. At the end of the last transmitted byte, the existing driver would just signal for a STOP condition to be transmitted then immediately signal completion. However, the full STOP procedure might not have fully taken place by the time the runtime PM shuts off the peripheral clock, leaving the bus in a suspended state. Alternatively, the STOP condition on the bus may have completed, but when the next transaction is requested by the upper layer, not all the necessary register cleanup was finished from the last transfer which made the driver return BUS BUSY when it really wasn't. This patch now makes all transmit and receive transactions wait for the STOP condition to fully complete before signaling a completed transaction. With this new method, runtime PM no longer seems to be an issue. Fixes: 310c18a4 ("i2c: riic: add driver") Signed-off-by: NChris Brandt <chris.brandt@renesas.com> Reviewed-by: NWolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Mika Westerberg 提交于
Intel Gemini Lake has the same SMBus host controller than Intel Broxton. Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: NJean Delvare <jdelvare@suse.de> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Javier Martinez Canillas 提交于
The I2C core always reports a MODALIAS of the form i2c:<foo> even if the device was registered via OF, this means that exporting the OF device ID table device aliases in the module is not needed. But in order to change how the core reports modaliases to user-space, it's better to export it. Signed-off-by: NJavier Martinez Canillas <javier@osg.samsung.com> Acked-by: NPeter Rosin <peda@axentia.se> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Javier Martinez Canillas 提交于
The I2C core always reports a MODALIAS of the form i2c:<foo> even if the device was registered via OF, this means that exporting the OF device ID table device aliases in the module is not needed. But in order to change how the core reports modaliases to user-space, it's better to export it. Signed-off-by: NJavier Martinez Canillas <javier@osg.samsung.com> Acked-by: NPeter Rosin <peda@axentia.se> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Wei Yongjun 提交于
Remove including <linux/version.h> that don't need it. Signed-off-by: NWei Yongjun <weiyongjun1@huawei.com> Acked-by: NVadim Pasternak <vadimp@mellanox.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Ricardo Ribalda 提交于
SMBSLVCNT must be protected with the piix4_mutex_sb800 in order to avoid multiple buses accessing to the semaphore at the same time. Fixes: 701dc207 ("i2c: piix4: Avoid race conditions with IMC") Reported-by: NJean Delvare <jdelvare@suse.de> Signed-off-by: NRicardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: NJean Delvare <jdelvare@suse.de> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Ricardo Ribalda 提交于
Since '701dc207 ("i2c: piix4: Avoid race conditions with IMC")' we are using the SMBSLVCNT register at offset 0x8. We need to request it. Fixes: 701dc207 ("i2c: piix4: Avoid race conditions with IMC") Signed-off-by: NRicardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: NJean Delvare <jdelvare@suse.de> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
由 Bhumika Goyal 提交于
Declare i2c_algorithm structures as const as they are only stored in the algo field of an i2c_adapter structure. This field is of type const, so i2c_algorithm structures having this property can be made const too. Signed-off-by: NBhumika Goyal <bhumirks@gmail.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> for Acked-by: NPatrice Chotard <patrice.chotard@st.com> Acked-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: NJean Delvare <jdelvare@suse.de> Acked-by: NLudovic Desroches <ludovic.desroches@microchip.com> Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 08 2月, 2017 1 次提交
-
-
由 Dmitry Torokhov 提交于
With many drivers converting to using generic device properties, it is useful to provide array of device properties when instantiating new i2c client via i2c_board_info and have them automatically added to the device in question. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com> Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
-
- 07 2月, 2017 1 次提交
-
-
由 Dan O'Donovan 提交于
When using devicetree i2c_board_info.type is set to the compatible string with the vendor prefix removed. For I2C devices described via ACPI the i2c_board_info.type string is set to the ACPI device name. When using ACPI and DT ids this string ends up something like "PRP0001:00". If the of_compatible property is present try to use that instead. This makes it easier to instantiate i2c drivers through ACPI with DT ids. Signed-off-by: NDan O'Donovan <dan@emutex.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Tested-by: NJarkko Nikula <jarkko.nikula@linux.intel.com> Acked-by: NWolfram Sang <wsa@the-dreams.de> Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
-