aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* ASoC: soc-pcm: add symmetry for channels and sample bitsNicolin Chen2014-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some SoCs can only work in mono or stereo mode at one time. So if we let them capture a mono stream while playing a stereo stream, there might be a problem occur to one of these two streams: double paced or slowed down. In soc-pcm.c, we have soc_pcm_apply_symmetry() to apply the rate symmetry. But we don't have one for channels. Likewise, we can treat symmetric_rate as a solution for those SoCs or CODECs which can not handle asymmetrical LRCLK. But it's also impossible for them to handle asymmetrical BCLK. And accodring to BCLK = LRCLK * channel number * slot size(fixed or sample bits), sample bits might also be a problem if they are not using a fixed slot size. Thus, this patch applys symmetry for channels and sample bits. Meanwhile, there might be a race between two substreams if starting simultaneously. Previously, we only added warning to compalin but still using conservative way to let it carry on. However, this patch rejects the second stream with any unmatched parameter to make sure the first existing stream won't be broken. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 3635bf09a89cf92b80ac44198c5c8f0989624ea6)
* ENGR00295218-3 gpu:Remove a potential deadlock in gpu vg kernel.Loren Huang2014-04-16
| | | | | | | | | | | -If _FlushMMU() return error, commitMutex and powerSemaphore will be locked forever. -Correct file attribute for gc_hal_base.h Date: Jan 15, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00295218-2 gpu: Allow allocate vg memory from small block reserved memoryLoren Huang2014-04-16
| | | | | | | | | | | | | -Most vg memory must requires reserved memory, when reserved memory is used up by 3d appliction. vg hardware can't be constructed successfully, which cause whole context creation failure(including 3d context). -Allow allocating vg memory from small block reserved memory can help such multi context cases. Date: Jan 15, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* usb: chipidea: Reallocate regmap only if lpm is detectedChris Ruehl2014-04-16
| | | | | | | | | The regmap only needs to reallocate if the hw_read on the CAP register shows lpm is used. Therefore the if() statement check the change. Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* usb: chipidea: imx: avoid unnecessary probe defer every timePeter Chen2014-04-16
| | | | | | | | The ci_hdrc_imx's probe needs usbmisc_imx to be loadded beforehand, so it is better we load usbmisc_imx first. Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* usb: chipidea: host: Only disable the vbus regulator if it is not NULLFabio Estevam2014-04-16
| | | | | | | | | | | | | | | | Commit 40ed51a4b (usb: chipidea: host: add vbus regulator control) introduced a smatch complaint because regulator_disable() is called without checking whether ci->platdata->reg_vbus is not NULL. Fix this by adding the check. This patch is needed for 3.12 stable Cc: stable <stable@vger.kernel.org> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* USB: chipidea: add guard macro to ci_hdrc_imx.hRahul Bedarkar2014-04-16
| | | | | | | Add guard macro to driver/usb/chipidea/ci_hdrc_imx.h Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* usb: chipidea: udc: using MultO at TD as real mult value for ISO-TXPeter Chen2014-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have met a bug that the high bandwidth ISO-TX transfer has failed at the last packet if it is less than 1024, the TD status shows it is "Transaction Error". The root cause of this problem is: the mult value at qh is not correct for current TD's transfer length. We use TD list to queue un-transfer TDs, and change mult for new adding TDs. If new adding TDs transfer length less than 1024, but the queued un-transfer TDs transfer length is larger than 1024, the transfer error will occur, and vice versa. Usually, this problem occurs at the last packet, and the first packet for new frame. We fixed this problem by setting Mult at QH as the largest value (3), and set MultO (Multiplier Override) at TD according to every transfer length. It can cover both hardware version less than 2.3 (the real mult is MultO if it is not 0) and 2.3+ (the real mult is min(qh.mult, td.multo)). Since the MultO bits are only existed at TX TD, we keep the ISO-RX behavior unchanged. For stable tree: 3.11+. Cc: stable <stable@vger.kernel.org> Cc: Michael Grzeschik <m.grzeschik@pengutronix.de> Reported-by: Matthieu Vanin <b47495@freescale.com> Tested-by: Matthieu Vanin <b47495@freescale.com> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* usb: chipidea: put hw_phymode_configure before ci_usb_phy_initChris Ruehl2014-04-16
| | | | | | | | | | | hw_phymode_configure configures the PORTSC registers and allow the following phy_inits to operate on the right parameters. This fix a problem where the UPLI (ISP1504) could not be detected, because the Viewport was not available and read the viewport return 0's only. Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flagChris Ruehl2014-04-16
| | | | | | | | | | | | | | * init the sts flag to 0 (missed) * fix write the real bit not sts value * Set PORTCS_STS and DEVLC_STS only if sts = 1 [Peter Chen: This one and the next patch fix the problem occurred imx27 and imx31, and imx27 and imx31 usb support are enabled until 3.14, so these two patches isn't needed for -stable] Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ENGR00295184-7 mmc: sdhci: do not enable card cd wakeup for gpio caseDong Aisheng2014-04-16
| | | | | | | Do not need to enable the controller card cd interrupt wakeup if using GPIO as card detect since it's meaningless. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00295184-6 dts: imx6: enable sdio wakeup for corresponding boardsDong Aisheng2014-04-16
| | | | | | | | Enable the sdio wakeup capability for SDIO cards. Note: we do not enable it for sabresd usdhc4 since it has a solid eMMC card on it. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00295184-5 mmc: sdhci-esdhc-imx: add wakeup feature for sdio irqDong Aisheng2014-04-16
| | | | | | | Enable wakeup for SDIO IRQ when the host is able to keep power during suspend. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00295184-4 dts: imx6: enable keep power capability for corresponding boardsDong Aisheng2014-04-16
| | | | | | | All i.MX6 SabreAuto/SabreSD/EVK has the ability to keep card power during suspend. So add this capability for them. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00295184-3 mmc: sdhci-esdhc-imx: add keep power feature during suspendDong Aisheng2014-04-16
| | | | | | | IMX boards can keep power for cards during suspend. User can enable it from device tree. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00295184-2 dts: imx6qdl-sabreauto: use external vmmc for sd3 optionallyDong Aisheng2014-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | SD3.0 cards require power cycle the card during suspend/resume, or the card re-enumeration after resume will fail to be identified as UHS card since the card is already working on 1.8v mode and refuse to ack the S18R request, thus, it will then work on normal high speed mode instead. We have to use external vmmc regulator to power cycle the card during suspend/resume to reset card signal voltage to 3.3v frist for the later 1.8v voltage switch. However, due to the sabreauto board limitation, we can not use external regulator to powere off card by default since the card power is shared with card detect pullup. Disabling the vmmc regulator will also shutdown the cd pullup which causes incorrect illusion of card exist. (e.g. plug out the card, mmc core wll think the card is exist since cd pin is low but it never can find the card) HW rework removing R695 and enable PAD internal pullup is needed to fix this isssue. User can manually open the mask of vmmc in dts to enable using external regulator if your board has done the rework as said above. Or by default we still do not power off card during suspend. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00295184-1 mmc: sdhci: do not enable card detect interrupt for gpio cd typeDong Aisheng2014-04-16
| | | | | | | | | | | Except SDHCI_QUIRK_BROKEN_CARD_DETECTION and MMC_CAP_NONREMOVABLE, we also do not need to handle controller native card detect interrupt for gpio as card detect case. If we wrong enabled the card detect interrupt for gpio case, it will cause a lot of unexpected card detect interrupts during data transfer which should not happen. Signed-off-by: Dong Aisheng <b29396@freescale.com>
* ENGR00293505 ARM: dtsi: imx6qdl-sabresd: Change disp id for mipi dsiLiu Ying2014-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, by default, we assign ipu display ports for the following 5 types of display devices on the imx6q sabresd platform in this way: ---------------------------------------- | | ipu | di | |----------------------------------------| | ldb channel0 | 1(0 for imx6dl) | 0 | |----------------------------------------| | ldb channel1 | 1(0 for imx6dl) | 1 | |----------------------------------------| | hdmi | 0 | 0 | |----------------------------------------| | mipi dsi | 0 | 0 | |----------------------------------------| | parallel output | 0 | 0 | ---------------------------------------- So, the ipu0 di1 display port is not used by any display device. This patch assigns this unused display port to mipi dsi by default. Acked-by: Robby Cai <R63905@freescale.com> Cc: Oliver Brown <oliver.brown@freescale.com> Cc: Sandor Yu <R01008@freescale.com> Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
* ENGR00294354 gpu:Using vitural memory cause AXI bus errorLoren Huang2014-04-16
| | | | | | | | | | | | | There are two possible reasons to cause AXI bus error 1.Allocate Tile status buffer from virtual memory. It seems gc2000 and gc880 doesn't support tile status buffer from virtual memory. 2.Stream buffer using very beginning gpu mmu address. In this condition, a faked non gpu mmu address maybe generated and fill into gpu which cause AXI bus error. [DATE]09-01-2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00292154-3 gpu:Adjust logic for non_paged memory cacheLoren Huang2014-04-16
| | | | | | | | | | non_page memory cache will only be freed when application exit. It will have waste when contiguous memory used up. Add logic to free it when contiguous memory is used up. [DATE]16-12-2013 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00292154-2 gpu:Fix random kernel panic for vg application.Loren Huang2014-04-16
| | | | | | | | | The root cause is kernelVirtual is not initialized which may cause incorrect kernel virtual address for vg. [DATE]16-12-2013 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00292154-1 gpu:Fix kernel panic when ctrl+c an applicationLoren Huang2014-04-16
| | | | | | | | | | | When application is using virtual memory, ctrl+c it will have kernel panic caused by null pointer. The reason is hardware struture already is freed when driver wants to use it. [DATE]16-12-2013 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00286762 gpu: enable swap rectange and fix a bugLoren Huang2014-04-16
| | | | | | | | | add eglSetSwapRectangleANDROID back and enable swap rectange, fix a swap rectange bug which will swap whole screen instead of the indicate swap region if region's left and top is (0,0). Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Shawn Guo
* ENGR00289999 gpu: fixed gc880 invalid command state messageXianzhong2014-04-16
| | | | | | | | | | | | | | gpu kernel dump the error message when enable DEBUG mode: gckCONTEXT_Update(1493): State 0x0518 is not mapped. gckCONTEXT_Update(1493): State 0x0520 is not mapped. gckCONTEXT_Update(1493): State 0x0518 is not mapped. gckCONTEXT_Update(1493): State 0x0520 is not mapped. align gpu kernel driver to fix the error message Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00284988 gpu:Sync gpu kernel driver codeLoren Huang2014-04-16
| | | | | | | | | | | | | Sync the code with commit 255ee1de in gpu-viv git. Mainly covered tickets: ENGR00288588 fixed system reboot when run webGL test ENGR00284988 Camera recording kernel crash on WFD source ENGR00283494 Modify Status to status to avoid build error ENGR00278179-1 query video memory with seperate types Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00294115 PXP: correct the pxp_dispatch thread exit logicFancy Fang2014-04-16
| | | | | | | We should add thread stop checking before handle pxp task, since the wait condition includes this check. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00294114 PXP: correct the PS U/V buffer settings when format is YVU420PFancy Fang2014-04-16
| | | | | | | | The PXP itself doesn't support YVU420P default. But we can get the U and V address according to the format when we try to set PS_UBUF and PS_VBUF registers. So the YVU420P can be supported indirectly. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00294026-2 ARM: dts: imx: add viim device node in dtsRobin Gong2014-04-16
| | | | | | Enable viim device node in dts and enable in defconfig Signed-off-by: Robin Gong <b38343@freescale.com>
* ENGR00294026-1 char: viim: modify for device treeRobin Gong2014-04-16
| | | | | | Change iim driver code for device tree framework. Signed-off-by: Robin Gong <b38343@freescale.com>
* ENGR00155179-2: Change imx_viim to mxs_viim.Terry Lv2014-04-16
| | | | | | | This is the change for driver files. Signed-off-by: Terry Lv <r65388@freescale.com> (cherry picked from commit 2febec063fbeb749f993db24e2ae44ddcd5ac0e8)
* ENGR00154889-2: Add virtual iim driverTerry Lv2014-04-16
| | | | | | | | | Add virtual iim driver. This driver will be used by MM team. Signed-off-by: Terry Lv <r65388@freescale.com> (cherry picked from commit 6637e480585112bb310fcbd7ccd1cbf1d67cf9ff) Signed-off-by: Robin Gong <b38343@freescale.com>
* ENGR00292062 usb: chipidea: need to mask INT_STATUS when write otgscPeter Chen2014-04-16
| | | | | | | | | | For otgsc, both enable bits and status bits are in it. So we need to make sure the status bits are not be cleared when write enable bits. It can fix one bug that we plug in/out Micro AB cable fast, and sometimes, the IDIS will be cleared wrongly when handle last ID interrupt (ID 0->1), so the current interrupt will not occur. Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00292408-2 usb: chipidea: imx: enable different wakeup settingPeter Chen2014-04-16
| | | | | | | | | | | | We have different wakeup setting for different roles: For peripheral-only mode, we may only enable vbus wakeup. The Micro-AB cable should not be considered as wakeup source. For host-only mode, the ID change or vbus change should not be considered as wakeup source. For OTG mode, all wakeup setting should be considered as wakeup source. Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00292408-1 usb: chipidea: add query_available_role interfacePeter Chen2014-04-16
| | | | | | | The glue layer may need to know current available role, add ci_hdrc_query_available_role for that. Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-7 ARM: imx_v7_defconfig: Add USB PHY NOP driverPeter Chen2014-04-16
| | | | | | It is needed for USB HSIC controller Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-6 usb: phy-nop: add the implementation of .set_suspendPeter Chen2014-04-16
| | | | | | | | Add clock enable/disable at .set_suspend if the PHY has suspend requirement, it can be benefit of power saving for phy and the whole system (parent clock may also be disabled). Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-5 usb: phy-nop: defer clock prepare until PHY initPeter Chen2014-04-16
| | | | | | | | | | | It can avoid the problem that the prepare count is non-zero even nop PHY is un-used. In fact, the same operation is already at the lastest mainline code: https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit/drivers /usb/phy/phy-generic.c?h=usb-next&id=4d175f340c9c055482688d2205038413dc7b6f1e Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-4 usb: chipidea: imx: add HSIC supportPeter Chen2014-04-16
| | | | | | Add imx6 HSIC support Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-3 ARM: imx6q-arm2-hsic: add usb hsic dtsPeter Chen2014-04-16
| | | | | | | | | Since hsic has pin conflict with ethernet, we disable ethernet at this dts. Besides, please make sure the line of data and strobe has unchanged between board boots up and hsic controller has benn enabled. Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-2 ARM: imx6: add more dts entries for hsic controllerPeter Chen2014-04-16
| | | | | | | | | - Add usbphy_nop, hsic uses nop phy driver - Add anatop phandle, hsic needs to access anatop register to change osc clock for different boards - Add phy_type, hsic needs to config PHY parameters at portsc Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00291282-1 usb: doc: ci13xxx-imx: update for hsic controllerPeter Chen2014-04-16
| | | | | | Update for hsic controller Signed-off-by: Peter Chen <peter.chen@freescale.com>
* ENGR00293898 PXP: set the pxp_dispatch kernel thread to be freezable to ↵Fancy Fang2014-04-16
| | | | | | | | | | | | | avoid hang By default, the kernel thread cannot be freezed during pm suspend. So during pm suspend, the pxp_dipatch thread is still handling pxp task and setting pxp registers. And in some time, this pxp register setting may happen after the pxp_suspend done. So the hang issue happens. This patch set the thread to be freezable to freeze it before pxp_suspend called to avoid this hang issue. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00293323 PXP: add WC and cacheable dma buffer support for PXP deviceFancy Fang2014-04-16
| | | | | | | | | This change add support for new dma buffer type(writecombine and cacheable) which allows user application has more choices for the buffer type. And if the dma buffer is cacheable, then add flush interfaces to make it cache coherent when necessary. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00293292 PXP: enhance channel and buffer reclaim for PXP deviceFancy Fang2014-04-16
| | | | | | | | Enhance channel and buffer reclaim to make sure that all the allocated resources which are not freed yet to be freed when the device file descriptor release() function called. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00293234 PXP: let irq_pending variable to be atomicFancy Fang2014-04-16
| | | | | | | Change irq_pending field in struct pxp_irq_info to a atomic type. So the spin lock in pxp_irq_info is unnecessary. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00293211 PXP: bind allocated DMA channels to opened device file descriptorFancy Fang2014-04-16
| | | | | | | | | | | The allocated DMA channels via some opened file descriptor is better to be bound to this descriptor. Since this can avoid some application to fake a channel id which may be requested by other applications to request PXP service. And also, this make it easier to release the dma channel when application exists abnormally or forgets to release it explicitly. Signed-off-by: Fancy Fang <B47543@freescale.com>
* ENGR00293132-2 pxp/v4l2: restore smem_start for framebuffer even exit abnormallyRobby Cai2014-04-16
| | | | | | | | | | Previously, the framebuffer for UI display may only be restored after STREAMOFF ioctl is called. But sometimes the application may exit abnormally (without call STREAMOFF) for some reason. Now restore previously-saved smem_start in release function to make sure it's set correctly, to avoid some video frame remain. Signed-off-by: Robby Cai <R63905@freescale.com>
* ENGR00293132-1 pxp/v4l2: change memory alloc policy for PxP output bufferRobby Cai2014-04-16
| | | | | | | | | | In previous implementation, the memory allocation/free for PxP output buffer is done each time v4l2 output device is opened/closed. This is not necessary and may cause memory fragmentation issue after running many many times. Now we re-allocate the memory for it only if the existing memory size is not sufficent for new case. Signed-off-by: Robby Cai <R63905@freescale.com>
* mtd: nand: refactor print messagesEzequiel Garcia2014-04-16
| | | | | | | | | | | | | Add a nice "nand:" prefix to all pr_xxx() messages. This allows to get rid of the "NAND" words in messages, given the context is already given by the prefix. Remove the __func__ report from messages where it's not needed and refactor the device detection messages to show itself in several lines. Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Huang Shijie <b32955@freescale.com>
* ENGR00293170 PXP: remove cpu_addr field from struct pxp_mem_descFancy Fang2014-04-16
| | | | | | | | | | The cpu_addr field in struct pxp_mem_desc cannot be used by user application, so it is not necessary to pass this field data to user. Now the similar field 'virtual' in struct pxp_buf_obj is used to store the kernel space virtual addr for allocated dma buffer. Signed-off-by: Fancy Fang <B47543@freescale.com>