summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-07-07MLK-10507 video: mxsfb: clear vsync and frame_done irqs immediately in ISRFancy Fang
The vsync and frame_done irqs should be cleared in the ISR. Otherwise, the unrequired irq may be triggered in a wrong moment. Signed-off-by: Fancy Fang <chen.fang@freescale.com>
2015-07-03MLK-11206: input: misc: fxls8471: support ±2g/±4g/±8g dynamically selectionGao Pan
Support ±2g/±4g/±8g dynamically selection for motion sensor fxls8471. Set the sensor mode to standby mode before changing the scale range with the command "echo 0 > enable". The scale range can be changed with the command "echo 0/1/2 > range". Signed-off-by: Gao Pan <b54642@freescale.com>
2015-07-03MLK-11218: misc: fxos8700: support ±2g/±4g/±8g dynamicallyGao Pan
Support ±2g/±4g/±8g dynamically selection for motion sensor fxos8700. Set the sensor mode to standby mode before changing the scale range with the command "echo 0 > enable". The scale range can be changed with the command "echo 0/1/2 > range". Signed-off-by: Gao Pan <b54642@freescale.com>
2015-07-03MLK-11133: mtd:gpmi: support runtime pm for gpmi nandHan Xu
support runtime PM on gpmi nand to save the cost to enable/disable clock in each NAND IO. The driver also claim high-freq bus when resumed. Signed-off-by: Han Xu <b45815@freescale.com> (cherry-picked from commit 5b72b3388d1399420f3b49a0ca937ca5792e2d7d)
2015-07-02MLK-11212 iio: adc: correct the adc register read fail issueHaibo Chen
Read the register only when the adc register address is 4 byte aligned. Signed-off-by: Haibo Chen <haibo.chen@freescale.com> (cherry picked from commit 68af93647354087a55c86c58be48e8802c98aa3d)
2015-06-30MLK-10507: ov5640 mipi: Keep sensor in power up state after probeSandor Yu
Sometimes ov5640 can not working on iMX7D ARM2 board, ov5640 signal is not accepted by imx7d mipi csi phy. Remove power down function and keep ov5640 power up after driver probe, the issue is fixed. Signed-off-by: Sandor Yu <R01008@freescale.com> (cherry picked from commit d5e090bbfe9939a8e3c278ef86eddab0c9873fa9)
2015-06-30MLK-11155-2 rpmsg: imx: set the max limit of the tty testsRichard Zhu
samples should not live forever, set the max limit of the tty tests. Signed-off-by: Richard Zhu <richard.zhu@freescale.com> (cherry picked from commit 28cc7d83b4480602a1457e95a81438d0d6e64d7f)
2015-06-30MLK-11178-02 thermal: imx: disbale hardware reset funtion on imx7Bai Ping
As per to the design team, use the software poweroff when critical trip temp reached. No need to set the panic alam register bits when using the software poweroff as the critical trip action. Signed-off-by: Bai Ping <b51503@freescale.com>
2015-06-30MLK-11178-01 thermal: add a check to avoid orderly_poweroff twiceBai Ping
When temperature >= the 'critical_trip' temperature, the common framework code will call 'orderly_poweroff' function to power off the system. During the power off procedure the thermal framework will go on polling the temp, this will lead to recall the 'orderly_poweroff' again. In the first poweroff flow, some system resource has been freezed, then if the secondary 'orderly_poweroff' frees the resource again, it will lead to kernel dump. Signed-off-by: Bai Ping <b51503@freescale.com>
2015-06-26MLK-11162 video: mipi_dsi_samsung: add runtime pm for mipi phyFancy Fang
Using runtime pm framework to control the mipi phy on/off dynamically. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit 0dcb155067e95d8cdb0030584a2157034cae4701)
2015-06-24MLK-11137 usb: chipidea: host: add own hc_driver for each hcdPeter Chen
There are several benefits for doing like this: - hc_driver can be customized for each hcd - Other hcd hc_driver's initialization will not affect current one. We run out NULL pointer dereference problem when one hcd is started by module_init, and the other is started by otg thread at SMP platform. The reason for this problem is ehci_init_driver will do memory copy for current uniform hc_driver, and this memory copy will do memset (as 0) first, so when the first hcd is running usb_add_hcd, and the second hcd may clear the uniform hc_driver's space (at ehci_init_driver), then the first hcd will meet NULL pointer at the same time. See below two logs: LOG_1: ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.1: doesn't support gadget Unable to handle kernel NULL pointer dereference at virtual address 00000014 pgd = 80004000 [00000014] *pgd=00000000 Internal error: Oops: 805 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 108 Comm: kworker/u8:2 Not tainted 3.14.38-222193-g24b2734-dirty #25 Workqueue: ci_otg ci_otg_work task: d839ec00 ti: d8400000 task.ti: d8400000 PC is at ehci_run+0x4c/0x284 LR is at _raw_spin_unlock_irqrestore+0x28/0x54 pc : [<8041f9a0>] lr : [<8070ea84>] psr: 60000113 sp : d8401e30 ip : 00000000 fp : d8004400 r10: 00000001 r9 : 00000001 r8 : 00000000 r7 : 00000000 r6 : d8419940 r5 : 80dd24c0 r4 : d8419800 r3 : 8001d060 r2 : 00000000 r1 : 00000001 r0 : 00000000 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 1000404a DAC: 00000015 Process kworker/u8:2 (pid: 108, stack limit = 0xd8400238) Stack: (0xd8401e30 to 0xd8402000) 1e20: d87523c0 d8401e48 66667562 d8419800 1e40: 00000000 00000000 d8419800 00000000 00000000 00000000 d84198b0 8040fcdc 1e60: 00000000 80dd320c d8477610 d8419c00 d803d010 d8419800 00000000 00000000 1e80: d8004400 00000000 d8400008 80431494 80431374 d803d100 d803d010 d803d1ac 1ea0: 00000000 80432428 804323d4 d803d100 00000001 80435eb8 80e0d0bc d803d100 1ec0: 00000006 80436458 00000000 d803d100 80e92ec8 80436f44 d803d010 d803d100 1ee0: d83fde00 8043292c d8752710 d803d1f4 d803d010 8042ddfc 8042ddb8 d83f3b00 1f00: d803d1f4 80042b60 00000000 00000003 00000001 00000001 80054598 d83f3b00 1f20: d8004400 d83f3b18 d8004414 d8400000 80e3957b 00000089 d8004400 80043814 1f40: d839ec00 00000000 d83fcd80 d83f3b00 800436e4 00000000 00000000 00000000 1f60: 00000000 80048f34 00000000 00000000 00000000 d83f3b00 00000000 00000000 1f80: d8401f80 d8401f80 00000000 00000000 d8401f90 d8401f90 d8401fac d83fcd80 1fa0: 80048e68 00000000 00000000 8000e538 00000000 00000000 00000000 00000000 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [<8041f9a0>] (ehci_run) from [<8040fcdc>] (usb_add_hcd+0x248/0x6e8) [<8040fcdc>] (usb_add_hcd) from [<80431494>] (host_start+0x120/0x2e4) [<80431494>] (host_start) from [<80432428>] (ci_otg_start_host+0x54/0xbc) [<80432428>] (ci_otg_start_host) from [<80435eb8>] (otg_set_protocol+0xa4/0xd0) [<80435eb8>] (otg_set_protocol) from [<80436458>] (otg_set_state+0x574/0xc58) [<80436458>] (otg_set_state) from [<80436f44>] (otg_statemachine+0x408/0x46c) [<80436f44>] (otg_statemachine) from [<8043292c>] (ci_otg_fsm_work+0x3c/0x190) [<8043292c>] (ci_otg_fsm_work) from [<8042ddfc>] (ci_otg_work+0x44/0x1c4) [<8042ddfc>] (ci_otg_work) from [<80042b60>] (process_one_work+0xf4/0x35c) [<80042b60>] (process_one_work) from [<80043814>] (worker_thread+0x130/0x3bc) [<80043814>] (worker_thread) from [<80048f34>] (kthread+0xcc/0xe4) [<80048f34>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c) Code: e5953018 e3530000 0a000000 e12fff33 (e5878014) LOG_2: ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.1: doesn't support gadget Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = 80004000 [00000000] *pgd=00000000 In Online 00:00ternal e Offline rror: Oops: 80000005 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 108 Comm: kworker/u8:2 Not tainted 3.14.38-02007-g24b2734-dirty #127 Workque Online 00:00ue: ci_o Offline tg ci_otg_work Online 00:00task: d8 Offline 39ec00 ti: d83ea000 task.ti: d83ea000 PC is at 0x0 LR is at usb_add_hcd+0x248/0x6e8 pc : [<00000000>] lr : [<8040f644>] psr: 60000113 sp : d83ebe60 ip : 00000000 fp : d8004400 r10: 00000001 r9 : 00000001 r8 : d85fd4b0 r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : d85fd400 r3 : 00000000 r2 : d85fd4f4 r1 : 80410178 r0 : d85fd400 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 1000404a DAC: 00000015 Process kworker/u8:2 (pid: 108, stack limit = 0xd83ea238) Stack: (0xd83ebe60 to 0xd83ec000) be60: 00000000 80dd920c d8654e10 d85fd800 d803e010 d85fd400 00000000 00000000 be80: d8004400 00000000 d83ea008 80430e34 80430d14 d803e100 d803e010 d803e1ac bea0: 00000000 80431dc8 80431d74 d803e100 00000001 80435858 80e130bc d803e100 bec0: 00000006 80435df8 00000000 d803e100 80e98ec8 804368e4 d803e010 d803e100 bee0: d86e8100 804322cc d86cf050 d803e1f4 d803e010 8042d79c 8042d758 d83cf900 bf00: d803e1f4 80042b78 00000000 00000003 00000001 00000001 800545e8 d83cf900 bf20: d8004400 d83cf918 d8004414 d83ea000 80e3f57b 00000089 d8004400 8004382c bf40: d839ec00 00000000 d8393780 d83cf900 800436fc 00000000 00000000 00000000 bf60: 00000000 80048f50 80e019f4 00000000 0000264c d83cf900 00000000 00000000 bf80: d83ebf80 d83ebf80 00000000 00000000 d83ebf90 d83ebf90 d83ebfac d8393780 bfa0: 80048e84 00000000 00000000 8000e538 00000000 00000000 00000000 00000000 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ee66e85d 133ebd03 [<804 Online 00:000f644>] Offline (usb_add_hcd) from [<80430e34>] (host_start+0x120/0x2e4) [<80430e34>] (host_start) from [<80431dc8>] (ci_otg_start_host+0x54/0xbc) [<80431dc8>] (ci_otg_start_host) from [<80435858>] (otg_set_protocol+0xa4/0xd0) [<80435858>] (otg_set_protocol) from [<80435df8>] (otg_set_state+0x574/0xc58) [<80435df8>] (otg_set_state) from [<804368e4>] (otg_statemachine+0x408/0x46c) [<804368e4>] (otg_statemachine) from [<804322cc>] (ci_otg_fsm_work+0x3c/0x190) [<804322cc>] (ci_otg_fsm_work) from [<8042d79c>] (ci_otg_work+0x44/0x1c4) [<8042d79c>] (ci_otg_work) from [<80042b78>] (process_one_work+0xf4/0x35c) [<80042b78>] (process_one_work) from [<8004382c>] (worker_thread+0x130/0x3bc) [<8004382c>] (worker_thread) from [<80048f50>] (kthread+0xcc/0xe4) [<80048f50>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c) Code: bad PC value Signed-off-by: Peter Chen <peter.chen@freescale.com> (cherry picked from commit 8d0ca70bdac986f5886ba8ccfff46a41e7a555ec)
2015-06-24MLK-11151 usb: chipidea: otg: drive vbus off if fsm.drv_vbus is truePeter Chen
The current condition may not true even we have driven vbus on already. The vbus drive operation may be async, eg through i2c gpio expendor, so the vbus may not be valid when we unload usb module. We meet this issue when we do fast load/unload usb module test. Signed-off-by: Peter Chen <peter.chen@freescale.com> (cherry picked from commit a4dec7730c98f2639fe250a1a67f782b6f73bdf5)
2015-06-24MLK-11163 dma: pxp-v2: refine the pxp scaling logicFancy Fang
The pxp scaling logic will cause issue when the s0 and out are both yuv formats. The issue has been reported in another MM CR. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit a0bf35c7c4be567589156e9c61c6fbfdfa5de1ec)
2015-06-24MLK-11160 pci: imx: enlarge the delay time after resumeRichard Zhu
some pcie pe devices maybe still failed resime back, after pcie rc is resumed, when the pcie ep devices have a heavy loading task. Enlarge the delay time after imx6qp pcie rc resume back. Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com> (cherry picked from commit e0f3836149889b1db7cce76218c76efbf0347e0e)
2015-06-24MLK-11132 usb: chipidea: otg: delay suspend for a_wait_vfallLi Jun
While A device as peripheral ends session by a_bus_drop, it will go back to host role by transition to a_wait_vfall state, then ehci host driver may access portsc status after controller enters suspend , this will result in system hang since its clock is gated off. This patch use existing autosuspend to delay the controller suspend if it comes to a_wait_vfall state. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit b140fa6803ef6ececec17e435212a960a3169cc2)
2015-06-23MLK-11141 net: fec: init MAC prior to mii bus probeFugang Duan
Below case causes mii bus probe failed: ifconfig eth0 down -> suspend/resume with Mega/fax mix off -> ifconfig eth0 up Mega/fast mix off, ENET MAC power will be off, all initialized MAC registers reset to default, so in the case, it must init MAC prior to mii bus probe. Signed-off-by: Fugang Duan <B38611@freescale.com>
2015-06-15Revert "MLK-11080-2 bcmdhd: add WL_HOST_WAKEUP support"Dong Aisheng
WL_HOST_WAKEUP feature causes system suspend/resume break, so revert. This reverts commit 2ce8a1ad56f76a072656c0d244c3b1f72603fac0.
2015-06-15MLK-11113 video: mipi_dsi_samsung: add fastmix support when suspendFancy Fang
In 7D platform, the fastmix will power down MIPI DSI when system doing suspend. So when system resume, the MIPI DSI will be in the 'reset' state and all the registers should be configured again. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit 25ad2d6142962455ac0e515c1118b9c42bd13ffa)
2015-06-15MLK-11110: cpufreq: imx7-cpufreq: fix system resume failedRobin Gong
System resume failed easily after commit b993956109856d3, the commit is no problem, but it exposes the potential deadlock bug which not unlock mutex if cpufreq not change, remove these code since the cpufreq framwork has consider it. Signed-off-by: Robin Gong <b38343@freescale.com> (cherry picked from commit d791bf25e07023f7a936fcabe6f641ad391048b3)
2015-06-12MLK-11088: arm: imx: pinctrl-imx: fix GPIO1_IO00 group registerAdrian Alonso
* Fix GPIO1_IO00 pin group register, add ZERO_OFFSET_VALID to iomuxc-lpsr as GPIO1_IO00 mux_reg offset is Zero. --- 302c0000.iomuxc-lpsr: failed to get pin(12) name 302c0000.iomuxc-lpsr: maps: function hog group hoggrp-2 num 4 pinctrl core: add 4 pinmux maps pinconfig core: failed to register map default (3): no group/pin given --- * Fix debug info use pin_id to get the corresponding pad name. Signed-off-by: Adrian Alonso <aalonso@freescale.com> Signed-off-by: Robin Gong <b38343@freescale.com>
2015-06-12MLK-11107 epdc: update 7D panel nameEvan Kotara
Update the name of the panel used on the 7D DC4 ebook board from development name to ED060XH2C1. Signed-off-by: Evan Kotara <evan.kotara@freescale.com>
2015-06-11MLK-11095: mtd:qspi: clear the DDR_EN bit on 6UL and 7DHan Xu
the obsolete bit DDR_EN on 6UL and 7D should be clear in case other program set the bit and cause qspi probe fail. Signed-off-by: Han Xu <b45815@freescale.com> (cherry picked from commit bde382480e9c3ba3ba1f0f4c73f77df894482699)
2015-06-11MLK-11087: mtd:qspi: support DDR Quad mode for Macronix mx25l51245gHan Xu
Enable DDR quad mode for Macronix qspi chip mx25l51245g by setting Quad bit in status register and enabling in dts file. The LUT for SPINOR_OP_READ_1_4_4_D was initially designed for Spansion qspi chip, so there is one cycle for "mode" after address and before dummy. While Macronix qspi chip doesn't have this feature, so we just take off one cycle in dts file to bypass this problem. Signed-off-by: Han Xu <b45815@freescale.com> (cherry picked from commit 2ee7cdc2b821605dbb47854238d7fc124800547a)
2015-06-11MLK-11071 cpufreq: imx7: add cpufreq pm_notifier on imx7dBai Ping
Add pm_notifier for cpufreq on i.MX7D to make sure when system do suspend/resume no cpu frequency change. cpu frequency change may use the I2C/SPI interface to control the external PMIC chip, if the I2C/SPI are not active in this procedure, frequency change will fail. Signed-off-by: Bai Ping <b51503@freescale.com>
2015-06-11MLK-11083: ov5640 mipi: Fix build errorSandor Yu
Build error when ov5640 mipi driver build as build-in: drivers/media/platform/mxc/subdev/built-in.o: In function `OV5640_get_HTS': :(.text+0x5d08): multiple definition of `OV5640_get_HTS' drivers/media/platform/mxc/capture/built-in.o::(.text+0x6228): first defined here drivers/media/platform/mxc/subdev/built-in.o: In function `OV5640_get_light_freq': :(.text+0x5e6c): multiple definition of `OV5640_get_light_freq' drivers/media/platform/mxc/capture/built-in.o::(.text+0x638c): first defined here drivers/media/platform/mxc/subdev/built-in.o: In function `binning_on': :(.text+0x6bb4): multiple definition of `binning_on' It is cause by ov5640 mipi global function name conflict, Add static property to these functions to fix the issue. Signed-off-by: Sandor Yu <R01008@freescale.com> (cherry picked from commit 3826c16be99c1d1a432f914ca09808f0d4591edb)
2015-06-10MLK-11080-2 bcmdhd: add WL_HOST_WAKEUP supportDong Aisheng
WL_HOST_WAKEUP can use outband GPIO interrupt instead of the standard SDIO interrupt which can improve the WiFi performance a lot. After enable WL_HOST_WAKE, the performance could increase about TX: 42% / RX: 26%. Original: Tx: 107 Mbits/sec Rx: 80.2 Mbits/sec Now: Tx: 152 Mbits/sec Rx: 101 Mbits/sec Signed-off-by: Dong Aisheng <b29396@freescale.com> (cherry picked from commit ecef28b0c1c081b4673a12ebb4e87bfc22baf58c)
2015-06-10MLK-10795-5 camera: use gpio_set_value_cansleep instead of gpio_set_valueRobby Cai
The reason is in spi gpio driver (drivers/gpio/gpio-74x164.c) the 'can_sleep' property is set true as follows. chip->gpio_chip.can_sleep = true; Then gpio_set_value() calls gpiod_set_raw_value(), in which it checkes 'can_sleep' property. WARN_ON(desc->chip->can_sleep); Use gpio_set_value_cansleep instead to avoid the kernel warning message. Signed-off-by: Robby Cai <r63905@freescale.com> (cherry picked from commit d0ce5d78c3ea0167f159687d726a5eaad2c76214)
2015-06-09net: fec: ptp: correct the ENET_ATCOR valueFugang Duan
The current driver adjust freq formula is: fe * diff = ppb * pc Note: fe: ENET ref clock frequency in Hz diff = inc_corr - inc: difference between default increment and correction increment ppb: parts per billion adjustment from base pc: correction period (in number of fe clock cycles) The correction increment will be used after N cycles of regular increments, not every N cycles (with N being the correction period). For example, set ENET_ATCOR=4, INC=8, INC_CORR=9, there will be 4 increments of 8 (ENET_ATINC[INC]) , followed by 1 increment of 9 (ENET_ATINC[INC_CORR]). So, the correct formula is: fe * diff = ppb * (pc + 1) For ENET_ATCOR, a value 0 disables the correction counter and no corrections occur. So base on the origin formula, set pc = pc > 1 ? pc - 1 : pc. Signed-off-by: Fugang Duan <B38611@freescale.com> Signed-off-by: Frank Li <Frank.Li@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2015-06-09MLK-11051 net: phy: mdio_bus: don't call .phy_suspendi() when netdev is NULLFugang Duan
In .mdio_bus_phy_may_suspend(), there check netdev is NULL to judge to set phy to suspend status. netdev is NULL has three cases: - phy is not found - phy is found, match to general phy driver - phy is found, match to specifical phy driver Case 1: phy is not found, cannot communicate by MDIO bus. Case 2: phy is found: if phy dev driver probe/bind err, netdev is not __open__ status, mdio bus is unregistered. if phy is detached, phy had entered suspended status. Case 3: phy is found, phy is detached, phy had entered suspended status. So, in here, it shouldn't set phy to suspend by calling mdio bus. In i.MX6UL evk/arm2 board, if down the ethx interface and do suspend/resume, system will hang. Because after ethx down all clocks are gated off, for general phy driver, unbind the phy device, for specifical phy driver, no unbind the device, and the original driver call mdio bus to set phy to suspend during system suspend, so system will hang since there have mdio register access. The patch can fix it. Signed-off-by: Fugang Duan <B38611@freescale.com>
2015-06-09MLK-11067 dma: pxp-v3: replace a mutex with a semaphore to avoid deadlockFancy Fang
The 'mutex_unlock()' function should not be called in interrupt handler, since this may cause deadlock issue. So using semaphore to replace the 'hard_lock' mutex. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit 2114d6805fb9a31a8a3f844063d4a25ef3e56202)
2015-06-08MLK-10584 bcmdhd: fix connect Adhoc network warningsDong Aisheng
As part of starting up IBSS, CFG80211 driver needs BSS information to be plumbed into it. Hence in DHD we call cfg80211_infrom_bss() and it needs whole frame consist of IEs contained in beacon frame. But FW was passing frame buffer with some extra bytes preceded and when same is plumbed into CFG80211 it was not able to decode the frame and it ignores the frame as result we get such warnings. Using latest FW delivered by Broadcom to fix the issue. As well as wl_cfg80211.c changes are essential. This change is actually fix certain warnings seen when moving between IBSS and BSS network mode. Changes must be done in wl_cfg80211_change_virtual_iface() which you can find at wl_cfg80211.c and this file is not specific wl tool. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-10717 bcmdhd: fix rmmod warnings when associated with APDong Aisheng
Should call cfg80211_disconnected() when do rmmod if associcated with AP before.. root@imx7d_all:~# modprobe -r bcmdhd dhd_prot_ioctl : bus is down. we have nothing to do dhd_wlfc_deinit():3268, ampdu_hostreorder get failed Err = -1 dhd_prot_ioctl : bus is down. we have nothing to do dhd_wlfc_deinit():3291 failed to enable/disable bdcv2 tlv signaling Err = -1 CFG80211-ERROR) wl_cfg80211_disconnect : Reason 3 dhd_prot_ioctl : bus is down. we have nothing to do CFG80211-ERROR) wl_cfg80211_disconnect : error (-1) ------------[ cut here ]------------ WARNING: CPU: 1 PID: 1057 at net/wireless/core.c:953 cfg80211_netdev_notifier_call+0x3f4/0x468() Modules linked in: bcmdhd(-) evbug CPU: 1 PID: 1057 Comm: modprobe Not tainted 3.14.38-02140-g3418ee9 #1074 [<80014a40>] (unwind_backtrace) from [<80011698>] (show_stack+0x10/0x14) [<80011698>] (show_stack) from [<80705f90>] (dump_stack+0x7c/0xbc) [<80705f90>] (dump_stack) from [<8002fbe0>] (warn_slowpath_common+0x6c/0x88) [<8002fbe0>] (warn_slowpath_common) from [<8002fc98>] (warn_slowpath_null+0x1c/0x24) [<8002fc98>] (warn_slowpath_null) from [<806b2d4c>] (cfg80211_netdev_notifier_call+0x3f4/0x468) [<806b2d4c>] (cfg80211_netdev_notifier_call) from [<8004e044>] (notifier_call_chain+0x44/0x84) [<8004e044>] (notifier_call_chain) from [<8004e148>] (raw_notifier_call_chain+0x18/0x20) [<8004e148>] (raw_notifier_call_chain) from [<8059b218>] (rollback_registered_many+0x1dc/0x340) [<8059b218>] (rollback_registered_many) from [<8059b3a4>] (rollback_registered+0x28/0x3c) [<8059b3a4>] (rollback_registered) from [<8059c658>] (unregister_netdevice_queue+0x54/0xb0) [<8059c658>] (unregister_netdevice_queue) from [<8059c6cc>] (unregister_netdev+0x18/0x20) [<8059c6cc>] (unregister_netdev) from [<7f00ef84>] (dhd_detach+0x238/0x474 [bcmdhd]) [<7f00ef84>] (dhd_detach [bcmdhd]) from [<7f05621c>] (dhdsdio_release+0x40/0x1c0 [bcmdhd]) [<7f05621c>] (dhdsdio_release [bcmdhd]) from [<7f0569fc>] (dhdsdio_disconnect+0x3c/0x94 [bcmdhd]) [<7f0569fc>] (dhdsdio_disconnect [bcmdhd]) from [<7f0493a8>] (bcmsdh_remove+0x3c/0x60 [bcmdhd]) [<7f0493a8>] (bcmsdh_remove [bcmdhd]) from [<7f04ade8>] (bcmsdh_sdmmc_remove+0x4c/0x64 [bcmdhd]) [<7f04ade8>] (bcmsdh_sdmmc_remove [bcmdhd]) from [<804baff8>] (sdio_bus_remove+0x30/0xf8) [<804baff8>] (sdio_bus_remove) from [<80346c94>] (__device_release_driver+0x70/0xcc) [<80346c94>] (__device_release_driver) from [<803473bc>] (driver_detach+0xac/0xb0) [<803473bc>] (driver_detach) from [<80346994>] (bus_remove_driver+0x4c/0xa0) [<80346994>] (bus_remove_driver) from [<7f05f930>] (dhd_module_cleanup+0x2c/0x3c [bcmdhd]) [<7f05f930>] (dhd_module_cleanup [bcmdhd]) from [<80084c54>] (SyS_delete_module+0x11c/0x17c) [<80084c54>] (SyS_delete_module) from [<8000e3e0>] (ret_fast_syscall+0x0/0x30) ---[ end trace 89522c1a1370465d ]--- dhd_detach(): thread:dhd_watchdog_thread:291 terminated OK dhd_dpc_thread: Unexpected up_cnt 0 dhd_detach(): thread:dhd_dpc:292 terminated OK CFG80211-ERROR) wl_event_handler : was terminated wl_destroy_event_handler(): thread:wl_event_handler:290 terminated OK unregister wifi platform drivers wifi_platform_bus_enumerate device present 0 mmc1: card 0001 removed Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-8 bcmdhd: fixed build errors with 3.9.2 toolchainDong Aisheng
CC [M] drivers/net/wireless/bcmdhd/dhd_ip.o LD [M] fs/udf/udf.o drivers/net/wireless/bcmdhd/dhd_common.c:108:22: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time] DHD_COMPILED " on " __DATE__ " at " __TIME__; ^ drivers/net/wireless/bcmdhd/dhd_common.c:108:38: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time] DHD_COMPILED " on " __DATE__ " at " __TIME__; Drop debug version with build date/time. The kernel already has this information, and individual drivers shouldn't duplicate that. This also eliminates the use of __DATE__ and __TIME__, which make the build non-deterministic. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-7 bcmdhd: call wifi_card_detect in wifi_platform_bus_enumerateDong Aisheng
Without this, WiFi can not work when re-insmod module because the card is not reset in rmmod. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-6 bcmdhd: fix warning when rmmod moduleDong Aisheng
root@imx7d_all:~# rmmod bcmdhd dhd_prot_ioctl : bus is down. we have nothing to do dhd_wlfc_deinit():3268, ampdu_hostreorder get failed Err = -1 dhd_prot_ioctl : bus is down. we have nothing to do dhd_wlfc_deinit():3291 failed to enable/disable bdcv2 tlv signaling Err = -1 dhd_detach(): thread:dhd_watchdog_thread:2d4 terminated OK dhd_dpc_thread: Unexpected up_cnt 0 dhd_detach(): thread:dhd_dpc:2d5 terminated OK CFG80211-ERROR) wl_event_handler : was terminated wl_destroy_event_handler(): thread:wl_event_handler:2d3 terminated OK ------------[ cut here ]------------ Kernel BUG at 800d12b0 [verbose debug info unavailable] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM Modules linked in: bcmdhd(-) evbug CPU: 0 PID: 755 Comm: rmmod Not tainted 3.14.28-7D_alpha #1 task: a8a31680 ti: a841a000 task.ti: a841a000 PC is at kfree+0x17c/0x180 LR is at wiphy_unregister+0x15c/0x1cc pc : [<800d12b0>] lr : [<806b0cf8>] psr: 40070013 sp : a841be28 ip : 00000000 fp : a901396c r10: 7f078dc0 r9 : a9240120 r8 : a9240380 r7 : a9240000 r6 : a9010000 r5 : ab73af20 r4 : a9240120 r3 : 00000000 r2 : ab75a000 r1 : 00000000 r0 : 7f079220 Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: a863406a DAC: 00000015 Process rmmod (pid: 755, stack limit = 0xa841a238) Stack: (0xa841be28 to 0xa841c000) be20: 7f079220 a9240120 00000000 a9010000 a9240000 a9240380 be40: a9240120 7f078dc0 a901396c 806b0cf8 00000000 7f078dc0 a901396c 805962b4 be60: 7f07cea0 a8433800 a8ae3840 a9240380 a9010000 a9013000 a9240380 7f02b088 be80: 00000000 00000000 a9010000 a9013000 a9010000 7f07cea0 7f078dc0 7f00f00c bea0: 00000001 a850f800 7f078dc0 a865b3c0 00000081 8000e5e4 a841a000 00000000 bec0: 00000000 7f05588c 7f078dc0 a850f800 00000000 7f056080 7f056044 a865b180 bee0: a865b340 7f048944 a8fe7800 a865b3c0 7f07acd4 7f04a37c 7f04a330 a8487408 bf00: a8487400 804baf10 a8487408 7f07acd4 a848743c 803476b4 7f07acd4 a8487408 bf20: 7f07acd4 80347dc4 7f07acd4 7f07ad38 00000800 803473b4 00000000 7f05f158 bf40: 7f05f12c 80083be8 00000000 00000000 7f07ad38 00000800 a841bf4c 646d6362 bf60: 00006468 00000000 8108f030 a8a31680 a8a31a30 00000000 00000000 8004605c bf80: a89c4d80 a841a018 8000e5e4 a841bfb0 a841a000 00011330 00000000 7ecc5e1c bfa0: 00000002 8000e460 00000000 7ecc5e1c 01b05d3c 00000800 76f26104 00002002 bfc0: 00000000 7ecc5e1c 00000002 00000081 7ecc5f0a 00000001 01b05d08 00000000 bfe0: 76eebeb0 7ecc5bfc 00016e3c 76eebebc 60080010 01b05d3c efdff749 faff7bf3 [<800d12b0>] (kfree) from [<806b0cf8>] (wiphy_unregister+0x15c/0x1cc) [<806b0cf8>] (wiphy_unregister) from [<7f02b088>] (wl_free_wdev+0x2c/0xf8 [bcmdhd]) [<7f02b088>] (wl_free_wdev [bcmdhd]) from [<7f00f00c>] (dhd_detach+0x274/0x430 [bcmdhd]) [<7f00f00c>] (dhd_detach [bcmdhd]) from [<7f05588c>] (dhdsdio_release+0x40/0x1cc [bcmdhd]) [<7f05588c>] (dhdsdio_release [bcmdhd]) from [<7f056080>] (dhdsdio_disconnect+0x3c/0xa0 [bcmdhd]) [<7f056080>] (dhdsdio_disconnect [bcmdhd]) from [<7f048944>] (bcmsdh_remove+0x3c/0x60 [bcmdhd]) [<7f048944>] (bcmsdh_remove [bcmdhd]) from [<7f04a37c>] (bcmsdh_sdmmc_remove+0x4c/0x64 [bcmdhd]) [<7f04a37c>] (bcmsdh_sdmmc_remove [bcmdhd]) from [<804baf10>] (sdio_bus_remove+0x30/0xf8) [<804baf10>] (sdio_bus_remove) from [<803476b4>] (__device_release_driver+0x70/0xcc) [<803476b4>] (__device_release_driver) from [<80347dc4>] (driver_detach+0xac/0xb0) [<80347dc4>] (driver_detach) from [<803473b4>] (bus_remove_driver+0x4c/0xa0) [<803473b4>] (bus_remove_driver) from [<7f05f158>] (dhd_module_cleanup+0x2c/0x3c [bcmdhd]) [<7f05f158>] (dhd_module_cleanup [bcmdhd]) from [<80083be8>] (SyS_delete_module+0x11c/0x17c) [<80083be8>] (SyS_delete_module) from [<8000e460>] (ret_fast_syscall+0x0/0x30) Code: e1a01005 e1a02006 e8bd4ff8 eafffef1 (e7f001f2) ---[ end trace ca749705cd612037 ]--- Segmentation fault Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-4 wireless: make bcmdhd wireless driver functionallyDong Aisheng
1. Add dummy regulator in dts which is must required by bcmdhd driver 2. Workaround to add dummy sdio_reset_comm as suggested by Broadcom guy because driver always failed in this function porting from Android kernel, root cause unknown. 3. enable driver dts function, inband irq, built as module 4. comment out the hard code in wifi_plat_dev_drv_probe which has to parse oob irq gpio properties and gpio regulators from device tree even the driver does not use it. 5. warning fix Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-3 wireless: bcmdhd: make work driver on 3.14 kernelDong Aisheng
Add missing file delivered by Broadcom to make driver work on L3.14.y kernel. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-2 wireless: add bcmdhd wireless driver into compilationDong Aisheng
Add bcmdhd driver into compilation Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-08MLK-11065-1 wireless: add bcmdhd_1_141_72 driverDong Aisheng
It's default driver delivered by Broadcom. Signed-off-by: Dong Aisheng <b29396@freescale.com>
2015-06-05MLK-11060: Revert "MLK-10766: mtd: qspi: disable DDR_EN bit before SW reset"Han Xu
This reverts commit cc2500bb20a620e191cbb20c346660d260d1e7d7. This QSPI ddr setting was changed on i.MX6UL and i.MX7D, refer to the below commit commit e168ff92f780b8ef74cf7e50ad5cb9d50b1b8007 Author: Peng Fan <Peng.Fan@freescale.com> Date: Fri May 29 09:12:22 2015 +0800 imx: qspi fix ddr delay setting For i.MX6UL and i.MX7D, ddr delay logic enable bit is changed from i.MX6SX. If want to enable qspi ddr mode, ddr delay logic should be enabled. Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Signed-off-by: Han Xu <b45815@freescale.com>
2015-06-05MLK-11055 video: mxc ipuv3 fb: Fix wrong pixel component map when PRE is enabledLiu Ying
In the on-the-fly cases to enable PRE, to make sure the pixel may be correctly deciphered by IPU after the framebuffer configuration is done, we probably need to use PRE pixel component mapping feature since the original framebuffer pixel format is likely not the same as the one we use in the last run. However, in the non on-the-fly cases to enable PRE, we should have PRE generate an appropriate pixel format for IPU to consume which doesn't include PRE pxiel component mapping feature. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
2015-06-05MLK-11037 dma: pxp-v3: refine the pxp scaling logicFancy Fang
The pxp scaling logic will cause issue when the s0 and out are both yuv formats. The issue has been reported in another MM CR. Signed-off-by: Fancy Fang <chen.fang@freescale.com>
2015-06-05MLK-10607 dma: pxp-v3: fix race condition issue in pxp irq handlerFancy Fang
Add pxp_chan spin lock calling in the pxp irq handler to avoid the simultaneous accesses of the pxp_chan lists data. Signed-off-by: Fancy Fang <chen.fang@freescale.com>
2015-06-05MLK-10256-07: mipi csi: Enable mipi csi driverSandor Yu
Enable mipi csi driver. Driver implemented in subdev architecture. support YUYV format. Signed-off-by: Sandor Yu <R01008@freescale.com>
2015-06-05MLK-10256-06 ov5640 mipi: Re-architecture ov5640 mipi driver to subdevSandor Yu
Re-write ov5640 mipi driver to subdev architecture. Signed-off-by: Sandor Yu <R01008@freescale.com>
2015-06-05MLK-10256-04: csi: Add mipi input support to csiSandor Yu
-Add mipi input support. DTS property csi-mux-mipi use to enable csi working in mipi mode. -Set max video memory size 32M -Add rx fifo overflow interrupter handle Signed-off-by: Sandor Yu <R01008@freescale.com>
2015-06-05MLK-10256-02 v4l2: Add v4l2_async_notifier_unregister recursively callSandor Yu
If anyone calls v4l2_async_notifier_unregister() recursively from device_release_driver(), code will deadlock at list_lock, so unlock list_lock when device_release_driver() called. Signed-off-by: Sandor Yu <R01008@freescale.com>
2015-06-05MLK-10570-01: ov5640 mipi: Rename driver from ov5640 to ov564xSandor Yu
Rename driver from ov5640 to ov564x. Signed-off-by: Sandor Yu <R01008@freescale.com>
2015-06-05MLK-11005-4 usb: chipidea: imx: add OTG ADP for imx usb driverLi Jun
Add usb otg ADP support for imx usb driver, and enable it on i.MX7D. Signed-off-by: Li Jun <jun.li@freescale.com>
2015-06-05MLK-11005-3 usb: chipidea: add OTG ADP support for chipidea usb driverLi Jun
ADP(Attach Detection Protocol) is part of USB OTG 2.0 release, which can be used to find device attachment after session ends(vbus is off). This patch adds OTG ADP feature for chipdea usb driver. Signed-off-by: Li Jun <jun.li@freescale.com>