summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-08-05MLK-11260 [EPDC]: Move the EPDC firmware to /lib/firmware/imx/epdcOliver Brown
Moving the EPDC firmware to /lib/firmware/imx/epdc. Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
2015-08-05MLK-11223 [EPDC FB V2] - Need to add support for basic epdc waveformsOliver Brown
The driver will now read the firmware header and detect whether basic or advanced alogorithms are used. Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
2015-07-30MLK-10828 thermal: imx: update the temperature calibration data for i.mx6Bai Ping
According to the design team: After a thorough accuracy study of the Temp sense circuit,we found that with our current equation, an average part can read 7 degrees lower than a known forced temperature. We also found out that the standard variance was around 2C; which is the tightest distribution that we could create. We need to change the temp sense equation to center the average part around the target temperature. Old Equation: Temp = Troom,cal - slope*(Count measured - Count room fuse) Where Troom,cal = 25C and Slope = 0.4297157 - (0.0015974 * Count room fuse) New Equation: Temp = Troom,cal - slope*(Count measured - Count room fuse) +offset Where Troom,cal = 25C and Slope = 0.4148468 - (0.0015423 * Count room fuse) Offset = 3.580661 Signed-off-by: Bai Ping <b51503@freescale.com> (cherry picked from commit b3208903656816c0ec446318c96cd8d3a2314258)
2015-07-23MLK-11236 mtd: gpmi-nand: Fix nand runtime PM issueYe.Li
Because of the delay of auto suspend, the nand clocks are delayed to disable when calling the clk_set_rate. This causes the clk_set_rate failed on some platforms like 6q/6qp, and finally lead the NAND not working. Signed-off-by: Ye.Li <Ye.Li@freescale.com> (cherry picked from commit 1334dd236d4401d6635accb6c8472d8a5ed088b5)
2015-07-23MLK-10452 [iMX6SL/TIC/PXP] - imxv4l2sink incorrect color for 24bpp or 32bppOliver Brown
The color is incorrect for 24bpp and 32 bpp framebuffer. Needed to add cases to support 24bpp and 32bpp. Signed-off-by: Oliver Brown <oliver.brown@freescale.com> (cherry picked from commit 5c5343f7bfd4ee226cd951af8f58ebae44c0dc38)
2015-07-23MLK-11165: v4l2 pxp: Add RGB32 support to pxp v4l2 outputSandor Yu
Add RGB32 support to pxp v4l2 output. Signed-off-by: Sandor Yu <R01008@freescale.com> (cherry picked from commit 445781b2375dc60550eb66a2406f0bf50499ddeb)
2015-07-23mmc: sdhci: fix low memory corruptionJiri Slaby
When dma mapping (dma_map_sg) fails in sdhci_pre_dma_transfer, -EINVAL is returned. There are 3 callers of sdhci_pre_dma_transfer: * sdhci_pre_req and sdhci_adma_table_pre: handle negative return * sdhci_prepare_data: handles 0 (error) and "else" (good) only sdhci_prepare_data is therefore broken. When it receives -EINVAL from sdhci_pre_dma_transfer, it assumes 1 sg mapping was mapped. Later, this non-existent mapping with address 0 is kmap'ped and written to: Corrupted low memory at ffff880000001000 (1000 phys) = 22b7d67df2f6d1cf Corrupted low memory at ffff880000001008 (1008 phys) = 63848a5216b7dd95 Corrupted low memory at ffff880000001010 (1010 phys) = 330eb7ddef39e427 Corrupted low memory at ffff880000001018 (1018 phys) = 8017ac7295039bda Corrupted low memory at ffff880000001020 (1020 phys) = 8ce039eac119074f ... So teach sdhci_prepare_data to understand negative return values from sdhci_pre_dma_transfer and disable DMA in that case, as well as for zero. It was introduced in 348487cb28e66b032bae1b38424d81bf5b444408 (mmc: sdhci: use pipeline mmc requests to improve performance). The commit seems to be suspicious also by assigning host->sg_count both in sdhci_pre_dma_transfer and sdhci_adma_table_pre. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: stable@vger.kernel.org # 4.0+ Fixes: 348487cb28e6 Cc: Ulf Hansson <ulf.hansson@linaro.org> Cc: Haibo Chen <haibo.chen@freescale.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit fc590f7171a87660274147c5174d14b5750d7392)
2015-07-23Input: ads7846 - fix device usage within attribute showAlexander Stein
With commit e585c40ba (Input: ads7846 - convert to hwmon_device_register_with_groups()) the device passed to the attribute's show function isn't the spi device as before. So fixup the passed device to ads7846_read12_ser. Signed-off-by: Alexander Stein <alexanders83@web.de> Acked-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2015-07-22MLK-11274 net: fec: add mii bus up_failed flag to reflect the real statusFugang Duan
Add mii bus up_failed flag to reflect the real mii bus status. Signed-off-by: Fugang Duan <B38611@freescale.com> Reported-and-tested-by: Zhang Sanshan <B51434@freescale.com> (cherry picked from commit: ea348e597501d44841a28d8ee099361e89d63520)
2015-07-22MLK-11258 tty: serial: imx: disable overrun interrupt during uart port shutdownFugang Duan
Also disable rx fifo overrun interrupt during uart port shutdown. Signed-off-by: Fugang Duan <B38611@freescale.com> (cherry picked from commit: 39eb703f6c9f9359723f3fa22e798b1d21b44c67)
2015-07-22MLK-11183 usb: chipidea: otg: complete state machine before cancel hrtimerLi Jun
When do usb driver module load and unload loop test for A-device, the hrtimer may be cancelled during otg state machine running, so after the hrtimer is cancelled, the otg state machine may start it again by adding a new timer, this will cause the hrtimer will be active after its function memory is freed by module unload. This patch is to fix it by trying to hold the fsm mutex lock before setting otg state to be undefined, then otg hrtimer will be cancelled after current otg fsm transition completes, and no new timer will be added. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 8c3ab4f22bc34675aeb8f9c62e69b450a179be0f) (cherry picked from commit 95c8590c5232eeb9d054ac7504455a90a133f05a)
2015-07-22MLK-11269-2 usb: chipidea: host: avoid check PORT_SUSPEND wronglyPeter Chen
At some situations, the ehci_bus_suspend may not set PORT_SUSPEND due to port is not enabled, so add flag ehci->bus_suspended to check if ehci_bus_suspend set PORT_SUSPEND or not. We see "ci_hdrc ci_hdrc.0: timeout waiting for SUSPEND" wrongly when plug in an unsupported usb device, in that case, the PORT_PE is cleared and bus_suspend is called. Signed-off-by: Peter Chen <peter.chen@freescale.com> (cherry picked from commit 82cfe6c31ee55e5aab1a057a5aaf853b7bb6cd07)
2015-07-22MLK-11266-9 usb: gadget: zero: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit afd76e4d483a6cbf22968630044e5a779592805e)
2015-07-22MLK-11266-8 usb: gadget: printer: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 2ae655dcc249dcd2606fe9392c4e8a986ea3d5ea)
2015-07-22MLK-11266-7 usb: gadget: ncm: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 4455688e586de5e81a4a3e5eee513294e7bb8c45)
2015-07-22MLK-11266-6 usb: gadget: multi: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 8ae537f7975864aaec9c97162f5c514d1a3773b0)
2015-07-22MLK-11266-5 usb: gadget: hid: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 31221e4a4e26c461de77148088ef6d809fd398ac)
2015-07-22MLK-11266-4 usb: gadget: g_ffs: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 973f77a1685effd4fcae4e7bfe724a94e3228673)
2015-07-22MLK-11266-3 usb: gadget: cdc2: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit c58f56bded2d17fa1fd3bde555b213a996f5a9f9)
2015-07-22MLK-11266-2 usb: gadget: audio: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 85e6d899a3650ef4108397dcc3397b76e68f4d40)
2015-07-22MLK-11266-1 usb: gadget: acm_ms: allocate and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit daa65ba547bf9ba2702b57108d4c19bfa0ab749c)
2015-07-22MLK-11183-2 usb: chipidea: otg: disable otg interrupt before flush_workqueuePeter Chen
We do not want (care) the interrupt during we remove the otg function, so move it beforehand. Signed-off-by: Peter Chen <peter.chen@freescale.com> (cherry picked from commit 9ae22c687fd161dfff2e81512b50143fa154b9bb)
2015-07-22MLK-11183-1 usb: chipidea: host: fix NULL pointer problem for fast ↵Peter Chen
load/unload module The interrupt may occur (due to remove process may block interrupt) after we remove hcd, in that case, we should not call hcd's interrupt handler, otherwise, below NULL pointer dereference will occur, the reason for this is we call free_irq later than hcd's. So after hcd has been removed, we should not call hcd interrupt handler. ci_hdrc ci_hdrc.0: remove, state 1 usb usb1: USB disconnect, device number 1 ci_hdrc ci_hdrc.0: USB bus 1 deregistered [<800691e8>] (handle_irq_event) from [<8006c02c>] (handle_fasteoi_irq+0x84/0x14c) [<8006c02c>] (handle_fasteoi_irq) from [<800687f4>] (generic_handle_irq+0x2c/0x3c) [<800687f4>] (generic_handle_irq) from [<8000ed4c>] (handle_IRQ+0x40/0x90) [<8000ed4c>] (handle_IRQ) from [<8000856c>] (gic_handle_irq+0x2c/0x5c) [<8000856c>] (gic_handle_irq) from [<80012240>] (__irq_svc+0x40/0x70) Exception stack(0x80db1f18 to 0x80db1f60) 1f00: 80db1f60 3b9aca00 1f20: 06f86934 0000000d 80dbe1c8 80dbe1c8 ee71e0d0 00000000 06f5bb01 0000000d 1f40: 80db0000 00000000 00000017 80db1f60 00000009 8049c19c 000d0013 ffffffff [<80012240>] (__irq_svc) from [<8049c19c>] (cpuidle_enter_state+0x54/0xe4) [<8049c19c>] (cpuidle_enter_state) from [<8049c2e0>] (cpuidle_idle_call+0xb4/0x14c) [<8049c2e0>] (cpuidle_idle_call) from [<8000f07c>] (arch_cpu_idle+0x8/0x44) [<8000f07c>] (arch_cpu_idle) from [<8006876c>] (cpu_startup_entry+0x100/0x14c) [<8006876c>] (cpu_startup_entry) from [<80d52b10>] (start_kernel+0x350/0x35c) --[ end trace 1160f590a7b228b3 ]-- Unable to handle kernel NULL pointer dereference at virtual address 000000b0 pgd = 80004000 [000000b0] *pgd=00000000 Internal error: Oops: 17 1 PREEMPT SMP ARM Modules linked in: ci_hdrc_imx usbmisc_imx ci_hdrc udc_core ehci_hcd phy_mxs_usb mxc_v4l2_capture ipu_bg_overlay_sdc ipu_still ipu_prp_enc adv7180_tvin ipu_csi_enc v4l2_int_device ipu_fg_overlay_sdc mxc_mlb mxc_dcic evbug [last unloaded: phy_mxs_usb] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.14.38-usb-host-otg-02047-ga4dec77 #13 task: 80dbbae8 ti: 80db0000 task.ti: 80db0000 PC is at usb_hcd_irq+0x4/0x38 LR is at handle_irq_event_percpu+0x50/0x180 pc : [<8040eed8>] lr : [<8006907c>] psr: a00d0193 sp : 80db1e98 ip : fffffffa fp : 00000000 r10: 80e1f13f r9 : d8009900 r8 : 0000004b r7 : 00000000 r6 : 00000000 r5 : d800995c r4 : d8f2dec0 r3 : d2234010 r2 : d2234010 r1 : 00000000 r0 : 0000004b Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 6920004a DAC: 00000015 Process swapper/0 (pid: 0, stack limit = 0x80db0238) Stack: (0x80db1e98 to 0x80db2000) 1e80: d2234010 8006907c 1ea0: 0000004b ee71da00 d8009900 d800995c d8f2dec0 f4a00100 06f5bb01 0000000d 1ec0: 80db0000 800691e8 d8009900 d800995c 00000000 8006c02c 8006bfa8 0000004b 1ee0: 0000004b 800687f4 80dace54 8000ed4c f4a0010c 80db8970 80db1f18 8000856c 1f00: 00000009 8049c19c 000d0013 ffffffff 80db1f4c 80012240 80db1f60 3b9aca00 1f20: 06f86934 0000000d 80dbe1c8 80dbe1c8 ee71e0d0 00000000 06f5bb01 0000000d 1f40: 80db0000 00000000 00000017 80db1f60 00000009 8049c19c 000d0013 ffffffff 1f60: 06f86934 0000000d 80dc4a54 ee71e0d0 80db8574 ee71e0d0 00000000 00000000 1f80: 00000000 80e797f8 80dbe1c8 8049c2e0 00000000 80db0000 80db8574 806fe48c 1fa0: 80db0038 80e1f13d 80e1f13d 8000f07c 00000000 8006876c ffffffff 80d52b10 1fc0: ffffffff ffffffff 80d5258c 00000000 00000000 80d9ef30 00000000 10c53c7d 1fe0: 80db84fc 80d9ef2c 80dbcb80 1000406a 412fc09a 10008074 00000000 00000000 [<8040eed8>] (usb_hcd_irq) from [<8006907c>] (handle_irq_event_percpu+0x50/0x180) [<8006907c>] (handle_irq_event_percpu) from [<800691e8>] (handle_irq_event+0x3c/0x5c) [<800691e8>] (handle_irq_event) from [<8006c02c>] (handle_fasteoi_irq+0x84/0x14c) [<8006c02c>] (handle_fasteoi_irq) from [<800687f4>] (generic_handle_irq+0x2c/0x3c) [<800687f4>] (generic_handle_irq) from [<8000ed4c>] (handle_IRQ+0x40/0x90) [<8000ed4c>] (handle_IRQ) from [<8000856c>] (gic_handle_irq+0x2c/0x5c) [<8000856c>] (gic_handle_irq) from [<80012240>] (__irq_svc+0x40/0x70) Exception stack(0x80db1f18 to 0x80db1f60) 1f00: 80db1f60 3b9aca00 1f20: 06f86934 0000000d 80dbe1c8 80dbe1c8 ee71e0d0 00000000 06f5bb01 0000000d 1f40: 80db0000 00000000 00000017 80db1f60 00000009 8049c19c 000d0013 ffffffff [<80012240>] (__irq_svc) from [<8049c19c>] (cpuidle_enter_state+0x54/0xe4) [<8049c19c>] (cpuidle_enter_state) from [<8049c2e0>] (cpuidle_idle_call+0xb4/0x14c) [<8049c2e0>] (cpuidle_idle_call) from [<8000f07c>] (arch_cpu_idle+0x8/0x44) [<8000f07c>] (arch_cpu_idle) from [<8006876c>] (cpu_startup_entry+0x100/0x14c) [<8006876c>] (cpu_startup_entry) from [<80d52b10>] (start_kernel+0x350/0x35c) Code: 11a002a0 03a00001 e12fff1e e92d4008 (e59130b0) --[ end trace 1160f590a7b228b4 ]-- Kernel panic - not syncing: Fatal exception in interrupt CPU2: stopping CPU: 2 PID: 1483 Comm: modprobe Tainted: G D W 3.14.38-usb-host-otg-02047-ga4dec77 #13 [<80014a68>] (unwind_backtrace) from [<80011758>] (show_stack+0x10/0x14) [<80011758>] (show_stack) from [<806f5fe8>] (dump_stack+0x7c/0xbc) [<806f5fe8>] (dump_stack) from [<800139f0>] (handle_IPI+0x144/0x158) [<800139f0>] (handle_IPI) from [<80008598>] (gic_handle_irq+0x58/0x5c) [<80008598>] (gic_handle_irq) from [<80012240>] (__irq_svc+0x40/0x70) Exception stack(0xd96c5dc0 to 0xd96c5e08) 5dc0: d800995c 0000004b 00000000 00072004 d8f2dec0 d8009900 d800995c 0000004b 5de0: d800995c a00f0013 00000000 010f2280 fffffffa d96c5e08 00000000 8006926c 5e00: 000f0013 ffffffff [<80012240>] (__irq_svc) from [<8006926c>] (synchronize_irq+0x18/0xa8) [<8006926c>] (synchronize_irq) from [<800696dc>] (__free_irq+0xfc/0x1c4) [<800696dc>] (__free_irq) from [<80069838>] (free_irq+0x4c/0xa4) [<80069838>] (free_irq) from [<8034b760>] (release_nodes+0x16c/0x1cc) [<8034b760>] (release_nodes) from [<803487ec>] (__device_release_driver+0x78/0xcc) [<803487ec>] (__device_release_driver) from [<8034885c>] (device_release_driver+0x1c/0x28) [<8034885c>] (device_release_driver) from [<8034827c>] (bus_remove_device+0xdc/0x108) [<8034827c>] (bus_remove_device) from [<80345788>] (device_del+0x100/0x1a4) [<80345788>] (device_del) from [<8034a218>] (platform_device_del+0x18/0x9c) [<8034a218>] (platform_device_del) from [<8034a2a8>] (platform_device_unregister+0xc/0x20) [<8034a2a8>] (platform_device_unregister) from [<7f61932c>] (ci_hdrc_remove_device+0xc/0x20 [ci_hdrc]) [<7f61932c>] (ci_hdrc_remove_device [ci_hdrc]) from [<7f631260>] (ci_hdrc_imx_remove+0x2c/0xdc [ci_hdrc_imx]) [<7f631260>] (ci_hdrc_imx_remove [ci_hdrc_imx]) from [<8034a350>] (platform_drv_remove+0x18/0x30) [<8034a350>] (platform_drv_remove) from [<803487e4>] (__device_release_driver+0x70/0xcc) [<803487e4>] (__device_release_driver) from [<80348ef4>] (driver_detach+0xac/0xb0) [<80348ef4>] (driver_detach) from [<803484e4>] (bus_remove_driver+0x4c/0xa0) [<803484e4>] (bus_remove_driver) from [<80084158>] (SyS_delete_module+0x11c/0x17c) [<80084158>] (SyS_delete_module) from [<8000e460>] (ret_fast_syscall+0x0/0x30) CPU3: stopping CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D W 3.14.38-usb-host-otg-02047-ga4dec77 #13 [<80014a68>] (unwind_backtrace) from [<80011758>] (show_stack+0x10/0x14) [<80011758>] (show_stack) from [<806f5fe8>] (dump_stack+0x7c/0xbc) [<806f5fe8>] (dump_stack) from [<800139f0>] (handle_IPI+0x144/0x158) [<800139f0>] (handle_IPI) from [<80008598>] (gic_handle_irq+0x58/0x5c) [<80008598>] (gic_handle_irq) from [<80012240>] (__irq_svc+0x40/0x70) Exception stack(0xd80b1f50 to 0xd80b1f98) 1f40: d80b1f98 3b9aca00 256aed09 0000000d 1f60: 80dbe1c8 80dbe1c8 ee7360d0 00000000 25477984 0000000d d80b0000 00000000 1f80: 00000017 d80b1f98 00000009 8049c19c 00070013 ffffffff [<80012240>] (__irq_svc) from [<8049c19c>] (cpuidle_enter_state+0x54/0xe4) [<8049c19c>] (cpuidle_enter_state) from [<8049c2e0>] (cpuidle_idle_call+0xb4/0x14c) [<8049c2e0>] (cpuidle_idle_call) from [<8000f07c>] (arch_cpu_idle+0x8/0x44) [<8000f07c>] (arch_cpu_idle) from [<8006876c>] (cpu_startup_entry+0x100/0x14c) [<8006876c>] (cpu_startup_entry) from [<10008624>] (0x10008624) CPU1: stopping Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 402f2d38e22007e931dc3dd52a69c0fed88452bf)
2015-07-22MLK-11123-18 usb: chipidea: otg: remove hnp_enable inputLi Jun
Since we use dt property hnp_support to decide if HNP is enabled, so remove hnp_enable input file. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 51b7dca391128f35cfd46bc921c2d0175c60335b)
2015-07-22MLK-11123-17 usb: common: remove of_usb_otg_adp_supportLi Jun
Since we have of_usb_set_otg_caps to cover all otg related features, remove of_usb_otg_adp_support. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit aff0f1027cf1d98ea757f440ac6743eed2d6e168)
2015-07-22MLK-11123-16 usb: chipidea: otg: remove adp_support from ci_hdrc_platform_dataLi Jun
Since we introduce usb_otg_caps in ci_hdrc_platform_data to cover all otg related features, remove adp_support from ci_hdrc_platform_data. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 9eb98ab92fda810838427addfd9a5c3c60ba272e)
2015-07-22MLK-11123-14 usb: gadget: serial: create otg descriptor by otg capabilitiesLi Jun
Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 7432488c0a62f893e8fa8203aa009f892b35d121)
2015-07-22MLK-11123-13 usb: gadget: mass_storage: create otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 9c32332e8fe9c63d184dc0c6c6ba5de7f2f30481)
2015-07-22MLK-11123-12 usb: gadget: ether: create otg descriptor by otg capabilitiesLi Jun
Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations, free it while ether unbind. If otg capability is not defined, keep its otg descriptor unchanged. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit ef9975d1146f57bc9a219f49dd3dd9b985ab0ac0)
2015-07-22MLK-11123-11 usb: gadget: configfs: create and init otg descriptor by otg ↵Li Jun
capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations, free it while composite unbind. If otg capability is not defined, keep its otg descriptor unchanged. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit d307d3b95f3e56b514d6a5b015d0441120fcc65c)
2015-07-22MLK-11123-10 usb: gadget: add otg descriptor allocate and init interfaceLi Jun
Allocate usb otg descriptor and initialize it according to gadget's otg capabilities, if usb_otg_caps is not set, keep settings as current gadget drivers. With this 2 new interfaces, gadget can use usb_otg_descriptor for OTG 1.x, and usb_otg20_descriptor for OTG 2.0 or above, and otg features can be decided by the combination of usb hardware property and driver config. Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 0587b916c2e8b6ad09e35568cf8503c99f4e1ced)
2015-07-22MLK-11123-9 usb: chipidea: update ci_otg_is_fsm_mode conditionsLi Jun
After introduce usb otg properties, update ci_otg_is_fsm_mode conditions to be depending on both usb hardware properties and usb driver config, also resolve a compile issue in debug.c after the API change. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 502ffedb66e4d1cb0a4676b209e9b19b746de7c3)
2015-07-22MLK-11123-8 usb: chipidea: set usb gadeget's otg capabilitiesLi Jun
Set gadget's otg capabilities according to controller's capability and otg properties in device tree. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit ec53d399f649b9d3eeefd0e4f1b7770241f9db63)
2015-07-22MLK-11123-7 usb: common: add API to set otg features by device treeLi Jun
Check property of usb hardware to get otg version and if SRP, HNP and ADP are disabled. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 0fc1c9fa52cfad6474667c3ef6cad9b2f00b8960)
2015-07-22MLK-11123-5 usb: gadget: composite: USB_DT_OTG request handling updateLi Jun
According to gadget otg revision to setup buffer, copy usb_otg_descriptor from config's descriptor if host requests USB_DT_OTG. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit c700bb5e7afa4db87a80998aa73e1f43bfea63aa)
2015-07-22MLK-11147 usb: chipidea: otg: keep irq enabled if otg work had been queuedLi Jun
If the otg work had been queued, current code will disable irq again but the otg work will be done only once, so the irq enable and disable cannot be balanced, this patch is to fix this. Signed-off-by: Li Jun <b47624@freescale.com> (cherry picked from commit 0d5c0888eaec17289e40968d7d15b92b781ed34f)
2015-07-22MLK-11200 usb: otg: avoid DMA to kernel stack for HNP pollingLi Jun
HNP polling uses a kernel stack variable when sending the HNP polling control message, which causes dma-debug to complain, fix it by adding host_req_flag to otg_fsm struct, so it's done by kmallocing. Signed-off-by: Li Jun <jun.li@freescale.com> (cherry picked from commit 05b5f53b2c4d71761454b47852d5c5a48c5cc93a)
2015-07-22MLK-11252-02 cpufreq: imx: add dc regulator in cpufreq driverBai Ping
In some i.MX6 board (i.MX6UL EVK), it will have a additional GPIO controlled DC-DC regulator. we need to change this regulator's voltage According the maximum frequency that CPU can run at. At present, we only need to set the voltage to minimum one, we need to set the voltage to the maximum before suspend, resume back to the minimum voltage after suspend. Signed-off-by: Bai Ping <b51503@freescale.com> (cherry picked from commit 0ee93c0d55bf0d9468de759cbee3087068ea4233)
2015-07-22MLK-11233 thermal: imx: disable the thermal_clk when thermal driver probe failedBai Ping
If the thermal driver probe failed after the thermal_clk has been enabled, disable the thermal_clk before return. Signed-off-by: Bai Ping <b51503@freescale.com> (cherry picked from commit b1092d17017dcdcb2dbd7878cae34f06e2078abb)
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)