summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-13rtlwifi: rtl8192ee: Fix firmware header endian issuesLarry Finger
This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13rtlwifi: rtl888ee: Fix firmware header endian issuesLarry Finger
This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13rtlwifi: rtl8192de: Fix firmware header endian issuesLarry Finger
This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13rtlwifi: rtl8821ae: Fix firmware endian issuesLarry Finger
This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13rtlwifi: rtl8723ae: rtl8723be: rtl8723com: Fix firmware header endian issuesLarry Finger
The drivers are converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13rtlwifi: rtl8192ce: rtl8192cu: Fix endian issueLarry Finger
Commit e996db69833a (rtlwifi: rtl8192c: Add init codes for "fw_version" and "fw_subversion") added initialization for fw_version, but failed to note that the variable in the firmware header is little-endian. The following Sparse warning results: CHECK drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: warning: incorrect type in assignment (different base types) drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: expected unsigned short [unsigned] [usertype] fw_version drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: got restricted __le16 [usertype] version When fixing this problem, I noticed that several of the drivers contain nearly identical copies of the firmware header struct, and that only the one used in rtl8192c{e,u} had correct endian notation. The struct has been moved into a common header, and the other drivers will be fixed in subsequant patches. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13brcmfmac: dhd_sdio.c: use existing atomic_or primitiveVineet Gupta
There's already a generic implementation so use that instead. Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13Merge tag 'omap-for-v4.2/fixes-rc6' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fix a NULL pointer exception for omap GPMC bus code if probe fails. * tag 'omap-for-v4.2/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: memory: omap-gpmc: Don't try to save uninitialized GPMC context Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ath9k: match wait_for_completion_timeout return typeNicholas Mc Guire
Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/link.c:197 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13ath9k_htc: wmi: match wait_for_completion_timeout return typeNicholas Mc Guire
Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/wmi.c:331 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_ATH9K_HTC=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13ath9k_htc: drv_init: match wait_for_completion_timeout return typeNicholas Mc Guire
Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/htc_drv_init.c:81 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_ATH9K_HTC=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13ath9k_htc: match wait_for_completion_timeout return typeNicholas Mc Guire
Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/htc_hst.c:171 int return assigned to unsigned long ./drivers/net/wireless/ath/ath9k/htc_hst.c:277 int return assigned to unsigned long ./drivers/net/wireless/ath/ath9k/htc_hst.c:206 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_ATH9K_HTC=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13rtlwifi: misspelled code and comments corrected.Cheolhyun Park
Signed-off-by: Cheolhyun Park <pch851130@gmail.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2015-08-13Merge remote-tracking branch 'spi/fix/bcm2835' into spi-fix-bcm2835Mark Brown
2015-08-13extcon: palmas: Fix build break due to devm_gpiod_get_optional API changeChanwoo Choi
With commit b17d1bf16cc7 ("gpio: make flags mandatory for gpiod_get functions") it becomes necessary to pass the flags argument. And this patch adds the gpio header file to fix the build breakage when build testing with random configuration files. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2015-08-13mac80211: fix invalid read in minstrel_sort_best_tp_rates()Adrien Schildknecht
At the last iteration of the loop, j may equal zero and thus tp_list[j - 1] causes an invalid read. Change the logic of the loop so that j - 1 is always >= 0. Cc: stable@vger.kernel.org Signed-off-by: Adrien Schildknecht <adrien+dev@schischi.me> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2015-08-13ath10k: fix peer limit enforcementMichal Kazior
Firmware peer entries are involved in internal firmware vdev structures. This was not accounted for and could lead firmware to crash due to asking it to do more than it could. Fixes: 039a0051ec1a ("ath10k: allocate fw resources for iface combinations") Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13ath10k: don't remove peer that doesn't existMichal Kazior
If peer creation failed during offchannel Tx the driver attempted to delete the peer nonetheless. This caused the ar->num_peers counter to be incorrectly decremented. This subsequently could cause the counter to drop below 0 and also eventually lead to firmware crash because host would think there are less peer entries created in firmware then there really were. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13spi/spi-xilinx: Fix mixed poll/irq modeRicardo Ribalda Delgado
Once the module process a transfer in irq mode, the next poll transfer will not work because the transmitter is left in inhibited state. Fixes: 22417352f6b7f623 (Use polling mode on small transfers) Reported-by: Edward Kigwana <ekigwana@scires.com> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-08-13ath10k: fix hw reconfig on wow failureMichal Kazior
When WoWLAN resume fails with retval 1 mac80211 will attempt to reconfig the device in a similar manner when hw restart is requested. This wasn't handled properly and yielded call trace warnings and the device ended up not working. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13ath10k: initialize fw_features varMichal Kazior
If firmware did not have any feature flags set the var would be left with values found on the stack (i.e. garbage) yielding print string like this: (...) features \xffffffa6m:^R\xfffffffbԂ\xffffffc4^E Fixes: b27bc5a40f91 ("ath10k: dump fw features during probing") Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13ath10k: Enable MU MIMO txbf support for QCA99X0Vivek Natarajan
This patch enables MU-MIMO transmit beamforming support for QCA99X0 chipsets. Signed-off-by: Vivek Natarajan <nataraja@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13ath10k: Support different txbf configuration schemesVivek Natarajan
qca61x4 uses the vdev param as a sole sufficient configuration for txbf while qca99x0 enables txbf during peer assoc by combining the vdev param value with peer assoc's vht capabilities This patch gets the appropriate txbf configuration scheme before passing the wmi command to enable the same in the firmware. Signed-off-by: Vivek Natarajan <nataraja@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13ath10k: reject 11b tx fragmentation configurationMichal Kazior
Even though there's a WMI enum for fragmentation threshold no known firmware actually implements it. Moreover it is not possible to rely frame fragmentation to mac80211 because firmware clears the "more fragments" bit in frame control making it impossible for remote devices to reassemble frames. Hence implement a dummy callback just to say fragmentation isn't supported. This effectively prevents mac80211 from doing frame fragmentation in software. This fixes Tx becoming broken after setting fragmentation threshold. Fixes: 1010ba4c5d1c ("ath10k: unregister and remove frag_threshold callback") Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13ath10k: remove futile fragmentation threshold configMichal Kazior
Commit 1010ba4c5d1c ("ath10k: unregister and remove frag_threshold callback") didn't remove all instances of (futile) fragmentation threshold configuration. No known firmware supports the parameter so don't even bother setting it. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-08-13clk: ti: fix for definition movementStephen Rothwell
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'rpi-dt-for-armsoc-4.3' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi into next/dt - New Firmware node and accompanying binding document * tag 'rpi-dt-for-armsoc-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi: dt/bindings: Add binding for the Raspberry Pi firmware driver ARM: bcm2835: Add the firmware driver information to the RPi DT Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ARM/fb: ep93xx: switch framebuffer to use modedb onlyLinus Walleij
All the EP93xx boards exclusively use modedb to look up video modes from the command line. Root out the parametrization of custom video modes from the platform data and board files and simplify the driver. Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'imx-fixes-4.2-3' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes The i.MX fixes for 4.2, 3rd round: - Fix i.MX6 PCIe interrupt routing which gets missed from stacked IRQ domain conversion. The PCIe wakeup support is currently broken because of this. * tag 'imx-fixes-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx6: correct i.MX6 PCIe interrupt routing Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'socfpga_dts_for_v4.3_part_2' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt SoCFPGA DTS updates for v4.3, take 2 - Add DTS property "altr,modrst-offset" for reset driver to use - Add updated reset defines for the reset driver - Add reset property for EMACs on Arria10 * tag 'socfpga_dts_for_v4.3_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: Add resets for EMACs on Arria10 ARM: socfpga: dts: add "altr,modrst-offset" property dt-bindings: Add reset manager offsets for Arria10 Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'samsung-mach-fixes-4.2' of https://github.com/krzk/linux into fixesOlof Johansson
Two fixes for bugs in Exynos power domain error exit path: 1. kfree() of read-only memory (name of power domain returned by kstrdup_const()), 2. Doubled of_node_put() leading to invalid ref count for OF node. * tag 'samsung-mach-fixes-4.2' of https://github.com/krzk/linux: ARM: EXYNOS: fix double of_node_put() on error path ARM: EXYNOS: Fix potentian kfree() of ro memory Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'v4.3-rockchip32-dts2' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Some more devicetree changes, including usbphy support for the Cortex-A9 SoCs and actually enabling usb on the rk3066-marsboard, Two more veyron-devices - namely Speedy and Minnie and a fix for the tsadc. One slightly more interesting fix is the blocking of the last 16MB of memory on 4GB rk3288 devices. The rk3288 cannot use this area for dma operations, so things like the mmc or usb controllers regularly fail when trying to read data. This solution mimicks the solution from the ChromeOS kernel, who also do not seem to have found a better solution yet. Here it only moves to the devicetree. As this issue is also present on the arm64 rk3368, any future better solution to this problem would need to describe this in the devicetree as well and could then remove this block. * tag 'v4.3-rockchip32-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add veyron-minnie board ARM: dts: rockchip: reserve unusable memory region on rk3288 ARM: dts: rockchip: enable usb controller on marsboard ARM: dts: rockchip: add usb phys to Cortex-A9 socs ARM: dts: rockchip: set correct dwc2 params for cortex-a9 socs ARM: dts: rockchip: Add veyron-speedy board ARM: dts: rockchip: Use correct dts properties for tsadc node on veyron Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'v4.3-rockchip32-soc2' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc Improve reliability of resume on rk3288 boards. For whatever reason resuming from suspend worked sucessfully on the rk3288-evb but not on other boards, like veyron-devices. Two problems seem to have existed. For one the stabilization delays for pmic and oscillator may have been to short and secondly the shallow suspend seems to need GPIO wakups enabled. Normally this should be covered by the more generic ARMINT wakeups already and the reason for this is still investigated at Rockchip, but meanwhile this makes boards actually resume. * tag 'v4.3-rockchip32-soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend ARM: rockchip: set correct stabilization thresholds in suspend ARM: rockchip: rename osc_switch_to_32k variable Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ARM: uniphier: drop v7_invalidate_l1 call at secondary entryMasahiro Yamada
This is unnecessary since commit 02b4e2756e01 ("ARM: v7 setup function should invalidate L1 cache"). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'v4.2-next-arm64-2' of https://github.com/mbgg/linux-mediatek into ↵Olof Johansson
next/arm64 Add SMP support for mt6795 SoC. * tag 'v4.2-next-arm64-2' of https://github.com/mbgg/linux-mediatek: ARM64: dts: mt6795: enable basic SMP bringup for MT6795 Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHERAlexandre Belloni
CONFIG_ARM_AT91_ETHER doesn't exist anymore, both drivers have been merged in the macb driver. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ARM: at91/defconfig: at91_dt: enable DRM hlcdc supportJosh Wu
This patch adds drm atmel lcdc, simple panel and backlight options. Signed-off-by: Josh Wu <josh.wu@atmel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'mvebu-soc-4.3-2' of git://git.infradead.org/linux-mvebu into ↵Olof Johansson
next/drivers mvebu soc changes for v4.3 (part #2) SoC part of the Dove PMU series * tag 'mvebu-soc-4.3-2' of git://git.infradead.org/linux-mvebu: ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'mvebu-dt-4.3-3' of git://git.infradead.org/linux-mvebu into next/dtOlof Johansson
mvebu dt changes for v4.3 (part #3) - device tree part of the Dove PMU series - converting a new orion5x based platform to dt: Linkstation Mini * tag 'mvebu-dt-4.3-3' of git://git.infradead.org/linux-mvebu: ARM: dts: Convert Linkstation Mini to Device Tree ARM: dt: dove: add GPU power domain description ARM: dt: dove: add video decoder power domain description ARM: dt: dove: wire up RTC interrupt ARM: dt: Add PMU node, making PMU child devices childs of this node Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'at91-ab-dt2' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt Second batch of DT changes for 4.3: - Add the slow clock to the nodes that will use it - Add hlcd to the at91sam9x5 and at91sam9n12 - Add touchscreen and touch button support to the at91sam9x5ek * tag 'at91-ab-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (22 commits) ARM: at91/dt: sama5d2: use slow clock where necessary ARM: at91/dt: at91sam9x5dm: add QT1070 touch button controller ARM: at91/dt: at91sam9x5dm: add support for the touschscreen ARM: at91/dt: add drm support for at91sam9n12ek ARM: at91/dt: enable lcd support for at91sam9x5 SoCs ARM: at91/dt: add at91sam9x5-ek Display Module dtsi ARM: at91/dt: include lcd dtsi in at91sam9x5 dtsis ARM: at91/dt: define hlcdc node in at91sam9x5_lcd.dtsi ARM: at91/dt: sama5d4: use slow clock where necessary ARM: at91/dt: sama5d3: use slow clock where necessary ARM: at91/dt: at91sam9x5: use slow clock where necessary ARM: at91/dt: at91sam9rl: use slow clock where necessary ARM: at91/dt: at91sam9n12: use slow clock where necessary ARM: at91/dt: at91sam9g45: use slow clock where necessary ARM: at91/dt: at91sam9263: use slow clock where necessary ARM: at91/dt: at91sam9261: use slow clock where necessary ARM: at91/dt: at91sam9260: use slow clock where necessary ARM: at91/dt: at91rm9200: use slow clock where necessary Documentation: dt: rtc: at91rm9200: add clocks property Documentation: watchdog: at91sam9_wdt: add clocks property ... Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13Merge tag 'kvm-s390-next-20150812' of ↵Paolo Bonzini
git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: fix and feature for kvm/next (4.3) 1. error handling for irq routes 2. Gracefully handle STP time changes s390 supports a protocol for syncing different systems via the stp protocol that will steer the TOD clocks to keep all participating clocks below the round trip time between the system. In case of specific out of sync event Linux can opt-in to accept sync checks. This will result in non-monotonic jumps of the TOD clock, which Linux will correct via time offsets to keep the wall clock time monotonic. Now: KVM guests also base their time on the host TOD, so we need to fixup the offset for them as well.
2015-08-13ARM: gemini: Setup timer3 as free running timerHans Ulli Kroll
In the original driver it is missed to setup a free running driver. This timer is needed for the scheduler. So setup it. Signed-off-by: Hans Ulli Kroll <ulli.kroll@googlemail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ARM: gemini: Use timer1 for clockeventHans Ulli Kroll
Use timer1 as clockevent timer. The old driver uses timer2, which has some issues to setup Signed-off-by: Hans Ulli Kroll <ulli.kroll@googlemail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13ARM: gemini: Add missing register definitions for gemini timerHans Ulli Kroll
Add missing register defintions for the gemini clocksource Also do some #define' cleanup to make the code more readable. Signed-off-by: Hans Ulli Kroll <ulli.kroll@googlemail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13mac80211: remove always true conditionDan Carpenter
The outside if statement checks that IEEE80211_TX_INTFL_MLME_CONN_TX is set so this condition is always true. Checking twice upsets the static checkers. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2015-08-13mac80211: remove ieee80211_aes_cmac_calculate_k1_k2()Johannes Berg
The iwlwifi driver was the only driver that used this, but as it turns out it never needed it, so we can remove it. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2015-08-13iwlwifi: mvm: don't set K1/K2 for AES-CMACJohannes Berg
According to firmware engineers, the firmware has never required these fields and the values have always been calculated, they were just leftovers from a previous implementation. Therefore remove the unnecessary calculation. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2015-08-13ARM: ep93xx/timer: Migrate to new 'set-state' interfaceViresh Kumar
Migrate EP93xx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-13drm/i915: Commit planes on each crtc separately.Maarten Lankhorst
This patch is based on the upstream commit 5ac1c4bcf073ad and amended for v4.2 to make sure it works as intended. Repeated calls to begin_crtc_commit can cause warnings like this: [ 169.127746] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616 [ 169.127835] in_atomic(): 0, irqs_disabled(): 1, pid: 1947, name: kms_flip [ 169.127840] 3 locks held by kms_flip/1947: [ 169.127843] #0: (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffff814774bc>] __drm_modeset_lock_all+0x9c/0x130 [ 169.127860] #1: (crtc_ww_class_acquire){+.+.+.}, at: [<ffffffff814774cd>] __drm_modeset_lock_all+0xad/0x130 [ 169.127870] #2: (crtc_ww_class_mutex){+.+.+.}, at: [<ffffffff81477178>] drm_modeset_lock+0x38/0x110 [ 169.127879] irq event stamp: 665690 [ 169.127882] hardirqs last enabled at (665689): [<ffffffff817ffdb5>] _raw_spin_unlock_irqrestore+0x55/0x70 [ 169.127889] hardirqs last disabled at (665690): [<ffffffffc0197a23>] intel_pipe_update_start+0x113/0x5c0 [i915] [ 169.127936] softirqs last enabled at (665470): [<ffffffff8108a766>] __do_softirq+0x236/0x650 [ 169.127942] softirqs last disabled at (665465): [<ffffffff8108ae75>] irq_exit+0xc5/0xd0 [ 169.127951] CPU: 1 PID: 1947 Comm: kms_flip Not tainted 4.1.0-rc4-patser+ #4039 [ 169.127954] Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014 [ 169.127957] ffff8800c49036f0 ffff8800cde5fa28 ffffffff817f6907 0000000080000001 [ 169.127964] 0000000000000000 ffff8800cde5fa58 ffffffff810aebed 0000000000000046 [ 169.127970] ffffffff81c5d518 0000000000000268 0000000000000000 ffff8800cde5fa88 [ 169.127981] Call Trace: [ 169.127992] [<ffffffff817f6907>] dump_stack+0x4f/0x7b [ 169.128001] [<ffffffff810aebed>] ___might_sleep+0x16d/0x270 [ 169.128008] [<ffffffff810aed38>] __might_sleep+0x48/0x90 [ 169.128017] [<ffffffff817fc359>] mutex_lock_nested+0x29/0x410 [ 169.128073] [<ffffffffc01635f0>] ? vgpu_write64+0x220/0x220 [i915] [ 169.128138] [<ffffffffc017fddf>] ? ironlake_update_primary_plane+0x2ff/0x410 [i915] [ 169.128198] [<ffffffffc0190e75>] intel_frontbuffer_flush+0x25/0x70 [i915] [ 169.128253] [<ffffffffc01831ac>] intel_finish_crtc_commit+0x4c/0x180 [i915] [ 169.128279] [<ffffffffc00784ac>] drm_atomic_helper_commit_planes+0x12c/0x240 [drm_kms_helper] [ 169.128338] [<ffffffffc0184264>] __intel_set_mode+0x684/0x830 [i915] [ 169.128378] [<ffffffffc018a84a>] intel_crtc_set_config+0x49a/0x620 [i915] [ 169.128385] [<ffffffff817fdd39>] ? mutex_unlock+0x9/0x10 [ 169.128391] [<ffffffff81467b69>] drm_mode_set_config_internal+0x69/0x120 [ 169.128398] [<ffffffff8119b547>] ? might_fault+0x57/0xb0 [ 169.128403] [<ffffffff8146bf93>] drm_mode_setcrtc+0x253/0x620 [ 169.128409] [<ffffffff8145c600>] drm_ioctl+0x1a0/0x6a0 [ 169.128415] [<ffffffff810b3b41>] ? get_parent_ip+0x11/0x50 [ 169.128424] [<ffffffff811e9ab8>] do_vfs_ioctl+0x2f8/0x530 [ 169.128429] [<ffffffff810d0fcd>] ? trace_hardirqs_on+0xd/0x10 [ 169.128435] [<ffffffff812e7676>] ? selinux_file_ioctl+0x56/0x100 [ 169.128439] [<ffffffff811e9d71>] SyS_ioctl+0x81/0xa0 [ 169.128445] [<ffffffff81800697>] system_call_fastpath+0x12/0x6f Solve it by using the newly introduced drm_atomic_helper_commit_planes_on_crtc. The problem here was that the drm_atomic_helper_commit_planes() helper we were using was basically designed to do begin_crtc_commit(crtc #1) begin_crtc_commit(crtc #2) ... commit all planes finish_crtc_commit(crtc #1) finish_crtc_commit(crtc #2) The problem here is that since our hardware relies on vblank evasion, our CRTC 'begin' function waits until we're out of the danger zone in which register writes might wind up straddling the vblank, then disables interrupts; our 'finish' function re-enables interrupts after the registers have been written. The expectation is that the operations between 'begin' and 'end' must be performed without sleeping (since interrupts are disabled) and should happen as quickly as possible. By clumping all of the 'begin' calls together, we introducing a couple problems: * Subsequent 'begin' invocations might sleep (which is illegal) * The first 'begin' ensured that we were far enough from the vblank that we could write our registers safely and ensure they all fell within the same frame. Adding extra delay waiting for subsequent CRTC's wasn't accounted for and could put us back into the 'danger zone' for CRTC #1. This commit solves the problem by using a new helper that allows an order of operations like: for each crtc { begin_crtc_commit(crtc) // sleep (maybe), then disable interrupts commit planes for this specific CRTC end_crtc_commit(crtc) // reenable interrupts } so that sleeps will only be performed while interrupts are enabled and we can be sure that registers for a CRTC will be written immediately once we know we're in the safe zone. The crtc->config->base.crtc update may seem unrelated, but the helper will use it to obtain the crtc for the state. Without the update it will dereference NULL and crash. Changes since v1: - Use Matt Roper's commit message. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=90398 Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-08-13drm/i915: calculate primary visibility changes instead of calling from ↵Maarten Lankhorst
set_config This should be much cleaner, with the same effects. (cherry picked for v4.2 from commit fb9d6cf8c29bfcb0b3c602f7ded87f128d730382) Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> References: https://bugs.freedesktop.org/show_bug.cgi?id=90398 Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>