summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2019-02-12MLK-14857: mxc_hdmi: Set default mode a CEA modeRobert Chiras
When using fb_find_mode from fbdev/core with a specified user more, it will return a screeninfo structure with the pixclock corresponding to a different refresh rate than the requested one. For example, for 1920x1080@60 it will return pixclock=5780. When we get the videmode for this screeninfo, it will have a refresh of 59Hz, instead of 60Hz. If we use this mode as default mode when EDID cannot be read, on a monitor with fixed refresh rate of 60Hz, it won't work. Therefore, we should save the default mode, the nearest mode from CEA modes defined by our own driver (which will have the correct refresh rate and pixclock for the requested resolution). Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
2019-02-12MLK-14861-1 mmc: sdhci: make DDR50 tuning optionallyHaibo Chen
commit 70f2d20917bc ("MLK-14884 mmc: sdhci: make DDR50 tuning optionally") want to make DDR50 card tuning optionally, but the code logic is not right, the tuning of DDR50 card will also be impacted by the flag 'SDHCI_SDR50_NEEDS_TUNING'. e.g. imx6sl/imx6sx/imx6ul/imx7d default set USE_TUNING_SDR50, which means on these SoC, DDR50 card still do tuning even haven't the flag 'SDHCI_DDR50_NEEDS_TUNING'. This patch fix the logic issue, separate DDR50 and SDR50 card. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2019-02-12MLK-11403: I2C: imx: restore pin setting for i2cGao Pan
restore pin setting for i2c in suspend/resume Signed-off-by: Gao Pan <gaopan@freescale.com> (cherry picked from commit 8aed73af218f25e0677b8980b3706246dd68790d) Signed-off-by: Robin Gong <yibin.gong@nxp.com> Conflicts: drivers/i2c/busses/i2c-imx.c
2019-02-12MLK-14774 mmc: sdhci-esdhc-imx: restore pins state after suspendDong Aisheng
After commit 3e3274ab9ff3 ("mmc: sdhci-esdhc-imx: Use common sdhci_suspend|resume_host()"), we lost the pins state store and save in common sdhci_pltfm_{suspend|resume} API which results in the pins state lost in state un-retainable suspend/resume, then CMD transfer will meet timeout subsequently. Due to sdhci_pltfm_{suspend|resume} API becomes static after that commit later, we then do manual pins state save and restore in our platform suspend/resume API instead. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
2019-02-12MLK-13972-2 clk: imx8qxp: add audio clocksViorel Suman
Add audio clocks. Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2019-02-12MLK-14884 mmc: sdhci: make DDR50 tuning optionallyDong Aisheng
DDR50 tuning is optinally defined in sd 3.0 spec. Per IC guys suggestion, it internally already uses a fixed optimized timing and normally does not require tuning. Make it optionally and platform can claim SDHCI_DDR50_NEEDS_TUNING support if it wants tuning. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
2019-02-12MLK-14795 PCI: designware: fail to read the ep mem on rc boardRichard Zhu
The mem_base address is configured as the outbound memory region twice when imx pcie ep/rc validation is enabled. Mask the one contained in desigware driver to fix this issue. Remove the usleep_range usage in designware driver, since that function maybe used in imx noirq pm calls. Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
2019-02-12MLK-13853-1 ARM64: clk: imx8qm: Fix SPDIF TX clk parentsViorel Suman
Set the appropriate parents for SPDIF TX clocks. Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2019-02-12MLK-14796 PCI: imx: kernel panic when reboot ep boardRichard Zhu
pp->ops is not assigned properly, thus there would be kernel panic when reboot ep board. Initialized pp->ops in ep initializatione, fix this issue. don't call dw_pcie_wait_for_link because the usleep is used in it. Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
2019-02-12MLK-14695-3 rtc: add imx sc rtc driverAnson Huang
Add i.MX system controller RTC driver. The RTC is controlled by system controller, and kernel RTC driver needs to communicate with system controller via SC firmware API. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2019-02-12MLK-14528: ASoC: sdma: Update period/segment max bytesDaniel Baluta
Commit 665ced16cf044 ("MLK-10050 dma: imx-sdma: add support for sdma memory copy") enforces maximum SDMA buffer descriptor length at 65532, but doesn't update period_bytes_max or max_segment size in DMA drivers. Thus, resulting in the following bug: $ arecord -Dhw:0,0 -r 192000 -f S20_3LE -c 1 -d 10 audio192k20b1c.wav imx-sdma: SDMA channel 5: maximum period size exceeded: 65534 > 65532 Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2019-02-12MLK-14771 dma: pxp-v3: add new added 2D features supportGuoniu.Zhou
The V3 version PXP has added below new 2D features: 1. Input fetch/store blocks to accept different formats input/output. 2. Add Rotation1 block to do rotation before alpha blending. 3. Add Composite1 block to accept source from input fetch. 4. AS and PS have increased supported pixel formats. Signed-off-by: Fancy Fang <chen.fang@nxp.com> Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com> (cherry picked from commit 4daef24b19890ca65135c48fc24018f64761444f)
2019-02-12MLK-14314-14 dma: pxp-v3: derive the shortest path table for 2D nodesFancy Fang
Based on the previously caculated adjacent list and mux config info, the shortest path table can be derived by distance calculation between two different 2D nodes. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit c8adf0f7089d5c5e286d7ae74c138a84bed5e280)
2019-02-12MLK-14314-13 dma: pxp-v3: construct graph structures to store pxp nodes.Fancy Fang
According to the PXP arch diagram, the V3 PXP can be abstracted to a graph structure. There are totally 16 2D nodes in PXP and 16 2D related mux nodes: 1. Using '16x16' adjacent array to record the 2D nodes relationship and '16' size array to record the input and output nodes for each muxe node. 2. Construct the adjacent list to store all the 2D nodes and also config the mux info used by each two nodes of one edge during pxp probing stage. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit e8087406df2e04982fd90b4070ac68fafa4ad3d5)
2019-02-12MLK-14314-12 dma: pxp-v3: refine pxp timer init in probe()Fancy Fang
Extract the timer initialization from pxp_probe() to a seperate function call to make probing process more clear. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit c8a127e506bca2e38fae02c03ceae4e6956d6ea3)
2019-02-12MLK-14314-11 dma: pxp-v3: refine attributes create in probe()Fancy Fang
Extract the attributes creation from the pxp_probe() to a seperate function call to make the probing process more clear. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 85ab5476bf59a407037b43419b920b681b58b52d)
2019-02-12MLK-14314-10 dma: pxp-v3: refine m4 init in probe()Fancy Fang
Extract the m4 related initialization code from pxp_probe() to make the probing function more clear. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit f1bd8146332f880b75f08eab64505070069018fb)
2019-02-12MLK-14314-9 dma: pxp-v3: refine pxp interrupt init codeFancy Fang
The PXP interrupt functions in V3 is relatively complex. So do the interrupt initalization in a sperate function to make the pxp_probe() more clear. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 2fa43d26f81cf0331820b41bc198adbb414c0c37)
2019-02-12MLK-14314-8 dma: pxp: remove meaningless assignments in probe()Fancy Fang
Remove some assignments which have no real effects for V2 and V3 PXP drivers, since using devm_kzalloc() to make the data to be zero. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit a6d6e4d2b6b21427c529a33a7d47ddc918b19eb7)
2019-02-12MLK-14314-6 dma: pxp: change some RGB formats definitionFancy Fang
Some RGB formats fourcc definition are not precise according to its original meaning. So make some changes for them. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit b0b4ad680e267bdf542d2c9a3202c0192bde9cb0)
2019-02-12MLK-14314-5 dma: pxp-v3: divide whole pxp into four partsFancy Fang
According to the pxp high level architecture diagram, it is better to divide the whole big pxp module into four sub-modules: 1. 2D operation module(legacy pxp and input fetch & store). 2. Dithering module. 3. WFE_A module. 4. WFE_B module. This division will simplify driver implementations and management. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 5e57840b41adb195515bd652d9624feaadf3448e)
2019-02-12MLK-14314-4 dma: pxp-v3: abstract ps and out fmts parse functionsFancy Fang
Abstract PS and OUT formats parsing jobs to seperate functions 'pxp_parse_ps_fmt()' and 'pxp_parse_out_fmt()' to make the code clean and easier to maintain. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 3e2cd1880fdf219c77f119fa5c9fb33e50e8654c)
2019-02-12MLK-14314-3 pxp-v3: add 'need_yuv_swap' fieldFancy Fang
Add 'need_yuv_swap' field to 'pxp_proc_data' structure to record the yuv formats which needs byte swap. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 28ce43b27faad915e93f47b438d23f4ebfe020b5)
2019-02-12MLK-14314-2 dma: pxp: refine is_yuv().Fancy Fang
Use 'switch' statement to replace 'if' statement to make logic more clear and easier to maintain. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit ca1b4393b86054a81bb40ad856af9c4f166841ea)
2019-02-12MLK-14314-1 dma: pxp: remove unused multiple overlay layers supportFancy Fang
The multiple overlay layers are not used on pxp v2 and v3 module, so remove this. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit c4fd8b36dbf9b53079d88d55ccfedde3a444ec29)
2019-02-12MLK-14648: mxc: fix default modelistRobert Chiras
When EDID read fails, the mxc_hdmi driver creates a default modelist using a hard-coded list with CEA modes. Every time the HDMI cable is plugged-in, it will destroy the current modelist and recreate the list. The problem comes from fbcon, which holds reference to current mode used for each framebuffer console. When we destroy the modelist and send the new one, if the memory for the old mode is overwritten it will try to find another mode, close to the old one. Since the mode could be overwritten by something else there is a high chance that the new selected mode to be different from the old one. If the HDMI sink does not support the selected mode, IPU will fail to deliver frames. Since it's wrong to advertise as supported modes the modes from a hard-coded list, just use one mode, which comes from cmdline. Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
2019-02-12MLK-14611 Fix xcbc unkeyed registrationRadu Solea
AES is a keyed algorithm, XCBC-AES needs a key for operation, this patch prevents the registration of AES-based transforms as unkeyed operations. Signed-off-by: Radu Solea <radu.solea@nxp.com>
2019-02-12MLK-14612 media: capture: fix VIDIOC_DQBUF issuesLaurentiu Palcu
The following commit, in 4.9 kernel: commit 2d7007153f0c ("[media] media: videobuf2: Restructure vb2_buffer") added some changes to the v4l2 structures that were not properly included in the existing driver after the rebase from 4.1. Hence, when a new buffer was filled by the v4l2 core, the flags field in vb2_v4l2_buffer structure contained a pointer and, depending on the pointer value, the v4l2 core considered that the buffer was already dequeued, signaling the error to userspace. The issue appeared intermittently, after multiple reboots. This patch fixes it. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
2019-02-12arm64: clk: imx8qm: Fix ESAI EXTAL clk parentsViorel Suman
Set the appropriate parents for ESAI EXTAL clocks. Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2019-02-12MLK-14721 video: mxsfb: some random line display top after blank fb1 and ↵Guoniu.Zhou
then suspend/resume After suspend and resume, the value of LCDIFx_AS_NEXT_BUF register losed, so when we unblank fb1 again, the valule of LCDIFx_AS_NEXT_BUF is 0 and random lines dis- played on the top. Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com> Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2019-02-12MLK-14548: video: fb: hdmi: Allow Sil902 init regardless of fb registration timeCristina Ciocan
When a new fb is registered, a FB_EVENT_FB_REGISTERED event is sent to any registered fb client. Upon event receipt, the Sil902 HDMI transmitter saves the fb info structure address for future use and schedules a cable state check in order to setup and power up/down the device. The current Sil902 driver registers as fb client at the end of the probe function, thus events from fb core will only be received after the probe() call. If a framebuffer is registered before Sil902's probe() is called, the HDMI transmitter will not have knowledge of the framebuffer. This patch moves the Sil902 fb client registration step into an __init function and saves the fb info in case any registration event is received prior to the probe() call. When the probe() is called, check for any registration event and act accordingly. Sil902's init function class is called after the frame buffer core's init function class. Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
2019-02-12MLK-14548: video: fb: hdmi: Allow reset pin deferralCristina Ciocan
The HDMI transmitter Sil902x driver displays a warning when it cannot reset the device before any other instruction, but carries on without exiting the probe() function. If the needed reset pin is not yet available because the pinctrl controllers are not set up and the reset fails with deferral error, try to acquire the pin later on in order to allow proper initialization of the Sil902 HDMI transmitter. Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
2019-02-12MLK-14650 mxc vadc: Add set_fmt functionSandor Yu
Add set_fmt function to mxc vadc driver. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-02-12MLK-14718 video: fbdev: mxc: mipi dsi: Check device tree node in probeLiu Ying
For the safe probing's sake, check valid device tree node in probe function. Signed-off-by: Liu Ying <victor.liu@nxp.com>
2019-02-12MLK-14665 video: fbdev: mxc: mipi dsi: Customize gpio reset functionLiu Ying
The mxc display driver framework doesn't support deferral probe. The following initialization process may cause the mipi dsi driver deferral probe, however. pinctrl-imx6 - arch_initcall gpio-mxc - subsys_initcall gpio-reset - arch_initcall This patch customizes gpio reset function so that we can remove the code to use the reset logic provided by the gpio-reset driver. Also, the gpio-reset driver is not in the upstreaming kernel, so it would be good not to use it if possible. Signed-off-by: Liu Ying <victor.liu@nxp.com>
2019-02-12MLK-14662 mmc: debugfs: add runtime pm when cat ios or clock file nodeHaibo Chen
MMC core code add 'MMC_CAP_RUNTIME_RESUME', postpone the real card resume operation from bus_resume to bus_runtime_resume. So after system resume, for non-removable-card, it still not really resume. At this point, if user cat the ios or clock node, only get zero data although the mmc/sd card is still present. This patch add mmc_get_card() to make sure card really resume back when user cat ios or clock debugfs file node, then user can get the correct information. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2019-02-12MLK-14284 Fix CAAM Errata err005766 handlingRadu Solea
* Update ERA detection code to check 3 sources CCBVID, CAAMVID and the device tree. * Fix bit handling of CAAMVID data to obtain correct results. * Remove default device tree values. * Update errata handling to target known affected platforms. Signed-off-by: Radu Solea <radu.solea@nxp.com>
2019-02-12MLK-14611 Fix CBC mode support by returning a correct IVRadu Solea
Current CBC mode does not return the last cyphertext block as IV for operation chaining. CTS fails because of incorrect IV. Signed-off-by: Radu Solea <radu.solea@nxp.com>
2019-02-12MLK-14611 Add DES key complexity validationRadu Solea
Signed-off-by: Radu Solea <radu.solea@nxp.com>
2019-02-12MLK-14659 rpmsg: imx: tty: restore support for imx7dOctavian Purdila
Commit 2a596c353234 ("MLK-13981-2 rpmsg: imx: enable rpmsg virt tty") enabled support for imx7ulp but it broke support for imx7d since the currently distributed M4 image for imx7d still uses the old "rpmsg-openamp-demo-channel" naming. While we could change the channel name in the M4 image it is better to maintain backwards compatibility, so add the old naming back to the id table. Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
2019-02-12MLK-14703-3 video: mipi_dsi_northwest: refine some configs via traffic mode.Fancy Fang
Refine some DSI registers configuration by using the traffic mode: . set 'DSI_VIDEO_MODE' directly from 'traffic_mode'. . set 'HFP', 'HBP' and 'HSA' by distinguishing traffic modes. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 2549b6f527c462d0a556dceb36c4c3ce7470e809)
2019-02-12MLK-14703-2 video: mipi_dsi_northwest: record traffic-mode.Fancy Fang
Add a new field 'traffic_mode' to struct 'mipi_dsi_info" to record the traffic mode read from dts or set to default for mipi dsi panel display. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit e5ffea789dc1cb00f291383b9d5927ab1bba501f)
2019-02-12MMFMWK-7549 [media] videobuf: store field and timestamp when queue USERPTR ↵Haihua Hu
buffer When use USERPTR mode to queue v4l2 buffer, field and timestamp info needs to be stored. Signed-off-by: Haihua Hu <jared.hu@nxp.com>
2019-02-12MLK-14518-2 pxp: set data path for pxp after resetRobby Cai
it's needed for pxp legacy process, so set it just after pxp does the reset. Signed-off-by: Robby Cai <robby.cai@nxp.com>
2019-02-12MLK-14518-1 pxp: initialize pxp according to recommended flowRobby Cai
use pxp_soft_reset() in probe and resume function because this implementation follows the recommended flow in the IC spec. without soft reset, when only use wfe_a process without legacy process it's likely to meet timeout issue since. In other words, wfe_a process need the soft reset to work properly. Signed-off-by: Robby Cai <robby.cai@nxp.com>
2019-02-12MLK-14516 epdc: bypass pxp legacy process when there's no transformationRobby Cai
when there's no transform (Y8 format in framebuffer, no rotation, no look-up transformation such as CMAP, no scaling/flip, etc.) and no dithering, bypass pxp legacy process to save time. Signed-off-by: Robby Cai <robby.cai@nxp.com>
2019-02-12MLK-14530-02 driver: cpufreq: Improve the the cpufreq for imx7ulpBai Ping
The pm Qos add/remove only need to be called when A7 change mode between HSRUN and RUN mode. Signed-off-by: Bai Ping <ping.bai@nxp.com>
2019-02-12MLK-14362-2 backlight: gpio_backlight: add power management opsFancy Fang
Add suspend/resume power management operations for gpio backlight. Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2019-02-12MLK-14369 epdc: sync LUT status to PXP before enable collision detectionRobby Cai
on imx7d and imx6ull/imx6sll, the collision detection logic is implemented in PXP WFE (A on imx7d, or B on imx6ull/imx6sll) instead of the logic implemented on EPDC on previous SoCs (like imx6sl/imx6dl). The driver need read the LUT status and send this information to PXP WFE (A on imx7d, or B on imx6ull/imx6sll) engine, so that PXP WFE engine can detect if there is an active LUT assigned to the pixels affected by current update. Without this patch, there could possibly be some false collision report due to the out-of-sync. The patch intends to fix it. Signed-off-by: Robby Cai <robby.cai@nxp.com>
2019-02-12MLK-13198 pxp: imx7d: fix error histogram status report issueRobby Cai
The cause is the legacy process involves PXP AS engine accidentally to process data, which results to one pixel at (0,0) to be changed. This will cause an incorrect histogram calculation. Signed-off-by: Robby Cai <robby.cai@nxp.com>