aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-05-09OMAPDSS: HDMI: Fix ti_hdmi_4xxx_core_dumpArchit Taneja1-70/+72
The function ti_hdmi_4xxx_core_dump has some bugs, the following mention the bugs and the solutions: - The macros DUMPCORE and DUMPCOREAV in ti_hdmi_4xxx_core_dump() use hdmi_pll_base() for the offsets needed to calculate register addresses, use functions hdmi_core_sys_base() amd hdmi_av_base() to calculate the correct offsets for CORE_SYS and CORE_AV registers. - Many of the CORE_AV registers use the DUMPCORE macro, and hence the register addresses are calculated incorrectly. Rename the current DUMPCOREAV macro as DUMPCOREAV2 as it takes 2 arguments to dump indexed CORE_AV registers, create a new macro called DUMPCOREAV which is now used for dumping non-indexed CORE_AV registers. Thanks to Ancy Tom <[email protected]> for pointing out the issues. Signed-off-by: Archit Taneja <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-05-09OMAPDSS: DSI: implement generic DSI pin configTomi Valkeinen5-89/+103
In preparation for device tree, this patch changes how the DSI pins are configured. The current configuration method is only doable with board files and the configuration data is OMAP specific. This patch moves the configuration data to the panel's platform data, and the data can easily be given via DT in the future. The configuration data format is also changed to a generic one which should be suitable for all platforms. The new format is an array of pin numbers, where the array items start from clock + and -, then data1 + and -, and so on. For example: { 0, // pin num for clock lane + 1, // pin num for clock lane - 2, // pin num for data1 lane + 3, // pin num for data1 lane - ... } The pin numbers are translated by the DSI driver and used to configure the hardware appropriately. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Tony Lindgren <[email protected]>
2012-05-09OMAPDSS: Taal: move reset gpio handling to taal driverTomi Valkeinen2-16/+15
The reset GPIO for Taal panel driver is currently requested in the 4430sdp board file. This patch moves the gpio request/free into the Taal driver, where it should be. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Tony Lindgren <[email protected]>
2012-05-09OMAPDSS: TFP410: rename dvi files to tfp410Tomi Valkeinen13-12/+12
Now that the tfp410 driver has been renamed in the code, this patch finishes the renaming by renaming the files. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Tony Lindgren <[email protected]>
2012-05-09OMAPDSS: TFP410: rename dvi -> tfp410Tomi Valkeinen14-78/+78
The driver for the TFP410 DPI-to-DVI chip was named quite badly as "DVI panel driver". This patch renames the code to use tfp410 name for the driver. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Tony Lindgren <[email protected]>
2012-05-09OMAP: board-files: remove custom PD GPIO handling for DVI outputTomi Valkeinen12-257/+14
Now that the panel-dvi driver handles the PD (power-down) GPIO, we can remove the custom PD handling from the board files. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Tony Lindgren <[email protected]>
2012-05-09OMAPDSS: panel-dvi: add PD gpio handlingTomi Valkeinen2-0/+33
The driver for the TFP410 chip should handle the power-down signal of the chip, instead of the current way of handling it in the board files. This patch adds power_down_gpio into the device's platform data, and adds the necessary code in the driver to request and handle the GPIO. Signed-off-by: Tomi Valkeinen <[email protected]>
2012-05-03OMAPDSS: DISPC: Correct DISPC functional clock usageChandrabhanu Mahapatra2-27/+41
DISPC_FCLK is incorrectly used as functional clock of DISPC in scaling calculations. So, DISPC_CORE_CLK replaces as functional clock of DISPC. DISPC_CORE_CLK is derived from DISPC_FCLK divided by an independent DISPC divisor LCD. Signed-off-by: Chandrabhanu Mahapatra <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-05-03OMAPDSS: DISPC: Handle synclost errors in OMAP3Chandrabhanu Mahapatra1-3/+69
In OMAP3 DISPC video overlays suffer from some undocumented horizontal position and timing related limitations leading to SYNCLOST errors. Whenever the image window is moved towards the right of the screen SYNCLOST errors become frequent. Checks have been implemented to see that DISPC driver rejects configuration exceeding above limitations. This code was successfully tested on OMAP3. This code is written based on code written by Ville Syrjälä <[email protected]> in Linux OMAP kernel. Ville Syrjälä <[email protected]> had added checks for video overlay horizontal timing and DISPC horizontal blanking length limitations. Signed-off-by: Chandrabhanu Mahapatra <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-05-03OMAPDSS: DISPC: Enable predecimationChandrabhanu Mahapatra1-81/+185
In OMAP3 and OMAP4, the DISPC Scaler can downscale an image up to 4 times, and up to 2 times in OMAP2. However, with predecimation, the image can be reduced to 16 times by fetching only the necessary pixels in memory. Then this predecimated image can be downscaled further by the DISPC scaler. The pipeline is configured to use a burst of size 8 * 128 bits which consists of 8 mini bursts of 16 bytes each. So, horizontal predecimation more than 16 can lead to complete discarding of such mini bursts. L3 interconnect may handover the bus to some other initiator and inturn delay the fetching of pixels leading to underflows. So, maximum predecimation limit is fixed at 16. Based on the downscaling required, a prior calculation of predecimation values for width and height of an image is done. Since, Predecimation reduces quality of an image higher priorty is given to DISPC Scaler for downscaling. This code was successfully tested on OMAP2, OMAP3 and OMAP4. Horizontal and vertical predecimation worked fine except for some synclost errors due to undocumented errata in OMAP3 which are fixed later and skewed images were seen on OMAP2 and OMAP3 during horizontal predecimation which will be addressed in the future patches. This code is based on code written by Lajos Molnar <[email protected]> who had added predecimation support for NV12/YUV/rotated/SDMA buffers. Signed-off-by: Chandrabhanu Mahapatra <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23ARM: OMAP2+ Add Primview displays to panel-genericJan Weitzel1-0/+63
Add displays to panel-generic-dpi.c Prime View PD050VL1 (640 x 480) Prime View PD104SLF (800 x 600) Prime View PM070WL4 (800 x 480) Signed-off-by: Jan Weitzel <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: DISPC: Clean up manager timing/size functionsArchit Taneja5-23/+37
Clean up the DISPC manager timings related function by: - Create a common function to set size for LCD and TV. - Create a common function to check timings for LCD and TV. - Add dss params to get the range of manager size. Signed-off-by: Archit Taneja <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: DISPC: Use a common function to set manager timingsArchit Taneja8-31/+37
Currently, a LCD manager's timings is set by dispc_mgr_set_lcd_timings() and TV manager's timings is set by dispc_set_digit_size(). Use a common function called dispc_mgr_set_timings() which sets timings for both type of managers. We finally want the interface drivers to use an overlay manager function to configure it's timings, having a common DISPC function would make things cleaner. For LCD managers, dispc_mgr_set_timings() sets LCD size and blanking values, for TV manager, it sets only the TV size since blanking values don't exist for TV. Signed-off-by: Archit Taneja <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: DISPC/RFBI: Use dispc_mgr_set_lcd_timings() for setting lcd sizeArchit Taneja3-4/+24
The RFBI driver uses dispc_mgr_set_lcd_size() to set the width and height of the LCD manager. Replace this to use dispc_mgr_set_lcd_timings(), pass dummy blanking parameters like done in the DSI driver. This prevents the need to export dispc_mgr_set_lcd_size(), and use a common function to set lcd timings. Signed-off-by: Archit Taneja <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPFB: remove unused FB_OMAP_BOOTLOADER_INIT config optionPeter Meerwald1-8/+0
code depending on FB_OMAP_BOOTLOADER_INIT has been removed long before (e.g. Tomi Valkeinen, 03 Mar 2011: OMAP: DSS2: Remove FB_OMAP_BOOTLOADER_INIT support), but the option still exists Kconfig and has no use Signed-off-by: Peter Meerwald <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: Add EDT ET0500G0DH6 display supportThomas Weber1-0/+18
The EDT ET0500G0DH6 is a 5 inch display. It is tested on an OMAP3 board. Signed-off-by: Thomas Weber <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: Add Mitsubishi AA084SB01 display supportThomas Weber1-0/+19
This patch adds support for the Mitsubishi display AA084SB01. This is a 7 inch LVDS display. It is tested with an OMAP3 board. Signed-off-by: Thomas Weber <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: TPO-TD03MTEA1: add set/check timing functionsGrazvydas Ignotas1-0/+15
On pandora we use .set_timings to alter refresh rate, so add .check_timings/.set_timings functions. Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: provide default get_timings function for panelsGrazvydas Ignotas8-37/+11
With this we can eliminate some duplicate code in panel drivers. Also lgphilips-lb035q02, nec-nl8048hl11-01b, picodlp and tpo-td043mtea1 gain support of reading timings over sysfs. Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: OMAPFB: check for matching memory size earlyGrazvydas Ignotas1-6/+7
If the size of memory region that is being set up is the same as before, we don't have to do memory and layer busy checks. Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: TPO-TD03MTEA1: Correct comment for power on delayMark Brown1-1/+1
Since any power on stabilisation delay for the supply itself should be taken care of transparently by the regulator API when the regulator is enabled the additional delay that the TPO-TD03MTEA1 driver adds after that returned should be due to the requirements of the device itself rather than the supply (the delay is also suspicously long for one for a regulator to ramp). Correct the comment to avoid misleading people taking this code as a reference. Signed-off-by: Mark Brown <[email protected]> Acked-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: TPO-TD03MTEA1: Check for errors from regulator_enable()Mark Brown1-1/+4
It is possible for regulator_enable() to fail and if it does fail that's generally a bad sign for anything we try to do with the hardware afterwards so check for and immediately return an error if regulator_enable() fails. Signed-off-by: Mark Brown <[email protected]> Acked-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: VENC: Check for errors from regulator_enable()Mark Brown1-1/+3
It is possible for regulator_enable() to fail and if it does fail that's generally a bad sign for anything we try to do with the hardware afterwards so check for and immediately return an error if regulator_enable() fails. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAP: DSS2: Remove suspicous and unused TAAL regulator API usageMark Brown1-80/+0
The TAAL driver contains some regulator support which is currently unused (the code is there but the one panel supported by the driver doesn't have any regulators provided). This code mostly looks like an open coded version of the regulator core bulk API. The only additional feature is that a voltage range can be set once when the device is opened, though this is never varied at runtime. The general expectation is that if the device is not actively managing the voltage of the device (eg, doing DVFS) then any configuration will be done using the constraints rather than by drivers, saving them code and ensuring that they work well with systems where the voltage is not configurable. If systems are added needing regulator support this can be added back in, though it should be based on core features rather than open coding things. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: DSI: remove option to use pck for DSI PLL clkinTomi Valkeinen2-48/+12
For some OMAP versions the TRM says that the pixel clock from DISPC can be used as an input clock for DSI PLL, instead of the default, which is sysclk. For some OMAP versions the bits affecting this are marked as reserved. This feature has never been tested, so it's unknown if the HW even works, and has never been used. To clean things up, this patch removes the functionality. This should not affect any board. Signed-off-by: Tomi Valkeinen <[email protected]>
2012-04-23OMAPDSS: Ensure OPP100 when DSS is operationalTomi Valkeinen3-0/+24
Most of the DSS clocks have restrictions on their frequency based on the OPP in use. For example, maximum frequency for a clock may be 180MHz in OPP100, but 90MHz in OPP50. This means that when a high enough pixel clock or function clock is required, we need to use OPP100. However, there's currently no way in the PM framework to make that kind of request. The closest we get is to ask for very high bus throughput from the PM framework, which should effectively force OPP100. This patch is a simple version for handling the problem. Instead of asking for OPP100 only when needed, this patch asks for OPP100 whenever DSS is active. This obviously is not an optimal solution for cases with small displays where OPP50 would work just fine. However, a proper solution is a complex one, and this patch is a short term solution for the problem. Signed-off-by: Tomi Valkeinen <[email protected]> Cc: Paul Walmsley <[email protected]> Acked-by: Kevin Hilman <[email protected]>
2012-04-23OMAPDSS: add set_min_bus_tput pointer to omapdss's platform dataTomi Valkeinen2-0/+7
omapdss driver needs to use the omap_pm_set_min_bus_tput(), so add a new entry for that in omapdss's platform data, and set it. Signed-off-by: Tomi Valkeinen <[email protected]> Cc: Paul Walmsley <[email protected]> Acked-by: Kevin Hilman <[email protected]>
2012-04-21Linux 3.4-rc4Linus Torvalds1-1/+1
2012-04-21sparc32,leon: add notify_cpu_starting()Yong Zhang1-0/+3
Otherwise cpu_active_mask will not set, which lead to other issue. Signed-off-by: Yong Zhang <[email protected]> Signed-off-by: Konrad Eisele <[email protected]> Reviewed-by: Srivatsa S. Bhat <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-04-21Merge tag 'fixes-for-linus' of ↵Linus Torvalds28-161/+80
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull "ARM: SoC fixes" from Olof Johansson: * at91, ux500, imx, omap and bcmring: - at91 fixes for =m driver build issues, irqdomain fixes and config dependency fixes - ux500 kconfig dependency fixes and a smp wakeup bugfix - imx idle bugfix and build fix due to irq domain changes - omap uart pinmux fixes, softreset regression revert and misc fixes - bcmring build error regression fix * ux500 and imx had some small defconfig updates in this branch * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (27 commits) ARM: bcmring: fix UART declarations ARM: imx: Fix imx5 idle logic bug ARM: imx27-dt: Fix build due to removal of irq_domain_add_simple() ARM: imx_v4_v5_defconfig: Add support for CONFIG_REGULATOR_FIXED_VOLTAGE ARM: OMAP1: DMTIMER: fix broken timer clock source selection ARM: OMAP: serial: Fix the ocp smart idlemode handling bug ARM: OMAP2+: UART: Fix incorrect population of default uart pads ARM: OMAP: sram: fix BUG in dpll code for !PM case dmaengine: Kconfig: fix Atmel at_hdmac entry USB: gadget/at91_udc: add gpio_to_irq() function to vbus interrupt USB: ohci-at91: change annotations for probe/remove functions leds-atmel-pwm.c: Make pwmled_probe() __devinit ARM: at91: fix at91sam9261ek Ethernet dm9000 irq ARM: at91: fix rm9200ek flash size ARM: at91: remove empty at91_init_serial function ARM: at91: fix typo in at91_pmc_base assembly declaration ARM: at91: Export at91_matrix_base ARM: at91: Export at91_pmc_base ARM: at91: Export at91_ramc_base ARM: at91: Export at91_st_base ...
2012-04-21Merge tag 'mmc-fixes-for-3.4-rc4' of ↵Linus Torvalds10-81/+86
git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc Pull MMC fixes from Chris Ball: - Build fix for omap_hsmmc with OF against 3.4-rc1. - Fix CONFIG_MMC_UNSAFE_RESUME semantics regression against 3.3, which broke hotplug card detection when UNSAFE_RESUME is set. - Fix a race condition in omap_hsmmc with runtime PM. - Fix two libertas SDIO-powered-resume regressions. - Small fixes for discard/sanitize, dw_mmc, cd-gpio and esdhc-imx. * tag 'mmc-fixes-for-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: mmc: core: Do not pre-claim host in suspend mmc: dw_mmc: prevent NULL dereference for dma_ops mmc: unbreak sdhci-esdhc-imx on i.MX25 mmc: cd-gpio: Include header to pickup exported symbol prototypes mmc: sdhci: refine non-removable card checking for card detection mmc: dw_mmc: Fix switch from DMA to PIO mmc: remove MMC bus legacy suspend/resume method mmc: omap_hsmmc: Get rid of of_have_populated_dt() usage mmc: omap_hsmmc: build fix for CONFIG_OF=y and CONFIG_MMC_OMAP_HS=m mmc: fixes for eMMC v4.5 sanitize operation mmc: fixes for eMMC v4.5 discard operation
2012-04-21Merge branch 'v4l_for_linus' of ↵Linus Torvalds9-12/+71
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - Fixes a regression at DVB core when switching from DVB-S2 to DVB-S on Kaffeine (Fedora 16 Bugzilla #812895); - Fixes a mutex unlock at an error condition at drx-k; - Fix winbond-cir set mode; - mt9m032: Fix a compilation breakage with some random Kconfig; - mt9m032: fix two dead locks; - xc5000: don't require an special firmware (that won't be provided by the vendor) just because the xtal frequency is different; - V4L DocBook: fix some typos at multi-plane formats description. * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] xc5000: support 32MHz & 31.875MHz xtal using the 41.024.5 firmware [media] V4L: mt9m032: fix compilation breakage [media] V4L: DocBook: Fix typos in the multi-plane formats description [media] V4L: mt9m032: fix two dead-locks [media] rc-core: set mode for winbond-cir [media] drxk: Does not unlock mutex if sanity check failed in scu_command() [media] dvb_frontend: Fix a regression when switching back to DVB-S
2012-04-21Merge tag 'mfd-for-linus-3.4' of ↵Linus Torvalds20-238/+276
git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 Pull MFD fixes from Samuel Ortiz: "We have 3 build fixes, a OMAP USB host PHY reset fix and the twl6040 conversion to an i2c driver. The latter may not sound like a fix but the twl6040 MFD driver won't probe without it, triggering an OMAP4 audio regression." * tag 'mfd-for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: mfd: Fix modular builds of rc5t583 regulator support mfd: Fix asic3_gpio_to_irq ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset issue mfd: Convert twl6040 to i2c driver, and separate it from twl core mfd : Fix dbx500 compilation error
2012-04-21kill mm argument of vm_munmap()Al Viro8-11/+12
it's always current->mm Signed-off-by: Al Viro <[email protected]>
2012-04-21perfmon: kill some helpers and argumentsAl Viro1-9/+4
pfm_vm_munmap() is simply vm_munmap() and pfm_remove_smpl_mapping() always get current as the first argument. Signed-off-by: Al Viro <[email protected]>
2012-04-21aio: don't bother with unmapping when aio_free_ring() is coming from exit_aio()Al Viro1-1/+14
... since exit_mmap() is coming and it will munmap() everything anyway. In all other cases aio_free_ring() has ctx->mm == current->mm; moreover, all other callers of vm_munmap() have mm == current->mm, so this will allow us to get rid of mm argument of vm_munmap(). Signed-off-by: Al Viro <[email protected]>
2012-04-20mmc: core: Do not pre-claim host in suspendUlf Hansson1-35/+20
Since SDIO drivers may want to do some SDIO operations in their suspend callback functions, we must not keep the host claimed when calling them. Daniel Drake reported that libertas_sdio encountered a deadlock in its suspend function. Signed-off-by: Ulf Hansson <[email protected]> Tested-by: Daniel Drake <[email protected]> [stable@: please apply to 3.2-stable and 3.3-stable] Cc: stable <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: dw_mmc: prevent NULL dereference for dma_opsJaehoon Chung1-1/+2
Now, dma_ops is assumed that use the IDMAC. But if dma_ops is assigned the pdata->dma_ops, we didn't ensure that callback function is defined. If the callback isn't defined, then we should run in PIO mode. Signed-off-by: Jaehoon Chung <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> Acked-by: Will Newton <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: unbreak sdhci-esdhc-imx on i.MX25Eric Bénard1-2/+1
This was broken by me in 37865fe91582582a6f6c00652f6a2b1ff71f8a78 ("mmc: sdhci-esdhc-imx: fix timeout on i.MX's sdhci") where more extensive tests would have shown that read or write of data to the card were failing (even if the partition table was correctly read). Signed-off-by: Eric Bénard <[email protected]> Acked-by: Wolfram Sang <[email protected]> Cc: stable <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: cd-gpio: Include header to pickup exported symbol prototypesH Hartley Sweeten1-0/+1
Include the linux/mmc/cd-gpio.h header to pickup the prototypes for the two exported symbols. This quiets the sparse warnings: warning: symbol 'mmc_cd_gpio_request' was not declared. Should it be static? warning: symbol 'mmc_cd_gpio_free' was not declared. Should it be static? Signed-off-by: H Hartley Sweeten <[email protected]> Acked-by: Guennadi Liakhovetski <[email protected]> Acked-by: Venkatraman S <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: sdhci: refine non-removable card checking for card detectionDaniel Drake1-1/+1
Commit c79396c191bc19 ("mmc: sdhci: prevent card detection activity for non-removable cards") disables card detection where the cards are marked as non-removable. This makes sense, but the implementation detail of calling mmc_card_is_removable() causes some problems, because mmc_card_is_removable() is overloaded with CONFIG_MMC_UNSAFE_RESUME semantics. In the OLPC XO case, we need CONFIG_MMC_UNSAFE_RESUME because our root filesystem is stored on SD, but we also have external SD card slots where we want automatic card detection. Refine the check to only apply to hosts marked as MMC_CAP_NONREMOVABLE, which is defined to mean that the card is *really* nonremovable. This could be revisited in future if we find a way to improve CONFIG_MMC_UNSAFE_RESUME semantics. Signed-off-by: Daniel Drake <[email protected]> Acked-by: Chuanxiao Dong <[email protected]> [stable@: please apply to 3.3-stable] Cc: stable <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: dw_mmc: Fix switch from DMA to PIOSeungwon Jeon1-1/+3
When dw_mci_pre_dma_transfer returns failure in some reasons, dw_mci_submit_data will prepare to switch the PIO mode from DMA. After switching to PIO mode, DMA(IDMAC in particular) is still enabled. This makes the corruption in handling interrupt and the driver lock-up. Signed-off-by: Seungwon Jeon <[email protected]> Acked-by: Will Newton <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: remove MMC bus legacy suspend/resume methodChuanxiao Dong3-18/+10
MMC bus is using legacy suspend/resume method, which is not compatible if runtime pm callbacks are used. In this scenario, MMC bus suspend/resume callbacks cannot be called when system entering S3. So change to use the new defined dev_pm_ops for system sleeping mode. Tested on AM335x Platform. Solves major issue/crash reported at http://www.mail-archive.com/[email protected]/msg65425.html Signed-off-by: Chuanxiao Dong <[email protected]> Tested-by: Hebbar, Gururaja <[email protected]> Acked-by: Linus Walleij <[email protected]> Acked-by: Ulf Hansson <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20VM: add "vm_mmap()" helper functionLinus Torvalds15-97/+87
This continues the theme started with vm_brk() and vm_munmap(): vm_mmap() does the same thing as do_mmap(), but additionally does the required VM locking. This uninlines (and rewrites it to be clearer) do_mmap(), which sadly duplicates it in mm/mmap.c and mm/nommu.c. But that way we don't have to export our internal do_mmap_pgoff() function. Some day we hopefully don't have to export do_mmap() either, if all modular users can become the simpler vm_mmap() instead. We're actually very close to that already, with the notable exception of the (broken) use in i810, and a couple of stragglers in binfmt_elf. Signed-off-by: Linus Torvalds <[email protected]>
2012-04-20VM: add "vm_munmap()" helper functionLinus Torvalds8-33/+25
Like the vm_brk() function, this is the same as "do_munmap()", except it does the VM locking for the caller. Signed-off-by: Linus Torvalds <[email protected]>
2012-04-20mmc: omap_hsmmc: Get rid of of_have_populated_dt() usageRajendra Nayak1-2/+2
of_have_populated_dt() is not expected to be used in drivers but instead only in early platform init code. Drivers on the other hand should rely on dev->of_node or of_match_device(). Besides usage of of_have_populated_dt() also throws up build error as below which was reported by Balaji TK, when omap_hsmmc is built as a module. ERROR: "allnodes" [drivers/mmc/host/omap_hsmmc.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 So get rid of all of_have_populated_dt() usage in omap_hsmmc driver and instead use dev->of_node to make the same dicisions as earlier. Signed-off-by: Rajendra Nayak <[email protected]> Reported-by: Benoit Cousson <[email protected]> Cc: Sebastian Andrzej Siewior <[email protected]> Acked-by: Rob Herring <[email protected]> Reviewed-by: Balaji T K <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: omap_hsmmc: build fix for CONFIG_OF=y and CONFIG_MMC_OMAP_HS=mChris Ball1-1/+1
Commit 46856a68dc ("mmc: omap_hsmmc: Convert hsmmc driver to use device tree") introduced in 3.4-rc1 has a missing semi-colon, causing: drivers/mmc/host/omap_hsmmc.c:1745: error: expected ',' or ';' before 'extern' Reported-by: Russell King <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: fixes for eMMC v4.5 sanitize operationAdrian Hunter2-16/+40
eMMC v4.5 sanitize operation erases all copies of unmapped data. However trim or erase operations must be used first to unmap the required sectors. That was not being done. Fixes apply to linux 3.2 on. Signed-off-by: Adrian Hunter <[email protected]> Cc: <[email protected]> Acked-by: Jaehoon Chung <[email protected]> Acked-by: Linus Walleij <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20mmc: fixes for eMMC v4.5 discard operationAdrian Hunter2-4/+5
eMMC v4.5 discard operation is significantly different from the existing trim operation because it is not guaranteed to work with the new sanitize operation. Consequently mmc_can_trim() is separated from mmc_can_discard(). Also the new discard operation does not result in the sectors being set to all-zeros, so discard_zeroes_data must not be set. In addition, the new discard has the same timeout as trim, but from v4.5 trim is defined to use the hc timeout. The timeout calculation is adjusted accordingly. Fixes apply to linux 3.2 on. Signed-off-by: Adrian Hunter <[email protected]> Cc: <[email protected]> Acked-by: Jaehoon Chung <[email protected]> Acked-by: Linus Walleij <[email protected]> Signed-off-by: Chris Ball <[email protected]>
2012-04-20VM: add "vm_brk()" helper functionLinus Torvalds6-45/+31
It does the same thing as "do_brk()", except it handles the VM locking too. It turns out that all external callers want that anyway, so we can make do_brk() static to just mm/mmap.c while at it. Signed-off-by: Linus Torvalds <[email protected]>