commit a929dcf70ed74b8ff52b6fca54f6ebb463e829f4 Author: Jason Liu Date: Tue Jan 11 05:44:29 2011 +0800 ARM i.MX50: Rename devices-mx50.h There are devices-imx51.h and devices-imx53.h under arch/arm/mach-mx5 directory. So, had better rename devices-mx50.h to devices-imx50.h to follow the same naming convention with imx51 and imx53 part. Signed-off-by: Jason Liu Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 82c520dccf7fd5afcd95b941f48c25f38c162c77 Author: Richard Zhao Date: Fri Jan 14 17:48:03 2011 +0800 arm: mx50_rdp: add fec support Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit 98b7d550f292ae96f1058f19b83aadd6985a6fa0 Author: Richard Zhao Date: Fri Jan 14 17:48:04 2011 +0800 arm: mx50_rdp: add i2c bus support Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit 00c89c1d1831225bb89b0627e02d0d3f875ec0a4 Author: Marc Reilly Date: Sat Jan 15 11:36:57 2011 +1100 Introduce VPR200 board. Signed-off-by: Marc Reilly Signed-off-by: Sascha Hauer commit 816ad741b6a168e1d0c182d10999c298fc281d17 Author: Dinh Nguyen Date: Sat Jan 15 13:40:12 2011 -0600 ARM: i.MX53: Add full iomux support for mx53 This iomux file contains all the available pins that are iomux capable. Signed-off-by: Dinh Nguyen Signed-off-by: Sascha Hauer commit bb58b3e8b18c542f30f898fff82f7ce58a4bdf7a Author: Fabio Estevam Date: Wed Jan 19 10:27:33 2011 -0200 ARM: mx5: Use dummy clock for the keypad Reuse dummy_clk for the imx-keypad device instead of using a dedicated kpp_clk. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 67f43086a24b77a82724855141a5b7a4d72549bd Author: Shawn Guo Date: Fri Jan 14 23:11:23 2011 +0800 ARM: mxs: add ocotp read function Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit a320b2793dae44953dc58e9f681d8f161eb5b3ab Author: Shawn Guo Date: Fri Jan 14 15:25:52 2011 +0800 ARM: mxs/mx28evk: read fec mac address from ocotp Read fec mac address from ocotp and save it into fec_platform_data mac field for fec driver to use. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 87fa28e972c223f69c1315a1b2ddb2a11d33ad0e Author: David Brown Date: Tue Jan 4 17:02:48 2011 -0800 msm: Add CPU queries Create runtime queries to distinguish the various MSM targets. Although these would probably be better named soc_is..., use cpu_is... to match convention in the rest of the kernel. Hard code the tests based on config options for now. When runtime device detection is implemented, these can be made dynamic. Signed-off-by: David Brown commit 8c27e6f305242ffab0c88eed5dea8394b8ce86d0 Author: David Brown Date: Fri Jan 7 10:20:49 2011 -0800 msm: Generalize timer register mappings Allow the timer register to be determined dynamically instead of at compile time. Use common virtual addresses for the registers across all MSM chips, and select the register mappings based on the detected CPU. Signed-off-by: David Brown commit 8bb06444804c58dffcb5d048381c6378d2b007f7 Author: David Brown Date: Tue Jan 4 11:02:59 2011 -0800 msm: Generalize QGIC registers The QGIC registers are mapped to the same virtual addresses across targets, only the physical address changes. Move the BASE address out of target-specific files, and add a SOC name to the base addresses. Signed-off-by: David Brown commit 5d0afd74b7f5202cad2d26b5bcd1fc1bdf44858f Author: Stepan Moskovchenko Date: Wed Dec 1 19:05:49 2010 -0800 msm: io: I/O register definitions for MSM8960 Add the register address definitions for the basic hardware blocks on the Qualcomm MSM8960 chip. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit a2ad9421ce19f57e99b7a5e8798b8697b916d673 Author: Stepan Moskovchenko Date: Wed Dec 1 20:06:26 2010 -0800 msm: Physical offset for MSM8960 Add the physical memory offset value for the Qualcomm MSM8960 chip. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit a6481cd3d901165100e12f9f1f7787293d757574 Author: Stepan Moskovchenko Date: Wed Dec 1 19:30:35 2010 -0800 msm: irqs-8960: Interrupt map for MSM8960 Add the interrupt map for the Qualcomm MSM8960 chip. This chip has an interrupt map that is different from previous targets. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit b83ce5812a1581655df8d1502398f03408539ba5 Author: David Brown Date: Wed Jan 12 12:55:16 2011 -0800 msm: Add MSM 8960 cpu_is check Signed-off-by: David Brown commit a81c8c38ed06c5f59d62a2257d21ed02d2af38fe Author: Stepan Moskovchenko Date: Wed Dec 1 19:25:14 2010 -0800 msm: timer: Timer support for MSM8960 Modify the macros in the MSM timer driver to support the MSM8960 chip. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit decd4a9d3671cd95a46ca0e004700077d81c370d Author: Stepan Moskovchenko Date: Thu Dec 9 19:16:13 2010 -0800 msm: Makefile cleanup Clean up some of the conditionals in the Makefile in preparation for adding build support for MSM8960. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit f441ca2d403cf74ebffbc07a3ccd402efd995799 Author: Stepan Moskovchenko Date: Wed Dec 1 19:31:16 2010 -0800 msm: Support for the MSM8960 Simulator target Add the board file, Kconfig options, and Makefile options needed to build for the MSM8960 Simulator target. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit 50ede4e39aa5b61685ca87f58422478b1a538ca8 Author: Stepan Moskovchenko Date: Mon Dec 13 18:12:19 2010 -0800 msm: Support for the MSM8960 RUMI3 target Add the machine record, init code, and build support for the MSM8960 RUMI3. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit d41cb8c95681345ded5ef1e78d235d06d68baee2 Author: Stepan Moskovchenko Date: Mon Jan 17 20:33:32 2011 -0800 msm: Add name field to UART resources Add a name field to the I/O resources for the UARTs on MSM targets in preparation for updates to the msm_serial driver. The driver assumed there is one I/O resource per UART, which is not the case on all targets. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit ec8f29e70edceb93c021148a99a5c3889cdc1b08 Author: Stepan Moskovchenko Date: Tue Dec 21 12:38:05 2010 -0800 serial: msm: Add support for UARTDM cores Add support for the next-generation version of the MSM UART to the msm_serial driver. This version of the hardware is similar to the original version, but has some DMA capabilities that are used in PIO mode in this driver. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit 7a89248a47d201e6ade2daddd79b0fd902cad400 Author: Sahitya Tummala Date: Tue Jan 18 11:22:49 2011 +0530 mmc: msm_sdcc: Add gpio handling function to driver Configure SDCC GPIOs when the host is powered up or powered off. Signed-off-by: Sahitya Tummala commit 8b4d95fc76b85696c508f316810a6fbc15a7b8c5 Author: Sahitya Tummala Date: Tue Jan 18 11:22:50 2011 +0530 msm: 8x50: Add initial support for SDCC Signed-off-by: Sahitya Tummala commit 60678b60d78cd268a3aed3044dfbbb85760b2c54 Author: Oliver Neukum Date: Sun Dec 19 21:54:48 2010 +0100 USB: add helper to convert USB error codes This converts error codes specific to USB to generic error codes that can be returned to user space. Tests showed that it is so small that it is better inlined. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 0828376deadb93f2e839900065f536ddc1190e73 Author: Tobias Ollmann Date: Sat Dec 25 11:17:01 2010 +0100 USB: Core: Fix minor coding style issues Fixing all coding style issues in buffer.c Signed-off-by: Tobias Ollmann Signed-off-by: Greg Kroah-Hartman commit 32b801e9fa5e05c179b86802ccb19b3b97d47471 Author: Justin P. Mattock Date: Fri Dec 31 09:40:21 2010 -0800 USB: wusbcore: rh.c Typo change desciptor to descriptor. Change a typo from "desciptor" to "descriptor". Signed-off-by: Justin P. Mattock Signed-off-by: Greg Kroah-Hartman commit ef58d97a30af66b31f6400e49c87b4d64fc1f5bc Author: Ferenc Wagner Date: Mon Jan 10 19:00:35 2011 +0100 USB: ehci-dbgp: fix typo in startup message Signed-off-by: Ferenc Wagner Signed-off-by: Greg Kroah-Hartman commit 9abff15dd69c6f4ed88ecc8ba089f55e9cf6655e Author: Tejun Heo Date: Mon Jan 3 14:49:42 2011 +0100 USB: ueagle-atm: use system_wq instead of dedicated workqueues With cmwq, there's no reason to use separate workqueues. Drop uea_softc->work_q and use system_wq instead. The used work item is sync flushed on driver detach. Signed-off-by: Tejun Heo Cc: Stanislaw Gruszka Signed-off-by: Greg Kroah-Hartman commit f6c259a39fd7bb8db6661690976a0f05d12b707d Author: Daniel Glöckner Date: Tue Jan 11 00:42:14 2011 +0100 USB: ftdi_sio: fix resolution of 2232H baud rate dividers The 2232H high speed baud rates also support fractional baud rate divisors, but when the performing the divisions before the multiplication, the fractional bits are lost. Signed-off-by: Daniel Glöckner Acked-by: Mark Adamson Signed-off-by: Greg Kroah-Hartman commit 50a6cb932d5cccc6a165219f137b87ea596b4cd0 Author: wwang Date: Fri Jan 14 16:53:34 2011 +0800 USB: usb_storage: add ums-realtek driver ums_realtek is used to support the power-saving function for Realtek RTS51xx USB card readers. Signed-off-by: wwang Signed-off-by: Greg Kroah-Hartman commit 084fb206a91f72b22c4e2f41709730a81e3e0de6 Author: Martin Fuzzey Date: Sun Jan 16 19:17:11 2011 +0100 USB: usbtest - Add tests to ensure HCDs can accept byte aligned buffers. Add a set of new tests similar to the existing ones but using transfer buffers at an "odd" address [ie offset of +1 from the buffer obtained by kmalloc() or usb_alloc_coherent()] The new tests are: #17 : bulk out (like #1) using kmalloc and DMA mapping by USB core. #18 : bulk in (like #2) using kmalloc and DMA mapping by USB core. #19 : bulk out (like #1) using usb_alloc_coherent() #20 : bulk in (like #2) using usb_alloc_coherent() #21 : control write (like #14) #22 : isochonous out (like #15) #23 : isochonous in (like #16) Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit c17d936e05a186ce5bce2acf2d58a4172df7f435 Author: David Brownell Date: Sun Jan 16 19:17:16 2011 +0100 USB: usbtest - add shell script to test HCDs This patch just adds the script available at http://www.linux-usb.org/usbtest/test.sh as is. Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit bc0f23dccad16c7834cb09d943981475be81ddb1 Author: Martin Fuzzey Date: Sun Jan 16 19:17:21 2011 +0100 USB: usbtest - add alignment tests to test script Enhance the test script to call the new tests added to usbtest in order to detect host controllers that don't accept byte aligned DMA. The unaligned tests are called after their aligned equivalents but for fewer iterations (since alignment failure is generally immediate). Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit 0fe6f1d1f612035d78d8d195bbc3485a341386d5 Author: Yuan-Hsin Chen Date: Tue Jan 18 14:49:28 2011 +0800 usb: udc: add Faraday fusb300 driver USB2.0 device controller driver for Faraday fubs300 Signed-off-by: Yuan-Hsin Chen Signed-off-by: Greg Kroah-Hartman commit 56f94b1e6eddef55ebc9850ac4e4dfea366401bf Author: Daiane Angolini Date: Thu Dec 9 15:50:49 2010 -0200 ARM: mx5/mx51_3ds: Add watchdog support Signed-off-by: Daiane Angolini Signed-off-by: Sascha Hauer commit f512626f5baf09c1d40d098462a986417f4e9790 Author: Hans Ulli Kroll Date: Sun Dec 26 11:02:29 2010 +0100 ARM: 6604/1: Gemini: add platform support for Gemini RTC adds rtc support for all Gemini SoC boards nas4220b, rut1xx, wbd111, wbd222 Signed-off-by: Hans Ulli Kroll Signed-off-by: Russell King commit ba5499ebfb7bc7859039d782099c75d92c394016 Author: Dima Zavin Date: Mon Jan 10 11:00:30 2011 -0800 ARM: msm: 7x30: don't force a gpiomux table for the whole arch This is completely board specific and therefore must be provided on a per-board basis. Signed-off-by: Dima Zavin Signed-off-by: David Brown commit 9c2c35848cf77cf8831442492a2f7a6d7723fe0a Author: Fabio Estevam Date: Mon Jan 24 16:55:02 2011 -0200 ARM: imx: Add initial support for IMX27IPCAM board Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 47d37d6f94ccf32d302492f969209930b2411f9e Author: Sascha Hauer Date: Tue Jan 11 15:54:54 2011 +0100 serial: Add auart driver for i.MX23/28 Signed-off-by: Sascha Hauer commit cf3567aaad0304410e465a55313c8f0d25ef306d Author: Sascha Hauer Date: Tue Jan 11 15:56:40 2011 +0100 ARM MXS: Add auart platform support for i.MX28 Signed-off-by: Sascha Hauer commit f45b1149911cc4c3ab50e56c8844ad4ec04a4575 Author: Simon Horman Date: Tue Jan 11 04:01:08 2011 +0100 ARM: 6617/1: mmc, Add zboot from MMC support for SuperH Mobile ARM This allows a ROM-able zImage to be written to MMC and for SuperH Mobile ARM to boot directly from the MMCIF hardware block. This is achieved by the MaskROM loading the first portion of the image into MERAM and then jumping to it. This portion contains loader code which copies the entire image to SDRAM and jumps to it. From there the zImage boot code proceeds as normal, uncompressing the image into its final location and then jumping to it. Cc: Magnus Damm Russell, please consider merging this for 2.6.38. This patch depends on: * "mmc, sh: Move MMCIF_PROGRESS_* into sh_mmcif.h" which will be merged though Paul Mundt's rmobile sh-2.6. The absence of this patch will break the build if the (new) CONFIG_ZBOOT_ROM_MMCIF option is set. There are no subtle side-effects. v2: Addressed comments by Magnus Damm * Fix copyright in vrl4.c * Fix use of #define CONFIG_ZBOOT_ROM_MMCIF in mmcif-sh7372.c * Initialise LED GPIO lines in head-ap4evb.txt instead of mmcif-sh7372.c as this is considered board-specific. v3: Addressed comments made in person by Magnus Damm * Move mmcif_loader to be earlier in the image and reduce the number of blocks of boot program loaded by the MaskRom from 40 to 8 accordingly. * Move LED GPIO initialisation into mmcif_progress_init - This leaves the partner jet script unbloated Other * inline mmcif_update_progress so it is a static inline in a header file v4: * Use htole16() and htole32() in v4rl.c to ensure that the output is little endian v5: Addressed comments by Russell King * Simplify assembly code * Jump to code rather than an address <- bug fix * Use (void __iomem *) as appropriate Roll in mackerel support * This was previously a separate patch, only because of the order in which this code was developed Signed-off-by: Simon Horman Signed-off-by: Russell King commit 21f47fbc5b18da4a3db680959aee887612ec9a72 Author: Alexey Charkov Date: Thu Dec 23 13:11:21 2010 +0100 ARM: 6597/1: Add basic architecture support for VIA/WonderMedia 85xx SoC's This adds support for the family of Systems-on-Chip produced initially by VIA and now its subsidiary WonderMedia that have recently become widespread in lower-end Chinese ARM-based tablets and netbooks. Support is included for both VT8500 and WM8505, selectable by a configuration switch at kernel build time. Included are basic machine initialization files, register and interrupt definitions, support for the on-chip interrupt controller, high-precision OS timer, GPIO lines, necessary macros for early debug, pulse-width-modulated outputs control, as well as platform device configurations for the specific drivers implemented elsewhere. Signed-off-by: Alexey Charkov Signed-off-by: Russell King commit 95c34f831f0e06cda6dc0a26b4f693ed105c394d Author: Nick Bowler Date: Fri Jan 21 15:51:06 2011 +0100 ARM: 6633/1: vexpress: register platform PATA device. The compactflash device on this platform is not usable simply because it is never registered with the kernel. Fix that up. Signed-off-by: Nick Bowler Signed-off-by: Russell King commit f221a9be2e511502b43b009fd83e748017ea117d Author: Stephen Warren Date: Wed Jan 19 13:50:03 2011 -0700 ARM: tegra: Add Harmony sound platform data type Signed-off-by: Stephen Warren Acked-by: Colin Cross Acked-by: Liam Girdwood Signed-off-by: Mark Brown commit b60fb519d7977e606621af85585c3677fc290ef8 Author: Russell King Date: Tue Jan 25 15:52:33 2011 +0000 ALSA: AACI: fix multiple IRQ claiming Claiming the IRQ each time a playback or capture interface is opened is wasteful; the second copy of the registered handler is identical to the first and just wastes resources. Track the number of opens and only register the handler when necessary. Signed-off-by: Russell King commit e831d80b453a3586f1e1664a705c153a4ced39b8 Author: Russell King Date: Thu Jan 13 10:13:17 2011 +0000 ALSA: AACI: fix number of channels for record AC'97 codecs only support two channels for recording, so we shouldn't advertize that there are up to six channels available. Limit the selection of 4 and 6 channel audio to playback only. As this adds additional SNDRV_PCM_STREAM_PLAYBACK conditionals, we can combine some resulting in the elimination of __aaci_pcm_open() entirely, and making the code easier to read. Signed-off-by: Russell King commit 48b63b6908a10add9ee383c7db24c37f99e5d324 Author: Tejun Heo Date: Mon Jan 3 13:49:43 2011 +0000 video/msm_fb: use system_wq instead of dedicated workqueues With cmwq, there's no reason to use separate workqueues. Drop msmfb_info->resume_workqueue and use system_wq instead. Signed-off-by: Tejun Heo Cc: Stanislaw Gruszka Cc: linux-usb@vger.kernel.org Signed-off-by: David Brown commit 376e9c5848abef8c72c09bd89f2f7ee128caa104 Author: Shawn Guo Date: Mon Jan 24 17:05:25 2011 +0800 ARM: mxs: add initial pm support This is a very initial pm support and basically does nothing. With this pm support entry, drivers can start testing their own pm functions. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 58e8a4741b519910cdabdd55c23f258e40cf6a3a Author: Russell King Date: Wed Jan 26 16:59:39 2011 +0000 ALSA: AACI: fix channel mask selection When double-rate mode was selected, we weren't setting the additional two channel mask bits to allow double-rate to work. Rearrange the hw_params code to allow the correct channel mask to be selected. Signed-off-by: Russell King commit f006d8fc53c461aa66a9265597494f83ddf4f53d Author: Russell King Date: Wed Jan 12 23:46:03 2011 +0000 ALSA: AACI: clean up AACI announcement printk Make the AACI announcement printk say which primecell part number has been found. Display the revision as an unsigned decimal, and display only the first 8 hex digits of the base address unless it's larger. Signed-off-by: Russell King commit c0dea82c3c141c33ca22ca85f80e592028840864 Author: Russell King Date: Thu Jan 13 00:34:08 2011 +0000 ALSA: AACI: use snd_pcm_lib_period_bytes() Use the helper rather than open-coding this. Signed-off-by: Russell King commit ea51d0b164040ad594c1f9c4c6faf23c19c977b9 Author: Russell King Date: Thu Jan 13 08:47:35 2011 +0000 ALSA: AACI: no need to call snd_pcm_period_elapsed() for each period There is no need to call snd_pcm_period_elapsed() each time a period elapses - we can call it after we're done once loading/unloading the FIFO with data. ALSA works out how many periods have elapsed by reading the current pointers. Signed-off-by: Russell King commit 5d350cba486de34eff99d0394d8fb436af54522e Author: Russell King Date: Thu Jan 13 22:25:10 2011 +0000 ALSA: AACI: make fifo variables more explanitory Improve commenting and change fifo variable names to reflect their meanings. Signed-off-by: Russell King commit 5756e9dd0de6d5c307773f8f734c0684b3098fdd Author: Dave Martin Date: Wed Jan 26 18:34:26 2011 +0100 ARM: 6640/1: Thumb-2: Symbol manipulation macros for function body copying In low-level board support code, there is sometimes a need to copy a function body to another location at run-time. A straightforward call to memcpy doesn't work in Thumb-2, because bit 0 of external Thumb function symbols is set to 1, indicating that the function is Thumb. Without corrective measures, this will cause an off-by-one copy, and the copy may be called using the wrong instruction set. This patch adds an fncpy() macro to help with such copies. Particular care is needed, because C doesn't guarantee any defined behaviour when casting a function pointer to any other type. This has been observed to lead to strange optimisation side-effects when doing the arithmetic which is required in order to copy/move function bodies correctly in Thumb-2. Thanks to Russell King and Nicolas Pitre for their input on this patch. Signed-off-by: Dave Martin Tested-by: Jean Pihet Tested-by: Tony Lindgren Tested-by: Kevin Hilman Signed-off-by: Russell King commit 0fbfd987ffd5e0b0d137a5684d4865bb1efac6a3 Author: Sascha Hauer Date: Fri Jan 14 11:18:02 2011 +0100 ARM i.MX35 pcm043: remove unnecessary CONFIG_I2C ifdefs Signed-off-by: Sascha Hauer commit 070ed7335961825f6c1a137b929c67627c31c907 Author: Sascha Hauer Date: Fri Jan 14 11:19:35 2011 +0100 ARM i.MX35 pcm043: put usbh1 outside CONFIG_USB_ULPI The usbh1 port of the pcm043 does not use ulpi, so put it outside the corresponding ifdefs. Signed-off-by: Sascha Hauer commit afc11e6ef7547243f1429cce8de616049439a172 Author: Sascha Hauer Date: Fri Jan 14 11:21:26 2011 +0100 ARM i.MX31 mx31ads: remove unnecessary CONFIG_I2C ifdefs Signed-off-by: Sascha Hauer commit 889faeaad0333f692f8acd870faeaa01bf1fc21d Author: Sascha Hauer Date: Fri Jan 14 11:21:59 2011 +0100 ARM i.MX31 mx31ads: remove unnecessary CONFIG_SERIAL_IMX ifdefs Signed-off-by: Sascha Hauer commit 9f43e44be8787ddc01652dfc4331b34ae1475426 Author: Sascha Hauer Date: Fri Jan 14 11:22:31 2011 +0100 ARM i.MX31 mx31ads: remove unnecessary CONFIG_SERIAL_8250 ifdefs Signed-off-by: Sascha Hauer commit 5ec561afbc44dc8dfe789deafa5bf47da463938a Author: Sascha Hauer Date: Fri Jan 14 11:23:44 2011 +0100 ARM i.MX27 pca100: remove unnecessary CONFIG_SPI_IMX ifdefs Signed-off-by: Sascha Hauer commit 285faa1b5631968aa27e9816f082448bcd2ba044 Author: Sascha Hauer Date: Fri Jan 14 11:25:40 2011 +0100 ARM i.MX27 eukrea mbimx27: remove unnecessary CONFIG_SPI_IMX ifdefs Signed-off-by: Sascha Hauer commit b49a2a69e561b7bf22f4c081d7c44aa992e51509 Author: Sascha Hauer Date: Fri Jan 14 11:26:25 2011 +0100 ARM i.MX31 pcm037 eet: remove unnecessary CONFIG_SPI_IMX ifdefs Signed-off-by: Sascha Hauer commit 0c1c8511a39ac980921e1c06b3f5809c7a42b522 Author: Sascha Hauer Date: Fri Jan 14 11:30:18 2011 +0100 ARM i.MX51 mx51 3ds: remove unnecessary CONFIG_SERIAL_IMX ifdefs Signed-off-by: Sascha Hauer commit 27d2d62b8b03c9dd2de9a367c19812e089da71c5 Author: Sascha Hauer Date: Fri Jan 14 11:30:33 2011 +0100 ARM i.MX51 mx51 babbage: remove unnecessary CONFIG_SERIAL_IMX ifdefs Signed-off-by: Sascha Hauer commit 818956e0b68f35ef56e9361d0fdea5d935e3827a Author: Sascha Hauer Date: Fri Jan 14 11:31:35 2011 +0100 ARM i.MX51 mx51-3ds: remove unnecessary CONFIG_KEYBOARD_IMX ifdefs Signed-off-by: Sascha Hauer commit 7f16f817e20b187e3130ce16f510971cf8ff5d07 Author: Sascha Hauer Date: Fri Jan 14 11:34:11 2011 +0100 ARM i.MX51 cpuimx51: remove unnecessary CONFIG_SERIAL_8250 ifdefs Signed-off-by: Sascha Hauer commit 53cdd3068b7b8e3a1a0e540ec42d9037296243b7 Author: Sascha Hauer Date: Fri Jan 14 11:34:33 2011 +0100 ARM i.MX51 efikamx: remove unnecessary CONFIG_SERIAL_IMX ifdefs Signed-off-by: Sascha Hauer commit 5d046af0eb94bdf67f048ba4056e85fa080b4b07 Author: Hartley Sweeten Date: Thu Jan 27 17:29:29 2011 +0100 ARM: 6641/1: ep93xx: implement gpiolib set_debounce for built-in GPIOs GPIO Ports A, B, and F on the ep93xx provide interrupt capability. It is possible to debounce the input signal on these ports when interrupts are enabled. Support for this debounce capability was provided with an ep93xx internal function. Now that gpiolib knows about gpio debounce, use the gpiolib method and do not export the internal function. Signed-off-by: H Hartley Sweeten Acked-by: Ryan Mallon Signed-off-by: Russell King commit 59b479e0985f0b795d68331d6443a7f89c47768d Author: Tony Lindgren Date: Thu Jan 27 16:39:40 2011 -0800 omap: Start using CONFIG_SOC_OMAP We want to have just CONFIG_ARCH_OMAP2, 3 and 4. The rest are nowadays just subcategories of these. Search and replace the following: ARCH_OMAP2420 SOC_OMAP2420 ARCH_OMAP2430 SOC_OMAP2430 ARCH_OMAP3430 SOC_OMAP3430 No functional changes. Signed-off-by: Tony Lindgren Signed-off-by: Thomas Weber Acked-by: Sourav Poddar commit 790a26f65bac8ddb7dc4a4685aebe46430a1c9b6 Author: Felipe Balbi Date: Thu Jan 27 16:39:41 2011 -0800 arm: omap: i2c: fix compile warning Fix the following compile warning: arch/arm/plat-omap/i2c.c:120:13: warning: 'omap_pm_set_max_mpu_wakeup_lat_compat' defined but not used arch/arm/plat-omap/i2c.c:125:38: warning: 'omap_i2c_latency' defined but not used Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren commit ae3126edfc7bcef7cc064acc1bf33c3ac148c5df Author: Felipe Balbi Date: Thu Jan 27 16:39:41 2011 -0800 arm: omap1: fix compile warning Fix the following compile warning: arch/arm/mach-omap1/board-palmte.c:233:13: warning: 'palmte_headphones_detect' defined but not used Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren commit 58dfaba789dbba34b86ed7dbe1aa648294d63f0b Author: Felipe Balbi Date: Thu Jan 27 16:39:41 2011 -0800 arm: omap1: fix compile warnings Fix the following compile warnings: arch/arm/mach-omap1/board-innovator.c:165:3: warning: initialization makes integer from pointer without a cast arch/arm/mach-omap1/board-perseus2.c:305:3: warning: initialization makes integer from pointer without a cast arch/arm/mach-omap1/board-fsample.c:338:3: warning: initialization makes integer from pointer without a cast Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren commit bdc58fb950a3a1b0bc3cbd8e23d21ecdde2ac9a2 Author: Felipe Balbi Date: Thu Jan 27 16:39:42 2011 -0800 arm: omap1: fix a bunch of section mismatches Fix the following section mismatches: WARNING: arch/arm/mach-omap1/built-in.o(.data+0x491c): Section mismatch in reference from the variable fsample_config to the (unknown reference) .init.data:(unknown) The variable fsample_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: arch/arm/mach-omap1/built-in.o(.data+0x8f0c): Section mismatch in reference from the variable ams_delta_config to the (unknown reference) .init.data:(unknown) The variable ams_delta_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: arch/arm/mach-omap1/built-in.o(.data+0x93ac): Section mismatch in reference from the variable ams_delta_camera_device to the (unknown reference) .init.data:(unknown) The variable ams_delta_camera_device references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x5e94): Section mismatch in reference from the variable fsample_config to the (unknown reference) .init.data:(unknown) The variable fsample_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0xa484): Section mismatch in reference from the variable ams_delta_config to the (unknown reference) .init.data:(unknown) The variable ams_delta_config references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0xa924): Section mismatch in reference from the variable ams_delta_camera_device to the (unknown reference) .init.data:(unknown) The variable ams_delta_camera_device references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren commit ee23b93dff539b82fd9e225e5235ee6d2fb01346 Author: Felipe Balbi Date: Thu Jan 27 16:39:43 2011 -0800 arm: omap2: irq: fix compile warning: Fix the following compile warning: arch/arm/mach-omap2/irq.c:64:31: warning: 'intc_context' defined but not used Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren commit c77675827206661943237fdc237abb7a79797d6b Author: Aaro Koskinen Date: Thu Jan 27 16:39:43 2011 -0800 arm: plat-omap: dma: make omap_dma_in_1510_mode() static Eliminates the following sparse warning: arch/arm/plat-omap/dma.c:137:5: warning: symbol 'omap_dma_in_1510_mode' was not declared. Should it be static? Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit 5db98f75f91006eaa37db3e13e320155225990e2 Author: Aaro Koskinen Date: Thu Jan 27 16:39:43 2011 -0800 arm: mach-omap1: board-h2: make h2_nand_platdata static Eliminates the following sparse warning: arch/arm/mach-omap1/board-h2.c:205:27: warning: symbol 'h2_nand_platdata' was not declared. Should it be static? Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit 04023542f81b80295aac454b76f6a40b207ddc21 Author: Aaro Koskinen Date: Thu Jan 27 16:39:44 2011 -0800 arm: mach-omap1: board-innovator: make innovator_mmc_init() static Eliminates the following sparse warning: arch/arm/mach-omap1/board-innovator.c:368:13: warning: symbol 'innovator_mmc_init' was not declared. Should it be static? Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit 140089da7e5e55012afe1e550c93e155c3a4e716 Author: Aaro Koskinen Date: Thu Jan 27 16:39:44 2011 -0800 arm: mach-omap1: board-htcherald: make htcpld_chips and htcpld_pfdata static Eliminates the following sparse warnings: arch/arm/mach-omap1/board-htcherald.c:334:34: warning: symbol 'htcpld_chips' was not declared. Should it be static? arch/arm/mach-omap1/board-htcherald.c:369:34: warning: symbol 'htcpld_pfdata' was not declared. Should it be static? Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit 277a28567fe928bd94e9953a187002f5041c34a4 Author: Aaro Koskinen Date: Thu Jan 27 16:39:44 2011 -0800 arm: mach-omap1: board-h3: make nand_platdata static Eliminates the following sparse warning: arch/arm/mach-omap1/board-h3.c:207:27: warning: symbol 'nand_platdata' was not declared. Should it be static? Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit ee54dba9c360944b34e06478c05c6f283bf64eda Author: Russell King - ARM Linux Date: Thu Jan 27 16:39:45 2011 -0800 ARM: OMAP: Allow platforms to hook reset cleanly This adds a clean method to allow platforms to hook into the reset code if they require to. Signed-off-by: Russell King Signed-off-by: Tony Lindgren commit 232bc6514fbf67abdaec1899a6d818c1dc70cbd6 Author: Aaro Koskinen Date: Thu Jan 27 16:39:45 2011 -0800 arm: mach-omap1: board-voiceblue: add missing include Eliminates the following sparse warnings: arch/arm/mach-omap1/board-voiceblue.c:253:6: warning: symbol 'voiceblue_wdt_enable' was not declared. Should it be static? arch/arm/mach-omap1/board-voiceblue.c:261:6: warning: symbol 'voiceblue_wdt_disable' was not declared. Should it be static? arch/arm/mach-omap1/board-voiceblue.c:269:6: warning: symbol 'voiceblue_wdt_ping' was not declared. Should it be static? arch/arm/mach-omap1/board-voiceblue.c:278:6: warning: symbol 'voiceblue_reset' was not declared. Should it be static? Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit ef19660b0aac537928a13a4087908cc23fa4c002 Author: Sascha Hauer Date: Mon Jan 24 12:57:46 2011 +0100 ARM i.MX23/28: deobfuscate gpio initialization Signed-off-by: Sascha Hauer Acked-by: Shawn Guo Acked-by: Wolfram Sang commit 0e8b462de06e0559fc7c5a73d1d913782397987d Author: Sascha Hauer Date: Mon Jan 24 13:09:41 2011 +0100 ARM i.MX23/28: do not use complicated macros if not necessary Get rid of ## preprocessor construct where it only makes the code harder to read. Signed-off-by: Sascha Hauer Acked-by: Shawn Guo Acked-by: Wolfram Sang commit d69934bc7bf677a51a13cdbcaa5eae45ea9e2fda Author: Sascha Hauer Date: Mon Jan 24 09:04:27 2011 +0100 ARM i.MX23: remove reserved register defines Signed-off-by: Sascha Hauer Acked-by: Shawn Guo Acked-by: Wolfram Sang commit 44b4ca32fe09ae3844e9e2d12fb7371b3edeee14 Author: Sascha Hauer Date: Thu Jan 27 12:38:01 2011 +0100 ARM i.MX28: remove reserved register defines Signed-off-by: Sascha Hauer Acked-by: Shawn Guo Acked-by: Wolfram Sang commit 4404117d745f2251c5d3c739c50f617e755dbe12 Author: Fabio Estevam Date: Thu Jan 27 15:00:19 2011 -0200 ARM: mach-mx3/mach-mx31_3ds: Remove unnecessary function for IO mapping Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit c8e4e7b12632771ab59f2e27fe120764642d06d2 Author: David Brown Date: Wed Jan 26 16:14:23 2011 -0800 msm: Remove broken register definition from trout Missed a register change with the clock cleanup on the MSM7x01 targets. Signed-off-by: David Brown commit 5c548add9899a1f8fcd47a58c4925c8ac4fc3027 Author: David Brown Date: Wed Jan 26 16:14:24 2011 -0800 msm: Warning fix in trout gpio board file arch/arm/mach-msm/board-trout-gpio.c: In function 'trout_gpio_to_irq': arch/arm/mach-msm/board-trout-gpio.c:77: error: unused variable 'msm_gpio' Signed-off-by: David Brown commit 437f629d4ea0a574b6102101fe4a51232a7cc105 Author: Stephen Boyd Date: Wed Jan 26 16:20:52 2011 -0800 msm: clock: Remove unused code and definitions This code is dead or otherwise useless so just remove it. Reviewed-by: Saravana Kannan Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit ce1c80fbaa3b8e132d4e430cbf7cb4a9cd28b2d5 Author: Stephen Boyd Date: Wed Jan 26 16:20:53 2011 -0800 msm: clock: Remove 7x30 and pcom includes from clock.h clock.h includes clock-pcom.h and clock-7x30.h when it really doesn't need to. Remove the includes and fixup breakages. Reviewed-By: Saravana Kannan Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit d64560fe3e9bf64b2050ceeb6b6946ba2a4efda0 Author: Matt Wagantall Date: Wed Jan 26 16:20:54 2011 -0800 msm: clock: Move debugfs code from clock.c to clock-debug.c The clock debugfs code is large enough, and easy enough to separate, that it deserves its own file which is compiled only when CONFIG_DEBUG_FS is enabled. Also, cleanup header file #includes that are no longer required. Reviewed-by: Saravana Kannan Signed-off-by: Matt Wagantall Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit 6e6d9b5bec5b27164126894c452853e4cac19b15 Author: Stephen Boyd Date: Wed Jan 26 16:20:55 2011 -0800 msm: clock: Invert debugfs directory layout There are currently 3 separate directories for clock debugging in debugfs: clk_enable, clk_rate, and clk_local. Each of these directories contains a list of clocks. This is rather annoying when you are focusing on one clock and want to enable/disable it and then check its rate. You either have to cd to the other directory or cat ../clk_rate/. Invert the layout so that there is one clock directory containing a directory for each clock. Inside each respective clock directory place an enable, rate, and is_local file relating to the clk_enable, clk_disable, and clk_local directories that exist today. Reviewed-by: Saravana Kannan Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit f689ac98777b8ca7278c1099dfc2ebecde397523 Author: Stephen Boyd Date: Wed Jan 26 16:20:56 2011 -0800 msm: clock: Add support for more proc_comm clocks Add support for the ce, codec_ssbi, uart clocks, and i2c clocks. Reviewed-by: Saravana Kannan Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit 07a3cc4814f790354d4c7be2c9dc6143a714a07a Author: Stepan Moskovchenko Date: Thu Jan 27 12:13:22 2011 -0800 msm: Clean up useless ifdefs Remove ifdefs that do nothing, either from having the code between them previously removed, or from having been accidentally added to the wrong file. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit d056fca32354dd990ffbd90fd1da10eaec72aa87 Author: Stepan Moskovchenko Date: Thu Jan 27 12:12:07 2011 -0800 msm: serial: Add MSM8960 serial support Add the device definitions and platform data to support the console serial port on MSM8960 Simulator and RUMI3 targets. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit 087809fce28f50098d9c3ef1a6865c722f23afd2 Author: Jamie Iles Date: Fri Jan 21 14:11:52 2011 +0000 dmaengine/dw_dmac: don't scan descriptors if no xfers in progress Some hardware (picoChip picoXCell in particular) sometimes has the block transfer complete bit being set for a channel after the whole transfer has completed. If we don't have any transfers in the active list then don't bother to scan the descriptors. This often happens in normal operation and doesn't require the channel to be reset. v2: cleanup whitespace Signed-off-by: Jamie Iles Signed-off-by: Dan Williams commit f301c062dcdd113bc977ae1ebc8c12232f8531a9 Author: Jamie Iles Date: Fri Jan 21 14:11:53 2011 +0000 dmaengine/dw_dmac: allow src/dst masters to be configured at runtime Some platforms have flexible mastering capabilities and this needs to be selected at runtime. If the platform has specified private data in the form of the dw_dma_slave then fetch the source and destination masters from here. If this isn't present, default to the previous of 0 and 1. v2: cleanup whitespace Acked-by: Hans-Christian Egtvedt Signed-off-by: Jamie Iles Signed-off-by: Dan Williams commit 95ea759e9e116dade3e7386be2a3db76c90f4675 Author: Jamie Iles Date: Fri Jan 21 14:11:54 2011 +0000 dmaengine/dw_dmac: provide a mechanism to indicate private devices Some platforms (e.g. Picochip PC3XX) have multiple DMA controllers where some may be used for slave transfers and others for general purpose memcpy type transfers. Add a .is_private boolean to the platform data structure so that controllers can be marked as private so that the DMA_PRIVATE capability will be set for that controller. Signed-off-by: Jamie Iles Signed-off-by: Dan Williams commit 4aa5f366431fef0afca0df348ca9782c63ac9911 Author: Jamie Iles Date: Fri Jan 21 14:11:55 2011 +0000 avr32: at32ap700x: specify DMA src and dst masters Now that the dw_dmac DMA driver supports configurable source and destination masters we need to specify which ones to use. This was previously hardcoded to 0 and 1 respectively in the driver. Acked-by: Hans-Christian Egtvedt Signed-off-by: Jamie Iles Signed-off-by: Dan Williams commit cb9ab2d8e4661c811d5e9a8e687b6f736690c90e Author: Rabin Vincent Date: Tue Jan 25 11:18:04 2011 +0100 dma40: make init function static Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 262d2915d4f11e5e78e432ab68f0ee034ef3f75f Author: Rabin Vincent Date: Tue Jan 25 11:18:05 2011 +0100 dma40: ensure event lines get enabled The controller sometimes fails to register the enable of the event line when both src and dst event lines are used on the same logical channel. Implement the recommended software workaround, which is to retry the write until it works. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 7d83a854a1a44a8f6a699503441403a36c42f66c Author: Rabin Vincent Date: Tue Jan 25 11:18:06 2011 +0100 dma40: remove "hardware link with previous jobs" code This link in hardware with previous jobs code is: - unused, no clients using or requiring this feature - incomplete, being implemented only for physical channels - broken, only working to perform one link Remove it. This also allows us to get rid of the channel pause in the submit_tx() routine. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 8ca84687b91322b9eafeaf4da43a21684cd0316e Author: Rabin Vincent Date: Tue Jan 25 11:18:07 2011 +0100 dma40: use helper for channel registers base The register offset computation for accessing channel registers is copy/pasted in several places. Create a helper function to do it. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 724a8577d80c6f8e9ac680be1cf419eddbd6f2a1 Author: Rabin Vincent Date: Tue Jan 25 11:18:08 2011 +0100 dma40: use helpers for channel type check The somewhat confusing check d40c->log_num == D40_PHY_CHAN and its variants are used in several places to check if a channel is logical or physical. Use appropriately named helpers to do this to make the code more readable. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 6db5a8ba11bf23d1618e392518f1684cbf2fe031 Author: Rabin Vincent Date: Tue Jan 25 11:18:09 2011 +0100 dma40: use helpers for error functions Almost every use of dev_err in this driver prints the function name. Abstract out wrappers to help with this and reduce code duplication. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 4d5949009e585b2bcf09dc4de625351f987a1e6d Author: Rabin Vincent Date: Tue Jan 25 11:18:10 2011 +0100 dma40: fix comment to refer to SOCs rather than boards And add DB8500v2 information. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit ac2c0a387194f45c759572b3462d1bf92ec92f00 Author: Rabin Vincent Date: Tue Jan 25 11:18:11 2011 +0100 dma40: allow realtime and priority for event lines DB8500v2's DMA40 (revision 3) allows setting event lines as high priority and real time. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 594ece4dc0e8ac222945ef2048430600ad3c7644 Author: Rabin Vincent Date: Tue Jan 25 11:18:12 2011 +0100 dma40: remove unnecessary ALIGN()s ALIGN(x * y, y) == x * y ALIGN(aligned + x * y, y) == aligned + x * y Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 7fe8be5a74eb058b0b48970caef83e0215f55944 Author: Rabin Vincent Date: Tue Jan 25 11:18:13 2011 +0100 dma40: use sg_dma_address() instead of sg_phys() The address to use for DMA should be taken from sg_dma_address() and not sg_phys(). Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 026cbc424a162e495ad29e91d354fb8fc2da2657 Author: Rabin Vincent Date: Tue Jan 25 11:18:14 2011 +0100 dma40: fix DMA API usage for LCLA Map the buffer once and use dma_sync*() appropriately instead of mapping the buffer over and over without unmapping it. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit b00f938c8cf5ba8e7a692519548a256aa3ea1203 Author: Rabin Vincent Date: Tue Jan 25 11:18:15 2011 +0100 dma40: fix DMA API usage for LLIs Map and unmap the LLIs and use dma_sync_single_for_device() appropriately instead of mapping and never unmapping them. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit d924abad7fa9a78d70b20552bf27fe4f7a19a2fb Author: Rabin Vincent Date: Tue Jan 25 11:18:16 2011 +0100 dma40: remove unnecessary casts Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 95944c6ef5b5214508273992416adb836b63c73f Author: Rabin Vincent Date: Tue Jan 25 11:18:17 2011 +0100 dma40: implement prep_memcpy as a wrapper around memcpy_sg To simplify the code. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 5f81158f90db4bc8a79e91736aa3afce8e590e46 Author: Rabin Vincent Date: Tue Jan 25 11:18:18 2011 +0100 dma40: combine desc init functions The desc init code can be shared between the mem and slave prep routines. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit dbd887880320b6a56811bb38ff4ad888728c3a91 Author: Rabin Vincent Date: Tue Jan 25 11:18:19 2011 +0100 dma40: combine duplicated d40_pool_lli_alloc() calls Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 00ac0341486ffe212f45ff1fe0780d12a36fffde Author: Rabin Vincent Date: Tue Jan 25 11:18:20 2011 +0100 dma40: remove duplicated dev addr code Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 3e3a0763e78b520dac5fde569c42664863336d94 Author: Rabin Vincent Date: Tue Jan 25 11:18:21 2011 +0100 dma40: combine mem and slave sg-to-lli functions Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 10a946b3a4e1ad665a81981cbe33c3d3903cd7da Author: Rabin Vincent Date: Tue Jan 25 11:18:22 2011 +0100 dma40: remove export of stedma40_memcpy_sg The dmaengine framework has the API for this now. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit cade1d30b2e071a687011c2a38c03ed7187ec501 Author: Rabin Vincent Date: Tue Jan 25 11:18:23 2011 +0100 dma40: combine mem and slave prep_sg functions Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 1c4b0927feab41346b0be971e0287aaf46eba8e0 Author: Rabin Vincent Date: Tue Jan 25 11:18:24 2011 +0100 dma40: move lli_load to main source file These register writes are better placed in the main source file rather than ll.c. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit e24b36bdf873b4a64545fd66da13877214d235cf Author: Rabin Vincent Date: Tue Jan 25 11:18:25 2011 +0100 dma40: combine duplicated code in log_sg_to_dev Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 5ed04b8575cb22920b1333aeb55121339449048f Author: Rabin Vincent Date: Tue Jan 25 11:18:26 2011 +0100 dma40: unify d40_log_sg_to_lli funcs for mem and slave Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit cc31b6f7949efd46c5f13d0758cf7b0bcb71fae2 Author: Rabin Vincent Date: Tue Jan 25 11:18:27 2011 +0100 dma40: pass the info pointer all the way to reduce argument count Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 822c567639971628ceba2c53531670d595e3164d Author: Rabin Vincent Date: Tue Jan 25 11:18:28 2011 +0100 dma40: unify src/dst addr check Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 1f7622ca55b1f5875e32140b4781759f800aded3 Author: Rabin Vincent Date: Tue Jan 25 11:18:29 2011 +0100 dma40: make d40_log_buf_to_lli static Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 7f933bed96e9872131014ea2bdd5b012e43fc316 Author: Rabin Vincent Date: Tue Jan 25 11:18:30 2011 +0100 dma40: use flags to reduce parameter count Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit e65889c75ccb5b64dfb60f32e2d9448446cabcc7 Author: Rabin Vincent Date: Tue Jan 25 11:18:31 2011 +0100 dma40: extract lcla code into separate function Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 6045f0bb2818393a44e835454db96709cb5b3d80 Author: Rabin Vincent Date: Tue Jan 25 11:18:32 2011 +0100 dma40: handle failure to allocate first LCLA Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 7ad74a7cf6f6355fd3f4c15afe63460fc4ec3f57 Author: Rabin Vincent Date: Tue Jan 25 11:18:33 2011 +0100 dma40: fix DMA_SG capability and channels The DMA_SG cap is enabled on the wrong channel, and the pointers are repeatedly set incorrectly. Fix it and combine the ops settings to a common function. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 86eb5fb61125e4646c9447a1f2ce130817dab34e Author: Rabin Vincent Date: Tue Jan 25 11:18:34 2011 +0100 dma40: stop ongoing transfers in DMA_TERMINATE_ALL The current implementation of DMA_TERMINATE_ALL leaves ongoing transfers running. Fix it. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 0c842b551063c5f7382ac9b457992f3b34972801 Author: Rabin Vincent Date: Tue Jan 25 11:18:35 2011 +0100 dma40: cyclic xfer support Support cyclic transfers, which are useful for ALSA drivers. Acked-by: Per Forlin Acked-by: Jonas Aaberg Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij Signed-off-by: Dan Williams commit 4e8d76373c9fd7a1c1b401fc97ba01c0ecbb888f Author: Russell King Date: Fri Jan 28 21:00:39 2011 +0000 ARM: footbridge: convert to clockevents/clocksource The Footbridge platforms have some reasonable timers in the host bridge, which we use for most footbridge-based platforms. However, NetWinder's clock these using a spread-spectrum clock which makes them too unstable for time keeping. So we have to rely on the PIT. Convert both Footbridge timers and PIT timers to use the clocksource and clockevent infrastructure. Tested on Netwinder. Signed-off-by: Russell King commit 039c4644b49ea707a2159c22f638f4f1c0144c69 Author: Alexander Stein Date: Mon Jan 31 17:00:24 2011 +0100 plat-mxc: Provide irq_chip name for GPIO IRQs Signed-off-by: Alexander Stein Signed-off-by: Sascha Hauer commit 67f2a87f92716c3126415e114af57164736bbca5 Author: Fabio Estevam Date: Tue Jan 25 13:08:33 2011 -0200 ARM: mach-mx5: Fix build for mx53_loco and mx53_smd Commit 816ad74 (ARM: i.MX53: Add full iomux support for mx53) renamed some of the pad names. Make the changes accordingly so that mx53_loco and mx53_cmd can build without errors. Signed-off-by: Fabio Estevam Acked-by: Richard Zhao Signed-off-by: Sascha Hauer commit 528f65271f24d1fe9b46065e0fef9571698bd78c Author: Fabio Estevam Date: Tue Jan 25 13:08:34 2011 -0200 ARM: mach-mx5/board-mx53_loco: Make UART1 functional Fix IOMUX settings for UART1 and make UART1 functional. Signed-off-by: Fabio Estevam Acked-by: Richard Zhao Signed-off-by: Sascha Hauer commit abc1813dc0285353d9ce387b90ffce8acc26227e Author: Fabio Estevam Date: Tue Jan 25 13:08:35 2011 -0200 ARM: mach-mx5/board-mx53_loco: Remove unused UARTs On mx53_loco only UART1 is used and its signals go to connector J16. Remove UART2 and UART3 as they are not used on this board. Signed-off-by: Fabio Estevam Acked-by: Richard Zhao Signed-off-by: Sascha Hauer commit cdb2daa4ffcb331d08e356ed66b57bd14d105746 Author: Fabio Estevam Date: Mon Jan 31 10:32:27 2011 -0200 ARM: mx5/board-mx53_smd.c: Make UART1 functional Fix UART1 IOMUX settings and configure UART1 to work with only RX/TX pins. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit df42c8a720ff2e0d52d187bb1120339e79f58604 Author: Fabio Estevam Date: Mon Jan 31 15:12:54 2011 -0200 ARM: mx5/board-mx53_evk.c: Make UART1 functional Fix UART1 IOMUX settings and configure UART1 to work with only RX/TX pins. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 47f5ae51f2aedac2f3006c1252f1020fdfc1d3c0 Author: Stephen Warren Date: Mon Jan 31 15:37:15 2011 -0700 ARM: tegra: Add to struct harmony_audio_platform_data Add fields to describe all the audio-related GPIOs on Harmony, except for the codec's GPIO IRQ, which will be passed in its i2c_board_info. Signed-off-by: Stephen Warren Acked-by: Liam Girdwood Signed-off-by: Mark Brown commit a16ede35a2659170c855c5d267776666c0630f1f Author: Russell King Date: Sun Jan 16 17:59:44 2011 +0000 ARM: bitops: ensure set/clear/change bitops take a word-aligned pointer Add additional instructions to our assembly bitops functions to ensure that they only operate on word-aligned pointers. This will be necessary when we switch these operations to use the word-based exclusive operations. Signed-off-by: Russell King commit 6323f0ccedf756dfe5f46549cec69a2d6d97937b Author: Russell King Date: Sun Jan 16 18:02:17 2011 +0000 ARM: bitops: switch set/clear/change bitops to use ldrex/strex Switch the set/clear/change bitops to use the word-based exclusive operations, which are only present in a wider range of ARM architectures than the byte-based exclusive operations. Tested record: - Nicolas Pitre: ext3,rw,le - Sourav Poddar: nfs,le - Will Deacon: ext3,rw,le - Tony Lindgren: ext3+nfs,le Reviewed-by: Nicolas Pitre Tested-by: Sourav Poddar Tested-by: Will Deacon Tested-by: Tony Lindgren Signed-off-by: Russell King commit 000d9c78eb5cd7f18e3d6a381d66e606bc9b8196 Author: Russell King Date: Sat Jan 15 16:22:12 2011 +0000 ARM: v6k: remove CPU_32v6K dependencies in asm/spinlock.h SMP requires at least the ARMv6K extensions to be present, so if we're running on SMP, the WFE and SEV instructions must be available. However, when we run on UP, the v6K extensions may not be available, and so we don't want WFE/SEV to be in the instruction stream. Use the SMP alternatives infrastructure to replace these instructions with NOPs if we build for SMP but run on UP. Tested-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit e399b1a4e1d205bdc816cb550d2064f2eb1ddc4c Author: Russell King Date: Mon Jan 17 15:08:32 2011 +0000 ARM: v6k: introduce CPU_V6K option Introduce a CPU_V6K configuration option for platforms to select if they have a V6K CPU core. This allows us to identify whether we need to support ARMv6 CPUs without the V6K SMP extensions at build time. Currently CPU_V6K is just an alias for CPU_V6, and all places which reference CPU_V6 are replaced by (CPU_V6 || CPU_V6K). Select CPU_V6K from platforms which are known to be V6K-only. Acked-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 74200e6421882bfb53677d63a134d89a919815c1 Author: Russell King Date: Mon Jan 17 18:23:31 2011 +0000 ARM: v6k: Realview EB 11MPCore and PB11MPCore use V6K architecture CPUs Make Realview EB ARM11MPCore and PB11MPCore select the new V6K CPU option. Tested-by: Will Deacon Signed-off-by: Russell King commit c786282e6dd18fe2ff43ab44411085dc40e7fbc5 Author: Russell King Date: Mon Jan 17 18:20:05 2011 +0000 ARM: v6k: Dove platforms use V6K architecture CPUs Make Dove platforms select the new V6K CPU option. Tested-by: Nicolas Pitre Signed-off-by: Russell King commit 7db44c75a241c18d03e82540c5b825216d4c668b Author: Russell King Date: Mon Jan 17 15:35:37 2011 +0000 ARM: v6k: select clear exclusive code seqences according to V6 variants If CONFIG_CPU_V6 is enabled, then the kernel must support ARMv6 CPUs which don't have the V6K extensions implemented. Always use the dummy store-exclusive method to ensure that the exclusive monitors are cleared. If CONFIG_CPU_V6 is not set, but CONFIG_CPU_32v6K is enabled, then we have the K extensions available on all CPUs we're building support for, so we can use the new clear-exclusive instruction. Acked-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 4ed67a53591db641543d57f31c182591a429dc93 Author: Russell King Date: Mon Jan 17 15:42:42 2011 +0000 ARM: v6k: select cmpxchg code sequences according to V6 variants If CONFIG_CPU_V6 is enabled, we must avoid the byte/halfword/doubleword exclusive operations, which aren't implemented before V6K. Use the generic versions (or omit them) instead. If CONFIG_CPU_V6 is not set, but CONFIG_CPU_32v6K is enabled, we have the K extnesions, so use these new instructions. Acked-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit a41297a0ffb43fda0a565bdd3ee405d16505820c Author: Russell King Date: Mon Jan 17 15:48:33 2011 +0000 ARM: v6k: select generic atomic64 code according to V6 variants If CONFIG_CPU_V6 is enabled, avoid using the double-word exclusive instructions in the kernel's atomic implementations as these are not supported. Fall back to the generic spinlock code instead. Acked-by: Tony Lindgren Acked-by: Will Deacon Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 37bc618fe2689a7f8de8fac82e72b00ecea4d43d Author: Russell King Date: Mon Jan 17 16:38:56 2011 +0000 ARM: v6k: select TLS register code according to V6 variants If CONFIG_CPU_V6 is enabled, we may or may not have the TLS register. Use the conditional code which copes with this variability. Otherwise, if CONFIG_CPU_32v6K is set, we know we have the TLS register on all supported CPUs, so use it unconditionally. Acked-by: Nicolas Pitre Acked-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 8762df4d5c5462bea8ad0f76473f39e9ce9b8662 Author: Russell King Date: Mon Jan 17 15:53:56 2011 +0000 ARM: v6k: use CPU domain feature if we include support for arch < ARMv6K Rather than turning off CPU domain switching when the build architecture includes ARMv6K, thereby causing problems for ARMv6-supporting kernels, turn it on when it's required to support a CPU architecture. Acked-by: Nicolas Pitre Acked-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 60799c6dd727b72b9c6794e9d1ab2d2b01a87ca4 Author: Russell King Date: Sat Jan 15 16:25:04 2011 +0000 ARM: v6k: do not disable CPU_32v6K based on platform selection CPU_32v6K controls whether we use the ARMv6K extension instructions in the kernel, and in some places whether we use SMP-safe code sequences (eg, bitops.) MX3 prevents the selection of this option to ensure that it is not enabled for their CPU, which is ARMv6 only. Now that we've split the CPU_V6 option, V6K support won't be offered for MX3 anymore. OMAP prevents the selection of this option in an attempt to produce a kernel which runs on architectures from ARMv6 to ARMv7 MPCore. We now achieve this in a different way (see the previous patches). As such, we no longer need to offer this as a configuration option to the user. Tested-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 581388c15bd61a2548af0b87152648741d038571 Author: Russell King Date: Mon Jan 17 17:27:48 2011 +0000 ARM: v6k: allow swp emulation again when ARMv7 is enabled Now that we build a v6+v6k+v7 kernel with -march=armv6k for everything, we don't need to disable swp emulation to work around the build problem with OMAP. Tested-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit fbb4ddacb6b70b3178fcb7e3debc5180e6b6cd2f Author: Russell King Date: Mon Jan 17 18:01:58 2011 +0000 ARM: v6k: only allow SMP if we have v6k or v7 CPU SMP extensions are only supported on ARMv6k or ARMv7 architectures, so only offer the option if we're building for such an architecture. Acked-by: Tony Lindgren Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 3bc28c8edc4f5f78d9ec23fb0f20df29b7b3a072 Author: Russell King Date: Tue Jan 18 13:30:33 2011 +0000 ARM: v6k: DMA_CACHE_RWFO isn't appropriate for non-v6k CPUs Limit DMA_CACHE_RWFO to only v6k SMP CPUs - V6 CPUs aren't SMP capable, so the read/write for ownership work-around doesn't apply to them. Acked-by: Will Deacon Tested-by: Sourav Poddar Tested-by: Will Deacon Signed-off-by: Russell King commit 774c096bf9e49eebf7b5d2d9fdddf632c29ccea0 Author: Russell King Date: Sun Jan 23 13:04:53 2011 +0000 ARM: v6/v7 cache: allow cache calls to be optimized The v6 cache call optimization was disabled to allow the optional block cache operations to be subsituted on CPUs which supported those operations. However, as that functionality was removed, we no longer need to prevent this optimization being taken advantage of. The v7 cache call optimization was just a copy of the v6, so also fix that too. Tested-by: Will Deacon Signed-off-by: Russell King commit 6ea038a7771be6652784fd06ad01f44028e3a43c Author: Marc Kleine-Budde Date: Wed Feb 2 13:50:29 2011 +0100 ARM: mxs: adjust flexcan clock definition Signed-off-by: Marc Kleine-Budde Signed-off-by: Sascha Hauer commit 22cbba1b82de458028f4aa270e88492b622c1ea8 Author: Marc Kleine-Budde Date: Wed Feb 2 13:50:30 2011 +0100 ARM: mxs: dynamically register flexcan devices for mx28 Signed-off-by: Marc Kleine-Budde Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit c8afc9d59ce1100d3f7704e86fda5a25361c45bf Author: Russell King Date: Fri Feb 4 09:19:46 2011 +0000 ARM: mmci: avoid reporting too many completed bytes on fifo overrun The data counter counts the number of bytes transferred on the MMC bus. When a FIFO overrun occurs, we will not have transferred a FIFOs-worth of data to memory, and so the data counter will be a FIFOs-worth ahead. If this occurs on a block boundary, we will report one too many sectors as successful. Fix this. Acked-by: Linus Walleij Signed-off-by: Russell King commit 7d7aa23cf0700f4025cb61bd1ac517ccf79bd460 Author: Russell King Date: Thu Jan 27 09:46:29 2011 +0000 ARM: mmci: no need to call flush_dcache_page() with sg_miter API The sg_miter API provides the required cache maintainence, so we don't need to do that ourselves. Remove the unnecessary additional cache maintainence. Signed-off-by: Russell King commit c4d877c1b3df58d89f01d7b211f58b944356eea3 Author: Russell King Date: Thu Jan 27 09:50:13 2011 +0000 ARM: mmci: avoid unnecessary switch to data available PIO interrupts We don't need to switch to data available interrupts if there's at least half a FIFO depth worth of data remaining, as we'll still get the FIFO half full interrupt. Keep this interrupt masked off until we have less than half the FIFO depth worth of data remaining. Signed-off-by: Russell King commit 51d4375dd72f352594f1a4f1d7598bf9a75b8dfe Author: Russell King Date: Thu Jan 27 10:56:52 2011 +0000 ARM: mmci: no need for separate host->data_xfered We don't need to store the number of bytes transferred in our host structure - we can store this directly in data->bytes_xfered. Signed-off-by: Russell King commit c8ebae37034c0ead62eb4df8ef88e999ddb8d5cf Author: Russell King Date: Tue Jan 11 19:35:53 2011 +0000 ARM: mmci: add dmaengine-based DMA support Based on a patch from Linus Walleij. Add dmaengine based support for DMA to the MMCI driver, using the Primecell DMA engine interface. The changes over Linus' driver are: - rename txsize_threshold to dmasize_threshold, as this reflects the purpose more. - use 'mmci_dma_' as the function prefix rather than 'dma_mmci_'. - clean up requesting of dma channels. - don't release a single channel twice when it's shared between tx and rx. - get rid of 'dma_enable' bool - instead check whether the channel is NULL. - detect incomplete DMA at the end of a transfer. Some DMA controllers (eg, PL08x) are unable to be configured for scatter DMA and also listen to all four DMA request signals [BREQ,SREQ,LBREQ,LSREQ] from the MMCI. They can do one or other but not both. As MMCI uses LBREQ/LSREQ for the final burst/words, PL08x does not transfer the last few words. - map and unmap DMA buffers using the DMA engine struct device, not the MMCI struct device - the DMA engine is doing the DMA transfer, not us. - avoid double-unmapping of the DMA buffers on MMCI data errors. - don't check for negative values from the dmaengine tx submission function - Dan says this must never fail. - use new dmaengine helper functions rather than using the ugly function pointers directly. - allow DMA code to be fully optimized away using dma_inprogress() which is defined to constant 0 if DMA engine support is disabled. - request maximum segment size from the DMA engine struct device and set this appropriately. - removed checking of buffer alignment - the DMA engine should deal with its own restrictions on buffer alignment, not the individual DMA engine users. - removed setting DMAREQCTL - this confuses some DMA controllers as it causes LBREQ to be asserted for the last seven transfers, rather than six SREQ and one LSREQ. - removed burst setting - the DMA controller should not burst past the transfer size required to complete the DMA operation. Tested-by: Linus Walleij Signed-off-by: Russell King commit b6338bdc8305b27688a7feb8689e4ccfd42f0292 Author: Jean Pihet Date: Wed Feb 2 16:38:06 2011 +0100 ARM: 6649/1: omap: use fncpy to copy the PM code functions to SRAM The new fncpy API is better suited* for copying some code to SRAM at runtime. This patch changes the ad-hoc code to the more generic fncpy API. *: 1. fncpy ensures that the thumb mode bit is propagated, 2. fncpy provides the security of type safety between the original function and the sram function pointer. Tested OK on OMAP3 in low power modes (RET/OFF) using omap2plus_defconfig with !CONFIG_THUMB2_KERNEL. Compile tested on OMAP1/2 using omap1_defconfig. Boot tested on OMAP1 & OMAP2 Tested OK with suspend/resume on OMAP2420/n810 Boots fine on osk5912 and n800 Signed-off-by: Jean Pihet Acked-by: Kevin Hilman Acked-by: Tony Lindgren Reviewed-by: Dave Martin Tested-by: Kevin Hilman Tested-by: Tony Lindgren Signed-off-by: Russell King commit 7af75af2424c3a866041e7981d91f01f93235533 Author: Vadim Tsozik Date: Sun Jan 9 01:00:11 2011 -0500 USB: serial: mct_u232: added _ioctl, _msr_to_icount and _get_icount functions Added mct_u232_ioctl (implements TIOCMIWAIT command), mct_u232_get_icount (implements TIOCGICOUNT command) and mct_u232_msr_to_icount functions. MCT U232 P9 is one of a few usb to serail adapters which converts USB +/-5v voltage levels to COM +/-15 voltages. So it can also power COM interfaced devices. This makes it very usable for legacy COM interfaced data-acquisition hardware. I tested new implementation with AWARE Electronics RM-60 radiation meter, which sends pulse via RNG COM line whenever new particle is registered. Signed-off-by: Vadim Tsozik Signed-off-by: Greg Kroah-Hartman commit 553fbcde3481c98a076c9744a59ad08dbc61c099 Author: Jassi Brar Date: Fri Jan 14 11:55:53 2011 +0900 USB: Gadget: Initialize wMaxPacketSize if not already set Currently, for ISO and INT, a protocol driver must chose the value for wMaxPacketSize arbitrarily. The value may be too low, resulting in lesser than efficient operation or high enough to not work with all UDC drivers. Take un-initialized wMaxPacketSize as a hint to provide maximum possible packetsize for the selected endpoint. The protocol may then choose a value not bigger than that. Signed-off-by: Jassi Brar Signed-off-by: Greg Kroah-Hartman commit a51ea8cc9cfcfd719240455ff8f217b4f165d1d0 Author: Fabio Estevam Date: Thu Jan 20 13:51:52 2011 -0200 usb: gadget/fsl_mxc_udc: Detect the CPU type in run-time Make sure we are running on a MX35 processor. Signed-off-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman commit b7d5b439b7a40dd0a0202fe1c118615a3fcc3b25 Author: Andiry Xu Date: Tue Jan 25 18:41:21 2011 +0800 USB host: Move AMD PLL quirk to pci-quirks.c This patch moves the AMD PLL quirk code in OHCI/EHCI driver to pci-quirks.c, and exports the functions to be used by xHCI driver later. AMD PLL quirk disable the optional PM feature inside specific SB700/SB800/Hudson-2/3 platforms under the following conditions: 1. If an isochronous device is connected to OHCI/EHCI/xHCI port and is active; 2. Optional PM feature that powers down the internal Bus PLL when the link is in low power state is enabled. Without AMD PLL quirk, USB isochronous stream may stutter or have breaks occasionally, which greatly impair the performance of audio/video streams. Currently AMD PLL quirk is implemented in OHCI and EHCI driver, and will be added to xHCI driver too. They are doing similar things actually, so move the quirk code to pci-quirks.c, which has several advantages: 1. Remove duplicate defines and functions in OHCI/EHCI (and xHCI) driver and make them cleaner; 2. AMD chipset information will be probed only once and then stored. Currently they're probed during every OHCI/EHCI initialization, move the detect code to pci-quirks.c saves the repeat detect cost; 3. Build up synchronization among OHCI/EHCI/xHCI driver. In current code, every host controller enable/disable PLL only according to its own status, and may enable PLL while there is still isoc transfer on other HCs. Move the quirk to pci-quirks.c prevents this issue. Signed-off-by: Andiry Xu Cc: David Brownell Cc: Alex He Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit fc427a5a4bf3be770d7fbd933474957062049f1f Author: David Daney Date: Tue Jan 25 09:59:34 2011 -0800 USB: EHCI: Remove dead code from ehci-sched.c The pre-release GCC-4.6 now correctly flags this code as dead. Signed-off-by: David Daney Signed-off-by: Greg Kroah-Hartman commit 9a1cadb9dd9130345d59638f5b6a8a4982c2b34a Author: David Daney Date: Tue Jan 25 09:59:35 2011 -0800 USB: EHCI: Cleanup and rewrite ehci_vdgb(). The vdbg macro is not used anywhere so it can be removed. With pre-release GCC-4.6, there are several complaints of variables that are 'set but not used' caused by the ehci_vdbg() macro expanding to something that does not contain any of its arguments. We can quiet this warning by rewriting ehci_vdbg() as a variadic static inline that does nothing. Signed-off-by: David Daney Signed-off-by: Greg Kroah-Hartman commit eb34a90861a290cd271f4b887c0d59070e1b69b0 Author: David Daney Date: Tue Jan 25 09:59:36 2011 -0800 USB: EHCI: Rearrange EHCI_URB_TRACE code to avoid GCC-4.6 warnings. With pre-release GCC-4.6, we get a 'set but not used' warning when EHCI_URB_TRACE is not set because we set the qtd variable without using it. Rearrange the statements so that we only set qtd if it will be used. Signed-off-by: David Daney Signed-off-by: Greg Kroah-Hartman commit ac8d67417816fa7c568b24a8f2891eb02e6d0462 Author: David Daney Date: Tue Jan 25 09:59:37 2011 -0800 USB: EHCI: Rearrange create_companion_file() to avoid GCC-4.6 warnings. In create_companion_file() there is a bogus assignemt to i created for the express purpose of avoiding an ignored return value warning. With pre-release GCC-4.6, this causes a 'set but not used' warning. Kick the problem further down the road by just returning i. All the callers of create_companion_file() ignore its return value, so all is good: o No warnings are issued. o We still subvert the desires of the authors of device_create_file() by ignorning error conditions. Signed-off-by: David Daney Signed-off-by: Greg Kroah-Hartman commit d25bc4db723a44c097268b466ff74bfba4bcc4f3 Author: Pete Zaitcev Date: Thu Feb 3 22:01:36 2011 -0700 USB: usbmon: fix-up docs and text API for sparse ISO This is based on a patch that Alan Stern wrote. It did the same simple thing in both text and binary cases. In the same time, Marton and I fixed the binary side properly, but this leaves the text to be fixed. It is not very important due to low maxium data size of text, but let's add it just for extra correctness. The pseudocode is too much to keep fixed up, and we have real code to be used as examples now, so let's drop it too. Signed-off-by: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman commit c8cf203a1d228fa001b95534f639ffb7a23d5386 Author: Robert Morell Date: Wed Jan 26 19:06:47 2011 -0800 USB: HCD: Add usb_hcd prefix to exported functions The convention is to prefix symbols exported from the USB HCD core with "usb_hcd". This change makes unmap_urb_setup_for_dma() and unmap_urb_for_dma() consistent with that. Signed-off-by: Robert Morell Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 2694a48d9007a8bdf1731c1b97d4942c9cc49296 Author: Robert Morell Date: Wed Jan 26 19:06:48 2011 -0800 USB: HCD: Add driver hooks for (un)?map_urb_for_dma Provide optional hooks for the host controller driver to override the default DMA mapping and unmapping routines. In general, these shouldn't be necessary unless the host controller has special DMA requirements, such as alignment contraints. If these are not specified, the general usb_hcd_(un)?map_urb_for_dma functions will be used instead. Also, pass the status to unmap_urb_for_dma so it can know whether the DMA buffer has been overwritten. Finally, add a flag to be used by these implementations if they allocated a temporary buffer so it can be freed properly when unmapping. Signed-off-by: Robert Morell Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 9a1b2e64020d41c577881952734fecd114af75f1 Author: Marek Szyprowski Date: Fri Jan 28 10:23:57 2011 +0100 USB: gadget: export functionfs.h to the includes available for userspace To compile functionfs userspace driver one needs definitions from include/linux/usb/functionfs.h. This patch add this file to the list of includes exported to userspace. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit ce1fd3585709e833ad102167024e97217734dbfd Author: Marek Szyprowski Date: Fri Jan 28 13:55:36 2011 +0100 USB: gadget: f_fs: even zero-length packets require a buffer Some UDC drivers fails to queue a request if req->buf == NULL even for ZLP requests. This patch adds a poisoned pointer instead of NULL to make the code compliant with the gadget specification and catches possible bug in the UDC driver if it tries to dereference buffer pointer on ZLP request. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit 130551928195bdef3369e13572b9a383400681bb Author: Hartley Sweeten Date: Thu Jan 27 17:50:53 2011 +0100 ARM: 6643/1: ep93xx: add framebuffer support to edb93xx boards The ep9307, ep9312, and ep9315 variants of the ep93xx processor include the raster engine needed for framebuffer support. This allows the EDB93xx boards with those processors to use the framebuffer driver. Tested on an EDB9307A with the following kernel parameters: video=640x480-16@60 video=1024x768-16@60 Signed-off-by: H Hartley Sweeten Acked-by: Ryan Mallon Signed-off-by: Russell King commit 796e23bebefdda89a9023453e357b3549bea57d8 Author: Russell King Date: Wed Jan 12 17:50:42 2011 +0000 ARM: Defer lookup of machine_type to setup.c Since the debug macros no longer depend on the machine type information, the machine type lookup can be deferred to setup_arch() in setup.c which simplifies the code somewhat. We also move the __error_a functionality into setup.c for displaying a message when a bad machine ID is passed to the kernel via the LL debug code. We also log this into the kernel ring buffer which makes it possible to retrieve the message via a debugger. Original idea from Grant Likely. Acked-by: Grant Likely Tested-by: Tony Lindgren Signed-off-by: Russell King commit de33bd4b55f26aafe13daba2ff9b7ea8dfb1c515 Author: Russell King Date: Sat Jan 8 11:49:20 2011 +0000 ARM: DMA: top-down allocation in DMA coherent region Achieve better usage of the DMA coherent region by doing top-down allocation rather than bottom up. If we ask for a 128kB allocation, this will be aligned to 128kB and satisfied from the very bottom address. If we then ask for a 600kB allocation, this will be aligned to 1MB, and we will have a 896kB hole. Performing top-down allocation resolves this by allocating the 128kB at the very top, and then the 600kB can come in below it without any unnecessary wastage. This problem was reported by Janusz Krzysztofik, who had 2 x 128kB + 1 x 640kB allocations which wouldn't fit into 1MB. Tested-by: Janusz Krzysztofik Signed-off-by: Russell King commit 09c33c2a0c12354ba24fcf6bfd736f7a414d4def Author: Russell King Date: Sat Jan 8 12:05:09 2011 +0000 ARM: fix some sparse errors in generic ARM code arch/arm/kernel/return_address.c:37:6: warning: symbol 'return_address' was not declared. Should it be static? arch/arm/kernel/setup.c:76:14: warning: symbol 'processor_id' was not declared. Should it be static? arch/arm/kernel/traps.c:259:1: warning: symbol 'die_lock' was not declared. Should it be static? arch/arm/vfp/vfpmodule.c:156:6: warning: symbol 'vfp_raise_sigfpe' was not declared. Should it be static? Signed-off-by: Russell King commit c4e0d1f7d39626c7dd5f605b2f3003ebbff2e570 Author: Russell King Date: Sat Jan 8 16:18:51 2011 +0000 ARM: add 'uinstall' target for installing uboot kernels We have 'install' and 'zinstall' for installing Image and zImage kernels, so add 'uinstall' to complete the set. This allows developers to have a ~/bin/installkernel script which (eg) copies the kernel to the tftp server automatically once the kernel has built, resulting in a better workflow. Signed-off-by: Russell King commit 34845940ced0b01ff2f7aaada1d786c102ad43be Author: Russell King Date: Tue Jan 11 19:57:14 2011 +0000 ARM: improve module relocation fixup diagnostics Current diagnostics are rather poor when things go wrong: ipv6: relocation out of range, section 2 reloc 0 sym 'snmp_mib_free' Let's include a little more information about the problem: ipv6: section 2 reloc 0 sym 'snmp_mib_free': relocation 28 out of range (0xbf0000a4 -> 0xc11b4858) so that we show exactly what the problem is - not only what type of relocation but also the offending address range too. Signed-off-by: Russell King commit 6a88b8ba0f187a6b23dc79fc8ace8c4df9313f0c Author: Colin Tuckley Date: Thu Jan 6 11:16:49 2011 +0100 ARM: 6608/1: enable bridges in pci_common_init. Add a missing call to pci_enable_bridges() so that devices behind bridges get found by the pci bus scan. Signed-off-by: Chris Partington Acked-by: Catalin Marinas Signed-off-by: Russell King commit 20704f0ddc61d660539d4c28553b558335b8b5f7 Author: Russell King Date: Sun Jan 23 12:08:16 2011 +0000 ARM: irq migration: force migration off CPU going down The force argument to irq_set_affinity really should be 'true' as moving IRQs off a CPU which is going down isn't optional. Acked-by: Thomas Gleixner Signed-off-by: Russell King commit 00c8c08d197e0e7ff5e2357e8befa5803cd8ca99 Author: Russell King Date: Sun Jan 23 12:09:36 2011 +0000 ARM: irq migration: ensure migration is handled safely Ensure appropriate locks are taken to ensure that IRQ migration off the current CPU is race-free. We may have a concurrent set_affinity via procfs running on another CPU in parallel with the IRQ migration, resulting in unpredictable results. Signed-off-by: Russell King commit 94686fb429eb9d1519d4e61b60c772c3881b738c Author: Russell King Date: Sun Jan 23 12:12:01 2011 +0000 ARM: irq migration: update GIC migration code This cleans up after the conversion to irq_data. Rename the function to match the method, and remove the now useless lookup of the irq descriptor which is never used. Move the bitmask calculation out of the irq_controller_lock region. Signed-off-by: Russell King commit 4c9885e8a3ad27b6419641df67552b9223830b6d Author: Nicolas Pitre Date: Tue Jan 25 21:35:38 2011 +0100 ARM: 6639/1: allow highmem on SMP platforms without h/w TLB ops broadcast In commit e616c591405c168f6dc3dfd1221e105adfe49b8d, highmem support was deactivated for SMP platforms without hardware TLB ops broadcast because usage of kmap_high_get() requires that IRQs be disabled when kmap_lock is locked which is incompatible with the IPI mechanism used by the software TLB ops broadcast invoked through flush_all_zero_pkmaps(). The reason for kmap_high_get() is to ensure that the currently kmap'd page usage count does not decrease to zero while we're using its existing virtual mapping in an atomic context. With a VIVT cache this is essential to do due to cache coherency issues, but with a VIPT cache this is only an optimization so not to pay the price of establishing a second mapping if an existing one can be used. However, on VIPT platforms without hardware TLB maintenance we can give up on that optimization in order to be able to use highmem. From ARMv7 onwards the TLB ops are broadcasted in hardware, so let's disable ARCH_NEEDS_KMAP_HIGH_GET only when CONFIG_SMP and CONFIG_CPU_TLB_V6 are defined. Signed-off-by: Nicolas Pitre Tested-by: Saeed Bishara Signed-off-by: Russell King commit 1f3201dcefdecdcb242eca8abea66d1b2af1895b Author: Russell King Date: Mon Jan 31 14:43:25 2011 +0000 ARM: vfp: improve commentry for hotplug events Improve the documentation for the VFP hotplug notifier handler, so that people better understand what's going on there and what has been done for them. Signed-off-by: Russell King commit 5740f63e0ab4da380b40d94e1631f79867f00dda Author: Sumit Semwal Date: Mon Jan 24 06:21:48 2011 +0000 OMAP2, 3: DSS2: remove forced clk-disable from omap_dss_remove As part of omap hwmod changes, DSS will not be the only controller of its clocks. hwmod initialization also enables the interface clocks, and manages them. So, when DSS is built as a module, omap_dss_remove doesn't try to disable all clocks that have a higher usecount. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal commit 5af6a65e8b5e42c9d1dd4f4df4a2f7d253134ba7 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:49 2011 +0000 OMAP2420: hwmod data: add DSS DISPC RFBI VENC Hwmod needs database of all IPs in a system. This patch generates the hwmod database for OMAP2420 Display Sub System,. Since DSS is also considered as an IP as DISPC, RFBI, name it as dss_core. Acked-by: Benoit Cousson Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy commit 7b1e2c0b9fa7ec9df0b1e01184cd50835c01a18f Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:50 2011 +0000 OMAP2430: hwmod data: add DSS DISPC RFBI VENC Hwmod needs database of all IPs in a system. This patch generates the hwmod database for OMAP2430 Display Sub System. Since DSS is also considered as an IP as DISPC, RFBI, name it as dss_core. Acked-by: Benoit Cousson Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy commit f6f4f5176ae19ce0695150f3ecbd1964f4c1aa0f Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:51 2011 +0000 OMAP3: hwmod data: add DSS DISPC RFBI DSI VENC Hwmod needs database of all IPs in a system. This patch generates the hwmod database for Display Sub System applicable for OMAP3430 and OMAP36xx. DSS is also considered as an IP as DISPC, RFBI and named as dss_core. For all the IP modules in DSS, same clock is needed for enabling. Hwmod sees DSS IPs as independent IPs, so same clock has to be repeated for .main_clk in each IP. This patch defines separate hwmod databases for OMAP3430ES1 and (OMAP3430ES2 and OMAP36xx) as OMAP3430ES1 does not have IDLEST bit to poll on for dss IP, and also the firewall regions are different between 3430es1 and later. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy commit 82ad35375d05b6a95ceacc23f4c30874168531af Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:52 2011 +0000 OMAP2,3 DSS2 Change driver name to omap_display Change the driver name from omapdss to omap_display as the driver takes care of the display devices ie number of panels, type of panels available in the platform. Change the device name in the board files and 2420,2430,3xxx clock files from omapdss to omap_display to match the driver name. Signed-off-by: Sumit Semwal Acked-by: Paul Walmsley for: The clkdev changes in clock2420_data.c, clock2430_data.c, clock3xxx_data.c Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy commit d977ab3f785a52f6d5f5b4ebd1744254d90c4ec9 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:53 2011 +0000 OMAP2,3 DSS2 Use Regulator init with driver name Use driver name in regulator inits needed for display instead of using device structure name. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit fa90158ff29ca0094de87991dfb9dde17d5de4d1 Author: Sumit Semwal Date: Mon Jan 24 06:21:54 2011 +0000 OMAP2, 3: DSS2: Create new file display.c for central dss driver registration. A new file display.c is introduced for display driver init, which adds a function omap_display_init to do the DSS driver registration. This is the first step in moving away registration of DSS from board files into a common place. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 410f97f52e5895a74c5e9b75a2f44354d2b7f1cf Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:55 2011 +0000 OMAP2, 3: DSS2: board files: replace platform_device_register with omap_display_init() This patch updated board files to replace platform_device_register or platform_add_devices of DSS with omap_display_init(). This moves away registration of DSS from board files into a common place. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy commit 3364827a32b70337f882dc9c391dca807c43844f Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:56 2011 +0000 OMAP2,3: DSS2: Build omap_device for each DSS HWIP Looks up the hwmod database for each of the given DSS HW IP and builds omap_device which inturn does the platform device register for each of DSS HW IP Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 4c1c0794ea2b89b44e234c5dd0d576c12a6f904a Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:57 2011 +0000 OMAP2, 3: DSS2: DSS: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver of DSS is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. DSS platform driver is registered from inside omap_dss_probe, in the order desired. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit c5f162149d4ad69ec9d4897e6b2326e3546776fa Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:58 2011 +0000 OMAP2, 3: DSS2: Move clocks from core driver to dss driver All clock management is moved to dss platform driver. clk_get/put APIs use dss device instead of core platform device. Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So the device name is changed from omap_display to omap_dss in 2420, 2430, 3xxx clock database files. Now the core driver "omap_display" only takes care of panel registration with the custom bus. core driver also uses the clk_enable() / clk_disable() APIs exposed by DSS for clock management. DSS driver would do clock management of clocks needed by DISPC, RFBI, DSI, VENC TODO: The clock content would be adapted to omap_hwmod in a seperate series. Acked-by: Paul Walmsley Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 54cb773176c5b5acb15f0b0368f19a5598d5e34d Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:59 2011 +0000 OMAP2, 3: DSS2: RFBI: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for RFBI is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. RFBI platform driver is registered from inside omap_dss_probe, in the order desired. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit dc5475a162913179f5865e0d9bfc8a688c41d0da Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:00 2011 +0000 OMAP2, 3: DSS2: DISPC: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for DISPC is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. DISPC platform driver is registered from inside omap_dss_probe, in the order desired. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 4589bb26147fa52a46d53c6b9abbaa5f72cf9d36 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:01 2011 +0000 OMAP2, 3: DSS2: VENC: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for VENC is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. Also, venc_vdda_dac reading is moved to venc.c. VENC platform driver is registered from inside omap_dss_probe, in the order desired. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit e0ca4765a1a80f1a9e9e0791c4ee86294d71ada4 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:02 2011 +0000 OMAP2, 3: DSS2: DSI: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for DSI is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. Also, vdds_dsi regulator handling is copied to dsi.c, since vdds_dsi regulator is needed by dpi_init() too. Board files are updated accordingly to add 2 instances of vdds_dsi regulator. DSI platform driver is registered from inside omap_dss_probe, in the order desired. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 418bc3437c295e2fe4405ba34ff769be6b21885f Author: Sumit Semwal Date: Mon Jan 24 06:22:03 2011 +0000 OMAP2,3: DSS2: replace printk with dev_dbg in init This patch replaces printk's in the init/probe functions to dev_dbg for boot time optimization. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal commit 1b364c7b372b309643e3e5824b7acda5b69705aa Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:04 2011 +0000 OMAP2,3: DSS2: Use platform device to get baseaddr DSS, DISPC, DSI, RFBI, VENC baseaddr can be obtained from platform_get_resource(). This API in turn picks the right silicon baseaddr from the hwmod database. So hardcoding of base addr could be removed. Reviewed-by: Paul Walmsley Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy commit 5c1851ccf9f6fc40e0faace8ad92e6be01333e86 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:05 2011 +0000 OMAP2,3: DSS2: Get DSS IRQ from platform device DSS IRQ number can be obtained from platform_get_irq(). This API in turn picks the right IRQ number belonging to HW IP from the hwmod database. So hardcoding of IRQ number could be removed. Reviewed-by: Paul Walmsley Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 21a5f31faeb86326a22722f4d44d77307dc61ad1 Author: Sumit Semwal Date: Mon Jan 31 16:27:43 2011 +0000 OMAP2PLUS: clocks: Align DSS clock names and roles Currently, clock database has tuples for DSS2. Because of this, the clock names are different across different OMAP platforms. This patch aligns the DSS2 clock names and roles across OMAP 2420, 2430, 3xxx, 44xx platforms in the clock databases, hwmod databases for opt-clocks, and DSS clock handling. This ensures that clk_get/put/enable/disable APIs in DSS can use uniform role names. Signed-off-by: Sumit Semwal commit 689939d96303b9f0125362e32e9bb30e4c9f9768 Author: Archit Taneja Date: Mon Jan 31 16:27:44 2011 +0000 OMAP2PLUS: DSS2: Generalize naming of PRCM related clock enums in DSS driver enum dss_clock structure is replaced with generic names that could be used across OMAP2420, 2430, 3xxx, 44xx platforms. Signed-off-by: Sumit Semwal Signed-off-by: Archit Taneja commit 495727f151ac594e8aa671090bb013b5ea8fcb97 Author: Archit Taneja Date: Mon Jan 31 16:27:45 2011 +0000 OMAP2PLUS: DSS2: Generalize external clock names in struct dss of dss.c The dss struct in dss.c has omap2/3 specific clock names. Making them generic, to increase readability and extendability. Signed-off-by: Sumit Semwal Signed-off-by: Archit Taneja commit d093d8f2a33e2424c70148af24794f16f4cb17b2 Author: Sumit Semwal Date: Mon Jan 31 16:27:46 2011 +0000 OMAP4: DSS2: clocks: Add ick as dummy clock DSS code uses ick as one of the clocks in clk_get/clk_put. OMAP4 clock database doesn't have ick for DSS, so adding ick as dummy clock. This is needed for backward compatibility with OMAP2/3. Once pm_runtime* APIs get introduced in DSS, this will be revisited. Signed-off-by: Sumit Semwal commit 4dfc0be04ba898f1665a3880ecd038c6d7d0f0af Author: Mayuresh Janorkar Date: Thu Jan 27 11:17:02 2011 +0000 OMAP2PLUS: DSS2: Add OMAP4 Kconfig support Enable DSS2 and OMAPFB for OMAP4 in Kconfig Signed-off-by: Mayuresh Janorkar commit 19863f9c25eced95a191424c737dd2ee367b734b Author: Benoit Cousson Date: Thu Jan 27 11:17:03 2011 +0000 OMAP4: hwmod data: add DSS DISPC DSI1,2 RFBI HDMI VENC Add dss, dispc, dsi1, dsi2, hdmi, rfbi and venc hwmods. In OMAP4 there are severals IPs that can be reached by differents interconnect paths depending of the access initiator (MPU vs. SDMA). In the case of the DSS, both L3 direct path and L4 CFG path can be used to access all the DSS IPs. The two ocp_ip already exists to support the two address spaces. +------------+-- L3_MAIN --+ MPU IP | | +-- L4_CFG --+ L3 main address range is specified first, since it is used by default. dss is also considered as an IP as dispc, rfbi, and named as dss_core. Signed-off-by: Benoit Cousson Signed-off-by: Mayuresh Janorkar Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal commit 039c353b81026d1d03784f39a7e2d45bc6bc6752 Author: Mayuresh Janorkar Date: Thu Jan 27 11:17:04 2011 +0000 OMAP4: DSS2: Add hwmod device names for OMAP4. Add hwmod device names for OMAP4; this enables device build for omap4 dss hwmod IPs. Signed-off-by: Sumit Semwal Signed-off-by: Mayuresh Janorkar commit 7d840c441d5c7ead2e81f9eee0d9be8fd00ed262 Author: archit taneja Date: Wed Feb 2 08:56:30 2011 +0000 OMAP: DSS2: Common IRQ handler for all OMAPs OMAP2 has an irq line dedicated for DISPC interrupts, there is no DSI on omap2. OMAP3 has a common irq line for DISPC and DSI interrupts. OMAP4 has seperate irq lines for DISPC and DSI Interrupts. Use dss_features to have a common DSS irq handler for all OMAP revisions. Also, use a member of the global dss structure to store the irq number as it is used in 2 functions. Signed-off-by: Archit Taneja commit 3f71fdbd532463b780dcfa8a4a05e42bf6f54a22 Author: Raghuveer Murthy Date: Thu Feb 3 13:56:56 2011 +0000 OMAP: DSS2: Add dss_feature for variable DPLL fclk This patch adds dss_feature for OMAP chips to distinguish between those having a variable DPLL_PER functional clock (fclk). Additionally, a feature for distiguishing the number of available dividers, 16 or 32, for these fclk is added. Signed-off-by: Archit Taneja Signed-off-by: Raghuveer Murthy commit c7ddeb0991f56c8d99a18c707df49f425b394b5c Author: Raghuveer Murthy Date: Thu Feb 3 13:56:57 2011 +0000 OMAP: DSS: Renaming the dpll clk pointer in struct dss The dss clk pointer dpll4_m4_ck is renamed to dpll_per_mx_ck, to be generic for OMAP3xxx and OMAP44xx platforms. Variable and function names containing dpll4/ dpll4_m4 are also renamed. Signed-off-by: Raghuveer Murthy commit a9418432d91cb2c642cc9365cb2b31141418fcfe Author: Raghuveer Murthy Date: Thu Feb 3 13:56:58 2011 +0000 OMAP: DSS2: Using dss_features to clean cpu checks for clocks dss_features are used to substitute cpu_is_xxxx() checks for DPLL clock source Signed-off-by: Raghuveer Murthy commit feecbd6a11502e039cc25dce9595ee036982be40 Author: Raghuveer Murthy Date: Thu Feb 3 13:56:59 2011 +0000 OMAP: DSS2: Get OMAP4 DPLL fclk for DPI interface DSS DPLL fclk pointer is set, to configure pixel clock for DPI interface. Signed-off-by: Raghuveer Murthy commit b2140623d3557a0943ba2dded30b88ba3fbe6f9d Author: Raghuveer Murthy Date: Thu Feb 3 14:09:18 2011 +0000 OMAP: DSS2: Adding dss_features for independent core clk divider In OMAP3xxx DISPC_DIVISOR register has a logical clock divisor (lcd_div) field. The lcd_div is common, for deciding the DISPC core functional clock frequency, and the final pixel clock frequency for LCD display. In OMAP4, there are 2 LCD channels, hence two divisor registers, DISPC_DIVISOR1 and DISPC_DIVISOR2. Also, there is a third register DISPC_DIVISOR. The DISPC_DIVISOR in OMAP4 is used to configure lcd_div exclusively for core functional clock configuration. For pixel clock configuration of primary and secondary LCDs, lcd_div of DISPC_DIVISOR1 and DISPC_DIVISOR2 are used respectively Signed-off-by: Archit Taneja Signed-off-by: Raghuveer Murthy commit 607c30b2344f2981aaaa89965c154bb6621e1079 Author: Raghuveer Murthy Date: Thu Feb 3 14:09:19 2011 +0000 OMAP: DSS2: Renaming register macro DISPC_DIVISOR(ch) Renamed DISPC_DIVISOR(ch) to DISPC_DIVISORo(ch), to facilitate introduction of DISPC_DIVISOR register, which is specific for OMAP4. OMAP4 has 3 registers DISPC_DIVISOR, DISPC_DIVISOR1 and DISPC_DIVISOR2. Also updated, all the usages of DISPC_DIVISOR(ch) to DISPC_DIVISORo(ch). OMAP4 TRM uses DISPC_DIVISORo generically to refer to DISPC_DIVISOR1 and DISPC_DIVISOR2 Signed-off-by: Raghuveer Murthy commit ec502e54b025ce7fc7b5c9e1105a5e49d4d346a7 Author: Raghuveer Murthy Date: Thu Feb 3 14:09:20 2011 +0000 OMAP: DSS2: Adding macro for DISPC_DIVISOR register Added macro for DISPC_DIVISOR. This is different from DISPC_DIVISOR1 and DISPC_DIVISOR2. OMAP4 supports all the above 3 registers. DISPC_DIVISOR1 and DISPC_DIVISOR2 registers are accessed through DISPC_DIVISORo(ch) macro Signed-off-by: Raghuveer Murthy commit 88ee092caec2503b8f4e30d68d1e505060f92a46 Author: Raghuveer Murthy Date: Thu Feb 3 14:09:21 2011 +0000 OMAP4: DSS2: Using dss_features to set independent core clock divider Using dss_features to select independent core clock divider and setting it. Added the register used, to DISPC context save and restore group ----------------------------------------------------------------------- In OMAP4, the minimum DISPC_CORE_CLK required can be expressed as: DISPC_CORE_CLK >= max(PCLK1*HSCALE1, PCLK2*HSCALE2, ...) Where PCLKi is the pixel clock generated by MANAGERi and HSCALEi is the maximum horizontal downscaling done through MANAGERi Based on the usecase, core clk can be increased or decreased at runtime to save power. Such mechanism are not yet implemented. Hence, we set the core clock divisor to 1, to support maximum range of resolutions ------------------------------------------------------------------------ Signed-off-by: Raghuveer Murthy commit 37a72bf6ee45442d216c668b93445c71123be480 Author: Raghuveer Murthy Date: Wed Feb 9 15:43:36 2011 +0530 OMAP4: PandaBoard: Adding DVI support Adding DVI support to OMAP4 PandaBoard. PandaBoard uses TFP410 DVI Framer chip http://focus.ti.com/lit/ds/symlink/tfp410.pdf The TFP410 gets its power enable and display data over GPIO lines muxed in from OMAP4430. PandaBoard supports other LCD displays through expansion connectors, following board rework. This will disable the DVI interface. However, the existing mux settings remain the same PandaBoard additionally supports display over HDMI interface. It is mutually exclusive to display over DVI. Hence the mux settings need to be configured seperately, as and when HDMI is enabled Also, I2C3 bus used for reading EDID data from DVI Monitors is registered here. Since the design is similar to BeagleBoard, the code for the same is taken from the kernel.org commit e3333f48dd5cb21 (omap: Adding beagle i2c eeprom driver to read EDID) Signed-off-by: Raghuveer Murthy commit 29ab3c77c6ec6b4147f9bed75c2f4ed6f73b1bb8 Author: Uwe Kleine-König Date: Wed Feb 9 21:40:07 2011 +0100 ARM: omap1/nokia770: mark some functions __init These are only called from omap_nokia770_init which is in .init.text, too. Signed-off-by: Uwe Kleine-König Signed-off-by: Tony Lindgren commit 2354f64a24924f87ed74f6ff1a38be4b05938c04 Author: Uwe Kleine-König Date: Wed Feb 9 21:40:08 2011 +0100 ARM: omap: move omap_get_config et al. to .init.text All callers of these functions live in .init.text, so these can go there, too. There they must not be exported anymore, this is no problem though, as all callers are always built-in. Signed-off-by: Uwe Kleine-König Signed-off-by: Tony Lindgren commit 119c4c2cce34a07c98f0166ad679135bb62621ec Author: Uwe Kleine-König Date: Wed Feb 9 21:40:09 2011 +0100 ARM: omap: move omap_board_config_kernel to .init.data This variable is only assigned in __init functions and never used later. Signed-off-by: Uwe Kleine-König Signed-off-by: Tony Lindgren commit a7e2a89abb8387a377f3bf6d483d0938b5735854 Author: Uwe Kleine-König Date: Wed Feb 9 21:40:10 2011 +0100 wip: fix section mismatches in omap1_defconfig after these changes omap1_defconfig and omap2plus_defconfig don't have any section mismatches any more, making it plausible that the patches earlier in this series are OK. Signed-off-by: Uwe Kleine-König Signed-off-by: Tony Lindgren commit d377eb0d95e4a7333afeb5ca4ba8554160480263 Author: Colin Cross Date: Fri Aug 6 14:29:14 2010 -0700 ARM: tegra: Centralize macros to define debug uart base Signed-off-by: Colin Cross commit ce1e32626951957729d5a1bbe3fa7e5d734df6c0 Author: Colin Cross Date: Mon May 24 17:07:46 2010 -0700 ARM: tegra: Add api to control internal powergating Signed-off-by: Colin Cross commit 538bd3cc196f55b02614b3b19c48656251464b74 Author: Colin Cross Date: Sun Oct 3 21:24:28 2010 -0700 ARM: tegra: irqs: Update irq list Fixes typo in INT_CPU1_PMU_INTR (original fix from Will Deacon) Adds board irqs Signed-off-by: Colin Cross commit 2ea67fd145397c1409ffc85b2210ccf7ef69a183 Author: Colin Cross Date: Mon Oct 4 08:49:49 2010 -0700 ARM: tegra: Add prototypes for subsystem suspend functions Signed-off-by: Colin Cross commit cea62c878dd8b73b67fb3e38f989e9d3241d5934 Author: Colin Cross Date: Mon Oct 4 11:49:26 2010 -0700 ARM: tegra: clock: Suspend fixes, and add new clocks Save and restore pll and osc state during suspend Add digital audio clocks Update clk dev associations Correct max clock frequencies Add pll_p as additional cpu clock state Add values to plld table Fix register offset for sdmmc4 clock Add blink timer to tegra2_clocks Signed-off-by: Colin Cross commit 3c3895b4bf58d709ad4709480ceb2bb006741972 Author: Gary King Date: Wed Aug 18 00:19:58 2010 -0700 ARM: tegra: pinmux: Add missing drive pingroups and fix suspend Adds missing drive pingroups, saves all drive pingroups in suspend, and restores the pinmux registers in the proper order. Signed-off-by: Gary King Signed-off-by: Colin Cross commit 093617851c5fa0d1fdf5ce378f20691b7adb35e4 Author: Colin Cross Date: Sun Nov 28 16:26:19 2010 -0800 ARM: tegra: timer: Add idle and suspend support to timers Implement read_persistent_clock by reading the Tegra RTC registers that stay running during suspend. Save and restore the timer configuration register in suspend. Signed-off-by: Colin Cross commit 3524b70ef3336a4f1351a489e83894b88106ab7c Author: Colin Cross Date: Sun Nov 28 22:23:55 2010 -0800 ARM: tegra: irq: Add support for suspend wake sources Signed-off-by: Colin Cross commit 26d902c0c6d6254f471663305d48b63f027ddb0c Author: Colin Cross Date: Wed Feb 9 22:17:17 2011 -0800 ARM: tegra: irq: Implement retrigger Signed-off-by: Colin Cross commit 9b1e1ea365b31584fef697a49d03536978d57b50 Author: Uwe Kleine-König Date: Thu Feb 10 11:07:27 2011 +0100 ARM: imx/eukrea_mbimx27: fix compile warnings about unused variables Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 0be9a196468ad4d03a3f5a1823e02aad5be47968 Author: Uwe Kleine-König Date: Thu Feb 10 10:56:21 2011 +0100 ARM: mx3/mx31_3ds: fix compiler warning without CONFIG_USB_ULPI This fixes: arch/arm/mach-mx3/mach-mx31_3ds.c:249: warning: 'mx31_3ds_host2_init' defined but not used Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 5836372e8a0ba5cc633f61bc0484ee20c86f4b36 Author: David Jander Date: Thu Feb 10 10:59:44 2011 +0100 ARM: imx+mx3: convert to mc13xxx MFD Signed-off-by: David Jander Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 3dac219615b88010601ee52e7b5fd1c32ef789ea Author: Uwe Kleine-König Date: Mon Feb 7 16:35:19 2011 +0100 ARM: imx: use .init_early to initialize cpu type and reset address This used to be done in .map_io which is supposed to only setup the memory mapping. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 97976e223be3091a91da103358c3c6cffff7db81 Author: Uwe Kleine-König Date: Mon Feb 7 16:35:20 2011 +0100 ARM: mx3: use .init_early to initialize cpu type, reset address and iomuxer This used to be done in .map_io which is supposed to only setup the memory mapping. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit ab130421269aec9bf83d8ef5b7ceda80e2619599 Author: Uwe Kleine-König Date: Mon Feb 7 16:35:21 2011 +0100 ARM: mx5: use .init_early to initialize cpu type, reset address and iomuxer This used to be done in .map_io which is supposed to only setup the memory mapping. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 23b120cdfae4f5c29da69de750d545bad719ead4 Author: Uwe Kleine-König Date: Mon Feb 7 16:35:22 2011 +0100 ARM: mxc91231: use .init_early to initialize cpu type This used to be done in .map_io which is supposed to only setup the memory mapping. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 917692f5f7ec63de3b093c825913d68e910db282 Author: Dave Martin Date: Wed Feb 9 12:06:59 2011 +0100 ARM: 6655/1: Correct WFE() in asm/spinlock.h for Thumb-2 The content for ALT_SMP() in the definition of WFE() expands to 6 bytes (IT cc ; WFEcc.W), which breaks the assumptions of the fixup code, leading to lockups when the affected code gets run. This patch works around the problem by explicitly using an IT + WFEcc.N pair. Signed-off-by: Dave Martin Acked-by: Will Deacon Signed-off-by: Russell King commit 537f5af0f63eea9cd06f477e1c0fe363d1656e08 Author: Gary King Date: Tue Aug 3 14:53:05 2010 -0700 ARM: tegra: iomap: Add missing devices Adds gart, hdmi, avp, host1x, and pwm controllers to mach/iomap.h Signed-off-by: Gary King Signed-off-by: Colin Cross commit 1eb2ecf1d5b3c29ce86f098de4ad21fa757d2160 Author: Colin Cross Date: Thu Aug 5 17:40:39 2010 -0700 ARM: tegra: cpufreq: Disable cpufreq during suspend On Tegra, calling clk_set_rate on the CPU clock may call into the regulator API. If the regulator driver that controls the CPU voltage rail has been suspended, this can lead to attempted communication with a hardware block that has already been turned off. Adds a SUSPEND_PREPARE notification hook to drop the frequency to the lowest possible during suspend. Also adds 216MHz (off of PLLP) as the lowest CPU frequency, which allows PLLX to be turned off. Signed-off-by: Colin Cross commit 699fe145d6e651a814423eeb6125381998f3c077 Author: Colin Cross Date: Mon Aug 23 18:37:25 2010 -0700 ARM: tegra: Allow overriding arch_reset Signed-off-by: Colin Cross commit 5789fee934278dd6f4c541db97de229bd4a76424 Author: Colin Cross Date: Wed Aug 18 00:19:12 2010 -0700 ARM: tegra: dma: Fix critical data corruption bugs Sometimes, due to high interrupt latency in the continuous mode of DMA transfer, the half buffer complete interrupt is handled after DMA has transferred the full buffer. When this is detected, stop DMA immediately and restart with the next buffer if the next buffer is ready. originally fixed by Victor(Weiguo) Pan In place of using the simple spin_lock()/spi_unlock() in the interrupt thread, using the spin_lock_irqsave() and spin_unlock_irqrestore(). The lock is shared between the normal process context and interrupt context. originally fixed by Laxman Dewangan (ldewangan@nvidia.com) The use of shadow registers caused memory corruption at physical address 0 because the enable bit was not shadowed, and assuming it needed to be set would enable an unconfigured dma block. Most of the register accesses don't need to know the previous state of the registers, and the few places that do need to modify only a few bits in the registers are the same ones that were sometimes incorrectly setting the enable bit. This patch convert tegra_dma_update_hardware to set the entire register, and the other users to read-modify-write, and drops the shadow registers completely. Also fixes missing locking in tegra_dma_allocate_channel Signed-off-by: Colin Cross commit f2b6133ffc05cdfd12ac41cda5eb5d8e55990365 Author: Olof Johansson Date: Wed Jan 5 14:03:12 2011 -0600 ARM: tegra: add tegra_defconfig Adding one single defconfig for the tegra family of boards, to over time cover the superset of supported platform and drivers. Signed-off-by: Olof Johansson Signed-off-by: Colin Cross commit 535371c3fba22b414dbbe25b93fbddbd471c772a Author: Colin Cross Date: Sat Jan 22 00:36:14 2011 -0800 ARM: tegra: Use writel_relaxed in tegra_init_cache Signed-off-by: Colin Cross commit cca414b263d5544f6bb4bff3cd3d3130def2b530 Author: Mike Rapoport Date: Mon Feb 7 10:10:53 2011 +0200 ARM: tegra: add TrimSlice board Add basic support for CompuLab TrimSlice platform Signed-off-by: Mike Rapoport Signed-off-by: Colin Cross commit cb07625d1f84fb48e6849cb530762ffcc6f8e458 Author: Sascha Hauer Date: Mon Jan 3 10:33:01 2011 +0100 ARM i.MX ehci: factor out soc specific functions Currently we have a mxc_initialize_usb_hw which is called on every i.MX SoC. This function dispatches the different SoC types, which is quite ugly. This patch moves the SoC specific USB initialization to their correspondive mach directories. Signed-off-by: Sascha Hauer commit 4bd597b633ae630e09d58957bd99870eac35fcb4 Author: Sascha Hauer Date: Mon Jan 3 11:30:28 2011 +0100 ARM i.MX ehci: do ehci init in board specific functions The mxc-ehci driver calls SoC specific phy initialization right after calling board specific initialization. To offer greater flexibility for boards to setup the phy and to get rid of some unnecessary flags in platform data this patch lets the boards call the SoC specific phy initialization and remove it from the driver. Signed-off-by: Sascha Hauer commit 292ec42af7c6361435fe9df50cd59ec76f6741c6 Author: Russell King Date: Fri Feb 4 10:36:39 2011 +0000 ARM: pm: add function to set WFI low-power mode for SMP CPUs Add a function to set the SCU low-power mode for SMP CPUs. This centralizes this functionality rather than having to expose the SCU register definitions to each platform. Signed-off-by: Russell King commit e134fb2b40ca7e2d96ba460b0c844c6a9fa489c3 Author: Uwe Kleine-König Date: Fri Feb 11 10:23:19 2011 +0100 ARM: mx3+mx5: rename mxc_board_init to ${machine}_init mxc_board_init is too generic to be useful. Additionally change some mxc_timer to ${machine}_timer, too. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit a0c859c593827c0ff488e05909e9901ecd10159f Author: Uwe Kleine-König Date: Fri Feb 11 10:21:08 2011 +0100 ARM: mx3: remove some useless comments Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 4e43d9fad1c0984e167ab14bd8148289acd61b9c Author: Uwe Kleine-König Date: Fri Feb 11 10:21:09 2011 +0100 ARM: mx3/mx31ads: fix comments of irq callbacks The arguments to these callbacks were changed in e981a30 (ARM: mx3: irq_data conversion.) but the comments were not adapted. Cc: Lennert Buytenhek Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 124c13b9a34267bfae9c1bb0bdf4a8a6c1cc1df1 Author: Julien Boibessot Date: Fri Feb 11 15:15:30 2011 +0100 i.MX51 iomux: Fixes MX51_PAD_UART2_TXD__UART2_TXD & MX51_PAD_USBH1_DATA2__UART2_TXD declarations Fixes 2 small regressions of recent iomux changes: - current MX51_PAD_UART2_TXD__UART2_TXD declaration overwrites IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT register (0x09ec) and prevent UART2 Rx from working properly. (Tested on my custom i.MX51 board where UART2 is used as console) - current MX51_PAD_USBH1_DATA2__UART2_TXD declaration also has the same problem. (Not tested) Signed-off-by: Julien Boibessot Signed-off-by: Sascha Hauer commit 753790e713d80b50b867fa1ed32ec0eb5e82ae8e Author: Russell King Date: Sun Feb 6 15:32:24 2011 +0000 ARM: move cache/processor/fault glue to separate include files This allows the cache/processor/fault glue to be more easily used from assembler code. Tested on Assabet and Tegra 2. Tested-by: Colin Cross Signed-off-by: Russell King commit f506be71008f3866e0f13849c3add80f4a781245 Author: Rob Herring Date: Sat Feb 12 15:58:25 2011 +0100 ARM: 6662/1: amba: make amba_bustype non-static Export amba_bustype struct so it can be used for things like registering bus notifiers. Signed-off-by: Rob Herring Signed-off-by: Russell King commit f2110f5153b0908b05cdb82373debcc8452bc577 Author: Nicolas Pitre Date: Sat Feb 12 22:25:27 2011 +0100 ARM: 6663/1: make Thumb2 kernel entry point more similar to the ARM one Some installers would binary patch the kernel zImage to replace the first few nops with custom instructions. This breaks the Thumb2 kernel as the mode switch is right at the beginning. Let's move it towards the end of the nop sequence instead. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 984fb6a481d17329a6a59ffdd61570b3a5206368 Author: Russell King Date: Mon Feb 14 15:55:45 2011 +0000 ARM: move L1_CACHE_SHIFT_6 to mm/Kconfig Move L1_CACHE_SHIFT related options together, rather than spreading them across two separate Kconfig files. Signed-off-by: Russell King commit 410f14837a92177242a403c20d0a0906fe357019 Author: Catalin Marinas Date: Mon Feb 14 12:58:04 2011 +0100 ARM: 6667/1: Fix early_pte_alloc() assumption about the Linux PTE With LPAE we no longer have software bits in a separate Linux PTE and the early_pte_alloc() function should pass PTE_HWTABLE_OFF + PTE_HWTABLE_SIZE to early_alloc() to avoid allocating extra memory. Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 24f6173c44a3f921f4fc4b8afc1e3980cbba6528 Author: Stepan Moskovchenko Date: Fri Feb 11 12:28:16 2011 -0800 msm: iommu: Create a Kconfig item for the IOMMU driver Break the IOMMU driver out as a Kconfig item. Initially it was decided to always build this in for 8x60, but this driver is not strictly necessary and should be optionally selectable. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit 69e213637538e749f6d22d2f426bcafa39eb5261 Author: Stepan Moskovchenko Date: Fri Feb 11 12:28:17 2011 -0800 msm: iommu: Generalize platform data for multiple targets Make the IOMMU platform data target-independent in preparation for adding MSM8960 IOMMU support. The IOMMU configuration on MSM8x60 and MSM8960 is identical and the same platform data can be used for both. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit 6499f0a8b3f44141431df79923fb8f1d8017e139 Author: Stepan Moskovchenko Date: Fri Feb 11 12:28:18 2011 -0800 msm: iommu: Enable IOMMU support for MSM8960 Allow IOMMU to be selected for MSM8960 now that the platform data has been generalized. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit 37cd4fef6ebfa76acc6ef6de911123739098cff4 Author: Kishon Vijay Abraham I Date: Fri Feb 4 09:15:09 2011 +0000 omap: McBSP: Remove unused audio macros in mcbsp.h Some macros defined in mcbsp.h related to audio, which are never being used is removed. Signed-off-by: Kishon Vijay Abraham I Reviewed-by: Charulatha V Cc: Jarkko Nikula Acked-by: Jarkko Nikula Acked-by: Peter Ujfalusi Acked-by: G, Manjunath Kondaiah Signed-off-by: Tony Lindgren commit 3dc3bad6f1b316d79d9d1d596a590b5097cb3dc4 Author: Russell King - ARM Linux Date: Mon Feb 14 15:40:20 2011 -0800 ARM: OMAP2: use early init hook Move non-mapping and non-irq initialization code out of .map_io and .init_irq respectively into the new init_early hook. Signed-off-by: Russell King Signed-off-by: Tony Lindgren commit 44dc046e93eb98d41048954f700b1927f7e288ed Author: Tony Lindgren Date: Mon Feb 14 15:40:20 2011 -0800 omap2+: Make omap_hwmod_late_init into core_initcall Otherwise things will fail with early_init changes. Signed-off-by: Tony Lindgren commit 3e16f92536334ccb464ed88cf4d8cc0dd43da106 Author: Tony Lindgren Date: Mon Feb 14 15:40:20 2011 -0800 omap2+: Fix omap_serial_early_init to work with init_early hook The new init_early hook happens at the end of setup_arch, which is too early for kzalloc. However, there's no need to call omap_serial_early_init that early, so fix this by setting it up as a core_initcall. Signed-off-by: Tony Lindgren Tested-by: Kevin Hilman commit e7c7d760859e78a4f47e7be647df683491e420fb Author: Tony Lindgren Date: Mon Feb 14 15:40:21 2011 -0800 omap: hwmod: Populate _mpu_rt_va later on in omap_hwmod_late_init Otherwise ioremap can fail with early_init patch unless we have a static mapping for everything. Signed-off-by: Tony Lindgren commit 29a38193c15bd72ba96c57a805443ef46ea6a6ac Author: Will Deacon Date: Tue Feb 15 14:31:37 2011 +0100 ARM: 6674/1: LPAE: use long long format when printing physical addresses and ptes For the Kernel to support 2 level and 3 level page tables, physical addresses (and also page table entries) need to be 32 or 64-bits depending upon the configuration. This patch uses the %08llx conversion specifier for physical addresses and page table entries, ensuring that they are cast to (long long) so that common code can be used regardless of the datatype widths. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit ad6b9c9d78b9beebef02ac7f566a08db7be3c320 Author: Will Deacon Date: Tue Feb 15 12:41:49 2011 +0100 ARM: 6671/1: LPAE: use phys_addr_t instead of unsigned long in outercache functions The unsigned long datatype is not sufficient for mapping physical addresses >= 4GB. This patch ensures that the phys_addr_t datatype is used to represent physical addresses when passed to the outer cache functions. Note that the definitions in struct outer_cache_fns remain as unsigned long because there are currently no outer cache implementations supporting physical addresses wider than 32-bits. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit cae6292b653f5e3308bf2787a54b7dcd2cc7e2b3 Author: Will Deacon Date: Tue Feb 15 12:42:57 2011 +0100 ARM: 6672/1: LPAE: use phys_addr_t instead of unsigned long in mapping functions The unsigned long datatype is not sufficient for mapping physical addresses >= 4GB. This patch ensures that the phys_addr_t datatype is used to represent physical addresses when converting from a PFN. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit 6fc31d54443bdc25a8166be15e3920a7e39d195d Author: Russell King Date: Wed Jan 12 17:50:42 2011 +0000 ARM: Defer lookup of machine_type to setup.c Since the debug macros no longer depend on the machine type information, the machine type lookup can be deferred to setup_arch() in setup.c which simplifies the code somewhat. We also move the __error_a functionality into setup.c for displaying a message when a bad machine ID is passed to the kernel via the LL debug code. We also log this into the kernel ring buffer which makes it possible to retrieve the message via a debugger. Original idea from Grant Likely. Acked-by: Grant Likely Tested-by: Tony Lindgren Signed-off-by: Russell King commit 18fd7315cc475ff53c60e5e7b3bad126c0163527 Author: Jesper Juhl Date: Mon Feb 14 23:54:00 2011 +0100 Freescale STMP37XX/STMP378X Application UART driver: remove duplicate linux/device.h include Do not include linux/device.h twice in drivers/tty/serial/mxs-auart.c . Once is enough. Signed-off-by: Jesper Juhl Signed-off-by: Sascha Hauer commit 4bd7be22f4b25fc87e236a29da3a625621699074 Author: Hemant Pedanekar Date: Wed Feb 16 08:31:39 2011 -0800 TI816X: Update common omap platform files This patch updates the common platform files with TI816X support. The approach taken in this patch is to add TI816X as part of OMAP3 variant where the cpu class is considered as OMAP34XX and the type is TI816X. This means, both cpu_is_omap34xx() and cpu_is_ti816x() checks return success on TI816X. A kernel config option CONFIG_SOC_OMAPTI816X is added under OMAP3 to include support for TI816X build. Signed-off-by: Hemant Pedanekar Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 01001712c96f82e6317b1e09729d8fc4bcc66957 Author: Hemant Pedanekar Date: Wed Feb 16 08:31:39 2011 -0800 TI816X: Update common OMAP machine specific sources This patch updates the common machine specific source files with support for TI816X. Signed-off-by: Hemant Pedanekar Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 2c87fb2e644d9141c8723a44a320bb5850790b67 Author: Hemant Pedanekar Date: Tue Feb 15 23:06:08 2011 +0530 TI816X: Create board support and enable build for TI816X EVM This patch adds minimal support and build configuration for TI816X EVM. Signed-off-by: Hemant Pedanekar Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 4d887a250d6294d4e17851da46d6eab4de83c91e Author: Hemant Pedanekar Date: Tue Feb 15 23:06:17 2011 +0530 TI816X: Add low level debug support This patch adds support for low level debugging on TI816X boards. Currently the support for UART3 console on TI816X EVM is added. Signed-off-by: Hemant Pedanekar Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit e811d3272dbed154b8c56a37392bb1d23c9bd71e Author: Tony Lindgren Date: Wed Feb 16 08:45:46 2011 -0800 TI816X: Update to use init_early Update to use init_early Signed-off-by: Tony Lindgren commit 405505c2b7b9f8a2d2b90e9e7fb4590b059e15dd Author: Felipe Balbi Date: Sun Jan 16 13:22:03 2011 +0200 arm: omap2: clksel: fix compile warningOrganization: Texas Instruments\n Fix the following compile warning: arch/arm/mach-omap2/clkt_clksel.c: In function '_get_div_and_fieldval': arch/arm/mach-omap2/clkt_clksel.c:100:35: warning: 'max_clkr' may be used uninitialized in this function Acked-by: Paul Walmsley Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren commit d11c217f1a8f9ea2b2c89b8a533396482a36e8c0 Author: Benoit Cousson Date: Wed Feb 2 12:04:36 2011 +0000 OMAP4: hwmod data: Add hwspinlock Add hwspinlock hwmod data for OMAP4 chip Signed-off-by: Cousson, Benoit Signed-off-by: Hari Kanigeri Signed-off-by: Ohad Ben-Cohen Cc: Paul Walmsley [b-cousson@ti.com: Move the data to keep the original order and add missing SIDLE_SMART_WKUP flag] commit 08ec1130d4652ba1cab5ce0a423bcb2229c7a60b Author: Shawn Guo Date: Thu Feb 17 14:28:49 2011 +0800 ARM: mx23: rename mx23 auart irq definition to align with mx28 i.MX23 Reference Manual names auart irq differently from i.MX28. This patch is to align the naming with mx28, so that some device registration codes can be shared. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit edca314f27c984f353a5129253d8d5241b82c517 Author: Shawn Guo Date: Thu Feb 17 14:28:50 2011 +0800 ARM: mx23: dynamically allocate mx23 auart device i.MX23 Reference Manaul starts auart index from 1 than 0. Changing the index to start from 0 requires corresponding changes on base address, irq, and iomux definitions, and will probably confuse people who reads codes and hardware documents together. This patch introduced the field 'hwid' to distinguish the driver id and controller id. These two ids are different on mx23 while identical on mx28. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 2e8acbc28314ce1a0f9cc65a7e76bd24595a6bad Author: Shawn Guo Date: Thu Feb 17 14:28:51 2011 +0800 ARM: mxs/mx23evk: add auart device Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 15808182ae8044a064286445bcecaee6105cd718 Author: Shawn Guo Date: Thu Feb 17 14:28:52 2011 +0800 ARM: mxs/mx28evk: add auart devices Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 0e25a5c98067286fc727cf142fc0dadf95790921 Author: Rabin Vincent Date: Tue Feb 8 09:24:36 2011 +0530 ARM: perf_event: allow platform-specific interrupt handler Allow a platform-specific IRQ handler to be specified via platform data. This will be used to implement the single-irq workaround for the DB8500. Signed-off-by: Rabin Vincent Acked-by: Lee Jones Acked-by: Will Deacon Signed-off-by: Linus Walleij commit aa90eb9d9d39d6e312b822cfa1512bb76e0e1df3 Author: Rabin Vincent Date: Tue Feb 8 09:24:37 2011 +0530 mach-ux500: DB8500 PMU support DB8500 has irqs from two cores ORed into one. Implement a workaround to handle this by bouncing the interrupt by setting the affinity to the other core when the interrupt appears to be spurious on the current core. Signed-off-by: Rabin Vincent Acked-by: Lee Jones Signed-off-by: Linus Walleij commit fe5a4901c20c09b4380b7d4a0197efb6489c4ce8 Author: Hema HK Date: Wed Feb 16 17:34:40 2011 +0530 usb: musb: AM35x: moving internal phy functions out of usb_musb.c file Moved all the board specific internal PHY functions out of usb_musb.c file as this file is shared between the OMAP2+ and AM35xx platforms. There exists a file which has the functions specific to internal PHY used for OMAP4 platform. Moved all phy specific functions to this file and passing these functions through board data in the board file. Signed-off-by: Hema HK Cc: Paul Walmsley Cc: Tony Lindgren Signed-off-by: Felipe Balbi commit 2aae4221eebf926ad1058546e2cb81dae8f3e696 Author: Anand Gadiyar Date: Wed Feb 16 15:42:15 2011 +0530 arm: omap4: usb: explicitly configure MUSB pads Use the mux framework APIs to explicitly configure the MUSB pads. The MUSB controller in OMAP4 can use either the old ULPI interface, or the new internal PHY. Configure the pads accordingly. Signed-off-by: Anand Gadiyar Cc: Tony Lindgren Signed-off-by: Felipe Balbi commit 1dbea0f5e23b6c647db72fa4a048cb7140625e13 Author: Anand Gadiyar Date: Wed Feb 16 16:47:19 2011 +0530 arm: omap4: 4430sdp: drop ehci support Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board. Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY). Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default. So drop the EHCI support from the board files for the Blaze/SDP platforms. Signed-off-by: Anand Gadiyar Cc: Keshava Munegowda Cc: Tony Lindgren Signed-off-by: Felipe Balbi commit 44d02acf54114e4d5c905b6b1a6473a7d302312d Author: Hema HK Date: Thu Feb 17 12:07:17 2011 +0530 OMAP2430: hwmod data: Add USBOTG OMAP2430 hwmod data structures are populated with base address, L3 and L4 interface clocks, IRQs and sysconfig register details. As per OMAP USBOTG specification, need to configure the USBOTG to smart idle/standby or no idle/standby during data transfer and force idle/standby when not in use to support retention and off-mode. By setting HWMOD_SWSUP_SIDLE and HWMOD_SWSUP_MSTANDBY flags, framework will take care of configuring to no idle/standby when module is enabled and force idle/standby when suspended. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Kevin Hilman Cc: Cousson, Benoit Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 870ea2b8e750f40fe5681b902ce0d5445297e610 Author: Hema HK Date: Thu Feb 17 12:07:18 2011 +0530 OMAP3xxx: hwmod data: Add USBOTG OMAP3 hwmod data structures are populated for USBOTG with base address, L3 and L4 interface clocks, IRQs and sysconfig register details. This is applicable for OMAP3430 amd OMAP3630. As per OMAP USBOTG specification, need to configure the USBOTG to smart idle/standby or no idle/standby during data transfer and force idle/standby when not in use to support retention and offmode. By setting HWMOD_SWSUP_SIDLE and HWMOD_SWSUP_MSTANDBY flags, framework will take care of configuring to no idle/standby when module is enabled and force idle/standby when idled. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Kevin Hilman Cc: Cousson, Benoit Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 273ff8c3bc04cf358c131f49ee7a11efa7ec73d7 Author: Hema HK Date: Thu Feb 17 12:07:19 2011 +0530 AM35xx: hwmod data: Add USBOTG AM35xx hwmod data structures are populated for USBOTG with base address, L3 and L4 interface clocks and IRQ. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Kevin Hilman Cc: Cousson, Benoit Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 18a26892d62d2786c2b259ba4605ee10bba0ba13 Author: Hema HK Date: Thu Feb 17 12:07:21 2011 +0530 OMAP2+: musb: hwmod adaptation for musb registration Using omap_device_build API instead of platform_device_register for OMAP2430,OMAP3xxx, OMAP4430 and AM35x musb device registration. The device specific resources defined in centralized database will be used. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Kevin Hilman Cc: Cousson, Benoit Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 9bcbd7f0d577b3f6d5742188563457a083b8ae7f Author: Benoit Cousson Date: Wed Feb 2 17:52:13 2011 +0530 OMAP4: hwmod data: Add McSPI Update omap4 hwmod file with McSPI info. Signed-off-by: Benoit Cousson Signed-off-by: Charulatha V Signed-off-by: Govindraj.R Acked-by: Grant Likely Reviewed-by: Kevin Hilman commit 35d1a66a9cc03167ff5266e5fcb0dea639123d84 Author: Benoit Cousson Date: Fri Feb 11 11:17:14 2011 +0000 OMAP4: hwmod data: Add timer Add the data for the 11 timers IPs. OMAP4 contains two differents IP variants for the timers: - 8 x regular timer (3, 4, 5, 6, 7, 8, 9 & 11) - 3 x 1ms timer (1, 2 & 10) The regular timers registers programming model was changed due to the adaptation to the new IP interface. Unfortunately the 1ms version still use the previous programming model. The driver will have to take care of theses differences. Please note that the capability and the partitioning is also different depending of the instance. - timer 1 is inside the wakeup domain - timers 5, 6, 7 & 8 are inside in the ABE (audio backend) - timers 2, 3, 4, 9, 10 & 11 are inside the PER power domain The timer was previously named gptimerX or dmtimerX, it is now simply named timerX. Signed-off-by: Benoit Cousson Signed-off-by: Tarun Kanti DebBarma [b-cousson@ti.com: Fix alignement in class attribute, re-order flags and update the changelog] commit d63bd74fbb5fb2161d9cb90cd7a93a2c5db47c63 Author: Benoit Cousson Date: Thu Jan 27 11:17:03 2011 +0000 OMAP4: hwmod data: Add DSS, DISPC, DSI1&2, RFBI, HDMI and VENC Add dss, dispc, dsi1, dsi2, hdmi, rfbi and venc hwmods. In OMAP4 there are severals IPs that can be reached by differents interconnect paths depending of the access initiator (MPU vs. SDMA). In the case of the DSS, both L3 direct path and L4 CFG path can be used to access all the DSS IPs. The two ocp_ip already exists to support the two address spaces. +------------+-- L3_MAIN --+ MPU IP | | +-- L4_CFG --+ L3 main address range is specified first, since it is used by default. dss is also considered as an IP as dispc, rfbi, and named as dss_core. Signed-off-by: Benoit Cousson Signed-off-by: Mayuresh Janorkar Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal [b-cousson@ti.com: Re-organize structures to match file convention and remove irq entry from dss_hwmod] commit ec5df927a8f3d3eca9514c9a9ad6db830ae20acc Author: Benoit Cousson Date: Wed Feb 2 19:27:21 2011 +0000 OMAP4: hwmod data: Add mailbox Mailbox hwmod data for omap4. Signed-off-by: Benoit Cousson Signed-off-by: Omar Ramirez Luna [b-cousson@ti.com: Re-order the structures and remove the irq line name] commit 8ca476da04e452a01d984dd5b5333b3a562207a7 Author: Benoit Cousson Date: Tue Jan 25 22:01:00 2011 +0000 OMAP4: hwmod data: Add DMIC Add HWMOD entries for the OMAP DMIC. The HWMOD entires define the system resource requirements for the driver such as DMA addresses, channels, and IRQ's. Placing this information in the HWMOD database allows for more generic drivers to be written and having the specific implementation details defined in HWMOD. Signed-off-by: Benoit Cousson Signed-off-by: David Lambert [b-cousson@ti.com: Change the wrong hwmod name, add missing flag and re-order structures] commit 4ddff4932b31b8f21d1c57155ca5d4088693ce4b Author: Benoit Cousson Date: Mon Jan 31 14:50:30 2011 +0000 OMAP4: hwmod data: Add McBSP Add mcbsp data including a revision member in hwmod_class in order to provide mcbsp revision information in different omap. Signed-off-by: Benoit Cousson Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Charulatha V [b-cousson@ti.com: Remove the mcbsp4 memory name, re-order properly the structures] commit 407a6888f7362cb3dabe69ea6d9dcf3c750dc56a Author: Benoit Cousson Date: Tue Feb 15 22:39:48 2011 +0100 OMAP4: hwmod data: Add AESS, McPDM, bandgap, counter_32k, MMC, KBD, ISS & IPU Add more hwmod structures but keep them commented out for the moment until the driver adaptation to hwmod / omap_device is done. Signed-off-by: Benoit Cousson Cc: Paul Walmsley Cc: Kevin Hilman commit 5844c4ead25f53a1fa92a4a8f0e363f9b6b87aea Author: Benoit Cousson Date: Thu Feb 17 12:41:05 2011 +0000 OMAP4: hwmod data: Add USBOTG OMAP4 hwmod data structures are populated with base address, L3 and L4 interface clocks, IRQs and sysconfig register details. As per OMAP USBOTG specification, need to configure the USBOTG to smart idle/standby or no idle/standby during data transfer and force idle/standby when not in use to support retention and offmode. By setting HWMOD_SWSUP_SIDLE and HWMOD_SWSUP_MSTANDBY flags,framework will take care of configuring to no idle/standby when module is enabled and force idle/standby when idled. Signed-off-by: Cousson, Benoit Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Kevin Hilman Cc: Paul Walmsley Signed-off-by: Felipe Balbi [b-cousson@ti.com: Fix position, opt_clk, and author] commit bd9a4c7df256cee4e9f6a4b56baa3b89d63f0f1e Author: Ohad Ben-Cohen Date: Thu Feb 17 09:52:03 2011 -0800 drivers: hwspinlock: add framework Add a platform-independent hwspinlock framework. Hardware spinlock devices are needed, e.g., in order to access data that is shared between remote processors, that otherwise have no alternative mechanism to accomplish synchronization and mutual exclusion operations. Signed-off-by: Ohad Ben-Cohen Cc: Hari Kanigeri Cc: Benoit Cousson Cc: Kevin Hilman Cc: Grant Likely Cc: Paul Walmsley Cc: Russell King Acked-by: Arnd Bergmann Signed-off-by: Tony Lindgren commit 70ba4cc26b9f53859e863ec3b9a5f5fc0ce4d6a2 Author: Simon Que Date: Thu Feb 17 09:52:03 2011 -0800 drivers: hwspinlock: add OMAP implementation Add hwspinlock support for the OMAP4 Hardware Spinlock device. The Hardware Spinlock device on OMAP4 provides hardware assistance for synchronization between the multiple processors in the system (dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP). [ohad@wizery.com: adapt to hwspinlock framework, tidy up] Signed-off-by: Simon Que Signed-off-by: Hari Kanigeri Signed-off-by: Krishnamoorthy, Balaji T Signed-off-by: Ohad Ben-Cohen Cc: Benoit Cousson Cc: Kevin Hilman Cc: Grant Likely Cc: Arnd Bergmann Cc: Paul Walmsley Cc: Russell King Signed-off-by: Tony Lindgren commit 7bb412a64281c599dcf00af2eed61ea997b282c2 Author: Simon Que Date: Thu Feb 17 09:52:03 2011 -0800 omap: add hwspinlock device Build and register an hwspinlock platform device. Although only OMAP4 supports the hardware spinlock module (for now), it is still safe to run this initcall on all omaps, because hwmod lookup will simply fail on hwspinlock-less platforms. Signed-off-by: Simon Que Signed-off-by: Hari Kanigeri Signed-off-by: Ohad Ben-Cohen Cc: Benoit Cousson Cc: Kevin Hilman Cc: Paul Walmsley Signed-off-by: Tony Lindgren commit 617871deacea4e1a5713dd37564dc94a392d80c3 Author: Charulatha V Date: Thu Feb 17 09:53:09 2011 -0800 OMAP2420: hwmod data: Add McSPI Update the omap2420 hwmod data with the McSPI info. Add a device attribute structure which will be used for passing number of chipselects from hwmod data. Add revision macros to be passed from rev field from hwmod. Signed-off-by: Charulatha V Signed-off-by: Govindraj.R Acked-by: Grant Likely Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 7f904c78d65e5cff8d9e76567797a7a7fe2fd774 Author: Charulatha V Date: Thu Feb 17 09:53:10 2011 -0800 OMAP2430: hwmod data: Add McSPI Update the 2430 hwmod data file with McSPI info. Signed-off-by: Charulatha V Signed-off-by: Govindraj.R Acked-by: Grant Likely Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 0f616a4e17ea244f882056656964b792edde8364 Author: Charulatha V Date: Thu Feb 17 09:53:10 2011 -0800 OMAP3: hwmod data: Add McSPI Update omap3 hwmod data file with McSPI info. Signed-off-by: Charulatha V Signed-off-by: Govindraj.R Acked-by: Grant Likely Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 1a5d81905aec1536783fb6ab875f31910f449941 Author: Charulatha V Date: Wed Feb 2 17:52:14 2011 +0530 OMAP: devices: Modify McSPI device to adapt to hwmod framework Cleans up all base address definitions for omap_mcspi and adapts the device registration and driver to hwmod framework. Changes involves: 1) Removing all base address macro defines. 2) Using omap-device layer to register device and utilizing data from hwmod data file for base address, dma channel number, Irq_number, device attribute(number of chipselect). 3) Appending base address with pdata reg_offset for omap4 boards. For omap4 all regs used in driver deviate with reg_offset_macros defined with an value of 0x100. So pass this offset through pdata and append the same to base address retrieved from hwmod data file and we are not mapping *_HL_* regs which are not used in driver. Signed-off-by: Charulatha V Signed-off-by: Govindraj.R Acked-by: Grant Likely Reviewed-by: Partha Basak Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 1f1a4384b6500273020e48130f73601e4ba7d84b Author: Govindraj.R Date: Wed Feb 2 17:52:15 2011 +0530 OMAP: runtime: McSPI driver runtime conversion McSPI runtime conversion. Changes involves: 1) remove clock framework apis to use runtime framework apis. 2) context restore from runtime resume which is a callback for get_sync. 3) Remove SYSCONFIG(sysc) register handling (a) Remove context save and restore of sysc reg and remove soft reset done from sysc reg as this will be done with hwmod framework. (b) Also cleanup sysc reg bit macros. 4) Rename the omap2_mcspi_reset function to omap2_mcspi_master_setup function as with hwmod changes soft reset will be done in hwmod framework itself and use the return value from clock enable function to return for failure scenarios. Signed-off-by: Charulatha V Signed-off-by: Govindraj.R Acked-by: Grant Likely Reviewed-by: Partha Basak Reviewed-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 479b46b5599b1e610630d7332e168c1f9c4ee0b4 Author: Greg Kroah-Hartman Date: Thu Feb 17 09:54:16 2011 -0800 Revert "USB host: Move AMD PLL quirk to pci-quirks.c" This reverts commit b7d5b439b7a40dd0a0202fe1c118615a3fcc3b25. It conflicts with commit baab93afc2844b68d57b0dcca5e1d34c5d7cf411 "USB: EHCI: ASPM quirk of ISOC on AMD Hudson" and merging the two just doesn't work properly. Cc: Andiry Xu Cc: David Brownell Cc: Alex He Cc: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 7050f915c0c17a603a0a2ddf00e6edcc188789d3 Author: Santosh Shilimkar Date: Thu Feb 17 09:55:03 2011 -0800 omap2plus: omap4: Set NR_CPU to 2 instead of default 4 The omap2plus_defconfig picks default NR_CPU value as 4 which isn't correct for OMAP4430. Available CPUs are ony 2, so fix the same. Signed-off-by: Santosh Shilimkar Signed-off-by: Tony Lindgren commit b9b35ade88d5855de0ac3ebc3d66881f799114f9 Author: Santosh Shilimkar Date: Thu Feb 17 09:55:03 2011 -0800 omap4: Remove 'FIXME: omap44xx_sram_init not implemented' The omap44xx_sram_init() implements functionality to push some code on SRAM whenever the code can't be executed from external memory. The low power and DVFS code can be executed from external DDR itself thanks to OMAP4 memory controller hardware support. So on OMAP4, sram_push kind of functionality isn't needed. Hence remove the FIXME warning added for implementing sram push feature on OMAP4. Signed-off-by: Santosh Shilimkar Signed-off-by: Tony Lindgren commit ff085de758ebcb2309dd013fecb7cbb3cb6c7a43 Author: Jassi Brar Date: Sun Feb 6 17:39:17 2011 +0900 USB: Gadget: Composite: Debug interface comparison While checking valid interface number we should compare MAX_CONFIG_INTERFACES with the variable 'intf' (which holds the lower 8bits of w_index) rather than 'w_index' Signed-off-by: Jassi Brar Signed-off-by: Greg Kroah-Hartman commit 05c3eebd50ad831c462ec264f82a87654d0ee974 Author: Jassi Brar Date: Sun Feb 6 18:47:18 2011 +0900 USB: Gadget: Reorder driver name assignment Reorder the driver->name assignment so the 'iProduct' could be initialized as well if both 'name' and 'iProduct' come as NULL by default. Also, remove the misplaced 'extern' keyword. Signed-off-by: Jassi Brar Signed-off-by: Greg Kroah-Hartman commit 4f22ce7045c16e36d391fdfe331a397d55578493 Author: Davidlohr Bueso Date: Sun Feb 6 14:13:37 2011 -0300 USB: tools: Add a Makefile Build USB tools easier. Signed-off-by: Davidlohr Bueso Signed-off-by: Greg Kroah-Hartman commit c17f459c6ea5b569825445279fa21adb3cf3067f Author: Toshiharu Okada Date: Mon Feb 7 17:01:26 2011 +0900 usb: pch_udc: Fixed issue which does not work with g_ether This PCH_UDC driver does not work normally when "Ethernet gadget" is used. This patch fixed this issue. The following was modified. - The FIFO flush process. - The descriptor creation process. - The adjustment of DMA buffer align. Currently the PCH_UDC driver can work normally with "Ethernet gadget", "Serial gadget" or "File-backed Storage Gadget". Signed-off-by: Toshiharu Okada Signed-off-by: Greg Kroah-Hartman commit 16f08a08d8148945022eb7d5ebb89e6ee8029f91 Author: Fabian Godehardt Date: Mon Feb 7 12:53:05 2011 +0200 USB: s3c2410_udc: Add handling for S3C244X dual-packet mode This is a patch that seems to make the USB hangs on the S3C244X go away. At least a good amount of ping torture didn't make them come back so far. The issue is that, if there are several back-to-back packets, sometimes no interrupt is generated for one of them. This seems to be caused by the mysterious dual packet mode, which the USB hardware enters automatically if the endpoint size is half that of the FIFO. (On the 244X, this is the normal situation for bulk data endpoints.) There is also a timing factor in this. It seems that what happens is that the USB hardware automatically sends an acknowledgement if there is only one packet in the FIFO (the FIFO has space for two). If another packet arrives before the host has retrieved and acknowledged the previous one, no interrupt is generated for that second one. However, there may be an indication. There is one undocumented bit (none of the 244x manuals document it), OUT_CRS1_REG[1], that seems to be set suspiciously often when this condition occurs. There is also CLR_DATA_TOGGLE, OUT_CRS1_REG[7], which may have a function related to this. (The Samsung manual is rather terse on that, as usual.) This needs to be examined further. For now, the patch seems to do the trick. Signed-off-by: Vasily Khoruzhick Signed-off-by: Greg Kroah-Hartman commit 6b2e30c07f6c1514bb9946171770af61c305b86c Author: Dan Carpenter Date: Mon Feb 7 20:01:36 2011 +0300 usb: fusb300_udc: add more "ep%d" names We need FUSB300_MAX_NUM_EP (16) names otherwise the last 8 names get initialized to garbage values in fusb300_probe(). Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit 4f9e6c64d1fc4668f3153f456b41cf40b30c730f Author: Maksim Rayskiy Date: Tue Feb 8 10:41:42 2011 -0800 USB: Mark EHCI LPM functions as __maybe_unused ehci_lpm_set_da and ehci_lpm_check are EHCI 1.1 specific functions which are not used on many platforms but do generate annoying gcc warnings Signed-off-by: Maksim Rayskiy Signed-off-by: Greg Kroah-Hartman commit b14e840d04dba211fbdc930247e379085623eacd Author: Sebastian Andrzej Siewior Date: Tue Feb 8 21:07:40 2011 +0100 USB: isp1760: Implement solution for erratum 2 The document says: |2.1 Problem description | When at least two USB devices are simultaneously running, it is observed that | sometimes the INT corresponding to one of the USB devices stops occurring. This may | be observed sometimes with USB-to-serial or USB-to-network devices. | The problem is not noticed when only USB mass storage devices are running. |2.2 Implication | This issue is because of the clearing of the respective Done Map bit on reading the ATL | PTD Done Map register when an INT is generated by another PTD completion, but is not | found set on that read access. In this situation, the respective Done Map bit will remain | reset and no further INT will be asserted so the data transfer corresponding to that USB | device will stop. |2.3 Workaround | An SOF INT can be used instead of an ATL INT with polling on Done bits. A time-out can | be implemented and if a certain Done bit is never set, verification of the PTD completion | can be done by reading PTD contents (valid bit). | This is a proven workaround implemented in software. Russell King run into this with an USB-to-serial converter. This patch implements his suggestion to enable the high frequent SOF interrupt only at the time we have ATL packages queued. It goes even one step further and enables the SOF interrupt only if we have more than one ATL packet queued at the same time. Cc: # [2.6.35.x, 2.6.36.x, 2.6.37.x] Tested-by: Russell King Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Greg Kroah-Hartman commit 8ab10400a037a516cc846c338f879e5bd62497ce Author: Rahul Ruikar Date: Wed Feb 9 13:44:28 2011 +0100 usb: gadget: at91_udc: Fix error path In function at91udc_probe() call put_device() when device_register() fails. Signed-off-by: Rahul Ruikar Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Greg Kroah-Hartman commit c9c4558f7874676e31ea7a74caafcf09ebbc03ed Author: Oliver Neukum Date: Thu Feb 10 15:33:10 2011 +0100 usb_wwan: fix error in marking device busy This fixes two errors: - the device is busy if a message was recieved even if resubmission fails - the device is not busy if resubmission fails due to -EPERM Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 3d06bf152abcc3895a0f3afa21d762d84c9aecbc Author: Oliver Neukum Date: Thu Feb 10 15:33:17 2011 +0100 usb_wwan: fix runtime PM in error case An error in the write code path would permanently disable runtime PM in this driver Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 433508ae30f13c0bf6905e576c42899a8535f0bb Author: Oliver Neukum Date: Thu Feb 10 15:33:23 2011 +0100 usb_wwan: data consistency in error case As soon as the first error happens, the write must be stopped, lest we send mutilated messages. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 16871dcac74c63227aa92e0012f3004a648c2062 Author: Oliver Neukum Date: Thu Feb 10 15:33:29 2011 +0100 usb_wwan: error case of resume If an error happens during resumption. The remaining data has to be cleanly discarded and the pm counters have to be adjusted. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 9a91aedca2f4ef24344b7cd8f56570e620fbe4d5 Author: Oliver Neukum Date: Thu Feb 10 15:33:37 2011 +0100 usb_wwan: fix error case in close() The device never needs to be resumed in close(). But the counters must be balanced. As resumption can fail, but the counters must be balanced, use the _no_resume() version which cannot fail. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 5b7c1178eb94f31a0199c3b361722775c54a8db3 Author: Oliver Neukum Date: Fri Feb 11 12:56:40 2011 +0100 USB: sierra: error handling in runtime PM resumption of devices can fail. Errors must be handled. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit b9f2e9a122a4d51dc13e2e9571034cb2d29dfe44 Author: Paul Bolle Date: Mon Feb 14 23:06:15 2011 +0100 USB: usb.h: Make comment match the defines it describes Signed-off-by: Paul Bolle Signed-off-by: Greg Kroah-Hartman commit 9812f748a149796cc0299757c3ebf49f0915dc3c Author: wwang Date: Tue Feb 15 09:38:31 2011 +0800 usb_storage: realtek_cr patch: fix sparse warning Fix some sparse warning for realtek_cr patch Signed-off-by: wwang Signed-off-by: Greg Kroah-Hartman commit 8a9e658ad3bea034d34e47acc7ea7e5e628fc893 Author: wwang Date: Tue Feb 15 17:02:47 2011 +0800 usb_storage: realtek_cr patch: add const modifier Add const modifier before global variable realtek_cr_ids. Signed-off-by: wwang Signed-off-by: Greg Kroah-Hartman commit 7018773aca1b46e4f29a8be2c6652448eb603099 Author: Pavankumar Kondeti Date: Tue Feb 15 09:42:34 2011 +0530 USB: OTG: msm: Fix compiler warning with CONFIG_PM disabled This patch fixes the below compiler warning drivers/usb/otg/msm72k_otg.c:257: warning: 'msm_otg_suspend' defined but not used Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit e2904ee43c7009e6c4fc18738f15051312f22483 Author: Pavankumar Kondeti Date: Tue Feb 15 09:42:35 2011 +0530 USB: OTG: msm: Fix bug in msm_otg_mode_write The driver private data is retrieved incorrectly which results a crash when written into "mode" debugfs file. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit bcf40815e0cda371cecc242398fe39b873bb1047 Author: Matthieu CASTET Date: Tue Feb 15 18:40:28 2011 +0100 USB: don't run ehci_reset in ehci_run for tdi device TDI driver does the ehci_reset in their reset callback. Don't reset in ehci_run because configuration settings done in platform driver will be reset. This will allow to make msm use ehci_run. Signed-off-by: Matthieu CASTET Signed-off-by: Greg Kroah-Hartman commit 5c8d61bfcc6396f80b884e0f23f08cbd8bf10778 Author: Matthieu CASTET Date: Tue Feb 15 18:41:54 2011 +0100 USB: make ehci msm driver use ehci_run. Now that ehci_run don't call ehci_reset, we can use ehci_run. Signed-off-by: Matthieu CASTET Signed-off-by: Greg Kroah-Hartman commit 04b31c776f34d127b422da92899272a0b8cda21d Author: Akinobu Mita Date: Wed Feb 16 23:47:51 2011 +0900 usb: isp1362-hcd: use bitmap_clear() and bitmap_set() Use bitmap_set()/bitmap_clear() to fill/zero a region of a bitmap instead of doing set_bit()/clear_bit() each bit. Signed-off-by: Akinobu Mita Signed-off-by: Greg Kroah-Hartman commit 75a14b1434a0ca409bcc8ab9b6b2e680796c487e Author: Felipe Balbi Date: Wed Feb 16 12:27:54 2011 +0200 usb: musb: do not error out if Kconfig doesn't match board mode During development, even though board is wired to e.g. OTG, we might want to compile host-only or peripheral-only configurations. Let's allow that to happen. Signed-off-by: Felipe Balbi commit 63eed2b52494e35aaf38ac2db537d6ea0a55b0da Author: Felipe Balbi Date: Mon Jan 17 10:34:38 2011 +0200 usb: musb: gadget: beautify usb_gadget_probe_driver()/usb_gadget_unregister_driver Just a few cosmetic fixes to usb_gadget_probe_driver() and usb_gadget_unregister_driver(). Decreased a few indentation levels with goto statements. While at that, also add the missing call to musb_stop(). If we don't have OTG, there's no point of leaving MUSB prepared for operation if a gadget driver fails to probe. The same is valid for usb_gadget_unregister_driver(), since we are removing the gadget driver and we don't have OTG, we can completely unconfigure MUSB. Signed-off-by: Felipe Balbi commit ad1adb89a0d9410345d573b6995a1fa9f9b7c74a Author: Felipe Balbi Date: Wed Feb 16 12:40:05 2011 +0200 usb: musb: gadget: do not poke with gadget's list_head struct usb_request's list_head is supposed to be used only by gadget drivers, but musb is abusing that. Give struct musb_request its own list_head and prevent musb from poking into other driver's business. Signed-off-by: Felipe Balbi commit 207b0e1f1655bd7008b7322cdc3f84fb171c546d Author: Hema HK Date: Thu Feb 17 12:07:22 2011 +0530 usb: musb: Using runtime pm APIs for musb. Calling runtime pm APIs pm_runtime_put_sync() and pm_runtime_get_sync() for enabling/disabling the clocks, sysconfig settings. Enable clock, configure no-idle/standby when active and configure force idle/standby and disable clock when idled. This is taken care by the runtime framework when driver calls the pm_runtime_get_sync and pm_runtime_put_sync APIs. Need to configure MUSB into force standby and force idle mode when usb not used Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Kevin Hilman Cc: Cousson, Benoit Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 6dc2503b81a0171e68766f722a452e97a7da320b Author: Hema HK Date: Thu Feb 17 12:06:04 2011 +0530 usb: otg: enable regulator only on cable/device connect Remove the regulator enable while driver loading and enable it only when the cable/device is connected and disable it when disconnected. Remove the configuration of config_state and config_trans register configuration as these registers are programmed when regulator enable/disable is called. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 31e9992ab09264ed1372ba86a0924899ab08700b Author: Hema HK Date: Thu Feb 17 12:06:05 2011 +0530 usb: otg: Remove one unnecessary I2C read request. To get the ID status there was an I2C read transfer. Removed this I2C read transfer as this info can be used from existing variable(linkstat). Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit d8692748408fbec28dfb065f4127307e24187476 Author: Hema HK Date: Thu Feb 17 12:06:06 2011 +0530 usb: otg: OMAP4430: Add phy_suspend function pointer to twl4030_usb_data Declare the .phy_suspend function pointer to twl4030_usb_data structure. OMAP internal phy suspend function will be hooked though this function pointer to use in the transceiver driver. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 59556765cd30467ff64a391906ad8eb68f886ad3 Author: Syed Rafiuddin Date: Mon Dec 27 05:51:45 2010 +0000 OMAP4: keypad: Add the board support -Add the platform changes for the keypad driver -Register keyboard device with hwmod framework. Signed-off-by: Syed Rafiuddin Signed-off-by: Abraham Arce Signed-off-by: Shubhrajyoti D Signed-off-by: Tony Lindgren commit 741927f753a41c644840589a382a1d3500f86206 Author: Eyal Reizer Date: Thu Jan 27 09:49:49 2011 +0000 omap3evm: add support for the WL12xx WLAN module to the AM/DM3xx Evaluation Module Adds platform initialization for working with the WLAN module attached to the evaluation module. The patch includes MMC2 initialization, SDIO and control pins muxing and platform device registration Signed-off-by: Eyal Reizer Signed-off-by: Tony Lindgren commit 9bc64b89cd730a09b02c66af730229e0abc9e2bb Author: Vaibhav Hiremath Date: Mon Jan 24 19:25:55 2011 +0000 OMAP3EVM: Reset the smsc911x ethernet controller in board_init With addition of hwmod support to gpio, the ethernet controller goes undetected for OMAP35xEVM. So explicitly assert the reset signal to ethernet controller smsc911x - - GPIO7 (>=RevG version of EVM's) - GPIO64 (<=RevD version of EVM's) Tested this patch on RevG version of EVM with ES3.1 Si. This patch is based on intial version from Charulatha V, reference to original discussion - http://www.mail-archive.com/linux-omap@vger.kernel.org/msg35784.html Signed-off-by: Vaibhav Hiremath Signed-off-by: Tony Lindgren commit f186e9b24f84e771124c6ee47e19dac5de35f987 Author: Vaibhav Hiremath Date: Tue Jan 25 17:37:37 2011 +0000 omap3evm: Change TWL related gpio API's to gpio*_cansleep Since TWL GPIO's can go into sleep, and using normal gpio_get/set_value() API will lead to kernel dump (WARN_ON()). So replacing standard gpio_get/set_value() to gpio_get/set_value_cansleep(). Signed-off-by: Vaibhav Hiremath Reviewed-by: Charulatha V Signed-off-by: Tony Lindgren commit 410491d408ee98a31c6eeff5072ae0c13e0a2324 Author: Vaibhav Hiremath Date: Tue Jan 25 17:37:38 2011 +0000 OMAP3EVM: Add vio regulator supply required for ads7846 TSC driver Add vio regulator supply, needed for ads7846 touchscreen controller driver. Tested on OMAP3 (ES3.1 Si) RevG version of EVM. Signed-off-by: Vaibhav Hiremath Signed-off-by: Tony Lindgren commit 904c545c22dc4926e73c5c869efed0ca6a778bda Author: Vaibhav Hiremath Date: Tue Jan 25 17:37:39 2011 +0000 AM/DM37x: DSS mux configuration for >Rev-B processor cards To support higher resolution (e.g 720P@60), on OMAP36x (AM/DM37x) DSS data bus has been muxed with sys_boot pins. DSS[18-23] => DSS[0-5] sys_boot[0,1 3-5] => DSS[18-23] EVM revision >=RevB adopt this mux changes, which is going to ship outside. Signed-off-by: Vaibhav Hiremath Signed-off-by: Tony Lindgren commit 42fc8cab020c4d848a969b7c0a80b591c35bb263 Author: Vaibhav Hiremath Date: Tue Jan 25 17:37:40 2011 +0000 OMAP3EVM: Made backlight GPIO default state to off If you choose default output to DVI, the LCD backlight used to stay on, since panel->disable function never gets called. So, during init put backlight GPIO to off state and the driver code will decide which output to enable. Signed-off-by: Vaibhav Hiremath Signed-off-by: Tony Lindgren commit 854c122f54d0074afb9e9a8f2ab7d6258c1f218f Author: Vaibhav Hiremath Date: Tue Jan 25 17:37:41 2011 +0000 OMAP3EVM: Set TSC wakeup option in pad config Set OMAP_PIN_OFF_WAKEUPENABLE to enable the wake-up functionality from touchscreen controller. Signed-off-by: Vaibhav Hiremath Signed-off-by: Tony Lindgren commit f4117ac9e237b74afdf5e001d5ea26a4d15e9847 Author: Russell King Date: Tue Jan 4 18:07:14 2011 +0000 ARM: P2V: separate PHYS_OFFSET from platform definitions This uncouple PHYS_OFFSET from the platform definitions, thereby facilitating run-time computation of the physical memory offset. Acked-by: Nicolas Pitre Acked-by: Viresh Kumar Acked-by: H Hartley Sweeten Acked-by: Magnus Damm Acked-by: Tony Lindgren Acked-by: Jean-Christophe PLAGNIOL-VILLARD Acked-by: Wan ZongShun Acked-by: Kukjin Kim Acked-by: Eric Miao Acked-by: Jiandong Zheng Signed-off-by: Russell King commit b75c178afaa975896e894bb2b6951dc4cd43c977 Author: Russell King Date: Tue Jan 4 19:03:16 2011 +0000 ARM: P2V: avoid initializers and assembly using PHYS_OFFSET As PHYS_OFFSET will be becoming a variable, we can't have it used in initializers nor assembly code. Replace those in generic code with a run-time initialization. Replace those in platform code using the individual platform specific PLAT_PHYS_OFFSET. Acked-by: Nicolas Pitre Acked-by: Tony Lindgren Acked-by: Kukjin Kim Acked-by: David Brown Acked-by: Eric Miao Signed-off-by: Russell King commit 72a20e22f49e2dad3180c23980a9df1c63faab0a Author: Russell King Date: Tue Jan 4 19:04:00 2011 +0000 ARM: P2V: eliminate head.S use of PHYS_OFFSET for !XIP_KERNEL head.S makes use of PHYS_OFFSET. When it becomes a variable, the assembler won't understand this. Compute PHYS_OFFSET by the following method. This code is linked at its virtual address, but run at before the MMU is enabled, so at his physical address. 1: .long . .long PAGE_OFFSET adr r0, 1b @ r0 = physical ',' ldmia r0, {r1, r2} @ r1 = virtual '.', r2 = PAGE_OFFSET sub r1, r0, r1 @ r1 = physical-virtual add r2, r2, r1 @ r2 = PAGE_OFFSET + physical-virtual @ := PHYS_OFFSET. Switch XIP users of PHYS_OFFSET to use PLAT_PHYS_OFFSET - we can't use this method for XIP kernels as the code doesn't execute in RAM. Tested-by: Tony Lindgren Reviewed-by: Nicolas Pitre Signed-off-by: Russell King commit 5b7de4547b388d3949620e21d072e35b6f2638fa Author: Tony Lindgren Date: Fri Feb 4 21:03:24 2011 +0100 ARM: 6651/1: omap: Fix DEBUG_LL code for p2v changes These are needed for CONFIG_ARM_PATCH_PHYS_VIRT to work. Signed-off-by: Tony Lindgren Signed-off-by: Russell King commit dc21af99fadcfa0ae65b52fd0895f85824f0c288 Author: Russell King Date: Tue Jan 4 19:09:43 2011 +0000 ARM: P2V: introduce phys_to_virt/virt_to_phys runtime patching This idea came from Nicolas, Eric Miao produced an initial version, which was then rewritten into this. Patch the physical to virtual translations at runtime. As we modify the code, this makes it incompatible with XIP kernels, but allows us to achieve this with minimal loss of performance. As many translations are of the form: physical = virtual + (PHYS_OFFSET - PAGE_OFFSET) virtual = physical - (PHYS_OFFSET - PAGE_OFFSET) we generate an 'add' instruction for __virt_to_phys(), and a 'sub' instruction for __phys_to_virt(). We calculate at run time (PHYS_OFFSET - PAGE_OFFSET) by comparing the address prior to MMU initialization with where it should be once the MMU has been initialized, and place this constant into the above add/sub instructions. Once we have (PHYS_OFFSET - PAGE_OFFSET), we can calculate the real PHYS_OFFSET as PAGE_OFFSET is a build-time constant, and save this for the C-mode PHYS_OFFSET variable definition to use. At present, we are unable to support Realview with Sparsemem enabled as this uses a complex mapping function, and MSM as this requires a constant which will not fit in our math instruction. Add a module version magic string for this feature to prevent incompatible modules being loaded. Tested-by: Tony Lindgren Reviewed-by: Nicolas Pitre Tested-by: Nicolas Pitre Signed-off-by: Russell King commit cada3c0841e1deaec4c0f92654610b028dc683ff Author: Russell King Date: Tue Jan 4 19:39:29 2011 +0000 ARM: P2V: extend to 16-bit translation offsets MSM's memory is aligned to 2MB, which is more than we can do with our existing method as we're limited to the upper 8 bits. Extend this by using two instructions to 16 bits, automatically selected when MSM is enabled. Acked-by: Tony Lindgren Reviewed-by: Nicolas Pitre Tested-by: Nicolas Pitre Signed-off-by: Russell King commit 4d901c4271951d110afb13ee9aa73d27a6c8e53d Author: Rob Herring Date: Wed Feb 2 16:33:17 2011 +0100 ARM: 6648/1: map ATAGs when not in first 1MB of RAM If ATAGs or DTB pointer is not within first 1MB of RAM, then the boot params will not be mapped early enough, so map the 1MB region that r2 points to. Only map the first 1MB when r2 is 0. Some assembly improvements from Nicolas Pitre. Acked-by: Tony Lindgren Acked-by: Nicolas Pitre Signed-off-by: Rob Herring Signed-off-by: Russell King commit 3a6b1676c6f27f7fad1a3d6fab5a95f90b1e7402 Author: Will Deacon Date: Tue Feb 15 17:28:28 2011 +0100 ARM: 6675/1: use phys_addr_t instead of unsigned long in conversion code The unsigned long datatype is not sufficient for mapping physical addresses >= 4GB. This patch ensures that the address conversion code in asm/memory.h casts to the correct type when handling physical addresses. The internal v2p macros only deal with lowmem addresses, so these do not need to be modified. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit d5ce2b6592c49935462cba7317fa67fe8ee474ec Author: Sukumar Ghorai Date: Fri Jan 28 15:42:03 2011 +0530 omap3630: nand: fix device size to work in polled mode zoom3 and 3630-sdp having the x16 nand device. This patch configure gpmc as x16 and select the currect function in driver for polled mode (without prefetch enable) transfer. Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit 1b0b323c70cd5fdca967d89ed3a03dfebd84ada7 Author: Sukumar Ghorai Date: Fri Jan 28 15:42:04 2011 +0530 omap3: nand: configurable transfer type per board nand transfer type (sDMA, Polled, prefetch) can be select from board file, enabling all transfer type in driver, by default. this helps in multi-omap build and to select different transfer type for different board. Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit db97eb7dfe13f6c04f0a0e77c32e2691f563ab8b Author: Sukumar Ghorai Date: Fri Jan 28 15:42:05 2011 +0530 omap: gpmc: enable irq mode in gpmc add support the irq mode in GPMC. gpmc_init() function move after omap_init_irq() as it has dependecy on irq. Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit 4e070376165a9b7f245fada77645b81352c6ec78 Author: Sukumar Ghorai Date: Fri Jan 28 15:42:06 2011 +0530 omap3: nand: prefetch in irq mode support This patch enable prefetch-irq mode for nand transfer(read, write) Signed-off-by: Vimal Singh Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit 317379a975c07fe63bc4f86dabd668df96ff3df2 Author: Sukumar Ghorai Date: Fri Jan 28 15:42:07 2011 +0530 omap3: nand: configurable fifo threshold to gain the throughput Configure the FIFO THREASHOLD value different for read and write to keep busy both filling and to drain out of FIFO at reading and writing. Signed-off-by: Vimal Singh Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit f3d73f362d689a1d044e77964864f0a8ea0217f3 Author: Sukumar Ghorai Date: Fri Jan 28 15:42:08 2011 +0530 omap3: nand: ecc layout select from board file This patch makes it possible to select sw or hw (different layout options) ecc scheme supported by omap nand driver. Signed-off-by: Vimal Singh Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit f040d33253b2daf6f305fc35fca2399047ced028 Author: Sukumar Ghorai Date: Fri Jan 28 15:42:09 2011 +0530 omap3: nand: making ecc layout as compatible with romcode ecc This patch overrides nand ecc layout and bad block descriptor (for 8-bit device) to support hw ecc in romcode layout. So as to have in sync with ecc layout throughout; i.e. x-loader, u-boot and kernel. This enables to flash x-loader, u-boot, kernel, FS images from kernel itself and compatiable with other tools. This patch does not enables this feature by default and need to pass from board file to enable for any board. Signed-off-by: Vimal Singh Signed-off-by: Sukumar Ghorai Signed-off-by: Tony Lindgren commit 4b087ff8572c7e7095787ca14aa72e39c80859bd Author: Rajendra Nayak Date: Thu Feb 3 12:45:21 2011 +0000 omap3sdp: Fix regulator mapping for ads7846 TS controller On the OMAP3430SDP board, the ads7846 touchscreen controller is powered by VAUX3 regulator (supplying 2.8v). Fix this mapping in the board file, and hence prevent the ads7846 driver init to fail with the below error.. ads7846 spi1.0: unable to get regulator: -19 Signed-off-by: Rajendra Nayak Reviewed-by: Felipe Balbi Signed-off-by: Tony Lindgren commit 1435ca0fc1a269f9496343e24223a0fc430aff7a Author: Adrian Hunter Date: Mon Feb 7 10:46:58 2011 +0200 OMAP: OneNAND: fix 104MHz support 104MHz needs a latency of 8 clock cycles and the VHF flag must be set. Also t_rdyo is specified as "not applicable" so pick a lower value, and force at least 1 clk between AVD High to OE Low. Signed-off-by: Adrian Hunter Signed-off-by: Tony Lindgren commit 3ad2d861362031dac8b2bba78a8f4c575300948f Author: Adrian Hunter Date: Mon Feb 7 10:46:59 2011 +0200 OMAP: OneNAND: determine frequency in one place OneNAND frequency is determined when calculating GPMC timings. Return that value instead of determining it again in the OMAP OneNAND driver. Signed-off-by: Adrian Hunter Signed-off-by: Tony Lindgren commit 5714b7ed6b3e3c00c0d4719bb66757e64c30ecf6 Author: Adrian Hunter Date: Mon Feb 7 10:47:00 2011 +0200 OMAP: OneNAND: let boards determine OneNAND frequency OneNAND version ID may not give the highest frequency supported and some OneNAND's have setup times that are clock dependent. Let the board provide that information. Signed-off-by: Adrian Hunter Signed-off-by: Tony Lindgren commit c497dd5594ed3ef97bc563b07e8c050618f745a3 Author: Roman Tereshonkov Date: Mon Feb 7 10:47:01 2011 +0200 mtd: OneNAND: OMAP2: increase multiblock erase verify timeout The current multiblock erase verify read timeout 100us is the maximum for none-error case. If errors happen during multibock erase then the specification recommends to run multiblock erase verify command with maximum timeout 10ms (see specs. for KFM4G16Q2A and KFN8G16Q2A). For the most common non-error case we wait 100us in udelay polling loop. In case of timeout the interrupt mode is used to wait for the command end. Signed-off-by: Roman Tereshonkov Acked-by: Artem Bityutskiy Signed-off-by: Tony Lindgren commit 4f85f99b1e9ae9d62e3ea9f0cd3827020e0d9ba2 Author: David Cohen Date: Tue Feb 15 11:31:13 2011 +0000 omap: IOMMU: add missing function declaration Declaration of exported function 'iopgtable_lookup_entry' is missing from header file. Currently we have a sparse warning as it's not being used externally. Adding its declaration to avoid such warning and allow its usage in future. Signed-off-by: David Cohen Signed-off-by: Tony Lindgren commit f69eefd18d5201cd512c862a4bd27b8e8febd20b Author: Sanjeev Premi Date: Tue Feb 15 10:57:31 2011 +0000 omap3: fix minor typos This patch fixes typos that were remaining after the file and functions were renamed. Signed-off-by: Sanjeev Premi Signed-off-by: Tony Lindgren commit adc5430b473db2842a96fcce1ffbd43049757d3b Author: Sanjeev Premi Date: Tue Feb 15 10:57:32 2011 +0000 omap3: flash: use pr_err instead of printk Change all occurences of printf() to pr_err(). Includes minor formatting changes as result of this change. Signed-off-by: Sanjeev Premi Signed-off-by: Tony Lindgren commit e49c4d27ab5ffd0d8707685af9ca2866a95660e8 Author: Nishant Kamat Date: Thu Feb 17 09:55:03 2011 -0800 omap: Add chip id recognition for OMAP4 ES2.1 and ES2.2 Allow OMAP4 ES2.1 and ES2.2 revisions to be recognized in the omap4_check_revision() function. Mainly, ES2.1 has fixes that allow LPDDR to be used at 100% OPP (400MHz). ES2.2 additionally has a couple of power management fixes (to reduce leakage), an I2C1 SDA line state fix, and a floating point write corruption fix (cortex erratum). Even though the current mainline support doesn't need to distinguish between ES2.X versions, it's still useful to know the correct silicon rev when issues are reported. Moreover, these id checks can be used by power management code that selects suitable OPPs considering the memory speed limitation on ES2.0. For details about the silicon errata on OMAP4430, refer http://focus.ti.com/pdfs/wtbu/SWPZ009A_OMAP4430_Errata_Public_vA.pdf Signed-off-by: Nishant Kamat Acked-by: Santosh Shilimkar Signed-off-by: Tony Lindgren commit 5c0cf89ed469f2073d2580e61291514f84a45817 Author: Nicolas Pitre Date: Sat Feb 12 15:32:11 2011 -0500 ARM: P2V: Thumb2 support Adding Thumb2 support to the runtime patching of the virt_to_phys and phys_to_virt opcodes. Tested both the 8-bit and the 16-bit fixups, using different placements in memory to exercize all code paths. Signed-off-by: Nicolas Pitre Reviewed-by: Dave Martin commit 1ea9ea0c6874034a4364452e4dc2e0f58e3378de Author: Nicolas Pitre Date: Sat Feb 12 15:32:02 2011 -0500 ARM: ignore mdesc->boot_params if out of range The initial MMU table created in head.S contains a 1 MB mapping at the start of memory to let the early kernel boot code access the boot params specified by mdesc->boot_params. When using CONFIG_ARM_PATCH_PHYS_VIRT it is possible for the kernel to have a different idea of where the start of memory is at run time, making the compile-time determined mdesc->boot_params pointing to a memory area which is not mapped. Any access to the boot params in that case will fault and silently hang the kernel at that point. It is therefore a better idea to simply ignore mdesc->boot_params in that case and give the kernel a chance to print some diagnostic on the console later. If the bootloader provides a valid pointer in r2 to the kernel then this is used instead of mdesc->boot_params, and an explicit mapping is already created in the initial MMU table for it. It is therefore a good idea to use that facility when using a relocated kernel. Signed-off-by: Nicolas Pitre commit 5b664f13ff2e36419a4cc97852a843d4b3d6a6e4 Author: Nicolas Pitre Date: Wed Feb 16 21:22:19 2011 -0500 ARM: fold lookup_machine_type() into setup_machine() Since commit 6fc31d54 there is no callers for lookup_machine_type() other than setup_machine(). And if the former fails it won't return, therefore the error path in the later is dead code. Let's clean things up by merging them together. Signed-off-by: Nicolas Pitre commit 7ac18a3845145f4f48e611640e33918ae450f955 Author: Arnaud Patard (Rtp) Date: Thu Feb 17 15:31:28 2011 +0100 Introduce EFIKA_COMMON The Genesi EFIKA MX and EFIKA Smartbook are sharing a lot of things so it makes sense to create a common file for both devices and a specific file for each. No functionnal change except dropping uart 1 & 2. Signed-off-by: Arnaud Patard Signed-off-by: Sascha Hauer commit 9d72af6e3582977196e3474903950206dc3c590e Author: Arnaud Patard (Rtp) Date: Thu Feb 17 15:31:29 2011 +0100 efikamx: add usb h1 support Now that usb has been fixed, we can enable usb h1 on efikamx Signed-off-by: Arnaud Patard Signed-off-by: Sascha Hauer commit 2432cff0fc1c9d1a41476994b18fda04bf9f2686 Author: Arnaud Patard (Rtp) Date: Thu Feb 17 15:31:30 2011 +0100 efikamx: add mc13892 support / implement power off This patch declares regulators for the efikamx. Use it also to power off the efikamx. Unfortunately, on the efikamx to2 boards, this doesn't work but they allow to power off by setting GPIO 4 13 to high level instead of powering off through the mc13892. Signed-off-by: Arnaud Patard Signed-off-by: Sascha Hauer commit 856e656c4a328907c2b1fdbb6523f16fe1c71b46 Author: Arnaud Patard (Rtp) Date: Thu Feb 17 15:31:31 2011 +0100 efika: enable cpufreq Enable cpufreq on Genesi efika platforms Signed-off-by: Arnaud Patard Signed-off-by: Sascha Hauer commit 102c91d8c60bc40e100ead62ac1e9ba05601510c Author: Arnaud Patard (Rtp) Date: Thu Feb 17 15:31:32 2011 +0100 mx51: add support for efika smartbook Signed-off-by: Arnaud Patard Signed-off-by: Sascha Hauer commit 78c73591a91c120c4be02dafc018fcd7ecc8688a Author: Fabio Estevam Date: Thu Feb 17 18:09:52 2011 -0200 ARM: mx5: Add watchdog support for MX53 Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit daa7954ccd8a0e99376d52c46978f16067f8c2de Author: Fabio Estevam Date: Thu Feb 17 18:09:53 2011 -0200 ARM: mach-mx5: Add watchdog support for MX53 based boards Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 6388b96e84712a2cc045e8371eabd7312ee12fc4 Author: Richard Zhao Date: Fri Feb 18 12:36:14 2011 +0800 ARM: imx53_loco: add all pad configure. Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit c4e942b76414367d034640835a0fcbab5d0cc434 Author: Richard Zhao Date: Fri Feb 18 12:36:15 2011 +0800 ARM: imx53_loco add uncompress print Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit 942b99f3a0497a9a53df82ad685082b2980fe75d Author: Richard Zhao Date: Fri Feb 18 12:36:16 2011 +0800 ARM: imx53_loco: add i2c device support Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit b807afe41ceefef11a0d965cd9970142afc53d25 Author: Richard Zhao Date: Fri Feb 18 12:36:17 2011 +0800 ARM: imx50: correct iomux-mx50.h wrong daisy chain settings Most fix is for uart txd/cts. They don't need to select input. And fix some other pads with wrong select input. Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit ee896e348cf6f323a00e4ee52e6386f515f86cee Author: Hema HK Date: Thu Feb 17 12:06:07 2011 +0530 usb: otg: OMAP4430: Introducing suspend function for power management Introduced the suspend/resume function for the OMAP4430 internal PHY. This will be used by the twl6030-usb transceiver driver. Moved the clock enable/disable function calls and power on/off of the PHY code from power on/off functions to suspend/resume function. Pass the suspend function through board data for OMAP4430sdp and OMAP4panda. This will be used by the twl6030-usb transceiver driver. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 070b8ed96e01adeb978d4f8487fb1350a28fcd0d Author: Hema HK Date: Thu Feb 17 12:06:08 2011 +0530 usb: otg: TWL6030: Introduce the twl6030_phy_suspend function. Introduce the twl6030_phy_suspend function and assign to otg.set_suspend function pointer. This function is used by the musb-omap2430 platform driver during suspend/resume. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 647b2d9c61fe9a842dd89eb01b5f01e9d437993c Author: Hema HK Date: Thu Feb 17 12:06:09 2011 +0530 usb: otg: TWL6030 Save the last event in otg_transceiver Save the last event in the otg_transceiver so that it can used in the musb driver and gadget driver to configure the musb and enable the vbus for host mode and OTG mode, if the device is connected during boot. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 002eda1348788f623dc42231dcda5f591d753124 Author: Hema HK Date: Thu Feb 17 12:06:10 2011 +0530 usb: musb: OMAP4430: Fix usb device detection if connected during boot OMAP4430 is embedded with UTMI PHY. This PHY does not support the OTG features like ID pin detection and VBUS detection. This function is exported to an external companion chip TWL6030. Software must retrieve the OTG HNP and SRP status from the TWL6030 and configure the bits inside the control module that drive the related USBOTGHS UTMI interface signals. It must also read back the UTMI signals needed to configure the TWL6030 OTG module. Can find more details in the TRM[1]. [1]:http://focus.ti.com/pdfs/wtbu/OMAP4430_ES2.0_Public_TRM_vJ.pdf In OMAP4430 musb driver VBUS and ID notifications are received from the transceiver driver. If the cable/device is connected during boot, notifications from transceiver driver will be missed till musb driver is loaded. Patch to configure the transceiver in the platform_enable/disable functions and enable the vbus in the gadget driver based on the last_event of the otg_transceiver. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit cccad6d4b103e53fb3d1fc1467f654ecb572d047 Author: Felipe Balbi Date: Wed Sep 29 10:55:49 2010 +0300 usb: otg: notifier: switch to atomic notifier most of our notifications, will be called from IRQ context, so an atomic notifier suits the job better. Signed-off-by: Felipe Balbi commit ad56c0dd9dfb0175e605b5e66b3f9973bef60ca0 Author: Ryan Mallon Date: Mon Feb 14 03:44:22 2011 +0100 ARM: 6664/1: AT91: Use macros for gpio_to_irq/irq_to_gpio Replace the static inline functions for gpio_to_irq/irq_to_gpio so that they can be used in static initialisers. Signed-off-by: Ryan Mallon Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Russell King commit d081377dfda42beab13d8b4af876571ce7661174 Author: Ryan Mallon Date: Mon Feb 14 03:46:42 2011 +0100 ARM: 6665/1: Add Snapper9260 rtc wakeup interrupt pin Signed-off-by: Ryan Mallon Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Russell King commit 68b5035c8e4ed9eb449121a0603d6299a489618c Author: Linus Walleij Date: Fri Jan 28 09:08:41 2011 +0100 ARM: 6644/1: mach-ux500: update the U8500 defconfig Config and activate all the devices we've merged for Ux500 in 2.6.38-rc1. This is needed for the default config to compile properly. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit bafc8205dc7bf2488175008deedc14ff4939d174 Author: Linus Walleij Date: Wed Feb 2 13:49:00 2011 +0100 ARM: 6647/1: add Versatile Express defconfig Being able to compile a major reference platform is helpful for me when developing on other archs using the same e.g. PrimeCells. I bet this is useful to others as well. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 9728c1b6a724daefc413b44e10253cdbb5e06d08 Author: Russell King Date: Wed Jan 19 23:29:12 2011 +0000 ARM: versatile: support CLCD RGB565 layout with blue LSB RGB565 with blue in the LSB wasn't supported. Add support for this layout. Acked-by: Catalin Marinas Signed-off-by: Russell King commit e6b9c1f8a623bfaa545067df73213db1c9c8e7af Author: Russell King Date: Sat Jan 22 11:02:10 2011 +0000 ARM: integrator: support CLCD RGB5551 layout for 16bpp When the CLCD is in anything but RGB888 mode, its outputs are configured for RGB5551 output. Integrator/CP supports RGB565 via an external multiplexer, which we configure for RGB5551 or RGB565 based only on the bits per pixel. So when userspace asks for the RGB555 layout, the mux remains in RGB565 mode, and we produce incorrect colours. Fix this. Note that Integrator doesn't support BGR565 mode, but does support BGR5551. Acked-by: Catalin Marinas Signed-off-by: Russell King commit ff6433225b08d74f77f6eb4c5bf5ca434a371492 Author: Russell King Date: Wed Jan 19 21:10:24 2011 +0000 ARM: clcd: clean up CLCD announcement printks Make the CLCD announcement printk say which primecell part number has been found. Display the revision as an unsigned decimal, and display only the first 8 hex digits of the base address unless it's larger. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 9c49e4ab84dd46769e7fd9773946e10c95bab680 Author: Russell King Date: Wed Jan 19 21:13:33 2011 +0000 ARM: clcd: use amba_part() to determine if we have a PL110 primecell Instead of matching the entire peripheral ID, match against just the part number using the amba_xxx() macros. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 7b4e9ced69a120e7e7446e3303d2307aa29d891c Author: Russell King Date: Fri Jan 21 14:03:28 2011 +0000 ARM: clcd: add method for describing display capabilities The ARM CLCD PL110 controller in TFT mode provides two output formats based on whether the controller is in 24bpp mode or not - either 5551 or 888. PL111 augments this with a 444 and 565 modes. Some implementations provide an external MUX on the PL110 output to reassign the bits to achieve 565 mode. Provide a system of capability flags to allow the CLCD driver to work out what is supported by each panel and board, and therefore which display formats are permitted. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 420c34e4ccbbacab56d199e90a214e24380077dd Author: Russell King Date: Tue Jan 18 20:08:06 2011 +0000 ARM: add versatile family consolidated CLCD support This consolidates the CLCD panel definitions and memory allocation into one location. Rename the Sanyo 2.5in and Epson 2.2in displays after their respective part numbers. Rather than using a general "Sanyo 2.5in" and "Epson 2.2in" description of the display panel, use the manufacturers part number to be more specific. This helps people identify what the timings actually refer to, which are panel specific. While here, add CLCD capability information to each panel definition, which has no effect until we add the board-level capabilities. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 9dfec4fe6d2eb5580e5adcee8827dee3a16be49d Author: Russell King Date: Tue Jan 18 20:10:10 2011 +0000 ARM: integrator: switch Integrator platforms to use consolidated CLCD This switches integrator platforms to use the consolidated CLCD panel support, including the display capabilities. These capabilities prevent the unsupported BGR565 mode being selected, while still allowing RGB5551, BGR5551 and RGB565 modes. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 3414ba8c899023b604e6066d25bc9d516e059401 Author: Russell King Date: Tue Jan 18 20:12:10 2011 +0000 ARM: versatile: switch Versatile to use consolidated CLCD This switches Versatile platforms to use the consolidated CLCD panel support, including the display capabilities. Versatile can support RGB5551, BGR5551, RGB565 and BGR565 modes. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 3cb5ee496ae99ee89e378d628b19cb5a904b1397 Author: Russell King Date: Tue Jan 18 20:13:20 2011 +0000 ARM: realview: switch Realview to use consolidated CLCD This switches Realview platforms to use the consolidated CLCD panel support, including the display capabilities. As Realview uses a PL111, it can support the full range of pixel formats - 444, 5551, 565 in both RGB and BGR mode. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 0fb44b910f6873c49066e8d0bf681a058fc01b67 Author: Russell King Date: Tue Jan 18 20:13:51 2011 +0000 ARM: vexpress: switch Versatile Express to use consolidated CLCD This switches Versatile Express to use the conslidated CLCD panel support, including the display capabilities. As Versatile Express uses a PL111, it can support the full range of pixel formats - 444, 5551, 565 in both RGB and BGR mode. Acked-by: Catalin Marinas Signed-off-by: Russell King commit c735c9873d0c2f269fd16f4b04903da41a44cbcf Author: Russell King Date: Tue Jan 11 13:00:04 2011 +0000 ARM: integrator: use new init_early for clock tree init Initialize the clock tree early. Acked-by: Catalin Marinas Signed-off-by: Russell King commit ad3bb19c5bd17cebe8e9a97dc0b53e274a05f23b Author: Russell King Date: Tue Jan 11 12:55:38 2011 +0000 ARM: versatile: use new init_early for clock tree and sched_clock init Initialize the clock tree and our sched_clock() early. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 631e55f966668d7a957342b38d7148643d919d73 Author: Russell King Date: Tue Jan 11 13:05:01 2011 +0000 ARM: realview: use new init_early for clock tree and sched_clock init Initialize the clock tree and our sched_clock() early. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 493a451bb559476d2f7f189670be2172ca3010b4 Author: Russell King Date: Tue Jan 11 13:07:52 2011 +0000 ARM: vexpress: use new init_early for clock tree and sched_clock init Initialize the clock tree and our sched_clock() early. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 5e4b822f298b49d2940e09c31695a64417a836b9 Author: Russell King Date: Tue Jan 18 19:47:40 2011 +0000 ARM: versatile: remove old AMBA device DMA definitions The AMBA DMA macro definitions are not used, and the AMBA Primecell DMA support makes no use of them either, so they can be removed. Acked-by: Catalin Marinas Signed-off-by: Russell King commit f093728c0ddc30bef5792b7faf2743024b166350 Author: Russell King Date: Tue Jan 18 19:48:57 2011 +0000 ARM: realview: remove old AMBA device DMA definitions The AMBA DMA macro definitions are not used, and the AMBA Primecell DMA support makes no use of them either, so they can be removed. Acked-by: Catalin Marinas Signed-off-by: Russell King commit dc37c31bbfaf87118d6c827be0a38a512a40b741 Author: Russell King Date: Tue Jan 18 20:26:08 2011 +0000 ARM: rationalize versatile family Kconfig/Makefile Move leds and sched_clock build conditionals out of the Makefile into the Kconfig file. Move selection of HAVE_SCHED_CLOCK into the platform Kconfig rather than duplicating it three times in the main architecture Kconfig. Acked-by: Catalin Marinas Signed-off-by: Russell King commit c41b16f8c9d9dc74ed5669d4a3e3d42374c9e609 Author: Russell King Date: Wed Jan 19 15:32:15 2011 +0000 ARM: integrator/versatile: consolidate FPGA IRQ handling code Consolidate the FPGA IRQ handling code. Integrator/AP and Versatile have one FPGA-based IRQ handler each. Integrator/CP has three. Acked-by: Catalin Marinas Signed-off-by: Russell King commit cdab142a80d859984eb5e3876e0e762b1f0bded9 Author: Russell King Date: Wed Jan 19 10:07:38 2011 +0000 ARM: realview/vexpress: consolidate localtimer support Realview and Versatile Express local timer support is identical, so consolidate the implementations. Acked-by: Catalin Marinas Signed-off-by: Russell King commit 0462b4477ea3260304bbcd97c64c0b704b4f0f85 Author: Russell King Date: Wed Jan 19 10:24:56 2011 +0000 ARM: realview/vexpress: consolidate SMP bringup code Realview and Versatile Express share the same SMP bringup code, so consolidate the two implementations. Acked-by: Catalin Marinas Signed-off-by: Russell King commit d77e270c53a4911d23ded9f4ab8b175a3fe3bb34 Author: Russell King Date: Sat Jan 22 11:37:54 2011 +0000 ARM: integrator: add Integrator/CP sched_clock support Integrator/CP has the 24MHz counter which Versatile and later platforms also have, which we use for sched_clock support. Allow this counter to be used when building a kernel targetting Integrator/CP alone. Integrator/AP does not have this counter, so we must exclude support for the Integrator family when this is enabled. Acked-by: Catalin Marinas Signed-off-by: Russell King commit f289d287f44094eb8ecaa85339a3b6c71f5e5c95 Author: Will Deacon Date: Mon Feb 14 14:31:09 2011 +0100 ARM: 6668/1: ptrace: remove single-step emulation code PTRACE_SINGLESTEP is a ptrace request designed to offer single-stepping support to userspace when the underlying architecture has hardware support for this operation. On ARM, we set arch_has_single_step() to 1 and attempt to emulate hardware single-stepping by disassembling the current instruction to determine the next pc and placing a software breakpoint on that location. Unfortunately this has the following problems: 1.) Only a subset of ARMv7 instructions are supported 2.) Thumb-2 is unsupported 3.) The code is not SMP safe We could try to fix this code, but it turns out that because of the above issues it is rarely used in practice. GDB, for example, uses PTRACE_POKETEXT and PTRACE_PEEKTEXT to manage breakpoints itself and does not require any kernel assistance. This patch removes the single-step emulation code from ptrace meaning that the PTRACE_SINGLESTEP request will return -EIO on ARM. Portable code must check the return value from a ptrace call and handle the failure gracefully. Acked-by: Nicolas Pitre Signed-off-by: Will Deacon Signed-off-by: Russell King commit 8097d4397ac7c33f8ce58c3aef17a9075d14e151 Author: viresh kumar Date: Wed Feb 16 07:40:27 2011 +0100 ARM: 6720/1: SPEAR: Append UL to VMALLOC_END This patch fixes following warning: arch/arm/mm/init.c:606: warning: format '%08lx' expects type 'long unsigned int', but argument 12 has type 'unsigned int' by appending UL to VMALLOC_END's Number. Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit a4d2d52d271da039bf7ee986a3b2055b3cc65657 Author: viresh kumar Date: Wed Feb 16 07:41:06 2011 +0100 ARM: 6712/1: SPEAr: replace readl(), writel() with relaxed versions in uncompress.h readl() and writel() calls the outer cache maintainance operations which are not available during Linux uncompression. This patch replaces readl() and writel() with readl_relaxed() and writel_relaxed() to avoid the link time errors. Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit b9c3b98a529f17834b1e262ec650b325cbfd3ffe Author: Shiraz Hashim Date: Wed Feb 16 07:40:29 2011 +0100 ARM: 6722/1: SPEAr: sp810: switch to slow mode before reset In sysctl_soft_reset(), switch to slow mode before resetting the system via the system controller. This is required. Reviewed-by: Stanley Miao Signed-off-by: Shiraz Hashim Signed-off-by: Russell King commit 5d2bbb1dce29a05892efc231555b3a7f684bad5e Author: Russell King Date: Sat Feb 19 15:55:00 2011 +0000 ARM: amba: make probe() functions take const id tables Make Primecell driver probe functions take a const pointer to their ID tables. Drivers should never modify their ID tables in their probe handler. Signed-off-by: Russell King commit b3e289ae4bd5b47cb1cc4920a192496f7ff371a5 Author: Russell King Date: Sat Feb 19 15:55:26 2011 +0000 ARM: amba: make internal ID table handling const As all probe() functions now take a const pointer, we can make the bus level code deal with const pointers too. Signed-off-by: Russell King commit d8d3f25e6a3b7abb37d569b0e36adc069b190a3a Author: Russell King Date: Sat Feb 19 15:55:48 2011 +0000 ARM: amba: make amba_driver id_table const Now that the bus level code deals with a const id table, we can also make the ID table in the amba_driver structure also const. Signed-off-by: Russell King commit 3ba6e69ad887f8a814267ed36fd4bfbddf8855a9 Author: Dave Martin Date: Tue Feb 8 12:09:52 2011 +0100 ARM: 6653/1: bitops: Use BX instead of MOV PC,LR The kernel doesn't officially need to interwork, but using BX wherever appropriate will help educate people into good assembler coding habits. BX is appropriate here because this code is predicated on __LINUX_ARM_ARCH__ >= 6 Signed-off-by: Dave Martin Acked-by: Nicolas Pitre Signed-off-by: Russell King commit a9b7abbe5a837bf580e06730ceaafb9f951ab020 Author: viresh kumar Date: Wed Feb 16 07:40:41 2011 +0100 ARM: 6700/1: SPEAr: Correct SOC config base address for spear320 SPEAR320_SOC_CONFIG_BASE was wrong, causing the wrong registers to be accessed. Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 499ef7a5c48ea9fe8034b61de304ce9f6b753fe7 Author: Stephen Warren Date: Wed Jan 5 14:24:12 2011 -0700 ARM: tegra: Prevent requeuing in-progress DMA requests If a request already in the queue is passed to tegra_dma_enqueue_req, tegra_dma_req.node->{next,prev} will end up pointing to itself instead of at tegra_dma_channel.list, which is the way a the end-of-list should be set up. When the DMA request completes and is list_del'd, the list head will still point at it, yet the node's next/prev will contain the list poison values. When the next DMA request completes, a kernel panic will occur when those poison values are dereferenced. This makes the DMA driver more robust in the face of buggy clients. Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit 1ca00347c579f15b0eea1a6d4bab84e2cf56e745 Author: Stephen Warren Date: Wed Jan 5 14:32:20 2011 -0700 ARM: tegra: APB DMA: Enable clock and remove reset. Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit 375b19cd34ea9b1ab338deac20b4bd2c553bf57b Author: Simon Glass Date: Thu Feb 17 08:13:57 2011 -0800 ARM: tegra: Fix hang on reboot This seems to be a regression in 2.6.37. We cannot use writel() here since the resulting wmb() calls l2x0_cache_sync() which uses a spinlock and L1 cache may be off at this point. http://lists.infradead.org/pipermail/linux-arm-kernel/2011-February/041909.html Signed-off-by: Simon Glass Signed-off-by: Colin Cross commit 2b84cb4faab698b1708ce841c554546b1c9b2261 Author: Dima Zavin Date: Thu Sep 2 19:11:11 2010 -0700 ARM: tegra: clock: enable clk reset for non-peripheral clocks Add a new 'reset' clk op. This can be provided for any clock, not just peripherals. Signed-off-by: Dima Zavin Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 14133add42928d6759f35f5d94938adf2cda2bb6 Author: Colin Cross Date: Wed Sep 8 19:41:58 2010 -0700 ARM: tegra: clock: Don't BUG on changing an enabled PLL When updating the CPU PLL frequency, keeping the PLL enabled avoids ramping the PLL all the way down and back up again. Remove the BUG_ON in tegra2_pll_clk_set_rate to allow the rate to change while the PLL is enabled. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit bd41ef55e88ae03381569e51ad6ff3bab35e7b0e Author: Colin Cross Date: Wed Sep 8 20:01:04 2010 -0700 ARM: tegra: clock: Drop debugging Drop the unnecessary pr_debug calls to avoid having to maintain them. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 35c47c3bbaa82b046d645aed2b709ce12ef0e25e Author: Colin Cross Date: Thu Sep 16 14:59:49 2010 -0700 ARM: tegra: clock: Don't use PLL lock bits The PLL lock bits are not reliable, use per-PLL timeouts instead. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit f035530b799a9c945415ad2139bb6494b542639a Author: Colin Cross Date: Wed Oct 13 19:16:02 2010 -0700 ARM: tegra: clock: Initialize clocks that have no enable Assume that any clock that has no enable op is always on. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 41cfe3676d0f4f07ba79d4f64a21450ab02d22cd Author: Colin Cross Date: Sat Feb 12 15:52:04 2011 -0800 ARM: tegra: clock: Drop CPU dvfs The existing version did not extend well to core dvfs, drop it for now until the new clk api with clk_prepare and clk_unprepare is ready and non-atomic clocks are possible. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 3ec349fbf1e88e84d4dffc54b6cb32129a32b7b0 Author: Colin Cross Date: Sat Feb 12 15:52:56 2011 -0800 ARM: tegra: clock: Rearrange static clock tables Make the static clocks look more like the array of clocks so they can all be initalized with the same helper function. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit f151961173bf28047d01b410969f05e485f56d7e Author: Colin Cross Date: Sat Feb 12 16:05:31 2011 -0800 ARM: tegra: clock: Move unshared clk struct members into union Creates a union of a struct for each type of clock to reduce memory usage and clarify which members are used by all clocks and which are used by a single type. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 4729fd7a7dfe7847b4870801ad12222adaeb016c Author: Colin Cross Date: Sat Feb 12 16:43:05 2011 -0800 ARM: tegra: clock: Convert global lock to a lock per clock Give each clock its own lock, and remove all lock traversals from parent to child clocks to prevent AB-BA deadlocks. This brings the locking in line with the common struct clk patches and should make conversion simple. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 89a5fb84dabdf6daeae7d5301a6b1ae4754425dd Author: Colin Cross Date: Wed Oct 20 17:47:59 2010 -0700 ARM: tegra: cpufreq: Take an extra reference to pllx During cpu frequency changes, take an extra reference to pllx so that it doesn't turn off and on while the cpu is temporarily on pllp. If the cpu is moved to pllp permanently, pllx will be turned off. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 310992ca4b994db8c869e1c0f32c004b7a196147 Author: Colin Cross Date: Sat Feb 12 16:14:03 2011 -0800 ARM: tegra: clock: Add shared bus clock type Some clocks may have multiple downstream users that need to request a higher clock rate. Shared bus clocks provide a unique shared_bus_user clock to each user. The frequency of the bus is set to the highest enabled shared_bus_user clock, with a minimum value set by the shared bus. Drivers can use clk_enable and clk_disable to enable or disable their requirement, and clk_set_rate to set the minimum rate. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 4db4afb4df93425708ca19417921bcc6a6306476 Author: Colin Cross Date: Sun Feb 20 23:35:07 2011 -0800 ARM: tegra: clock: Minor cleanups Remove unnecessary uses of #ifdef CONFIG_DEBUG_FS Convert bool assignments from 1 to true Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 0fd857ae09c455f0036bf548fb6ec26b3049f5de Author: Sergei Shtylyov Date: Fri Feb 18 23:44:32 2011 +0300 usb: musb: gadget: DBG() already prints function name In the gadget code, there are several DBG() macro invocations that explicitly print the calling function's name while DBG() macro itself does this anyway; most of these were added by commit f11d893de444965dfd3e55f726533ae1df5c6471 (usb: musb: support ISO high bandwidth for gadget mode). Remove the duplicated printing, somewhat clarifying the messages at the same time... Signed-off-by: Sergei Shtylyov Signed-off-by: Felipe Balbi commit efdf72ad5c42b529286a1991f51badb030043719 Author: Colin Cross Date: Sat Feb 12 18:22:49 2011 -0800 ARM: tegra: Add external memory controller driver The frequency memory bus on Tegra can be adjusted without disabling accesses to memory by updating the memory configuration registers from a per-board table, and then changing the clock frequency. The clock controller and memory controller have an interlock that prevents the new memory registers from taking effect until the clock frequency change. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 6d2968284f63efa1d1849165f9e3a80402509212 Author: Colin Cross Date: Mon Nov 22 18:37:54 2010 -0800 ARM: tegra: clocks: Add emc scaling Add clock ops on the emc peripheral clock that call into the emc driver to update the memory controller registers for the new frequency. Tegra has an interlock between the clock controller and the memory controller that prevents the new register values from taking effect until the clock frequency update occurs. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 7a281284125fe8704ea16fd1ca243971b7c0a105 Author: Colin Cross Date: Mon Nov 22 18:54:36 2010 -0800 ARM: tegra: cpufreq: Adjust memory frequency with cpu frequency Adjusts the minimum memory frequency when the cpu frequency changes. The values are currently hardcoded to a reasonable default. If memory frequency scaling is not enabled this patch will have no effect. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 9743b38969790d33b077ab80b175ea63a0398703 Author: Colin Cross Date: Sat Feb 12 18:24:32 2011 -0800 ARM: tegra: clock: Add function to set SDMMC tap delay The SDMMC controllers have extra bits in the clock source register that adjust the delay between the clock and data to compenstate for delays on the PCB. The values need to be set from the clock code so the clock can be locked during the read-modify-write on the clock source register. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit c2f44a9df9e1f8974911ef538565e301b38e0680 Author: Colin Cross Date: Tue Oct 26 17:33:31 2010 -0700 ARM: tegra: clock: Fix clock issues in suspend The PLLP registers are now being restored by the low-level resume code, and the CPU may be running off PLLP, so don't touch them during clock resume. Save plld, plls, pllu, and audio clock during suspend (originally fixed by Mayuresh Kulkarni ) The lock time for plld is 1000 us, so increase the delay after setting the PLLs. Add a BUG_ON to ensure the size of the suspend context area is correct. Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 9c7dc562cd78784f54261b9bedb44e8b0056f729 Author: Colin Cross Date: Sat Feb 12 21:25:23 2011 -0800 ARM: tegra: clock: Miscellaneous clock updates Correct max rates for pclk and sclk (Originally fixed by Dima Zavin ) Correct max rate for plla (Originally fixed by Stephen Warren ) Remove unnecessary no-op set_rate on audio clocks Add clock lookup entries for grhost, bsea, and vde clocks Update clock clookup entries for vcp, bsea, and vde clocks Add shared clock entries for sclk and emc Add a virtual cop clock to provide a reset op (Originally fixed by Dima Zavin ) Pass set_rate on super clocks through to parent Fix pllx frequency table entry for 608 MHz Remove incorrect plla frequency table entries Acked-by: Olof Johansson Signed-off-by: Colin Cross commit 646e610d403e1ad977530c1b0a87dabc8293b5ef Author: Frank Li Date: Mon Feb 21 14:28:10 2011 +0800 ARM: imx53_smd add uncompress print Signed-off-by: Frank Li Signed-off-by: Sascha Hauer commit 503e1639654b5a7ef80557985fef8a36a785b9e1 Author: Richard Zhao Date: Fri Feb 18 20:26:30 2011 +0800 ARM: imx53: correct Silicon Revision definition following fuse map Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit e33b9d0878ff6b8a543b3423c3019a5dbbf5689a Author: Russell King Date: Sun Feb 20 11:47:41 2011 +0000 ARM: Use long long format when printing meminfo physical addresses Acked-by: Will Deacon Signed-off-by: Russell King commit f60892d3e36dcdd0d9f30db05beae7a446a93f28 Author: Will Deacon Date: Tue Feb 15 12:44:10 2011 +0100 ARM: 6673/1: LPAE: use phys_addr_t instead of unsigned long for start of membanks The unsigned long datatype is not sufficient for mapping physical addresses >= 4GB. This patch ensures that the phys_addr_t datatype is used to represent the start address of a membank, which may reside above the 4GB boundary. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit 516295e5ab4bf986865cfff856d484ec678e3b0b Author: Russell King Date: Sun Nov 21 16:27:49 2010 +0000 ARM: pgtable: add pud-level code Add pud_offset() et.al. between the pgd and pmd code in preparation of using pgtable-nopud.h rather than 4level-fixup.h. This incorporates a fix from Jamie Iles for uaccess_with_memcpy.c. Signed-off-by: Russell King commit 905a74d9a0452b15bb4087a0ea48d017430e4e23 Author: Benoit Cousson Date: Fri Feb 18 14:01:06 2011 +0100 OMAP4: hwmod data: Add rev and dev_attr fields in McSPI - Add a rev attribute to identify various McSPI IP version. - Add a dev_attr structure to provide the number of chipselect supported by the instance. Signed-off-by: Benoit Cousson Cc: Paul Walmsley Cc: Govindraj.R Signed-off-by: Tony Lindgren commit d147cdbef6392f8b46a650bdd2989ba03ae0be9f Author: Yong Shen Date: Wed Jan 19 10:25:42 2011 +0100 ARM: iMX51 BBG: add clock debug information Expose clock debug information to debugfs, which makes it easier for clock system debug by using tools like powerdebug developed by Linaro power management group. For long term, this can go into common clock framework, but so far it depends on the process of common clk API development. Once the common clk API is ready in upstream, the clock debug information will be based on it too. The implementation based on common clk API had also been finished and reviewed with Jeremy. Signed-off-by: Yong Shen Signed-off-by: Nicolas Pitre commit f27c22c6a4dd0f9c7f28f076c4e7da9366afdc54 Author: Linus Walleij Date: Mon Mar 1 13:42:02 2010 +0100 Set the u8500 to use the nomadik mach id Signed-off-by: Nicolas Pitre commit 0d5bc4dc602c156539287e8c2fe3a439c722f60d Author: Philippe Langlais Date: Thu Jan 27 14:37:07 2011 +0100 mach-ux500: set sd/mmc clock rate to 100MHz The clock speed for the SD/MMC clock was incorrect, rectify it. Signed-off-by: Philippe Langlais Signed-off-by: Linus Walleij (cherry picked from commit fabb07c7f171dd948064ae984515de139ad7d1e6) commit e4907eff28231e3b437c981957c7175617ba73a4 Author: Philippe Langlais Date: Thu Jan 27 14:35:37 2011 +0100 mach-ux500: fix inverted SD-card GPIO pin The levelshifter pins were set to inverted values, fix this up. Signed-off-by: Philippe Langlais Signed-off-by: Linus Walleij (cherry picked from commit a7abcd3e4dc34e31a8981494c0a83ef9bd2b9934) commit 80c25683e753b73d09f189de91072486b59ae281 Author: Vishwanath BS Date: Tue Jan 25 20:12:00 2011 -0500 cpufreq: Add documentation for sampling_down_factor Update cpufreq governor documentation for sampling_down_factor tunable parameter. Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit b362d5cb459cb57fd3fa2ecec2b0046ba9189167 Author: Thomas Abraham Date: Wed Feb 9 13:07:44 2011 +0530 ARM: S5P: Fix end address in memory resource information for UART devices For S5P platforms, the end address in memory resource information for UART devices is one byte more than the intended value. Fix this by reducing the end address by one byte. Signed-off-by: Thomas Abraham commit 4f6da9f6a9e50555f5e912202513f60141398eb1 Author: Thara Gopinath Date: Fri Feb 4 05:47:34 2011 +0000 OMAP3: PM: Set/clear T2 bit for Smartreflex on TWL Voltage control on TWL can be done using VMODE/I2C1/I2C_SR. Since almost all platforms use I2C_SR on omap3, omap3_twl_init by default expects that OMAP's I2C_SR is plugged in to TWL's I2C and calls omap3_twl_set_sr_bit. On platforms where I2C_SR is not connected, the board files are expected to call omap3_twl_set_sr_bit(false) to ensure that I2C_SR path is not set for voltage control and prevent the default behavior of omap3_twl_init. Signed-off-by: Nishanth Menon Signed-off-by: Thara Gopinath Signed-off-by: Shweta Gulati commit 5a3e542038950078f2d2c9552234a2016d38ca04 Author: Vishwanath BS Date: Mon Dec 27 15:04:06 2010 +0530 OMAP: Introduce accessory APIs for DVFS This patch introduces accessory APIs for DVFS. Data structures added: 1. omap_dev_user_list: This structure maintains list of frequency requests per device basis. When a device needs to be scaled to a particular frequency, This list is searched to find the maximum request for a given device. If noone has placed any request, device frequency is obtained from device opp table. 2. omap_vdd_dev_list: This strcucture stores device list per vdd basis. Whenever a device is registered with a vdd, it is added to this list. 3. omap_vdd_user_list: User list of devices associated with each voltage domain instance. The user list is implemented using plist structure with priority node populated with the voltage values. 4. omap_vdd_dvfs_info: This structure is used to abstract DVFS related information per VDD basis. It holds pointer to corresponding vdd's voltagedomain instance and pointer to user list. Following APIs have been added to operate on above data structures: 1. omap_dvfs_add_vdd_user - API to add a user into omap_vdd_user_list 2. omap_vdd_user_list - API to remove a user from omap_vdd_user_list 3. omap_dvfs_register_device - API to register a device with vdd 4. omap_dvfs_add_freq_request - API to add a frequency request into omap_dev_user_list 5. omap_dvfs_remove_freq_request - API to remove a frequency request from omap_dev_user_list 6. omap_dvfs_find_voltage - API to find the opp corresponding to given voltage DVFS layer is initialized and basic data structures are allocated and initialized as part of this. This patch is based on Thara's previous DVFS implementation, but with major rework. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit c6f47831f4f29182e0b0c949b1ea838b5e08c672 Author: Thara Gopinath Date: Mon Dec 27 17:04:42 2010 +0530 OMAP: Introduce device specific set rate and get rate in omap_device structure This patch extends the omap_device structure to contain pointers to scale the operating rate of the device and to retrieve the operating rate of the device. This patch also adds the three new APIs in the omap device layer namely omap_device_set_rate that can be called to set a new operating rate for a device, omap_device_get_rate that can be called to retrieve the operating frequency for a device and omap_device_register_dvfs_callbacks to register the device specific set_rate and get_rate functions. The omap_device_set_rate and omap_device_get_rate does some routine error checks and finally calls into the device specific set_rate and get_rate APIs populated through omap_device_populate_rate_fns. Signed-off-by: Thara Gopinath Signed-off-by: Vishwanath BS commit 2e3dbb037730dce7512e041c4ef793a6d8bee52b Author: Vishwanath BS Date: Fri Jan 21 15:18:59 2011 +0530 OMAP: Implement Basic DVFS This patch introduces an API to perform DVFS for a given voltage domain. It takes omap_vdd_dvfs_info pointer as input parameter, computes the highest requested voltage for that vdd and scales all the devices in that vdd to the requested frequency along with voltage scaling. Based on original patch from Thara. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit d79ea126cc51b9d2b80141e92246128b9010133d Author: Vishwanath BS Date: Fri Jan 21 15:26:39 2011 +0530 OMAP: Introduce dependent voltage domain support There could be dependencies between various voltage domains for maintaining system performance or hardware limitation reasons like VDD should be at voltage v1 when VDD is at voltage v2. This patch introduce dependent vdd information structures in the voltage layer which can be used to populate these dependencies for a voltage domain. This patch also adds support to scale the dependent vdd and the scalable devices belonging to it during the scaling of a main vdd through omap_voltage_scale. As part of this, some of the voltage layer structure definitions are moved from voltage.c to voltage.h as it needs to be used in the dvfs layer for dependency voltage handling. Based on original patch from Thara. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit def12feea28270116be43242e9f807107fd717b5 Author: Vishwanath BS Date: Wed Jan 12 21:20:03 2011 +0530 OMAP: Introduce device scale implementation This patch adds omap_device_scale API which can be used to generic device rate scaling. Based on original patch from Thara. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit c00ae4ac1e16e11cb9bd69703614d32df203b688 Author: Thara Gopinath Date: Fri Jan 21 15:32:30 2011 +0530 OMAP: Disable Smartreflex across DVFS This patch disables smartreflex for a particular voltage domain when the the voltage domain and the devices belonging to it is being scaled and re-enables it back once the scaling is done. Signed-off-by: Thara Gopinath Signed-off-by: Vishwanath BS commit 71accc3b55813344d2bb0b696e16c82891d20a07 Author: Thara Gopinath Date: Mon Dec 27 18:01:18 2010 +0530 OMAP3: Introduce custom set rate and get rate APIs for scalable devices This patch also introduces omap3_mpu_set_rate, omap3_iva_set_rate, omap3_l3_set_rate, omap3_mpu_get_rate, omap3_iva_get_rate, omap3_l3_get_rate as device specific set rate and get rate APIs for OMAP3 mpu, iva and l3_main devices. This patch also calls into omap_device_populate_rate_fns during system init to register various set_rate and get_rate APIs with the omap device layer Signed-off-by: Thara Gopinath commit de1c81cf2d50cba25e3ed399d3fe6c412781827f Author: Vishwanath BS Date: Wed Feb 9 16:27:44 2011 +0530 OMAP3: cpufreq driver changes for DVFS support Changes in the omap cpufreq driver for DVFS support. Signed-off-by: Vishwanath BS commit 6e303aef08bb8d23f0c12ee0fffac859dfacac3b Author: Thara Gopinath Date: Wed Aug 18 16:22:43 2010 +0530 OMAP3: Introduce voltage domain info in the hwmod structures. This patch adds voltage domain info in the relevant device hwmod structures so as to enable OMAP3 DVFS support. Signed-off-by: Thara Gopinath commit 1ca0c34dca419039dbe8d1c06488e77dba87b5d7 Author: Thara Gopinath Date: Mon Dec 27 18:32:04 2010 +0530 OMAP3: Add voltage dependency table for VDD1. In OMAP3, for perfomrance reasons when VDD1 is at voltage above 1.075V, VDD2 should be at 1.15V for perfomrance reasons. This patch introduce this cross VDD dependency for OMAP3 VDD1. Signed-off-by: Thara Gopinath commit abe11240a17e4aa518c645d9cd941e1b58703930 Author: Vishwanath BS Date: Wed Jan 12 22:16:28 2011 +0530 OMAP2PLUS: Replace voltage values with Macros Currently voltage values on opp tables are hardcoded. As these voltage values are anyway defined in voltage.h as macros, opp table can reuse these values. This will avoid opp table and voltage layer having conflicting values. Signed-off-by: Vishwanath BS commit 55bdeeb8ad4ee42ecd7f430b0c85710d4898ce31 Author: Thara Gopinath Date: Fri Oct 29 20:44:13 2010 +0530 OMAP2PLUS: Enable various options in defconfig This patch enables Smartreflex and Cpu Freq in the omap2plus defconfig. Signed-off-by: Thara Gopinath commit 0b468f7940283738b097bde55f262205e10491c0 Author: Vishwanath BS Date: Fri Jan 21 16:24:58 2011 +0530 OMAP: Add DVFS Documentation Add Documentation for DVFS Framework Signed-off-by: Vishwanath BS commit c8095bcf06bbc4aee68fb8df440509f0c286dfc8 Author: Steve Sakoman Date: Fri Dec 18 06:39:24 2009 -0800 OMAP: DSS2: Add DSS2 support for Overo based on commit: ef402fe604 from the sakoman tree commit c49ece138bc098625db74e3fa32705a7a77edad0 Author: Andy Doan Date: Sun Feb 20 00:41:44 2011 -0800 OMAP: DSS2: Change driver name to omap_display based on commit(7cfd2de91a7ee8b2a24228b9188a53a8a1383812) Change the driver name from omapdss to omap_display as the driver takes care the display devices ie number of panels, type of panels available in the platform. Change the device name in the board files and 2420,2430,3xxx cloc files from omapdss to omap_display to match the driver name. Signed-off-by: Andy Doan commit c23cd720abfbc707982c03bd9aef7529a3b361da Author: Andy Doan Date: Sun Feb 20 00:45:12 2011 -0800 OMAP: DSS2: replace platform_device_register with omap_display_init based on commit(d4cc8c9b1ef3dc48af305175222eea482534d260) This patch replaces platform_add_devices of DSS with omap_display_init(). This moves away registration of DSS from board files into a common place. Signed-off-by: Andy Doan commit c2ce11d1e764a5d2e76a3afdfa00dd4babcc34d7 Author: Andy Doan Date: Sun Feb 20 00:52:08 2011 -0800 OMAP: overo: move to venc platform driver based on commit(c95a2879d1ee3a0580445e5048dfd7f5353a8435) Signed-off-by: Andy Doan commit 89e446a5f7cd4cb92a67630ea880203b3ec0b7da Author: Andy Doan Date: Sun Feb 20 21:05:18 2011 -0800 OMAP: use generic DPI panel driver for overo Changed to keep consistent with other board files. Based on commit(1e1acca2d11) Signed-off-by: Andy Doan commit d3f9c570219c72736ae2da9071f1efbf804707f7 Author: Kukjin Kim Date: Fri Jan 28 18:22:10 2011 +0900 ARM: S5PV210: Use REGULATOR_SUPPLY macro for regulator consumers To use REGULATOR_SUPPLY macro is cleaner for initializing regulator consumer supply. Signed-off-by: Kukjin Kim commit 9c4f0a390c66cd6e85635f79ff999f1e37458af1 Author: Sylwester Nawrocki Date: Tue Feb 15 14:27:44 2011 +0900 ARM: S5PV210: Enable I2C0 bus on GONI board Add I2C0 bus platform device for camera sensors. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 9a16afdfc2fe1117b2615ed55dff446b789bb3d5 Author: Sylwester Nawrocki Date: Tue Feb 15 14:27:44 2011 +0900 ARM: S5PV210: Add supplies for CIF camera on GONI board Add regulator supplies required for NOON010PC30 CIF sensor. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit c472da6da1f38efee6bcfcce30583531262cebe2 Author: Sylwester Nawrocki Date: Tue Feb 15 14:27:44 2011 +0900 ARM: S5PV210: Change framebuffer window 0 size on GONI Increase virtual size of the frambuffer window 0 for display panning support. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 7d30e8b3815f804139271dfc31962ab74ce89650 Author: Kukjin Kim Date: Mon Feb 14 16:33:10 2011 +0900 ARM: EXYNOS4: Add EXYNOS4 CPU initialization support This patch adds EXYNOS4 CPU support files in mach-exynos4, and basically they are moved from mach-s5pv310 so that it can support Samsung's new CPU name, EXYNOS4. The EXYNOS4 ingegrates a ARM Cortex A9 multi-core. Signed-off-by: Kukjin Kim commit b3ed3a174c419702eddf9fb28636f6e4baa29d03 Author: Kukjin Kim Date: Mon Feb 14 16:08:04 2011 +0900 ARM: EXYNOS4: Update Clock part This patch updates Clock part of EXYNOS4 according to the change of ARCH name, EXYNOS4. Signed-off-by: Kukjin Kim commit c81a24ff8f4efda02ffaa0c3170155550bcae339 Author: Kukjin Kim Date: Mon Feb 14 16:10:55 2011 +0900 ARM: EXYNOS4: Update IRQ part This patch updates IRQ part of EXYNOS4 according to the change of ARCH name, EXYNOS4. Signed-off-by: Kukjin Kim commit 3c31336dc5b7ea5b6d6168a8c38c46dd54d65e95 Author: Kukjin Kim Date: Mon Feb 14 16:13:27 2011 +0900 ARM: EXYNOS4: Update Timer part This patch updates Timer part of EXYNOS4 according to the change of ARCH name, EXYNOS4. Signed-off-by: Kukjin Kim commit 3db3ae5eb94eb8579991174fe66999261b66018d Author: Kukjin Kim Date: Mon Feb 14 16:22:36 2011 +0900 ARM: EXYNOS4: Update device support This patch updates device support of EXYNOS4 according to the change of ARCH name, EXYNOS4. Cc: Ben Dooks Signed-off-by: Kukjin Kim commit d11135ca4f6e626e1c8aa78de6d472a11a9e9811 Author: Kukjin Kim Date: Mon Feb 14 14:59:52 2011 +0900 ARM: EXYNOS4: Moved board support files This patch moves board support files, SMDKC210, SMKDV310 and UNIVERSAL_C210 into arch/arm/mach-exynos4/ according to the change of ARCH name, EXYNOS4. Cc: Kyungmin Park Signed-off-by: Kukjin Kim commit 10606aadb046d008c88d1a99b309357ca33d590e Author: Kukjin Kim Date: Mon Feb 14 15:05:27 2011 +0900 ARM: EXYNOS4: Update Kconfig and Makefile for the new ARCH_EXYNOS4 This patch changes the Kconfig and Makefile for the new ARCH_EXYNOS4. It also updates arch/arm/Kconfig, Makeifile and arch/arm/mm/Kconfig to include support for the new ARCH_EXYNOS4. Cc: Russell King Signed-off-by: Kukjin Kim commit a1fe724a47e4a06bb022cac400f181eeac49583d Author: Kukjin Kim Date: Mon Feb 14 16:59:54 2011 +0900 ARM: exynos4_defconfig: Add defconfig for EXYNOS4 Cc: Russell King Signed-off-by: Kukjin Kim commit fc406cd84b051f39f870b8050303941877f7b0b5 Author: Kukjin Kim Date: Mon Feb 14 16:52:45 2011 +0900 mtd: OneNAND: Change dependency of ARCH_EXYNOS4 This patch updates EXYNOS4 OneNAND support according to the change of ARCH name, EXYNOS4. Cc: Kyungmin Park Signed-off-by: Kukjin Kim commit b4a5660da011a0d55cac2ead05a9171d5544d272 Author: Kukjin Kim Date: Mon Feb 14 16:53:58 2011 +0900 ASoC: Change dependency of ARCH_EXYNOS4 This patch changes dependency of ARCH_EXYNOS4 from ARCH_S5PV310 according to the change of ARCH name, EXYNOS4. Acked-by: Jassi Brar Cc: Liam Girdwood Acked-by: Mark Brown Signed-off-by: Kukjin Kim commit 9c0ff728b86361f4b5c58b9acf9853d682a1b8f8 Author: Kukjin Kim Date: Mon Feb 14 16:57:58 2011 +0900 tty: Change dependency of ARCH_EXYNOS4 This patch changes dependency of ARCH_EXYNOS4 from ARCH_S5PV310 according to the change of ARCH name, EXYNOS4. Cc: Ben Dooks Cc: Greg Kroah-Hartman Signed-off-by: Kukjin Kim commit 73a92aa4f1d6786eaa5b4e637eee648db0dfd7a7 Author: Rajendra Nayak Date: Thu Feb 3 12:45:22 2011 +0000 omap3sdp: clean regulator supply mapping in board file clean the regulator supply mapping data in the 3430sdp board file (which is spread all over) by moving all of them together. Also use the REGULATOR_SUPPLY macro and remove instances of mapping dev pointers at run time. Additonally define all regulator_consumer_supply as array's and use ARRAY_SIZE macro to define num_consumer_supplies. Signed-off-by: Rajendra Nayak Reviewed-by: Felipe Balbi Signed-off-by: Tony Lindgren commit 530a5a50168e5e14ba2fedd5e66796156b1df565 Author: Balaji T K Date: Mon Feb 7 20:59:59 2011 +0530 OMAP4: Fix -EINVAL for vana, vcxio, vdac Fixed regulators in twl6030 do not have set_voltage hook. Regulator core returns -22 if set_voltage is NULL and apply_uV is set while applying the constraint to set voltage resulting in failure during probe of these regulators. Do not set apply_uV for fixed regulators which don't have set_voltage. machine_constraints_voltage: VANA: failed to apply 2100000uV constraint twl_reg twl_reg.43: can't register VANA, -22 twl_reg: probe of twl_reg.43 failed with error -22 machine_constraints_voltage: VCXIO: failed to apply 1800000uV constraint twl_reg twl_reg.44: can't register VCXIO, -22 twl_reg: probe of twl_reg.44 failed with error -22 machine_constraints_voltage: VDAC: failed to apply 1800000uV constraint twl_reg twl_reg.45: can't register VDAC, -22 twl_reg: probe of twl_reg.45 failed with error -22 Signed-off-by: Balaji T K Signed-off-by: Tony Lindgren commit d3f02fc3409824ff9b29bc23e60e76da768a1205 Author: Balaji T K Date: Mon Feb 7 16:08:47 2011 +0000 OMAP2: add regulator for MMC1 Signed-off-by: Balaji T K Tested-by: Kishore Kadiyala Signed-off-by: Tony Lindgren commit 66e171a3e8ed9179b2754831ae138e8fc251e4c7 Author: Panduranga Mallireddy Date: Tue Feb 15 03:40:32 2011 -0500 omap: panda: wlan board muxing Add board muxing to support the wlan wl1271 chip that is hardwired to mmc5 (fifth mmc controller) on the PANDA. Based on the wlan board muxing for zoom3 by Ohad Ben-Cohen Signed-off-by: Panduranga Mallireddy Signed-off-by: Tony Lindgren commit cdc43482713d0af97d30d9b5d3c53b18fcec5d35 Author: Panduranga Mallireddy Date: Tue Feb 15 03:40:33 2011 -0500 omap: select REGULATOR_FIXED_VOLTAGE by default for panda and sdp4430 Power to the wl12xx wlan device is controlled by a fixed regulator. Boards that have the wl12xx should select REGULATOR_FIXED_VOLTAGE. Signed-off-by: Panduranga Mallireddy Signed-off-by: Tony Lindgren commit edc840613c0fff590cad2deafdeffe6ea51405f7 Author: Panduranga Mallireddy Date: Tue Feb 15 03:40:34 2011 -0500 omap: panda: add fixed regulator device for wlan Add a fixed regulator vmmc device to enable power control of the wl1271 wlan device. Based on the patch for zoom by Ohad Ben-Cohen Signed-off-by: Panduranga Mallireddy Signed-off-by: Tony Lindgren commit b17e0979113b7b75bb3f73e2243d156f91698edb Author: Panduranga Mallireddy Date: Tue Feb 15 03:40:35 2011 -0500 omap: panda: add mmc5/wl1271 device support Add MMC5 support on PANDA, which has the wl1271 device hardwired to. The wl1271 is a 4-wire, 1.8V, embedded SDIO WLAN device with an external IRQ line, and power-controlled by a GPIO-based fixed regulator. Based on the patch for mmc3/wl1271 device support for zoom by Ohad Ben-Cohen Signed-off-by: Panduranga Mallireddy Signed-off-by: Tony Lindgren commit 7715db5aeca09d853be4f2eb0bc688a970220621 Author: Kishore Kadiyala Date: Tue Feb 15 03:40:36 2011 -0500 OMAP: hsmmc: Enable MMC4 and MMC5 on OMAP4 platforms OMAP4 supports up to 5 MMC controllers, but only 3 of these were initialized. MMC5 is used by wl12xx chip. So initialize MMC4 and MMC5. Signed-off-by: Kishore Kadiyala Signed-off-by: Panduranga Mallireddy Signed-off-by: Tony Lindgren commit f6b0fa02e8b0708d17d631afce456524eadf87ff Author: Russell King Date: Sun Feb 6 15:48:39 2011 +0000 ARM: pm: add generic CPU suspend/resume support This adds core support for saving and restoring CPU coprocessor registers for suspend/resume support. This contains support for suspend with ARM920, ARM926, SA11x0, PXA25x, PXA27x, PXA3xx, V6 and V7 CPUs. Tested on Assabet and Tegra 2. Tested-by: Colin Cross Tested-by: Kukjin Kim Signed-off-by: Russell King commit 4f5ad99bb5331c571371f94ff4423cbb366c460b Author: Russell King Date: Sun Feb 6 17:41:26 2011 +0000 ARM: pm: convert PXA to generic suspend/resume support Signed-off-by: Russell King commit 96c20015dae59e58d055c1e2e17a811e0d1f1d03 Author: Russell King Date: Sun Feb 6 17:41:40 2011 +0000 ARM: pm: convert sa11x0 to generic suspend/resume support Convert sa11x0 to use the generic CPU suspend/resume support, rather than implementing its own version. Tested on Assabet. Signed-off-by: Russell King commit 2e2f3d3792de5913897b6bb49ac13915b0b020d5 Author: Russell King Date: Sun Feb 6 17:39:31 2011 +0000 ARM: pm: convert samsung platforms to generic suspend/resume support Tested-by: Kukjin Kim Signed-off-by: Russell King commit 941aefac4c243cf407d7665d3e64beb32d556acf Author: Russell King Date: Fri Feb 11 11:32:19 2011 +0000 ARM: pm: allow generic sleep code to be used with SMP CPU idle Allow the generic sleep code to be used with SMP CPU idle by storing N CPU stack pointers rather than just one. Tested on Assabet and Tegra 2. Tested-by: Colin Cross Signed-off-by: Russell King commit 42e40544ed3d58be1f01408898bd09f9164e47ab Author: Will Deacon Date: Mon Feb 21 18:12:27 2011 +0000 ARM: 6751/1: vexpress: select applicable errata workarounds in Kconfig The Cortex-A9 tile on the Versatile Express suffers from a number of engineering errata. This patch selects workarounds in the ARCH_VEXPRESS_CA9X4 Kconfig entry so that users don't need to worry about which ones to apply. Reported-by: Ulrich Weigand Signed-off-by: Will Deacon Signed-off-by: Nicolas Pitre commit 3b03b58dab847883e6b9a431558c7d8e43fa94c6 Author: Benoit Cousson Date: Tue Feb 22 10:36:27 2011 +0100 OMAP4: hwmod data: Prevent timer1 to be reset and idle during init Since the timer1 is now started before the hwmod_init, we cannot reset it and idle it anymore. Add the appropriate flags to prevent the hwmod framework to do that. Signed-off-by: Benoit Cousson Cc: Kevin Hilman Acked-by: Paul Walmsley Signed-off-by: Tony Lindgren commit 78f379b574dcbe656fa21ea72e95f8dff232e233 Author: Colin Cross Date: Wed Oct 20 19:19:58 2010 -0700 ARM: tegra: clock: Refcount periph clock enables Some peripheral clocks share enable bits. Refcount the enables so that calling clk_disable on one clock will not turn off another clock. Signed-off-by: Colin Cross Acked-by: Olof Johansson commit 421186e71000c067c2687baeffde62954a80cdcc Author: Colin Cross Date: Sat Feb 12 18:21:47 2011 -0800 ARM: tegra: clock: Round rate before setting rate Call the clock's round_rate op, if it exists, before calling the set_rate op. This will help later when dvfs is added, dvfs needs to know what the final rate will be before the frequency changes. Also requires fixes to the round rate functions to ensure calling round rate and then set rate will not cause the frequency to be rounded down twice. When picking clock divider values, the clock framework picks the closest frequency that is lower than the requested frequency. If the new frequency calculated from the divider value is rounded down, and then passed to set_rate, it will get rounded down again, possibly resulting in a frequency two steps lower than the original requested frequency. Fix the problem by rounding up when calculating the frequency coming out of a clock divider, so if that frequency is requested again, the same divider value will be picked. Signed-off-by: Colin Cross Acked-by: Olof Johansson commit 1be3d0537516fa42825406b4bc1291b77ed62614 Author: Colin Cross Date: Mon Feb 21 16:44:07 2011 -0800 ARM: tegra: clock: prevent accidental disables of cpu clock Peripheral clocks that have no clock enable bit in the enable registers have their clk_num set to 0. Bit 0 in the clock enable registers is the CPU clock. Prevent disables on these peripheral clocks from accidentally disabling the CPU clock. Signed-off-by: Colin Cross Acked-by: Olof Johansson commit 0cf6230af909a86f81907455eca2a5c9b8f68fe6 Author: Colin Cross Date: Mon Feb 21 17:10:14 2011 -0800 ARM: tegra: Move tegra_common_init to tegra_init_early Move tegra_common_init to tegra_init_early, and set it as the init_early entry in the machine struct. Initializes the clocks earlier so that timers can enable their clocks. Also reorders the members in the Harmony and Trimslice boards' machine structs to match the order they are called in. Signed-off-by: Colin Cross Acked-by: Olof Johansson commit f60e8ccbfce6b40a112bddef5b4926b7416b4f92 Author: Uwe Kleine-König Date: Tue Feb 22 21:26:42 2011 +0100 ARM: fix build failure Commit 06824ba (ARM: tlb: delay page freeing for SMP and ARMv7 CPUs) introduced a build failure for builds with CONFIG_SWAP=n: In file included from arch/arm/mm/init.c:27: arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu': arch/arm/include/asm/tlb.h:101: error: implicit declaration of function 'release_pages' arch/arm/include/asm/tlb.h: In function 'tlb_remove_page': arch/arm/include/asm/tlb.h:165: error: implicit declaration of function 'page_cache_release' Fix that by #including in as it's done by x86. Signed-off-by: Uwe Kleine-König Signed-off-by: Nicolas Pitre commit 62248ae826f51ac2e3d3902c0a657043d95b731c Author: Colin Cross Date: Mon Feb 21 17:04:37 2011 -0800 ARM: tegra: timer: Enable timer and rtc clocks Enable the timer and rtc clocks to prevent them being turned off by the bootloader clock disabling code. Signed-off-by: Colin Cross Acked-by: Olof Johansson commit cd51d0edecc37f1061a5091450e6c7e2a8a16d68 Author: Colin Cross Date: Mon Feb 21 17:05:36 2011 -0800 ARM: tegra: common: Enable core clocks Enable the cpu, emc (memory controller) and csite (debug and trace controller) clocks during init to prevent them from being disabled by the bootloader clock disabling code. Signed-off-by: Colin Cross Acked-by: Olof Johansson commit e19e881fcbd08bac0e6c9187ade8e3802d8334df Author: Stephen Warren Date: Sat Feb 19 20:38:54 2011 -0700 ARM: tegra: Fix typo in TEGRA_IRQ_TO_GPIO Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit 38376866a1fe5b1e6d9510ec4913c2b461f456f3 Author: Mark Brown Date: Tue Feb 22 20:35:24 2011 +0000 ARM: tegra: Hide EMC scaling config behind ARCH_TEGRA The option isn't terribly useful on other ARM platforms. Signed-off-by: Mark Brown Acked-by: Olof Johansson Signed-off-by: Colin Cross commit fef3153c1810bd0de1e7dc9ed42446c4293ca396 Author: Grant Likely Date: Tue Feb 22 17:14:37 2011 -0700 arm/dt: Make __vet_atags also accept a dtb image The dtb is passed to the kernel via register r2, which is the same method that is used to pass an atags pointer. This patch modifies __vet_atags to not clear r2 when it encounters a dtb image. v2: fixed bugs pointed out by Nicolas Pitre Signed-off-by: Grant Likely commit b8979662f33a3298f2f2910a83ab5b9fc8e6db4d Author: Jeremy Kerr Date: Tue Feb 22 17:15:22 2011 -0700 arm/dt: Allow CONFIG_OF on ARM Add some basic empty infrastructure for DT support on ARM. v3: - moved cmd_line export and initrd setup to this patch to make the series bisectable. - switched to alloc_bootmem_align() for allocation when unflattening the device tree. memblock_alloc() was not the right interface. Signed-off-by: Jeremy Kerr Signed-off-by: Grant Likely commit dbc179e694a84552e5c3dbb448d88c76ccff9797 Author: Grant Likely Date: Tue Feb 22 17:15:33 2011 -0700 arm/dt: consolidate atags setup into setup_machine_atags In preparation for adding device tree support, this patch consolidates all of the atag-specific setup into a single function. v4: - adapt to the removal of lookup_machine_type() - break out dump of machine_desc table into dump_machine_table() because the device tree probe code will use it. - Add for_each_machine_desc() macro Signed-off-by: Grant Likely commit 2172e7f25d4baa42b7ae9592499d2e3f8e4a0490 Author: Grant Likely Date: Tue Feb 22 17:58:15 2011 -0700 arm/dt: probe for platforms via the device tree If a dtb is passed to the kernel then the kernel needs to iterate through compiled-in mdescs looking for one that matches and move the dtb data to a safe location before it gets accidentally overwritten by the kernel. This patch creates a new function, setup_machine_fdt() which is analogous to the setup_machine_atags() created in the previous patch. It does all the early setup needed to use a device tree machine description. v4: - Dump some output when a matching machine_desc cannot be found v3: - Added processing of reserved list. - Backed out the v2 change that copied instead of reserved the dtb. dtb is reserved again and the real problem was fixed by using alloc_bootmem_align() for early allocation of RAM for unflattening the tree. - Moved cmd_line and initrd changes to earlier patch to make series bisectable. v2: Changed to save the dtb by copying into an allocated buffer. - Since the dtb will very likely be passed in the first 16k of ram where the interrupt vectors live, memblock_reserve() is insufficient to protect the dtb data. [based on work originally written by Jeremy Kerr ] Signed-off-by: Grant Likely commit 662cdbcc77f9fb2c731f279fccd37ec7551a3d18 Author: Grant Likely Date: Tue Feb 22 17:58:31 2011 -0700 arm/dt: Basic versatile devicetree support This patch adds adds very basic support for booting versatile with a device tree. It simply allows the existing machine_descs to match against the versatile ab & pb compatible values so that the kernel can boot. Kernel parameters and the initrd pointer is read out of the tree instead of atags. This is not complete device tree support. This change will be reverted when a new machine_desc is added that can populate the versatile device registrations directly from data in the tree instead of using hard coded data. That change will be made in a future patch. Signed-off-by: Grant Likely commit 14e7b6c52043f19f876096ba4c7377e994140acb Author: Grant Likely Date: Tue Feb 22 17:58:40 2011 -0700 arm/dt: Basic tegra devicetree support This patch adds adds very basic support for booting tegra with a device tree. It simply allows the existing machine_descs to match against the tegra compatible values so that the kernel can boot. Kernel parameters and the initrd pointer is read out of the tree instead of atags. This is not complete device tree support. This change will be reverted when a new machine_desc is added that can populate the device registrations directly from data in the tree instead of using hard coded data. That change will be made in a future patch. v2: Fixed cut-and-paste error in commit text Signed-off-by: Grant Likely commit 632095ea15db51d73d3d084ee18620d3ac1cb040 Author: Olof Johansson Date: Sun Feb 13 19:12:27 2011 -0800 ARM: tegra: add tegra_gpio_table and tegra_gpio_config To give one place to setup the pins that are used as GPIOs instead of as their pinmuxed functions. Specifying enabled as false explicitly disables the gpio mode of that pin (if left on by firmware). This should remove the need for calling these from specific drivers and thus reduce tegra-specific code from them. Signed-off-by: Olof Johansson Acked-by: Erik Gilling commit 0ec1b606c0b13f33816847507f9d72be30abacd1 Author: Olof Johansson Date: Tue Feb 22 11:29:23 2011 -0800 ARM: tegra: harmony: move over to tegra_gpio_config Move harmony over to use the new gpio config table instead of having separate settings in various parts of the code. (The tegra sdhci driver should have the tegra_gpio_* ops removed, but that will be done separately from this change.) Signed-off-by: Olof Johansson Acked-by: Erik Gilling commit 85940b4a1761aa5ab8d0ac1557756953788af155 Author: Olof Johansson Date: Sat Feb 19 16:26:18 2011 -0800 ARM: tegra: common device resources Add a common location to register resources for used on-chip devices that are commonly configured on boards. Devices will be added to this file as more drivers are added that can make use of them. This is based on work contributed by several people, most of it from Colin Cross and Erik Gilling. Signed-off-by: Olof Johansson Acked-by: Colin Cross commit ec243a071d32af0350449c220d1de7c437088879 Author: Olof Johansson Date: Sat Feb 19 21:01:46 2011 -0800 ARM: tegra: remove stale nvidia atag handler Remove dead atag handling code for nvidia-specific tags. Signed-off-by: Olof Johansson Acked-by: Colin Cross commit 875d4af6a3bdf548ebf069c1f4254c6ae1edae93 Author: Olof Johansson Date: Sat Feb 19 16:39:37 2011 -0800 ARM: tegra: harmony: register sdhci devices Add the 3 sdhci devices that are available on Harmony as platform devices. Two go to slots (one 4-lane, one 8-lane), and one goes to onboard wifi. Signed-off-by: Olof Johansson Acked-by: Colin Cross commit 8c396604d5de26a48a390cf442dd3b04a20f13b1 Author: Olof Johansson Date: Sun Feb 20 16:20:26 2011 -0800 ARM: tegra: harmony: fix pinmux for MMC slot Turns out MMC2 (the bayonet 4-lane port) wasn't enabled in the original pinmux. Fix that. Signed-off-by: Olof Johansson Acked-by: Colin Cross commit d9a51fe75da73084b6c38f7f4450ad4c1bef8224 Author: Olof Johansson Date: Sat Feb 19 17:25:32 2011 -0800 ARM: tegra: add seaboard, wario and kaen boards This adds board support for the Seaboard eval platform and some of the derivatives that are very similar. Since they only differ in some very minor ways, most of the code is shared. Signed-off-by: Olof Johansson Acked-by: Colin Cross commit 996746ca127d722c279325552cdcc48b20079a61 Author: Senthilvadivu Guruswamy Date: Tue Feb 22 09:50:36 2011 +0200 OMAP2420: hwmod data: add DSS DISPC RFBI VENC Hwmod needs database of all IPs in a system. This patch generates the hwmod database for OMAP2420 Display Sub System,. Since DSS is also considered as an IP as DISPC, RFBI, name it as dss_core. Acked-by: Benoit Cousson Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Tomi Valkeinen commit de56dbb6c1f8de1f54b09111eb50d8f9b8b073b2 Author: Senthilvadivu Guruswamy Date: Tue Feb 22 09:51:15 2011 +0200 OMAP2430: hwmod data: add DSS DISPC RFBI VENC Hwmod needs database of all IPs in a system. This patch generates the hwmod database for OMAP2430 Display Sub System. Since DSS is also considered as an IP as DISPC, RFBI, name it as dss_core. Acked-by: Benoit Cousson Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Tomi Valkeinen commit e04d9e1e4825cb3f6cfc238d7357ef084952eab1 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:51 2011 +0000 OMAP3: hwmod data: add DSS DISPC RFBI DSI VENC Hwmod needs database of all IPs in a system. This patch generates the hwmod database for Display Sub System applicable for OMAP3430 and OMAP36xx. DSS is also considered as an IP as DISPC, RFBI and named as dss_core. For all the IP modules in DSS, same clock is needed for enabling. Hwmod sees DSS IPs as independent IPs, so same clock has to be repeated for .main_clk in each IP. This patch defines separate hwmod databases for OMAP3430ES1 and (OMAP3430ES2 and OMAP36xx) as OMAP3430ES1 does not have IDLEST bit to poll on for dss IP, and also the firewall regions are different between 3430es1 and later. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Tomi Valkeinen commit 1dde9732d543f30d4297e8b74329c5ce797b5d16 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:53 2011 +0000 OMAP2, 3: DSS2: Use Regulator init with driver name Use driver name in regulator inits needed for display instead of using device structure name. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit b7ee79abcc1bd549eadf5a9852657058e6ecca47 Author: Sumit Semwal Date: Mon Jan 24 06:21:54 2011 +0000 OMAP2, 3: DSS2: Create new file display.c for central dss driver registration. A new file display.c is introduced for display driver init, which adds a function omap_display_init to do the DSS driver registration. This is the first step in moving away registration of DSS from board files into a common place. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit d5e13227c32f12de3afb2e26a86bc9f3e5aaf7b6 Author: Senthilvadivu Guruswamy Date: Tue Feb 22 11:24:50 2011 +0200 OMAP2, 3: DSS2: board files: replace platform_device_register with omap_display_init() This patch updated board files to replace platform_device_register or platform_add_devices of DSS with omap_display_init(). This moves away registration of DSS from board files into a common place. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Tomi Valkeinen commit 48a8b51c20b28a7272308e8d8cde02253ca115e4 Author: Dave Martin Date: Tue Feb 8 16:09:00 2011 +0000 ARM: omap4: Provide do_wfi() for Thumb-2 For CONFIG_THUMB2_KERNEL, the existing definition of do_wfi() will insert invalid code into the instruction stream. Any assembler which can assemble Thumb-2 is guaranteed to accept the "wfi" mnemonic, so for the Thumb-2 case, just use the mnemonic. The ARM case is left as-is. Signed-off-by: Dave Martin commit 6b0eb82683ac90bbe3ea8142df37967b3ace625f Author: Dave Martin Date: Sun Dec 5 11:36:57 2010 +0000 ARM: omap4: Convert END() to ENDPROC() for correct linkage with CONFIG_THUMB2_KERNEL Code marked with ENTRY() also needs a matching ENDPROC() directive, in order to ensure that the type and instruction set of the symbol are correctly annotated. ENDPROC() tags the affected symbol as a function symbol, which will ensure that link-time fixups don't accidentally switch to the wrong instruction set. Signed-off-by: Dave Martin Tested-by: Santosh Shilimkar Acked-by: Santosh Shilimkar commit 1c8e08cb8de3362f38391534c56aed78547ec244 Author: Dave Martin Date: Wed Feb 2 16:17:27 2011 +0000 ARM: omap3: Remove hand-encoded SMC instructions For various reasons, Linux now only officially supports being built with tools which are new enough to understand the SMC instruction. Replacing the hand-encoded instructions when the mnemonic also allows for correct assembly in Thumb-2 (otherwise, the result is random data in the middle of the code). The Makefile already ensures that this file is built with a high enough gcc -march= flag (armv7-a). Jean Pihet: Tested OK on OMAP3 with and without CONFIG_THUMB2_KERNEL set. PM RETention and OFF modes in cpuidle OK. Signed-off-by: Dave Martin Tested-by: Santosh Shilimkar Reviewed-by: Jean Pihet Tested-by: Jean Pihet commit 085bc24f94d41590b12f4b4d41224fa3938b6db1 Author: Dave Martin Date: Wed Feb 2 16:49:51 2011 +0000 ARM: omap3: Thumb-2 compatibility for sram34xx.S * Build unconditionally as ARM for correct interoperation with OMAP firmware. * Remove deprecated PC-relative stores * Add the required ENDPROC() directive for each ENTRY(). * .align before data words Signed-off-by: Dave Martin commit 55764b0aa5dbb00f1620dce5b8493ef6e15a05d0 Author: Dave Martin Date: Wed Feb 16 09:53:05 2011 +0000 ARM: omap3: Thumb-2 compatibility for sleep34xx.S * Build unconditionally as ARM for correct interoperation with OMAP firmware. * Fix an out-of-range ADR when building for ARM. * Remove deprecated PC-relative stores. * Add the required ENDPROC() directive for each ENTRY(). * .align before data words. * Handle non-interworking return from v7_flush_dcache_all. Jean Pihet: Tested OK on OMAP3 with and without CONFIG_THUMB2_KERNEL set. PM RETention and OFF modes in cpuidle OK. Signed-off-by: Dave Martin Reviewed-by: Jean Pihet Tested-by: Jean Pihet commit b9dee26e9fb1987f7aab0fc49cb62f6ce629799a Author: Dave Martin Date: Tue Jan 11 11:54:43 2011 -0600 ARM: Thumb-2: Symbol manipulation macros for function body copying In low-level board support code, there is sometimes a need to copy a function body to another location at run-time. A straightforward call to memcpy doesn't work in Thumb-2, because bit 0 of external Thumb function symbols is set to 1, indicating that the function is Thumb. Without corrective measures, this will cause an off-by-one copy, and the copy may be called using the wrong instruction set. This patch adds an fncpy() macro to help with such copies. Particular care is needed, because C doesn't guarantee any defined behaviour when casting a function pointer to any other type. This has been observed to lead to strange optimisation side-effects when doing the arithmetic which is required in order to copy/move function bodies correctly in Thumb-2. Thanks to Russell King and Nicolas Pitre for their input on this patch. Signed-off-by: Dave Martin Tested-by: Jean Pihet Tested-by: Tony Lindgren Tested-by: Kevin Hilman commit 4cdc84b1e7579ee7a5992351804b46453d6ffab2 Author: Jean Pihet Date: Wed Jan 19 14:03:52 2011 -0800 omap: use fncpy to copy the PM code functions to SRAM The new fncpy API is better suited for copying some code to SRAM at runtime. This patch changes the ad-hoc code to the more generic fncpy API. Tested OK on OMAP3 in low power modes (RET/OFF) using omap2plus_defconfig with !CONFIG_THUMB2_KERNEL. Compile tested on OMAP1/2 using omap1_defconfig. Signed-off-by: Jean Pihet Acked-by: Kevin Hilman Tested-by: Kevin Hilman commit e7e9a3a79201bbe65fe0fad512563fb4c5609294 Author: Jean Pihet Date: Tue Jan 25 18:48:06 2011 +0100 OMAP: fix fncpy API call Fix a potential problem with function types when calling the fncpy API to copy the PM code functions to SRAM. Signed-off-by: Jean Pihet commit c89067880b6c2e10519ea8bb78a9185b51033984 Author: Dave Martin Date: Fri Nov 5 17:39:44 2010 +0000 ARM: Add local symbols in relocate_kernel.S to work around gas bugs In rare cases, gas is unable to fix up references to global symbols in the same object when building for Thumb-2. This patch provides a dirty temporary workaround and shouldn't be merged upstream. The issue affects at least ubuntu/linaro binutils (2.20.51.20100908-0ubuntu2) and binutils upstream. Allegedly, there's a fix in the pipeline. Since this patch works around a known toolchain bug, it is not expected to merge upstream. Signed-off-by: Dave Martin commit 2fcb88c541cf98b87a38a0f27b641663aded8802 Author: Dave Martin Date: Fri Jan 28 17:19:26 2011 +0000 ARM: omap3: Work around assembler errors in sleep34xx.S In rare cases, gas is unable to fix up references to global symbols in the same object when building for Thumb-2. This patch provides a dirty temporary workaround and shouldn't be merged upstream. The issue affects at least ubuntu/linaro binutils (2.20.51.20100908-0ubuntu2) and binutils upstream. Allegedly, there's a fix in the pipeline. Signed-off-by: Dave Martin commit 4760195df00982b4e388e859b41a63feed6d0cab Author: Dave Martin Date: Tue Feb 15 17:04:19 2011 +0000 ARM: Thumb-2: Reflect ARM/Thumb-2 configuration in module vermagic Loading Thumb-2 modules into an ARM kernel or vice-versa isn't guaranteed to work safely, since the kernel is not interworking- aware everywhere. This patch adds "thumb2" to the module vermagic when CONFIG_THUMB2_KERNEL is enabled, to help avoid accidental loading of modules into the wrong kernel. Signed-off-by: Dave Martin Acked-by: Nicolas Pitre commit dce72dd08c976c9e5e1367bf994b306b15ae87fe Author: Nicolas Pitre Date: Mon Feb 21 07:00:32 2011 +0100 ARM: 6749/1: fold lookup_machine_type() into setup_machine() Since commit 6fc31d54 there is no callers for lookup_machine_type() other than setup_machine(). And if the former fails it won't return, therefore the error path in the later is dead code. Let's clean things up by merging them together. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 3572bea8cbc57f0bef1e0f4580c01717df7026d8 Author: Nicolas Pitre Date: Mon Feb 21 06:57:33 2011 +0100 ARM: 6748/1: ignore mdesc->boot_params if out of range The initial MMU table created in head.S contains a 1 MB mapping at the start of memory to let the early kernel boot code access the boot params specified by mdesc->boot_params. When using CONFIG_ARM_PATCH_PHYS_VIRT it is possible for the kernel to have a different idea of where the start of memory is at run time, making the compile-time determined mdesc->boot_params pointing to a memory area which is not mapped. Any access to the boot params in that case will fault and silently hang the kernel at that point. It is therefore a better idea to simply ignore mdesc->boot_params in that case and give the kernel a chance to print some diagnostic on the console later. If the bootloader provides a valid pointer in r2 to the kernel then this is used instead of mdesc->boot_params, and an explicit mapping is already created in the initial MMU table for it. It is therefore a good idea to use that facility when using a relocated kernel. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit bf0c11183fc3a2acce56d2b53f2a117322bd3c3b Author: Uwe Kleine-König Date: Fri Feb 18 21:31:41 2011 +0100 ARM: 6744/1: mxs: irq_data conversion Signed-off-by: Uwe Kleine-König Acked-by: Lennert Buytenhek Acked-by: Sascha Hauer Signed-off-by: Russell King commit 394d5aefcdecb51bbf7d6df757e73559c9692a08 Author: Rob Herring Date: Sat Feb 12 15:58:25 2011 +0100 ARM: 6662/1: amba: make amba_bustype non-static Export amba_bustype struct so it can be used for things like registering bus notifiers. Signed-off-by: Rob Herring Signed-off-by: Russell King commit aa25afad2ca60d19457849ea75e9c31236f4e174 Author: Russell King Date: Sat Feb 19 15:55:00 2011 +0000 ARM: amba: make probe() functions take const id tables Make Primecell driver probe functions take a const pointer to their ID tables. Drivers should never modify their ID tables in their probe handler. Signed-off-by: Russell King commit c862aab0bc14060bfa8351ff1e93cbce9669abcf Author: Russell King Date: Sat Feb 19 15:55:26 2011 +0000 ARM: amba: make internal ID table handling const As all probe() functions now take a const pointer, we can make the bus level code deal with const pointers too. Signed-off-by: Russell King commit 2d00880fa842e7dd34f5bb5eb3b5f8337b068be5 Author: Russell King Date: Sat Feb 19 15:55:48 2011 +0000 ARM: amba: make amba_driver id_table const Now that the bus level code deals with a const id table, we can also make the ID table in the amba_driver structure also const. Signed-off-by: Russell King commit ba74ec7f6b2bf9e1b5d0f2c5cef08766944cb2c8 Author: Rabin Vincent Date: Wed Feb 23 04:33:17 2011 +0100 ARM: 6758/1: amba: support pm ops Support pm_ops in the AMBA bus, required to allow drivers to use runtime pm. The implementation of AMBA bus pm ops is based on the platform bus implementation. Acked-by: Rafael J. Wysocki Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 459c1517f9873b198af7dcded8d8cc84749bbb69 Author: Russell King Date: Sat Jan 8 11:49:20 2011 +0000 ARM: DMA: top-down allocation in DMA coherent region Achieve better usage of the DMA coherent region by doing top-down allocation rather than bottom up. If we ask for a 128kB allocation, this will be aligned to 128kB and satisfied from the very bottom address. If we then ask for a 600kB allocation, this will be aligned to 1MB, and we will have a 896kB hole. Performing top-down allocation resolves this by allocating the 128kB at the very top, and then the 600kB can come in below it without any unnecessary wastage. This problem was reported by Janusz Krzysztofik, who had 2 x 128kB + 1 x 640kB allocations which wouldn't fit into 1MB. Tested-by: Janusz Krzysztofik Signed-off-by: Russell King commit 2bbd7e9b74271b2d6a14b4840fc44afbea83774d Author: Russell King Date: Sat Jan 8 12:05:09 2011 +0000 ARM: fix some sparse errors in generic ARM code arch/arm/kernel/return_address.c:37:6: warning: symbol 'return_address' was not declared. Should it be static? arch/arm/kernel/setup.c:76:14: warning: symbol 'processor_id' was not declared. Should it be static? arch/arm/kernel/traps.c:259:1: warning: symbol 'die_lock' was not declared. Should it be static? arch/arm/vfp/vfpmodule.c:156:6: warning: symbol 'vfp_raise_sigfpe' was not declared. Should it be static? Signed-off-by: Russell King commit a65d29225ed884456f3d34dcefd3a18df24af03b Author: Russell King Date: Sat Jan 8 16:18:51 2011 +0000 ARM: add 'uinstall' target for installing uboot kernels We have 'install' and 'zinstall' for installing Image and zImage kernels, so add 'uinstall' to complete the set. This allows developers to have a ~/bin/installkernel script which (eg) copies the kernel to the tftp server automatically once the kernel has built, resulting in a better workflow. Signed-off-by: Russell King commit 68e6fad488ef21335529c65ca6c88c38be50cd3a Author: Russell King Date: Tue Jan 11 19:57:14 2011 +0000 ARM: improve module relocation fixup diagnostics Current diagnostics are rather poor when things go wrong: ipv6: relocation out of range, section 2 reloc 0 sym 'snmp_mib_free' Let's include a little more information about the problem: ipv6: section 2 reloc 0 sym 'snmp_mib_free': relocation 28 out of range (0xbf0000a4 -> 0xc11b4858) so that we show exactly what the problem is - not only what type of relocation but also the offending address range too. Signed-off-by: Russell King commit a9f43c113d7435441fb024d265aecacc4f623f5e Author: Colin Tuckley Date: Thu Jan 6 11:16:49 2011 +0100 ARM: 6608/1: enable bridges in pci_common_init. Add a missing call to pci_enable_bridges() so that devices behind bridges get found by the pci bus scan. Signed-off-by: Chris Partington Acked-by: Catalin Marinas Signed-off-by: Russell King commit 1dbfa187dad57d3e17207328ec8bd2d90b4177d2 Author: Russell King Date: Sun Jan 23 12:08:16 2011 +0000 ARM: irq migration: force migration off CPU going down The force argument to irq_set_affinity really should be 'true' as moving IRQs off a CPU which is going down isn't optional. Acked-by: Thomas Gleixner Signed-off-by: Russell King commit 617912440bf20497d23d01ab58076998aced3f15 Author: Russell King Date: Sun Jan 23 12:09:36 2011 +0000 ARM: irq migration: ensure migration is handled safely Ensure appropriate locks are taken to ensure that IRQ migration off the current CPU is race-free. We may have a concurrent set_affinity via procfs running on another CPU in parallel with the IRQ migration, resulting in unpredictable results. Signed-off-by: Russell King commit c191789c787f488fdb74de0ee55258f71a427704 Author: Russell King Date: Sun Jan 23 12:12:01 2011 +0000 ARM: irq migration: update GIC migration code This cleans up after the conversion to irq_data. Rename the function to match the method, and remove the now useless lookup of the irq descriptor which is never used. Move the bitmask calculation out of the irq_controller_lock region. Signed-off-by: Russell King commit aaa50048f6ce44af66ce0389d4cc6a8348333271 Author: Nicolas Pitre Date: Tue Jan 25 21:35:38 2011 +0100 ARM: 6639/1: allow highmem on SMP platforms without h/w TLB ops broadcast In commit e616c591405c168f6dc3dfd1221e105adfe49b8d, highmem support was deactivated for SMP platforms without hardware TLB ops broadcast because usage of kmap_high_get() requires that IRQs be disabled when kmap_lock is locked which is incompatible with the IPI mechanism used by the software TLB ops broadcast invoked through flush_all_zero_pkmaps(). The reason for kmap_high_get() is to ensure that the currently kmap'd page usage count does not decrease to zero while we're using its existing virtual mapping in an atomic context. With a VIVT cache this is essential to do due to cache coherency issues, but with a VIPT cache this is only an optimization so not to pay the price of establishing a second mapping if an existing one can be used. However, on VIPT platforms without hardware TLB maintenance we can give up on that optimization in order to be able to use highmem. From ARMv7 onwards the TLB ops are broadcasted in hardware, so let's disable ARCH_NEEDS_KMAP_HIGH_GET only when CONFIG_SMP and CONFIG_CPU_TLB_V6 are defined. Signed-off-by: Nicolas Pitre Tested-by: Saeed Bishara Signed-off-by: Russell King commit 74c25beeb30fa32badf575a908902cbdef4d4eb4 Author: Russell King Date: Mon Jan 31 14:43:25 2011 +0000 ARM: vfp: improve commentry for hotplug events Improve the documentation for the VFP hotplug notifier handler, so that people better understand what's going on there and what has been done for them. Signed-off-by: Russell King commit b11fe38883d1de76f2f847943e085a808f83f189 Author: Nicolas Pitre Date: Sat Feb 12 22:25:27 2011 +0100 ARM: 6663/1: make Thumb2 kernel entry point more similar to the ARM one Some installers would binary patch the kernel zImage to replace the first few nops with custom instructions. This breaks the Thumb2 kernel as the mode switch is right at the beginning. Let's move it towards the end of the nop sequence instead. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 5637a126482026b37d426d76e1b18f748f309aaa Author: Russell King Date: Mon Feb 14 15:55:45 2011 +0000 ARM: move L1_CACHE_SHIFT_6 to mm/Kconfig Move L1_CACHE_SHIFT related options together, rather than spreading them across two separate Kconfig files. Signed-off-by: Russell King commit 425fc47adb5bb69f76285be77a09a3341a30799e Author: Will Deacon Date: Mon Feb 14 14:31:09 2011 +0100 ARM: 6668/1: ptrace: remove single-step emulation code PTRACE_SINGLESTEP is a ptrace request designed to offer single-stepping support to userspace when the underlying architecture has hardware support for this operation. On ARM, we set arch_has_single_step() to 1 and attempt to emulate hardware single-stepping by disassembling the current instruction to determine the next pc and placing a software breakpoint on that location. Unfortunately this has the following problems: 1.) Only a subset of ARMv7 instructions are supported 2.) Thumb-2 is unsupported 3.) The code is not SMP safe We could try to fix this code, but it turns out that because of the above issues it is rarely used in practice. GDB, for example, uses PTRACE_POKETEXT and PTRACE_PEEKTEXT to manage breakpoints itself and does not require any kernel assistance. This patch removes the single-step emulation code from ptrace meaning that the PTRACE_SINGLESTEP request will return -EIO on ARM. Portable code must check the return value from a ptrace call and handle the failure gracefully. Acked-by: Nicolas Pitre Signed-off-by: Will Deacon Signed-off-by: Russell King commit 6d7d0ae51574943bf571d269da3243257a2d15db Author: Nicolas Pitre Date: Mon Feb 21 07:06:45 2011 +0100 ARM: 6750/1: improvements to compressed/head.S In the case of a conflict between the memory used by the compressed kernel with its decompressor code and the memory used for the decompressed kernel, we currently store the later after the former and relocate it afterwards. This would be more efficient to do this the other way around i.e. relocate the compressed data up front instead, resulting in a smaller copy. That also has the advantage of making the code smaller and more straight forward. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit af90f10d3826525306c96d423df240210640cb72 Author: Santosh Shilimkar Date: Wed Feb 23 18:53:15 2011 +0100 ARM: 6759/1: smp: Select local timers vs broadcast timer support runtime The current code support of dummy timers in absence of local timer is compile time. This is an attempt to convert it to runtime so that on few SOC version if the local timers aren't supported kernel can switch to dummy timers. OMAP4430 ES1.0 does suffer from this limitation. This patch should not have any functional impact on affected files. Cc: Daniel Walker Cc: Bryan Huntsman Cc: Tony Lindgren Cc: Kukjin Kim Cc: Paul Mundt Cc: Magnus Damm Cc: Colin Cross Cc: Erik Gilling Cc: Srinidhi Kasagar Cc: Linus Walleij Signed-off-by: Santosh Shilimkar Acked-by: David Brown Signed-off-by: Russell King commit 07787a85c0c664d434b522c8bdf7cdc636a16e75 Author: Santosh Shilimkar Date: Tue Feb 22 09:57:47 2011 +0100 ARM: 6753/1: omap4: Enable ARM local timers with OMAP4430 es1.0 exception On OMAP4430 ES1.0 the local timers are gated by security. Enable the CONFIG_LOCAL_TIMERS for omap2plus build and handle the OMAP4430 es1.0 exception case. This patch has dependency on the first patch in this series. ARM: smp: Select local timers vs dummy timer support runtime Signed-off-by: Santosh Shilimkar Acked-by: Tony Lindgren Signed-off-by: Russell King commit dc54c23bb0e29de1bcaa40dbeffbc6cac641fb22 Author: Stephen Warren Date: Wed Feb 23 10:41:29 2011 -0700 ARM: Tegra: Make tegra_dma_init a postcore_initcall The following commit makes the Tegra APB DMA engine fail to initialize correctly: 0cf6230af909a86f81907455eca2a5c9b8f68fe6 ARM: tegra: Move tegra_common_init to tegra_init_early The reason is that tegra_init_early_ calls tegra_dma_init which calls request_threaded_irq, which fails since the IRQ hasn't yet been marked valid; that only happens in tegra_init_irq, which gets called after tegra_init_early. This used to work OK, since tegra_init_early was tegra_common_init, which got called after tegra_init_irq, basically from the beginning of tegra_harmony_init. Solve this by converting tegra_dma_init to a postcore_initcall. This makes it execute late enough that IRQs are marked valid, and avoids having to add it back to every machine's init function. Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit 3c106bf5b3e59e1fc8e0dfcd7a620cfed7a98430 Author: Stephen Warren Date: Wed Feb 23 11:58:49 2011 -0700 ARM: Tegra: Rename I2S clocks to match driver name The driver is tegra-i2s not just i2s. Rename the clocks to match, so that clk_get_sys can look up by driver name. Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit ddb7d5d80edb58e8235f1bc6c350eac40bfe85d1 Author: Stephen Warren Date: Wed Feb 23 11:58:50 2011 -0700 ARM: Tegra: Rename clk_dev1/2 to cdev1/2 The ASoC machine driver was written assuming my previous patch to add complete support for these clocks, which named them cdev1/2. Rename the clocks to match that, to avoid churn in the ASoC driver. This rename also makes the clocks more consistent with other Tegra clocks irrespective of any of that. Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit ccac05152e7c6a8103b9e7a801bc995180a800fc Author: Stephen Warren Date: Wed Feb 23 14:49:30 2011 -0700 ARM: Tegra: DMA: Fail safe if initialization fails tegra_dma_init currently simply bails out early if any initialization fails. This skips various data-structure initialization. In turn, this means that tegra_dma_allocate_channel can still hand out channels. In this case, when tegra_dma_free_channel is called, which calls tegra_dma_cancel, the walking on ch->list will OOPS since the list's next/prev pointers may still be NULL. To solve this, add an explicit "initialized" flag, only set this once _init has fully completed successfully, and have _allocate_channel refuse to hand out channels if this is not set. While at it, simplify _init: * Remove redundant memsets * Use bitmap_fill to mark all channels as in-use up-front, and remove some now-redundant bitmap initialization loops. * Only mark a channel as free once all channel-related initialization has completed. Finally, the successful exit path from _init always has ret==0, so just hard-code that return. The error path still returns ret. Signed-off-by: Stephen Warren Signed-off-by: Colin Cross commit 9b8306c6f5dc4c1dcf78f25f622720944a1fb736 Author: Marek Szyprowski Date: Thu Feb 24 10:03:54 2011 +0900 ARM: S5PV210: Disable unused power regulators on GONI board A lot of power regulator has been enabled by default causing the board to consume a lot of power. This patch fixes this issue. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 1d017fee97da8e291f521537c49a324ad3becd61 Author: Marek Szyprowski Date: Thu Feb 24 10:06:25 2011 +0900 ARM: S5PV210: Add power consumers for hsotg for GONI board This patch adds definitions for power consumers for s3c-hsotg driver on Goni board. The consumers are defined as arrays, because later more entries for MIPI and ADC will be defined. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 3856c3c5c09f3b22079e3154d823c7ab936c7d92 Author: Marek Szyprowski Date: Thu Feb 24 07:55:37 2011 -0500 ARM: Samsung: change suspend/resume code to depend on CONFIG_SUSPEND Most suspend/resume code depends on CONFIG_PM. This causes problems if one wants to enable Runtime PM (to control power domains for example), but doesn't need system suspend/resume feature. This also enables to use Runtime PM feature on S5PV310 which doesn't implement system suspend/resume callbacks yet. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Tested-by: Amit Daniel Kachhap Signed-off-by: Nicolas Pitre commit ef4815ab1ff10d642c21ef92faa6544934bc78d1 Author: Martin Hostettler Date: Thu Feb 24 12:51:31 2011 -0800 omap: iommu: Gracefully fail iommu_enable if no arch_iommu is registered In a modular build of the iommu code it's possible that the arch iommu code isn't loaded when trying to enable the iommu. Instead of blindly following a null pointer return -NODEV in that case. Signed-off-by: Martin Hostettler Signed-off-by: Tony Lindgren commit 4111772900ba908e8be6f671013545f7aa41bc76 Author: David Cohen Date: Thu Feb 24 12:51:32 2011 -0800 omap: iommu: print module name on error messages OMAP IOMMU generic layer doesn't need ot print function name during error messages. Print module name instead which is more useful. Signed-off-by: David Cohen Signed-off-by: Tony Lindgren commit fca1ab55f9a9f7e862a03a68c2b5577c15c344df Author: Omar Ramirez Luna Date: Thu Feb 24 12:51:32 2011 -0800 OMAP2: hwmod data: add mailbox data Mailbox hwmod data for omap2430 and 2420. Signed-off-by: Omar Ramirez Luna Signed-off-by: Tony Lindgren commit 0f9dfdd3d76d356250595cde200efe7c07dec0a1 Author: Felipe Contreras Date: Thu Feb 24 12:51:32 2011 -0800 OMAP3: hwmod data: add mailbox data Mailbox hwmod data for omap3. Signed-off-by: Felipe Contreras Signed-off-by: Omar Ramirez Luna Signed-off-by: Tony Lindgren commit 69dbf857c80e9697621ecb0d4323385999449663 Author: Felipe Contreras Date: Thu Feb 24 12:51:33 2011 -0800 OMAP: mailbox: build device using omap_device/omap_hwmod Remove static platform_device and resource data within omap mailbox driver; use the one defined in the hwmod database along with omap_device framework for device build and registration. Add device latency functions to be used, so clock can be enabled and sysconfig is configured. Signed-off-by: Felipe Contreras Signed-off-by: Omar Ramirez Luna Signed-off-by: Tony Lindgren commit 82d2a5db5296834a4317e554f57b8883d7abb86d Author: Omar Ramirez Luna Date: Thu Feb 24 12:51:33 2011 -0800 OMAP: mailbox: use runtime pm for clk and sysc handling Use runtime pm APIs to enable/disable mailbox clocks and to configure SYSC register. Based on the patch sent by Felipe Contreras: https://patchwork.kernel.org/patch/101662/ Signed-off-by: Omar Ramirez Luna Signed-off-by: Tony Lindgren commit cd5038024d6c92fbe4bf67af91eea5c6fb24a192 Author: Kishon Vijay Abraham I Date: Thu Feb 24 12:51:45 2011 -0800 OMAP: hwmod: allow hwmod to provide address space accessible from SDMA Adds support for resource API to get address space info other than just MPU. The drivers can now use platform_get_resource_byname() to get resource of type 'IORESOURCE_MEM' by name. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Benoit Cousson Acked-by: Paul Walmsley Signed-off-by: Tony Lindgren commit 3cf32bba8ca0e0052ca41d74d455a5805b7fea85 Author: Kishon Vijay Abraham I Date: Thu Feb 24 12:51:45 2011 -0800 OMAP: McBSP: Convert McBSP to platform device model Implement McBSP as platform device and add support for registering through platform device layer using resource structures. Later in this patch series, OMAP2+ McBSP driver would be modified to use hwmod framework after populating the omap2+ hwmod database. Signed-off-by: Kishon Vijay Abraham I Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit 3cb72fa4fed52437484a699ba78ad926ff4483c5 Author: Charulatha V Date: Thu Feb 24 12:51:46 2011 -0800 OMAP2420: hwmod data: Add McBSP Add McBSP hwmod data for OMAP2420. Also add macros in prcm-common.h for idlest bit of OMAP24XX McBSP devices Signed-off-by: Charulatha V Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Shubhrajyoti D Cc: Benoit Cousson Signed-off-by: Tony Lindgren commit 37801b3df60a000cc1d65ea8b472e841dc93ea75 Author: Charulatha V Date: Thu Feb 24 12:51:46 2011 -0800 OMAP2430: hwmod data: Add McBSP Add McBSP hwmod data for OMAP2430. Added a revision member inorder to facilitate the driver to differentiate between mcbsp in different omap. Signed-off-by: Charulatha V Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Shubhrajyoti D Cc: Benoit Cousson Signed-off-by: Tony Lindgren commit dc48e5fc782f8d447aae2e82ba7453ddcf32c617 Author: Charulatha V Date: Thu Feb 24 15:16:49 2011 +0530 OMAP3: hwmod data: Add McBSP Add McBSP hwmod data for OMAP3. Added a revision member inorder to facilitate the driver to differentiate between mcbsp in different omap. Signed-off-by: Charulatha V Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Shubhrajyoti D Cc: Benoit Cousson Signed-off-by: Tony Lindgren commit cb7e9ded3240d717d1d24812d33b3ef2c98c084e Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:50 2011 +0530 OMAP4: hwmod: Naming of address space Added a name to address space belonging to SDMA and MPU facilitating the driver to get the address space info by name. Added a revision member inorder to facilitate the driver to differentiate between mcbsp in different omap. Also added a platform_get_irq in probe to get irq number by index since from OMAP4, there will be a single irq line. Signed-off-by: Benoit Cousson Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren commit 8b1906f12a60d377b11d8a3dd256ce0a0ef6c614 Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:51 2011 +0530 OMAP3: hwmod: add dev_attr for McBSP sidetone Since the sidetone block is tightly coupled to the mcbsp, sidetone information is directly added to mcbsp2 & 3 hwmod dev_attr. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Benoit Cousson Signed-off-by: Tony Lindgren commit 64bcbd33c7c70d0aea4e614212a2568321a0396b Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:52 2011 +0530 OMAP2+: McBSP: hwmod adaptation for McBSP Modify OMAP2+ McBSP to use omap hwmod framework APIs Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Charulatha V Signed-off-by: Shubhrajyoti D Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit f36d01d64f1caf0545214a5dc14096477f68cfbe Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:53 2011 +0530 OMAP: McBSP: use omap_device APIs to modify SYSCONFIG McBSP2/3 in OMAP3 has sidetone feature which requires autoidle to be disabled before starting the sidetone. Also SYSCONFIG register has to be set with smart idle or no idle depending on the dma op mode (threshold or element sync). For doing these operations dynamically at runtime, omap_device APIs are used to modify SYSCONFIG register. Signed-off-by: Kishon Vijay Abraham I Cc: Paul Walmsley Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown [tony@atomide.com: updated to compile without omap_device idle calls] Signed-off-by: Tony Lindgren commit e95496d4acadd0b72c4947be61e8d44700fdaae7 Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:54 2011 +0530 OMAP: McBSP: Add pm runtime support Add pm runtime support for McBSP driver. Reference to fclk is not removed because it is required when the functional clock is switched from one source to another. Signed-off-by: Kishon Vijay Abraham I Cc: Paul Walmsley Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit 9504ba64f014cfd50a64106e49c8ba729522db5b Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:55 2011 +0530 OMAP: McBSP: APIs to pass DMA params from McBSP driver to client drivers After McBSP driver is hwmod adapted, the information about the hw would be obtained from the hwmod database by the mcbsp driver. Since DMA programming is handled by the client driver, APIs are provided to pass the DMA channel number and base address of data register required by the client driver for DMA programming. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Charulatha V Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit 2686e07b3efe45d964acba22c3a756fd7dd81389 Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:56 2011 +0530 ASoC: McBSP: get hw params from McBSP driver Removed the use of macros to obtain base address and DMA channel number. Instead use the McBSP driver API's that passes base address and DMA channel number to the client driver. Signed-off-by: Kishon Vijay Abraham I Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit b176654e7796b2812632e7c4a1a4b6efbfae5f1b Author: Kishon Vijay Abraham I Date: Thu Feb 24 15:16:57 2011 +0530 OMAP: hwmod: Removal of macros for data that is obtained from hwmod database Information like base address and DMA channel nubers should no longer be obtained using macros. These information should be obtained from hwmod database. Hence the macros that define the base address are removed. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Charulatha V Acked-by: Peter Ujfalusi Acked-by: Jarkko Nikula Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit 92e753d7984db36f0a3c0bbf0f377da114768775 Author: David Cohen Date: Wed Feb 16 19:35:50 2011 +0000 OMAP2+: IOMMU: don't print fault warning on specific layer IOMMU upper layer and user are responsible to handle a fault and to define whether it will end up as an error or not. OMAP2+ specific layer should not print anything in such case. Signed-off-by: David Cohen Acked-by: Hiroshi DOYU Signed-off-by: Tony Lindgren commit d594f1f31afe13edd8c02f3854a65cc58cfb3b74 Author: David Cohen Date: Wed Feb 16 19:35:51 2011 +0000 omap: IOMMU: add support to callback during fault handling Add support to register an isr for IOMMU fault situations and adapt it to allow such (*isr)() to be used as fault callback. Drivers using IOMMU module might want to be informed when errors happen in order to debug it or react. Signed-off-by: David Cohen Acked-by: Hiroshi DOYU Signed-off-by: Tony Lindgren commit c206e5147717782bac25d3506fa9fa05890b0767 Author: Tony Lindgren Date: Thu Feb 24 14:36:03 2011 -0800 omap2+: Minimize board specific init_early calls We should only call init_common_infrastructure and init_common_devices from init_early. Signed-off-by: Tony Lindgren commit bd061715392ccd72a398577615e856175d2b7b2b Author: Tony Lindgren Date: Fri Feb 25 10:11:15 2011 -0800 omap: Fix compile if MTD_NAND_OMAP2 is not selected Fix compile if MTD_NAND_OMAP2 is not selected Signed-off-by: Tony Lindgren commit 589541c0bfb1426ad39c7b59c0372346bcf84229 Author: Jarkko Nikula Date: Mon Feb 21 08:42:36 2011 +0200 omap: rx51: Add SI4713 FM transmitter Add SI4713 FM transmitter supplies, platform data and setup to RX-51/N900. It is connected to line output signals of TLV320AIC34 codec A part. Driver can be either built-in or a module. It can be tuned with v4l2-ctl from ivtv-utils. Following examples illustrate the use of it: v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 (power up) v4l2-ctl -d /dev/radio0 -f 107900 (tune 107.9 MHz) v4l2-ctl -d /dev/radio0 --set-ctrl=mute=1 (power down) Signed-off-by: Jarkko Nikula Signed-off-by: Tony Lindgren commit e0530460f6bc268b446040f1973d427d21f042d9 Author: Radek Pilař (Mrkva) Date: Thu Feb 24 19:02:49 2011 +0100 OMAP3 Touchbook: fix board initialization init_early hook runs too early for omap3_mux_init(), so the board won't boot. Moved to init_machine, then it works just fine. Signed-off-by: Radek Pilar Signed-off-by: Tony Lindgren commit e41cccfe794d188b0ae7f17f01692bcbc0e0dc87 Author: Tony Lindgren Date: Thu Feb 24 14:36:03 2011 -0800 omap2+: Minimize board specific init_early calls We should only call init_common_infrastructure and init_common_devices from init_early. Signed-off-by: Tony Lindgren commit 294d95f2cbc2aef5346258f216cd9df570e271a5 Author: Matthew Garrett Date: Tue Jan 11 12:26:48 2011 -0500 ehci: Check individual port status registers on resume If a device plug/unplug is detected on an ATI SB700 USB controller in D3, it appears to set the port status register but not the controller status register. As a result we'll fail to detect the plug event. Check the port status register on resume as well in order to catch this case. Signed-off-by: Matthew Garrett Cc: stable [after .39-rc1 is out] Signed-off-by: Greg Kroah-Hartman commit 108be95f9ffc53660c9a35b5ceef94121b1e23c4 Author: Yusuke Goda Date: Mon Feb 21 12:55:32 2011 +0900 usb: m66592-udc: Fixed bufnum of Bulk Signed-off-by: Yusuke Goda Acked-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit d866150a1914453c3d57689adfd8d01bf741d9d4 Author: Huzaifa Sidhpurwala Date: Mon Feb 21 12:58:44 2011 +0530 USB: serial: keyspan: Fix possible null pointer dereference. Signed-off-by: Huzaifa Sidhpurwala Signed-off-by: Greg Kroah-Hartman commit 91f58ae61913b40da35e119017e70b3420c6f3a0 Author: Huzaifa Sidhpurwala Date: Mon Feb 21 12:58:45 2011 +0530 USB: serial: mos7720: Fix possible null pointer dereference Signed-off-by: Huzaifa Sidhpurwala Signed-off-by: Greg Kroah-Hartman commit 0e6ca1998e4c803b0be98f97a1d1e1ea562b8964 Author: Pavankumar Kondeti Date: Fri Feb 18 17:43:16 2011 +0530 USB: gadget: Implement hardware queuing in ci13xxx_udc Chipidea USB controller provides a means (Add dTD TripWire semaphore) for safely adding a new dTD to an active endpoint's linked list. Make use of this feature to improve performance. Dynamically allocate and free dTD for supporting zero length packet termination. Honor no_interrupt flag set by gadget drivers. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit e2b61c1df650595d0216c6d086024b5a98d949c7 Author: Pavankumar Kondeti Date: Fri Feb 18 17:43:17 2011 +0530 USB: gadget: Implement remote wakeup in ci13xxx_udc This patch adds support for remote wakeup. The following things are handled: - Process SET_FEATURE/CLEAR_FEATURE control requests sent by host for enabling/disabling remote wakeup feature. - Report remote wakeup enable status in response to GET_STATUS control request. - Implement wakeup method defined in usb_gadget_ops for initiating remote wakeup. - Notify gadget driver about suspend and resume. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit 541cace8cd619808424ffaf1c8f7a006e5d55742 Author: Pavankumar Kondeti Date: Fri Feb 18 17:43:18 2011 +0530 USB: gadget: Add test mode support for ci13xxx_udc Implement the test modes mentioned in 7.1.20 section of USB 2.0 specification. High-speed capable devices must support these test modes to facilitate compliance testing. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit 18f53461e786f21e5625124b507802a797337f6f Author: Pavankumar Kondeti Date: Fri Feb 18 17:30:11 2011 +0530 USB: EHCI: Fix compiler warnings with MSM driver This patch fixes the following compile warnings drivers/usb/host/ehci-dbg.c:45: warning: 'dbg_hcs_params' defined but not used drivers/usb/host/ehci-dbg.c:89: warning: 'dbg_hcc_params' defined but not used Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit 10408bb9c4bf669f56f8de380f3ce18ef601a3d4 Author: Rémi Denis-Courmont Date: Mon Feb 21 16:16:53 2011 +0200 USB: f_phonet: avoid pskb_pull(), fix OOPS with CONFIG_HIGHMEM This is similar to what we already do in cdc-phonet.c in the same situation. Signed-off-by: Rémi Denis-Courmont Signed-off-by: Greg Kroah-Hartman commit 3b29b68b1627781b5eecb581d3b9d5f0043a72f2 Author: Alan Stern Date: Tue Feb 22 09:53:41 2011 -0500 USB: use "device number" instead of "address" The USB stack historically has conflated device numbers (i.e., the value of udev->devnum) with device addresses. This is understandable, because until recently the two values were always the same. But with USB-3.0 they aren't the same, so we should start calling these things by their correct names. This patch (as1449b) changes many of the references to "address" in the hub driver to "device number" or "devnum". The patch also removes some unnecessary or misleading comments. Signed-off-by: Alan Stern Reported-by: Luben Tuikov Reviewed-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit 2edb11cbac95231f66f1239b3ca26bdc0967183a Author: Maulik Mankad Date: Tue Feb 22 19:08:42 2011 +0530 usb: gadget: composite: fix req->length in composite_setup() When USB CV MSC tests are run on f_mass_storage gadget Bulk Only Mass Storage Reset fails since req->length is set to USB_BUFSIZ=1024 in composite_setup(). Initialize req->length to zero to fix this. Signed-off-by: Maulik Mankad Cc: Alan Stern Cc: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman commit 22ced6874fc47bb051e7460443e454ca8efc457e Author: Anoop Date: Thu Feb 24 19:26:28 2011 +0530 USB: EHCI bus glue for on-chip PMC MSP USB controller This patch add bus glue for USB controller commonly found in PMC-Sierra MSP71xx family of SoC's. Signed-off-by: Anoop P A Signed-off-by: Greg Kroah-Hartman commit 969e3033ae7733a0af8f7742ca74cd16c0857e71 Author: Alan Stern Date: Wed Feb 23 15:28:18 2011 -0500 USB: serial drivers need to use larger bulk-in buffers When a driver doesn't know how much data a device is going to send, the buffer size should be at least as big as the endpoint's maxpacket value. The serial drivers don't follow this rule; many of them request only 256-byte bulk-in buffers. As a result, they suffer overflow errors if a high-speed device wants to send a lot of data, because high-speed bulk endpoints are required to have a maxpacket size of 512. This patch (as1450) fixes the problem by using the driver's bulk_in_size value as a minimum, always allocating buffers no smaller than the endpoint's maxpacket size. Signed-off-by: Alan Stern Tested-by: Flynn Marquardt CC: [after .39-rc1 is out] Signed-off-by: Greg Kroah-Hartman commit c9642374d0e969e8c17f4f31cd1a2bd111634227 Author: Dmitry Torokhov Date: Wed Feb 23 14:38:20 2011 -0800 USB: fix unsafe USB_SS_MAX_STREAMS() definition Macro arguments used in expressions need to be enclosed in parenthesis to avoid unpleasant surprises. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman commit 309a057932ab20057da9fe4cb18fb61803dfc924 Author: Martin Jansen Date: Thu Feb 24 14:50:16 2011 +0100 USB: opticon: add rts and cts support Add support for RTS and CTS line status Signed-off-by: Martin Jansen Signed-off-by: Greg Kroah-Hartman commit 7aed9dfedd39ab77fb661d0e6d331aeabe61aa85 Author: Justin P. Mattock Date: Thu Feb 24 22:11:55 2011 -0800 drivers:usb:wusbhc.h remove one to many l's in the word. The patch below removes an extra "l" in the word. Signed-off-by: Justin P. Mattock Signed-off-by: Greg Kroah-Hartman commit 601e72a067f0230cb815ae0c206081c3ea19c095 Author: Justin P. Mattock Date: Thu Feb 24 22:13:09 2011 -0800 drivers:uwb:scan.c remove one to many l's in the word. The patch below removes an extra "l" in the word. Signed-off-by: Justin P. Mattock Signed-off-by: Greg Kroah-Hartman commit 3673d1ef5dc94d8b942c33fe1895a0ff52efbc3c Author: Rajendra Nayak Date: Fri Feb 25 16:06:46 2011 -0700 OMAP: powerdomain: remove unused func declaration Trivial fix to remove the unused function declaration from the powerdomain header. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 32d4034eea9c5c2b2edc365e1a0787c8f5b84c3c Author: Rajendra Nayak Date: Fri Feb 25 16:06:47 2011 -0700 OMAP: clockdomain: Infrastructure to put arch specific code Put infrastructure in place, so arch specific func pointers can be hooked up to the platform-independent part of the framework. This is in preparation of splitting the clockdomain framework into platform-independent part (for all omaps) and platform-specific parts. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 4aef7a2a5aad52b60ac1a2f3cee055b8271b70d5 Author: Rajendra Nayak Date: Fri Feb 25 16:06:47 2011 -0700 OMAP: clockdomain: Arch specific funcs to handle deps Define the following architecture specific funtions for omap2/3 .clkdm_add_wkdep .clkdm_del_wkdep .clkdm_read_wkdep .clkdm_clear_all_wkdeps .clkdm_add_sleepdep .clkdm_del_sleepdep .clkdm_read_sleepdep .clkdm_clear_all_sleepdeps Convert the platform-independent framework to call these functions. With this also move the clkdm lookups for all wkdep_srcs and sleepdep_srcs at clkdm_init. Signed-off-by: Rajendra Nayak [paul@pwsan.com: fixed loop termination conditions in omap*_clkdm_clear_all_*(); thanks to Kevin Hilman for finding and helping fix those bugs; also avoid re-resolving clockdomains during init; abstracted out clkdm_dep walk] Cc: Kevin Hilman Signed-off-by: Paul Walmsley commit 68b921ad7f35e0323ce0d9fe94e5701a112f257c Author: Rajendra Nayak Date: Fri Feb 25 16:06:47 2011 -0700 OMAP: clockdomain: Arch specific funcs for sleep/wakeup of clkdm Define the following architecture specific funtions for omap2/3/4 .clkdm_sleep .clkdm_wakeup Convert the platform-independent framework to call these functions. Also rename the api's by removing the omap2_ preamble. Hence call omap2_clkdm_wakeup as clkdm_wakeup and omap2_clkdm_sleep as clkdm_sleep. Signed-off-by: Rajendra Nayak [paul@pwsan.com: fixed omap3_clkdm_clear_all_sleepdeps() and omap2_clkdm_clear_all_wkdeps() to test against the correct loop termination condition; thanks to Kevin Hilman for finding and helping fix] Cc: Kevin Hilman Signed-off-by: Paul Walmsley commit 5cd1937b6d5990fe5d5287d925f05afd38e9fb02 Author: Rajendra Nayak Date: Fri Feb 25 16:06:48 2011 -0700 OMAP: clockdomain: Arch specific funcs for hwsup control of clkdm Define the following architecture specific funtions for omap2/3/4 .clkdm_allow_idle .clkdm_deny_idle Convert the platform-independent framework to call these functions. Also rename the api's by removing the omap2_ preamble. Hence call omap2_clkdm_allow_idle as clkdm_allow_idle and omap2_clkdm_deny_idle as clkdm_deny_idle. Make the _clkdm_add_autodeps and _clkdm_del_autodeps as non-static so they can be accessed from OMAP2/3 platform specific code. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 4da71ae607fc657075286abd2774041ff4d00fe5 Author: Rajendra Nayak Date: Fri Feb 25 16:06:48 2011 -0700 OMAP: clockdomain: Arch specific funcs for clkdm_clk_enable/disable Define the following architecture specific funtions for omap2/3/4 .clkdm_clk_enable .clkdm_clk_disable Convert the platform-independent framework to call these functions. Also rename the api's by removing the omap2_ preamble. Hence call omap2_clkdm_k_enable as clkdm_clk_enable and omap2_clkdm_clk_disable as clkdm_clk_disable.a Remove unused functions (_enable/_disable_hwsup) and unsed headers from clockdomain.c file. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 514c5948b2b5a3f9f9ebc344fc03073f3bd481b4 Author: Rajendra Nayak Date: Fri Feb 25 15:48:13 2011 -0700 OMAP4: clockdomain: Add clkdm static dependency srcs OMAP4 supports static dependencies and dynamic dependencies between clock domains. Static dependencies imply both wakeup as well as sleep dependencies. Generate all clockdomain static dependency sources. (Dynamic dependency sources are hardwired and cannot to controlled from software). The autogen scripts are updated to generate the contents of this patch. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 04eb7773d803bd0a8249c5bba37f81c496253ea1 Author: Rajendra Nayak Date: Fri Feb 25 15:48:14 2011 -0700 OMAP4: CM: Add CM accesor api for bitwise control Add new OMAP4 CM accesor apis to set/clear and read bitfields (based on mask) from CM registers. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 15b08d930f0b1a65a20e042046bd99ed7f75556b Author: Rajendra Nayak Date: Fri Feb 25 15:48:14 2011 -0700 OMAP4: clockdomain: Add wkup/sleep dependency support Add OMAP4 platform specific implementation to support clkdm wkup and sleep dependencies a.k.a static dependencies. Signed-off-by: Rajendra Nayak [paul@pwsan.com: removed comment about PRM; zero-prefixed STATICDEP register offset; fixed loop termination condition in omap4_clkdm_clear_all_wkup_sleep_deps(); thanks to Kevin Hilman for finding and helping fix this bug] Cc: Kevin Hilman Signed-off-by: Paul Walmsley commit 5f8662ba3da6e410eb771b5d8751a1e02d87513f Author: Rajendra Nayak Date: Fri Feb 25 15:48:14 2011 -0700 OMAP4: clockdomain: Remove pr_errs' stating unsupported wkdep Now that wkup and sleep dependencies are supported (in the form of static deps) for OMAP4, remove all instances of pr_errs' stating dependencies are still unsupported on OMAP4. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 6c52f32dcf1d76a95bda3a12d6be9a3102a2693c Author: Rajendra Nayak Date: Fri Feb 25 15:48:36 2011 -0700 omap: clock: Check for enable/disable ops support Check if enable/disable operations are supported for a given clock node before attempting to call them. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 5a2926b8805bc697d47a243dbf2f20de68abe14c Author: Rajendra Nayak Date: Fri Feb 25 15:48:37 2011 -0700 omap3: dpll: Populate clkops for dpll1_ck DPLL1 on omap3 is very similar to the rest of the non-core dpll's. Hence populate clkops_omap3_noncore_dpll_ops as the clkops for it, instead of the currently populated clkops_null. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit 58e846fe7870d0ba22f8eeb1d522fbae37e80cbf Author: Rajendra Nayak Date: Fri Feb 25 15:49:00 2011 -0700 OMAP: clock: Add allow_idle/deny_idle support in clkops On OMAP various clock nodes (dpll's, mx post dividers, interface clocks) support hardware level autogating which can be controlled from software. Support such functionality by adding two new function pointer allow_idle and deny_idle in the clkops structure. These function pointers can be populated for any clock node which supports hardware level autogating. Also add 2 new functions (omap_clk_enable_autoidle_all and omap_clk_disable_autoidle_all) which can be called from architecture specific PM core code, if hardware level autogating (for all supported clock nodes) is to be enabled or disabled. Signed-off-by: Rajendra Nayak [paul@pwsan.com: use spinlock rather than mutex due to race; renamed functions; functions now return ints] Signed-off-by: Paul Walmsley commit 6c6f5a7437955cec637c00ab1d09b8f70fc0ab3a Author: Rajendra Nayak Date: Fri Feb 25 15:49:00 2011 -0700 OMAP3/4: DPLL: Add allow_idle/deny_idle support for all DPLL's All OMAP3/4 dpll's support hardware level autogating. Populate allow_idle/deny_idle function pointers for all DPLL's in clkops. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit b80b956dc56c6a3cb77b97e2abff48fb7ebc2119 Author: Paul Walmsley Date: Fri Feb 25 15:49:01 2011 -0700 OMAP2+: clock: autoidle as many clocks as possible if CONFIG_OMAP_RESET_CLOCKS Attempt to enable autoidle for as many clocks as possible in the OMAP2+-common CONFIG_OMAP_RESET_CLOCKS code. Currently, this only enables DPLL autoidle for OMAP3/4 DPLLs; but future patches will enable autoidle for other clocks and the OMAP2 DPLL/APLLs. In the long run, we should probably get rid of CONFIG_OMAP_RESET_CLOCKS, and unconditionally run the code that it selects. Otherwise, the state of the clock tree won't match the hardware state - this could result in clocks being enabled or disabled unpredictably. Based on a patch by Rajendra Nayak that did this in the pm34xx.c/pm44xx.c code. Signed-off-by: Paul Walmsley Cc: Rajendra Nayak commit 97f678989afe5dd1584a0877dfd8b0d2e124b73a Author: Rajendra Nayak Date: Fri Feb 25 15:49:01 2011 -0700 OMAP4: DPLL: Add dpll api to control GATE_CTRL On OMAP4, the dpll post divider outputs (MX outputs) along with clockout_x2 output provide a way to allow/deny hardware level autogating. Allowing autoidle would mean that the hw would autogate this clock when there is no dependency for it. Denying idle would mean that this clock output will be forced to stay enabled. Add dpll api's to read/allow/deny idle control for these dpll mx postdividers. NOTE: The gatectrl bit set to 0 allows gatectrl, and the bit set to 1 denies gatectrl. Signed-off-by: Rajendra Nayak [paul@pwsan.com: moved OMAP4-specific DPLL control code to mach-omap2/dpll44xx.c; added some documentation for CLOCK_CLKOUTX2] Signed-off-by: Paul Walmsley commit 70db8a6273692fdf5226c007c9882a10b3203963 Author: Rajendra Nayak Date: Fri Feb 25 15:49:02 2011 -0700 omap4: dpll: Enable auto gate control for all MX postdividers Enable hardware gate control for all dpll MX and X2 postdividers. This requires the allow_idle/deny_idle functions to be populated for all clock nodes (mx/x2 post dividers) in clkops. Signed-off-by: Rajendra Nayak Signed-off-by: Paul Walmsley commit c6461f5c5970833cf28c5096cdfc7a095eb3bbb5 Author: Paul Walmsley Date: Fri Feb 25 15:49:53 2011 -0700 OMAP2+: clock: disable autoidle on all clocks during clock init Disable autoidle on all clocks during clock framework initialization. (If CONFIG_PM is set, autoidle is re-enabled for all clocks later in the boot process.) The principle behind this patch, and some similar patches, is that the kernel should start with all power management features disabled. Later in the boot process, the PM code, if compiled in with CONFIG_PM, enables or re-enables power management features. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit 80f0aad77f3e1e9d9e518b09ac46963d628ae2be Author: Dave Martin Date: Fri Feb 25 17:54:52 2011 +0100 ARM: 6766/1: Thumb-2: Reflect ARM/Thumb-2 configuration in module vermagic Loading Thumb-2 modules into an ARM kernel or vice-versa isn't guaranteed to work safely, since the kernel is not interworking- aware everywhere. This patch adds "thumb2" to the module vermagic when CONFIG_THUMB2_KERNEL is enabled, to help avoid accidental loading of modules into the wrong kernel. Signed-off-by: Dave Martin Acked-by: Nicolas Pitre Signed-off-by: Russell King commit d239b1dc093d551046a909920b5310c1d1e308c1 Author: Nicolas Pitre Date: Mon Feb 21 04:57:38 2011 +0100 ARM: 6746/1: remove the 4x expansion presumption while decompressing the kernel We currently presume a 4x expansion to guess the decompressed kernel size in order to determine if the decompressed kernel is in conflict with the location where zImage is loaded. This guess may cause many issues by overestimating the final kernel image size: - This may force a needless relocation if the location of zImage was fine, wasting some precious microseconds of boot time. - The relocation may be located way too far, possibly overwriting the initrd image in RAM. - If the kernel image includes a large already-compressed initramfs image then the problem is even more exacerbated. And if by some strange means the 4x guess is too low then we may overwrite ourselves with the decompressed image. So let's use the exact decompressed kernel image size instead. For that we need to rely on the stat command, but this is hardly a new build dependency as the kernel already depends on many external commands to be built provided by the coreutils package where stat is found. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit c5a9f9d0895b2c16908979244d3d678fd6db0545 Author: Tomoya MORINAGA Date: Fri Feb 18 10:01:20 2011 +0530 pch_dma: fix kernel error issue fix the following kernel error ------------[ cut here ]------------ WARNING: at kernel/softirq.c:159 _local_bh_enable_ip.clone.5+0x35/0x71() Hardware name: To be filled by O.E.M. Modules linked in: pch_uart pch_dma fuse mga drm cpufreq_ondemand acpi_cpufreq mperf ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables ipv6 uinput snd_hda_codec_realtek snd_hda_intel snd_hda_codec matroxfb_base snd_hwdep 8250_pnp snd_seq snd_seq_device matroxfb_DAC1064 snd_pcm joydev 8250 matroxfb_accel snd_timer matroxfb_Ti3026 ppdev pegasus parport_pc snd parport matroxfb_g450 g450_pll serial_core video output matroxfb_misc soundcore snd_page_alloc serio_raw pcspkr ext4 jbd2 crc16 sdhci_pci sdhci mmc_core floppy [last unloaded: scsi_wait_scan] Pid: 0, comm: swapper Not tainted 2.6.37.upstream_check+ #8 Call Trace: [] warn_slowpath_common+0x65/0x7a [] ? _local_bh_enable_ip.clone.5+0x35/0x71 [] warn_slowpath_null+0xf/0x13 [] _local_bh_enable_ip.clone.5+0x35/0x71 [] local_bh_enable_ip+0x8/0xa [] _raw_spin_unlock_bh+0x10/0x12 [] pd_prep_slave_sg+0xba/0x200 [pch_dma] [] pch_uart_interrupt+0x44d/0x6aa [pch_uart] [] handle_IRQ_event+0x1d/0x9e [] handle_fasteoi_irq+0x90/0xc7 [] ? handle_fasteoi_irq+0x0/0xc7 [] ? do_IRQ+0x3e/0x89 [] ? common_interrupt+0x29/0x30 [] ? sys_getpriority+0x12d/0x1a2 [] ? arch_local_irq_enable+0x5/0xb [] ? acpi_idle_enter_bm+0x22a/0x261 [] ? cpuidle_idle_call+0x70/0xa1 [] ? cpu_idle+0x49/0x6a [] ? rest_init+0x58/0x5a [] ? start_kernel+0x2d0/0x2d5 [] ? i386_start_kernel+0xce/0xd5 Signed-off-by: Tomoya MORINAGA Signed-off-by: Vinod Koul commit 26d890f0d09fd58f7194aad651e86283cb9e6574 Author: Tomoya MORINAGA Date: Fri Feb 18 10:01:21 2011 +0530 pch_dma: set the number of array correctly set the number of array correctly. Signed-off-by: Tomoya MORINAGA Signed-off-by: Vinod Koul commit 3de4ade3d696db31d1543dce585ba6296f876612 Author: Will Deacon Date: Mon Feb 21 19:12:27 2011 +0100 ARM: 6751/1: vexpress: select applicable errata workarounds in Kconfig The Cortex-A9 tile on the Versatile Express suffers from a number of engineering errata. This patch selects workarounds in the ARCH_VEXPRESS_CA9X4 Kconfig entry so that users don't need to worry about which ones to apply. Reported-by: Ulrich Weigand Signed-off-by: Will Deacon Signed-off-by: Russell King commit eddb12624d9a8087f1f8f1a2812f840c5e8191ac Author: Thara Gopinath Date: Wed Feb 23 00:14:04 2011 -0700 OMAP2420: hwmod data: add dmtimer Add dmtimer data. Signed-off-by: Thara Gopinath Signed-off-by: Tarun Kanti DebBarma Acked-by: Benoit Cousson commit b6b582291fbe8cca987c8823c87ee4a62b24f105 Author: Thara Gopinath Date: Wed Feb 23 00:14:05 2011 -0700 OMAP2430: hwmod data: add dmtimer Add dmtimer data. Signed-off-by: Thara Gopinath Signed-off-by: Tarun Kanti DebBarma Acked-by: Benoit Cousson commit ce722d269ff85ab11aa680784bcc6eff06e3e3ea Author: Thara Gopinath Date: Wed Feb 23 00:14:05 2011 -0700 OMAP3: hwmod data: add dmtimer Add dmtimer data. Signed-off-by: Thara Gopinath Signed-off-by: Tarun Kanti DebBarma Acked-by: Benoit Cousson commit afbb1edcd48bc7e2d90d6ae9ea5aa662d222c07c Author: Lars-Peter Clausen Date: Mon Feb 28 15:24:07 2011 +0900 ARM: S3C2440: Register PCM device on GTA02 The ASoC multi-component patch introduced a new pcm platform device, which needs to be registered by board files in order for sound to work. This patch does this for the gta02 board. Signed-off-by: Lars-Peter Clausen Signed-off-by: Kukjin Kim commit 003ddede62892f332992b200b1a1d7506f253d56 Author: Lars-Peter Clausen Date: Mon Feb 28 15:24:34 2011 +0900 ARM: S3C2440: Add button support on GTA02 This patch adds support for the two buttons found on the gta02 device, which are connectd to gpio pins, using the gpio-keys driver. Signed-off-by: Lars-Peter Clausen Signed-off-by: Kukjin Kim commit 7cda34407714b17db73d59f8fa9e9b62ee594ebf Author: Lars-Peter Clausen Date: Mon Feb 28 15:25:08 2011 +0900 ARM: S3C2440: Fix regulator valid_modes_ops on GTA02 The REGULATOR_CHANGE_STATUS flag needs to be set on valid_ops_mask, otherwise it a driver wont be able to turn the regulator on or off. Signed-off-by: Lars-Peter Clausen Signed-off-by: Kukjin Kim commit 3c861b88d0c2a1099b75c7a28648514cc67c8be6 Author: Lars-Peter Clausen Date: Mon Feb 28 15:25:43 2011 +0900 ARM: S3C2440: Call regulator_has_full_constraints on GTA02 This allows the regulator core to disable all regulators which are not in use at the end of the kernel init phase. Signed-off-by: Lars-Peter Clausen Signed-off-by: Kukjin Kim commit 510dc2ec6849f1ca8ab829b8149d08b955db381b Author: Richard Zhu Date: Tue Feb 22 18:13:22 2011 +0800 ARM: imx53: add sdhc pad settings Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit ddb95fdd25d38a53eb3d227cc1a21f997d3bef7d Author: Fabio Estevam Date: Tue Feb 22 20:24:13 2011 -0300 ARM: imx/mach-mx25_3ds: Use IMX_GPIO_NR instead of hard-coded values Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit b03b2a7a2007e4122ec105b54580327d4126e000 Author: Shawn Guo Date: Wed Feb 23 16:06:55 2011 +0800 ARM: mx51_defconfig: change CONFIG_LEDS_CLASS 'm' to 'y' This patch is to fix the warning below. arch/arm/configs/mx51_defconfig:113:warning: symbol value 'm' invalid for LEDS_CLASS Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit ea7ee4cae4db6630b388f39c3abe4f86f67211f9 Author: Denis 'GNUtoo' Carikli Date: Fri Feb 18 22:22:23 2011 +0100 mx31: add support for the bugbase 1.3 from buglabs Note that the hardware schematics and documentations can be obtained here: http://www.bugcommunity.com/wiki/index.php/BUGbase Signed-off-by: Denis 'GNUtoo' Carikli Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 5246ae86770d084abff091a6090ca82bde8e2083 Author: Lars-Peter Clausen Date: Mon Feb 28 20:22:58 2011 +0900 ARM: S3C2440: Remove state_mem constraints for the pcf50633 regulators on GTA02 The pcf50633 regulator driver does not use the state_mem constraints, so there is no use in setting them. Signed-off-by: Lars-Peter Clausen Signed-off-by: Kukjin Kim commit d73af18330ca5c17e03d36d436b5642ae764467f Author: Lars-Peter Clausen Date: Mon Feb 28 20:26:36 2011 +0900 ARM: S3C2440: Add touchscreen support on GTA02 This patch adds registers the s3c touchscreen and adc devices to add touchscreen support for the gta02. Signed-off-by: Lars-Peter Clausen Signed-off-by: Kukjin Kim commit ad849a223f912bfd6c666e0414d0ff368a9dc1a7 Author: Kukjin Kim Date: Mon Feb 28 20:35:33 2011 +0900 ARM: EXYNOS4: Fix wrong constants in the hotplug assembly code. This patch fixes wrong constants in the hotplug assembly code for Exynos4 such as Russell's changing in vexpress hotplug and fixes hard-coded control register constatns also. Reported-by: Changhwan Youn Cc: Russell King Signed-off-by: Kukjin Kim commit bac1a0f0bbf0b11b23fe714826f29fc9aeb35855 Author: Paul Walmsley Date: Wed Feb 23 00:14:06 2011 -0700 OMAP2+: hwmod: allow multiple calls to omap_hwmod_init() There's no longer any reason why we should prevent multiple calls to omap_hwmod_init(). It is now simply used to register an array of hwmods. This should allow a subset of hwmods (e.g., hwmods handling the system clocksource and clockevents) to be registered earlier than the remaining mass of hwmods. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Kevin Hilman commit 550c8092c55c22db8f843bad070fd1731292a75e Author: Paul Walmsley Date: Mon Feb 28 11:58:14 2011 -0700 OMAP2+: hwmod: rename some init functions Rename omap_hwmod_init() to omap_hwmod_register(). Rename omap_hwmod_late_init() to omap_hwmod_setup_all(). Also change all of the callers to reflect the new names. While here, update some copyrights. Suggested by Tony Lindgren . N.B. The comment in mach-omap2/serial.c may no longer be correct, given recent changes in init order. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Kevin Hilman Cc: Tony Lindgren commit 37281269e76a525389f9801350ad7cb3e3ff786d Author: Dave Martin Date: Mon Feb 28 17:38:12 2011 +0000 ARM: Thumb-2: Work around buggy Thumb-2 short branch relocations in gas Various binutils versions can resolve Thumb-2 branches to locally-defined, preemptible global symbols as short-range "b.n" branch instructions. This is a problem, because there's no guarantee the final destination of the symbol, or any candidate locations for a trampoline, are within range of the branch. For this reason, the kernel does not support fixing up the R_ARM_THM_JUMP11 (102) relocation in modules at all, and it makes little sense to add support. The symptom is that the kernel fails with an "unsupported relocation" error when loading some modules. Until fixed tools are available, passing -fno-optimize-sibling-calls to gcc should prevent gcc generating code which hits this problem, at the cost of a bit of extra runtime stack usage in some cases. The problem is described in more detail at: https://bugs.launchpad.net/binutils-linaro/+bug/725126 Only Thumb-2 kernels are affected. This patch adds a new CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 config option which adds -fno-optimize-sibling-calls to CFLAGS_MODULE when building a Thumb-2 kernel. Signed-off-by: Dave Martin Signed-off-by: Nicolas Pitre commit 7bc7f2b6f1f0766e4a4d635df717975eff3c4d85 Author: Vishwanath BS Date: Tue Feb 15 21:24:46 2011 +0530 OMAP3 PM: Deny clock gating only for safe state Currently clock gating for MPU and core are denied whenever C1 state is selected. It should be denied only when safe state is selected. Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit dac48c7d39c6850e2c079d31cf3fd873f71c85f0 Author: Vishwanath BS Date: Mon Feb 28 16:08:51 2011 +0530 OMAP3 PM: Update only enabled C states Currently function omap3_cpuidle_update_states updates valid flag of all the C states which includes the one which are disabled at init. So it's not really possible to selectively disable some of the C states using valid flag. This is fixed now by adding another flag called enabled which will be initialized at omap_init_power_states. So update_states will operated only on enabled C states. Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit 230389ddb190d8d98c48e15c6e3ded7773903ce5 Author: Vishwanath BS Date: Tue Feb 15 21:32:31 2011 +0530 OMAP36xx PM: Updated C state latencies for OMAP3630 This patch has changes to update the C state latencies for OMAP3630 and disables the useless C-States, keeping only the optimized ones with their corresponding measured latencies. Only 4 C-states are kept instead of 7 C-States: * C1 . MPU WFI clock gated + Core autogating * C3 . MPU CSWR + Core inactive * C5 . MPU CSWR + Core CSWR * C7 . MPU OFF + Core OFF Thanks to Nicole Chaloub and Vincent Bour for their investigation. Tested on ZOOM3 board using latest pm branch. Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit 3162aa2f1b55849651a05052d3e5f5e640ea44fa Author: David Brown Date: Mon Feb 14 16:15:26 2011 -0800 msm: Use explicit GPLv2 licenses Replace a BSD-style license in Code Aurora Forum authored files with an explicit GPLv2. Signed-off-by: David Brown commit 0693a317b609a5d31d29e26c4f28ea079d5477f4 Author: Stephen Boyd Date: Fri Feb 18 19:14:09 2011 -0800 msm: headsmp.S: Fix section mismatch WARNING: vmlinux.o(.cpuinit.text+0xc80): Section mismatch in reference from the function boot_secondary() to the variable .init.text:msm_secondary_startup The function __cpuinit boot_secondary() references a variable __init msm_secondary_startup. If msm_secondary_startup is only used by boot_secondary then annotate msm_secondary_startup with a matching annotation. Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit 2a52220c89e02423aa23e6b9fb6dc0c706465a82 Author: Stephen Boyd Date: Wed Feb 23 09:37:41 2011 -0800 msm: clock: Remove references to clk_ops_pcom Not all devices use proc_comm and determining if a clock is local vs. remote is fragile when done by comparing clk_ops pointers. Instead, implement an is_local() function for all clk_ops to determine if the clock is local. Doing this allows us to remove the last references to clk_ops_pcom from clock.c and compile it for targets with CONFIG_MSM_PROC_COMM=n. We don't need to set the clk_ops at runtime until 7x30 local clock detection comes in. Right now it's just complicating things so just set the ops pointer statically. Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit bd32344a6baa8baac9c2b3e9c6c649cc4ed53920 Author: Stephen Boyd Date: Wed Feb 23 09:37:42 2011 -0800 msm: clock: Migrate to clkdev Migrating to clkdev has several advantages: * Less code in mach-msm/clock.c * A more robust clk_get() implementation * clk_add_alias() support * clk_get_sys() support In general, this will help board authors setup clock aliases and break the dependency on device pointers in the clock tables. Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit abbfd79c153d775332664ac898e383abbf3ed72a Author: Vishwanath BS Date: Mon Feb 28 17:30:34 2011 +0530 Revert "OMAP3: cpufreq driver changes for DVFS support" This reverts commit de1c81cf2d50cba25e3ed399d3fe6c412781827f since there is another patch set for omap cpufreq changes at https://patchwork.kernel.org/patch/589081/ Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit 7e02ae7fc4ecef01f2b8feea18a48ee231a1780c Author: Santosh Shilimkar Date: Fri Feb 25 06:10:37 2011 +0000 omap2plus: clock: Add an alias cpu_ck to be used in common cpufreq driver Add an alias clock node for cpu clock control on all OMAP2PLUS devices. The intention is avoid cpu_is_xxxx() checks in the common cpufreq driver. Signed-off-by: Santosh Shilimkar Signed-off-by: Nicolas Pitre commit 7396a3b323962411f1b1cae3bcebc9741cbbd2c4 Author: Vishwanath BS Date: Mon Feb 28 17:34:23 2011 +0530 omap: cpufreq: Split omap1 and omap2plus cpufreq drivers. This patch is an attempt to cleanup the #ifdeferry in the omap cpufreq drivers. The split betwenn omap1 and omap2plus is logical because - omap1 doesn't support opp layer. - omap1 build is seperate from omap2plus. Signed-off-by: Santosh Shilimkar Cc: Kevin Hilman Cc: Vishwanath BS Signed-off-by: Nicolas Pitre commit 1674746ea72d7817bd1e51d3b1266a540199718c Author: Santosh Shilimkar Date: Fri Feb 25 06:10:39 2011 +0000 omap2plus: cpufreq: Add SMP support to cater OMAP4430 On OMAP SMP configuartion, both processors share the voltage and clock. So both CPUs needs to be scaled together and hence needs software co-ordination. Signed-off-by: Santosh Shilimkar Cc: Kevin Hilman cc: Vishwanath BS Signed-off-by: Nicolas Pitre commit 61dde43f99d3977b31c23719a3967fd58a1c354b Author: Vishwanath BS Date: Fri Feb 25 12:52:08 2011 +0530 OMAP2PLUS: cpufreq DVFS changes This patch adds support for DVFS in cpufreq driver by replacing clock api with DVFS api. Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit 3682a135ccaeeb5d7017eacfc7b54dda4b1af1cf Author: Vishwanath BS Date: Thu Feb 24 16:53:28 2011 +0530 OMAP4 PM: Add support for OMAP4 MPU DVFS This patchset adds support for OMAP4 MPU DVFS with following changes - add vdd information for omap4 - enable all relevant OPPs for MPU VDD - define and register get_rate and set_rate with DVFS layer Signed-off-by: Vishwanath BS Signed-off-by: Nicolas Pitre commit 82544ce706497e311e4d0852f221ef9c0cd897d1 Author: Santosh Shilimkar Date: Thu Feb 24 16:54:56 2011 +0530 OMAP4: Fix CONFIG_NR_CPUS for OMAP4 Fix number of CPUs for OMAP4 Signed-off-by: Santosh Shilimkar Signed-off-by: Nicolas Pitre commit 569edd705cc4e81a9129b5557f1fb259e21418a9 Author: Paul Walmsley Date: Wed Feb 23 00:14:06 2011 -0700 OMAP2+: hwmod: find MPU initiator hwmod during in _register() Move the code that looks for the MPU initiator hwmod to run during the individual hwmod _register() function. (Previously, it ran after all hwmods were registered in the omap_hwmod_late_init() function.) This is done so code can late-initialize a few individual hwmods -- for example, for the system timer -- before the entire set of hwmods is initialized later in boot via omap_hwmod_late_init(). Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Kevin Hilman commit 48d54f3fd20b435311f295b3bca3570096a2ac83 Author: Paul Walmsley Date: Wed Feb 23 00:14:07 2011 -0700 OMAP2+: hwmod: ignore attempts to re-setup a hwmod Previously, if a hwmod had already been set up, and the code attempted to set up the hwmod again, an error would be returned. This is not really useful behavior if we wish to allow the OMAP core code to setup the hwmods needed for the Linux clocksources and clockevents before the rest of the hwmods are setup. So, instead of generating errors, just ignore the attempt to re-setup the hwmod. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Kevin Hilman commit a2debdbd1ad896a410019c9cf30785cad15930fc Author: Paul Walmsley Date: Wed Feb 23 00:14:07 2011 -0700 OMAP2+: hwmod: add ability to setup individual hwmods Add omap_hwmod_setup_one(), which is intended for use early in boot to selectively setup the hwmods needed for system clocksources and clockevents, and any other hwmod that is needed in early boot. omap_hwmod_setup_all() can then be called later in the boot process. The point is to minimize the amount of code that needs to be run early. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Kevin Hilman Cc: Santosh Shilimkar Cc: Tony Lindgren commit 38698bef545403a334cf92153874bd06dc22cc66 Author: Paul Walmsley Date: Wed Feb 23 00:14:08 2011 -0700 OMAP2+: clockevent: set up GPTIMER clockevent hwmod right before timer init Set up the GPTIMER hwmod used for the clockevent source immediately before it is used. This avoids the need to set up all of the hwmods until the boot process is further along. (In general, we want to defer as much as possible until late in the boot process.) This second version fixes a bug pointed out by Santosh Shilimkar , that would cause the kernel to use an incorrect timer hwmod name if the selected GPTIMER was not 1 or 12 - thanks Santosh. Also, Tarun Kanti DebBarma pointed out that the original patch did not apply cleanly; this has now been fixed. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Tony Lindgren Cc: Kevin Hilman Cc: Santosh Shilimkar Acked-by: Santosh Shilimkar Cc: Tarun Kanti DebBarma commit 3ba789c0917dae4cd66fb5c1b7a9a6d3fc8f43bc Author: Kevin Hilman Date: Tue Feb 8 13:23:09 2011 -0800 MAINTAINERS: update TI DaVinci machine support entry Update my email address, and add Sekhar Nori as co-maintainer of TI DaVinci family of SoCs. Cc: Sekhar Nori Signed-off-by: Kevin Hilman commit bb59b7fdc1aacde27a1d6254f1e647a794fa7735 Author: Victor Rodriguez Date: Mon Dec 27 16:43:08 2010 -0600 davinci: EMAC support for Omapl138-Hawkboard This patch adds EMAC support for the Hawkboard-L138 system Signed-off-by: Victor Rodriguez Tested-by: Rene Gonzalez Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 5f72f380093afd378259e4a50f9fa2380457b70b Author: Victor Rodriguez Date: Mon Dec 27 16:43:09 2010 -0600 davinci: EDMA support for Omapl138-Hawkboard This patch adds EDMA support for the Hawkboard-L138 system Signed-off-by: Victor Rodriguez Tested-by: Rene Gonzalez Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit fe358d6a049dcd7cd52b0eb6ae5c8bddf223d41b Author: Victor Rodriguez Date: Mon Dec 27 16:43:10 2010 -0600 davinci: MMC/SD and USB-OHCI configuration for Omapl138-Hawkboard This patch defines Pin Mux configuration to enable MMC/SD and USB-OHCI on the Hawkboard-L138 system Signed-off-by: Victor Rodriguez Tested-by: Rene Gonzalez Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit ef782d8d4e80b25a56d8cb93d648dd125e6ea95e Author: Victor Rodriguez Date: Mon Dec 27 16:43:11 2010 -0600 davinci: MMC/SD support for Omapl138-Hawkboard This patch adds MMC/SD support for the Hawkboard-L138 system Signed-off-by: Victor Rodriguez Tested-by: Rene Gonzalez Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 5efe330ac19ff63c257db1ab120234cca01a8079 Author: Victor Rodriguez Date: Mon Dec 27 16:43:12 2010 -0600 davinci: USB clocks for Omapl138-Hawkboard This patch adds USB1.1 and USB2.0 clocks for the Hawkboard-L138 system Signed-off-by: Victor Rodriguez Tested-by: Rene Gonzalez Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit f5714abba6668d2790fd2ac708aabd9506d3baf4 Author: Victor Rodriguez Date: Mon Dec 27 16:43:13 2010 -0600 davinci: USB1.1 support for Omapl138-Hawkboard This patch adds USB1.1 support for the Hawkboard-L138 system Signed-off-by: Victor Rodriguez Tested-by: Rene Gonzalez Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit cbb691fb89ae01fde4ccce3b7351a0fa9fe1a47b Author: Sudhakar Rajashekhara Date: Mon Jan 3 08:03:27 2011 -0500 davinci: Add additional JTAG code for AM-1808 and OMAP-L138 Rev 2.0 SoCs From: Sudhakar Rajashekhara The JTAG variant code for Rev-2.0 silicon of the OMAP-L138 has changed. In addition, the variant code for the AM-1808 SoC appears to match the Rev-2.0 code for the OMAP-L138. Add an additional entry to support these chips. This patch is originally from a patch on the arago project, here: http://arago-project.org/git/projects/?p=linux-omapl1.git;a=commit;h=6157618435e313a444cdf059702bd34036a6e2b7 Further information related to the need for this patch can be located at http://e2e.ti.com/support/embedded/f/354/p/67290/248486.aspx http://linux.davincidsp.com/pipermail/davinci-linux-open-source/2010-November/021224.html This patch was tested using an AM-1808 SoC on a MityARM-1808 SoM card. It was also tested using a Rev 1.0 silicon OMAP-L138 on a MityDSP-L138F card. Signed-off-by: Sudhakar Rajashekhara Signed-off-by: Michael Williamson Tested-by: Michael Williamson Reported-by: Nicolas Luna Reviewed-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 6619490a7f8c3e38406bfc03c755367fec21372d Author: Michael Williamson Date: Tue Jan 4 07:50:23 2011 -0500 davinci: Support various speedgrades for MityDSP-L138 and MityARM-1808 SoMs For the MityDSP-L138/MityARM-1808 SoMs, the speed grade can be determined from the part number string read from the factory configuration block on the on-board I2C PROM. Configure the maximum CPU speed based on this information. This patch was tested using a MityDSP-L138 and MityARM-1808 at various speedgrades. Also, for code coverage, a bogus configuration was tested as well as a configuration having an unknown part number. Signed-off-by: Michael Williamson Tested-by: Michael Williamson Reviewed-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 8ae7545aae15b55afe24ecebb234484883646410 Author: Michael Williamson Date: Tue Jan 18 12:21:42 2011 -0500 davinci: da850: remove unused pinmux array The da850_cpgmac_pins pinmux array is not used. Remove it. Signed-off-by: Michael Williamson Tested-by: Sudhakar Rajashekhara Signed-off-by: Kevin Hilman commit 0b642b6a86771f4f82abe6608fc61e050ea03f33 Author: Michael Williamson Date: Tue Jan 18 12:21:43 2011 -0500 davinci: da850: remove unused emif pinmux array The da850_emif25_pins pinmux array is not used. Remove it. Signed-off-by: Michael Williamson Tested-by: Sudhakar Rajashekhara Signed-off-by: Kevin Hilman commit c840fc745f6ec8a3b7062d72de193ab9c397d725 Author: Michael Williamson Date: Tue Jan 18 12:21:44 2011 -0500 davinci: da850: move da850_evm specific mcasp pins to board file. The da850_mcasp_pins pinmux array is specific to the da850_evm, and is not generic. Move the array to the board file, make it static initdata, and rename it accordingly. Signed-off-by: Michael Williamson Tested-by: Sudhakar Rajashekhara Signed-off-by: Kevin Hilman commit 5a0d80ea806f89c078dd4b244479080cfe73d2ae Author: Michael Williamson Date: Tue Jan 18 12:21:45 2011 -0500 davinci: da850: move da850_evm specific mmcsd pinmux array to board file. The da850_mmcsd0_pins pinmux array contains pins that are specific to the da850 evm board (the write protect and card detect GPIO pins). Move the array to the board file. Signed-off-by: Michael Williamson Tested-by: Sudhakar Rajashekhara Signed-off-by: Kevin Hilman commit a42f18c96da2220eaad603a7586d43cdd12d9f9f Author: Michael Williamson Date: Tue Jan 18 12:21:46 2011 -0500 davinci: da850: remove unused uart pinmux arrays. The da850 uart pinmux arrays are not used. Remove them. Signed-off-by: Michael Williamson Tested-by: Sudhakar Rajashekhara Signed-off-by: Kevin Hilman commit 2e3e2a5e4fef586ae9b1cfef42823c0aef1797f4 Author: Michael Williamson Date: Tue Feb 8 07:59:55 2011 -0500 davinci: spi: move event queue parameter to platform data For DMA operation, the davinci spi driver needs an event queue number. Currently, this number is passed as a IORESOURCE_DMA. This is not correct, as the event queue is not a DMA channel. Pass the event queue via the platform data structure instead. On dm355 and dm365, move the eventq assignment for spi0 out of resources array and into platform data. Signed-off-by: Michael Williamson Acked-by: Sekhar Nori Acked-by: Grant Likely Signed-off-by: Kevin Hilman commit d6b5d01b3f7c10edb50b9092d8dcac9cab680ea3 Author: Paul Walmsley Date: Fri Feb 25 17:38:25 2011 -0700 OMAP2+: sdrc: fix compile break on OMAP4-only config on current omap-for-linus On non-OMAP2 and non-OMAP3 kernel configs, turn omap2_sdrc_init() into a no-op. Otherwise, compilation breaks on an OMAP4-only config with the current omap-for-linus branch: arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_devices': ../mach-omap2/io.c:421: undefined reference to `omap2_sdrc_init' Thanks to Sergei Shtylyov for suggesting the use of a empty static inline function rather than a macro. Signed-off-by: Paul Walmsley Cc: Tony Lindgren Cc: Sergei Shtylyov [tony@atomide.com: updated not to use __init for inline omap2_sdrc_init] Signed-off-by: Tony Lindgren commit aca6ad073ea820776bf5bdb87cf82eace35042c8 Author: Eyal Reizer Date: Sun Feb 27 10:45:18 2011 +0000 omap: omap3evm: add support for the WL12xx WLAN module to the omap3evm This patch is again current omap-for-linus branch Adds platform initialization for working with the WLAN module attached to the omap3evm. The patch includes MMC2 initialization, SDIO and control pins muxing and platform device registration. Signed-off-by: Eyal Reizer Signed-off-by: Tony Lindgren commit 06125beb41af06fd197a7d216d57aa32b83f6cbd Author: Justin P. Mattock Date: Sat Feb 26 20:33:57 2011 -0800 usb: host: uhci-hcd.c Remove one to many n's in a word. The Patch below removes one to many "n's" in a word.. Signed-off-by: Justin P. Mattock CC: Alan Stern CC: linux-usb@vger.kernel.org Signed-off-by: Greg Kroah-Hartman commit 6d42fcdb685e3b7af45c77181537db4bc1a715f9 Author: Justin P. Mattock Date: Sat Feb 26 20:33:56 2011 -0800 usb: core: hub.c Remove one to many n's in a word. The Patch below removes one to many "n's" in a word.. Signed-off-by: Justin P. Mattock CC: Alan Stern CC: linux-usb@vger.kernel.org Signed-off-by: Greg Kroah-Hartman commit bedc0c31ac3db828e6ade7a8c5cb708688f0a7e1 Author: Arvid Brodin Date: Sat Feb 26 22:02:57 2011 +0100 usb/isp1760: Move to native-endian ptds This helps users with platform-bus-connected isp176xs, big-endian cpu, and missing byteswapping on the data bus. It does so by collecting all SW byteswaps in one place and also fixes a bug with non-32-bit io transfers on this hardware, where payload has to be byteswapped instead of ptds. Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit fd436aee97d157ff6441e7aaff2a2dc802765b5b Author: Arvid Brodin Date: Sat Feb 26 22:03:49 2011 +0100 usb/isp1760: Remove redundant variables and defines Removes the redundant hw_next list pointer from struct isp1760_qtd, removes some unused #defines, removes redundant "urb" member from struct inter_packet_info. Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit a041d8e4375ee6d78409a721221878dcad5eff8a Author: Arvid Brodin Date: Sat Feb 26 22:04:40 2011 +0100 usb/isp1760: Clean up payload address handling Encapsulate payload addresses within qtds. Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit bbaa387674b65a2f784631cc4c87c77ec9d3374e Author: Arvid Brodin Date: Sat Feb 26 22:05:26 2011 +0100 usb/isp1760: Remove redundant "data_buffer" member from struct inter_packet_info Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit 6bda21bc0941c11f07cbf436ff6ca85e7e6e47f0 Author: Arvid Brodin Date: Sat Feb 26 22:06:37 2011 +0100 usb/isp1760: Consolidate printouts and remove unused code Consolidate printouts to use dev_XXX functions instead of an assortment of printks and driver specific macros. Remove some unused code snippets and struct members. Remove some unused function parameters and #defines. Change the "queue_entry" variable name which has different but related meanings in different places and use "slot" only. Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit 65f1b5255ce0e657e4d8de92098837d36831320a Author: Arvid Brodin Date: Sat Feb 26 22:07:35 2011 +0100 usb/isp1760: Replace period calculation for INT packets with something readable Replace the period calculation for INT packets with something readable. Seems to fix a rare bug with quickly repeated insertion/removal of several USB devices simultaneously (hub control INT packets). Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit 7adc14b14b43b6ca9f2f00ac7a4780577dbe883b Author: Arvid Brodin Date: Sat Feb 26 22:08:47 2011 +0100 usb/isp1760: Handle toggle bit in queue heads only Remove redundant "toggle" member from struct isp1760_qtd, and store toggle status in struct isp1760_qh only. Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit f7d7aedfcd4e20e7dfc7356d30cc22dc0b0f493e Author: Jiri Slaby Date: Mon Feb 28 10:34:05 2011 +0100 USB: serial/keyspan_pda, fix potential tty NULL dereferences Make sure that we check the return value of tty_port_tty_get. Sometimes it may return NULL and we later dereference that. There are several places to check. For easier handling, tty_port_tty_get is moved directly to the palce where needed in keyspan_pda_rx_interrupt. Signed-off-by: Jiri Slaby Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 6960f40a954619857e7095a6179eef896f297077 Author: Jiri Slaby Date: Mon Feb 28 10:34:06 2011 +0100 USB: serial/kobil_sct, fix potential tty NULL dereference Make sure that we check the return value of tty_port_tty_get. Sometimes it may return NULL and we later dereference that. The only place here is in kobil_read_int_callback, so fix it. Signed-off-by: Jiri Slaby Cc: Alan Cox Cc: stable@kernel.org Signed-off-by: Greg Kroah-Hartman commit d105e74eff7f8197b4d8e104e347ffbc5c3989b8 Author: Davidlohr Bueso Date: Sun Feb 27 04:58:48 2011 -0300 USB: ffs-test: fix header path When compiling this program the functionfs.h header cannot be found, producing: ffs-test.c:40: fatal error: linux/usb/functionfs.h: No such file or directory This patch also fixes the following warning: ffs-test.c:453: warning: format ‘%4d’ expects type ‘int’, but argument 3 has type ‘size_t’ Signed-off-by: Davidlohr Bueso Signed-off-by: Greg Kroah-Hartman commit 4cbbf084436caddeb815534df4ebaa018c970196 Author: Felipe Balbi Date: Mon Feb 28 10:44:50 2011 +0200 usb: musb: gadget: fix list_head usage commit ad1adb89a0d9410345d573b6995a1fa9f9b7c74a (usb: musb: gadget: do not poke with gadget's list_head) fixed a bug in musb where it was corrupting the list_head which is supposed to be used by gadget drivers. While doing that, I forgot to fix the usage in musb_gadget_dequeue() method. Fix that. Reported-by: Pavol Kurina Signed-off-by: Felipe Balbi commit da68ccec210c45eb99e461ad31b499b4e7043c41 Author: Hema HK Date: Mon Feb 28 14:19:33 2011 +0530 usb: musb: Remove platform context save/restore API For OMAP3 and OMAP4 for offmode and retention support, musb sysconfig is configured to force idle and standby with ENABLE_FORCE bit of OTG_FORCESTNDBY set. And on wakeup configure to no ilde/standby with resetting the ENABLE_FORCE bit. There is not need to save and restore of this register anymore so removed omap2430_save_context/omap2430_restore_context functions. and also removed otg_forcestandby member of musb_context_registers structure Signed-off-by: Hema HK Signed-off-by: Felipe Balbi commit 7acc6197b76edd0b932a7cbcc6cfad0a8a87f026 Author: Hema HK Date: Mon Feb 28 14:19:34 2011 +0530 usb: musb: Idle path retention and offmode support for OMAP3 This patch supports the retention and offmode support in the idle path for musb driver using runtime pm APIs. This is restricted to support offmode and retention only when device not connected.When device/cable connected with gadget driver loaded,configured to no idle/standby which will not allow the core transition to retention or off. There is no context save/restore done by hardware for musb in OMAP3 and OMAP4,driver has to take care of saving and restoring the context during offmode. Musb has a requirement of configuring sysconfig register to force idle/standby mode and set the ENFORCE bit in module STANDBY register for retention and offmode support. Runtime pm and hwmod frameworks will take care of configuring to force idle/standby when pm_runtime_put_sync is called and back to no idle/standby when pm_runeime_get_sync is called. Compile, boot tested and also tested the retention in the idle path on OMAP3630Zoom3. And tested the global suspend/resume with offmode enabled. Usb basic functionality tested on OMAP4430SDP. There is some problem with idle path offmode in mainline, I could not test with offmode. But I have tested this patch with resetting the controller in the idle path when wakeup from retention just to make sure that the context is lost, and restore path is working fine. Removed .suspend/.resume fnction pointers and functions because there is no need of having these functions as all required work is done at runtime in the driver. There is no need to call the runtime pm api with glue driver device as glue layer device is the parent of musb core device, when runtime apis are called for the child, parent device runtime functionality will be invoked. Design overview: pm_runtime_get_sync: When called with musb core device takes care of enabling the clock, calling runtime callback function of omap2430 glue layer, runtime call back of musb driver and configure the musb sysconfig to no idle/standby pm_runtime_put: Takes care of calling runtime callback function of omap2430 glue layer, runtime call back of musb driver, Configure the musb sysconfig to force idle/standby and disable the clock. During musb driver load: Call pm_runtime_get_sync. End of musb driver load: Call pm_runtime_put During gadget driver load: Call pm_runtime_get_sync, End of gadget driver load: Call pm_runtime_put if there is no device or cable is connected. During unload of the gadget driver:Call pm_runtime_get_sync if cable/device is not connected. End of the gadget driver unload : pm_runtime_put During unload of musb driver : Call pm_runtime_get_sync End of unload: Call pm_runtime_put On connect of usb cable/device -> transceiver notification(VBUS and ID-GND): pm_runtime_get_sync only if the gadget driver loaded. On disconnect of the cable/device -> Disconnect Notification: pm_runtime_put if the gadget driver is loaded. Signed-off-by: Hema HK Signed-off-by: Felipe Balbi commit 37db3af11f02c2ccdf44a788694da16062a0333c Author: Hema HK Date: Mon Feb 28 14:19:32 2011 +0530 usb: otg: TWL4030: Update the last_event variable. Update the last_event variable of otg_transceiver. This will be used in the musb platform glue driver for runtime idling the device. Signed-off-by: Hema HK Cc: Felipe Balbi Signed-off-by: Felipe Balbi commit 8c59ef38119102ccd2a8db6f19a8864a7c8d4e73 Author: Hema HK Date: Mon Feb 28 14:19:36 2011 +0530 usb: otg: OMAP4430: Save/restore the context Add the context save/restore for the control module register used for OMAP4430 musb with UTMI embedded PHY interface. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit fb91cde49c327ff957c55d91805bc6abda59b311 Author: Hema HK Date: Mon Feb 28 14:19:35 2011 +0530 usb: musb: OMAP4430: Power down the PHY during board init Powerdown the internal PHY during board init for OMAP44xx. So that when musb is disabled core transition to retention/off is not blocked. Signed-off-by: Hema HK Cc: Tony Lindgren Cc: Paul Walmsley Signed-off-by: Felipe Balbi commit 70045c57f31f998a7206baa81167c7bc9f452cef Author: Hema HK Date: Mon Feb 28 15:05:29 2011 +0530 usb: musb: OMAP3xxx: Fix device detection in otg & host mode In OMAP3xxx with OTG mode or host only mode, When the device is inserted after the gadget driver loading the enumeration was not through. This is because the mentor controller will start sensing the ID PIN only after setting the session bit. So after ID-GND, need to set the session bit for mentor to get it configured as A device. This is a fix to set the session bit again in ID_GND notification handler. Tested with OMAP3630Zoom3 platform. Signed-off-by: Hema HK Signed-off-by: Felipe Balbi commit c88ba39c1ea6a1591b6842199069ff50748d2073 Author: Huzaifa Sidhpurwala Date: Tue Mar 1 15:54:22 2011 +0530 usb: musb: tusb: Fix possible null pointer dereference in tusb6010_omap.c tusb_dma was being dereferenced when it was nul Signed-off-by: Huzaifa Sidhpurwala Signed-off-by: Felipe Balbi commit d4abe93386890061f109f2f2a46761ac5129bed6 Author: Wolfram Sang Date: Wed Feb 23 14:51:58 2011 +0100 arm: mach-mx3: use IMX_GPIO_NR instead of hard-coded values The latter are error-prone because the bank number is one less than one would read in the documentation. Signed-off-by: Wolfram Sang Acked-by: Eric Benard Cc: Sascha Hauer Signed-off-by: Sascha Hauer commit 2c4066cca46e2e82b63127a3dba5e5f68a612749 Author: Eric Bénard Date: Fri Feb 25 13:48:15 2011 +0100 eukrea-tlv320: add MBIMXSD51 support Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit b137214692effb1bc2221de8ccb11c09fb9df6f2 Author: Eric Bénard Date: Fri Feb 25 14:38:27 2011 +0100 cpuimx51sd: add cpufreq support Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit 33d3487f557ea6787b1a8166b1ed123bb2136619 Author: Eric Bénard Date: Fri Feb 25 15:04:14 2011 +0100 cpuimx51sd: fix tsc2007 - wrong MUX was set before for IRQ - get_pendown_state is no more needed Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit 8c3f2d7a2df5b3ad020571cacb1824f8df4768fd Author: Eric Bénard Date: Fri Feb 25 14:38:29 2011 +0100 cpuimx51sd: mcp2515 supports up to 10MHz SPI clock Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit 84082d665dc62e632e21213fda8b22c0b8c25b81 Author: Lothar Waßmann Date: Wed Dec 15 22:11:31 2010 +0100 ARM: mxs: free dma_mask in error path This fixes a small memory leak that was only hit in very unlikely error paths. Signed-off-by: Lothar Waßmann Signed-off-by: Uwe Kleine-König commit c762b293d4a12fb726cec62cfe3e64f66cf3103f Author: Uwe Kleine-König Date: Fri Feb 18 21:59:25 2011 +0100 ARM: mxc: free dma_mask in error path This fixes a small memory leak that was only hit in very unlikely error paths Signed-off-by: Uwe Kleine-König commit f4b5d2b0d1df863eab004e42b4492fce6ccc52b2 Author: Lothar Waßmann Date: Wed Dec 15 22:20:13 2010 +0100 ARM: mxs: add a dma mask to fec devices This is not strictly necessary but the right thing to do. Signed-off-by: Lothar Waßmann Signed-off-by: Uwe Kleine-König commit 78159566b7ec120a1020cfc9469ac526bdd05387 Author: Uwe Kleine-König Date: Wed Jan 19 11:37:10 2011 +0100 ARM: mxc: add a dma mask to fec devices This is not strictly necessary but the right thing to do. Signed-off-by: Uwe Kleine-König commit 2301dfa7be2cb3e6bdd07cc1cb349b5853c4d5ee Author: Sascha Hauer Date: Tue Jan 25 11:58:15 2011 +0100 ARM: mxs: Add pwm clocks and device registration Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 87ecc73b3d74ca70100e7100313c005fa471f177 Author: Anand Gadiyar Date: Wed Feb 16 15:43:14 2011 +0530 usb: ehci: omap: add support for TLL mode on OMAP4 The EHCI controller in OMAP4 supports a transceiver-less link mode (TLL mode), similar to the one in OMAP3. On the OMAP4 however, there are an additional set of clocks that need to be turned on to get this working. Request and configure these for each port if that port is connected in TLL mode. Signed-off-by: Anand Gadiyar Cc: Greg Kroah-Hartman Signed-off-by: Felipe Balbi commit a9031e5f0b82225ea676d729d68beb6c69799a67 Author: Felipe Balbi Date: Tue Mar 1 20:08:13 2011 +0530 arm: omap: usb: host: add names to resources add names to EHCI and OHCI resources. That will help us identify the resource correctly when moving to a setup where OHCI and EHCI play well together. Signed-off-by: Felipe Balbi commit 09f0607d8be62469a9b33034c8d3def9a5c7cbb7 Author: Felipe Balbi Date: Tue Mar 1 20:08:14 2011 +0530 usb: host: omap: switch to platform_get_resource_byname now that we have names on all memory bases, we can switch to use platform_get_resource_byname() which will make it simpler when we move to a setup where OHCI and EHCI on OMAP play well together. Signed-off-by: Felipe Balbi commit a8480ea0bedbf049423a4caa9b09d371614c07dc Author: Felipe Balbi Date: Tue Mar 1 20:08:15 2011 +0530 arm: omap2: usb: rename usb-ehci.c to usb-host.c We already have both EHCI and OHCI there, so let's rename to be sure everybody will understand the entire USB HOST functionality is setup on this file. Signed-off-by: Felipe Balbi commit 181b250cf53233a7a7c6d7e1e9df402506712e93 Author: Keshava Munegowda Date: Tue Mar 1 20:08:16 2011 +0530 arm: omap: usb: create common enums and structures for ehci and ohci Create the ehci and ohci specific platform data structures. The port enum values are made common for both ehci and ohci. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit 17cdd29d6e1ab4164c792d78c6f096fbafb94e3f Author: Keshava Munegowda Date: Tue Mar 1 20:08:17 2011 +0530 usb: host: omap: common usb host core driver enabling and disabling the common clocks for ehci and ohci is implemented. usbhs is a common parent platform driver for EHCI and OHCI driver. This driver receives the clock enable and disable requests from ehci and ohci drivers.The UHH and TLL initialization is also performed. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit 2236396d4d23828a0875a4d447103d0ab48aed0b Author: Keshava Munegowda Date: Tue Mar 1 20:08:18 2011 +0530 arm: omap: usb: usbhs core device initialization A new usbhs platform device is defined; this device will be the parent device of ehci and ohci platform devices. the usbhs_init function is defined which does the usbhs device initialization and I/O mux of ehci and ohci. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit 9e64bb1e9f0613093b3e34ac5402fcfef0dcc35a Author: Keshava Munegowda Date: Tue Mar 1 20:08:19 2011 +0530 arm: omap: usb: Invoke usbhs core device initialization The usbhs intialization is invoked by all omap3 and omap4 variant board files. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit 3b68ae73d8afa925807ebaae7eb14e2afd43f5b5 Author: Keshava Munegowda Date: Tue Mar 1 20:08:20 2011 +0530 arm: omap: usb: cleanup ehci and ohci resources and devices The prototype and defination of functions usb_ehci_init and usb_ohci_init are removed. The ehci and ohci devices are removed since usbhs device contains both ehci and ohci details. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit 19403165c272cc4ed00c97973e7271714b009708 Author: Keshava Munegowda Date: Tue Mar 1 20:08:21 2011 +0530 usb: host: omap: ehci and ohci simplification The ehci and ohci drivers are simplified; Since UHH and TLL initialization, clock handling are done by common usbhs core driver, these functionalities are removed from ehci and ohci drivers. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit 53689ac1b677532be666a779e24b0ac9bd266354 Author: Keshava Munegowda Date: Tue Mar 1 20:08:22 2011 +0530 arm: omap: usb: clock entries for omap3 and omap4 The devices of clocks are set to usbhs, so that only usbhs common driver can invoke these clocks. The dummy per port clocks are added to omap3 clock data base. This helps to invoke common clock get APIs for omap3 and omap4. Signed-off-by: Keshava Munegowda Signed-off-by: Felipe Balbi commit ad93562bdeecdded7d02eaaaf1aa5705ab57b1b7 Author: Andiry Xu Date: Tue Mar 1 14:57:05 2011 +0800 USB host: Move AMD PLL quirk to pci-quirks.c This patch moves the AMD PLL quirk code in OHCI/EHCI driver to pci-quirks.c, and exports the functions to be used by xHCI driver later. AMD PLL quirk disable the optional PM feature inside specific SB700/SB800/Hudson-2/3 platforms under the following conditions: 1. If an isochronous device is connected to OHCI/EHCI/xHCI port and is active; 2. Optional PM feature that powers down the internal Bus PLL when the link is in low power state is enabled. Without AMD PLL quirk, USB isochronous stream may stutter or have breaks occasionally, which greatly impair the performance of audio/video streams. Currently AMD PLL quirk is implemented in OHCI and EHCI driver, and will be added to xHCI driver too. They are doing similar things actually, so move the quirk code to pci-quirks.c, which has several advantages: 1. Remove duplicate defines and functions in OHCI/EHCI (and xHCI) driver and make them cleaner; 2. AMD chipset information will be probed only once and then stored. Currently they're probed during every OHCI/EHCI initialization, move the detect code to pci-quirks.c saves the repeat detect cost; 3. Build up synchronization among OHCI/EHCI/xHCI driver. In current code, every host controller enable/disable PLL only according to its own status, and may enable PLL while there is still isoc transfer on other HCs. Move the quirk to pci-quirks.c prevents this issue. Signed-off-by: Andiry Xu Cc: David Brownell Cc: Alex He Signed-off-by: Greg Kroah-Hartman commit 60b0bf0f11a02a6c288c7a923b2521aa7cfdc6c3 Author: Yoshihiro Shimoda Date: Tue Mar 1 16:58:37 2011 +0900 usb: EHCI, OHCI: Add configuration for the SH USB controller The SH EHCI/OHCI driver hardcoded the CPU type in {ehci,ohci}-hcd.c. So if we will add the new CPU, we had to add to the hcd driver each time. The patch adds the CONFIG_USB_{EHCI,OHCI}_SH configuration. So if we want to use the SH EHCI/OHCI, we only enable the configuration. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit e08016d0f4fcfe038a402071ada3073c6ca8d62d Author: Anand Gadiyar Date: Tue Mar 1 13:12:55 2011 -0800 omap: mmc: split out init for 2420 The MMC controller on the OMAP2420 is different from those on the OMAP2430, OMAP3 and OMAP4 families - all of the latter are identical. The one on the OMAP2420 is closer to that on OMAP1 chips. Currently, the n8x0 is the only OMAP2420 platform supported in mainline which registers the MMC controller. Upcoming changes to register the controllers using hwmod data are potentially invasive. To reduce the risk, separate out the 2420 controller registration from the common init function and update its only user. Also seperating out mux settings for OMAP2420. Signed-off-by: Anand Gadiyar Signed-off-by: Kishore Kadiyala Cc: Tony Lindgren Cc: Madhusudhan Chikkature Cc: Chris Ball Signed-off-by: Tony Lindgren commit bce06f375644f8b28fbc1d261699fdfe459733ad Author: Paul Walmsley Date: Tue Mar 1 13:12:55 2011 -0800 OMAP2430: hwmod data: Add HSMMC Update the omap2430 hwmod data with the HSMMC info. Signed-off-by: Paul Walmsley Signed-off-by: Kevin Hilman Signed-off-by: Rajendra Nayak Cc: Benoit Cousson Signed-off-by: Tony Lindgren commit b163605e3f2051e0cbd378d46a91cab2563b7ebf Author: Paul Walmsley Date: Tue Mar 1 13:12:56 2011 -0800 OMAP3: hwmod data: Add HSMMC Update the omap3 hwmod data with the HSMMC info. Signed-off-by: Paul Walmsley Signed-off-by: Kevin Hilman Signed-off-by: Rajendra Nayak Signed-off-by: Kishore Kadiyala Cc: Benoit Cousson Signed-off-by: Tony Lindgren commit 17203bdaf2fd0cda6ac941a7b3fb8416c57303c7 Author: Anand Gadiyar Date: Tue Mar 1 13:12:56 2011 -0800 OMAP4: hwmod data: enable HSMMC Enabling hsmmc hwmod for OMAP4 Signed-off-by: Anand Gadiyar Signed-off-by: Kishore Kadiyala Acked-by: Benoit Cousson Signed-off-by: Tony Lindgren commit 6ab8946f672497a55625d2106250d2923125fdfb Author: Kishore Kadiyala Date: Tue Mar 1 13:12:56 2011 -0800 OMAP: hwmod data: Add dev_attr and use in the host driver Add a device attribute to hwmod data of omap2430, omap3, omap4. Currently the device attribute holds information regarding dual volt MMC card support by the controller which will be later passed to the host driver via platform data. Signed-off-by: Kevin Hilman Signed-off-by: Kishore Kadiyala Acked-by: Benoit Cousson Signed-off-by: Tony Lindgren commit d8d0a61c658e252de3077f6076f13423642caf67 Author: Kishore Kadiyala Date: Mon Feb 28 20:48:03 2011 +0530 OMAP: hsmmc: Move mux configuration to hsmmc.c Moving the definition of mux setting API from devices.c to hsmmc.c and renaming it from "omap2_mmc_mux" to "omap_hsmmc_mux". Also calling "omap_hsmmc_mux" from omap2_hsmmc_init. Signed-off-by: Kishore Kadiyala Cc: Chris Ball commit 4621d5f8cb435b1ba74efe6e0a7125febb40186b Author: Kishore Kadiyala Date: Mon Feb 28 20:48:04 2011 +0530 OMAP: adapt hsmmc to hwmod framework OMAP2420 platform consists of mmc block as in omap1 and not the hsmmc block as present in omap2430, omap3, omap4 platforms. Removing all base address macro defines except keeping one for OMAP2420 and adapting only hsmmc device registration and driver to hwmod framework. Changes involves: 1) Remove controller reset in devices.c which is taken care of by hwmod framework. 2) Using omap-device layer to register device and utilizing data from hwmod data file for base address, dma channel number, Irq_number, device attribute. 3) Update the driver to use dev_attr to find whether controller supports dual volt cards Signed-off-by: Paul Walmsley Signed-off-by: Kishore Kadiyala Reviewed-by: Balaji T K Cc: Benoit Cousson CC: Kevin Hilman Cc: Tony Lindgren Signed-off-by: Tony Lindgren commit 0005ae73cfe44ee42d0be12a12cc82bf982f518e Author: Kishore Kadiyala Date: Mon Feb 28 20:48:05 2011 +0530 OMAP: hsmmc: Rename the device and driver Modifying the device & driver name from "mmci-omap-hs" to "omap_hsmmc". Signed-off-by: Kishore Kadiyala Acked-by: Benoit Cousson Signed-off-by: Tony Lindgren commit 179467f16b2250af2bf1a2fa7e8e889c47252131 Author: Nicolas Pitre Date: Tue Mar 1 17:56:59 2011 -0500 omap4: dvfs: fix link error LD .tmp_vmlinux1 arch/arm/mach-omap2/built-in.o: In function `omap_target': arch/arm/mach-omap2/omap2plus-cpufreq.c:118:undefined reference to `omap_device_scale' arch/arm/plat-omap/built-in.o: In function `omap_device_build_ss': arch/arm/plat-omap/omap_device.c:490:undefined reference to `omap_dvfs_register_device' make[2]: *** [.tmp_vmlinux1] Error 1 eported-by: Bryan Wu Signed-off-by: Nicolas Pitre commit 1a9f5e89d67855385ed42b7b71167e2d3a39507a Author: Benoit Cousson Date: Tue Feb 8 14:30:31 2011 -0700 omap4: clockdomain: Fix the CPUx domain name The register naming convention for clock domain control inside power domain instance is: OMAPXXXX____CDOFFS Both CPU0 and CPU1 use MPU as clock domain name instead of CPU0 and CPU1. Change the name to stick to the convention. The autogen scripts are updated accordingly. Signed-off-by: Benoit Cousson Signed-off-by: Santosh Shilimkar Cc: Paul Walmsley Cc: Rajendra Nayak Signed-off-by: Paul Walmsley commit 3ed4566ed2146ff8ac1cbaf2babdf04e50b66648 Author: Santosh Shilimkar Date: Fri Feb 25 15:21:17 2011 -0700 omap4: powerdomain: Use intended PWRSTS_* flags instead of values IVAHD and ABE power domain logic state is populated using directly value instead of the capability flags. Fix the same. Signed-off-by: Santosh Shilimkar [paul@pwsan.com: updated to apply at a different point on the tree] Signed-off-by: Paul Walmsley commit da0653fe01cd4c6ed402a94752b78be62cb39282 Author: Rajendra Nayak Date: Fri Feb 25 15:40:21 2011 -0700 OMAP2+: omap_device/clock: Do not expect an entry in clkdev for opt_clks The _add_optional_clock_alias function expects an entry already existing in the clkdev table in the form of which might not be the case always. Instead, just check if an entry already exists in clkdev in the form, else go ahead and add one. Remove any assumption of an entry already existing in clkdev table in any form. Since this means, adding a new entry in clkdev if it does not already exist, and not really adding an 'alias', also rename the function name (s/_add_optional_clock_alias/_add_optional_clock_clkdev) to reflect this. Signed-off-by: Rajendra Nayak Reported-by: Sumit Semwal Cc: Sumit Semwal Cc: Paul Walmsley Cc: Benoit Cousson Cc: Kevin Hilman Cc: Partha Basak Signed-off-by: Paul Walmsley commit a05dcdb98011a53d150d699ef8243754e2c9a61c Author: Paul Walmsley Date: Fri Feb 25 18:22:08 2011 -0700 MMC: omap_hsmmc: enable interface clock before calling mmc_host_enable() The code path entered via mmc_host_enable() can include register accesses to the HSMMC IP block. For this to work, both the device interface clock and functional clock need to be enabled before mmc_host_enable() is called. However, omap_hsmmc_probe() calls mmc_host_enable() before enabling the device interface clock. Fix by calling mmc_host_enable() after the device interface clock is enabled. Signed-off-by: Paul Walmsley Cc: Madhusudhan Chikkature Rajashekar Cc: Adrian Hunter Cc: Kishore Kadiyala Cc: Tero Kristo Acked-by: Madhusudhan Chikkature Rajashekar commit c8a7e33a8ecc893158c1db0ea1c0248d8a50e93d Author: Linus Walleij Date: Tue Mar 1 14:39:50 2011 +0100 mach-ux500: activate fix for errata 753970 This applies errata fix 753970 for all ux500 platforms. All current ASICs suffer from this. If the problem is resolved in later ASICs, the errata selection can be pushed down to other Kconfig options. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Pitre commit 9647a3dde137ee1192fe8f523dabc0bdd678d681 Author: Linus Walleij Date: Tue Mar 1 16:11:38 2011 +0100 mach-ux500: activate USB in the U8500 defconfig Activate the new USB stuff so we atleast get some compile coverage for this stuff. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Pitre commit a580b8c5429a624d120cd603e1498bf676e2b4da Author: Shawn Guo Date: Sun Feb 27 00:47:42 2011 +0800 dmaengine: mxs-dma: add dma support for i.MX23/28 This patch adds dma support for Freescale MXS-based SoC i.MX23/28, including apbh-dma and apbx-dma. * apbh-dma and apbx-dma are supported in the driver as two mxs-dma instances. * apbh-dma is different between mx23 and mx28, hardware version register is used to differentiate. * mxs-dma supports pio function besides data transfer. The driver uses dma_data_direction DMA_NONE to identify the pio mode, and steals sgl and sg_len to get pio words and numbers from clients. * mxs dmaengine has some very specific features, like sense function and the special NAND support (nand_lock, nand_wait4ready). These are too specific to implemented in generic dmaengine driver. * The driver refers to imx-sdma and only a single descriptor is statically assigned to each channel. Signed-off-by: Shawn Guo Signed-off-by: Vinod Koul commit b51b2a814959d76e69f1a1ea9ab3a7190afbf2f3 Author: Nicolas Pitre Date: Wed Mar 2 11:44:57 2011 -0500 ARM: compressed/head.S: make LDFLAGS_vmlinux into a recursively expanded variable The simply expanded variable may be evaluated before the target file for the stat command is up to date or even exists. Switching to a recursively expanded variable move the execution of the stat command to the location where the LDFLAGS_vmlinux variable is used fixing the dependency issue. Signed-off-by: Nicolas Pitre commit b0a679326ce90e65779178906df5b8b6180163d6 Author: Dima Zavin Date: Wed Mar 2 13:16:36 2011 -0800 video: msmfb: Put the partial update magic value into the fix_screen struct. This can then be tested by userspace to see if the capability is supported. Userspace cannot rely on that value being left in var_screen, since userspace itself can change it. Signed-off-by: Dima Zavin Signed-off-by: Carl Vanderlip Signed-off-by: David Brown commit a8d380f30a7d8cc507fd5cc84b2dc5ee2b2144d7 Author: Dima Zavin Date: Wed Mar 2 13:17:08 2011 -0800 msm: mdp: Add support for RGBX 8888 image format. Signed-off-by: Dima Zavin Signed-off-by: Carl Vanderlip Signed-off-by: David Brown commit 790ab7e92bec24aee3939b300d36b99ab2e3f3ca Author: Ming Lei Date: Thu Mar 3 06:41:46 2011 +0800 arm: omap: fix section mismatch warning WARNING: arch/arm/plat-omap/built-in.o(.data+0x6d4): Section mismatch in reference from the variable omap_driver to the function .init.text:omap_cpu_init() The variable omap_driver references the function __init omap_cpu_init() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Ming Lei Signed-off-by: Tony Lindgren commit f463effebefb26f1dffb92d10725e938f4497bef Author: Tony Lindgren Date: Thu Feb 24 12:56:42 2011 +0000 ldp: Fix regulator mapping for ads7846 TS controller On the OMAP3430LDP board, the ads7846 touchscreen controller is powered by VAUX1 regulator (supplying 3.0v). Fix this mapping in the board file, and hence prevent the ads7846 driver init to fail with the below error.. ads7846 spi1.0: unable to get regulator: -19 Signed-off-by: Rajendra Nayak Signed-off-by: Tony Lindgren commit ec179ea5361cdd34bf4e6d6bdfe02d6f4d6901b2 Author: Guy Eilam Date: Fri Feb 25 06:52:35 2011 +0000 omap: panda: Add TI-ST driver support Added the KIM (Kernel initialization module for the Shared Transport driver) device entry in the board file Only the Blutooth enable GPIO is set for now Signed-off-by: Guy Eilam Signed-off-by: Tony Lindgren commit b7a834cc7d08276bf080077b3499d88f73e303ba Author: Ilkka Koskinen Date: Fri Feb 25 08:46:23 2011 +0000 omap: rx51: Add support for vibra Add support for vibra Signed-off-by: Ilkka Koskinen Signed-off-by: Tony Lindgren commit 962f3ffa927f2e777a4193843c45ffa6e52ff4b6 Author: Akinobu Mita Date: Wed Mar 2 20:35:28 2011 +0900 wusb: fix find_first_zero_bit() return value check In wusb_cluster_id_get(), if no zero bits exist in wusb_cluster_id_table, find_first_zero_bit() returns CLUSTER_IDS. But it is impossible to detect that the bitmap is full because there is an off-by-one error in the return value check. It will cause unexpected memory access by setting bit out of wusb_cluster_id_table bitmap, and caller will get wrong cluster id. Signed-off-by: Akinobu Mita Cc: linux-usb@vger.kernel.org Cc: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman commit 45d1b7ae205e39e95ec65747f8871661aaa105e4 Author: Stephen Hemminger Date: Tue Mar 1 22:40:57 2011 -0800 usb-gadget: fix warning in ethernet Driver was taking max() of a size_t and u32 which causes complaint about comparison of different types. Stumbled on this accidently in my config, never used. Signed-off-by: Stephen Hemminger Signed-off-by: Greg Kroah-Hartman commit 5af9a6eb376bf7a9da738a56c01206e6d7e4a1b1 Author: Huzaifa Sidhpurwala Date: Wed Mar 2 11:17:49 2011 +0530 USB: Remove delay_t unused variable from sierra_ms.c driver initialisation code trivial patch to remove unused delay_t varible Signed-off-by: Huzaifa Sidhpurwala Signed-off-by: Greg Kroah-Hartman commit 2cd5bb29a42f305c5749571c8cd693fbe69cc28d Author: Huzaifa Sidhpurwala Date: Wed Mar 2 11:53:00 2011 +0530 USB: Remove unused is_iso from fsl_udc_core.c is_iso variable is not used anywhere, remove it Signed-off-by: Huzaifa Sidhpurwala Signed-off-by: Greg Kroah-Hartman commit e4738e29bef8ed9bdd8a0606d0561557b4547649 Author: Huzaifa Sidhpurwala Date: Wed Mar 2 11:59:26 2011 +0530 USB: Remove unused timeout from io_edgeport.c timeout variable is not used anywhere in int write_cmd_usb, remove it Signed-off-by: Huzaifa Sidhpurwala Signed-off-by: Greg Kroah-Hartman commit 6a58baf8f222f60cded29770ff9a0f6f6c100b64 Author: Ilkka Koskinen Date: Wed Mar 2 13:24:05 2011 +0000 omap: Remove unnecessary twl4030_codec_audio settings from board files twl4030_codec_audio and twl4030_codec_vibra_data has unused field. In order to remove it, corresponding settings needs to be removed from board files. Signed-off-by: Ilkka Koskinen Acked-by: Peter Ujfalusi Acked-by: Mark Brown Signed-off-by: Tony Lindgren commit 0a0d128d023a49eb8afa0e988e6773416318a0b5 Author: Ilkka Koskinen Date: Wed Mar 2 13:24:06 2011 +0000 mfd: twl4030_codec: Remove unused and duplicate audio_mclk fields audio_mclk can be queried from mfd driver. Therefore, it is not needed in twl4030_codec_audio_data or in twl4030_codec_vibra_data anymore. Signed-off-by: Ilkka Koskinen Acked-by: Peter Ujfalusi Acked-by: Mark Brown Acked-by: Samuel Ortiz Signed-off-by: Tony Lindgren commit 2ce30137094969123a8846ca4f68c2628ea4a658 Author: Banajit Goswami Date: Mon Feb 28 22:24:51 2011 +0530 ARM: SAMSUNG: Move PWM device definition from plat-s3c24xx to plat-samsung This patch does the following:- 1. It moves file pwm.c from plat-s3c24xx to plat-samsung. This will enable all machines with Samsung SoCs to make use of the same code. 2. The device definitions have been separated to a new file dev-pwm.c for better clarity and structure. 3. It will enable all Samsung S3C and S5P series SoC's to use common PWM Kconfig definition. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim commit 075d108989f71e6c7c287c258ebc3faf53066458 Author: Banajit Goswami Date: Mon Feb 28 17:42:35 2011 +0530 ARM: SAMSUNG: Add PWM backlight support on Samsung S3C6410 This patch adds support for LCD backlight using PWM timer for Samsung SMDK6410 board. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim commit fec524aa05775b1582644f54842c6a30a9b7bbe5 Author: Banajit Goswami Date: Mon Feb 28 20:31:27 2011 +0530 ARM: SAMSUNG: Add PWM backlight support on Samsung S5P6440 This patch adds support for LCD backlight control using PWM timer for Samsung SMDK6440 board. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim commit b0fd644f444c680838140aff4e766389ee6ad9a3 Author: Banajit Goswami Date: Mon Feb 28 23:31:17 2011 +0530 ARM: SAMSUNG: Add PWM backlight support on Samsung S5P6450 This patch adds support for LCD backlight control using PWM timer for Samsung SMDK6450 board. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim commit baa0c0609307e46531e9d5d6f5b9a510ceb8e30c Author: Banajit Goswami Date: Mon Feb 28 20:37:21 2011 +0530 ARM: SAMSUNG: Add PWM backlight support on Samsung S5PC100 This patch adds support for LCD backlight using PWM timer for Samsung SMDKC100 board. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim commit 5cd435b4ab881280fb0b8ce6686cfceb005d98c8 Author: Banajit Goswami Date: Mon Feb 28 23:02:32 2011 +0530 ARM: SAMSUNG: Add PWM backlight support on Samsung S5PV210 This patch adds support for LCD backlight control using PWM timer for Samsung's SMDKV210 board. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim commit 014433f2287b7d3b80a1de4aa0cdd33e94b8c80c Author: Andy Green Date: Thu Mar 3 11:59:08 2011 -0500 OMAP3 and 4 hwmod I2C units only allow 16 bit access Peter Maydell noticed when running under QEMU he was getting errors reporting 32-bit access to I2C peripheral unit registers that are documented to be 8 or 16-bit only[1][2] The I2C driver is blameless as it wraps its accesses in a function using __raw_writew and __raw_readw, it turned out it is the hwmod stuff. However the hwmod code already has a flag to force a perhipheral unit to only be accessed using 16-bit operations. This patch applies the 16-bit only flag to the OMAP3xxx and OMAP44xx hwmod structs. [1] OMAP4430 Technical reference manual section 23.1.6.2 [2] OMAP3530 Techincal reference manual section 18.6 Cc: patches@linaro.org Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Nicolas Pitre commit 6359036d179623bfa01410cc783548b6774c2b3a Author: Andy Green Date: Thu Mar 3 13:50:30 2011 +0000 OMAP3 I2C document why cpu type and not peripheral unit ID used to probe Describe why we can't simply probe the peripheral unit ID to make the decision about what register map to use Cc: patches@linaro.org Signed-off-by: Andy Green Signed-off-by: Nicolas Pitre commit 164085ed34dae1a5bd8b561fc8791a663a95005d Author: Andy Green Date: Thu Mar 3 13:50:37 2011 +0000 OMAP3 and 4 i2c mark extended reg enums as extended only The OMAP I2C driver dynamically chooses between two register sets of differing sizes depending on the cpu type it finds itself on. It has been observed that the existing code references non-existing registers on OMAP3530, because while it correctly chose the smaller register layout based on cpu type, the code uses the probed register ID to decide if to execute code referencing an extra register, and both register layout devices on OMAP3530 and OMAP4430 report the same probed ID of 0x40. This patch changes the extended register name to make it clearer they only exist in OMAP4 context Cc: patches@linaro.org Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Nicolas Pitre commit 8f0ab72d6f4bcc20ab0c6b47ece9c1c872f6ca09 Author: Andy Green Date: Thu Mar 3 13:50:44 2011 +0000 OMAP3 and 4 I2C use cpu type consistently for new register availability The driver makes the choice about which register layout to use based on cpu, however it then tries to use the probed peripheral unit version register to decide whether to access registers that only exist in the 4430 unit. Unfortunately, the unit with the smaller register map on the OMAP3530 has the same peripheral unit version number, leading the OMAP3530 to dereference the register map beyond the bounds of its array, and then to access a 'random' register offset taken from whatever happens to be sitting beyond the register map array, as reported here https://bugs.launchpad.net/linux-linaro/+bug/645324 This patch makes both the choice of register map and the decision to use a register only present in the larger map both do so based on cpu type, which correctly reflects register availability. Cc: patches@linaro.org Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Nicolas Pitre commit e25bac968d41d994e5295f89547bdff6cb40588a Author: Alexander Clouter Date: Sat Jan 8 11:55:25 2011 +0000 [ARM] orion5x: accelerate NAND on the TS-78xx The NAND supports 32bit reads and writes so lets stop shunting 8bit chunks across the bus. Doing a dumb 'dd' benchmark, this increases performance roughly like so: * read: 1.3MB/s to 3.4MB/s * write: 614kB/s to 882kB/s Signed-off-by: Alexander Clouter Signed-off-by: Nicolas Pitre commit 868d172b8ac23070418ec6265195e88e8d5dbe92 Author: Eric Cooper Date: Wed Feb 2 17:16:09 2011 -0500 [ARM] add machine-specific hook to machine_kexec Provide the option to call a machine-specific function before kexec'ing a new kernel. Signed-off-by: Eric Cooper Signed-off-by: Nicolas Pitre commit 0e0cdd37709ba7ac9f0bff5de1b22f1b7987b04c Author: Eric Cooper Date: Wed Feb 2 17:16:10 2011 -0500 [ARM] Kirkwood: enable PCIe before reading device ID register PCIe may have been disabled (by kirkwood_clock_gate) if this kernel was started by kexec. Make sure PCIe is enabled before attempting to access the device ID register, otherwise the system will hang. Signed-off-by: Eric Cooper Signed-off-by: Nicolas Pitre commit 9c15364f83201802e995cbf72d833e5e1b3b9adb Author: Eric Cooper Date: Wed Feb 2 17:16:11 2011 -0500 [ARM] Kirkwood: enable PCIe for kexec Use the machine-specific kexec_reinit hook to make sure PCIe is enabled before starting a new kernel. Signed-off-by: Eric Cooper Signed-off-by: Nicolas Pitre commit 1ab6962794b4225b67bc3b6449f11a126f455fff Author: Zintis Pētersons Date: Mon Feb 14 18:38:13 2011 +0200 [ARM] Kirkwood: initialize PCIE1 for QNAP TS-419P+ Initialize PCIE1 on the 6282-based QNAP TS-419P+ since it has a Marvell 9125 SATA chip on each PCI bus. Signed-off-by: Zintis Pētersons Signed-off-by: Nicolas Pitre commit 17718e17a25cc989954a8430985b3133ca21422e Author: Alexander Clouter Date: Wed Feb 16 22:29:39 2011 +0000 [ARM] update FPGA revisions for TS-7800 New FPGA revisions have been released and seen in the wild on the platform, so it's time to update the list. Signed-off-by: Alexander Clouter Signed-off-by: Nicolas Pitre commit 9d3e1c56dee5e09c6babc96810c7105a7993908e Author: Arnaud Patard Date: Wed Mar 2 22:27:41 2011 +0100 [ARM] Kirkwood: t5325: add audio support This patch declares the i2c audio codec and initialise audio. It's adding the alc5621 codec in the i2c board info and is calling kirkwood_audio_init() to initialize kirkwood audio. Signed-off-by: Arnaud Patard Signed-off-by: Nicolas Pitre commit 9b8ebfec7d661a23934ed3c12fe75ebd9e2e3b82 Author: Nicolas Pitre Date: Thu Mar 3 15:08:53 2011 -0500 [ARM] Kirkwood: make kirkwood_find_tclk() static Signed-off-by: Nicolas Pitre commit 40ff15a6cb9e7e84b72ef962d9d27551fb00f54b Author: Nicolas Pitre Date: Thu Mar 3 15:12:48 2011 -0500 [ARM] Kirkwood: add LaCie d2 Network v2 to defconfig Signed-off-by: Nicolas Pitre commit 4ee1f6b574765a6c97f945e6b0277e5ccac38cb5 Author: Lennert Buytenhek Date: Fri Oct 15 16:50:26 2010 +0200 ARM: Remove dependency of plat-orion time code on mach directory includes. This patch makes the various mach dirs that use the plat-orion time code pass in timer and bridge addresses explicitly, instead of having plat-orion get those values by including a mach dir include file -- the latter mechanism is problematic if you want to support multiple ARM platforms in the same kernel image. Signed-off-by: Lennert Buytenhek Signed-off-by: Nicolas Pitre commit 9eac6d0a4e7e5149a7f86575b46d710ad2e05fe2 Author: Lennert Buytenhek Date: Tue Dec 14 12:54:03 2010 +0100 ARM: Remove dependency of plat-orion GPIO code on mach directory includes. This patch makes the various mach dirs that use the plat-orion GPIO code pass in GPIO-related platform info (GPIO controller base address, secondary base IRQ number, etc) explicitly, instead of having plat-orion get those values by including a mach dir include file -- the latter mechanism is problematic if you want to support multiple ARM platforms in the same kernel image. Signed-off-by: Lennert Buytenhek Signed-off-by: Nicolas Pitre commit 6920aaf084ec3481eec7793019d0a8395fa85484 Author: Lennert Buytenhek Date: Mon Nov 22 09:34:12 2010 +0100 ARM: Dove: Remove PXA compatibility IRQ defines. These are not currently used anywhere, but when the relevant peripherals are enabled on the Dove port, the IRQ numbers should be passed into the drivers via platform device resources rather than having the drivers get them from platform headers directly. Signed-off-by: Lennert Buytenhek Acked-by: Saeed Bishara Signed-off-by: Nicolas Pitre commit 1e40a97e6cb69d8b7edba801d75d1024078ce9aa Author: Mike Rapoport Date: Wed Mar 2 14:34:04 2011 +0200 ARM: tegra: PCIE minor code refactoring Move tegra_pcie_power_off before tegra_pcie_power_on for clean addition of PCIE power gating Signed-off-by: Mike Rapoport Signed-off-by: Colin Cross commit b96cc7fe190b9356633c70afae61ee0637b000ee Author: Mike Rapoport Date: Wed Mar 2 14:34:05 2011 +0200 ARM: tegra: add PCI Express power gating Signed-off-by: Mike Rapoport Signed-off-by: Colin Cross commit d5fdafd38ca0c28c4648909ce0afd0a5420309ca Author: Mike Rapoport Date: Wed Mar 2 14:34:06 2011 +0200 ARM: tegra: trimslice: initialize PCI-e only when running on TrimSlice Currently tegra_pcie_init is effectively called as subsys_initcall. With multiplatform kernel this may cause hangs on boards that don't intend to support Tegra2 PCI-e. Ensure that TrimSlice board code initializes PCI-e only when actually running on the TrimSlice. Signed-off-by: Mike Rapoport Signed-off-by: Colin Cross commit caf8b1f234f876981bf1be0fa2651a4e97203754 Author: Minkyu Kang Date: Mon Feb 28 20:39:43 2011 +0900 ARM: EXYNOS4: Adds Samsung NURI board support This patch adds Samsung NURI board support. Signed-off-by: Minkyu Kang Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 4d838ec03b2b0aea945a89b37abbf8c5550147fb Author: Marek Szyprowski Date: Fri Mar 4 10:19:52 2011 +0900 ARM: EXYNOS4: Add support for i2c PMICs on Universal_C210 board This patch adds basic definitions for MAX8952 & LP3974 (MAX8998 compatible) PMICs for UniversalC210 board. Power consumers for the device drivers will be added later. These two PMICs occupy I2C5 bus. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit af6ec5a22eef054f39368c662e9dafd8817374e2 Author: ALIM AKHTAR Date: Fri Mar 4 15:24:23 2011 +0900 ARM: EXYNOS4: Add ARMLEX4210 Board support file This patch adds Samsung ARMLEX4210 board support file which is based on Exynos4210. Signed-off-by: Alim Akhtar [kgene.kim@samsung.com: added clk_type for hsmmc3] Signed-off-by: Kukjin Kim commit cd97bb003276a66b2174e5dc589748e5c4bc357e Author: Benoit Cousson Date: Fri Mar 4 16:01:43 2011 +0100 Revert "OMAP4: hwmod data: Prevent timer1 to be reset and idle during init" The following commit: 38698be: OMAP2+: clockevent: set up GPTIMER clockevent hwmod right before timer init Fixed properly the issue with early init for the timer1 So reverts commit 3b03b58dab847883e6b9a431558c7d8e43fa94c6 that is now generated a warning at boot time. Signed-off-by: Benoit Cousson Reviewed-by: Paul Walmsley Signed-off-by: Tony Lindgren commit f9b1184e12e5ff8129b04837dffddb5a3c390473 Author: Michael Spang Date: Fri Mar 4 23:50:57 2011 -0500 ARM: Enable TS-78XX features in unknown revisions When the manufacturer increases the revision number the platform devices for the RTC, NAND, and RNG disappear. We should assume new revisions have these devices instead of assuming they do not. Signed-off-by: Michael Spang Signed-off-by: Nicolas Pitre commit b3882330843650b751817712db57b9a7061e7879 Author: Alexander Clouter Date: Sat Mar 5 11:49:36 2011 +0000 ARM: orion5x: use safer FPGA ID 'default' for TS-78xx Originally the FPGA ID checking switch statement left disabled all the TS implemented FPGA devices if the ID was unknown to it. Michael Spang created a fix in f9b1184e that changed the default to enable the devices in the event TS silently release more revisions into the wild, this unfortunately breaks custom FPGA bitstreams. This patch amends the switch statement so that the TS devices are only enabled if on the revision number is unknown (whilst the magic matches). Changelog: v2: neater implementation and some cosmetic changes v1: initial release <20110305112937.GA22117@chipmunk> Signed-off-by: Alexander Clouter Signed-off-by: Nicolas Pitre commit 53936c56dcaf1db818fe953ae05592a8b5e345b5 Author: Alexander Clouter Date: Sat Mar 5 11:31:04 2011 +0000 ARM: orion5x: fix compiler cast warnings in ts78xx-setup.c Signed-off-by: Alexander Clouter [np: used min_t() as suggested by Sergei Shtylyov ] Signed-off-by: Nicolas Pitre commit 31bb68a314e9a2c9fbe054441b18c0608585605e Author: Alexander Sverdlin Date: Thu Mar 3 10:53:52 2011 +0100 ARM: 6780/1: EDB93xx: Add support for CS4271 SPI-connected CODEC Add support for CS4271 SPI-connected CODEC to EDB93xx. Signed-off-by: Alexander Sverdlin Acked-by: H Hartley Sweeten Acked-by: liam Girdwood Signed-off-by: Russell King commit f44ad7e91dd12bed0959b3e715f4f3ab84951a59 Author: Viresh Kumar Date: Thu Mar 3 15:47:14 2011 +0530 dw_dmac: Remove compilation dependency from AVR32 and put on HAVE_CLK This driver will now be used in atleast two platforms AVR32 & ARM. And there is no actual hardware dependency of this driver over AVR32 or ARM. So this dependency can be removed altogether. Also dw_dmac driver uses clk framework and must have compilation dependency on HAVE_CLK Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit cb689a706d17ef19a61735670ded60466dd015fa Author: Viresh Kumar Date: Thu Mar 3 15:47:15 2011 +0530 dw_dmac: Replace module_init() with subsys_initcall() In some cases users of dw_dmac are initialized before dw_dmac, and if they try to use dw_dmac, they simply fail. So its better we register init() routine of driver using subsys_initcall() instead of module_init(), so that dma driver is available at the earliest possible. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit f336e42f73d93b74fd21bf9176ee6c7ab8b195c5 Author: Viresh Kumar Date: Thu Mar 3 15:47:16 2011 +0530 dw_dmac: Move single descriptor from dwc->queue to dwc->active_list in dwc_complete_all dwc_complete_all and other routines was removing all descriptors from dwc->queue and pushing them to dwc->active_list. Only one was required to be removed. Also we are calling dwc_dostart, once list is fixed. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 569432efa7975f5795efb8142134f5a098942381 Author: Viresh Kumar Date: Thu Mar 3 15:47:17 2011 +0530 dw_dmac: Calling dwc_scan_descriptors from dwc_tx_status() after taking lock Lock must be taken before calling dwc_scan_descriptors, as this may access/modify shared data and queues. dwc_tx_status wasn't taking lock before calling this routine. This patch add code that takes lock before calling dwc_scan_descriptors. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit a02274564dd78f7edde3c9ff197ed44f2f8a5a81 Author: Viresh Kumar Date: Thu Mar 3 15:47:18 2011 +0530 dw_dmac: Adding support for 64 bit access width for memcpy xfers Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 418e74070662e1ae7d9bb5202f773d35c9a7f05e Author: Viresh Kumar Date: Fri Mar 4 15:42:50 2011 +0530 dw_dmac: Change value of DWC_MAX_COUNT to 4095. Every descriptor can transfer a maximum count of 4095 (12 bits, in control reg), So we must have DWC_MAX_COUNT as 4095 instead of 2048. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit e518076ef8cb56adb558ff56ad5bfa0cd9f3abd9 Author: Viresh Kumar Date: Thu Mar 3 15:47:20 2011 +0530 dw_dmac: Mark all tx_descriptors with DMA_CRTL_ACK after xfer finish dwc_desc_get checks all descriptors for DMA_CTRL_ACK before allocating them for transfers. And descriptors are not marked with DMA_CRTL_ACK after transfer finishes. Thus descriptor once used is not usable again. This patch marks descriptors with DMA_CRTL_ACK after dma xfer finishes Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit b0c3130d69bda5cd91aa3b3f08e7878df49fde69 Author: Viresh Kumar Date: Thu Mar 3 15:47:21 2011 +0530 dw_dmac: Pass Channel Allocation Order from platform_data In SPEAr Platform channels 4-7 have more Fifo depth. So we must get better channel first. This patch introduces concept of channel allocation order in dw_dmac. If user doesn't pass anything or 0, than normal (ascending) channel allocation will follow, else channels will be allocated in descending order. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 93317e8e35b77633d589fe0e132291195757d785 Author: Viresh Kumar Date: Thu Mar 3 15:47:22 2011 +0530 dw_dmac: Pass Channel Priority from platform_data In Synopsys designware, channel priority is programmable. This patch adds support for passing channel priority through platform data. By default Ascending channel priority will be followed, i.e. channel 0 will get highest priority and channel 7 will get lowest. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 59c22fc11d12b69da36c6585a38229863ba0bb16 Author: Viresh Kumar Date: Thu Mar 3 15:47:23 2011 +0530 dw_dmac: Changing type of src_master and dest_master to u8. src_master & dest_master don't required u32 as they have values limited to u8 only. Also their description is missing from doc style comment. This patch fixes above mentioned issues. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit ee66509d7f354eecb45ac99f21ea6aa8650dea7e Author: Viresh KUMAR Date: Fri Mar 4 15:42:51 2011 +0530 dw_dmac: Allow src/dst msize & flow controller to be configured at runtime Msize or Burst Size is peripheral dependent in case of prep_slave_sg and cyclic_prep transfers, and in case of memcpy transfers it is platform dependent. So msize configuration must come from platform data. Also some peripherals (ex: JPEG), need to be flow controller for dma transfers, so this information in case of slave_sg & cyclic_prep transfers must come from platform data. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit e51dc53b8c7fa2d9ac4ef8f317f5dfe07a79e65a Author: Viresh Kumar Date: Thu Mar 3 15:47:25 2011 +0530 dw_dmac: Setting Default Burst length for transfers as 16. This patch sets default Burst length for all transfer to 16. This will enhance performance when user doesn't have any chan->private data. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 1c5b0538c719f52cface39f699fb5d39a50149d6 Author: Viresh Kumar Date: Thu Mar 3 15:47:26 2011 +0530 avr32: at32ap700x: Specify DMA Flow Controller, Src and Dst msize Now that the dw_dmac DMA driver supports configurable Flow Controller, source and destination burst or msize, we need to specify which ones to use. Msize or burst size was previously hardcoded to 1, Flow controller was DMA for both M2P & P2M transfers. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 29782da5f0206335e2325508ba4fee0d624ddab6 Author: Viresh Kumar Date: Fri Mar 4 14:58:32 2011 +0530 dmaengine/dw_dmac fix: use readl & writel instead of __raw_readl & __raw_writel On ARMv7 cores, device memory mapped as Normal Non-cacheable, may not guarantee ordered access causing failures in device drivers that do not use the mandatory memory barriers. readl & writel versions contain necessary memory barriers for this. commit 79f64dbf68c8a9779a7e9a25e0a9f0217a25b57a: "ARM: 6273/1: Add barriers to the I/O accessors if ARM_DMA_MEM_BUFFERABLE" can be referred for more information on this. Signed-off-by: Viresh Kumar Signed-off-by: Vinod Koul commit 0b863b333f529c7ddd8bee58e6696a7254417a05 Author: Rakib Mullick Date: Sun Mar 6 17:26:10 2011 +0600 drivers, pch_dma: Fix warning when CONFIG_PM=n. When CONFIG_PM=n, we get the following warning: drivers/dma/pch_dma.c:741: warning: ‘pch_dma_suspend’ defined but not used drivers/dma/pch_dma.c:755: warning: ‘pch_dma_resume’ defined but not used To fix it, wrap pch_dma_{suspend,resume} and pch_dma_{save,restore}_regs functions with CONFIG_PM. Signed-off-by: Rakib Mullick Signed-off-by: Vinod Koul commit f36871b044ef9db422e123acda4099e62bbfe18d Author: Kyungmin Park Date: Mon Mar 7 13:31:43 2011 +0900 ARM: EXYNOS4: Remove meaningless REGULATOR config option The regulator API ifdefs itself out when not enabled so there is no need for users to do this. Signed-off-by: Kyungmin Park [kgene.kim@samsung.com: edited description] Signed-off-by: Kukjin Kim commit ccb24d50b7ee242a2bf2dd208193f7335a3a0d7d Author: Sascha Hauer Date: Wed Feb 16 10:46:12 2011 +0100 ARM: mxs: Add missing EXPORT_SYMBOL for mxs_reset_block It is used for example in the i2c driver which can be compiled modular. Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 1cb59f9f79f4ed89845f6f8bebf0273442e1ccd5 Author: Lothar Waßmann Date: Fri Dec 10 16:22:47 2010 +0100 ARM: mxs: Initial support for Ka-Ro TX28 Based on code created by Lothar Waßmann, Sascha Hauer, Wolfram Sang and me. Signed-off-by: Lothar Waßmann Signed-off-by: Sascha Hauer Signed-off-by: Wolfram Sang Signed-off-by: Uwe Kleine-König commit 20fcd4aa019af7576f8ee704c6fd2908811981d5 Author: Eric Bénard Date: Fri Feb 25 13:49:15 2011 +0100 i.MX25: add sdma clock definitions Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit d058b649336e16d110744888fd4287733a4ea854 Author: Ryan Lortie Date: Sat Feb 26 19:41:52 2011 -0500 ARM: imx35: fix ATA_DATA3 pad control address According to the "i.MX35 (MCIMX35) Multimedia Applications Processor Reference Manual" the correct address for the pad control register IOMUXC_SW_PAD_CTL_PAD_ATA_DATA3 is 0x06ec, not 0x6e8. Signed-off-by: Ryan Lortie Acked-by: Marc Reilly Signed-off-by: Sascha Hauer commit 4dbbaa69e12a2dfd57a156ff3e233dabc9a9e885 Author: Ryan Lortie Date: Sat Feb 26 19:41:53 2011 -0500 ARM: imx35: fix trivial copy/paste error Change imx31_add_imx_keypad() to imx35_add_imx_keypad() in mach-mx3/devices-imx35.h. Signed-off-by: Ryan Lortie Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 40b2747b5b4f49a5f268c71321677fa98f63f046 Author: Gwenhael Goavec-Merou Date: Wed Feb 23 16:58:37 2011 +0000 MX1: Rename SPI interrupt name and base address. Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Sascha Hauer commit e893f7cb47f7e472d852922547f1283bd12f7d26 Author: Gwenhael Goavec-Merou Date: Wed Feb 23 16:58:38 2011 +0000 MX1: Register clock for SPI2 Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Sascha Hauer commit 13f40686b1dc8cc3c2110d3f902e0b3ec9ddee10 Author: Gwenhael Goavec-Merou Date: Wed Feb 23 16:58:36 2011 +0000 MX1: Add data structure for SPI Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Sascha Hauer commit 19373c04b9c260b83e268e40e3210c01281efb6d Author: Gwenhael Goavec-Merou Date: Wed Feb 23 16:58:39 2011 +0000 MX1: Add registration functions for SPI. Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Sascha Hauer commit 30feed37f21e00655475d8bf17bcea02221e53d2 Author: Wolfram Sang Date: Mon Feb 28 17:40:04 2011 +0100 arm: mxs: add i2c-devices for mx28 Signed-off-by: Wolfram Sang Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit a77dd2aa92388d61f7344a32b06fd1de70e71928 Author: Wolfram Sang Date: Mon Feb 28 17:40:05 2011 +0100 arm: mxs: tx28: add i2c bus and connected RTC Signed-off-by: Uwe Kleine-König Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 359219025e20a3ad61f081a82e0feec0583aca9b Author: Richard Zhu Date: Mon Feb 28 19:32:03 2011 +0800 ARM: imx51/53: add sdhc3/4 clock Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit 772edeaec182fa98a2b4ed0753ca3dfd4f51d6a8 Author: Richard Zhu Date: Mon Feb 28 19:32:02 2011 +0800 ARM: imx53_loco: add esdhc device support Signed-off-by: Richard Zhao Signed-off-by: Sascha Hauer commit 3fc6b60976d01feda083e2a05b3c40217ad32799 Author: Uwe Kleine-König Date: Tue Mar 1 21:30:58 2011 +0100 ARM: mx3/cpuimx35: fix build failure It seems vim's autocompletion played tricks on me without me noticing. This was intruduced in 97976e2 (ARM: mx3: use .init_early to initialize cpu type, reset address and iomuxer) Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit a5e2051b720fb5bcb35f0edfc80c108448acb713 Author: Javier Martin Date: Tue Mar 1 15:02:08 2011 +0100 ARM: Add SSI and aic3204 code to Visstrim_M10 boards. Visstrim_M10 boards have an TI tlv320aic3204 codec attached to SSI1. Signed-off-by: Javier Martin Signed-off-by: Sascha Hauer commit 352cd9a0b849494a44a46c60219b8b6ea99f1d70 Author: Fabio Estevam Date: Tue Mar 1 16:59:44 2011 -0300 ARM: mx35_3ds: Add I2C support Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 3d94302442cce1124a0adc0402bf609d9d8d808c Author: Fabio Estevam Date: Tue Mar 1 16:59:45 2011 -0300 ARM: mx31_3ds: Add I2C support Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 5885f0362b3fbe476b7ef0af0beac7a114a0a8dd Author: Fabio Estevam Date: Tue Mar 1 16:59:46 2011 -0300 ARM: mx27_3ds: Add I2C support Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit ff864521a93ca3932e281828d41f709e107dad70 Author: Fabio Estevam Date: Tue Mar 1 16:59:47 2011 -0300 ARM: mx25_3ds: Add I2C support Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 2093023889b8c15bb90acb435e33e2843ef0153c Author: Fabio Estevam Date: Tue Mar 1 16:59:48 2011 -0300 ARM: mx53_smd: Add I2C support Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 10a3c45c6821d3ffe974bc5937693f18a16dd96c Author: Uwe Kleine-König Date: Wed Mar 2 10:59:48 2011 +0100 ARM: iomux-imx31: allow pin_list to be const This fixes the following warning in a mx3_defconfig build: arch/arm/mach-mx3/mach-bug.c: In function 'bug_board_init': arch/arm/mach-mx3/mach-bug.c:47: warning: passing argument 1 of 'mxc_iomux_setup_multiple_pins' discards qualifiers from pointer target type While at it remove some useless consts from unsigned int arguments. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8d8eb17765dc8e232e30a9fb55f89c0056fa17ea Author: Uwe Kleine-König Date: Wed Mar 2 10:59:49 2011 +0100 ARM: mxc91231/iomux: allow pin_list to be const While at it remove some useless consts from unsigned int arguments. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit f0a523b5e5e2db4e8518ae20f466c0a6be7e145e Author: Sascha Hauer Date: Fri Jan 14 15:22:31 2011 +0100 video: Add i.MX23/28 framebuffer driver changes since v2: - use v3 and v4 for specifying the ip version instead of i.MX23/28. This is a better namespace when future versions are added. - rename mach/fb.h to mach/mxsfb.h changes since v1: - Add a LCDC_ prefix to the register names. - use set/clear registers where appropriate - protect call to mxsfb_disable_controller() in mxsfb_remove() with a (host->enabled) as suggested by Lothar Wassmann Signed-off-by: Sascha Hauer Acked-by: Shawn Guo Cc: Paul Mundt Cc: linux-fbdev@vger.kernel.org commit 2e8fd696145819c6c5d6ac08c603af655e7f2298 Author: Sascha Hauer Date: Fri Jan 14 15:32:49 2011 +0100 ARM i.MX23/28: Add framebuffer device support Signed-off-by: Sascha Hauer Cc: Shawn Guo commit 761b6d1a3efd50b3f15f9e78615297802e0f91d2 Author: Wolfram Sang Date: Tue Mar 1 10:21:51 2011 +0100 arm: mxs: add irq_chip-name for GPIO IRQs Reported-by: Alexander Stein Signed-off-by: Wolfram Sang Acked-by: Shawn Guo Signed-off-by: Sascha Hauer commit 1a46cce8564b3f4e42c283bd7d18ad9674383ef5 Author: Fabio Estevam Date: Wed Mar 2 11:26:49 2011 -0300 ARM: mx3/mx35_3ds: Use MX35 USB OTG Erratum Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit d79c01b0a212ae25c7b2c63274fffacf38dbcaaa Author: Fabio Estevam Date: Wed Mar 2 13:30:52 2011 -0300 ARM: mx5/mx53_smd: Fix IOMUX for UART2 On mx53_smd board only RX/TX pins are used on UART2. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 54c4bd658ee7cfdaec57d5fb8677e9bf8a380df5 Author: Fabio Estevam Date: Wed Mar 2 13:30:53 2011 -0300 ARM: mx5/mx53_evk: Fix IOMUX for UART3 On mx53_evk board only RX/TX pins are used on UART3. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer commit 9685a3609d7f15297987c511c323b43693317960 Author: Gwenhael Goavec-Merou Date: Wed Mar 2 08:11:05 2011 +0000 MX1: Add structure, registration functions for framebuffer and rename LCDC INT Signed-off-by: Gwenhael Goavec-Merou Signed-off-by: Sascha Hauer commit 5ae30b477e9fb7319e2976fbf3521c0fac2625f1 Author: Sascha Hauer Date: Thu Feb 17 14:43:48 2011 +0100 ARM i.MX: Move gpio initialization to SoC specific files This saves us from soc level dispatching in generic files Signed-off-by: Sascha Hauer commit ff255feba1c575311378a3d7a3867e46549c8aa6 Author: Sascha Hauer Date: Thu Feb 17 15:08:12 2011 +0100 ARM i.MX: iomux v1 initialization away from initcall This saves us from soc level dispatching in generic files Signed-off-by: Sascha Hauer commit 94573e6623cf9159f036adc670a3d4b29e6d86fe Author: Sascha Hauer Date: Wed Mar 2 10:10:14 2011 +0100 ARM i.MX31 lilly: remove incomplete otg support The platform data for the otg port is present but never used, so remove it. Signed-off-by: Sascha Hauer Cc: Daniel Mack commit 48f6b0999673cce33e4a54d89c78460cc28e5156 Author: Sascha Hauer Date: Wed Mar 2 09:27:42 2011 +0100 ARM i.MX: introduce imx_otg_ulpi_create to create ULPI transceivers The boards are currently using otg_ulpi_create and mxc_ulpi_access_ops, both are only present if CONFIG_USB_ULPI is set. To remove the need of ifdefs in the board code introduce a imx_otg_ulpi_create functions which expands to a static inline function if compiled without ulpi. Signed-off-by: Sascha Hauer commit 76851671287209759f63c090ffaffca56ba00358 Author: Richard Zhao Date: Thu Mar 3 16:40:02 2011 +0800 ARM: imx5x: clean up ARCH_MX5X Move to SOC_SOC_IMX5X. Leave only places which prevent multi-soc using ARCH_MX5X. Signed-off-by: Richard Zhao Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit c23eb89ef71cda127cfcfee84292cb2fb5747d4d Author: Richard Zhao Date: Thu Mar 3 16:40:03 2011 +0800 ARM: imx3x: clean up ARCH_MX3X Move to SOC_SOC_IMX3X. Leave ARCH_MX31/35 definitions there, in case some place prevent multi-soc single image. Signed-off-by: Richard Zhao Acked-by: Marc Kleine-Budde Signed-off-by: Sascha Hauer commit 65e7a3222fd9f47eafa908ef3e350ce4f953914e Author: Uwe Kleine-König Date: Thu Mar 3 22:36:57 2011 +0100 ARM: mxc91231: select MXC_AVIC This fixes: arch/arm/kernel/built-in.o: In function `__irq_svc': io.c:(.text+0x2e0): undefined reference to `avic_base' arch/arm/kernel/built-in.o: In function `__irq_usr': io.c:(.text+0x4c8): undefined reference to `avic_base' arch/arm/mach-mxc91231/built-in.o: In function `mxc91231_init_irq': magx-zn5.c:(.init.text+0x18): undefined reference to `mxc_init_irq' and was broken by c7259df (ARM i.MX irq: Compile avic irq code only on SoCs that need it) Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit db63a493838473e3ae87e0db06bb6ddd817f20a2 Author: Shawn Guo Date: Sun Mar 6 00:40:19 2011 +0800 ARM: mxs: add helper macro for pad control This patch is to add pad control helper macro to make the code easy to read. The need is being seen when adding pad definitions for LCDIF which gets ~30 pads to define. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 122eb103924316c1229f1b8aeea7492893d910c9 Author: Shawn Guo Date: Sun Mar 6 00:40:21 2011 +0800 ARM: mxs: fix typo "GPO" in iomux-mx23.h Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit b73d77b2b75091b09d31f5c47924c99d4f19930a Author: Shawn Guo Date: Sun Mar 6 00:40:22 2011 +0800 ARM: mxs/mx23evk: add framebuffer device Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 4ca94366b314c22fda49cbe2c51ceb7bb3e16932 Author: Shawn Guo Date: Mon Feb 21 18:31:45 2011 +0800 ARM: mxs: add dma channel definitions Signed-off-by: Shawn Guo Tested-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 3baa4feeadf22ae72dad217f31ea739d881fc149 Author: Shawn Guo Date: Tue Feb 22 21:36:27 2011 +0800 ARM: mxs: add dma device Signed-off-by: Shawn Guo Tested-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 208277f74e449fca082c1895086bd44c159efba5 Author: Shawn Guo Date: Mon Feb 21 18:42:55 2011 +0800 ARM: mxs: make ssp error irq definition consistent Signed-off-by: Shawn Guo Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 9b37596a2e860404503a3f2a6513db60c296bfdc Author: Alan Stern Date: Mon Mar 7 11:11:52 2011 -0500 USB: move usbcore away from hcd->state The hcd->state variable is a disaster. It's not clearly owned by either usbcore or the host controller drivers, and they both change it from time to time, potentially stepping on each other's toes. It's not protected by any locks. And there's no mechanism to prevent it from going through an invalid transition. This patch (as1451) takes a first step toward fixing these problems. As it turns out, usbcore uses hcd->state for essentially only two things: checking whether the controller's root hub is running and checking whether the controller has died. Therefore the patch adds two new atomic bitflags to the hcd structure, to store these pieces of information. The new flags are used only by usbcore, and a private spinlock prevents invalid combinations (a dead controller's root hub cannot be running). The patch does not change the places where usbcore sets hcd->state, since HCDs may depend on them. Furthermore, there is one place in usb_hcd_irq() where usbcore still must use hcd->state: An HCD's interrupt handler can implicitly indicate that the controller died by setting hcd->state to HC_STATE_HALT. Nevertheless, the new code is a big improvement over the current code. The patch makes one other change. The hcd_bus_suspend() and hcd_bus_resume() routines now check first whether the host controller has died; if it has then they return immediately without calling the HCD's bus_suspend or bus_resume methods. This fixes the major problem reported in Bugzilla #29902: The system fails to suspend after a host controller dies during system resume. Signed-off-by: Alan Stern Tested-by: Alex Terekhov CC: Signed-off-by: Greg Kroah-Hartman commit d3cf2a8d4ddd121dbf4ad48c995648af04e0cfbf Author: Arvid Brodin Date: Mon Mar 7 15:36:21 2011 +0100 usb/isp1760: Fix crash when unplugging bug This fixes a problem with my previous patch series where there's a great risk that the kernel will crash when unplugging interrupt devices from the USB port. These lines must have got missing when I rebased the patches from the older kernel I was working with to 2.6.37 and 2.6-next: This fixes a bug where the kernel may crash if you unplug a USB device that has active interrupt transfers. Signed-off-by: Arvid Brodin Signed-off-by: Greg Kroah-Hartman commit dfb2130c453c2c6d36b5e0f39eca289cbdbb631d Author: Pavankumar Kondeti Date: Fri Mar 4 22:45:02 2011 +0530 USB: Rename "msm72k_otg.c" to "msm_otg.c" This driver is used across all MSM SoCs. Hence give a generic name. All Functions and strutures are also using "msm_otg" as prefix. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit fa417c369b48a8f7acaf9aba1ff94b0969b0cb7e Author: Sergei Shtylyov Date: Thu Mar 3 21:10:05 2011 +0300 USB: OHCI: use pci_dev->revision Commit ab1666c1364a209e6141d7c14e47a42b5f00eca2 (USB: quirk PLL power down mode) added code that reads the revision ID from the PCI configuration register while it's stored by PCI subsystem in the 'revision' field of 'struct pci_dev'... Signed-off-by: Sergei Shtylyov Signed-off-by: Greg Kroah-Hartman commit 09173b589d547c002b6a2b560e150c4d7bb56c99 Author: Anand Gadiyar Date: Wed Feb 16 16:47:19 2011 +0530 arm: omap4: 4430sdp: drop ehci support Most revisions of the OMAP4 Blaze/SDP platform do not have the EHCI signals routed by default. The pads are routed for the alternate HSI functionality instead, and explicit board modifications are needed to route the signals to the USB PHY on the board. Also, turning on the PHY connected to the EHCI port causes a board reboot during bootup due to an unintended short on the rails - this affects many initial revisions of the board, and needs a minor board mod to fix (or as a workaround, one should not attempt to power on the USB PHY). Given that these boards need explicit board mods to even get EHCI working (separate from the accidental short above), we should not attempt to enable EHCI by default. So drop the EHCI support from the board files for the Blaze/SDP platforms. Signed-off-by: Anand Gadiyar Cc: Keshava Munegowda Cc: Tony Lindgren Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit a74022a55e44fe2044ac3660452cafecb300aece Author: Lars-Peter Clausen Date: Mon Mar 7 08:41:59 2011 +0100 USB: s3c2410_udc: Add common implementation for GPIO controlled pullups Currently all boards using the s3c2410_udc driver use a GPIO to control the state of the pullup, as a result the same code is reimplemented in each board file. This patch adds support for using a GPIO to control the pullup state to the udc driver, so the boards can use a common implementation. Signed-off-by: Lars-Peter Clausen Signed-off-by: Greg Kroah-Hartman commit e27c3c5c7e0fb107990c7f465a3525312f6d45aa Author: Lars-Peter Clausen Date: Mon Mar 7 08:42:00 2011 +0100 ARM: s3c24xx: Switch to common GPIO controlled UDC pullup implementation Currently all boards using the s3c2410_udc driver use a GPIO to control the state of the pullup, as a result the same code is reimplemented in each board This patch changes these boards to use the common implementation for GPIO controlled pullup in the UDC driver. Signed-off-by: Lars-Peter Clausen Acked-by: Vasily Khoruzhick Signed-off-by: Greg Kroah-Hartman commit f5fb4a205cbfff4acd2f567bb8f7a38892ad0dc6 Author: Inderpal Singh Date: Tue Mar 8 07:13:45 2011 +0900 ARM: EXYNOS4: Enable watchdog parent clock This patch adds the parent clock for watchdog timer for EXYNOS4. Signed-off-by: Inderpal Singh Signed-off-by: Kukjin Kim commit cc7df8727de87b1552278f153eaa1d244bcb7555 Author: Donghwa Lee Date: Tue Mar 8 07:17:09 2011 +0900 ARM: EXYNOS4: enabled lcd and backlight in NURI board This patch enables lcd and backlight drivers in NURI board. Signed-off-by: Donghwa Lee Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit cad7a34b3afcd02e8e6bef5007e4b12f6cc8ec24 Author: Paul Walmsley Date: Mon Mar 7 19:28:15 2011 -0700 OMAP2/3: WKUP powerdomain: mark as being always on Mark the WKUP powerdomain as being always on -- at least, as long as the chip has power. This will be used to enable the powerdomain code to determine whether a given powerdomain is ever able to power off. While here, update the file copyright. Signed-off-by: Paul Walmsley commit 4cb49fec12e219ec174e04157f71c00f63eb4ce4 Author: Paul Walmsley Date: Mon Mar 7 19:28:15 2011 -0700 OMAP2+: powerdomain: fix bank power state bitfields The bank power state bitfields in the powerdomain data are encoded incorrectly. These fields are intended to be bitfields, representing a set of power states that the memory banks support. However, when only one power state was supported by a given bank, the field was incorrectly set to the bit shift -- not the mask. While here, update some file copyrights. The OMAP4 autogeneration scripts have been updated accordingly. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Rajendra Nayak Cc: Santosh Shilimkar commit 694606c4ef54f596bfb2a7c1d4de8ac0e096a636 Author: Paul Walmsley Date: Mon Mar 7 19:28:15 2011 -0700 OMAP2+: powerdomain: add pwrdm_can_ever_lose_context() Some drivers wish to know whether the device that they control can ever lose context, for example, when the device's enclosing powerdomain loses power. They can use this information to determine whether it is necessary to save and restore device context, or whether it can be skipped. Implement the powerdomain portion of this by adding the function pwrdm_can_ever_lose_context(). This is not for use directly from driver code, but instead is intended to be called from driver-subarch integration code (i.e., arch/arm/*omap* code). Currently, the result from this function should be passed into the driver code via struct platform_data, but at some point this should be part of some common or OMAP-specific device code. While here, update file copyrights. Signed-off-by: Paul Walmsley commit 0fd0c21be71293d8a54d9075b18b5a25a1868057 Author: Paul Walmsley Date: Fri Feb 25 15:49:53 2011 -0700 OMAP2: clock: add DPLL autoidle support Add the necessary code and data to allow the clock framework to enable and disable the OMAP2 DPLL autoidle state. This is so the direct register access can be moved out of the mach-omap2/pm24xx.c code, and other code that needs to control this (e.g., CPUIdle) can do so via an API. As part of this patch, remove the pm24xx.c code that formerly wrote directly to the autoidle bits. Signed-off-by: Paul Walmsley Cc: Kevin Hilman Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit 92618ff8b025419960e2e845983f0f49b0cb57a9 Author: Paul Walmsley Date: Fri Feb 25 15:39:27 2011 -0700 OMAP2xxx: clock: add clockfw autoidle support for APLLs OMAP2xxx devices have two on-chip APLLs. These APLLs can automatically enter idle when not in use. Connect the APLL autoidle code to the clock code, so that the clock framework can handle this process. As part of this patch, remove the code in mach-omap2/pm24xx.c that previously handled APLL autoidle control. Signed-off-by: Paul Walmsley Cc: Kevin Hilman Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit cc1d230cfbc1622be4bf16568f468054be8c5d2e Author: Paul Walmsley Date: Fri Feb 25 15:39:27 2011 -0700 OMAP2+: clock: comment that osc_ck/osc_sys_ck should use clockfw autoidle control Place some comments in the OMAP oscillator clock control code to note that its autoidle mode should eventually be controlled via the new OMAP clockfw autoidle control interface. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit 530e544fdadb934470c5c2b0e8d60c3d5386c161 Author: Paul Walmsley Date: Fri Feb 25 15:39:28 2011 -0700 OMAP2+: clock: add interface clock type code with autoidle support Add interface clock type code with autoidle enable/disable support. The clkops structures created in this file will be used for all OMAP2/3 interface clocks with autoidle support. They will enable the clock framework to control interface clock autoidle directly. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit a56d9ea865e42a6bf6393fc3d3a143553dbf68c5 Author: Paul Walmsley Date: Fri Feb 25 15:39:29 2011 -0700 OMAP2420: clock: add sdrc_ick Add sdrc_ick to the OMAP2420 clock data so the clock code can control the CM_AUTOIDLE bit associated with this clock. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit 6ae690da1b6315f34ab7312bd2a02d49a606ccf7 Author: Paul Walmsley Date: Fri Feb 25 15:39:29 2011 -0700 OMAP2420: clock: use autoidle clkops for all autoidle-controllable interface clocks Mark each interface clock with a corresponding CM_AUTOIDLE bit with a clkops that has the allow_idle/deny_idle function pointers populated. This allows the OMAP clock framework to enable and disable autoidle for these clocks. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit e892b2528b8dc9eef8ca3f9af7b5b650b4e90bea Author: Paul Walmsley Date: Fri Feb 25 15:39:29 2011 -0700 OMAP2430/3xxx: clock: add modem clock autoidle support OMAP2430 and OMAP3xxx have modem autoidle bits that are actually attached to clocks with CM_FCLKEN bits; add the code and data to handle these. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit a1d5562315a1e911c8448b7fac33c966f9cb6294 Author: Paul Walmsley Date: Fri Feb 25 15:39:30 2011 -0700 OMAP2430: clock: use autoidle clkops for all autoidle-controllable interface clocks Mark each interface clock with a corresponding CM_AUTOIDLE bit with a clkops that has the allow_idle/deny_idle function pointers populated. This allows the OMAP clock framework to enable and disable autoidle for these clocks. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit ec538e30f7eded2c4af8d9184619a3de65bc378e Author: Paul Walmsley Date: Fri Feb 25 15:39:30 2011 -0700 OMAP3: clock: use autoidle clkops for all autoidle-controllable interface clocks Mark each interface clock with a corresponding CM_AUTOIDLE bit with a clkops that has the allow_idle/deny_idle function pointers populated. This allows the OMAP clock framework to enable and disable autoidle for these clocks. Signed-off-by: Paul Walmsley Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit 4ef70c0694bf428d9f1d4722edaffa1dc5fa39e1 Author: Paul Walmsley Date: Fri Feb 25 15:39:30 2011 -0700 OMAP2/3: PM: remove manual CM_AUTOIDLE bit setting in mach-omap2/pm*xx.c These CM_AUTOIDLE bits are now set by the clock code via the common PM code in mach-omap2/pm.c. N.B.: The pm24xx.c code that this patch removes didn't ensure that the CM_AUTOIDLE bits were set for several 2430-only modules, such as GPIO5, MDM_INTC, MMCHS1/2, the modem oscillator clock, and USBHS. Similarly, the pm34xx.c code that this patch removes didn't ensure that the CM_AUTOIDLE bits were set for USIM and the AM3517 UART4. Those cases should now be handled. Signed-off-by: Paul Walmsley Cc: Kevin Hilman Tested-by: Rajendra Nayak Reviewed-by: Kevin Hilman commit 7328ff4d72401835fa1aadfb9e574a2133bd952b Author: Paul Walmsley Date: Fri Feb 25 15:54:33 2011 -0700 OMAP: smartreflex: move plat/smartreflex.h to mach-omap2/smartreflex.h There's no reason for this header file to be in plat-omap/include/plat/smartreflex.h. The hardware devices are in OMAP2+ SoCs only. Leaving this header file in plat-omap causes problems due to cross-dependencies with other header files that should live in mach-omap2/. Thanks to Benoît Cousson for suggesting the removal of the smartreflex.h include from the OMAP3xxx hwmod data. Signed-off-by: Paul Walmsley Cc: Benoît Cousson commit e1d6f4729e9fd46efa1029b6e806bb8b6c24e776 Author: Paul Walmsley Date: Fri Feb 25 15:54:33 2011 -0700 OMAP: voltage: move plat/voltage.h to mach-omap2/voltage.h At this point in time, there's no reason for this header file to be in plat-omap/include/plat/voltage.h. It should not be included by device drivers, and the code that uses it is currently all under mach-omap2/. Signed-off-by: Paul Walmsley commit a1fed577ddc0ca0ec7cf5e5ee033fe3df4192ebd Author: Paul Walmsley Date: Fri Feb 25 15:51:02 2011 -0700 OMAP2xxx: clock: fix parents for L3-derived clocks Several clocks are listed as having the core L4 clock as their parent, when they are actually derived from the L3 clock. Fix these. Signed-off-by: Paul Walmsley commit 3f9cfd3a47a07c93ff00a1a4ca067ada87e4076a Author: Paul Walmsley Date: Wed Feb 16 15:38:38 2011 -0700 OMAP2xxx: clock: fix low-frequency oscillator clock rate The OMAP2420/2430 external 32-kHz low-frequency oscillator is a 32768 Hz oscillator, not a 32,000 Hz oscillator[1][2]. Fix this in the clock tree. Signed-off-by: Paul Walmsley 1. OMAP2420/22 Multimedia Processor Data Manual, Version P [SWPS019P], section 5.1.4 "External 32-kHz CMOS Clock" (note that it refers to a "32.768-kHz" clock; this presumably should be "32.768-KHz") 2. OMAP2430 Multimedia Processor ES2.1 Data Manual, Version V [SWPS023V], section 5.1.4 "External 32-kHz CMOS Clock" (note that it refers to a "32.768-kHz" clock; this presumably should be "32.768-KHz") commit 19c1c0ce9ddc45fe8f84b6cf12ba9dbecd7b1aa1 Author: Paul Walmsley Date: Wed Feb 16 15:38:38 2011 -0700 OMAP2xxx: clock: fix interface clocks and clockdomains for modules in the WKUP domain The parent of the interface clocks for GPTIMER1, MPU_WDT, SYNCTIMER_32K, SCM, WDT1, and the ICR (2430 only) were all listed as being l4_ck. This isn't accurate; these modules exist inside the WKUP domain, and the interface clock to these modules runs at the SYS_CLK rate rather than the CORE L4 rate. So, create a new clock "wu_l4_ick", similar to the OMAP3 "wkup_l4_ick", that serves as the parent for these clocks. Also, these clocks were listed as existing inside core_l4_clkdm; wkup_clkdm is probably more accurate. Signed-off-by: Paul Walmsley commit e07f469d284ca3d1f5dcf5438c22982be98bc071 Author: Paul Walmsley Date: Wed Feb 16 15:38:38 2011 -0700 OMAP: clock: bail out early if arch_clock functions not implemented Bail out before we take the clockfw_lock spinlock if the corresponding OMAP1 or OMAP2+ clock function is not defined. The intention is to reduce and simplify the work that is done inside the spinlock. Signed-off-by: Paul Walmsley commit 241d3a8dca239610d3d991bf58d4fe38c2d86fd5 Author: Paul Walmsley Date: Wed Feb 16 15:38:39 2011 -0700 OMAP2+: clock: remove the DPLL rate tolerance code Remove the DPLL rate tolerance code that is called during rate rounding. As far as I know, this code is never used, since it's been more important for callers of the DPLL round_rate()/set_rate() functions to obtain an exact rate than it is to save a relatively small amount of power. Signed-off-by: Paul Walmsley commit 224113969dc9cc7a55f69da4dde5dc3fd1bbeb76 Author: Paul Walmsley Date: Fri Feb 25 15:52:04 2011 -0700 OMAP2xxx: clock: remove dsp_irate_ick After commit 81b34fbecbfbf24ed95c2d80d5cb14149652408f ("OMAP2 clock: split OMAP2420, OMAP2430 clock data into their own files"), it's possible to remove dsp_irate_ick from the OMAP2420 and OMAP2430 clock files. It was originally only needed due to a 2420/2430 clock tree difference, and now that the data is in separate files, it's superfluous. Signed-off-by: Paul Walmsley commit 691abf525d3d215f2e4eab7a015ef2b6375c58a5 Author: Sanjeev Premi Date: Fri Feb 11 09:05:00 2011 +0000 omap2/3: clockdomains: fix compile-time warnings This patch fixes these warnings when building kernel for OMAP3EVM only. CC arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.o arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c:95: warning: 'dsp_24xx_wkdeps' defined but not used arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c:119: warning: 'mpu_24xx_wkdeps' defined but not used arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c:147: warning: 'core_24xx_wkdeps' defined but not used The problem should be noticed when building for other OMAP3 platforms (only) as well. Signed-off-by: Sanjeev Premi Signed-off-by: Paul Walmsley commit a4fc92748e969b1312f283b0d1baf657329f2907 Author: Paul Walmsley Date: Fri Feb 25 14:53:40 2011 -0700 OMAP2xxx: clock: fix clockdomains on gpt7_ick, 2430 mmchs2_fck clocks Add a clockdomain to the GPTIMER7 interface and 2430 HSMMC2 functional clocks - both were previously missing them. Also, the 2430 mmchs1_fck is in core_l3_clkdm, but should be in core_l4_clkdm; fix this. Signed-off-by: Paul Walmsley commit 8c810e7e14457d97706d4c6de4bb4847e3715d1b Author: Paul Walmsley Date: Fri Feb 25 13:56:40 2011 -0700 OMAP2xxx: clock data: clean up some comments Minor cleanup of some clock data comments. No functional changes. Signed-off-by: Paul Walmsley commit 4dd508b524b4913a08f54065601ee94fcacb75a2 Author: Seungwhan Youn Date: Tue Mar 8 10:56:55 2011 +0900 ARM: EXYNOS4: Debug wrong S/PDIF register address This patche fixes wrong S/PDIF SFR base address. Signed-off-by: Seungwhan Youn Signed-off-by: Kukjin Kim commit acc9cdca62e596ca77e41e24a9d2c020a461bd99 Author: Shawn Guo Date: Thu Mar 3 22:13:38 2011 +0800 ARM: mxs/mx28evk: add flexcan devices Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit beb859645a8a9dfa089bef05206c844d9d34f307 Author: Alberto Panizzo Date: Mon Mar 7 11:44:13 2011 +0100 spi_imx: Fix misspelled configuration variable SOC_IMX31 This fix a kernel NULL pointer error while initialising SPI introduced by: 4d2f13be1e370a670c1cae20c194d5ce961e0fa5 Signed-off-by: Alberto Panizzo Signed-off-by: Sascha Hauer commit 0ce88b34ea5a1b48438848739a72da6b4fe7a5fa Author: Alberto Panizzo Date: Mon Mar 7 11:45:07 2011 +0100 mach-mx31_3ds: Add support for the MMC slot of the personality board Signed-off-by: Alberto Panizzo Signed-off-by: Sascha Hauer commit e42010e0e129cc31a83ce9d8d1c7e1d50ba155f3 Author: Alberto Panizzo Date: Mon Mar 7 11:46:38 2011 +0100 mach-mx31_3ds: Add support for framebuffer and LCD Signed-off-by: Alberto Panizzo Signed-off-by: Sascha Hauer commit 164f7b5237cca2701dd2943928ec8d078877a28d Author: Alberto Panizzo Date: Mon Mar 7 11:47:37 2011 +0100 mach-mx31_3ds: Add support for the camera device on the personality board Signed-off-by: Alberto Panizzo Signed-off-by: Sascha Hauer commit cba57eb7d55923b74ed8c7d1dd97ecf98b7bba77 Author: Baruch Siach Date: Mon Mar 7 12:18:55 2011 +0200 ARM: imx/mx25: fix (again) spi device registration typo This typo was fixed in 46e3f30 (mx25: fix spi device registration typo), but a the merge at 0e44e059 (Merge commit 'v2.6.37-rc4' into imx-for-2.6.38) resolved the merge conflict wrongly. Cc: Sascha Hauer Signed-off-by: Baruch Siach Signed-off-by: Sascha Hauer commit 47be6b92c37a27837d73f4807684ce423aed796d Author: Baruch Siach Date: Mon Mar 7 15:19:11 2011 +0200 ARM: imx/mx25: dynamically allocate pwm devices Signed-off-by: Baruch Siach Signed-off-by: Sascha Hauer commit 5d55779a5d95acdaa1080f1a4806fd6d4984d1e4 Author: Arve Hjønnevåg Date: Wed Mar 2 13:17:51 2011 -0800 msm_fb: Fix framebuffer console Don't allow non panning updates to bypass the wait for the panel to turn on. Signed-off-by: Carl Vanderlip Signed-off-by: Arve Hjønnevåg Signed-off-by: David Brown commit 8bec99b586e2aa285076c2057e72b70ab5c43175 Author: Dima Zavin Date: Wed Mar 2 13:18:19 2011 -0800 msm: mdp: Set the correct pack pattern for XRGB/ARGB Signed-off-by: Dima Zavin Signed-off-by: Carl Vanderlip Signed-off-by: David Brown commit 41f3f5138a5ea71ee603f3d556953fce9aba3074 Author: Stepan Moskovchenko Date: Thu Feb 24 18:00:39 2011 -0800 msm: iommu: Clock control for the IOMMU driver Add clock control to the IOMMU driver. The IOMMU bus clock (and potentially an AXI clock) need to be on to gain access to IOMMU registers. Actively control these clocks when needed instead of leaving them on. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit b61401adf38f56dbfdac91f31425edf60595ed30 Author: Stepan Moskovchenko Date: Mon Feb 28 16:03:02 2011 -0800 msm: iommu: Rework clock logic and add IOMMU bus clock control Clean up the clock control code in the probe calls, and add support for controlling the clock for the IOMMU bus interconnect. With the (proper) clock driver in place, the clock control logic in the probe function can be made much cleaner since it does not have to deal with the placeholder driver anymore. Signed-off-by: Stepan Moskovchenko Reviewed-by: Trilok Soni Signed-off-by: David Brown commit 2e8c8ba98376459e73d03a285f5d3406b630ea2d Author: Stepan Moskovchenko Date: Thu Feb 24 18:00:41 2011 -0800 msm: iommu: Use ASID tagging instead of VMID tagging Use ASID tags in the TLB instead of VMID tags in preparation for changes to the secure environment. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit a43d8c101eb71bf4527dd7f36a34a5a502894f38 Author: Stepan Moskovchenko Date: Thu Feb 24 18:00:42 2011 -0800 msm: iommu: Remove dependency on IDR Remove the depencency on the IOMMU IDR register, as it may not be accessible depending on the security configuraton. This involves moving the NCB field of IDR into the platform data. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit b0e7808d548ea1d857216d31d63078411203a116 Author: Stepan Moskovchenko Date: Mon Feb 28 16:04:55 2011 -0800 msm: iommu: Don't read from write-only registers Don't read from V2Pxx command registers when doing iova-to-phys operations. These registers are write-only and reading the value before modifying the VA bits is unnecessary. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit c7831df3937f54bddc20128892a75373549516d0 Author: Stepan Moskovchenko Date: Mon Feb 28 16:04:56 2011 -0800 msm: iommu: Enable HTW L2 redirection on MSM8960 Allow the MSM8960 IOMMU to access its page tables directly through the L2 cache. Signed-off-by: Stepan Moskovchenko Signed-off-by: David Brown commit e7916740bb76379bcde4ce0317259acff8f89f53 Author: Paul Walmsley Date: Fri Mar 4 22:36:46 2011 +0000 OMAP1: McBSP: fix build break for non-multi-OMAP1 configs Commit 3cf32bba8ca0e0052ca41d74d455a5805b7fea85 ("OMAP: McBSP: Convert McBSP to platform device model") breaks compilation with non-multi-OMAP1 configs: CC arch/arm/mach-omap1/mcbsp.o arch/arm/mach-omap1/mcbsp.c: In function 'omap1_mcbsp_init': arch/arm/mach-omap1/mcbsp.c:384: warning: dereferencing 'void *' pointer arch/arm/mach-omap1/mcbsp.c:387: error: invalid use of void expression arch/arm/mach-omap1/mcbsp.c:390: warning: dereferencing 'void *' pointer arch/arm/mach-omap1/mcbsp.c:393: error: invalid use of void expression Fix by avoiding NULL dereferences. Signed-off-by: Paul Walmsley Cc: Kishon Vijay Abraham I Cc: Tony Lindgren Acked-by: Jarkko Nikula [tony@atomide.com: updated description not to remove unnecessary branch name] Signed-off-by: Tony Lindgren commit 0640b436e410290193f554dcfd777bcdeee59697 Author: Abhilash Vadakkepat Koyamangalath Date: Tue Mar 8 15:13:24 2011 +0000 audio : AM3517 : Adding i2c info for AIC23 codec The i2c_board_info entry supporting AIC23 codec was added into the i2c2 bus. Signed-off-by: Abhilash K V Acked-by: Jarkko Nikula Signed-off-by: Tony Lindgren commit 2839e06c95d12ada034cf9b63da60334c7c6358b Author: Santosh Shilimkar Date: Tue Mar 8 06:59:54 2011 +0100 ARM: 6795/1: l2x0: Errata fix for flush by Way operation can cause data corrupti PL310 implements the Clean & Invalidate by Way L2 cache maintenance operation (offset 0x7FC). This operation runs in background so that PL310 can handle normal accesses while it is in progress. Under very rare circumstances, due to this erratum, write data can be lost when PL310 treats a cacheable write transaction during a Clean & Invalidate by Way operation. Workaround: Disable Write-Back and Cache Linefill (Debug Control Register) Clean & Invalidate by Way (0x7FC) Re-enable Write-Back and Cache Linefill (Debug Control Register) This patch also removes any OMAP dependency on PL310 Errata's Signed-off-by: Santosh Shilimkar Acked-by: Catalin Marinas Signed-off-by: Russell King commit 4bdb157749a0da065e532f2f46040c178075b06f Author: Santosh Shilimkar Date: Tue Feb 22 10:00:44 2011 +0100 ARM: 6755/1: omap4: l2x0: Populate set_debug() function and enable Errata 727915 Populate the l2x0 set_debug function pointer with OMAP secure call and enable the PL310 Errata 727915 This patch has dependency on the earlier patch ARM: l2x0: Errata fix for flush by Way operation can cause data corruption Signed-off-by: Santosh Shilimkar Reviewed-by: Catalin Marinas Signed-off-by: Russell King commit d7ed36a4ea84e3a850f9932e2058ceef987d1acd Author: Santosh Shilimkar Date: Wed Mar 2 08:03:22 2011 +0100 ARM: 6777/1: gic: Add hooks for architecture specific extensions Few architectures combine the GIC with an external interrupt controller. On such systems it may be necessary to update both the GIC registers and the external controller's registers to control IRQ behavior. This can be addressed in couple of possible methods. 1. Export common GIC routines along with 'struct irq_chip gic_chip' and allow architectures to have custom function by override. 2. Provide architecture specific function pointer hooks within GIC library and leave platforms to add the necessary code as part of these hooks. First one might be non-intrusive but have few shortcomings like arch needs to have there own custom gic library. Locks used should be common since it caters to same IRQs etc. Maintenance point of view also it leads to multiple file fixes. The second probably is cleaner and portable. It ensures that all the common GIC infrastructure is not touched and also provides archs to address their specific issue. Cc: Russell King Signed-off-by: Santosh Shilimkar Acked-by: Colin Cross Tested-by: Colin Cross Signed-off-by: Russell King commit 1cf7cf06c92ba46ac0e0654ad8aad4c93ae412db Author: Nicolas Pitre Date: Wed Mar 2 18:08:55 2011 +0100 ARM: 6778/1: compressed/head.S: make LDFLAGS_vmlinux into a recursively expanded variable The simply expanded variable may be evaluated before the target file for the stat command is up to date or even exists. Switching to a recursively expanded variable move the execution of the stat command to the location where LDFLAGS_vmlinux is actually used, fixing the dependency issue introduced by patch #6746/1. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit bf9dd36091695f1138a98b6ae85d565e60635545 Author: Rob Herring Date: Fri Mar 4 23:51:59 2011 +0100 ARM: 6786/1: enable CONFIG_KTIME_SCALAR Use straight 64-bit values as 64-bit operations are fairly efficient on ARM. Comparing the asm output with and without KTIME_SCALAR, using 64-bit math generates clearly better code. Comparing kernel/hrtimer.c .text size, it goes from 0x1414 to 0x119c with this change. Signed-off-by: Rob Herring Signed-off-by: Russell King commit f9324a85c10ee109022672ec72db9e2eb37050ee Author: viresh kumar Date: Wed Feb 16 07:40:28 2011 +0100 ARM: 6677/1: SPEAr: add IOMEM(x) definition and update declaration of MISC_BASE Add IOMEM(x) definition, and use it with MISC_BASE for SPEAr platform. With this there is no need to typecast misc macros to (unsigned int *). Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 53688c51e412b7fd642e5c8eb8ba8ee19744c4ea Author: viresh kumar Date: Wed Feb 16 07:40:30 2011 +0100 ARM: 6678/1: SPEAr: update padmux code - compile padmux only for spear3xx - padmux initialization code rearranged in evaluation board and machine files. Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 5c881d9ae9480171f01921585e1893863d7ab421 Author: Shiraz Hashim Date: Wed Feb 16 07:40:32 2011 +0100 ARM: 6737/1: SPEAr: formalized timer support Move platform specific timer initialization code is moved into platform specific files. Reviewed-by: Jamie Iles Reviewed-by: Stanley Miao Signed-off-by: Shiraz Hashim Signed-off-by: Rajeev Kumar Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit cf285434ac0880f94bf4afdd90b06a4655f56570 Author: viresh kumar Date: Wed Feb 16 07:40:31 2011 +0100 ARM: 6679/1: SPEAr: make clk API functions more generic - Add a dummy clk_set_rate() function. This is required for compilation of a few drivers. - Make functions in plat-spear/clock.c more generic over all SPEAr platforms. - Add div_factor in struct clk for clks with .recalc = follow_parent - Change type of register pointers to void __iomem * Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Rajeev Kumar Signed-off-by: Russell King commit af89fd812b00a52c54a3b9b2290fae4d31c7be9a Author: viresh kumar Date: Wed Feb 16 07:40:39 2011 +0100 ARM: 6703/1: SPEAr: update clk API support - Add support for divisor per parent clock - Add ENABLED_ON_INIT feature in clk - Add clk_set_rate(), round_rate_index & clk_round_rate() - Simplify clk_recalc functions - Add/update clock definitions Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: shiraz hashim Signed-off-by: Rajeev Kumar Signed-off-by: Russell King commit 4b9502e167d8370c2c5ee0cb20ab081bbebfffa8 Author: Shiraz Hashim Date: Wed Feb 16 07:40:40 2011 +0100 ARM: 6681/1: SPEAr: add debugfs support to clk API Reviewed-by: Stanley Miao Signed-off-by: Shiraz Hashim Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 410782beba6aa75744881810ec0cdff4c66ca777 Author: viresh kumar Date: Mon Mar 7 05:57:01 2011 +0100 ARM: 6787/1: SPEAr: Reorder #includes in .h & .c files. Order of inclusion of .h files must be: , , , . This patch corrects this ordering whereever it is not followed. Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 02aa06bc49fdb1749f350649c46b74da50290414 Author: viresh kumar Date: Mon Mar 7 05:57:02 2011 +0100 ARM: 6788/1: SPEAr: Include mach/hardware.h instead of mach/spear.h This patch makes inclusion of hardware.h and spear.h consistent over all spear variants. Now we will include hardware.h, wherever we need to use hardware macros. spear.h will be automatically included by hardware.h Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 069580b831dba8da8a0751770ee2b2d7a43faf33 Author: viresh kumar Date: Mon Mar 7 05:57:03 2011 +0100 ARM: 6789/1: SPEAr3xx: Rename sdio to sdhci Device name of SD/MMC/SDIO controller in linux is sdhci. To maintain consistency across all spear code, rename sdio to sdhci. Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit b5761371c30009565f88c4c60416de8a24e56f02 Author: viresh kumar Date: Mon Mar 7 05:57:04 2011 +0100 ARM: 6790/1: SPEAr: Clock Framework: Rename usbd clock and align apb_clk entry Reviewed-by: Stanley Miao Signed-off-by: Deepak Sikri Signed-off-by: shiraz hashim Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit c2c07831a76ca64670df9cc315087962f6fdceac Author: viresh kumar Date: Mon Mar 7 05:57:05 2011 +0100 ARM: 6791/1: SPEAr3xx: Declare device structures after shirq code Order of declarations should be: pmx_devs, shirq support, amba_devices, plat_devices, routines. This patch moves gpio_device below shirq support. Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 53821162fce0e69a8d9fb98ae87ce27c1b500b8e Author: viresh kumar Date: Mon Mar 7 05:57:06 2011 +0100 ARM: 6792/1: SPEAr: Replace SIZE macro's with SZ_4K macros Resource size required mostly is 4K for all devices, whereas currently reserved space is much beyond that. This patch replaces SIZE macro's used at multiple places with SZ_4K. Reviewed-by: Stanley Miao Signed-off-by: Viresh Kumar Signed-off-by: Shiraz Hashim Signed-off-by: Rajeev Kumar Signed-off-by: Russell King commit 8fc4ef451eebc72d10c6987b59ec3316da62f02b Author: viresh kumar Date: Mon Mar 7 05:57:07 2011 +0100 ARM: 6793/1: SPEAr: Remove unused *_SIZE macros from spear*.h files Now we used standard SZ_* macros instead of self defined *_SIZE macros. This patch removes all such unused *_SIZE macros for spear3xx & 6xx. Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 981a95d37126cdf09e1dba3884305c2e25375bfb Author: Shiraz Hashim Date: Mon Mar 7 05:57:08 2011 +0100 ARM: 6794/1: SPEAr: Append UL to device address macros. Reviewed-by: Stanley Miao Signed-off-by: Shiraz Hashim Signed-off-by: Rajeev Kumar Signed-off-by: Viresh Kumar Signed-off-by: Russell King commit 4bb194dc9471c79caa1952ecdb31148074ac1abf Author: sricharan Date: Tue Feb 8 22:13:37 2011 +0530 OMAP3: hwmod_data: Add address space and irq in L3 hwmod. Add the address spaces, irqs of the l3 interconnect to the hwmod data. The hwmod changes are aligned with Benoit Cousson. Signed-off-by: sricharan Signed-off-by: Santosh Shilimkar Acked-by: Benoit Cousson commit 0abcf6185eb87b9e00a821513802e56200378a6a Author: sricharan Date: Tue Feb 8 14:10:45 2011 +0530 OMAP3: devices: Initialise the l3 device with the hwmod data. The l3 interconnect device is build with all the data required to handle the error logging. The data is extracted from the hwmod database. Signed-off-by: sricharan Signed-off-by: Santosh Shilimkar Acked-by: Benoit Cousson commit e2fa61d409195550b3b05b213d7715bc67b0e855 Author: Felipe Balbi Date: Mon Mar 7 19:35:20 2011 +0530 OMAP3: l3: Introduce l3-interconnect error handling driver The driver provides the information regarding the ocp errors that gets logged in the interconnect.The error info provides the details regarding the master or the target that generated the error, type of error and the corresponding address. The stack dump is also provided. Signed-off-by: sricharan [r.sricharan@ti.com: Enhacements, major cleanup and made it functional] Signed-off-by: Santosh Shilimkar [santosh.shilimkar@ti.com: Driver design changes as per OMAP4 version] Signed-off-by: Felipe Balbi [balbi@ti.com: Initial version of the driver] Acked-by: Benoit Cousson commit c464523488063f240652c445fcae2ca8a0eb2647 Author: sricharan Date: Mon Feb 7 21:12:11 2011 +0530 OMAP4: hwmod_data: Add address space and irq in L3 hwmod. Add the address spaces, irqs of the l3 interconnect to the hwmod data. The hwmod change is aligned with Benoit Cousson. Signed-off-by: Santosh Shilimkar Signed-off-by: sricharan Acked-by: Benoit Cousson commit a4dc616ae321b5007fba0700fbd39ef13ced750b Author: sricharan Date: Wed Mar 9 16:00:29 2011 +0530 OMAP4: Initialise the l3 device with the hwmod data. The l3 interconnect device is build with all the data required to handle the error logging. The data is extracted from the hwmod data base. Signed-off-by: Santosh Shilimkar Signed-off-by: sricharan Acked-by: Benoit Cousson commit 2722e56de60390969cf118933842b3f2f3c8d6b8 Author: Santosh Shilimkar Date: Mon Mar 7 20:53:10 2011 +0530 OMAP4: l3: Introduce l3-interconnect error handling driver The driver provides the information regarding the ocp errors that gets logged in the interconnect. The error information gives the detail regarding the target that was attempted to be accessed and its corresponding address. Signed-off-by: sricharan Signed-off-by: Santosh Shilimkar Acked-by: Benoit Cousson commit c39bee8ac4aca750c85609ba0847599b36feb693 Author: Paul Walmsley Date: Fri Mar 4 06:02:15 2011 +0000 OMAP2/3: VENC hwmod: add OCPIF_SWSUP_IDLE flag to interface According to the hwmod interface data, the DSS submodule "VENC" uses a clock, "dss_54m_fck"/"dss_tv_fck", which the PRCM cannot autoidle. By default, the hwmod code assumes that interface clocks can be autoidled by the PRCM. When the interface clock can't be autoidled by the PRCM, those interfaces must be marked with the OCPIF_SWSUP_IDLE flag. Otherwise, the "interface clock" will always have a non-zero use count, and the device won't enter idle. This problem was observed on N8x0. Fix the immediate problem by marking the VENC interface with the OCPIF_SWSUP_IDLE flag. But it's not clear that "dss_54m_fck"/"dss_tv_fck" is really the correct interface clock for VENC. It may be that the VENC interface should use a hardware-autoidling interface clock. This is the situation on OMAP4, which uses "l3_div_ck" as the VENC interface clock, which can be autoidled by the PRCM. Clarification from TI is needed. Problem found and patch tested on N8x0 by Tony Lindgren . Signed-off-by: Paul Walmsley Cc: Tony Lindgren Cc: Senthilvadivu Guruswamy Cc: Sumit Semwal Cc: Kevin Hilman Cc: Benoît Cousson Signed-off-by: Tony Lindgren commit 6e266b204b853b960ad038e62f31c1671f930b87 Author: Linus Walleij Date: Tue Mar 1 15:42:04 2011 +0100 ARM: 6776/1: mach-ux500: activate fix for errata 753970 This applies errata fix 753970 for all ux500 platforms. All current ASICs suffer from this. If the problem is resolved in later ASICs, the errata selection can be pushed down to other Kconfig options. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit fcbdc5fe6ebe07d502c9b652cb63376bcc4227ac Author: Will Deacon Date: Mon Feb 28 18:15:16 2011 +0100 ARM: 6772/1: errata: possible fault MMU translations following an ASID switch On the r2p* and r3p* versions of the Cortex-A9, a speculative memory access may cause a page table walk which starts prior to an ASID switch but completes afterwards. This can populate the micro-TLB with a stale entry which may be hit with the new ASID. This workaround places two dsb instructions in the mm switching code so that no page table walks can cross the ASID switch. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit 5dab26af1bacad9a7189d904fbc8b4fe8e95dd81 Author: Will Deacon Date: Fri Mar 4 12:38:54 2011 +0100 ARM: 6784/1: errata: no automatic Store Buffer drain on Cortex-A9 On revisions of the Cortex-A9 prior to r2p0, the Store Buffer does not have any automatic draining mechanism and therefore a livelock may occur if an external agent continuously polls a memory location waiting to observe an update. This workaround defines cpu_relax() as smp_mb(), preventing correctly written polling loops from denying visibility of updates to memory. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit 1f15318cdae665550746e7fcdfe5ef41bf2360af Author: Hao Wu Date: Wed Mar 9 12:41:08 2011 +0000 USB OTG Langwell: use simple IPC command to control VBus power. Direct access to PMIC register is not safe and will impact battery charging. New IPC command supported in SCU FW for VBus power control. USB OTG driver will switch to such commands instead of direct access to PMIC register for safety and SCU FW will handle the actual work after got the request(IPC command). Due to this change, usb driver should wait more time for sync OTGSC with USBCFG by SCU. Update wait time from 2ms to 5ms. Signed-off-by: Hao Wu Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 7a89e4cb9cdaba92f5fbc509945cf4e3c48db4e2 Author: Herton Ronaldo Krzesinski Date: Wed Mar 9 09:19:48 2011 +0000 USB: serial: option: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 On https://bugs.launchpad.net/ubuntu/+source/linux/+bug/636091, one of the cases reported is a big timeout on option_send_setup, which causes some side effects as tty_lock is held. Looks like some of ZTE MF626 devices also don't like the RTS/DTR setting in option_send_setup, like with 4G XS Stick W14. The reporter confirms which this it solves the long freezes in his system. Signed-off-by: Herton Ronaldo Krzesinski Cc: stable Signed-off-by: Greg Kroah-Hartman commit b88ccf6f97ceb3f34cecbb513edc58815707187d Author: JF Argentino Date: Wed Mar 9 22:13:20 2011 +0100 USB: serial: ftdi_sio: adding support for OLIMEX ARM-USB-OCD-H Adding support for the OLIMEX ARM-USB-OCD-H JTAG device (id 15ba:002b) based on FTDI FT2232H Signed-off-by: JF Argentino Acked-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 126f7e2992760028005ce94509ce54d331c6714d Author: Kevin Hilman Date: Tue Jan 4 15:33:08 2011 -0800 MAINTAINERS: update Kevin's email for OMAP PM section Change my email to TI email address for OMAP PM maintenance. Signed-off-by: Kevin Hilman commit e16b41bfd5efaa1f9521449f1f0e341ebec73398 Author: Ricardo Salveti de Araujo Date: Mon Jan 31 11:35:25 2011 -0200 OMAP3630: PM: don't warn the user with a trace in case of PM34XX_ERRATUM In case in user has a OMAP3630 < ES1.2 the kernel should warn the user about the ERRATUM, but using pr_warn instead of WARN_ON is already enough, as there is nothing else the user can do besides changing the board. Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Kevin Hilman commit eb05ead90ddb2a4e51d34f6c25f01c2e0653da59 Author: Menon, Nishanth Date: Wed Jan 5 20:49:35 2011 +0000 OMAP3|4: OPP: make omapx_opp_init non-static omap3 and omap4 opp_init should be made non-static to allow for platform specific opp table tweaking. making these static conflicts with the definition in pm.h(global) as well. we include pm.h as well to ensure that there are no such prototype conflicts with actual implementation in the future. Signed-off-by: Nishanth Menon Signed-off-by: Kevin Hilman commit 8743410d4971c5510a7d09293f5f3f89d8081059 Author: Nishanth Menon Date: Fri Jan 7 09:41:13 2011 -0600 OMAP3: beagle xm: enable up to 800MHz OPP OMP3630 silicon can enable higher frequencies only depending on the board characteristics meeting the recommended standards, and has to be selectively toggled. Beagle XM uses 3730 variant and the board design allows enabling 800MHz and 1GHz OPPs. However, We need Smart reflex class 1.5 and ABB to enable 1GHz safely. For the moment, we tweak the default table to allow for 800Mhz OPP usage. Reported-by: Koen Kooi Tested-by: Koen Kooi Signed-off-by: Nishanth Menon Signed-off-by: Kevin Hilman commit 5c56f32e80ac8ea9878a0a5eb9ca99c703e953ab Author: Vasiliy Kulikov Date: Wed Jan 19 15:57:22 2011 +0300 OMAP: PM: SmartReflex: fix potential NULL dereference kzalloc() may fail, if so return -ENOMEM. Also Walter Harms suggested to use kasprintf() instead of kzalloc+strcpy+strcat. Signed-off-by: Vasiliy Kulikov Signed-off-by: Kevin Hilman commit df93bd76b61639fe9093ccbfc5d1a4bfb744ec47 Author: Kevin Hilman Date: Fri Jan 21 14:30:15 2011 -0800 OMAP2+: remove unused UART base addresses from omap_globals Now that omap_hwmod + omap_device is used for OMAP UART device and driver code, we no longer need the UART physical addresses in omap_globals. Note that the #defines for the base addresses are still left in since they are used by DEBUG_LL and uncompress code. Build tested for OMAP1 (omap1_defconfig) and OMAP2+ (omap2plus_defconfig) Signed-off-by: Kevin Hilman commit 51d070afd6f927752c76a0cc537c73737578bb93 Author: Paul Walmsley Date: Thu Jan 27 02:52:55 2011 -0700 OMAP2/3: PM: remove unnecessary wakeup/sleep dependency clear The OMAP2 and OMAP3 PM code clears clockdomain wakeup and sleep dependencies. This is unnecessary after commit 6f7f63cc9adf3192e6fcac4e8bed5cc10fd924aa ("OMAP clockdomain: initialize clockdomain registers when the clockdomain layer starts") which clears these dependencies during clockdomain init. Signed-off-by: Paul Walmsley Signed-off-by: Kevin Hilman commit 261bfb286eab32aa6129f48d2b2d24f20825757b Author: Santosh Shilimkar Date: Fri Feb 11 20:42:11 2011 +0530 omap3: pm: Use exported set_cr() instead of a custom one. Remove the custom restore_control_register() and use the exported set_cr() instead to set the system control register(SCTRL) value. No functional change. Signed-off-by: Santosh Shilimkar Cc: Kevin Hilman Signed-off-by: Kevin Hilman commit 8c5ca4d29bf44eb4eb004683ca745742040c7486 Author: Santosh Shilimkar Date: Fri Feb 11 20:42:12 2011 +0530 omap3: cpuidle: Add description field to each C-state. Add a description field to each idle C-state. This helps to give better data with PowerTop and one don't have to refer to the code to link what Cx means from system point of view while analysing PowerTop data. No functional change. Signed-off-by: Santosh Shilimkar Cc: Kevin Hilman Signed-off-by: Kevin Hilman commit 4071318983ff2dead7fd2caf85498bcd8956d93e Author: Thara Gopinath Date: Tue Feb 15 13:28:58 2011 +0530 OMAP3: PM: Set/clear T2 bit for Smartreflex on TWL Voltage control on TWL can be done using VMODE/I2C1/I2C_SR. Since almost all platforms use I2C_SR on omap3, omap3_twl_init by default expects that OMAP's I2C_SR is plugged in to TWL's I2C and calls omap3_twl_set_sr_bit. On platforms where I2C_SR is not connected, the board files are expected to call omap3_twl_set_sr_bit(false) to ensure that I2C_SR path is not set for voltage control and prevent the default behavior of omap3_twl_init. Signed-off-by: Nishanth Menon Signed-off-by: Thara Gopinath Signed-off-by: Shweta Gulati Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Kevin Hilman commit 2de0baefaa7f2fad221bba6049e389e39990e2f0 Author: Sanjeev Premi Date: Fri Feb 25 18:57:20 2011 +0530 OMAP3: PM: Initialize IVA only if available IVA device is not present in many OMAP3 variants. This patch ensures that initialization is tied to the presence of IVA on the device. Signed-off-by: Sanjeev Premi Signed-off-by: Kevin Hilman commit 85243a762457f7891ae525df39ad44323b3eeea6 Author: Dave Martin Date: Fri Mar 4 15:33:53 2011 +0000 ARM: omap4: Provide do_wfi() for Thumb-2 For CONFIG_THUMB2_KERNEL, the existing definition of do_wfi() will insert invalid code into the instruction stream. Any assembler which can assemble Thumb-2 is guaranteed to accept the "wfi" mnemonic, so for the Thumb-2 case, just use the mnemonic. The ARM case is left as-is. Signed-off-by: Dave Martin Signed-off-by: Kevin Hilman commit f96bdfa0d036393741fce303ea98abb44452d042 Author: Dave Martin Date: Fri Mar 4 15:33:54 2011 +0000 ARM: omap4: Convert END() to ENDPROC() for correct linkage with CONFIG_THUMB2_KERNEL Code marked with ENTRY() also needs a matching ENDPROC() directive, in order to ensure that the type and instruction set of the symbol are correctly annotated. ENDPROC() tags the affected symbol as a function symbol, which will ensure that link-time fixups don't accidentally switch to the wrong instruction set. Signed-off-by: Dave Martin Tested-by: Santosh Shilimkar Acked-by: Santosh Shilimkar Signed-off-by: Kevin Hilman commit 76d500182061dcc7508e6b829af097348fa7d804 Author: Dave Martin Date: Fri Mar 4 15:33:55 2011 +0000 ARM: omap3: Remove hand-encoded SMC instructions For various reasons, Linux now only officially supports being built with tools which are new enough to understand the SMC instruction. Replacing the hand-encoded instructions when the mnemonic also allows for correct assembly in Thumb-2 (otherwise, the result is random data in the middle of the code). The Makefile already ensures that this file is built with a high enough gcc -march= flag (armv7-a). Signed-off-by: Dave Martin Tested-by: Santosh Shilimkar Tested-by: Jean Pihet Signed-off-by: Kevin Hilman commit ef7a87d34064eb87866d02547ee67060e5e49eb9 Author: Dave Martin Date: Fri Mar 4 15:33:56 2011 +0000 ARM: omap3: Thumb-2 compatibility for sram34xx.S * Build unconditionally as ARM for correct interoperation with OMAP firmware. * Remove deprecated PC-relative stores * Add the required ENDPROC() directive for each ENTRY(). * .align before data words Signed-off-by: Dave Martin Tested-by: Jean Pihet Signed-off-by: Kevin Hilman commit dd31394779aa288eb6b9c42672ffcb6d05d6c414 Author: Dave Martin Date: Fri Mar 4 15:33:57 2011 +0000 ARM: omap3: Thumb-2 compatibility for sleep34xx.S * Build unconditionally as ARM for correct interoperation with OMAP firmware. * Fix an out-of-range ADR when building for ARM. * Remove deprecated PC-relative stores. * Add the required ENDPROC() directive for each ENTRY(). * .align before data words. * Handle non-interworking return from v7_flush_dcache_all. Signed-off-by: Dave Martin Signed-off-by: Kevin Hilman commit b1ace38094c4926255343a81faba8fb4faf59a45 Author: Anand S Sawant Date: Thu Feb 17 21:27:30 2011 +0530 OMAP2+: smartreflex: remove SR debug directory in omap_sr_remove() omap_sr_probe() creates the smartreflex debug directory and its underlying nvalue debug directory. These directories are removed in omap_sr_remove(). Basic smartreflex functionality tested on OMAP3630 Zoom3 & OMAP4430 SDP Signed-off-by: Anand S Sawant Signed-off-by: Kevin Hilman commit b481cea34bb41f3731567c8c1be0625bf80d20b7 Author: Felipe Balbi Date: Wed Mar 9 18:44:28 2011 -0700 OMAP: clock: fix compile warning if building kernels without OMAP2 support, we will see a warning such as: arch/arm/mach-omap2/io.c: In function 'omap2_init_common_infrastructure': arch/arm/mach-omap2/io.c:389:3: warning: statement with no effect arch/arm/mach-omap2/io.c:391:3: warning: statement with no effect Signed-off-by: Felipe Balbi Signed-off-by: Paul Walmsley commit 692ab1f36b714250a9669e10e5acceba72707956 Author: Paul Walmsley Date: Wed Mar 9 18:44:28 2011 -0700 MAINTAINERS: add entry for OMAP powerdomain/clockdomain per-SoC layer support Add Rajendra Nayak and myself as maintainers for the OMAP powerdomain/clockdomain per-SoC layer code. Signed-off-by: Rajendra Nayak Signed-off-by: Kevin Hilman Signed-off-by: Paul Walmsley Signed-off-by: Benoît Cousson Signed-off-by: Tony Lindgren commit 7d85d61f6ad6e2d6a14b5c20369bc9569f634855 Author: Stephen Boyd Date: Thu Mar 10 05:15:00 2011 +0100 ARM: 6797/1: hw_breakpoint: Fix newlines in WARNings These warnings are missing newlines and spaces causing confusing looking output when they trigger. Acked-by: Will Deacon Signed-off-by: Stephen Boyd Signed-off-by: Russell King commit b9ccf8afe2d2eafe18f90d2925f8464313fe0b56 Author: Benoit Cousson Date: Thu Mar 10 10:53:15 2011 +0100 OMAP3: hwmod data: Fix incorrect SmartReflex -> L4 CORE interconnect links Commit d34427267186827dfd62bd8cf726601fffb22534 ("OMAP3: PM: Adding smartreflex hwmod data") added data that claims that the L4 CORE has two slave interfaces that originate from the SmartReflex modules, omap3_l4_core__sr1 and omap3_l4_core__sr2. But as those two data structure records show, it's L4 CORE that has a master port towards SR1 and SR2. Move the incorrect data from slaves list to master list. Based on a path by Paul Walmsley https://patchwork.kernel.org/patch/623171/ That is based on a patch by Benoît Cousson : https://patchwork.kernel.org/patch/590561/ Signed-off-by: Paul Walmsley Signed-off-by: Benoît Cousson Cc: Sanjeev Premi Cc: Thara Gopinath commit 6fa85e5ce311a8c57fe32cb6403961f7a897112d Author: Stepan Moskovchenko Date: Thu Mar 10 05:12:25 2011 +0100 ARM: 6796/1: Footbridge: Fix I/O mappings for NOMMU mode Use the correct I/O address definitions for Footbridge peripherals when the kernel is compiled without MMU support. Signed-off-by: Stepan Moskovchenko Signed-off-by: Russell King commit ead76f329f777c7301e0a5456a0a1c7a081570bd Author: Linus Walleij Date: Thu Feb 24 13:21:08 2011 +0100 ARM: 6763/1: pl011: add optional RX DMA to PL011 v2 This adds an optional RX DMA codepath for the devices that support this by using the apropriate burst sizes instead of pulling single bytes. Includes portions of code written by Russell King during a PL08x hacking session. This has been tested on U300 and Ux500. Tested-by: Jerzy Kasenberg Tested-by: Grzegorz Sygieda Tested-by: Marcin Mielczarczyk Signed-off-by: Per Forlin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 29772c4e28cbb33ea1f8c6dcd130ebf190b91d85 Author: Linus Walleij Date: Thu Feb 24 13:21:36 2011 +0100 ARM: 6764/1: pl011: factor out FIFO to TTY code This piece of code was just slightly different between the DMA and IRQ paths, in DMA mode we surely shouldn't read more than 256 character either, so factor this out in its own function and use for both DMA and PIO mode. Tested on Ux500 and U300. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 12b90f8a2ce4d913d9080dcd6b6c329db00cbbeb Author: Shawn Guo Date: Tue Mar 8 18:51:09 2011 +0800 ARM: mx28: set proper parent for lcdif clock Most likely, the LCD panel on mx28 platform will require a pixel clock higher than ref_xtal_clk (24 MHz), so the patch initializes the parent of lcdif clock as ref_pix_clk. Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 0590a790319e2de59e0f15cf00af7fe473eb9ec8 Author: Shawn Guo Date: Tue Mar 8 18:51:10 2011 +0800 ARM: mxs/mx28evk: add framebuffer device Signed-off-by: Shawn Guo Signed-off-by: Sascha Hauer commit 478f478bc1a58f97f09fd2048488bafdfa9d8fce Author: Benoit Cousson Date: Fri Feb 25 17:46:33 2011 +0100 OMAP3: hwmod data: Remove masters port links for interconnects. Master ports from interconnect are generating some annoying circular references that become tricky to handle if we have to dynamically remove some IP on some variant platforms. Since they are not used for the moment, and since we can still build that relation using the reverse relation (slave port from the IP toward master port of the interconnect), let remove them for the moment like it is done on OMAP4. Signed-off-by: Benoit Cousson Cc: Paul Walmsley Cc: Sanjeev Premi commit 8985b63d072413f0446fd2d0d654795f2d683323 Author: Tarun Kanti DebBarma Date: Thu Mar 3 14:22:46 2011 -0700 OMAP2+: hwmod: fix incorrect computation of autoidle_mask Autoidle is a single bit, TIOCP_CFG[0], setting on OMAP1/2/3/4 platforms. In _set_module_autoidle() I am seeing 0x3 value where the mask is computed. This should be 0x1. v2: (1) Modified the subject. (2) Modified the description with further specific information. Baseline: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Tested Info: Boot tested on OMAP 1/2/3/4. Signed-off-by: Tarun Kanti DebBarma Acked-by: Rajendra Nayak Acked-by: Benoit Cousson Signed-off-by: Paul Walmsley commit d73d65fab1c29c3c0f9736aed9cb55ea53843b00 Author: Avinash.H.M Date: Thu Mar 3 14:22:46 2011 -0700 omap: hwmod: add syss reset done flags to omap2, omap3 hwmods Some of the omap2, omap3 peripherals support software reset. This can be done through the softreset bit in sysconfig register. The reset status can be checked through resetdone bit of sysstatus register. syss_has_reset_status is added to the hwmod database of peripherals which have resetdone bit in sysstatus register. Cc: Rajendra Nayak Cc: Paul Walmsley Cc: Benoit Cousson Cc: Kevin Hilman Reviewed-by: Govindraj.R Signed-off-by: Avinash.H.M Signed-off-by: Paul Walmsley commit 09c35f2fee8a8633dde7b8b588b1cb496eb220a1 Author: Rajendra Nayak Date: Wed Feb 16 12:11:24 2011 +0000 OMAP2+: hwmod: Fix what _init_clock returns _init_clock always returns 0 and does not propogate the error (in case of failure) back to the caller, causing _init_clocks to fail silently. Signed-off-by: Rajendra Nayak Acked-by: Benoît Cousson Signed-off-by: Paul Walmsley commit 4d2274c543e78a267989da5f9b12e223cd87839f Author: Paul Walmsley Date: Thu Mar 3 15:22:42 2011 -0700 OMAP2+: hwmod: fix a documentation bug with HWMOD_NO_OCP_AUTOIDLE The documented name of the HWMOD_NO_OCP_AUTOIDLE flag was incorrect; fix it. Signed-off-by: Paul Walmsley commit cc1226e7635011c7dd1e786770ed51ee751800f2 Author: omar ramirez Date: Fri Mar 4 13:32:44 2011 -0700 OMAP2+: hwmod: use status bit info for reset line On OMAP2 and OMAP3 the reset ctrl shift doesn't match the status bit, as it does on OMAP4, when handling the reset lines. This patch adds a new member in the reset info structure, so now it can be added as part of hwmod data, and checked accordingly for OMAP2 or 3; otherwise, there could be cases when the shift masks doesn't match both of the registers, and a successful reset might throw an error message or vice versa. Signed-off-by: Omar Ramirez Luna [paul@pwsan.com: added a warning if st_shift used on OMAP4; renamed 'r' variable; improved some documentation] Signed-off-by: Paul Walmsley commit 43b01643355672a266b95c4719f47cd1abac4680 Author: Paul Walmsley Date: Thu Mar 10 03:50:07 2011 -0700 OMAP2+: hwmod: allow board files to prevent devices from being reset upon init Some boards can't tolerate IP blocks being reset when they are initialized. Michael Büsch cites a case with the Nokia N810: http://www.spinics.net/lists/linux-omap/msg47277.html To allow such boards to continue working normally, allow board file maintainers to mark IP blocks to prevent them from being reset upon init. This is done via a hwmod function, omap_hwmod_no_setup_reset(). Signed-off-by: Paul Walmsley Cc: Michael Buesch commit 9599217a06da5f5a95794ca9192c14317d441187 Author: Kishon Vijay Abraham I Date: Thu Mar 10 03:50:08 2011 -0700 OMAP2+: hwmod: add API to handle autoidle mode Create a new API that forms a wrapper to _set_module_autoidle() to modify the AUTOIDLE bit. This API is intended to be used by drivers that requires direct manipulation of the AUTOIDLE bits in SYSCONFIG register. McBSP driver requires autoidle bit to be enabled/disabled while using sidetone feature. Signed-off-by: Kishon Vijay Abraham I Cc: Paul Walmsley Cc: Benoit Cousson [paul@pwsan.com: restrict the hwmod states that the autoidle bit can be changed in; changed function name; dropped "int" from "unsigned int long"] Signed-off-by: Paul Walmsley commit 570b54c7fae65b65320d5a7d4b2249c86eeaa497 Author: Paul Walmsley Date: Thu Mar 10 03:50:09 2011 -0700 OMAP2+: clockdomain: add flag that will block autodeps from being added for a clockdomain Add a new clockdomain flag, CLKDM_NO_AUTODEPS, which, when marked on a clockdomain, will prevent "autodeps" from being associated with the clockdomain. ("Autodeps" are sleep dependencies and wakeup dependencies from/to processor modules that are automatically added to a clockdomain when it is in hardware-supervised idle mode. They are deprecated -- a relic from the old CDP trees -- but are still in use for OMAP3.) Also, prevent the hwmod code from adding or removing initiator dependencies for clockdomains with this flag set. This patch should allow others to test which clockdomains actually still need autodeps. Thanks to Kevin Hilman for noting that the original version should also modify the hwmod code. Signed-off-by: Paul Walmsley Cc: Kevin Hilman commit 4ce1e5e14c4ea43f971bd546934ef40b3ae4fcf3 Author: Tero Kristo Date: Thu Mar 10 03:50:54 2011 -0700 omap2/3: dmtimer: Enable autoidle This saves some power. OMAP4 version should check for GPT module ID, as autoidle is only supported on a subset of these. Signed-off-by: Tero Kristo Signed-off-by: Paul Walmsley commit bb0a80e394b512028ad6cf4c86157d4f9db5aab8 Author: Richard Zhu Date: Thu Mar 10 14:15:46 2011 +0800 mx51 enchance the sd/mmc HW timing compatibility on mx51 boards. Some cards have the CRC errors in read on mx51 BBG board. Configure the eSDHC pad configurations to level up the compatibility to fix this issue. Signed-off-by: Richard Zhu Tested-by: Shawn Guo Signed-off-by: Sascha Hauer commit f7fdaca910e6bc13659ecdffc28c97938b752e01 Author: Ilia Mirkin Date: Sun Feb 20 17:10:51 2011 -0500 arm: imx: Zero entire imxdma structure The semantic match that finds the problem: // @@ type T; identifier x; @@ T *x; ... * memset(x, ..., ... * sizeof(x) * ...); // Signed-off-by: Ilia Mirkin Signed-off-by: Sascha Hauer commit 23bfdacf4eb525ff3404161429cedaa281c23e47 Author: Will Deacon Date: Thu Mar 10 14:03:01 2011 +0100 ARM: 6798/1: aout-core: zero thread debug registers in a.out core dump The removal of the single-step emulation from ptrace on ARM means that thread_struct no longer has software breakpoint fields in its debug member. This patch fixes the a.out core dump code so that the debug registers are zeroed rather than trying to copy from non-existent fields. Cc: Nicolas Pitre Signed-off-by: Bryan Wu Signed-off-by: Will Deacon Signed-off-by: Russell King commit b511d75d6150892e67c8ebfa9dc8eb37ebd02aa3 Author: Nicolas Pitre Date: Mon Feb 21 06:53:35 2011 +0100 ARM: 6747/1: P2V: Thumb2 support Adding Thumb2 support to the runtime patching of the virt_to_phys and phys_to_virt opcodes. Tested both the 8-bit and the 16-bit fixups, using different placements in memory to exercize all code paths. Signed-off-by: Nicolas Pitre Reviewed-by: Dave Martin Signed-off-by: Russell King commit 6f685c5cdd29649cf8cc8f57c72791159f936e07 Author: Dave Martin Date: Thu Mar 3 11:41:12 2011 +0100 ARM: 6781/1: Thumb-2: Work around buggy Thumb-2 short branch relocations in gas Various binutils versions can resolve Thumb-2 branches to locally-defined, preemptible global symbols as short-range "b.n" branch instructions. This is a problem, because there's no guarantee the final destination of the symbol, or any candidate locations for a trampoline, are within range of the branch. For this reason, the kernel does not support fixing up the R_ARM_THM_JUMP11 (102) relocation in modules at all, and it makes little sense to add support. The symptom is that the kernel fails with an "unsupported relocation" error when loading some modules. Until fixed tools are available, passing -fno-optimize-sibling-calls to gcc should prevent gcc generating code which hits this problem, at the cost of a bit of extra runtime stack usage in some cases. The problem is described in more detail at: https://bugs.launchpad.net/binutils-linaro/+bug/725126 Only Thumb-2 kernels are affected. This patch adds a new CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 config option which adds -fno-optimize-sibling-calls to CFLAGS_MODULE when building a Thumb-2 kernel. Signed-off-by: Dave Martin Acked-by: Nicolas Pitre Signed-off-by: Russell King commit 42924355204bd83d799bd151211ae6e014982849 Author: Tony Lindgren Date: Thu Mar 10 09:51:29 2011 -0800 omap: Fix H4 init_irq to not call h4_init_flash There should be no reason to call h4_init_flash this early. It causes problems as things are not yet initialized. Tested-by: Tarun Kanti DebBarma Signed-off-by: Tony Lindgren commit 8fe8f545c6d753ead15e1f4919d39e8f9bb49629 Author: Michel Lespinasse Date: Sun Mar 6 18:07:50 2011 -0800 futex: Update futex_wait_setup comments about locking Reviving a cleanup I had done about a year ago as part of a larger futex_set_wait proposal. Over the years, the locking of the hashed futex queue got improved, so that some of the "rare but normal" race conditions described in comments can't actually happen anymore. Signed-off-by: Michel Lespinasse Cc: Linus Torvalds Cc: Darren Hart Cc: Peter Zijlstra LKML-Reference: <20110307020750.GA31188@google.com> Signed-off-by: Thomas Gleixner commit 7e1a68abaef094d5927ffe76bce21d6d8aa87bcb Author: Stephen Boyd Date: Thu Feb 24 10:44:42 2011 -0800 msm: scm: Mark inline asm as volatile We don't want the compiler to remove these asm statements or reorder them in any way. Mark them as volatile to be sure. Signed-off-by: Stephen Boyd Acked-by: Will Deacon Signed-off-by: David Brown commit 98d4ded60bda17a9ffecd902b03deac52922b788 Author: Stephen Boyd Date: Thu Feb 24 10:44:43 2011 -0800 msm: scm: Fix improper register assignment Assign the registers used in the inline assembly immediately before the inline assembly block. This ensures the compiler doesn't optimize away dead register assignments when it shouldn't. Signed-off-by: Stephen Boyd Acked-by: Nicolas Pitre Signed-off-by: David Brown commit 8e76a80960bf06c245160a484d5a363ca6b520bb Author: Stephen Boyd Date: Thu Feb 24 10:44:44 2011 -0800 msm: scm: Check for interruption immediately When we're interrupted on the secure side, we should just issue another smc instruction again instead of replaying the arguments to smc. Fix it. Signed-off-by: Stephen Boyd Signed-off-by: David Brown commit 4444d712fd5b31f2348b57eaa2bbdc5e68c4e1b6 Author: Santosh Shilimkar Date: Sun Jan 23 19:00:34 2011 +0530 OMAP3: PM: Use ARMv7 supported instructions instead of legacy CP15 ones On ARMv7 dsb, dmb instructions are supported and can be used directly instead of their cp15 equivalnet. Also remove the opcodes for smc and use the available instruction directly in OMAP3 low power asm code Signed-off-by: Santosh Shilimkar Signed-off-by: Kevin Hilman commit 8409d57bc342536ffe96acc7cd6c7575d98d3edb Author: Santosh Shilimkar Date: Sun Jan 23 16:04:39 2011 +0530 OMAP3: PM: Fix the MMU on sequence in the asm code Add necessary barriers after enabling MMU. Also use the sane way to load pc and jump to it instead of executing ldma first up. Signed-off-by: Santosh Shilimkar Signed-off-by: Kevin Hilman commit c9749a352383d4d2d25eb28062afd1a7eee115b7 Author: Santosh Shilimkar Date: Sun Jan 23 19:33:53 2011 +0530 OMAP3: PM: Allow the cache clean when L1 is lost. When L1 cache is suppose to be lost, it needs to be cleaned before entrering to the low power mode. While at this, also fix few comments and remove un-necessary clean_l2 lable. Signed-off-by: Santosh Shilimkar Signed-off-by: Kevin Hilman commit 46f557cb453b9f3b6dc36b8179c2c36932a2ea64 Author: Santosh Shilimkar Date: Sun Jan 23 21:37:03 2011 +0530 OMAP3: PM: Remove un-necessary cp15 registers form low power cpu context The current code saves few un-necessary registers which are read-only or write-only, unused CP15 registers. Remove them and keep only necessary CP15 registers part of low power context save/restore. Signed-off-by: Santosh Shilimkar Signed-off-by: Kevin Hilman commit 9062511097683b4422f023d181b4a8b2db1a7a72 Author: Santosh Shilimkar Date: Sun Jan 23 22:51:09 2011 +0530 OMAP3: PM: Clear the SCTLR C bit in asm code to prevent data cache allocation On the newer ARM processors like CortexA8, CortexA9, the caches can be speculatively loaded while they are getting flushed. Clear the SCTLR C bit to prevent further data cache allocation as part of cache clean routine Signed-off-by: Santosh Shilimkar Signed-off-by: Kevin Hilman commit 2b7401590d97951d7b3df67ba7dc4fc2930928f0 Author: Changhwan Youn Date: Fri Mar 11 10:39:35 2011 +0900 ARM: EXYNOS4: Add SYSTIMER IO Address mapping for MCT The MCT(Multi-Core Timer) is used for implementing kernel timers for EXYNOS4210. Signed-off-by: Changhwan Youn Signed-off-by: Kukjin Kim commit 614a392e1cce882745cdf130fe37fdf86bbd9b9a Author: Changhwan Youn Date: Fri Mar 11 10:39:53 2011 +0900 ARM: EXYNOS4: Add irq definition for kernel global timer This patch adds IRQ_MCT_G0 to irq map. IRQ_MCT_G0 is an interrupt of MCT comparator and used for kernel global timer. Signed-off-by: Changhwan Youn Signed-off-by: Kukjin Kim commit 30d8bead5a309492d1dae2f6511a0465fe6ad05e Author: Changhwan Youn Date: Fri Mar 11 10:39:57 2011 +0900 ARM: EXYNOS4: Implement kernel timers using MCT The Multi-Core Timer(MCT) of EXYNOS4 is designed for implementing clock source timer and clock event timers. This patch implements 1 clock source timer with 64 bit free running counter of MCT and 2 clock event timers with two of 31-bit tick counters. Signed-off-by: Changhwan Youn Cc: Ben Dooks Cc: Russell King Signed-off-by: Kukjin Kim commit c0718df4d666cc5fd8837ac93c82995a17bfdbf5 Author: Paul Walmsley Date: Thu Mar 10 22:17:45 2011 -0700 OMAP2+: voltage: reorganize, split code from data This is a first pass at reorganizing mach-omap2/voltage.c: - Separate almost all of the data from the code of mach-omap2/voltage.c. The code remains in mach-omap2/voltage.c. The data goes into one of several places, depending on what type of data it is: - Silicon process/validation data: mach-omap2/opp*_data.c - VC (Voltage Controller) data: mach-omap2/vc*_data.c - VP (Voltage Processor) data: mach-omap2/vp*_data.c - Voltage domain data: mach-omap2/voltagedomains*_data.c The ultimate goal is for all this data to be autogenerated, the same way we autogenerate the rest of our data. - Separate VC and VP common data from VDD-specific VC and VP data. - Separate common voltage.c code from SoC-specific code; reuse common code. - Reorganize structures to avoid unnecessary memory loss due to unpacked fields. There is much left to be done. VC code and VP code should be separated out into vc*.c and vp*.c files. Many fields in the existing structures are superfluous, and should be removed. Some code in voltage.c seems to be duplicated; that code should be moved into functions of its own. Proper voltage domain code should be created, as was done with the powerdomain and clockdomains, and powerdomains should reference voltagedomains. Thanks to Shweta Gulati for comments. Thanks to Rajendra Nayak for finding and fixing some bugs that prevented OMAP4 from booting: https://patchwork.kernel.org/patch/587311/ His patch has been folded into this one to avoid breaking OMAP4 between patches. Thanks also to Kevin Hilman for finding and fixing a compile problem when !CONFIG_PM: http://www.spinics.net/lists/arm-kernel/msg118067.html His patch has also been folded into this one to avoid breaking !CONFIG_PM builds. Signed-off-by: Paul Walmsley Cc: Shweta Gulati Cc: Rajendra Nayak Cc: Kevin Hilman commit 0503add9d251db22ba2f610fb8d9b7743a9786da Author: Paul Walmsley Date: Thu Mar 10 22:40:05 2011 -0700 Watchdog: omap_wdt: add fine grain runtime-pm The omap_wdt should only be in full active state when the registers are being accessed. Otherwise the device can be on lower power mode. This patch is based on a patch created by Kalle Jokiniemi: https://patchwork.kernel.org/patch/618231/ which is itself based on a patch created by Atal Shargorodsky: http://lkml.org/lkml/2009/3/10/266. Signed-off-by: Paul Walmsley Signed-off-by: Kalle Jokiniemi Tested-by: Kalle Jokiniemi Cc: Wim Van Sebroeck Acked-by: Wim Van Sebroeck Acked-by: Kevin Hilman commit 2f4dd595f6d60ec3ccbb68def73df457970cf671 Author: Paul Walmsley Date: Thu Mar 10 22:40:06 2011 -0700 OMAP3: wdtimer: Fix CORE idle transition The HW superwised smart idle for wdtimer in OMAP3 prevents CORE power domain idle transitions. Disable it by swithing to SW supervised transitions. This could be a hardware bug in the OMAP3 wdtimer2 block. Signed-off-by: Kalle Jokiniemi Signed-off-by: Paul Walmsley Cc: Benoit Cousson Acked-by: Kevin Hilman commit 0048a17348645f18cf209483e1f8e46a6dbec971 Author: Sylwester Nawrocki Date: Thu Mar 10 21:49:31 2011 +0900 ARM: S5P: Add platform helpers for camera GPIO configuration Add functions for configuration of the parallel camera bus pins on S5PV210 and Exynos4 SoC. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 03c4cd397cba38fc621a33c84d9698d39b286036 Author: Sylwester Nawrocki Date: Thu Mar 10 21:52:27 2011 +0900 ARM: S5P: Rename MIPI-CSIS driver header and update Copyright Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit e24d208de6bc779c6bd97523cde2665a33f2be4d Author: Sylwester Nawrocki Date: Thu Mar 10 21:53:36 2011 +0900 ARM: S5P: Extend MIPI-CSIS platform_data with the PHY control callback Extend MIPI-CSIS driver's platform data structure with a callback for D-PHY enable and reset control. Also add a flag indicating whether the external MIPI-CSI (VDD18_MIPI) power supply should be managed in the driver through the "vdd" power supply. On some boards this regulator may be a fixed voltage regulator without an inhibit function. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 1d45ac49daa15fd0a64c58744ac9ea6451e607e6 Author: Sylwester Nawrocki Date: Thu Mar 10 21:53:40 2011 +0900 ARM: S5P: Add support for common MIPI CSIS/DSIM D-PHY control Add common code for MIPI-CSIS and MIPI-DSIM drivers to support their corresponding D-PHY's enable and reset control. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 30d913556b25db11f2537f4412487c6e81dc0374 Author: Oskar Schirmer Date: Thu Feb 17 16:42:51 2011 +0100 arm: tcc8k: Add missing include If NAND is enabled we better have the include around. Signed-off-by: Oskar Schirmer Signed-off-by: Thomas Gleixner commit 85922e54a3a14a6aee6c0b1fc67d81ef0c60fc9c Author: Oskar Schirmer Date: Thu Feb 17 16:42:58 2011 +0100 arm: tcc8k: Choose PLL settings conforming to board layout The evaluation board is driven with 1.2V core voltage, so system clock must not exceed 192 MHz, bus clock must not exceed 110 MHz. Choose appropriate values and set DTCMWAIT accordingly. Adapt UART setting to avoid console log interruption and wait for the specified locking time of 300us to pass. Signed-off-by: Oskar Schirmer Cc: bigeasy@linutronix.de Signed-off-by: Thomas Gleixner commit fe03a9f7bb89e920e60fd1bb074adab2eed2bf48 Author: Hans J. Koch Date: Thu Feb 17 16:42:59 2011 +0100 arm: tcc8k: Fix clock rate calculation The calculation of the best divider value for a requested clock rate always returned a value that was slightly too large. It was also not protected against possible divisions by zero. Request for very low, but non zero rates would cause the ACLK divisor field to overflow. Catch this situation by using the maximum value. The internal function aclk_set_rate() calculates the correct divider value, but doesn't write it back to the register. Add the write back. Signed-off-by: Hans J. Koch Signed-off-by: Oskar Schirmer Cc: bigeasy@linutronix.de Signed-off-by: Thomas Gleixner commit 25d7a6003b5c76b735fdfc3dc5030d9d9c93844e Author: Oskar Schirmer Date: Thu Feb 17 16:43:00 2011 +0100 arm: tcc8k: Avoid reading clock register twice There is no reason why in case of PLL2 the configuration register should be read twice, while for PLL0/1 using the value previously read is used. Do the same for PLL2. Signed-off-by: Oskar Schirmer Cc: bigeasy@linutronix.de Signed-off-by: Thomas Gleixner commit cfeeb2f99867c075f3a1a6ac59c0a42e1cd741b0 Author: Oskar Schirmer Date: Thu Feb 17 16:43:01 2011 +0100 arm: tcc8k: Fix indent, coding syle Remove double definition of ACLKUSBH, change parameter name in root_clk_disable, as there is no reason to have a different name than in root_clk_enable. No functional change. Signed-off-by: Oskar Schirmer Cc: bigeasy@linutronix.de Signed-off-by: Thomas Gleixner commit f91f9cd505f92e4227ffda7e5799a33d4f34bf36 Author: Oskar Schirmer Date: Thu Feb 17 16:43:02 2011 +0100 arm: tcc8k: Fix bus clock calculation There are two dividers used to derive bus clock from system clock: system clock is divided by SCKDIV+1, then by BCKDIV+1. SCKDIV divider has been ignored up to now, which is no problem as long as it is 0. Take SCKDIV into account for bus clock calculation. Signed-off-by: Oskar Schirmer Cc: bigeasy@linutronix.de Signed-off-by: Thomas Gleixner commit c0c9ed15042ceac7c485813012a0a97316101b57 Author: Thomas Gleixner Date: Fri Mar 11 11:51:22 2011 +0100 futex: Avoid redudant evaluation of task_pid_vnr() The result is not going to change under us, so no need to reevaluate this over and over. Seems to be a leftover from the mechanical mass conversion of task->pid to task_pid_vnr(tsk). Signed-off-by: Thomas Gleixner commit 522d7decc0370070448a8c28982c8dfd8970489e Author: Michel Lespinasse Date: Thu Mar 10 18:47:31 2011 -0800 futex: Remove redundant pagefault_disable in futex_atomic_cmpxchg_inatomic() kernel/futex.c disables page faults before calling futex_atomic_cmpxchg_inatomic(), so there is no need to do it again within that function. Signed-off-by: Michel Lespinasse Cc: Darren Hart Cc: Peter Zijlstra Cc: Matt Turner Cc: Russell King Cc: David Howells Cc: Tony Luck Cc: Michal Simek Cc: Ralf Baechle Cc: "James E.J. Bottomley" Cc: Benjamin Herrenschmidt Cc: Martin Schwidefsky Cc: Paul Mundt Cc: "David S. Miller" Cc: Chris Metcalf Cc: Linus Torvalds LKML-Reference: <20110311024731.GB26122@google.com> Signed-off-by: Thomas Gleixner commit 37a9d912b24f96a0591773e6e6c3642991ae5a70 Author: Michel Lespinasse Date: Thu Mar 10 18:48:51 2011 -0800 futex: Sanitize cmpxchg_futex_value_locked API The cmpxchg_futex_value_locked API was funny in that it returned either the original, user-exposed futex value OR an error code such as -EFAULT. This was confusing at best, and could be a source of livelocks in places that retry the cmpxchg_futex_value_locked after trying to fix the issue by running fault_in_user_writeable(). This change makes the cmpxchg_futex_value_locked API more similar to the get_futex_value_locked one, returning an error code and updating the original value through a reference argument. Signed-off-by: Michel Lespinasse Acked-by: Chris Metcalf [tile] Acked-by: Tony Luck [ia64] Acked-by: Thomas Gleixner Tested-by: Michal Simek [microblaze] Acked-by: David Howells [frv] Cc: Darren Hart Cc: Peter Zijlstra Cc: Matt Turner Cc: Russell King Cc: Ralf Baechle Cc: "James E.J. Bottomley" Cc: Benjamin Herrenschmidt Cc: Martin Schwidefsky Cc: Paul Mundt Cc: "David S. Miller" Cc: Linus Torvalds LKML-Reference: <20110311024851.GC26122@google.com> Signed-off-by: Thomas Gleixner commit 8d7718aa082aaf30a0b4989e1f04858952f941bc Author: Michel Lespinasse Date: Thu Mar 10 18:50:58 2011 -0800 futex: Sanitize futex ops argument types Change futex_atomic_op_inuser and futex_atomic_cmpxchg_inatomic prototypes to use u32 types for the futex as this is the data type the futex core code uses all over the place. Signed-off-by: Michel Lespinasse Cc: Darren Hart Cc: Peter Zijlstra Cc: Matt Turner Cc: Russell King Cc: David Howells Cc: Tony Luck Cc: Michal Simek Cc: Ralf Baechle Cc: "James E.J. Bottomley" Cc: Benjamin Herrenschmidt Cc: Martin Schwidefsky Cc: Paul Mundt Cc: "David S. Miller" Cc: Chris Metcalf Cc: Linus Torvalds LKML-Reference: <20110311025058.GD26122@google.com> Signed-off-by: Thomas Gleixner commit e7a12b6406a478b5c9085091b5015cb3e1683958 Author: Tomi Valkeinen Date: Thu Feb 24 09:02:28 2011 +0200 OMAP: 3430SDP: Remove unused vdda_dac supply Remove extra vdda_dac supply definition. It was a leftover from conflict resolution. Signed-off-by: Tomi Valkeinen commit 8ba775ca0d375ab42404ffd7a1a38326a7b21321 Author: Sumit Semwal Date: Mon Jan 24 06:21:48 2011 +0000 OMAP2, 3: DSS2: remove forced clk-disable from omap_dss_remove As part of omap hwmod changes, DSS will not be the only controller of its clocks. hwmod initialization also enables the interface clocks, and manages them. So, when DSS is built as a module, omap_dss_remove doesn't try to disable all clocks that have a higher usecount. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit cf07f5316215972e987c63b0a75a922c89813781 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:56 2011 +0000 OMAP2,3: DSS2: Build omap_device for each DSS HWIP Looks up the hwmod database for each of the given DSS HW IP and builds omap_device which inturn does the platform device register for each of DSS HW IP Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 96c401bcb83a182a4f332f2f64ee6530ba35511a Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:57 2011 +0000 OMAP2, 3: DSS2: DSS: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver of DSS is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. DSS platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 8b9cb3a8f39d0864c925c5cd5c2c54cfd85ad551 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:58 2011 +0000 OMAP2, 3: DSS2: Move clocks from core driver to dss driver All clock management is moved to dss platform driver. clk_get/put APIs use dss device instead of core platform device. Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So the device name is changed from omapdss to omapdss_dss in 2420, 2430, 3xxx clock database files. Now the core driver "omapdss" only takes care of panel registration with the custom bus. core driver also uses the clk_enable() / clk_disable() APIs exposed by DSS for clock management. DSS driver would do clock management of clocks needed by DISPC, RFBI, DSI, VENC TODO: The clock content would be adapted to omap_hwmod in a seperate series. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 3448d500f7002a5ee374ec92d954b1667cbf72a4 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:21:59 2011 +0000 OMAP2, 3: DSS2: RFBI: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for RFBI is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. RFBI platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 060b6d9cbab03f1379dbe00393ab26d6eb371ce2 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:00 2011 +0000 OMAP2, 3: DSS2: DISPC: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for DISPC is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. DISPC platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 30ea50c9f5166a375b4dc0109d18a5d21bab5711 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:01 2011 +0000 OMAP2, 3: DSS2: VENC: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for VENC is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. Also, venc_vdda_dac reading is moved to venc.c. VENC platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit c8aac01b7bd1109795586db11ea7f12ab1e2d163 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:02 2011 +0000 OMAP2, 3: DSS2: DSI: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for DSI is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. Also, vdds_dsi regulator handling is copied to dsi.c, since vdds_dsi regulator is needed by dpi_init() too. Board files are updated accordingly to add 2 instances of vdds_dsi regulator. DSI platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit a06b62f8004bd95c132fa312e8593c9a10f466ec Author: Sumit Semwal Date: Mon Jan 24 06:22:03 2011 +0000 OMAP2,3: DSS2: replace printk with dev_dbg in init This patch replaces printk's in the init/probe functions to dev_dbg for boot time optimization. Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit ea9da36a304eed585fc5ef89c0f1c460eca61b48 Author: Senthilvadivu Guruswamy Date: Mon Jan 24 06:22:04 2011 +0000 OMAP2,3: DSS2: Use platform device to get baseaddr DSS, DISPC, DSI, RFBI, VENC baseaddr can be obtained from platform_get_resource(). This API in turn picks the right silicon baseaddr from the hwmod database. So hardcoding of base addr could be removed. Reviewed-by: Paul Walmsley Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Sumit Semwal Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Tomi Valkeinen commit ef631f82500390b3dfc20b16214e53c443d675a4 Author: Senthilvadivu Guruswamy Date: Tue Feb 15 23:14:00 2011 -0600 OMAP2,3: DSS2: Get DSS IRQ from platform device DSS IRQ number can be obtained from platform_get_irq(). This API in turn picks the right IRQ number belonging to HW IP from the hwmod database. So hardcoding of IRQ number could be removed. This IRQ is stored in dss_irq as part of dss structure, and freed it in dss_exit(). Reviewed-by: Paul Walmsley Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 872462cdfc74e7b93c09870128d9bb436d4e9804 Author: Sumit Semwal Date: Mon Jan 31 16:27:43 2011 +0000 OMAP2PLUS: clocks: Align DSS clock names and roles Currently, clock database has tuples for DSS2. Because of this, the clock names are different across different OMAP platforms. This patch aligns the DSS2 clock names and roles across OMAP 2420, 2430, 3xxx, 44xx platforms in the clock databases, hwmod databases for opt-clocks, and DSS clock handling. This ensures that clk_get/put/enable/disable APIs in DSS can use uniform role names. Signed-off-by: Sumit Semwal Acked-by: Paul Walmsley Signed-off-by: Tomi Valkeinen commit 6af9cd1431db952a7f9f8931497c9989a48b07df Author: Archit Taneja Date: Mon Jan 31 16:27:44 2011 +0000 OMAP2PLUS: DSS2: Generalize naming of PRCM related clock enums in DSS driver enum dss_clock structure is replaced with generic names that could be used across OMAP2420, 2430, 3xxx, 44xx platforms. Signed-off-by: Sumit Semwal Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit c7642f67e5bd71f91d165620f601f00c7c9802c9 Author: Archit Taneja Date: Mon Jan 31 16:27:45 2011 +0000 OMAP2PLUS: DSS2: Generalize external clock names in struct dss of dss.c The dss struct in dss.c has omap2/3 specific clock names. Making them generic, to increase readability and extendability. Signed-off-by: Sumit Semwal Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit f38190d61fe378d8eaf21b160c22e78b3b925747 Author: Sumit Semwal Date: Mon Jan 31 16:27:46 2011 +0000 OMAP4: DSS2: clocks: Add ick as dummy clock DSS code uses ick as one of the clocks in clk_get/clk_put. OMAP4 clock database doesn't have ick for DSS, so adding ick as dummy clock. This is needed for backward compatibility with OMAP2/3. Once pm_runtime* APIs get introduced in DSS, this will be revisited. Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 3f3aa06c46796cd2dc0f71d7d2f41bb75f7e97ff Author: Mayuresh Janorkar Date: Tue Feb 15 22:54:29 2011 -0600 OMAP2PLUS: DSS2: Add OMAP4 Kconfig support Enable DSS2 and OMAPFB for OMAP4 in Kconfig Signed-off-by: Mayuresh Janorkar Signed-off-by: Tomi Valkeinen commit 545376e734a6b0a4c66efb7616724ae4dbb2e57a Author: Mayuresh Janorkar Date: Thu Jan 27 11:17:04 2011 +0000 OMAP4: DSS2: Add hwmod device names for OMAP4. Add hwmod device names for OMAP4; this enables device build for omap4 dss hwmod IPs. Signed-off-by: Sumit Semwal Signed-off-by: Mayuresh Janorkar Signed-off-by: Tomi Valkeinen commit ac425ed5fb0b6564d4eeee9fb13ef0c1f6da8e8f Author: Jani Nikula Date: Wed Feb 16 04:53:44 2011 -0600 OMAP: DSS2: Fix def_disp module param description MODULE_PARM_DESC() takes the name of the actual module parameter, not the name of the variable, as input. Fix the module parameter description for def_disp. Signed-off-by: Jani Nikula Signed-off-by: Tomi Valkeinen commit 5f42f2ce63f5ecbd9bc744b9c25d9786e9a8e3b4 Author: Tomi Valkeinen Date: Tue Feb 22 15:53:46 2011 +0200 OMAP: DSS2: Delay regulator_get() calls DSS submodules DPI/SDI/DSI/VENC require a regulator to function. However, if the board doesn't use, say, SDI, the board shouldn't need to configure vdds_sdi regulator required by the SDI module. Currently the regulators are acquired when the DSS driver is loaded. This means that if the kernel is configured with SDI, vdds_sdi regulator is needed for all boards. This patch changes the DSS driver to acquire the regulators only when a display of particular type is initialized. For example, vdds_sdi is acquired when sdi_init_display() is called. Signed-off-by: Tomi Valkeinen commit 09dc89cb3123d102e1615fab9e3d65a70402d061 Author: Tomi Valkeinen Date: Tue Feb 22 16:39:47 2011 +0200 OMAP: DSS2: Support for Samsung LTE430WQ-F0C Add support for Samsung LTE430WQ-F0C to panel-generic-dpi. Signed-off-by: Tomi Valkeinen commit 371e2081447ce2bc6a25c20b513b9ba33cf5769e Author: Janorkar, Mayuresh Date: Tue Feb 22 07:35:13 2011 -0600 OMAPFB: Adding a check for timings in set_def_mode When omapfb.mode is passed through bootargs, when omapfb is setting mode, it would check if timings passed are fine for panel attached to it. It makes use of check_timing API provided by the panel. In current code if check_timing API is not available for attached panel, OMAPFB would return -EINVAL and BPP sent via bootargs will not have any effect. In case of panels like TAAL panel, omapfb or any other driver should not be allowed to change the timings. So bpps sent via bootargs will not have an effect. In such case we can check only the x_res and y_res with the panels resolution and if they match go ahead and set the bpps. The bpp value sent via bootarg would have an effect. Signed-off-by: Mayuresh Janorkar Signed-off-by: Tomi Valkeinen commit affe360d13e54b415cde2f11cee02369b4ed54bd Author: archit taneja Date: Wed Feb 23 08:41:03 2011 +0000 OMAP: DSS2: Have separate irq handlers for DISPC and DSI Currently, the core DSS platform device requests for an irq line for OMAP2 and OMAP3. Make DISPC and DSI platform devices request for a shared IRQ line. On OMAP3, the logical OR of DSI and DISPC interrupt lines goes to the MPU. There is a register DSS_IRQSTATUS which tells if the interrupt came from DISPC or DSI. On OMAP2, there is no DSI, only DISPC interrupts goto the MPU. There is no DSS_IRQSTATUS register. Hence, it makes more sense to have separate irq handlers corresponding to the DSS sub modules instead of having a common handler. Since on OMAP3 the logical OR of the lines goes to MPU, the irq line is shared among the IRQ handlers. The hwmod irq info has been removed for DSS to DISPC and DSI for OMAP2 and OMAP3 hwmod databases. The Probes of DISPC and DSI now request for irq handlers. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 830e6384e100dc758392c41f68c807c002945928 Author: Tomi Valkeinen Date: Wed Feb 23 16:34:17 2011 +0200 MAINTAINERS: Update OMAP DSS maintainer Signed-off-by: Tomi Valkeinen commit d0030452b5057570db47e953433f689e4a5475b5 Author: Samreen Date: Thu Feb 24 06:26:40 2011 +0000 OMAP2/3/4: DSS2: Enable Display SubSystem as modules Enabling all the display interface options to be built as module And enabling all the display panels to be built as modules. Signed-off-by: Samreen Acked-by: Tony Lindgren Signed-off-by: Tomi Valkeinen commit e528e3a8b4e005e6e2c9e50fdee1ab7e84cf1e27 Author: Tomi Valkeinen Date: Thu Feb 24 13:59:13 2011 +0200 OMAP: DSS2: Clean up a switch-case Support for the display interface was checked in a separate switch-case. There's no reason for that, and this patch handles the fail code path in the same switch-case where the display initialization is done. Signed-off-by: Tomi Valkeinen commit 4e777dd765b7c10eb66532330cf3fe6ae0b477b0 Author: Tomi Valkeinen Date: Thu Feb 24 14:20:31 2011 +0200 OMAP: DSS2: FEATURES: Remove SDI from 3630 displays OMAP 3630 does not support SDI. Split omap3_dss_supported_displays into 3430 and 3630 entries, and remove the SDI from 3630 entry. Signed-off-by: Tomi Valkeinen commit f8df01f1a47ea6e503f5ba8d782fc6fb53bb40e8 Author: Tomi Valkeinen Date: Thu Feb 24 14:21:25 2011 +0200 OMAP: DSS2: FEATURES: Remove DSI & SDI from OMAP2 OMAP2 doesn't support SDI or DSI. Remove them from omap2_dss_supported_displays. Signed-off-by: Tomi Valkeinen commit 6ec549e50b192105ede7bb289a31da6f6e1a61e9 Author: Tomi Valkeinen Date: Thu Feb 24 14:18:50 2011 +0200 OMAP: DSS2: Check for SDI HW before accessing SDI registers Only OMAP 3430 hardware has SDI support. The availability of SDI HW can be found out by checking if the LCD channel supports SDI displays. This patch checks for SDI HW support before accessing SDI registers, which fixes a crash on OMAP4 when SDI SW support is compiled in. Signed-off-by: Tomi Valkeinen commit 0897cc21036c4da0337d8ebcbe7d4b7bb81cf2ca Author: Janorkar, Mayuresh Date: Thu Feb 24 03:39:17 2011 -0600 OMAP: OMAPFB: Adding help for FB_OMAP_LCD_VGA option CONFIG_FB_OMAP_LCD_VGA option is present in drivers/video/omap There is no explaination about what this flag does. Lets add information about it. FB_OMAP_LCD_VGA flag sets resolution of display to VGA (640 X 480). The default resolution of 3430 LDP is 320 X 240. Signed-off-by: Mayuresh Janorkar Signed-off-by: Tomi Valkeinen commit 4a0ab8df3e35da4d12df0631b2daae683dafe46c Author: Tomi Valkeinen Date: Thu Oct 28 15:29:33 2010 +0300 OMAP: DSS2: Remove unused list There was an unused list defined in display.c. Remove it. Signed-off-by: Tomi Valkeinen commit 4b6b7fa2d3677d1d86780c73fe2284147713e3b1 Author: Tomi Valkeinen Date: Wed Jun 2 15:09:37 2010 +0300 OMAP: DSS2: DSI: remove unused function dsi_reset_tx_fifo() was not used. Furthermore, OMAP errata states that TX FIFO flush is not functional, so the function wouldn't even have worked. Signed-off-by: Tomi Valkeinen commit fd4b34f60736a20c5acd81cbb3083a0c60ae058e Author: Semwal, Sumit Date: Tue Mar 1 02:42:13 2011 -0600 OMAP2PLUS:DSS2: add opt_clock_available in pdata Provide a function in pdata to allow dss submodules to check if a given clock is available on a platform as an optional clock. Signed-off-by: Senthilvadivu Guruswamy (based on implementation from Senthil) Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit a1a0dccaea9e036200dc0b1070af1bfae06690fb Author: Semwal, Sumit Date: Tue Mar 1 02:42:14 2011 -0600 OMAP2PLUS:DSS2: Use opt_clock_available from pdata hwmod databases provide information about which optional clocks are available for a given platform. This is available via a function pointer opt_clock_enable in pdata. Use this information during get/enable/disable/put of clocks. Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 08a0a657949e723f0cbb6a33b1c706134d5a6d78 Author: Jarkko Nikula Date: Tue Mar 1 02:40:37 2011 -0600 omapfb: Fix linker error in drivers/video/omap/lcd_2430sdp.c There is a linker error from lcd_2430sdp.c if CONFIG_TWL4030_CORE is not set. This can be triggered on OMAP2 builds when OMAP3 or OMAP4 are not set. drivers/built-in.o: In function `sdp2430_panel_disable': drivers/video/omap/lcd_2430sdp.c:123: undefined reference to `twl_i2c_write_u8' drivers/video/omap/lcd_2430sdp.c:124: undefined reference to `twl_i2c_write_u8' drivers/built-in.o: In function `sdp2430_panel_enable': drivers/video/omap/lcd_2430sdp.c:110: undefined reference to `twl_i2c_write_u8' drivers/video/omap/lcd_2430sdp.c:112: undefined reference to `twl_i2c_write_u8' Fix this by selecting the TWL4030_CORE for MACH_OMAP_2430SDP when building with CONFIG_FB_OMAP as there is no own Kconfig entry for lcd_2430 and it is compiled always when both MACH_OMAP_2430SDP and FB_OMAP are set. Signed-off-by: Jarkko Nikula Signed-off-by: Tomi Valkeinen commit 87a7484b6a9ceaa9e7a9a238154b02ed4495f26a Author: Archit Taneja Date: Wed Mar 2 11:19:50 2011 +0530 OMAP2PLUS: DSS2: FEATURES: DISPC overlay code cleanup Add dss_features and register fields to incorporate changes in DISPC pipelines between OMAP3 and OMAP4. Register fields added: FEAT_REG_HORIZONTALACCU, FEAT_REG_VERTICALACCU DSS Features added: FEAT_LINEBUFFERSPLIT, FEAT_ROWREPEATENABLE, FEAT_RESIZECONF _dispc_set_scaling() and _dispc_set_rotation_attrs() have been cleaned up. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 819d807c59af10cce1dcbb13539c2fb100953fcd Author: Archit Taneja Date: Tue Mar 1 11:54:00 2011 +0530 OMAP2PLUS: DSS2: FEATURES: Function to Provide the max fck supported The maximum supported frequency for DSS has increased from 173 to 186 Mhz on OMAP4. Introduce a dss feature function to get the max_fck to replace DISPC_MAX_FCK macro. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 88134fa138b90518819b750891ffecc13f5f4886 Author: Archit Taneja Date: Thu Jan 6 10:44:10 2011 +0530 OMAP2PLUS: DSS2: Make members of dss_clk_source generic The enum members of 'dss_clk_source' have clock source names specific to OMAP2/3. Change the names to more generic terms such that they now describe where the clocks come from and what they are used for. Also, change the enum member names to have "DSS_CLK_SRC" instead of "DSS_SRC" for more clarity. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 067a57e48e302863eb2d5ac0900ae9ae65dbc8c3 Author: Archit Taneja Date: Wed Mar 2 11:57:25 2011 +0530 OMAP2PLUS: DSS2: Use dss features to get clock source names of current OMAP Clock source names vary across OMAP2/3 and OMAP4, the clock source enum names have been made generic in the driver, but for purposes of debugging and dumping clock sources, it is better to preserve the actual TRM name of the clock. Introduce a dss feature function 'dss_feat_get_clk_source_name()' which returns a string with the TRM clock name for the current OMAP in use. The OMAP specific name is printed along the generic name within brackets. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 1bb478350670fadf708d3cbd6137c32dfbe3fd5f Author: Archit Taneja Date: Thu Feb 24 14:17:30 2011 +0530 OMAP2PLUS: DSS2: DSI: Generalize DSI PLL Clock Naming DSI PLL output clock names have been made more generic. The clock name describes what the source of the clock and what clock is used for. Some of DSI PLL parameters like dividers and DSI PLL source have also been made more generic. dsi1_pll_fclk and dsi2_pll_fclk have been changed as dsi_pll_hsdiv_dispc_clk and dsi_pll_hsdiv_dsi_clk respectively. Also, the hsdividers are now named regm_dispc and regm_dsi instead of regm3 and regm4. Functions and macros named on the basis of these clock names have also been made generic. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 42c9dee82129d965bc8ca02170150817317c0135 Author: Tomi Valkeinen Date: Wed Mar 2 12:29:27 2011 +0200 OMAP: DSS2: Remove FB_OMAP_BOOTLOADER_INIT support FB_OMAP_BOOTLOADER_INIT does not work, and it was only partially implemented for SDI. This patch removes support for FB_OMAP_BOOTLOADER_INIT to clean up the code and to remove any assumptions that FB_OMAP_BOOTLOADER_INIT would work. Proper implementation is much more complex, requiring early boot time register and clock handling to keep the DSS running. Signed-off-by: Tomi Valkeinen commit 277b2881c3c0d97e214487fbd677b0590fb4acf3 Author: Tomi Valkeinen Date: Wed Mar 2 12:32:48 2011 +0200 OMAP: DSS2: Remove pdev argument from dpi_init dpi_init() does not use the pdev argument for anything. Remove it. Signed-off-by: Tomi Valkeinen commit 587b5e8269fab583e4e9d2d6bbdc77b289ac78a7 Author: Tomi Valkeinen Date: Wed Mar 2 12:47:54 2011 +0200 OMAP: DSS2: Move DPI & SDI init into DSS plat driver DPI and SDI are different from the other interfaces as they are not hwmods and there is not platform driver for them. They could be said to be a part of DSS or DISPC modules, although it's not a clear definition. This patch moves DPI and SDI initialization into DSS platform driver, making the code more consistent: omap_dss_probe() only initializes platform drivers now. Signed-off-by: Tomi Valkeinen commit 0a5835185420160f4fe8a6e1d1e42cd7efa07dc7 Author: Tomi Valkeinen Date: Wed Mar 2 12:48:35 2011 +0200 OMAP: DSS2: Remove unneeded cpu_is_xxx checks cpu_is_omapxxx() was used previously to select the supported interfaces. Now that the interfaces are platform devices, we no longer need to do the check when registering the driver. Thus we can just remove the checks. Signed-off-by: Tomi Valkeinen commit 5ee3c1445dd89342ca8498c14afef82d0f76c794 Author: Archit Taneja Date: Wed Mar 2 12:35:53 2011 +0530 OMAP: DSS2: Functions to request/release DSI VCs Introduce functions which request and release VC's. This will be used in panel drivers in their probes. omap_dsi_request_vc() takes in the pointer to the omap_dss_device, the VC_ID parameter which goes into the header of the DSI packets, and returns a Virtual channel number (or virtual channel register set) which it can use. omap_dsi_set_vc_id() takes the omap_dss_device pointer, the Virtual Channel number and the VC_ID that needs to be set for the specifed Virtual Channel. omap_dsi_release_vc() takes the omap_dss_device pointer and the Virtual Channel number that needs to be made free. Initialisation of VC parameters is done in dsi_init(). Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit bc6d4b1d3d9b7568fe88f5bb80d0266a7ef624cc Author: Archit Taneja Date: Tue Mar 1 13:59:46 2011 +0530 OMAP: DSS2: Use request / release calls in Taal for DSI Virtual Channels. Taal driver used to take a hard coded Macro for Virtual Channel and the VC_ID. The Taal panel driver now requests for a Virtual channel through the omap_dsi_request_vc() call in taal_probe(). The channel number returned by the request_vc() call is used for sending command and data to the Panel. The DSI driver automatically configures the Virtual Channel's source to either Video Port or L4 Slave port based on what the panel driver is using it for. The driver uses omap_dsi_release_vc() to free the VC specified by the panel. taal_remove() or when a request_vc() call fails. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit f2988ab9f4a2bf5e24f37d20eab1aad6862953d3 Author: Tomi Valkeinen Date: Wed Mar 2 10:06:48 2011 +0200 HACK: OMAP: DSS2: Fix OMAP2_DSS_USE_DSI_PLL When using OMAP2_DSS_USE_DSI_PLL, which selects DSI PLL as source clock for DISPC, the DSI needs the vdds_dsi regulator. Latest regulator changes broke this, causing the the code to not acquire the regulator when using OMAP2_DSS_USE_DSI_PLL. This patch acquires the vdds_dsi regulator in dsi_pll_init(), fixing the issue. This is is just a quick hack to get the OMAP2_DSS_USE_DSI_PLL option working. There shouldn't be any other downside in this solution than some extra lines of code. OMAP2_DSS_USE_DSI_PLL is itself a big hack, and should be removed, and the feature itself should be implemented in a more sane way. However, the solution is not trivial, and people are using DSI PLL to get more exact pixel clocks, so this hack is an acceptable temporary solution for the time being. Signed-off-by: Tomi Valkeinen commit 85604b0a247615157cedfec46b9cbfde2884f80f Author: Tomi Valkeinen Date: Thu Mar 3 13:16:23 2011 +0200 HACK: OMAP: DSS2: add delay after enabling clocks On omap4 the registers may not be accessible right after enabling the clocks. At some point this will be handled by pm_runtime, but, for the time begin, adding a small delay after clk_enable() should make things work. Signed-off-by: Tomi Valkeinen commit 5c6366e14d9d4466ae34a1ccbc08dd8738909c1f Author: Murthy, Raghuveer Date: Thu Mar 3 09:27:58 2011 -0600 OMAP: DSS2: Adding dss_features for independent core clk divider In OMAP3xxx DISPC_DIVISOR register has a logical clock divisor (lcd_div) field. The lcd_div is common, for deciding the DISPC core functional clock frequency, and the final pixel clock frequency for LCD display. In OMAP4, there are 2 LCD channels, hence two divisor registers, DISPC_DIVISOR1 and DISPC_DIVISOR2. Also, there is a third register DISPC_DIVISOR. The DISPC_DIVISOR in OMAP4 is used to configure lcd_div exclusively for core functional clock configuration. For pixel clock configuration of primary and secondary LCDs, lcd_div of DISPC_DIVISOR1 and DISPC_DIVISOR2 are used respectively Signed-off-by: Archit Taneja Signed-off-by: Raghuveer Murthy Signed-off-by: Tomi Valkeinen commit ce7fa5eb1e815e79e4dd5db42d0d1f8c9d96925b Author: Murthy, Raghuveer Date: Thu Mar 3 09:27:59 2011 -0600 OMAP: DSS2: Renaming register macro DISPC_DIVISOR(ch) The OMAP4 DISPC_DIVISOR1 is backward compatible to OMAP3xxx DISPC_DIVISOR. However DISPC_DIVISOR is also provided in OMAP4, to control DISPC_CORE_CLK independent of Primary and Secondary display clocks. Renamed DISPC_DIVISOR(ch) to DISPC_DIVISORo(ch), to facilitate introduction of DISPC_DIVISOR register, which is specific for OMAP4. OMAP4 has 3 registers DISPC_DIVISOR, DISPC_DIVISOR1 and DISPC_DIVISOR2. Also updated, all the usages of DISPC_DIVISOR(ch) to DISPC_DIVISORo(ch). Use DISPC_DIVISORo(ch) when DISPC_DIVISOR1 or DISPC_DIVISOR2 has to be configured OMAP4 TRM uses DISPC_DIVISORo generically to refer to DISPC_DIVISOR1 and DISPC_DIVISOR2 Signed-off-by: Raghuveer Murthy Signed-off-by: Tomi Valkeinen commit 0cf35df353e8c36d4be0da2d7483896de599f397 Author: Murthy, Raghuveer Date: Thu Mar 3 09:28:00 2011 -0600 OMAP4: DSS2: Using dss_features to set independent core clock divider Using dss_features to select independent core clock divider and setting it. Added the register used, to DISPC context save and restore group ----------------------------------------------------------------------- In OMAP4, the minimum DISPC_CORE_CLK required can be expressed as: DISPC_CORE_CLK >= max(PCLK1*HSCALE1, PCLK2*HSCALE2, ...) Where PCLKi is the pixel clock generated by MANAGERi and HSCALEi is the maximum horizontal downscaling done through MANAGERi Based on the usecase, core clk can be increased or decreased at runtime to save power. Such mechanism are not yet implemented. Hence, we set the core clock divisor to 1, to support maximum range of resolutions ------------------------------------------------------------------------ Signed-off-by: Raghuveer Murthy Signed-off-by: Tomi Valkeinen commit b9cb0984a6e6a09a4bcdc11ebc9f0eb71e5b6c85 Author: Tomi Valkeinen Date: Fri Mar 4 18:19:54 2011 +0200 OMAP: DSS2: fix omap_dispc_register_isr() fail path Fix handling of error in omap_dispc_register_isr() in case there are no free isr slots available. Reported-by: Ben Tucker Signed-off-by: Tomi Valkeinen commit 7654b4d3f4d2e2bc5b60990fc121891b95b33be5 Author: Steve Sakoman Date: Sat Mar 5 07:58:38 2011 -0600 OMAP: DSS2: Add support for LG Philips LB035Q02 panel This patch adds support for the Gumstix Palo35 expansion board which utilizes the 320 x 240 pixel LG.Philips LB035Q02 LCD Panel Signed-off-by: Steve Sakoman Signed-off-by: Tomi Valkeinen commit 7b12d7b66bac4ff51aeea0029734b7a921cbe817 Author: Steve Sakoman Date: Sat Mar 5 07:58:39 2011 -0600 OMAP: DSS2: Add DSS2 support for Overo This patch adds DSS2 support for DVI, S-video, the 480x272 Samsung LTE430WQ-F0C panel, and the 320x240 LG.Philips LB035Q02 panel. Signed-off-by: Steve Sakoman Signed-off-by: Tomi Valkeinen commit 66534e8e936a0b926863df90054dc59826d70528 Author: Taneja, Archit Date: Tue Mar 8 05:50:34 2011 -0600 OMAP2PLUS: DSS2: Cleanup clock source related code Clean up some of the DSS functions which select/get clock sources, use switch to select the clock source members since more clock sources will be introduced later on. Remove the use of macro CONFIG_OMAP2_DSS_DSI in dispc_fclk_rate, use a dummy inline for function for dsi_get_pll_hsdiv_dispc_rate() instead for code clarity. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit ea75159ee6f00bd809f57a58e5505dc362382cc8 Author: Taneja, Archit Date: Tue Mar 8 05:50:35 2011 -0600 OMAP4: DSS2: Clock source changes for OMAP4 On OMAP3, the pixel clock for the LCD manager was derived through DISPC_FCLK as: Lcd Pixel clock = DISPC_FCLK / lcd / pcd Where lcd and pcd are divisors in the DISPC_DIVISOR register. On OMAP4, the pixel clocks for LCD1 and LCD2 managers are derived from 2 new clocks named LCD1_CLK and LCD2_CLK. The pixel clocks are calculated as: Lcd_o Pixel clock = LCDo_CLK / lcdo /pcdo, o = 1, 2 Where lcdo and pcdo registers are divisors in DISPC_DIVISORo registers. LCD1_CLK and LCD2_CLK can have DSS_FCLK, and the M4 divider clocks of DSI1 PLL and DSI2 PLL as clock sources respectively. Introduce functions to select and get the clock source for these new clocks. Modify DISPC functions get the correct lck and pck rates based on the clock source of these clocks. Since OMAP2/3 don't have these clocks, force OMAP2/3 to always have the LCD_CLK source as DSS_CLK_SRC_FCK by introducing a dss feature. Introduce clock source names for OMAP4 and some register field changes in DSS_CTRL on OMAP4. Currently, LCD2_CLK can only have DSS_FCLK as its clock source as DSI2 PLL functionality hasn't been introduced yet. BUG for now if DSI2 PLL is selected as clock. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit ca0a6a6473f69f1773c97755840587262d841883 Author: Steve Sakoman Date: Sat Mar 5 10:12:26 2011 -0600 omap: overo: Add regulator for ads7846 The ads7846 driver now requires a regulator. This patch adds the necessary regulator to the overo board file. Without it, the following error occurs (and the touchscreen will not function): ads7846 spi1.0: unable to get regulator: -19 Signed-off-by: Steve Sakoman Acked-by: Tony Lindgren Signed-off-by: Tomi Valkeinen commit 7c94f68d7b490c7787c6b97c5b2d6d56d57b071c Author: Steve Sakoman Date: Wed Mar 9 18:08:05 2011 -0600 OMAP: Add gpio-leds support for Overo This patch adds support for the standard LEDs on the Overo COM and expansion boards Signed-off-by: Steve Sakoman Acked-by: Tony Lindgren Signed-off-by: Tomi Valkeinen commit cce18a947967ed028e5301bce84cbaff395489a6 Author: Steve Sakoman Date: Wed Mar 9 18:08:06 2011 -0600 OMAP: Add gpio-keys support for Overo This patch adds support for the standard push buttons available on Overo expansion boards. Signed-off-by: Steve Sakoman Acked-by: Tony Lindgren Signed-off-by: Tomi Valkeinen commit 15f13e23e818c9de81003f37430eb648abae9107 Author: Vishwanath BS Date: Sat Mar 5 15:57:22 2011 +0530 OMAP3+: OPP: Replace voltage values with Macros Since all voltage data is now centralized in oppxxx_data.c, we can replace the values in the opp table with the macros used for voltage values. This will avoid opp table and voltage layer having conflicting values. Signed-off-by: Vishwanath BS Signed-off-by: Nishanth Menon Signed-off-by: Kevin Hilman commit 273032f7822fe4fb0b585219385a744732e86707 Author: Shweta Gulati Date: Sat Mar 5 15:21:21 2011 +0530 OMAP4: Enable 800 MHz and 1 GHz MPU-OPP Almost all OMAP4 boards support OPP 800 MHz and OPP 1 GHz. Enable them in OPP Table. For small minority of boards which use OMAP4430-800 MHz device OPP 1GHz is not supported, OPP 1GHz should be disabled from board file. Signed-off-by: Shweta Gulati Acked-by: Nishanth Menon Signed-off-by: Kevin Hilman commit d9a2012d32922ef235106469caff3e79dd9e6f09 Author: Shweta Gulati Date: Thu Mar 10 10:23:49 2011 +0530 OMAP4: Update Voltage Rail Values for MPU, IVA and CORE Update MPU, IVA and CORE voltage Rail values obtained from OMAP4430 Data Manual Operating Condition Addendum_v0.4. Tested on OMAP4430 SDP Board. Signed-off-by: Shweta Gulati Acked-by: Nishanth Menon Signed-off-by: Kevin Hilman commit a271e58cfbe345f71d39ebbae063ad2d68892470 Author: Shweta Gulati Date: Sat Mar 5 15:22:26 2011 +0530 OMAP4: Add IVA OPP enteries. This Patch adds OPP enteries for IVA in OMAP4 OPP Table Tested on OMAP4430 SDP Board. Signed-off-by: Shweta Gulati Acked-by: Nishanth Menon Signed-off-by: Kevin Hilman commit 5e7c58dc8d9b7f31d418cf98c6a8cad84b86f510 Author: Jean Pihet Date: Thu Mar 3 11:25:43 2011 +0100 perf: add OMAP support for the new power events The patch adds the new power management trace points for the OMAP architecture. The trace points are for: - default idle handler. Since the cpuidle framework is instrumented in the generic way there is no need to add trace points in the OMAP specific cpuidle handler; - SoC clocks changes (enable, disable, set_rate), - power domain states: the desired target state and -if different- the actually hit state. Because of the generic nature of the changes, OMAP3 and OMAP4 are supported. Tested on OMAP3 with suspend/resume, cpuidle, basic DVFS. Signed-off-by: Jean Pihet Acked-by: Paul Walmsley Signed-off-by: Kevin Hilman commit e647198069b43fc5494b34c9a81c47566a764eb4 Author: Michael Williamson Date: Tue Feb 22 13:36:56 2011 +0000 davinci: remove unused DA830_edma_ch enum The DA830_edma_ch enum set is not used. Remove it. Signed-off-by: Michael Williamson Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit e38c2b22264319ac0ccc63d0a2366f8b6c33e32e Author: Michael Williamson Date: Tue Feb 22 13:36:57 2011 +0000 davinci: da8xx: clean up magic numbers in devices-da8xx.c Extract magic numbers from DMA resource initializers to #defines. Signed-off-by: Michael Williamson Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 4918b40dc8b0e3addf3178f2dded99e149f5ad31 Author: Michael Williamson Date: Tue Feb 22 13:36:59 2011 +0000 davinci: da830: fix driver name for spi clocks The spi driver name called out for the da830 spi clock list is not correct, fix it. Signed-off-by: Michael Williamson Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 12d35cf374a2ca116481d2bc2dcf6f89854646dd Author: Michael Williamson Date: Tue Feb 22 13:37:00 2011 +0000 davinci: da850: add spi device clock definitions Add spi clock information for da850. Signed-off-by: Michael Williamson Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 54ce6883d29630ff334bee4256a25e3f8719a181 Author: Michael Williamson <[michael.williamson@criticallink.com]> Date: Thu Feb 24 10:18:28 2011 +0530 davinci: da8xx: add spi resources and registration routine Add IO resource structures, platform data, and a registration routine in order to support spi device on DA850/OMAP-L138/AM18x and DA830/OMAP-L137/AM17x platforms. Signed-off-by: Michael Williamson Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit dd561c6a77edd5a106484901d8a5d3d5eb4a54b5 Author: Michael Williamson <[michael.williamson@criticallink.com]> Date: Thu Feb 24 10:22:47 2011 +0530 davinci: add spi devices support for MityDSP-L138/MityARM-1808 platform This patch adds support for accessing the on board SPI NOR FLASH device for MityDSP-L138 and MityARM-1808 SoMs. Signed-off-by: Michael Williamson Tested-by: Michael Williamson Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit fdce5568066e1173c9323f021c7ade6859b8234d Author: Sekhar Nori Date: Thu Feb 24 10:39:27 2011 +0530 davinci: add spi devices support for da850/omap-l138/am18x evm This patch adds the on-board SPI flash device to the DA850/OMAP-L138/AM18x EVM. It also registers the SPI flash device to the MTD subsystem. Based on SPI flash device support for MityDSP-L138F platform. Signed-off-by: Sekhar Nori [michael.williamson@criticallink.com: moved da850_evm_spi1_pdata to devices-da8xx.c] [michael.williamson@criticallink.com: moved da850evm_init_spi1 to devices-da8xx.c] Signed-off-by: Michael Williamson Signed-off-by: Kevin Hilman commit 16a3c8320a19467e26f7194dc2e21c63635ee157 Author: Sekhar Nori Date: Thu Feb 24 10:53:27 2011 +0530 davinci: add spi devices support for da830/omap-l137/am17x evm This patch adds the on-board SPI flash device to the DA830/OMAP-L137/AM17x EVM. It also registers the SPI flash device to the MTD subsystem. Based on SPI flash device support for MityDSP-L138F platform. Signed-off-by: Sekhar Nori [michael.williamson@criticallink.com: moved da830evm_spi0_pdata to devices-da8xx.c] [michael.williamson@criticallink.com: moved da830evm_init_spi0 to devices-da8xx.c] Signed-off-by: Michael Williamson Signed-off-by: Kevin Hilman commit b688c2fba51615b9746b1357925e18c85c57abd5 Author: Sergei Shtylyov <[sshtylyov@ru.mvista.com]> Date: Fri Feb 25 12:26:36 2011 +0530 davinci: DA850 EVM: kill useless variable Commit 75e2ea643fe43d5aa836475acee5bd97cd9ea4bf (davinci: DA850/OMAP-L138 EVM expander setup and UI card detection) introduced a useless variable: it's always set to 1 before it's checked in da850_evm_setup_nor_nand()... Signed-off-by: Sergei Shtylyov Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 9a9fb12a4832bdf22751e21df298ef3559643b43 Author: Subhasish Ghosh Date: Mon Mar 7 14:06:57 2011 +0000 davinci: macro rename DA8XX_LPSC0_DMAX to DA8XX_LPSC0_PRUSS. DMAX is an internal name for the module which is known as PRUSS in TI public documentation. This patch just gets the code in sync with TI documentation. Signed-off-by: Subhasish Ghosh Acked-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 029268e4c124a38b11ae965849ea2dfef724a568 Author: Tony Lindgren Date: Fri Mar 11 11:32:25 2011 -0800 omap2+: Add separate list for dynamic pads to mux This avoids going through the list unnecessarily when idling devices for runtime PM. Based on an earlier patch by sricharan . Signed-off-by: sricharan Signed-off-by: Tony Lindgren commit 86c79bf45f380c6efd907e95f993146b2b975232 Author: R Sricharan Date: Fri Mar 11 11:32:25 2011 -0800 omap2+: mux: Remove the use of IDLE flag Currently OMAP_DEVICE_PAD_IDLE flag is used to mux pins dynamically. This can be simplified by using the enabled state variable of each pad. This also fixes the issue of the static pads not getting muxed after idling and disable/enable state transitions. Signed-off-by: sricharan Signed-off-by: Tony Lindgren commit 8aee6039465c9887af6a4babfa5b52f8bc96b43d Author: Tony Lindgren Date: Fri Mar 11 11:32:26 2011 -0800 omap2+: mux: Add macro for configuring static with omap_hwmod_mux_init Add macro for defining static pins in the board file. We can now start implementing pin multiplexing in the platform init code for devices that call omap_hwmod_mux_init. Currently that is only implemented for serial.c. Signed-off-by: Tony Lindgren commit dae335265561bf6ade66be494888a24b6419e345 Author: R Sricharan Date: Fri Mar 11 06:04:44 2011 +0000 omap4: board-4430sdp: Initialise the serial pads Use the mux framework to initialise the serial pads. Signed-off-by: sricharan Signed-off-by: Tony Lindgren commit 626dda8a4e17bb2b0f16dd8db5173f20f48d2d22 Author: R Sricharan Date: Fri Mar 11 06:04:45 2011 +0000 omap3: board-3430sdp: Initialise the serial pads Use the mux framework to initialise the serial pads. Signed-off-by: sricharan Signed-off-by: Tony Lindgren commit 573efc2babf76422ebc5b373562a4c40d715b88e Author: R Sricharan Date: Fri Mar 11 06:04:46 2011 +0000 omap4: board-omap4panda: Initialise the serial pads Use the mux framework to initialise the serial pads. Signed-off-by: sricharan Signed-off-by: Tony Lindgren commit c7ecea24e26037fdfe9cbe83c9821689336f70d5 Author: Tony Lindgren Date: Fri Mar 11 11:39:51 2011 -0800 omap2+: mux: Fix compile when CONFIG_OMAP_MUX is not selected Fix compile when CONFIG_OMAP_MUX is not selected Signed-off-by: Tony Lindgren commit 2e12978a9f7a7abd54e8eb9ce70a7718767b8b2c Author: Lai Jiangshan Date: Wed Dec 22 14:18:50 2010 +0800 futex,plist: Pass the real head of the priority list to plist_del() Some plist_del()s in kernel/futex.c are passed a faked head of the priority list. It does not fail because the current code does not require the real head in plist_del(). The current code of plist_del() just uses the head for checking, so it will not cause a bad result even when we use a faked head. But it is undocumented usage: /** * plist_del - Remove a @node from plist. * * @node: &struct plist_node pointer - entry to be removed * @head: &struct plist_head pointer - list head */ The document says that the @head is the "list head" head of the priority list. In futex code, several places use "plist_del(&q->list, &q->list.plist);", they pass a fake head. We need to fix them all. Thanks to Darren Hart for many suggestions. Acked-by: Darren Hart Signed-off-by: Lai Jiangshan LKML-Reference: <4D11984A.5030203@cn.fujitsu.com> Signed-off-by: Steven Rostedt commit 017f2b239dabb2740b91df162e004371b861f371 Author: Lai Jiangshan Date: Tue Dec 21 17:55:10 2010 +0800 futex,plist: Remove debug lock assignment from plist_node The original code uses &plist_node->plist as the fake head of the priority list for plist_del(), these debug locks in the fake head are needed for CONFIG_DEBUG_PI_LIST. But now we always pass the real head to plist_del(), the debug locks in plist_node will not be used, so we remove these assignments. Acked-by: Darren Hart Signed-off-by: Lai Jiangshan LKML-Reference: <4D10797E.7040803@cn.fujitsu.com> Signed-off-by: Steven Rostedt commit bf6a9b8336ba12672755c2ae898b0abe42c7a5ac Author: Lai Jiangshan Date: Tue Dec 21 17:55:14 2010 +0800 plist: Shrink struct plist_head struct plist_head is used in struct task_struct as well as struct rtmutex. If we can make it smaller, it will also make these structures smaller as well. The field prio_list in struct plist_head is seldom used and we can get its information from the plist_nodes. Removing this field will decrease the size of plist_head by half. Signed-off-by: Lai Jiangshan LKML-Reference: <4D107982.9090700@cn.fujitsu.com> Signed-off-by: Steven Rostedt commit 6d55da53db3d9b911f69f2ce1e5fb8943eafe057 Author: Lai Jiangshan Date: Tue Dec 21 17:55:18 2010 +0800 plist: Add priority list test Add test code for checking plist when the kernel is booting. Signed-off-by: Lai Jiangshan LKML-Reference: <4D107986.1010302@cn.fujitsu.com> Signed-off-by: Steven Rostedt commit 0dfeefbc93e38c3a9bd6d4e579cc5a76d3f13dc2 Author: Hubert Feurstein Date: Thu Mar 10 10:06:37 2011 +0100 ehci-atmel: fix section mismatch warning Fix the following section mismatch warning: WARNING: drivers/usb/built-in.o(.data+0x74c): Section mismatch in reference from the variable ehci_atmel_driver to the function .init.text:ehci_atmel_drv_probe() The variable ehci_atmel_driver references the function __init ehci_atmel_drv_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Hubert Feurstein Signed-off-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman commit 752d57a8b7b97423bffa3452638aa0fd3c3bb9d1 Author: Paul Bolle Date: Fri Mar 11 18:03:52 2011 +0100 USB: Only treat lasting over-current conditions as errors On a laptop I see these errors on (most) resumes: hub 3-0:1.0: over-current change on port 1 hub 3-0:1.0: over-current change on port 2 Since over-current conditions can disappear quite quickly it's better to downgrade that message to debug level, recheck for an over-current condition a little later and only print and over-current condition error if that condition (still) exists when it's rechecked. Add similar logic to hub over-current changes. (That code is untested, as those changes do not occur on this laptop.) Signed-off-by: Paul Bolle Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit d0781383038e983a63843a9a6a067ed781db89c1 Author: wangyanqing Date: Fri Mar 11 06:24:38 2011 -0800 USB: serial: ch341: add new id I picked up a new DAK-780EX(professional digitl reverb/mix system), which use CH341T chipset to communication with computer on 3/2011 and the CH341T's vendor code is 1a86 Looking up the CH341T's vendor and product id's I see: 1a86 QinHeng Electronics 5523 CH341 in serial mode, usb to serial port converter CH341T,CH341 are the products of the same company, maybe have some common hardware, and I test the ch341.c works well with CH341T Cc: Linus Torvalds Cc: stable Signed-off-by: Greg Kroah-Hartman commit ee398ba97dd76ed53bed548dec648d918af4004c Author: Benoit Goby Date: Wed Mar 9 16:28:54 2011 -0800 usb: otg: Add ulpi viewport access ops Add generic access ops for controllers with a ulpi viewport register (e.g. Chipidea/ARC based controllers). Signed-off-by: Benoit Goby Signed-off-by: Greg Kroah-Hartman commit 91525d084e8f078330c949362f8084b06e69fd41 Author: Benoit Goby Date: Wed Mar 9 16:28:55 2011 -0800 ARM: tegra: Add support for Tegra USB PHYs Interface used by Tegra's gadget driver and ehci driver to power on and configure the USB PHYs. Signed-off-by: Benoit Goby Signed-off-by: Greg Kroah-Hartman commit 79ad3b5add4a683af02d1b51ccb699d1b01f1fbf Author: Benoit Goby Date: Wed Mar 9 16:28:56 2011 -0800 usb: host: Add EHCI driver for NVIDIA Tegra SoCs The Tegra 2 SoC has 3 EHCI compatible USB controllers. This patch adds the necessary glue to allow the ehci-hcd driver to work on Tegra 2 SoCs. The platform data is used to configure board-specific phy settings and to configure the operating mode, as one of the ports may be used as a otg port. For additional power saving, the driver supports powering down the phy on bus suspend when it is used, for example, to connect an internal device that use an out-of-band remote wakeup mechanism (e.g. a gpio). Signed-off-by: Benoit Goby Signed-off-by: Greg Kroah-Hartman commit fbf9865c6d96f4a131092d2018056e86113e5cea Author: Robert Morell Date: Wed Mar 9 16:28:57 2011 -0800 USB: ehci: tegra: Align DMA transfers to 32 bytes The Tegra2 USB controller doesn't properly deal with misaligned DMA buffers, causing corruption. This is especially prevalent with USB network adapters, where skbuff alignment is often in the middle of a 4-byte dword. To avoid this, allocate a temporary buffer for the DMA if the provided buffer isn't sufficiently aligned. Signed-off-by: Robert Morell Signed-off-by: Benoit Goby Signed-off-by: Greg Kroah-Hartman commit f8bfff8e4c3c3d447fe12e3c0e3a36f3bdd891b5 Author: Sangbeom Kim Date: Sat Mar 12 08:02:07 2011 +0900 ARM: S5P: HRT support This patch adds support HR-Timer(High Resolution Timer) and dynamic tick system for S5P SoCs. There are many clock sources for HR-Timer on S5P SoCs. The PWM timer, RTC, System Timer, and MCT can be used for clock source. This patch can only support PWM timer for clock source of S5P64X0 and S5PV210. Signed-off-by: Sangbeom Kim Signed-off-by: Kukjin Kim commit 20780fcc4091897797979985868b1572dc7d78d9 Author: Sangbeom Kim Date: Sat Mar 12 08:02:12 2011 +0900 ARM: S5P: Update machine of S5P64X0 and S5PV210 for HRT This patch adds support HRT for machines of S5P64X0 and S5PV210. Basically, PWM Timer3 is used for clockevent and PWM Timer4 is used for clocksource. Since PWM Timer3 is used for other purpose, PWM Timer2 is used on SMDKV210. Signed-off-by: Sangbeom Kim Signed-off-by: Kukjin Kim commit 9e65bbf21371ea6705acd88229c8a7439f46e25e Author: Sangbeom Kim Date: Sat Mar 12 08:05:19 2011 +0900 ARM: S5P: Update defconfig for HRT support This patch updates s5pv210_defconfig and s5p64x0_defconfig for HRT support and CONFIG_S5P_HRT is used for its configuration. Signed-off-by: Sangbeom Kim Signed-off-by: Kukjin Kim commit 604eefeb2308cda72325fd8754aecb55075ae866 Author: Sylwester Nawrocki Date: Sat Mar 12 08:58:01 2011 +0900 ARM: S5P: Add platform definitions for FIMC3 Add support for fourth FIMC platform device definition and define resources for FIMC modules on EXYNOS4 machines. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park Signed-off-by: Marek Szyprowski Signed-off-by: Kukjin Kim commit b77ca655f343bf85578b24b1a3edfbc08336544c Author: Jaecheol Lee Date: Thu Mar 10 13:21:51 2011 +0900 ARM: EXYNOS4: Add PMU and CMU Registers for PM This patch adds definitions of PMU and CMU registers for EXYNOS4 PM. Signed-off-by: Jaecheol Lee Signed-off-by: Kukjin Kim commit 1663895cb434b586d022d6414f03316469cf284d Author: Jaecheol Lee Date: Thu Mar 10 13:33:59 2011 +0900 ARM: EXYNOS4: Suspend to RAM Support This patch adds support suspend to ram for EXYNOS4210. As a note, this includes function of outer cache flush because it is used before entering PM. Signed-off-by: Jaecheol Lee Signed-off-by: Kukjin Kim commit 30fe76437bc2463b25e9a64ff1b28f293e3f3413 Author: Jaecheol Lee Date: Wed Mar 9 08:22:31 2011 +0900 ARM: EXYNOS4: Update HRT for supporting PM This patch updates HRT driver for supporting PM. The resume function of PWM4 timer which is used clocksource is needed when kernel is resuming for restarting. Signed-off-by: Jaecheol Lee Signed-off-by: Kukjin Kim commit b203bd3f6b9c3db3b1979c2ff79bb2b9be8f03a3 Author: Ira Snyder Date: Thu Mar 3 07:54:53 2011 +0000 dmatest: fix automatic buffer unmap type The dmatest code relies on the DMAEngine API to automatically call dma_unmap_single() on src buffers. The flags it passes are incorrect, fix them. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit e8bd84df27c5921a9ac866aef06e044590ac118f Author: Ira Snyder Date: Thu Mar 3 07:54:54 2011 +0000 fsldma: move related helper functions near each other This is a purely cosmetic cleanup. It is nice to have related functions right next to each other in the code. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit b158471ef63bf399165db96e945a828096502d9d Author: Ira Snyder Date: Thu Mar 3 07:54:55 2011 +0000 fsldma: use channel name in printk output This makes debugging the driver much easier when multiple channels are running concurrently. In addition, you can see how much descriptor memory each channel has allocated via the dmapool API in sysfs. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit 0ab09c36818ca88f65c88f4d8c6d067fbf10578d Author: Ira Snyder Date: Thu Mar 3 07:54:56 2011 +0000 fsldma: improve link descriptor debugging This adds better tracking to link descriptor allocations, callbacks, and frees. This makes it much easier to track errors with link descriptors. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit 31f4306c83a2daa3e348056b720de511bffe5a9b Author: Ira Snyder Date: Thu Mar 3 07:54:57 2011 +0000 fsldma: minor codingstyle and consistency fixes This fixes some minor violations of the coding style. It also changes the style of the device_prep_dma_*() function definitions so they are identical. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit f04cd40701deace2efb9edd7120e59366bda2118 Author: Ira Snyder Date: Thu Mar 3 07:54:58 2011 +0000 fsldma: fix controller lockups Enabling poisoning in the dmapool API quickly showed that the DMA controller was fetching descriptors that should not have been in use. This has caused intermittent controller lockups during testing. I have been unable to figure out the exact set of conditions which cause this to happen. However, I believe it is related to the driver using the hardware registers to track whether the controller is busy or not. The code can incorrectly decide that the hardware is idle due to lag between register writes and the hardware actually becoming busy. To fix this, the driver has been reworked to explicitly track the state of the hardware, rather than try to guess what it is doing based on the register values. This has passed dmatest with 10 threads per channel, 100000 iterations per thread several times without error. Previously, this would fail within a few seconds. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit 9c4d1e7bdeb1ed4dc0c3341d40662a6fbc5f2dc2 Author: Ira Snyder Date: Thu Mar 3 07:54:59 2011 +0000 fsldma: support async_tx dependencies and automatic unmapping Previous to this patch, the dma_run_dependencies() function has been called while holding desc_lock. This function can call tx_submit() for other descriptors, which may try to re-grab the lock. Avoid this by moving the descriptors to be cleaned up to a temporary list, and dropping the lock before cleanup. At the same time, add support for automatic unmapping of src and dst buffers, as offered by the DMAEngine API. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit dc8d4091575ba81e886ebcdfd1e559c981f82f86 Author: Ira Snyder Date: Thu Mar 3 07:55:00 2011 +0000 fsldma: reduce locking during descriptor cleanup This merges the fsl_chan_ld_cleanup() function into the dma_do_tasklet() function to reduce locking overhead. In the best case, we will be able to keep the DMA controller busy while we are freeing used descriptors. In all cases, the spinlock is grabbed two times fewer than before on each transaction. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit a00ae34ac8bc8a5897d9b6b9b685c39b955b14b9 Author: Ira Snyder Date: Thu Mar 3 07:55:01 2011 +0000 fsldma: make halt behave nicely on all supported controllers The original dma_halt() function set the CA (channel abort) bit on both the 83xx and 85xx controllers. This is incorrect on the 83xx, where this bit means TEM (transfer error mask) instead. The 83xx doesn't support channel abort, so we only do this operation on 85xx. Signed-off-by: Ira W. Snyder Signed-off-by: Dan Williams commit db7c7c0aeef51dba12d877875b8deb78d9886647 Author: Sarah Sharp Date: Wed Dec 29 22:03:07 2010 -0800 usb: Always return 0 or -EBUSY to the runtime PM core. The PM core reacts badly when the return code from usb_runtime_suspend() is not 0, -EAGAIN, or -EBUSY. The PM core regards this as a fatal error, and refuses to run anymore PM helper functions. In particular, usbfs_open() and other usbfs functions will fail because the PM core will return an error code when usb_autoresume_device() is called. This causes libusb and/or lsusb to either hang or segfault. If a USB device cannot suspend for some reason (e.g. a hub doesn't report it has remote wakeup capabilities), we still want lsusb and other userspace programs to work. So return -EBUSY, which will fill people's log files with failed tries, but will ensure userspace still works. Signed-off-by: Sarah Sharp commit 0b8ca72a23df365a413e03f991bc6b8179dee13f Author: Sarah Sharp Date: Thu Oct 21 12:22:28 2010 -0700 xhci: Remove old no-op test. The test of placing a number of command no-ops on the command ring and counting the number of no-op events that were generated was only used during the initial xHCI driver bring up. This test is no longer used, so delete it. Signed-off-by: Sarah Sharp commit da13051cc756756f10b2da8ea97b05bdf84bd7bb Author: Sarah Sharp Date: Tue Nov 30 15:55:51 2010 -0800 USB: Remove bitmap #define from hcd.h Using a #define to redefine a common variable name is a bad thing, especially when the #define is in a header. include/linux/usb/hcd.h redefined bitmap to DeviceRemovable to avoid typing a long field in the hub descriptor. This has unintended side effects for files like drivers/usb/core/devio.c that include that file, since another header included after hcd.h has different variables named bitmap. Remove the bitmap #define and replace instances of it in the host controller code. Cleanup the spaces around function calls and square brackets while we're at it. Signed-off-by: Sarah Sharp Cc: Nobuhiro Iwamatsu Cc: Inaky Perez-Gonzalez Cc: Tony Olech Cc: "Robert P. J. Day" Cc: Max Vozeler Cc: Tejun Heo Cc: Yoshihiro Shimoda Cc: Rodolfo Giometti Cc: Mike Frysinger Cc: Anton Vorontsov Cc: Sebastian Siewior Cc: Lothar Wassmann Cc: Olav Kongas Cc: Martin Fuzzey Cc: Alan Stern Cc: David Brownell commit abc4f9b099e9e7db3f6f945210aee125571c236d Author: Sarah Sharp Date: Wed Dec 1 09:22:05 2010 -0800 USB: Fix usb_add_hcd() checkpatch errors. The irq enabling code is going to be refactored into a new function, so clean up some checkpatch errors before moving it. Signed-off-by: Sarah Sharp commit 1d5810b6923c76fc95e52d9d3491c91824c2f075 Author: Sarah Sharp Date: Thu Dec 9 14:52:41 2010 -0800 xhci: Rework port suspend structures for limited ports. The USB core only allows up to 31 (USB_MAXCHILDREN) ports under a roothub. The xHCI driver keeps track of which ports are suspended, which ports have a suspend change bit set, and what time the port will be done resuming. It keeps track of the first two by setting a bit in a u32 variable, suspended_ports or port_c_suspend. The xHCI driver currently assumes we can have up to 256 ports under a roothub, so it allocates an array of 8 u32 variables for both suspended_ports and port_c_suspend. It also allocates a 256-element array to keep track of when the ports will be done resuming. Since we can only have 31 roothub ports, we only need to use one u32 for each of the suspend state and change variables. We simplify the bit math that's trying to index into those arrays and set the correct bit, if we assume wIndex never exceeds 30. (wIndex is zero-based after it's decremented from the value passed in from the USB core.) Finally, we change the resume_done array to only hold 31 elements. Signed-off-by: Sarah Sharp Cc: Andiry Xu commit 518e848ea8e2932ce18ce2daef8ad5f55a145f27 Author: Sarah Sharp Date: Wed Dec 15 11:56:29 2010 -0800 xhci: Rename variables and reduce register reads. The xhci_bus_suspend() and xhci_bus_resume() functions are a bit hard to read, because they have an ambiguously named variable "port". Rename it to "port_index". Introduce a new temporary variable, "max_ports" that holds the maximum number of roothub ports the host controller supports. This will reduce the number of register reads, and make it easy to change the maximum number of ports when there are two roothubs. Signed-off-by: Sarah Sharp commit 019a35f1142b1cd153c8a38338515e633ec0cf77 Author: Andiry Xu Date: Thu Jan 6 15:43:17 2011 +0800 xHCI: Remove redundant variable in xhci_resume() Set hcd->state = HC_STATE_SUSPENDED if there is a power loss during system resume or the system is hibernated, otherwise leave it be. The variable old_state is redundant and made an unreachable code path, so remove it. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit bdfca5025a159c8bb966e3b87b0c084dd1f831a9 Author: Andiry Xu Date: Thu Jan 6 15:43:39 2011 +0800 xHCI: prolong host controller halt time limit xHCI 1.0 spec specifies the xHC shall halt within 16ms after software clears Run/Stop bit. In xHCI 0.96 spec the time limit is 16 microframes (2ms), it's too short and often cause dmesg shows "Host controller not halted, aborting reset." message when rmmod xhci-hcd. Modify the time limit to comply with xHCI 1.0 specification and prevents the warning message showing when remove xhci-hcd. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit ac04e6ff3e32699920ae75b22e2bec7f7c631434 Author: Sarah Sharp Date: Fri Mar 11 08:47:33 2011 -0800 xhci: Remove references to HC_STATE_HALT. The xHCI driver doesn't ever test hcd->state for HC_STATE_HALT. The USB core recently stopped using it internally, so there's no point in setting it in the driver. We still need to set HC_STATE_RUNNING in order to make it past the USB core's hcd->state check in register_roothub(). Signed-off-by: Sarah Sharp commit 4814030ce11f08350b7a91573487ad4b600dae34 Author: Sarah Sharp Date: Fri Mar 11 13:46:17 2011 -0800 usb: Initialize hcd->state roothubs. We would like to allow host controller drivers to stop using hcd->state. Unfortunately, some host controller drivers use hcd->state as an implicit way of telling the core that a controller has died. The roothub registration functions must assume the host died if hcd->state equals HC_STATE_HALT. To facilitate drivers that don't want to set hcd->state to HC_STATE_RUNNING in their initialization routines, we set the state to running before calling the host controller's start function. Signed-off-by: Sarah Sharp commit ad73dff32e04cad1ff2af89512bf489224b503cc Author: Sarah Sharp Date: Fri Mar 11 13:49:55 2011 -0800 xhci: Remove references to HC_STATE_RUNNING. The USB core will set hcd->state to HC_STATE_RUNNING before calling xhci_run, so there's no point in setting it twice. The USB core also doesn't pay attention to HC_STATE_RUNNING on the resume path anymore; it uses HCD_RH_RUNNING(), which looks at hcd->flags & (1U << HCD_FLAG_RH_RUNNING. Therefore, it's safe to remove the state set in xhci_bus_resume(). Signed-off-by: Sarah Sharp commit dbe79bbe9dcb22cb3651c46f18943477141ca452 Author: John Youn Date: Mon Sep 17 00:00:00 2001 -0700 USB 3.0 Hub Changes Update the USB core to deal with USB 3.0 hubs. These hubs have a slightly different hub descriptor than USB 2.0 hubs, with a fixed (rather than variable length) size. Change the USB core's hub descriptor to have a union for the last fields that differ. Change the host controller drivers that access those last fields (DeviceRemovable and PortPowerCtrlMask) to use the union. Translate the new version of the hub port status field into the old version that khubd understands. (Note: we need to fix it to translate the roothub's port status once we stop converting it to USB 2.0 hub status internally.) Add new code to handle link state change status. Send out new control messages that are needed for USB 3.0 hubs, like Set Hub Depth. This patch is a modified version of the original patch submitted by John Youn. It's updated to reflect the removal of the "bitmap" #define, and change the hub descriptor accesses of a couple new host controller drivers. Signed-off-by: John Youn Signed-off-by: Sarah Sharp Cc: Nobuhiro Iwamatsu Cc: Inaky Perez-Gonzalez Cc: Tony Olech Cc: "Robert P. J. Day" Cc: Max Vozeler Cc: Tejun Heo Cc: Yoshihiro Shimoda Cc: Rodolfo Giometti Cc: Mike Frysinger Cc: Anton Vorontsov Cc: Sebastian Siewior Cc: Lothar Wassmann Cc: Olav Kongas Cc: Martin Fuzzey Cc: Alan Stern Cc: David Brownell commit c70615740996823580bb8fb58461347b7ffaad9a Author: Sarah Sharp Date: Mon Dec 6 15:08:20 2010 -0800 USB: Clear "warm" port reset change. In USB 3.0, there are two types of resets: a "hot" port reset and a "warm" port reset. The hot port reset is always tried first, and involves sending the reset signaling for a shorter amount of time. But sometimes devices don't respond to the hot reset, and a "Bigger Hammer" is needed. External hubs and roothubs will automatically try a warm reset when the hot reset fails, and they will set a status change bit to indicate when there is a "BH reset" change. Make sure the USB core clears that port status change bit, or we'll get lots of status change notifications on the interrupt endpoint of the USB 3.0 hub. (Side note: you may be confused why the USB 3.0 spec calls the same type of reset "warm reset" in some places and "BH reset" in other places. "BH" reset is supposed to stand for "Big Hammer" reset, but it also stands for "Brad Hosler". Brad died shortly after the USB 3.0 bus specification was started, and they decided to name the reset after him. The suggestion was made shortly before the spec was finalized, so the wording is a bit inconsistent.) Signed-off-by: Sarah Sharp commit 22c6a35d41f71b5b40ba8debcb8bd4e8e291ae43 Author: Sarah Sharp Date: Mon Sep 13 12:01:02 2010 -0700 usb: Make USB 3.0 roothub have a SS EP comp descriptor. Make the USB 3.0 roothub registered by the USB core have a SuperSpeed Endpoint Companion Descriptor after the interrupt endpoint. All USB 3.0 devices are required to have this, and the USB 3.0 bus specification (section 10.13.1) says which values the descriptor should have. Signed-off-by: Sarah Sharp commit aa1b13efb7cfa9f7bf4942c1e858463e335c9500 Author: Sarah Sharp Date: Thu Mar 3 05:40:51 2011 -0800 xhci: Modify check for TT info. Commit d199c96d by Alan Stern ensured that low speed and full speed devices below a high speed hub without a transaction translator (TT) would never get enumerated. Simplify the check for a TT in the xHCI virtual device allocation to only check if the usb_device references a parent's TT. Make sure not to set the TT information on LS/FS devices directly connected to the roothub. The xHCI host doesn't really have a TT, and the host will throw an error when those virtual device TT fields are set for a device connected to the roothub. We need this check because the xHCI driver will shortly register two roothubs: a USB 2.0 roothub and a USB 3.0 roothub. Signed-off-by: Sarah Sharp commit 214f76f7d9198ddd090bd927a4bcd49391bfcd36 Author: Sarah Sharp Date: Tue Oct 26 11:22:02 2010 -0700 xhci: Always use usb_hcd in URB instead of converting xhci_hcd. Make sure to call into the USB core's link, unlink, and giveback URB functions with the usb_hcd pointer found by using urb->dev->bus. This will avoid confusion later, when the xHCI driver will deal with URBs from two separate buses (the USB 3.0 roothub and the faked USB 2.0 roothub). Assume xhci_urb_dequeue() will be called with the proper usb_hcd. Signed-off-by: Sarah Sharp commit b02d0ed677acb3465e7600366f2353413bf24074 Author: Sarah Sharp Date: Tue Oct 26 11:03:44 2010 -0700 xhci: Change hcd_priv into a pointer. Instead of allocating space for the whole xhci_hcd structure at the end of usb_hcd, make the USB core allocate enough space for a pointer to the xhci_hcd structure. This will make it easy to share the xhci_hcd structure across the two roothubs (the USB 3.0 usb_hcd and the USB 2.0 usb_hcd). Deallocate the xhci_hcd at PCI remove time, so the hcd_priv will be deallocated after the usb_hcd is deallocated. We do this by registering a different PCI remove function that calls the usb_hcd_pci_remove() function, and then frees the xhci_hcd. usb_hcd_pci_remove() calls kput() on the usb_hcd structure, which will deallocate the memory that contains the hcd_priv pointer, but not the memory it points to. Signed-off-by: Sarah Sharp commit 8766c815607e572556b04075d4545330123c4f27 Author: Sarah Sharp Date: Fri Oct 15 10:33:48 2010 -0700 usb: Make usb_hcd_pci_probe labels more descriptive. Make the labels for the goto statements in usb_hcd_pci_probe() describe the cleanup they do, rather than being numbered err[1-4]. This makes it easier to add error handling later. The error handling for this function looks a little fishy, since set_hs_companion() isn't called until the very end of the function, and clear_hs_companion() is called if this function fails earlier than that. But it should be harmless to clear a NULL pointer, so leave the error handling as-is. Signed-off-by: Sarah Sharp commit 23e0d1066f429ab44305e96fbff13f1793886277 Author: Sarah Sharp Date: Thu Oct 21 11:14:54 2010 -0700 usb: Refactor irq enabling out of usb_add_hcd() Refactor out the code in usb_add_hcd() to request the IRQ line for the HCD. This will only need to be called once for the two xHCI roothubs, so it's easier to refactor it into a function, rather than wrapping the long if-else block into another if statement. Signed-off-by: Sarah Sharp commit d673bfcbfffdeb56064a6b1ee047b85590bed76c Author: Sarah Sharp Date: Fri Oct 15 08:55:24 2010 -0700 usb: Change usb_hcd->bandwidth_mutex to a pointer. Change the bandwith_mutex in struct usb_hcd to a pointer. This will allow the pointer to be shared across usb_hcds for the upcoming work to split the xHCI driver roothub into a USB 2.0/1.1 and a USB 3.0 bus. Signed-off-by: Sarah Sharp commit 83de4b2b90887b5b317d8313864fe4cc5db35280 Author: Sarah Sharp Date: Thu Dec 2 14:45:18 2010 -0800 usb: Store bus type in usb_hcd, not in driver flags. The xHCI driver essentially has both a USB 2.0 and a USB 3.0 roothub. So setting the HCD_USB3 bits in the hcd->driver->flags is a bit misleading. Add a new field to usb_hcd, bcdUSB. Store the result of hcd->driver->flags & HCD_MASK in it. Later, when we have the xHCI driver register the two roothubs, we'll set the usb_hcd->bcdUSB field to HCD_USB2 for the USB 2.0 roothub, and HCD_USB3 for the USB 3.0 roothub. Signed-off-by: Sarah Sharp commit c56354378426e550aaf6ddf3983f502a8fddeab5 Author: Sarah Sharp Date: Thu Oct 28 15:40:26 2010 -0700 usb: Make core allocate resources per PCI-device. Introduce the notion of a PCI device that may be associated with more than one USB host controller driver (struct usb_hcd). This patch is the start of the work to separate the xHCI host controller into two roothubs: a USB 3.0 roothub with SuperSpeed-only ports, and a USB 2.0 roothub with HS/FS/LS ports. One usb_hcd structure is designated to be the "primary HCD", and a pointer is added to the usb_hcd structure to keep track of that. A new function call, usb_hcd_is_primary_hcd() is added to check whether the USB hcd is marked as the primary HCD (or if it is not part of a roothub pair). To allow the USB core and xHCI driver to access either roothub in a pair, a "shared_hcd" pointer is added to the usb_hcd structure. Add a new function, usb_create_shared_hcd(), that does roothub allocation for paired roothubs. It will act just like usb_create_hcd() did if the primary_hcd pointer argument is NULL. If it is passed a non-NULL primary_hcd pointer, it sets usb_hcd->shared_hcd and usb_hcd->primary_hcd fields. It will also skip the bandwidth_mutex allocation, and set the secondary hcd's bandwidth_mutex pointer to the primary HCD's mutex. IRQs are only allocated once for the primary roothub. Introduce a new usb_hcd driver flag that indicates the host controller driver wants to create two roothubs. If the HCD_SHARED flag is set, then the USB core PCI probe methods will allocate a second roothub, and make sure that second roothub gets freed during rmmod and in initialization error paths. When usb_hc_died() is called with the primary HCD, make sure that any roothubs that share that host controller are also marked as being dead. Signed-off-by: Sarah Sharp commit ff9d78b36f76687c91c67b9f4c5c33bc888ed2f9 Author: Sarah Sharp Date: Thu Dec 2 19:10:02 2010 -0800 USB: Set usb_hcd->state and flags for shared roothubs. The hcd->flags are in a sorry state. Some of them are clearly specific to the particular roothub (HCD_POLL_RH, HCD_POLL_PENDING, and HCD_WAKEUP_PENDING), but some flags are related to PCI device state (HCD_HW_ACCESSIBLE and HCD_SAW_IRQ). This is an issue when one PCI device can have two roothubs that share the same IRQ line and hardware. Make sure to set HCD_FLAG_SAW_IRQ for both roothubs when an interrupt is serviced, or an URB is unlinked without an interrupt. (We can't tell if the host actually serviced an interrupt for a particular bus, but we can tell it serviced some interrupt.) HCD_HW_ACCESSIBLE is set once by usb_add_hcd(), which is set for both roothubs as they are added, so it doesn't need to be modified. HCD_POLL_RH and HCD_POLL_PENDING are only checked by the USB core, and they are never set by the xHCI driver, since the roothub never needs to be polled. The usb_hcd's state field is a similar mess. Sometimes the state applies to the underlying hardware: HC_STATE_HALT, HC_STATE_RUNNING, and HC_STATE_QUIESCING. But sometimes the state refers to the roothub state: HC_STATE_RESUMING and HC_STATE_SUSPENDED. Alan Stern recently made the USB core not rely on the hcd->state variable. Internally, the xHCI driver still checks for HC_STATE_SUSPENDED, so leave that code in. Remove all references to HC_STATE_HALT, since the xHCI driver only sets and doesn't test those variables. We still have to set HC_STATE_RUNNING, since Alan's patch has a bug that means the roothub won't get registered if we don't set that. Alan's patch made the USB core check a different variable when trying to determine whether to suspend a roothub. The xHCI host has a split roothub, where two buses are registered for one PCI device. Each bus in the xHCI split roothub can be suspended separately, but both buses must be suspended before the PCI device can be suspended. Therefore, make sure that the USB core checks HCD_RH_RUNNING() for both roothubs before suspending the PCI host. Signed-off-by: Sarah Sharp commit 5308a91b9fc1a8f94b860c2589b06908a97cba7e Author: Sarah Sharp Date: Wed Dec 1 11:34:59 2010 -0800 xhci: Index with a port array instead of PORTSC addresses. In the upcoming patches, the roothub emulation code will need to return port status and port change buffers based on whether they are called with the xHCI USB 2.0 or USB 3.0 roothub. To facilitate that, make the roothub code index into an array of port addresses with wIndex, rather than calculating the address using the offset and the address of the PORTSC registers. Later we can set the port array to be the array of USB 3.0 port addresses, or the USB 2.0 port addresses, depending on the roothub passed in. Create a temporary (statically sized) port array and fill it in with both USB 3.0 and USB 2.0 port addresses. This is inefficient to do for every roothub call, but this is needed for git bisect compatibility. The temporary port array will be deleted in a subsequent patch. Signed-off-by: Sarah Sharp commit 20b67cf51fa606442bb343afad0ee1a393a6afb3 Author: Sarah Sharp Date: Wed Dec 15 12:47:14 2010 -0800 xhci: Refactor bus suspend state into a struct. There are several variables in the xhci_hcd structure that are related to bus suspend and resume state. There are a couple different port status arrays that are accessed by port index. Move those variables into a separate structure, xhci_bus_state. Stash that structure in xhci_hcd. When we have two roothhubs that can be suspended and resumed separately, we can have two xhci_bus_states, and index into the port arrays in each structure with the fake roothub port index (not the real hardware port index). Signed-off-by: Sarah Sharp commit 5233630fcdd6f7d415dcbed264031439cab73f9d Author: Sarah Sharp Date: Thu Dec 16 10:49:09 2010 -0800 xhci: Change xhci_find_slot_id_by_port() API. xhci_find_slot_id_by_port() tries to map the port index to the slot ID for the USB device. In the future, there will be two xHCI roothubs, and their port indices will overlap. Therefore, xhci_find_slot_id_by_port() will need to use information in the roothub's usb_hcd structure to map the port index and roothub speed to the right slot ID. Add a new parameter to xhci_find_slot_id_by_port(), in order to pass in the roothub's usb_hcd structure. Signed-off-by: Sarah Sharp commit f6ff0ac878eb420011fa2448851dd48c3a7e7b31 Author: Sarah Sharp Date: Thu Dec 16 11:21:10 2010 -0800 xhci: Register second xHCI roothub. This patch changes the xHCI driver to allocate two roothubs. This touches the driver initialization and shutdown paths, roothub emulation code, and port status change event handlers. This is a rather large patch, but it can't be broken up, or it would break git-bisect. Make the xHCI driver register its own PCI probe function. This will call the USB core to create the USB 2.0 roothub, and then create the USB 3.0 roothub. This gets the code for registering a shared roothub out of the USB core, and allows other HCDs later to decide if and how many shared roothubs they want to allocate. Make sure the xHCI's reset method marks the xHCI host controller's primary roothub as the USB 2.0 roothub. This ensures that the high speed bus will be processed first when the PCI device is resumed, and any USB 3.0 devices that have migrated over to high speed will migrate back after being reset. This ensures that USB persist works with these odd devices. The reset method will also mark the xHCI USB2 roothub as having an integrated TT. Like EHCI host controllers with a "rate matching hub" the xHCI USB 2.0 roothub doesn't have an OHCI or UHCI companion controller. It doesn't really have a TT, but we'll lie and say it has an integrated TT. We need to do this because the USB core will reject LS/FS devices under a HS hub without a TT. Other details: ------------- The roothub emulation code is changed to return the correct number of ports for the two roothubs. For the USB 3.0 roothub, it only reports the USB 3.0 ports. For the USB 2.0 roothub, it reports all the LS/FS/HS ports. The code to disable a port now checks the speed of the roothub, and refuses to disable SuperSpeed ports under the USB 3.0 roothub. The code for initializing a new device context must be changed to set the proper roothub port number. Since we've split the xHCI host into two roothubs, we can't just use the port number in the ancestor hub. Instead, we loop through the array of hardware port status register speeds and find the Nth port with a similar speed. The port status change event handler is updated to figure out whether the port that reported the change is a USB 3.0 port, or a non-SuperSpeed port. Once it figures out the port speed, it kicks the proper roothub. The function to find a slot ID based on the port index is updated to take into account that the two roothubs will have over-lapping port indexes. It checks that the virtual device with a matching port index is the same speed as the passed in roothub. There's also changes to the driver initialization and shutdown paths: 1. Make sure that the xhci_hcd pointer is shared across the two usb_hcd structures. The xhci_hcd pointer is allocated and the registers are mapped in when xhci_pci_setup() is called with the primary HCD. When xhci_pci_setup() is called with the non-primary HCD, the xhci_hcd pointer is stored. 2. Make sure to set the sg_tablesize for both usb_hcd structures. Set the PCI DMA mask for the non-primary HCD to allow for 64-bit or 32-bit DMA. (The PCI DMA mask is set from the primary HCD further down in the xhci_pci_setup() function.) 3. Ensure that the host controller doesn't start kicking khubd in response to port status changes before both usb_hcd structures are registered. xhci_run() only starts the xHC running once it has been called with the non-primary roothub. Similarly, the xhci_stop() function only halts the host controller when it is called with the non-primary HCD. Then on the second call, it resets and cleans up the MSI-X irqs. Signed-off-by: Sarah Sharp commit 4bbb0ace9a3de8392527e3c87926309d541d3b00 Author: Sarah Sharp Date: Mon Nov 29 16:14:37 2010 -0800 xhci: Return a USB 3.0 hub descriptor for USB3 roothub. Return the correct xHCI roothub descriptor, based on whether the roothub is marked as USB 3.0 or USB 2.0 in usb_hcd->bcdUSB. Fill in DeviceRemovable for the USB 2.0 and USB 3.0 roothub descriptors, using the Device Removable bit in the port status and control registers. xHCI is the first host controller to actually properly set these bits (other hosts say all devices are removable). When userspace asks for a USB 2.0-style hub descriptor for the USB 3.0 roothub, stall the endpoint. This is what real external USB 3.0 hubs do, and we don't want to return a descriptor that userspace didn't ask for. The USB core is already fixed to always ask for USB 3.0-style hub descriptors. Only usbfs (typically lsusb) will ask for the USB 2.0-style hub descriptors. This has already been fixed in usbutils version 0.91, but the kernel needs to deal with older usbutils versions. Signed-off-by: Sarah Sharp commit d30b2a208108a0b0fdeae7006b8824d9be16ca96 Author: Sarah Sharp Date: Tue Nov 23 10:42:22 2010 -0800 xhci: Limit roothub ports to 15 USB3 & 31 USB2 ports. The USB core allocates a USB 2.0 roothub descriptor that has room for 31 (USB_MAXCHILDREN) ports' worth of DeviceRemovable and PortPwrCtrlMask fields. Limit the number of USB 2.0 roothub ports accordingly. I don't expect to run into this limitation ever, but this prevents a buffer overflow issue in the roothub descriptor filling code. Similarly, a USB 3.0 hub can only have 15 downstream ports, so limit the USB 3.0 roothub to 15 USB 3.0 ports. Signed-off-by: Sarah Sharp commit f9de8151877b4f01cc8e124b0e213a6c6c78d970 Author: Sarah Sharp Date: Fri Oct 29 14:37:23 2010 -0700 xhci: Make roothub functions deal with device removal. Return early in the roothub control and status functions if the xHCI host controller is not electrically present in the system (register reads return all "fs"). This issue only shows up when the xHCI driver registers two roothubs and the host controller is removed from the system. Signed-off-by: Sarah Sharp commit 65b22f93fde320b34d43e4a3978e1b52b1bcc279 Author: Sarah Sharp Date: Fri Dec 17 12:35:05 2010 -0800 xhci: Fix re-init on power loss after resume. When a host controller has lost power during a suspend, we must reinitialize it. Now that the xHCI host has two roothubs, xhci_run() and xhci_stop() expect to be called with both usb_hcd structures. Be sure that the re-initialization code in xhci_resume() mirrors the process the USB PCI probe function uses. Signed-off-by: Sarah Sharp commit b320937972d456db2a46fdcbc6bebc4dcdc9daa4 Author: Sarah Sharp Date: Mon Mar 7 11:24:07 2011 -0800 xhci: Fixes for suspend/resume of shared HCDs. Make sure the HCD_FLAG_HW_ACCESSIBLE flag is mirrored by both roothubs, since it refers to whether the shared hardware is accessible. Make sure each bus is marked as suspended by setting usb_hcd->state to HC_STATE_SUSPENDED when the PCI host controller is resumed. Signed-off-by: Sarah Sharp commit c6cc27c782e3a64cced0fcf1d6f492c8d8881c76 Author: Sarah Sharp Date: Fri Mar 11 10:20:58 2011 -0800 xhci: Return canceled URBs immediately when host is halted. When the xHCI host controller is halted, it won't respond to commands placed on the command ring. So if an URB is cancelled after the first roothub is deallocated, it will try to place a stop endpoint command on the command ring, which will fail. The command watchdog timer will fire after five seconds, and the host controller will be marked as dying, and all URBs will be completed. Add a flag to the xHCI's internal state variable for when the host controller is halted. Immediately return the canceled URB if the host controller is halted. Signed-off-by: Sarah Sharp commit 131dec344d5e41f01e4791aa4c80eb4bdb1e5274 Author: Sarah Sharp Date: Mon Dec 6 21:00:19 2010 -0800 USB: Remove bogus USB_PORT_STAT_SUPER_SPEED symbol. USB_PORT_STAT_SUPER_SPEED is a made up symbol that the USB core used to track whether USB ports had a SuperSpeed device attached. This is a linux-internal symbol that was used when SuperSpeed and non-SuperSpeed devices would show up under the same xHCI roothub. This particular port status is never returned by external USB 3.0 hubs. (Instead they have a USB_PORT_STAT_SPEED_5GBPS that uses a completely different speed mask.) Now that the xHCI driver registers two roothubs, USB 3.0 devices will only show up under USB 3.0 hubs. Rip out USB_PORT_STAT_SUPER_SPEED and replace it with calls to hub_is_superspeed(). Signed-off-by: Sarah Sharp commit 0c9ffe0f6286a02bf82f8d7fb7274aec2ad977f1 Author: Sarah Sharp Date: Thu Dec 30 13:27:36 2010 -0800 USB: Disable auto-suspend for USB 3.0 hubs. USB 3.0 devices have a slightly different suspend sequence than USB 2.0/1.1 devices. There isn't support for USB 3.0 device suspend yet, so make khubd leave autosuspend disabled for USB 3.0 hubs. Make sure that USB 3.0 roothubs still have autosuspend enabled, since that path in the xHCI driver works fine. Signed-off-by: Sarah Sharp commit bf161e85fb153c0dd5a95faca73fd6a9d237c389 Author: Sarah Sharp Date: Wed Feb 23 15:46:42 2011 -0800 xhci: Update internal dequeue pointers after stalls. When an endpoint stalls, the xHCI driver must move the endpoint ring's dequeue pointer past the stalled transfer. To do that, the driver issues a Set TR Dequeue Pointer command, which will complete some time later. Takashi was having issues with USB 1.1 audio devices that stalled, and his analysis of the code was that the old code would not update the xHCI driver's ring dequeue pointer after the command completes. However, the dequeue pointer is set in xhci_find_new_dequeue_state(), just before the set command is issued to the hardware. Setting the dequeue pointer before the Set TR Dequeue Pointer command completes is a dangerous thing to do, since the xHCI hardware can fail the command. Instead, store the new dequeue pointer in the xhci_virt_ep structure, and update the ring's dequeue pointer when the Set TR dequeue pointer command completes. While we're at it, make sure we can't queue another Set TR Dequeue Command while the first one is still being processed. This just won't work with the internal xHCI state code. I'm still not sure if this is the right thing to do, since we might have a case where a driver queues multiple URBs to a control ring, one of the URBs Stalls, and then the driver tries to cancel the second URB. There may be a race condition there where the xHCI driver might try to issue multiple Set TR Dequeue Pointer commands, but I would have to think very hard about how the Stop Endpoint and cancellation code works. Keep the fix simple until when/if we run into that case. This patch should be queued to kernels all the way back to 2.6.31. Signed-off-by: Sarah Sharp Tested-by: Takashi Iwai Cc: stable@kernel.org commit 01a1fdb9a7afa5e3c14c9316d6f380732750b4e4 Author: Sarah Sharp Date: Wed Feb 23 18:12:29 2011 -0800 xhci: Fix cycle bit calculation during stall handling. When an endpoint stalls, we need to update the xHCI host's internal dequeue pointer to move it past the stalled transfer. This includes updating the cycle bit (TRB ownership bit) if we have moved the dequeue pointer past a link TRB with the toggle cycle bit set. When we're trying to find the new dequeue segment, find_trb_seg() is supposed to keep track of whether we've passed any link TRBs with the toggle cycle bit set. However, this while loop's body while (cur_seg->trbs > trb || &cur_seg->trbs[TRBS_PER_SEGMENT - 1] < trb) { Will never get executed if the ring only contains one segment. find_trb_seg() will return immediately, without updating the new cycle bit. Since find_trb_seg() has no idea where in the segment the TD that stalled was, make the caller, xhci_find_new_dequeue_state(), check for this special case and update the cycle bit accordingly. This patch should be queued to kernels all the way back to 2.6.31. Signed-off-by: Sarah Sharp Tested-by: Takashi Iwai Cc: stable@kernel.org commit ba0a4d9aaae789a6a632968b27c21d49b858b13a Author: Sarah Sharp Date: Wed Feb 23 18:13:43 2011 -0800 xhci: Clean up cycle bit math used during stalls. Use XOR to invert the cycle bit, instead of a more complicated calculation. Eliminate a check for the link TRB type in find_trb_seg(). We know that there will always be a link TRB at the end of a segment, so xhci_segment->trbs[TRBS_PER_SEGMENT - 1] will always have a link TRB type. Signed-off-by: Sarah Sharp Tested-by: Takashi Iwai commit 500132a0f26ad7d9916102193cbc6c1b1becb373 Author: Paul Zimmerman Date: Mon Feb 28 18:11:27 2011 -0800 USB: Add support for SuperSpeed isoc endpoints Use the Mult and bMaxBurst values from the endpoint companion descriptor to calculate the max length of an isoc transfer. Add USB_SS_MULT macro to access Mult field of bmAttributes, at Sarah's suggestion. This patch should be queued for the 2.6.36 and 2.6.37 stable trees, since those were the first kernels to have isochronous support for SuperSpeed devices. Signed-off-by: Paul Zimmerman Signed-off-by: Sarah Sharp Cc: stable@kernel.org commit ba02fa37de80bea10d706f39f076dd848348320a Author: Tomi Valkeinen Date: Fri Mar 11 09:28:06 2011 +0200 HACK: OMAP: DSS2: VENC: disable VENC on OMAP4 to prevent crash Something seems to be wrong with OMAP4 & VENC, and register access fails in omap_venchw_probe(). This patch skips venc driver registration on OMAP4, thus circumventing the problem for now. Signed-off-by: Tomi Valkeinen commit df93f1f4eeb02529c13d1f6be832ab6ff7cd8222 Author: Linus Walleij Date: Fri Jan 21 09:19:05 2011 +0100 mach-ux500: add DB5500 PMU resources This adds the PMU resources necessary to get perf working with the DB5500 ASIC. Acked-by: Will Deacon Signed-off-by: Linus Walleij commit d1de85a23144e922a1f2971be74076020f340090 Author: Linus Walleij Date: Thu Dec 2 17:10:14 2010 +0100 mach-ux500: add a few AB8500 regulator consumers v3 Try to make the regulators a little bit more useful by adding some of the most basic consumers we're going to have in the end. Cc: Mark Brown Cc: Rabin Vincent Cc: Naveen Kumar Gaddipati Cc: Bengt Jonsson Cc: Lee Jones Signed-off-by: Linus Walleij commit 871056e7dfb6164ffd6c6665752f921f9d5c6a81 Author: Sundar Iyer Date: Fri Jan 21 10:56:15 2011 +0530 mach-ux500: fix ux500 build error Include ab8500 regulators for DB8500 SoC by default and fix build issues Signed-off-by: Sundar Iyer [Small fixup for changed boardfiles] Signed-off-by: Linus Walleij commit 705e0984444bc7109c5686c36333b27119d8a888 Author: Rabin Vincent Date: Fri Jan 21 10:56:16 2011 +0530 mach-ux500: dynamic UIB (user interface boards) detection Add support for dynamic detection of the UIB used (at the cost of one i2c error on the lesser-used UIB) and also provide an override via a command line parameter if needed. Signed-off-by: Rabin Vincent Signed-off-by: Sundar Iyer Signed-off-by: Linus Walleij commit 0c24352eada58dc3571647593e516b2d5b50014f Author: Sundar Iyer Date: Fri Jan 21 10:56:17 2011 +0530 mach-ux500: add ST-UIB platform data The ST-UIB contains a matrix keypad interfaced with the STMPE1601 port expander and a ROHM BU2101 touch panel. Signed-off-by: Sundar Iyer Signed-off-by: Linus Walleij commit 71f933f4efe8395d4f3da6979cab6a01f2c5411b Author: Sundar Iyer Date: Fri Jan 21 10:56:18 2011 +0530 mach-ux500: add U8500 UIB platform data The U8500 UIB contains a Synaptics RMI touchpanel and a matrix keyboard via the TC35893 port expander device. Signed-off-by: Sundar Iyer Signed-off-by: Linus Walleij commit b3f1f73d35839f3e40bd9dba2c3de53f56a2a880 Author: Linus Walleij Date: Fri Jan 21 10:50:08 2011 +0100 mach-ux500: delete old keypad board file We register keypads per-UIB now, remove this. Cc: Lee Jones Signed-off-by: Linus Walleij commit a71b819b6edfb31d6866d084167583bd92f4ad29 Author: Philippe Langlais Date: Fri Jan 14 10:53:59 2011 +0100 mach-ux500: platform data for SFH7741 proximity sensor driver Proximity sensor is managed as an input event (SW_PROXIMITY). Signed-off-by: Philippe Langlais [Named GPIO pin] Signed-off-by: Linus Walleij commit dd7b2a055622e23c9354bd9b081973c9a15ac639 Author: Philippe Langlais Date: Wed Jan 12 11:26:20 2011 +0100 mach-ux500: platform data for LP5521 leds driver Signed-off-by: Philippe Langlais Signed-off-by: Linus Walleij commit bb3b218756e061b1e51c1593684be0261482e399 Author: Lee Jones Date: Thu Jan 13 14:41:22 2011 +0000 mach-ux500: Add Rohm BH1780GLI Light Sensor to i2c_board_info Signed-off-by: Lee Jones Signed-off-by: Linus Walleij commit fbdc6d11ae0594fb03f4c5556cbb8ff46e1971e3 Author: Philippe Langlais Date: Thu Jan 27 14:37:07 2011 +0100 mach-ux500: set sd/mmc clock rate to 100MHz The clock speed for the SD/MMC clock was incorrect, rectify it. Signed-off-by: Philippe Langlais Signed-off-by: Linus Walleij commit 7863513efc4b2829a9d3768b37fdcd46842ac8e6 Author: Philippe Langlais Date: Thu Jan 27 14:35:37 2011 +0100 mach-ux500: fix inverted SD-card GPIO pin The levelshifter pins were set to inverted values, fix this up. Signed-off-by: Philippe Langlais Signed-off-by: Linus Walleij commit 07f201d8a30b077b536a9bbc6788724aa8973e31 Author: Mian Yousaf Kaukab Date: Fri Jan 21 17:59:56 2011 +0100 mach-ux500: add platform data for musb USB resources and DMA40 configurations are dynamically with the data provided in ux500_add_usb() call. Though only DMA40 configurations differ between U8500 and U5500 (USB resource are common between them). Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Linus Walleij commit 7f0709efe65a1a46f9b0affb6b5d27d31bae450a Author: Mian Yousaf Kaukab Date: Fri Jan 21 18:05:40 2011 +0100 mach-ux500: update MUSB clock configurations MUSB driver has been updated to separate out BSP layer from its generic parts, as separate driver. This patch configures the clock with the new platform driver name. Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Linus Walleij commit 6f3f3c3f0b5c7b84a99f0aa99658d6c6cee8e700 Author: Mian Yousaf Kaukab Date: Fri Jan 21 18:21:50 2011 +0100 mach-ux500: add MUSB to db8500 devices - DMA tx and rx maps for usb channels are set to be configured at runtime - GPIO configurations for usb are added - MUSB is enabled with soc specific base address, irq and dma configurations Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Linus Walleij commit 741caea4e518f5374cc9ff7cfaabc0e591416420 Author: Mian Yousaf Kaukab Date: Fri Jan 21 18:24:19 2011 +0100 mach-ux500: add MUSB to db5500 devices - DMA tx and rx maps for usb channels are set to be configured at runtime - MUSB is enabled with soc specific base address, irq and dma configurations Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Linus Walleij commit 1a721859f8e57ddf3f6df2b5094057f9f536b4d0 Author: Linus Walleij Date: Wed Feb 2 14:41:19 2011 +0100 mach-u300: use mmci driver for GPIO card detect The mmci driver can handle a GPIO pin for card detect, using IRQs and all just fine, so switch to using that. Delete the old bogus input device hack, if userspace need to detect MMC cards it should use udev like everyone else. Signed-off-by: Linus Walleij commit ec8f12533b4a439a8feb0d1a3bf15516781804be Author: Linus Walleij Date: Fri Aug 13 11:31:59 2010 +0200 mach-u300: config U300 PL180 PL011 PL022 for DMA This will configure the platform data for the PL180, PL011 and PL022 PrimeCells found in the U300 to use DMA with the generic PrimeCell DMA engine for COH 901 318. Signed-off-by: Linus Walleij commit 5d7b8467e18b14ed44c5781d77993bfdcd8c826b Author: Linus Walleij Date: Thu Oct 14 13:57:59 2010 +0200 mach-ux500: config Ux500 PL011 PL022 PL180 for DMA This will configure the platform data for the PL011, PL022 and PL180 (derivate) PrimeCells found in the Ux500 to use DMA with the generic DMA engine for DMA40. Signed-off-by: Per Forlin Signed-off-by: Linus Walleij commit e493e06fedd86b484d172f961234f105f295d4d4 Author: Rabin Vincent Date: Thu Mar 18 12:35:22 2010 +0530 plat-nomadik: support varying number of GPIOs per block Signed-off-by: Rabin Vincent [Added constant 32-pin assignment in platform data] Signed-off-by: Linus Walleij commit d0b543c772af20f576e204cae442ccfd221631a7 Author: Rabin Vincent Date: Thu Mar 4 17:39:05 2010 +0530 plat-nomadik: add custom dbg_show for GPIO Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij commit c84c7c08e320acfd10a0b7e55dbb0bc819b6d284 Author: Rabin Vincent Date: Wed Mar 17 15:19:04 2010 +0530 plat-nomadik: implement suspend/resume for GPIO Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij commit 33b744b35189baaa260f526cf117392095331843 Author: Rabin Vincent Date: Thu Oct 14 10:38:03 2010 +0530 plat-nomadik: support secondary GPIO interrupts When GPIOs wake up the system from sleep mode, the normal GPIO interrupt handler does not hit and the normal interrupt status register does not contain the status. Instead the secondary GPIO handler does, and the interrupt status needs to be retrieved from the wakeup status saved by the suspend/resume code. Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij commit 9c66ee6f55667c5f7e118135d3175b0100e160b9 Author: Jonas Aaberg Date: Wed Oct 13 13:14:17 2010 +0200 plat-nomadik: pull-up/down settings for GPIO resume Suspend/resume didn't take care of pull-up and pull-down settings and writing back the DAT register at resume can change pull up/down settings, depending on pin input value. Output values are now also restored. Signed-off-by: Jonas Aaberg Signed-off-by: Linus Walleij commit 2c8bb0eba96f6027ea1e6cf52376e07d18f54ddc Author: Virupax Sadashivpetimath Date: Thu Nov 11 14:10:38 2010 +0530 plat-nomadik: type secondary IRQ correctly Coverity found that we were checking an unsigned variable for >= zero. Type it correctly so that the check works as intended. Signed-off-by: Virupax Sadashivpetimath Signed-off-by: Linus Walleij commit 3546d15c5c3f923f7925f92bfe0f8e1cf8bccc1c Author: Rabin Vincent Date: Thu Nov 25 11:38:27 2010 +0530 plat-nomadik: set altfunc to GPIO when enabling the sleep config Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij commit 01727e61f0967dd18fadd9dfcee5cf1246e6d8a6 Author: Rabin Vincent Date: Mon Dec 13 12:02:40 2010 +0530 plat-nomadik: implement safe switch sequence for Alt-C Setting pinmux alternative C for a GPIO pin is actually not so easy since it ivolves setting value "1" in two registers, and since the combined result will take effect for intermediate values (01 or 10) this will cause glitches while you wrote one register but have not yet written the other. This patch implements a series of kludges including an optional machine-specific callback to avoid glitches when changing pin mux mode to alternative C. Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij commit 8b40eeeadc5837c2c01329aa1294e4bef3b35429 Author: Rikard Olsson Date: Mon Jan 3 14:30:41 2011 +0100 plat-nomadik: change sleep/wakeup setting in GPIO SLPM register This patch fixes a bug when setting SLPM register for DB8500. When calling__nmk_gpio_set_slpm(...) offset to GPIO is now used instead of the GPIO number itself. Signed-off-by: Rikard Olsson Signed-off-by: Linus Walleij commit 5317e4d11d1ce4db949f207aaebe09b7d0d76b5f Author: Rabin Vincent Date: Thu Feb 10 09:29:53 2011 +0530 plat-nomadik: get rid of unused GPIO PM code The NOMADIK_GPIO_PM config option is disabled by default, not user visible, and never selected by any other option: the code is therefore unused. The GPIO registers need not be saved and restored since their values are preserved when vAPE (on DB8500) is powered down. Signed-off-by: Rabin Vincent Reviewed-by: Jonas Aberg Signed-off-by: Linus Walleij commit 3c4bee04d147f149a167633cf0033f9d25a8d720 Author: Linus Walleij Date: Wed Feb 16 10:37:52 2011 +0100 plat-nomadik: fix compilation warning The compiler warns that [rf]wimsc may be used uninitialized in this function - the warning is actually false since the uses are in identical if()-clauses, but it can't hurt very much to read out the values to be modified early anyway and rid the warning. Cc: Rabin Vincent Signed-off-by: Linus Walleij commit fe05203b0c4ba0454ba34a858002b12ae4a72faa Author: Rabin Vincent Date: Fri Feb 11 17:07:21 2011 -0700 mach-ux500: move MOP500 pins to separate file Split off pin definitions for the MOP500 board family to its own file. Signed-off-by: Rabin Vincent Signed-off-by: Mathieu Poirier Signed-off-by: Linus Walleij commit 4bc3a698c3db6592490cd685e395e27216ed2454 Author: Bibek Basu Date: Tue Feb 15 10:46:59 2011 +0100 mach-ux500: add hrefv60 GPIO pins This will centralize all GPIO pin muxing for the different boards in the MOP500 family to a single file. It also kills off the deprecated support for the ED (Early Drop) ASIC, this should never be spotted in the open and ST-Ericsson have internally deprecated this hardware. Signed-off-by: Bibek Basu [Rebasing and kill old ASIC support] Signed-off-by: Linus Walleij commit 4b4f757c807375564ce3d4ff1d088d3847c52f6d Author: Linus Walleij Date: Tue Feb 15 15:01:35 2011 +0100 mach-ux500: basic HREFv60 support v2 The HREFv60 variant of the MOP500 family of boards remove the external GPIO expander and route these pins back to some of the readily available internal GPIO pins instead. Based on a patch by Bibek Basu for an internal kernel version. Cc: Bibek Basu Signed-off-by: Linus Walleij commit 96cb164bdec6f91eadf09a858c4820701f791b37 Author: Linus Walleij Date: Mon Sep 27 17:40:22 2010 +0200 mach-u300: define a dummy filter function for coh901318 All platform data has to be made conditional on as to avoid cluttering the code with other #ifdef:s. Signed-off-by: Linus Walleij commit b9df468d8630c583e3597e24ad8cc4c0318790c1 Author: Rabin Vincent Date: Thu Feb 10 11:45:58 2011 +0530 plat-nomadik: make GPIO interrupts work with cpuidle ApSleep Enable wakeups by default for any GPIO interrupts and in the suspend/resume path narrow this down to only the the real wakeup interrupts. This approach is based on the assumption that cpuidle ApSleep will be entered more often than system suspend. Signed-off-by: Rabin Vincent Reviewed-by: Srinidhi Kasagar [Fixup for genirq changes to struct irq_data on 2.6.38] Signed-off-by: Linus Walleij commit 4359d38d518c0dd72c03a3bc9918607ba8f2648a Author: Michael Jones Date: Wed Mar 9 09:17:32 2011 +0000 omap: iovmm: disallow mapping NULL address when IOVMF_DA_ANON is set commit c7f4ab26e3bcdaeb3e19ec658e3ad9092f1a6ceb allowed mapping the NULL address if da_start==0, which would then not get unmapped. Disallow this again if IOVMF_DA_ANON is set. And spell variable 'alignment' correctly. Signed-off-by: Michael Jones Signed-off-by: Tony Lindgren commit d038aee24dcd5a2a0d8547f5396f67ae9698ac8e Author: David Cohen Date: Wed Mar 9 09:17:33 2011 +0000 omap: iovmm: don't check 'da' to set IOVMF_DA_FIXED flag Currently IOVMM driver sets IOVMF_DA_FIXED/IOVMF_DA_ANON flags according to input 'da' address when mapping memory: da == 0: IOVMF_DA_ANON da != 0: IOVMF_DA_FIXED It prevents IOMMU to map first page with fixed 'da'. To avoid such issue, IOVMM will not automatically set IOVMF_DA_FIXED. It should now come from the user throught 'flags' parameter when mapping memory. As IOVMF_DA_ANON and IOVMF_DA_FIXED are mutually exclusive, IOVMF_DA_ANON can be removed. The driver will now check internally if IOVMF_DA_FIXED is set or not. Signed-off-by: David Cohen Signed-off-by: Tony Lindgren commit 17fe12c5a7bd674c1e6dca9cf1e250f9cd7b96b1 Author: Tony Lindgren Date: Fri Mar 11 11:55:34 2011 -0800 omap4: mux: Remove duplicate mux modes Remove duplicate mux modes to make the binary smaller: text data bss dec hex filename 9378 24472 0 33850 843a mux44xx.o 9378 19104 0 28482 6f42 mux44xx.o Cc: Benoit Cousson Signed-off-by: Tony Lindgren commit b235e007831dbf57710e59cd4a120e2f374eecb9 Author: Andy Green Date: Sat Mar 12 22:50:54 2011 +0000 OMAP2+: Common CPU DIE ID reading code reads wrong registers for OMAP4430 This adapts the register offsets used to read the CPU DIE ID registers when run on 44XX so they match what is in the OMAP4430 Reference Manual page 269 Signed-off-by: Andy Green Signed-off-by: Tony Lindgren commit da4a0f764a6017659bf32505bbd773f561eaf605 Author: Aaro Koskinen Date: Mon Mar 14 12:28:32 2011 +0000 arm: plat-omap: iommu: fix request_mem_region() error path request_mem_region() error exit will leak ioremapped memory. Fix this by moving the ioremap() after request_mem_region(), which is the proper order to do this anyway. Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren commit 02b7b94ee98a0a463195d148e5c5885a218ee16f Author: Ohad Ben-Cohen Date: Mon Mar 14 14:24:25 2011 +0000 omap: zoom: host should not pull up wl1271's irq line The wl1271's irq line is completely controlled by the 1271 device, and the host does not not need to pull it up. While there's no functional effect, letting the host pull this line up is just redundant, and wastes power. Signed-off-by: Ohad Ben-Cohen Signed-off-by: Tony Lindgren commit 6e0aa9f8a8190e0879a29bd67aa606b51734a122 Author: Thomas Gleixner Date: Mon Mar 14 10:34:35 2011 +0100 futex: Deobfuscate handle_futex_death() handle_futex_death() uses futex_atomic_cmpxchg_inatomic() without disabling page faults. That's ok, but totally non obvious. We don't hold locks so we actually can and want to fault here, because the get_user() before futex_atomic_cmpxchg_inatomic() does not guarantee a R/W mapping. We could just add a big fat comment to explain this, but actually changing the code so that the functionality is entirely clear is better. Use the helper function which disables page faults around the futex_atomic_cmpxchg_inatomic() and handle a fault with a call to fault_in_user_writeable() as all other places in the futex code do as well. Pointed-out-by: Linus Torvalds Signed-off-by: Thomas Gleixner Acked-by: Darren Hart Cc: Michel Lespinasse Cc: Peter Zijlstra Cc: Matt Turner Cc: Russell King Cc: David Howells Cc: Tony Luck Cc: Michal Simek Cc: Ralf Baechle Cc: "James E.J. Bottomley" Cc: Benjamin Herrenschmidt Cc: Martin Schwidefsky Cc: Paul Mundt Cc: "David S. Miller" Cc: Chris Metcalf LKML-Reference: Signed-off-by: Thomas Gleixner commit 07d5ecae2940ddd77746e2fb597dcf57d3c2e277 Author: Thomas Gleixner Date: Mon Mar 14 20:00:30 2011 +0100 arm: Remove bogus comment in futex_atomic_cmpxchg_inatomic() commit 522d7dec(futex: Remove redundant pagefault_disable in futex_atomic_cmpxchg_inatomic()) added a bogus comment. /* Note that preemption is disabled by futex_atomic_cmpxchg_inatomic * call sites. */ Bogus in two aspects: 1) pagefault_disable != preempt_disable even if the mechanism we use is the same 2) we have a call site which deliberately does not disable pagefaults as it wants the possible fault to be handled - though that has been changed for consistency reasons now. Sigh. I really should have seen that when committing the above. :( Catched-by-and-rightfully-ranted-at-by: Linus Torvalds Signed-off-by: Thomas Gleixner LKML-Reference: Cc: Michel Lespinasse Cc: Darren Hart commit 235e7dba0264d4c6e56ee217fc7ef6d80da5eb67 Author: Taneja, Archit Date: Mon Mar 14 23:28:21 2011 -0500 OMAP2PLUS: DSS2: FEATURES: Fix usage of dss_reg_field and dss_clk_source_name The structures dss_reg_field and dss_clk_source_name have enum members which specify the register field and the clock source respectively. These members are not used to choose the correct result in the corresponding feature functions. Remove these members and change the features array declaration to incorporate these enums. The structure dss_clk_source_name without the enum member is just a pointer to an string. Remove the structure and use a character pointer directly. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 31ef82377f1e0f1bc7d308ae4312e6cc5a431885 Author: Taneja, Archit Date: Mon Mar 14 23:28:22 2011 -0500 OMAP: DSS2: FEATURES: Functions to return min and max values of parameters Create 2 functions dss_feat_get_param_min() and dss_feat_get_param_max() which return the minimum and maximum value of a parameter. Introduce a enum in dss_features called dss_range_param which contains parameters whose ranges we are interested in. Replace this with dss_feat_get_max_dss_fck() which is specific to the parameter DSS_FCK. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 49641116392ad7522fa0efad53f7ed63f811bd88 Author: Taneja, Archit Date: Mon Mar 14 23:28:23 2011 -0500 OMAP: DSS2: FEATURES: DSI PLL parameter cleanup The DSI PLL parameters (regm, regn, regm_dispc, regm_dsi, fint) have different fields and also different Max values on OMAP3 and OMAP4. Use dss features to calculate the register fields and min/max values based on current OMAP revision. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 69b281a61442f97e8df14babc9bb6a28624886b1 Author: Tomi Valkeinen Date: Wed Mar 2 14:44:27 2011 +0200 OMAP: DSS2: DSI: Restructure IRQ handler Clean up the IRQ handler a bit by separating collection of IRQ stats and handling of IRQ errors to separate functions. Signed-off-by: Tomi Valkeinen commit 4ae2ddddf44cd9f73def2dbdb68c6859072262ff Author: Tomi Valkeinen Date: Wed Mar 2 14:47:04 2011 +0200 OMAP: DSS2: DSI: Add ISR support Add generic ISR support for DSI interrupts. ISRs can be used instead of custom hooks in the interrupt handler. Signed-off-by: Tomi Valkeinen commit f36a06e702ef804a99ce3a286514d84610a74db5 Author: Tomi Valkeinen Date: Wed Mar 2 14:48:41 2011 +0200 OMAP: DSS2: DSI: use ISR in send_bta_sync Remove bta_completion handling from the interrupt handler, and use ISR support instead. Signed-off-by: Tomi Valkeinen commit f34bd465cae57bcce11fb7f953cfcbb18222b99e Author: Tomi Valkeinen Date: Wed Mar 2 14:52:48 2011 +0200 OMAP: DSS2: DSI: use ISR for BTA in framedone Remove bta_callback from the interrupt handler, and use ISR support instead. Signed-off-by: Tomi Valkeinen commit 773b30b22f8c5ac4ccc52775c17809cc5826cb86 Author: Tomi Valkeinen Date: Fri Oct 8 16:15:25 2010 +0300 OMAP: DSS2: DSI: catch DSI errors in send_bta_sync dsi_vc_send_bta_sync() waits for BTA interrupt with a 500ms timeout. If a DSI error happens, no BTA is received and the timeout triggers. This could be handled much faster by listening to DSI errors also. This patch uses the ISR support to notice DSI errors while waiting for the BTA, thus speeding up the fail-path considerably. Signed-off-by: Tomi Valkeinen commit d80d499ed926e70b429d309360f5910d5ad54788 Author: Tomi Valkeinen Date: Wed Mar 2 15:53:07 2011 +0200 OMAP: DSS2: DSI: fix IRQ debug prints print_irq_status functions can be called with empty irq status when full irq debugging is enabled. This patch makes print_irq_status functions return immediately when given an empty irq status to lessen the debug spam slightly. Signed-off-by: Tomi Valkeinen commit 40360217fdbbb9afbbe23639dbc964fb2735a83f Author: Abhilash Kesavan Date: Tue Mar 15 18:35:24 2011 +0900 ARM: EXYNOS4: Add support for SATA on ARMLEX4210 Adds the device definitions, platform specific initialization and clocks for SATA on ARMLEX4210. Signed-off-by: Abhilash Kesavan Signed-off-by: Kukjin Kim commit 10a8c3839810ac9af1aec836d61b92e7a879f5fa Author: Will Deacon Date: Mon Mar 14 14:00:30 2011 +0100 ARM: 6806/1: irq: introduce entry and exit functions for chained handlers Some chained IRQ handlers are written to cope with primary chips of potentially different flow types. Whether this a sensible thing to do is a point of contention. This patch introduces entry/exit functions for chained handlers which infer the flow type of the primary chip as fasteoi or level-type by checking whether or not the ->irq_eoi function pointer is present and calling back to the primary chip as necessary. Other methods of flow control are not considered. Acked-by: Thomas Gleixner Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King commit 8e97fb7945717db1773f723b99ab04f6ed1fa875 Author: Naveen Krishna Ch Date: Sat Mar 5 09:44:09 2011 +0900 ARM: EXYNOS4: Add keypad device helpers This patch adds the samsung_keypad_cfg_gpio() for EXYNOS4. Now, this helpers are only for keypad operating in PORT-0. Signed-off-by: Naveen Krishna Ch Signed-off-by: Kukjin Kim commit 344021cb12d993ff61cd9760c023e6b400da4ff7 Author: Naveen Krishna Ch Date: Sat Mar 5 09:48:31 2011 +0900 ARM: EXYNOS4: Update keypad base address This patch updates the keypad IF base address in the memory map for EXYNOS4. Signed-off-by: Naveen Krishna Ch Signed-off-by: Kukjin Kim commit f9d7bcbc41f9b80928d7a46b5e547663f163dc8e Author: Naveen Krishna Ch Date: Tue Feb 22 17:13:42 2011 +0900 ARM: EXYNOS4: Update clocks for keypad The keypad IF on EXYNOS4 uses 100MHz from PERIR functional block for clocks, this patch updates the same. Signed-off-by: Naveen Krishna Ch Signed-off-by: Kukjin Kim commit be4c33be53d85dde787c4261b18b13850cb299f1 Author: Naveen Krishna Ch Date: Tue Feb 22 17:16:58 2011 +0900 ARM: EXYNOS4: Add keypad device to the SMDKV310 This patch is to support keypad device to the SMDKV310 board. Signed-off-by: Naveen Krishna Ch Signed-off-by: Kukjin Kim commit 6d0de1577eda1fad4be14f70021135ff7df95dcf Author: Mark Brown Date: Fri Mar 11 16:10:03 2011 +0900 ARM: S3C64XX: Fix section mismatch from cpufreq init The cpufreq init function is referenced from the driver structure and we don't appear to have annotations which allow us to mark that it'll never be called after system init, causing the linker consistency infrastructure to complain. Just remove the __init annotation to avoid noise from the build. Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim commit 47a9c0ee79489a3bd4ed52f424b5e5c507768ce3 Author: Marek Szyprowski Date: Tue Mar 15 21:17:43 2011 +0900 ARM: EXYNOS4: Add missing GPYx banks This patch adds missing GPYx gpio banks on Samsung EXYNOS4 platform. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 2de0926204b100409bcd51465404ae846c7f48fd Author: Marek Szyprowski Date: Tue Mar 15 21:17:43 2011 +0900 ARM: S5P: Cleanup S5P gpio interrupt code This patch performs a global cleanup in s5p gpio interrupt support code. The code is prepared for upcoming support for gpio interrupts on EXYNOS4 platform, which has 2 gpio banks (regions) instead of one (like on S5PC110 and S5PC100). Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit a43efddc3bf8b143ff9352763cd39d425db14d27 Author: Marek Szyprowski Date: Tue Mar 15 21:17:43 2011 +0900 ARM: S5P: Add function to register gpio interrupt bank data This patch removes all global data from common s5p gpio interrupt handler code. This enables to reuse this code on EXYNOS4 platform. Instead of global data (IRQ_GPIOINT interrupt number, S5P_GPIOINT_GROUP_MAXNR groups count), a s5p_register_gpioint_bank() function is introduced. It is aimed to be called from gpiolib init. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit 721bbd4a06e83995ac1679d9cdca19a608fb0122 Author: Marek Szyprowski Date: Tue Mar 15 21:17:43 2011 +0900 ARM: EXYNOS4: Add support for gpio interrupts This patch adds support for gpio interrupts on Samsung EXYNOS4 platform. Common s5p-gpioint.c code is used for handling gpio interrupts. Each gpio line that needs gpio interrupt support must be later registered with s5p_register_gpio_interrupt() function. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim commit b34f003f271d477f61a980d280afc77929047440 Author: KyongHo Cho Date: Mon Mar 7 08:56:48 2011 +0900 ARM: EXYNOS4: Enhancement of System MMU driver This patch includes the following enhancements for System MMU: - Enhanced readability - Removal of unused data structures or their members - Simplified function definitions - Corrections of some logical errors - Full compliance with Linux coding style - Simpler way of registering callback functions of System MMU faults Signed-off-by: KyongHo Cho Signed-off-by: Kukjin Kim commit b0b6ff0b21057bb8e58b0be8b427a4713fd4b5a5 Author: KyongHo Cho Date: Mon Mar 7 09:10:24 2011 +0900 ARM: EXYNOS4: Implement Clock gating for System MMU This patch includes the implementation of the clock gating for System MMU. Initially, all System MMUs are not asserted the system clock. Asserting the system clock to a System MMU is enabled only when s5p_sysmmu_enable() is called. Likewise, it is disabled only when s5p_sysmmu_disable() is called. Therefore, clock gating on System MMUs are still invisible to the outside of the System MMU driver. Signed-off-by: KyongHo Cho Signed-off-by: Kukjin Kim commit 03df0f629483f941f83ee2fbb180a4425e99dd23 Author: Cyril Chemparathy Date: Tue Jan 18 19:21:35 2011 +0000 mfd: add driver for sequencer serial port TI's sequencer serial port (TI-SSP) is a jack-of-all-trades type of serial port device. It has a built-in programmable execution engine that can be programmed to operate as almost any serial bus (I2C, SPI, EasyScale, and others). This patch adds a driver for this controller device. The driver does not expose a user-land interface. Protocol drivers built on top of this layer are expected to remain in-kernel. Signed-off-by: Cyril Chemparathy Acked-by: Samuel Ortiz Signed-off-by: Sekhar Nori Signed-off-by: Kevin Hilman commit a72aeefebe6545ad5c9c699e1121019c1709ca77 Author: Cyril Chemparathy Date: Tue Jan 18 19:21:36 2011 +0000 spi: add ti-ssp spi master driver This patch adds an SPI master implementation that operates on top of an underlying TI-SSP port. Acked-by: Grant Likely Signed-off-by: Cyril Chemparathy Signed-off-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 24981753dd7427f14324e45b659aeba8c1c66b11 Author: Cyril Chemparathy Date: Tue Jan 18 19:21:39 2011 +0000 davinci: add tnetv107x ssp platform device This patch adds an SSP platform device definition for the tnetv107x soc family. The clock lookup entry has also been updated to match. Signed-off-by: Cyril Chemparathy Signed-off-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 08e0e1d5aec4d02153654eb7e54ba621b71d9c5a Author: Cyril Chemparathy Date: Tue Jan 18 19:21:40 2011 +0000 davinci: add ssp config for tnetv107x evm board This patch adds SSP configuration and pin muxing info for tnetv107x evm boards. Signed-off-by: Cyril Chemparathy Signed-off-by: Sekhar Nori Signed-off-by: Kevin Hilman commit f6e5306ecf269cac52cb06a2f356431f63640595 Author: Cyril Chemparathy Date: Tue Jan 18 19:21:41 2011 +0000 davinci: add spi devices on tnetv107x evm This patch adds definitions for spi devices on the tnetv107x evm platform. Signed-off-by: Cyril Chemparathy Signed-off-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 60d97a840175d3becb2e6de36537a5cdfc0ec3a9 Author: Sergei Shtylyov Date: Sun Mar 13 20:06:59 2011 +0000 davinci: DM644x EVM: register MUSB device earlier The MUSB driver doesn't see its platform device on DM644x EVM board anymore since commit 73b089b052a69020b953312a624a6e1eb5b81fab (usb: musb: split davinci to its own platform_driver) because the new probe is called as subsys_initcall() now, and the device is registered later than that by the board code. Move the registration to davinci_evm_init() -- it's safe to do so because the MUSB core device still gets initialized as fs_initcall() -- which is late enough for the I2C GPIO expander (which controls VBUS) to be initialized. Signed-off-by: Sergei Shtylyov Acked-by: Felipe Balbi Tested-by: Sekhar Nori Signed-off-by: Kevin Hilman commit 709de99df0ecf3102e7728fbd876a3591859f423 Author: Chuanxiao Dong Date: Sat Jan 22 04:09:41 2011 +0800 mmc: export eMMC4.4 enhanced area details to sysfs Enhanced area feature is a new feature defined in eMMC4.4 standard. This user data area provides higher performance/reliability, at the expense of using twice the effective media space due to the area using SLC. The MMC driver now reads out the enhanced area offset and size and adds them to the device attributes in sysfs. Enabling the enhanced area can only be done once, and should be done in manufacturing. To use this feature, bit ERASE_GRP_DEF should also be set. Documentation/ABI/testing/sysfs-devices-mmc describes the two new attributes. Signed-off-by: Chuanxiao Dong Reviewed-by: Chris Ball Signed-off-by: Chris Ball commit 3362177fe1b7c23ee8497ee720ab4d6f6ba0b840 Author: Marc-André Hébert Date: Mon Jan 31 12:31:24 2011 -0500 mmc: Fix the block device read only flag While the MMC handled the card's read only flag correctly on open, it did not setup the flag in the allocated disk structure. The consequence being that probing the /sys/class/block/mmcblkX/ro attribute always reported 0. Signed-off-by: Marc-Andre Hebert Reviewed-by: Chris Ball Tested-by: Chris Ball Signed-off-by: Chris Ball commit 732f0e31db03c84005578927ed9d4e996c3c0020 Author: Kyungmin Park Date: Sat Oct 30 12:58:56 2010 +0900 mmc: sdhci-s3c: Auto CMD12 support Samsung SDHCI host controller supports the Auto CMD12. Signed-off-by: Kyungmin Park Signed-off-by: Chris Ball commit 54d6b44a5f0da708e8a9e496df304e05e8748ef9 Author: Pawel Moll Date: Sun Feb 6 15:06:24 2011 -0500 mmc: mmc_test: Only warn about not waiting for busy if it's supported If the MMC host controller does not support waiting for card signaling busy state (MMC_CAP_WAIT_WHILE_BUSY cap), there is no point in prining the relevant warning message. Signed-off-by: Pawel Moll Reviewed-by: Matt Fleming Signed-off-by: Chris Ball commit 66c036e0142fed2484d58a2d3c7a4d21ba32b6a6 Author: Pierre Tardy Date: Sun Feb 6 19:02:48 2011 +0100 mmc: put the led blinking code after clock ungating Since mmc clock gating can also be used as a power gating tip, it's better to put the led blinking after having ungated the clock. Signed-off-by: Pierre Tardy Acked-by: Linus Walleij Signed-off-by: Chris Ball commit 57f0adc7eaaf4315d568e72069dbe48aa7e20995 Author: Pierre Tardy Date: Sun Feb 6 19:03:46 2011 +0100 mmc: add per device quirk placeholder Some cards have quirks valid for every platforms using current platform quirk hooks leads to a lot of code and debug duplication. So we inspire a bit from what exists in PCI subsystem and do our own per vendorid/deviceid quirk. We still drop the complexity of the pci quirk system (with special section tables, and so on). That can be added later if needed. Signed-off-by: Pierre Tardy Acked-by: Linus Walleij Acked-by: Ohad Ben-Cohen Signed-off-by: Chris Ball commit db9935000d95ae3f9702b7ff6ac0eef2319d8772 Author: Pierre Tardy Date: Sun Feb 6 19:03:47 2011 +0100 mmc: add MMC_QUIRK_BROKEN_CLK_GATING Some sdio card are not following sdio standard, and do not work when the sdio bus's clock is gated. To keep functionnality for all legacy driver, we turn this quirk on for every sdio card. Drivers needs to disable the quirk manually when someone verifies that their supported card works with clock gating. Signed-off-by: Pierre Tardy Acked-by: Ohad Ben-Cohen Signed-off-by: Chris Ball commit 12f8ef8fb21f3b410b28eb57fc79bfe71232512a Author: Pierre Tardy Date: Sun Feb 6 19:04:17 2011 +0100 mmc: remove BROKEN_CLK_GATING quirk for wl1271 This sdio card supports having its sdio clock shutdown. It is also not using the SDIO IRQ, but rather uses a side gpio irq. Signed-off-by: Pierre Tardy Signed-off-by: Chris Ball commit 0532ff6358ae00615cfba7212f5075356b437c66 Author: Adrian Hunter Date: Tue Feb 8 13:41:01 2011 +0200 mmc: mmc_test: make performance test area size about 4MiB The test area size was set to the preferred erase size but for comparison purposes it is better if it is the same size for different devices. Make it a multiple of preferred erase size that is greater than or equal to 4MiB. Signed-off-by: Adrian Hunter Signed-off-by: Chris Ball commit b6056d12342f936256cbf64c86459af06f11cd5e Author: Adrian Hunter Date: Tue Feb 8 13:41:02 2011 +0200 mmc: mmc_test: add tests to measure random I/O operations per second Existing performance tests measure single or sequential I/O speed. Add two random I/O tests: 33. Random read performance by transfer size 34. Random write performance by transfer size Signed-off-by: Adrian Hunter Signed-off-by: Chris Ball commit a803d551d92079beb599cc37fa407c059c82c821 Author: Adrian Hunter Date: Tue Feb 8 13:41:03 2011 +0200 mmc: mmc_test: add tests to measure large sequential I/O performance Add two large sequential I/O performance tests: 35. Large sequential read into scattered pages 36. Large sequential write from scattered pages The tests measure transfer times for 10MiB, 100MiB, 1000MiB. Signed-off-by: Adrian Hunter Signed-off-by: Chris Ball commit a803d7fbc1ae64244eb8738aa0e4ac491b45d26c Author: Simon Horman Date: Wed Feb 9 07:25:22 2011 +0900 mmc: tmio_mmc: Improve readability of the output of pr_debug_status() Reviewed-by: Guennadi Liakhovetski Signed-off-by: Simon Horman Signed-off-by: Chris Ball commit 170cba8cad5d9350f2c76bbd22013cc31ae26b0f Author: Fabio Estevam Date: Thu Jan 20 15:02:59 2011 -0200 mmc: mmc_mxc: Allow selection only for the correct platforms Currently MMC_MXC driver can be selected by all i.MX devices. Restrict its use only for the appropriate processors. Signed-off-by: Fabio Estevam Acked-by: Sascha Hauer Signed-off-by: Chris Ball commit dd6c4b9807581b37bf68ba3cd160c6859f070d39 Author: Will Newton Date: Thu Feb 10 14:37:03 2011 -0500 mmc: dw_mmc: Run card detect tasklet during slot initialisation. We need to run the card detect tasklet at the end of slot initialisation as it is possible that a card has been inserted prior to boot, so we don't see an insertion interrupt and now the card is sitting there inserted but with no power to it. Signed-off-by: Neil Jones Signed-off-by: Will Newton Reviewed-by: Matt Fleming Signed-off-by: Chris Ball commit aadb9f4110096876c6f03073415439f76f0c61ca Author: Will Newton Date: Thu Feb 10 10:40:57 2011 +0000 mmc: dw_mmc: Enable low-power mode for the card clock. Setting this bit in the clock enable register will stop the clock when the card is in the IDLE state. Signed-off-by: Will Newton Signed-off-by: Chris Ball commit 50cec37c1ac24e9a02b845242a4712e2fb092b5c Author: Will Newton Date: Thu Feb 10 10:41:02 2011 +0000 mmc: Improve MMC_TEST config text. The test file is created under debugfs, not sysfs. Also remove the unnecessary default n. Signed-off-by: Will Newton Reviewed-by: Chris Ball Signed-off-by: Chris Ball commit ce1014965ae2538e7447b19879bd0e8109690b79 Author: Mark Brown Date: Thu Feb 10 10:58:37 2011 +0000 mmc: Ensure prototypes for SD API are visible in sd.c So we know the implementation and prototypes agree with each other. Signed-off-by: Mark Brown Reviewed-by: Chris Ball Signed-off-by: Chris Ball commit 5fd11c0754fa069b6aba64b65734aa2fb193552d Author: Manoj Iyer Date: Fri Feb 11 16:25:31 2011 -0600 mmc: sdhci: Add Ricoh e823 PCI ID Signed-off-by: Manoj Iyer Cc: Signed-off-by: Chris Ball commit 266ac3f297adb72fb6c34949a38337c6fad4c7a6 Author: Linus Walleij Date: Thu Feb 10 16:08:06 2011 +0100 mmc: atmel-mci: map DMA sglist on the DMA engine As established for the MMCI, it is proper to map the DMA buffers on the DMA engine which is the one actually performing the DMA. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Ferre Signed-off-by: Chris Ball commit 88ce4db313bca1e4e6ef3b448471f85d3e14a854 Author: Linus Walleij Date: Thu Feb 10 16:08:16 2011 +0100 mmc: atmel-mci: conform to DMA-API Fixes the following: - It is perfectly legal for the dma_map_sg() to return fewer entries than were passed in. - Supply the returned numer of (possibly coalesced) entries to the device_pre_slave_sg() function. - Use the proper original sg_len when unmapping the sglist in the error path. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Ferre Signed-off-by: Chris Ball commit 5328906aa2e54a7a5e99e1ba8ee52b387e8be44b Author: Linus Walleij Date: Thu Feb 10 16:08:26 2011 +0100 mmc: atmel-mci: use dmaengine helper functions Use the new dmaengine helpers to make the code more readable. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Ferre Signed-off-by: Chris Ball commit 1ed828dbb4a90f273b2a3cc70c9c28306427ea7c Author: Linus Walleij Date: Thu Feb 10 16:09:29 2011 +0100 mmc: sh_mmcif: map DMA buffers on the DMA engine device As established for the MMCI, it is proper to map the DMA buffers on the DMA engine which is the one actually performing the DMA. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 9dc3fb5e4584630c50f7a5405efe9835d321ad44 Author: Linus Walleij Date: Thu Feb 10 16:09:40 2011 +0100 mmc: sh_mmcif: unmap with the proper sglen According to the DMA-API you shall unmap the sglists with the same sglist length as passed into the mapping function, not the returned value from the mapping function. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit f38f94c6b226f7c6888bedbcadf0ed2ddca7d029 Author: Linus Walleij Date: Thu Feb 10 16:09:50 2011 +0100 mmc: sh_mmcif: rename and retype activity variable The host_sglen is now actually used to keep track of whether DMA is active or not, so rename and retype it to bool. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit a5ece7d29d09714a690f83f6f0ce395f4374021e Author: Linus Walleij Date: Thu Feb 10 16:10:00 2011 +0100 mmc: sh_mmcif: use dmaengine helpers, drop submit check Use the new dmaengine helper functions, and drop the error check on the returned cookier from the dmaengine - we recently established that this is really not allowed to fail. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 2dc7ddc1e7e68ee7793dda0ca0d659367d035e3d Author: Linus Walleij Date: Thu Feb 10 16:10:37 2011 +0100 mmc: tmio_mmc: map DMA buffers on the DMA engine device As established for the MMCI, it is proper to map the DMA buffers on the DMA engine which is the one actually performing the DMA. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit d7554caa2c3410c07a1889a08c66288edbdc216a Author: Linus Walleij Date: Thu Feb 10 16:10:47 2011 +0100 mmc: tmio_mmc: unmap with the proper sglen According to the DMA-API you shall unmap the sglists with the same sglist length as passed into the mapping function, not the returned value from the mapping function. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 3383433ce70613514593c940a2ae4e6ab19f2b28 Author: Linus Walleij Date: Thu Feb 10 16:10:56 2011 +0100 mmc: tmio_mmc: drop dma_sglen state variable This variable doesn't seem to be used for anything after the other patches so just drop it. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 449bdc2d9d62794246351d10dd4534a239bf06b6 Author: Linus Walleij Date: Thu Feb 10 16:11:07 2011 +0100 mmc: tmio_mmc: use dmaengine helpers, drop submit check Use the new dmaengine helper functions, and drop the error check on the returned cookier from the dmaengine - we recently established that this is really not allowed to fail. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 37b7785e3ac5128809340eaeb791ca7a471c4e32 Author: Jaehoon Chung Date: Thu Feb 17 13:09:04 2011 +0900 mmc: dw_mmc: modify quirks bit-shift control If we need some quirks, maybe add quirks in future But now, quirks value set to integer..later we should be confused.. So I think that need bit-shift control. And If we need not any quirks, we didn't set anything.. (Need not DW_MCI_QUIRK_NONE) Signed-off-by: Jaehoon Chung Acked-by: Will Newton Signed-off-by: Chris Ball commit c9b2a06fb0efda37241861915a8639c27bddaa85 Author: Jaehoon Chung Date: Thu Feb 17 16:12:38 2011 +0900 mmc: dw_mmc: support 8-bit buswidth This patch adds support for 8-bit buswidth. dw_mmc can use 8-bit buswidth and set to CTYPE_8BIT in card-type register. Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Acked-by: Will Newton Signed-off-by: Chris Ball commit f53fbde48ef0a5ce7733fbc84da18014d0a11cf0 Author: Sascha Hauer Date: Fri Feb 18 10:21:09 2011 +0100 mmc: mxcmmc: use dmaengine API This switches the mxcmmc driver to use the dmaengine API. Unlike the old one this one is always present in the tree, even if no DMA is implemented, hence we can remove all the #ifdefs in from the driver. The driver automatically switches to PIO mode if no DMA support or no suitable channel is available. Signed-off-by: Sascha Hauer Acked-by: Arnd Bergmann Signed-off-by: Chris Ball commit 8154b5756d3cb850f846ff38cf35cbbb7c2b45fe Author: Wolfram Sang Date: Thu Feb 10 18:07:30 2011 +0100 mmc: sdhci-tegra: free irq on error and remove Signed-off-by: Wolfram Sang Acked-by: Olof Johansson Signed-off-by: Chris Ball commit e4243f13d10e5fbe2b84e211dcac3bc6e0792167 Author: Shawn Guo Date: Mon Feb 21 18:35:28 2011 +0800 mmc: mxs-mmc: add mmc host driver for i.MX23/28 This adds the mmc host driver for Freescale MXS-based SoC i.MX23/28. The driver calls into mxs-dma via generic dmaengine api for both pio and data transfer. Thanks Chris Ball for the indentation patch. Signed-off-by: Shawn Guo Reviewed-by: Arnd Bergmann Tested-by: Wolfram Sang Signed-off-by: Chris Ball commit 24c300199b2f9125169c09ca3e950b17c16e2eab Author: Chris Ball Date: Wed Feb 23 17:29:11 2011 -0500 mmc: sdhci-pci: Remove set-but-unused variable. drivers/mmc/host/sdhci-pci.c: In function ‘sdhci_pci_probe_slot’: drivers/mmc/host/sdhci-pci.c:913:18: warning: variable ‘addr’ set but not used [-Wunused-but-set-variable] Signed-off-by: Chris Ball Acked-by: Wolfram Sang commit b3bd1b5b0054f716e58a65d4e2e449ea0252e9dd Author: Chris Ball Date: Wed Feb 23 23:17:43 2011 +0000 mmc: cb710: Return err value in cb710_wait_while_busy() Fixes: drivers/mmc/host/cb710-mmc.c: In function ‘cb710_wait_while_busy’: drivers/mmc/host/cb710-mmc.c:182:6: warning: variable ‘err’ set but not used [-Wunused-but-set-variable] Signed-off-by: Chris Ball Acked-by: Michał Mirosław Acked-by: Wolfram Sang commit e7054ba1f73c0a0e2489251499bdbc21b88b4190 Author: Chris Ball Date: Wed Feb 23 17:29:13 2011 -0500 mmc: via-sdmmc: Remove set-but-unused variable. drivers/mmc/host/via-sdmmc.c: In function ‘via_reset_pcictrl’: drivers/mmc/host/via-sdmmc.c:805:8: warning: variable ‘addrbase’ set but not used [-Wunused-but-set-variable] Signed-off-by: Chris Ball Cc: Harald Welte Acked-by: Wolfram Sang commit 41babf753cc82ab6208903625a084bf305c32d06 Author: Jaehoon Chung Date: Thu Feb 24 13:46:11 2011 +0900 mmc: dw_mmc: support DDR mode This patch adds DDR mode support to dw_mmc. If we set any bit in UHS_REG bit[16:31], the card of that slot is supported for DDR mode. For example, if UHS_REG[16] is set, card number 0 is DDR mode. Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Acked-by: Will Newton Signed-off-by: Chris Ball commit 9b0072e2731ba2f7c702a900a0cd19a137feeb10 Author: John Rigby Date: Wed Mar 9 16:23:14 2011 -0700 ARM: omap3: Fix assembler breakage in sleep34xx.S Assembler in latest binutils needs extra option to enable smc instructions introduced in: ARM: omap3: Remove hand-encoded SMC instructions Signed-off-by: John Rigby Signed-off-by: Nicolas Pitre commit 47b21351fce4408a82abb6a8898ffc8b31f16bdc Author: Andy Green Date: Thu Mar 10 14:28:07 2011 -0700 panda twl6030 enable all irq sources This allows the overcurrent interrupt from twl6030 to be acknowledged so the panda board does not shutdown. Signed-off-by: Andy Green Signed-off-by: Nicolas Pitre commit b119601d4e226e42a067ff33116774d79dd9afbc Author: Mythri P K Date: Tue Mar 8 17:15:54 2011 +0530 OMAP4: DSS2: Add display type HDMI to DSS2 Adding display type HDMI in dss_features, overlay and the manager so that HDMI type of display will be recognized. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit 7ed024aa280cb38c8aa5c188d2d2c98f5daede10 Author: Mythri P K Date: Wed Mar 9 16:31:38 2011 +0530 OMAP4: DSS2: HDMI: Select between HDMI VENC clock source. Adding function to select between HDMI or VENC clock source. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit d3862610c95564a586951d5be291b9b0200d39fe Author: Mythri P K Date: Fri Mar 11 18:02:49 2011 +0530 OMAP4: DSS2: HDMI: Dispc gamma enable set/reset function for TV. Adding function to reset/set gamma table bit for TV interface, currently only support for disabled is added. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit 26adeece88ffe172db7e26f856b576cccfb0ec85 Author: Mythri P K Date: Tue Mar 8 17:27:56 2011 +0530 OMAP4: DSS2: HDMI: HDMI driver header file addition Adding the hdmi interface driver header file (hdmi.h) to the dss driver. Register and structure declaration done here. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit c3198a5e83121d6e3d01816f15164f158f4301d8 Author: Mythri P K Date: Sat Mar 12 12:04:27 2011 +0530 OMAP4: DSS2: HDMI: HDMI driver addition in the DSS Adding the hdmi interface driver(hdmi.c) to the dss driver. It configures the audio and video portion of HDMI based on functionality called by the panel driver. Signed-off-by: Mythri P K Signed-off-by: Yong Zhi Signed-off-by: Tomi Valkeinen commit 70be83235ea2815f6c2a5fd45753de406be6c6aa Author: Mythri P K Date: Thu Mar 10 15:48:48 2011 +0530 OMAP4: DSS2: HDMI: HDMI panel driver addition in the DSS The panel driver(hdmi_omap4_panel.c) in omap2/dss acts as a controller to manage the enable and disable requests and synchronize audio and video. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit 642e21bff200610b1d4c0e706d0a6b16ae4e25db Author: Mythri P K Date: Thu Mar 10 15:12:48 2011 +0530 OMAP4: DSS2: HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Adding kconfig and makefile changes to add support for HDMI in OMAP4. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit adbc2feee11aef2b3b0f4eff427d2ea5c211e798 Author: Mythri P K Date: Wed Mar 9 15:40:02 2011 +0530 OMAP4: DSS: HDMI: Call to HDMI module init to register driver. calling the platform registration of HDMI driver from core during initialization. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit 0425b48b3f24b0b2b1f9b4f24fd491b70a8f911c Author: Mythri P K Date: Tue Mar 8 18:50:09 2011 +0530 OMAP4: HDMI: Add HDMI structure in the board file for OMAP4 SDP Adding board file structure for display which adds the display structure with HDMI as the default driver when the display init is called. HDMI GPIO configurations are also done in this file. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit 17c84ef1e1265fad787d4082bd40a63eb6f3eeb1 Author: K, Mythri P Date: Mon Mar 14 23:57:42 2011 -0500 OMAP4: HDMI: Add HDMI structure in the board file for OMAP4 PANDA Adding board file structure for display which adds the display structure with HDMI as the default driver when the display init is called. HDMI GPIO configurations are also done in this file. Signed-off-by: Mythri P K Signed-off-by: Tomi Valkeinen commit 2f94e55ae5ddad83e661002985d2ea11b6d51d3d Author: Philip Rakity Date: Sun Feb 13 23:12:28 2011 -0800 mmc: core: comment on why sdio_reset is done at init time sdio_reset sends a CMD52 to reset the sdio card. This is highly recommended for sdio cards being reinitialized. Since we do not know if the card is being reinitialized we just send the command. SD/eMMC cards are supposed to ignore the CMD before the CMD0. Document why we are doing this. Signed-off-by: Philip Rakity Signed-off-by: Chris Ball commit b676f0391a5f6816c047cbd1e2ad2a897f3c161a Author: Philip Rakity Date: Sun Feb 13 23:13:09 2011 -0800 mmc: check if mmc cards < 2GB do sector addressing Some TOSHIBA MMC cards only support sector addressing even though the size is < 2GB. According to JEDEC Spec JESD84-A441-1 the ocr register (bits 30, 29) determine byte/sector mode. Use them. Signed-off-by: Philip Rakity Signed-off-by: Chris Ball commit f5e0cec4495398b259b3ede7cbc3ce4bd0e1cef0 Author: Guennadi Liakhovetski Date: Fri Feb 25 16:58:38 2011 +0100 mmc: sh_mmcif: support aggressive clock gating To support MMC aggressive clock gating the driver has to stop the interface clock when the .set_ios() method is called with .clock == 0. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Chris Ball commit 188d085df23e6580d50679256035ac35557f54c8 Author: Nicolas Pitre Date: Wed Mar 16 14:10:21 2011 -0400 Revert "panda twl6030 enable all irq sources" This reverts commit 47b21351fce4408a82abb6a8898ffc8b31f16bdc. A better fix was posted upstream: http://marc.info/?l=linux-omap&m=130021624629574&w=2 commit 47dc59f22a6af00691a98975d05a8a1601714e1b Author: David Anders Date: Tue Mar 15 19:10:27 2011 +0000 OMAP4: PandaBoard: remove unused power regulators the pandaboard does not use the VUSIM or VAUX1 power regulators on the TWL6030 and are left floating. if the VUSIM and VAUX1 power regulators are initilized, noise on the unloaded regulators generates an overcurrent interrupt causing the system to power down. this patch removes the initialization of the unused power regulators of VUSIM and VAUX1. Signed-off-by: David Anders Signed-off-by: Nicolas Pitre commit 4fb1aee3cb1b2acc3e841dbfda85a233d5b607ad Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:08 2011 -0400 kernel-fix/kernel-irq-fix-kstat_irqs_cpu-and-irq_to_desc-symbols kernel/irq/handle.c fix kstat_irqs_cpu and irq_to_desc symbols On Mon, Mar 16, 2009 at 05:53:37PM -0400, Mathieu Desnoyers wrote: >* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote: >> On Mon, Mar 16, 2009 at 04:25:00PM -0400, Mathieu Desnoyers wrote: >> >* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote: >> >> On Mon, Mar 16, 2009 at 03:44:59PM -0400, Mathieu Desnoyers wrote: >> >> >* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote: >> >> >> Hi All, >> >> >> >> >> >> I was attempting to build a simple ppc64_defconfig using >> >> >> the latest LTTng tag from git. When doing a: >> >> >> >> >> >> make ppc64_defconfig >> >> >> make >> >> >> >> >> >> I get the error below. >> >> >> >> >> > >> >> >Hi Josh, >> >> > >> >> >Yes, LTTng has been tested with slub, but not for the powerpc64 >> >> >cross-build. Thanks for the report, this is actually a header circular >> >> >dependency I caused. It should be fixed in LTTng 0.111. >> >> >> >> Bah. Yes, I should have clarified on ppc/ppc64. Sorry for the confusion >> >> there. >> >> >> >> >I'll have to update my powerpc64 cross compiler to test it, because I am >> >> >stucked with a broken gcc 4.1. Please tell me if 0.111 fixes the problem >> >> >for you or if you encounter other problems. >> >> >> >> Yep, the extern on tb_ticks_per_sec is what I had come up with locally. >> >> It should work fine, and does indeed get past the error I was seeing. The >> >> build now dies with: >> >> >> >> kernel/irq/handle.c:259: error: __ksymtab_irq_to_desc causes a section type conflict >> >> kernel/irq/handle.c:259: error: __ksymtab_irq_to_desc causes a section type conflict >> >> make[2]: *** [kernel/irq/handle.o] Error 1 >> >> make[1]: *** [kernel/irq] Error 2 >> >> make: *** [kernel] Error 2 >> >> make: *** Waiting for unfinished jobs.... >> >> >> > >> >Can I get your full .config ? >> >> Sure, attached. Note, this is just: >> >> make ppc64_defconfig >> make vmlinux >> >> josh > >Can you try moving this code around ? Yep, allows vmlinux and modules to build just fine. Here's a patch for you ;) Based on a patch from Josh Boyer , updated by Mathieu Desnoyers. Signed-off-by: Mathieu Desnoyers commit 51faf68d803933510e8fa91b375eb0680d36b8e8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:09 2011 -0400 nmi-safe-kernel/x86-nmi-safe-int3-and-page-fault x86 NMI-safe INT3 and Page Fault Implements an alternative iret with popf and return so trap and exception handlers can return to the NMI handler without issuing iret. iret would cause NMIs to be reenabled prematurely. x86_32 uses popf and far return. x86_64 has to copy the return instruction pointer to the top of the previous stack, issue a popf, loads the previous esp and issue a near return (ret). It allows placing immediate values (and therefore optimized trace_marks) in NMI code since returning from a breakpoint would be valid. Accessing vmalloc'd memory, which allows executing module code or accessing vmapped or vmalloc'd areas from NMI context, would also be valid. This is very useful to tracers like LTTng. This patch makes all faults, traps and exception safe to be called from NMI context *except* single-stepping, which requires iret to restore the TF (trap flag) and jump to the return address in a single instruction. Sorry, no kprobes support in NMI handlers because of this limitation. We cannot single-step an NMI handler, because iret must set the TF flag and return back to the instruction to single-step in a single instruction. This cannot be emulated with popf/lret, because lret would be single-stepped. It does not apply to immediate values because they do not use single-stepping. This code detects if the TF flag is set and uses the iret path for single-stepping, even if it reactivates NMIs prematurely. Test to detect if nested under a NMI handler is only done upon the return from trap/exception to kernel, which is not frequent. Other return paths (return from trap/exception to userspace, return from interrupt) keep the exact same behavior (no slowdown). alpha and avr32 use the active count bit 31. This patch moves them to 28. TODO : test alpha and avr32 active count modification TODO : test with lguest, xen, kvm. ** This patch depends on the "Stringify support commas" patchset ** ** Also depends on fix-x86_64-page-fault-scheduler-race patch ** tested on x86_32 (tests implemented in a separate patch) : - instrumented the return path to export the EIP, CS and EFLAGS values when taken so we know the return path code has been executed. - trace_mark, using immediate values, with 10ms delay with the breakpoint activated. Runs well through the return path. - tested vmalloc faults in NMI handler by placing a non-optimized marker in the NMI handler (so no breakpoint is executed) and connecting a probe which touches every pages of a 20MB vmalloc'd buffer. It executes trough the return path without problem. - Tested with and without preemption tested on x86_64 - instrumented the return path to export the EIP, CS and EFLAGS values when taken so we know the return path code has been executed. - trace_mark, using immediate values, with 10ms delay with the breakpoint activated. Runs well through the return path. To test on x86_64 : - Test without preemption - Test vmalloc faults - Test on Intel 64 bits CPUs. (AMD64 was fine) Changelog since v1 : - x86_64 fixes. Changelog since v2 : - fix paravirt build Changelog since v3 : - Include modifications suggested by Jeremy Changelog since v4 : - including hardirq.h in entry_32/64.S is a bad idea (non ifndef'd C code), define NMI_MASK in the .S files directly. Changelog since v5 : - Add NMI_MASK to irq_count() and make die() more verbose for NMIs. Changelog since v7 : - Implement paravirtualized nmi_return. Changelog since v8 : - refreshed the patch for asm-offsets. Those were left out of v8. - now depends on "Stringify support commas" patch. Changelog since v9 : - Only test the nmi nested preempt count flag upon return from exceptions, not on return from interrupts. Only the kernel return path has this test. - Add Xen, VMI, lguest support. Use their iret pavavirt ops in lieu of nmi_return. - update for 2.6.30-rc1 Follow NMI_MASK bits merged in mainline. Signed-off-by: Mathieu Desnoyers CC: akpm@osdl.org CC: mingo@elte.hu CC: "H. Peter Anvin" CC: Jeremy Fitzhardinge CC: Steven Rostedt CC: "Frank Ch. Eigler" commit d724da946c6919c7240dbe7b201c06176a5266d8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:10 2011 -0400 seq_file_sorted Seq_file add support for sorted list Add support for sorted list in seq_file. It aims at changing the way /proc/modules and kallsyms iterates on the module list to remove a race between module unload and module/symbol listing. The list is sorted by ascending list_head pointer address. Changelog: When reading the data by small chunks (i.e. byte by byte), the index (ppos) is incremented by seq_read() directly and no "next" callback is called when going to the next module. Therefore, use ppos instead of m->private to deal with the fact that this index is incremented directly to pass to the next module in seq_read() after the buffer has been emptied. Signed-off-by: Mathieu Desnoyers CC: Al Viro CC: Rusty Russel commit e1583bac5b51dd5e3a0a5cb00b19b08a863ed218 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:10 2011 -0400 module.c-sort-module-list Sort module list by pointer address to get coherent sleepable seq_file iterators Depends on patch : "Seq_file add support for sorted list" A race that appears both in /proc/modules and in kallsyms: if, between the seq file reads, the process is put to sleep and at this moment a module is or removed from the module list, the listing will skip an amount of modules/symbols corresponding to the amount of elements present in the unloaded module, but at the current position in the list if the iteration is located after the removed module. The cleanest way I found to deal with this problem is to sort the module list. We can then keep the old struct module * as the old iterator, knowing the it may be removed between the seq file reads, but we only use it as "get next". If it is not present in the module list, the next pointer will be used. By doing this, removing a given module will now only fuzz the output related to this specific module, not any random module anymore. Since modprobe uses /proc/modules, it might be important to make sure multiple concurrent running modprobes won't interfere with each other. Small test program for this: #include #include #include #include #define BUFSIZE 1024 int main() { int fd = open("/proc/modules", O_RDONLY); char buf[BUFSIZE]; ssize_t size; do { size = read(fd, buf, 1); printf("%c", buf[0]); usleep(100000); } while(size > 0); close(fd); return 0; } Actual test (kernel 2.6.23-rc3): dijkstra:~# lsmod Module Size Used by pl2303 18564 0 usbserial 29032 1 pl2303 ppdev 7844 0 sky2 37476 0 skge 36368 0 rtc 10104 0 snd_hda_intel 265628 0 (here, while we are printing the 2nd line, I rmmod pl2303) compudj@dijkstra:~/test$ ./module pl2303 18564 0 - Live 0xf886e000 usbserial 29032 1 pl2303, Live 0xf8865000 sky2 37476 0 - Live 0xf884f000 skge 36368 0 - Live 0xf8838000 rtc 10104 0 - Live 0xf8825000 We see the the 2nd line is garbage. Now, with my patch applied: (here, while we are printing the rtc module, I rmmod rtc) nd_hda_intel 268708 0 - Live 0xf8820000 ltt_control 2372 0 - Live 0xf8866000 rtc 10392 0 - Live 0xf886d000 skge 36768 0 - Live 0xf8871000 ltt_statedump 8516 0 - Live 0xf887b000 We see that since the rtc line was already in the buffer, it has been printed completely. (here, while we are printing the skge module, I rmmod rtc) snd_hda_intel 268708 0 - Live 0xf8820000 ltt_control 2372 0 - Live 0xf8866000 rtc 10392 0 - Live 0xf886d000 skge 36768 0 - Live 0xf8871000 ltt_statedump 8516 0 - Live 0xf887b000 sky2 38420 0 - Live 0xf88cd000 We see that the iteration continued at the same position even though the rtc module, located in earlier addresses, was removed. Changelog: When reading the data by small chunks (i.e. byte by byte), the index (ppos) is incremented by seq_read() directly and no "next" callback is called when going to the next module. Therefore, use ppos instead of m->private to deal with the fact that this index is incremented directly to pass to the next module in seq_read() after the buffer has been emptied. Before fix, it prints the first module indefinitely. The patch fixes this. Changelog: - Remove module_mutex usage: depend on functions implemented in module.c for that. Signed-off-by: Mathieu Desnoyers CC: Al Viro CC: Rusty Russel commit 0f5aadf495a3975ecdf9ce1590d8bf197081e741 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:11 2011 -0400 trace-clock/get-cycles-kconfig-have-get-cycles get_cycles() : kconfig HAVE_GET_CYCLES Create a new "HAVE_GET_CYCLES" architecture option to specify which architectures provide 64-bits TSC counters readable with get_cycles(). It's principally useful to only enable high-precision tracing code only on such architectures and don't even bother building it on architectures which lack such support. It also requires architectures to provide get_cycles_barrier() and get_cycles_rate(). I mainly use it for the "priority-sifting rwlock" latency tracing code, which traces worse-case latency induced by the locking. It also provides the basic changes needed for the LTTng timestamping infrastructure. Signed-off-by: Mathieu Desnoyers CC: David Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit 6f77b90cb86aff23c026e7e067e38aca5089d637 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:11 2011 -0400 trace-clock/get-cycles-x86-have-get-cycles get_cycles() : x86 HAVE_GET_CYCLES This patch selects HAVE_GET_CYCLES and makes sure get_cycles_barrier() and get_cycles_rate() are implemented. Signed-off-by: Mathieu Desnoyers CC: David Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit ce4cf336c1e13db2d1adb894b4aa33ee71f07b07 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:12 2011 -0400 trace-clock/get-cycles-sparc64-have-get-cycles get_cycles() : sparc64 HAVE_GET_CYCLES This patch selects HAVE_GET_CYCLES and makes sure get_cycles_barrier() and get_cycles_rate() are implemented. Changelog : - Use tb_ticks_per_usec * 1000000 in get_cycles_rate(). Signed-off-by: Mathieu Desnoyers Acked-by: David S. Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit e2294e360547480d342620e7ce7138190bb5f4d7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:13 2011 -0400 trace-clock/get-cycles-powerpc-have-get-cycles get_cycles() : powerpc64 HAVE_GET_CYCLES This patch selects HAVE_GET_CYCLES and makes sure get_cycles_barrier() and get_cycles_rate() are implemented. Signed-off-by: Mathieu Desnoyers CC: benh@kernel.crashing.org CC: paulus@samba.org CC: David Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit fb14d20766a03194fcd46d904cef267a9dd2f900 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:14 2011 -0400 trace-clock/mips-export-hpt-frequency-for-get-cycles MIPS : export hpt frequency for get_cycles get_cycles_rate() needs to export the hpt frequency to modules (e.g. LTTng). Signed-off-by: Mathieu Desnoyers CC: Ralf Baechle commit 231e852aa20b7f5a98c5df3ddf752f8ea69f8138 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:14 2011 -0400 trace-clock/get-cycles-mips-have-get-cycles get_cycles() : MIPS HAVE_GET_CYCLES_32 partly reverts commit efb9ca08b5a2374b29938cdcab417ce4feb14b54. Selects HAVE_GET_CYCLES_32 only on CPUs where it is safe to use it. Currently consider the "_WORKAROUND" cases for 4000 and 4400 to be unsafe, but should probably add other sub-architecture to the blacklist. Do not define HAVE_GET_CYCLES because MIPS does not provide 64-bit tsc (only 32-bits). get_cycles_rate() now uses mips_hpt_frequency. Signed-off-by: Mathieu Desnoyers CC: Ralf Baechle CC: David Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit c9aeb4561dbf10ec1d69d91947a24f7ba8de83e8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:15 2011 -0400 trace-clock/trace-clock-core Trace clock core 32 to 64 bits clock extension. Extracts 64 bits tsc from a [1..32] bits counter, kept up to date by periodical timer interrupt. Lockless. It's actually a specialized version of cnt_32_to_63.h which does the following in addition : - Uses per-cpu data to keep track of counters. - It limits cache-line bouncing - I supports machines with non-synchronized TSCs. - Does not require read barriers, which can be slow on some architectures. - Supports a full 64-bits counter (well, just one bit more than 63 is not really a big deal when we talk about timestamp counters). If 2^64 is considered long enough between overflows, 2^63 is normally considered long enough too. - The periodical update of the value is insured by the infrastructure. There is no assumption that the counter is read frequently, because we cannot assume that given the events for which tracing is enabled can be dynamically selected. - Supports counters of various width (32-bits and below) by changing the HW_BITS define. What cnt_32_to_63.h does that this patch doesn't do : - It has a global counter, which removes the need to do an update periodically on _each_ cpu. This can be important in a dynamic tick system where CPUs need to sleep to save power. It is therefore well suited for systems reading a global clock expected to be _exactly_ synchronized across cores (where time can never ever go backward). Q: > do you actually use the RCU internals? or do you just reimplement an RCU > algorithm? > A: Nope, I don't use RCU internals in this code. Preempt disable seemed like the best way to handle this utterly short code path and I wanted the write side to be fast enough to be called periodically. What I do is: - Disable preemption at the read-side : it makes sure the pointer I get will point to a data structure that will never change while I am in the preempt disabled code. (see *) - I use per-cpu data to allow the read-side to be as fast as possible (only need to disable preemption, does not race against other CPUs and won't generate cache line bouncing). It also allows dealing with unsynchronized TSCs if needed. - Periodical write side : it's called from an IPI running on each CPU. (*) We expect the read-side (preempt off region) to last shorter than the interval between IPI updates so we can guarantee the data structure it uses won't be modified underneath it. Since the IPI update is launched each seconds or so (depends on the frequency of the counter we are trying to extend), it's more than ok. Changelog: - Support [1..32] bits -> 64 bits. I volountarily limit the code to use at most 32 bits of the hardware clock for performance considerations. If this is a problem it could be changed. Also, the algorithm is aimed at a 32 bits architecture. The code becomes muuuch simpler on a 64 bits arch, since we can do the updates atomically. Signed-off-by: Mathieu Desnoyers CC: Nicolas Pitre CC: Ralf Baechle CC: benh@kernel.crashing.org CC: paulus@samba.org CC: David Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit 2adb27366f7d337eb7a41298842c6d3d8987e603 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:15 2011 -0400 trace-clock/trace-clock-generic Trace clock generic Wrapper to use the lower level clock sources available on the systems. Fall-back on a counter incremented by a timer interrupt every jiffy or'd with a logical clock for architectures lacking CPU timestamp counters. A generic fallback based on a logical clock and the timer interrupt is available. generic - Uses jiffies or'd with a logical clock extended to 64 bits by trace-clock-32-to-64. i386 - Uses TSC. If detects non synchronized TSC, uses mixed TSC-logical clock. mips - Uses TSC extended atomically from 32 to 64 bits by trace-clock-32-to-64. powerpc - Uses TSC. sparc64 - Uses TSC. x86_64 - Uses TSC. If detects non synchronized TSC, uses mixed TSC-logical clock Signed-off-by: Mathieu Desnoyers CC: Ralf Baechle CC: benh@kernel.crashing.org CC: paulus@samba.org CC: David Miller CC: Linus Torvalds CC: Andrew Morton CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt CC: linux-arch@vger.kernel.org commit 16b87f2c74bd34eabe5b14b7a69c07d51cbd555f Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:16 2011 -0400 trace-clock/powerpc-trace-clock Powerpc : Trace clock Powerpc implementation of trace clock with get_tb(). Signed-off-by: Mathieu Desnoyers CC: benh@kernel.crashing.org CC: paulus@samba.org CC: linux-arch@vger.kernel.org commit 17e5074afa55a5759d3380cdc9a9eb719e4c39d0 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:16 2011 -0400 trace-clock/sparc64-trace-clock Sparc64 : Trace clock Implement sparc64 trace clock. Signed-off-by: Mathieu Desnoyers Acked-by: David S. Miller CC: linux-arch@vger.kernel.org commit 4ede9efaf07eedf3ba0afcd9e4a609d7589780ab Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:16 2011 -0400 trace-clock/sh-trace-clock LTTng timestamp sh This patch adds the timestamping mechanism in the trace-clock.h arch header file. The new timestamp functions use the TMU channel 1. This code only works if the TMU channel 1 is initialized during the kernel boot. Big fat warning(TM) from Mathieu Desnoyers : This patch seems to assume TMU channel 1 is setup at boot. Is it always true on all SuperH boards ? Is there some Kconfig selection that should be done here ? Make sure this patch does not break get_cycles on SuperH before merging. Second warning: Hopefully, new 2.6.33 ifdefs are deprecated by the lttng implementation. Includes: sh: fixed a wrong header path into the architecture timex file renamed trace_clock_get_timestamp as trace_clock_read From: Giuseppe Cavallaro Signed-off-by: Giuseppe Cavallaro Signed-off-by: Mathieu Desnoyers CC: Paul Mundt CC: linux-sh@vger.kernel.org commit 2b5bd1289ed65c0c39aacd0932461bb04e6b546f Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:18 2011 -0400 trace-clock/test-tsc-sync LTTng - TSC synchronicity test Test TSC synchronization across CPUs. Architecture independant and can therefore be used on various architectures. Aims at testing the TSC synchronization on a running system (not only at early boot), with minimal impact on interrupt latency. I've written this code before x86 tsc_sync.c existed and given it worked well for my needs, I never switched to tsc_sync.c. Although it has the same goal, it does it a bit differently : tsc_sync looks at the cycle counters on two CPUs to see if one compared to the other are going backward when read in loop. The LTTng code synchronizes both cores with a counter used as a memory barrier and then reads the two TSCs at a delta equal to the cache line exchange. Instruction and data caches are primed. This test is repeated in loops to insure we deal with MCE, NMIs which could skew the results. The problem I see with tsc_sync.c is that is one of the two CPUs is delayed by an interrupt handler (for way too long) while the other CPU is doing its check_tsc_warp() execution, and if the CPU with the lowest TSC values runs first, this code will fail to detect unsynchronized CPUs. This sync test code does not have this problem. A following patch replaces the x86 tsc_sync.c code by this architecture independant code. This code also adds the kernel parameter force_tsc_sync=1 which forces resynchronization of CPU TSCs when a CPU is hotplugged. Signed-off-by: Mathieu Desnoyers CC: Ingo Molnar CC: Jan Kiszka CC: Linus Torvalds CC: Andrew Morton CC: Peter Zijlstra CC: Thomas Gleixner CC: Steven Rostedt commit 8b55d26be9f04859f08dbf2073461a95c03e8e19 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:18 2011 -0400 trace-clock/x86-remove-arch-specific-tsc_sync x86 : remove arch-specific tsc_sync.c Depends on the new arch. independent kernel/time/tsc-sync.c Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Ingo Molnar CC: H. Peter Anvin CC: Linus Torvalds CC: Andrew Morton CC: Peter Zijlstra CC: Steven Rostedt commit 8381dc588ed740269f18537fef5063186922b77a Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:19 2011 -0400 trace-clock/mips-use-tsc_sync MIPS use tsc_sync.c tsc-sync.c is now available to test if TSC is synchronized across cores. Given I currently don't have access to a MIPS board myself, help trying to use it when CPUs go online and testing the implementation would be welcome. Signed-off-by: Mathieu Desnoyers CC: Ralf Baechle CC: Peter Zijlstra commit 54efb5b9cba9c43474e8a3568d38f69123f7e73e Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:19 2011 -0400 trace-clock/mips-create-empty-sync_core MIPS create empty sync_core() Needed by architecture-independant tsc-sync.c. Signed-off-by: Mathieu Desnoyers CC: Ralf Baechle CC: Peter Zijlstra commit 638aa0c32d106e18cb99059d47ea0b4360b15b06 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:19 2011 -0400 trace-clock/mips-trace-clock MIPS : Trace clock MIPS get_cycles only returns a 32 bits TSC (see timex.h). The assumption there is that the reschedule is done every 8 seconds or so. Given that tracing needs to detect delays longer than 8 seconds, we need a full 64-bits TSC, which is provided by trace-clock-32-to-64. I leave the "depends on !CPU_R4400_WORKAROUNDS" in Kconfig because the solution proposed by Ralf to deal with the R4400 bug is racy, so let's just not support this broken architecture. :( This patch uses the same cache-line bouncing algorithm used for x86. This is a best-effort to support architectures lacking synchronized TSC without adding a lot of complexity too soon. This keeps room for improvement in a second phase. Signed-off-by: Mathieu Desnoyers CC: Ralf Baechle CC: Peter Zijlstra commit 83922c9929caba21a5bbdfa1a560a5f1c6eddb47 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:20 2011 -0400 trace-clock/x86-trace-clock x86 trace clock X86 trace clock. Depends on tsc_sync to detect if timestamp counters are synchronized on the machine. I am leaving this poorly scalable solution for now as this is the simplest, yet working, solution I found (compared to using the HPET which also scales very poorly, probably due to bus contention). This should be a good start and let us trace a good amount of machines out there. A "Big Fat" (TM) warning is shown on the console when the trace clock is used on systems without synchronized TSCs to tell the user to - use force_tsc_sync=1 - use idle=poll - disable Powernow or Speedstep In order to get accurate and fast timestamps. This keeps room for further improvement in a second phase. Changelog: - freq_scale is not used as a divisor rather than multiplier to support systems with frequency < 1HZ. Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Ingo Molnar CC: H. Peter Anvin CC: Linus Torvalds CC: Andrew Morton CC: Peter Zijlstra CC: Steven Rostedt commit a056351d5d29b1570fc729866875069b71f26d0a Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:20 2011 -0400 trace-clock/trace-clock-use-access-once Trace clock use ACCESS_ONCE We need to tell the compiler to only read the index variable once to protect against interrupts. Signed-off-by: Mathieu Desnoyers commit bb57a05e70c10ee9a6ebb8d0bb14608506d98f02 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:21 2011 -0400 trace-clock/trace-clock-dont-use-del-timer-sync trace clock 32-to-64 : don't use del_timer_sync cannot use del_timer_sync with add_timer_on. The proper way to do it is to send an IPI which does a del_timer on the remote CPU. Signed-off-by: Mathieu Desnoyers commit cb1a4478031726da276ad85efc2e89afb5bc01b7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:21 2011 -0400 LTTng tracer core LTTng channels are still tied to markers, so we need to keep a few headers in the kernel tree for now. Signed-off-by: Mathieu Desnoyers commit 84ee25891ad85acd920109cc1c32eab1ffc68a60 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:22 2011 -0400 lttng-core/lttng-core-x86 LTTng core x86 Adds OOPS printing indication of nesting within tracer code. Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Ingo Molnar CC: H. Peter Anvin commit 676f8b11d57da2b63a6ede33f0c9ecd9644ef5c1 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:22 2011 -0400 lttng-core/lttng-core-powerpc LTTng core powerpc Adds OOPS printing indication of nesting within tracer code. Signed-off-by: Mathieu Desnoyers commit a04d1a471c6e498abaf826de24d01f35296868b3 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:23 2011 -0400 poll-wait-exclusive Poll : add poll_wait_set_exclusive Problem description : In LTTng, all lttd readers are polling all the available debugfs files for data. This is principally because the number of reader threads is user-defined and there are typical workloads where a single CPU is producing most of the tracing data and all other CPUs are idle, available to consume data. It therefore makes sense not to tie those threads to specific buffers. However, when the number of threads grows, we face a "thundering herd" problem where many threads can be woken up and put back to sleep, leaving only a single thread doing useful work. Solution : I just created a patch which adds a poll_wait_set_exclusive() primitive to poll(), so the code which implements the pollfd operation can specify that only a single waiter must be woken up. poll_wait_set_exclusive : set poll wait queue to exclusive Sets up a poll wait queue to use exclusive wakeups. This is useful to wake up only one waiter at each wakeup. Used to work-around "thundering herd" problem. Signed-off-by: Mathieu Desnoyers CC: William Lee Irwin III CC: Ingo Molnar commit f199490b85172bd24933b75adf86598b6e858ab5 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:23 2011 -0400 splice-support-modules Splice and pipe : export pipe buf operations for GPL modules LTTng splice transport use the generic pipe and splice operations from a GPL module. Signed-off-by: Mathieu Desnoyers CC: Jens Axboe CC: Linus Torvalds CC: Ingo Molnar commit babb6d00c0054a5b70eebd0a3ef438218ebfa4fd Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:24 2011 -0400 immediate-values/immediate-values-stub-header Immediate Values Stub header For Markers tree integration. Signed-off-by: Mathieu Desnoyers commit f079e3b167a68a6ea2fac1afae1fa8daef7de249 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:24 2011 -0400 lttng-instrumentation/revert-marker-remove2 revert marker remove2 LTTng tree (internal). revert commit 115e8a288252ef748f34f8b7c1115c563d702eda Signed-off-by: Mathieu Desnoyers commit e5cfc0cc0b977d11bfc42d71e08ebbdd572f7e5a Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:25 2011 -0400 lttng-instrumentation/revert-marker-remove revert marker remove LTTng tree (internal). revert commit fc5377668c3d808e1d53c4aee152c836f55c3490 Signed-off-by: Mathieu Desnoyers commit d8bf1f2c86d957f56acd4e3c8445d6173fda6370 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:26 2011 -0400 lttng-instrumentation/linux-kernel-markers-iterator Linux Kernel Markers - Iterator Add marker iterators. Useful for /proc interface (listing markers). Depends on seq_file_sorted.patch module.c-sort-module-list.patch to have the module list sorted. Signed-off-by: Mathieu Desnoyers commit 79afefef27638c7cfb8b93b75ea1c73dd837aa6a Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:26 2011 -0400 lttng-instrumentation/markers-support-for-proprietary-modules Markers Support for Proprierary Modules There seems to be good arguments for markers to support proprierary modules. So I am throwing this one-liner in and let's see how people react. It only makes sure that a module that has been "forced" to be loaded won't have its markers used. It is important to leave this check to make sure the kernel does not crash by expecting the markers part of the struct module by mistake in the case there is an incorrect checksum. Discussion so far : http://lkml.org/lkml/2008/1/22/226 Jon Masters writes: I notice in module.c: #ifdef CONFIG_MARKERS if (!mod->taints) marker_update_probe_range(mod->markers, mod->markers + mod->num_markers, NULL, NULL); #endif Is this an attempt to not set a marker for proprietary modules? [...] * Frank Ch. Eigler (fche@redhat.com) wrote: I can't seem to find any discussion about this aspect. If this is the intent, it seems misguided to me. There may instead be a relationship to TAINT_FORCED_{RMMOD,MODULE}. Mathieu? - FChE On Tue, 2008-01-22 at 22:10 -0500, Mathieu Desnoyers wrote: On my part, its mostly a matter of not crashing the kernel when someone tries to force modprobe of a proprietary module (where the checksums doesn't match) on a kernel that supports the markers. Not doing so causes the markers to try to find the marker-specific information in struct module which doesn't exist and OOPSes. Christoph's point of view is rather more drastic than mine : it's not interesting for the kernel community to help proprietary modules writers, so it's a good idea not to give them marker support. (I CC'ed him so he can clarify his position). * Frank Ch. Eigler (fche@redhat.com) wrote: [...] Another way of looking at this though is that by allowing/encouraging proprietary module writers to include markers, we and their users get new diagnostic capabilities. It constitutes a little bit of opening up, which IMO we should reward rather than punish. * Vladis Ketnieks (Valdis.Kletnieks@vt.edu) wrote: On Wed, 23 Jan 2008 09:48:12 EST, Mathieu Desnoyers said: > This specific one is a kernel policy matter, and I personally don't > have a strong opinion about it. I agree that you raise a good counter > argument : it can be useful to proprietary modules users to be able to > extract tracing information from those modules to argue with their > vendors that their driver/hardware is broken (a tracer is _very_ useful > in that kind of situation). Amen, brother. Been there, done that, got the tshirt (not on Linux, but other operating systems). > However, it is also useful to proprieraty > module writers who can benefit from the merged kernel/modules traces. > Do we want to give them this ability ? The proprietary module writer has the *source* for the kernel and their module. There's no way you can prevent the proprietary module writers from using this feature as long as you allow other module writers to use it. > It would surely help writing > better proprieraty kernel modules. The biggest complaint against proprietary modules is that they make it impossible for *us* to debug. And you want to argue *against* a feature that would allow them to develop better code that causes less crashes, and therefor less people *asking* for us to debug it? Remember - when a user tries a Linux box with a proprietary module, and the experience sucks because the module sucks, they will walk away thinking "Linux sucks", not "That module sucks". Signed-off-by: Mathieu Desnoyers Acked-by: Jon Masters CC: "Frank Ch. Eigler" CC: Jon Masters CC: Rusty Russell CC: Christoph Hellwig CC: Linus Torvalds CC: Andrew Morton commit bb8d9ad4504017c1c882543bbf460194858da2ae Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:26 2011 -0400 lttng-instrumentation/markers-remove-old-comment Markers remove old comment > > + * Note : the empty asm volatile with read constraint is used here instead of a > > + * "used" attribute to fix a gcc 4.1.x bug. > > There seems no empty asm... Signed-off-by: Mathieu Desnoyers commit 36040ebd961ad67ff127f3f7f615918eaae41f1e Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:27 2011 -0400 immediate-values/linux-kernel-markers-immediate-values Linux Kernel Markers - Use Immediate Values Make markers use immediate values. Changelog : - Use imv_* instead of immediate_*. Signed-off-by: Mathieu Desnoyers commit 5828c71e65d312dbf4cf106fa5b38959744f331f Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:28 2011 -0400 lttng-instrumentation/markers-use-dynamic-channels Markers use dynamic channels Make marker infrastructure use dynamic channels, adding a new (first) parameter to trace_mark( : the channel name where the data must be sent. Switch to per-channel marker IDs. Marker IDs are now managed by marker infrastructure rather than LTTng. Signed-off-by: Mathieu Desnoyers commit 7b67256d4c03d19c8526ff63dedbe687a661b6ed Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:28 2011 -0400 lttng-instrumentation/marker.h-api-update Marker header API update Add channel id field to marker structure. Identifies the buffer group in which the event will be written. Signed-off-by: Mathieu Desnoyers commit 4224a05e8598970a6455729ccc7dc02dbda4c6ee Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:29 2011 -0400 lttng-instrumentation/marker.c-api-update Marker API update Add channel id field to marker structure. Identifies the buffer group in which the event will be written. Adapt the marker.c file to manage the new field. Signed-off-by: Mathieu Desnoyers commit fa1cc6aa284a3bae836b009e3816619852672834 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:29 2011 -0400 lttng-instrumentation/markers-multi-probes-test Markers : multi-probes test Signed-off-by: Mathieu Desnoyers commit 29f552b77e4b67e3f40f2b508289fd4a72adf03e Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:29 2011 -0400 lttng-instrumentation/markers-examples-api-update Markers examples API update Signed-off-by: Mathieu Desnoyers commit 9b827e2545a7ef851246dc60aade9454c1fd63a8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:29 2011 -0400 lttng-instrumentation/lttng-instrumentation-socket LTTng instrumentation - socket Instrument socket creation and activity (msg send, receive). Socket "call" instrumentation should be completed. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: netdev@vger.kernel.org CC: David S. Miller CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 6023807158361fba71ef47eb84912cb95685dd14 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:30 2011 -0400 lttng-instrumentation/lttng-instrumentation-mm-tracepoints-probes LTTng instrumentation mm tracepoint probes Create a module which declares mm tracepoint probes, using markers. Signed-off-by: Mathieu Desnoyers CC: Alexander Viro CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Masami Hiramatsu commit 7fb71a2b37692c601febe6558b15885ace379b20 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:31 2011 -0400 lttng-instrumentation/lttng-instrumentation-irq LTTng instrumentation - irq Instrumentation of IRQ related events : irq_entry, irq_exit and irq_next_handler. It allows tracers to perform latency analysis on those various types of interrupts and to detect interrupts with max/min/avg duration. It helps detecting driver or hardware problems which cause an ISR to take ages to execute. It has been shown to be the case with bogus hardware causing an mmio read to take a few milliseconds. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. irq_entry and irq_exit not declared static because they appear in x86 arch code. The idea behind logging irq/softirq/tasklet/(and eventually syscall) entry and exit events is to be able to recreate the kernel execution state at a given point in time. Knowing which execution context is responsible for a given trace event is _very_ valuable in trace data analysis. The IRQ instrumentation instruments the IRQ handler entry and exit. Jason instrumented the irq notifier chain calls (irq_handler_entry/exit). His approach provides information about which handler is being called, but does not map correctly to the fact that _multiple_ handlers are being called from within the same interrupt handler. From an interrupt latency analysis POV, this is incorrect. I propose we save the "action" in the irq_entry, and use the irq exit "retval" to know the return value of the last interrupt handler. So in common cases where only one interrupt handler is connected to an interrupt line, we only have 2 events. Then we also add a irq_next_handler, which saves the previous interrupt handler return value and the next handler action when there are more than 1 handler called. That would generate the minimum amount of traffic to save all the information both Jason and I need. Signed-off-by: Mathieu Desnoyers CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: Jason Baron CC: 'Peter Zijlstra' CC: Thomas Gleixner CC: Russell King CC: Masami Hiramatsu CC: "Frank Ch. Eigler" CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 793f1685b603c418002254a6511cb7199b20959f Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:31 2011 -0400 lttng-instrumentation/lttng-instrumentation-tasklets LTTng instrumentation tasklets tasklet entry and exit events. Signed-off-by: Mathieu Desnoyers CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: Jason Baron CC: 'Peter Zijlstra' CC: Thomas Gleixner CC: Russell King CC: Masami Hiramatsu CC: "Frank Ch. Eigler" CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit f71f887233ec1cd125f1ee961ec5ebec74def182 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:31 2011 -0400 lttng-instrumentation/lttng-instrumentation-softirq LTTng instrumentation softirq Compared to Jason's patch, this patch also instruments softirq raise event. Signed-off-by: Mathieu Desnoyers CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: Jason Baron CC: 'Peter Zijlstra' CC: Thomas Gleixner CC: Russell King CC: Masami Hiramatsu CC: "Frank Ch. Eigler" CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 42558e52f43aa1be99dcc7c1a74bc8b57bcfdf11 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:32 2011 -0400 lttng-instrumentation/lttng-instrumentation-timer LTTng instrumentation - timer Instrument timer activity (timer set, expired, current time updates) to keep information about the "real time" flow within the kernel. It can be used by a trace analysis tool to synchronize information coming from various sources, e.g. to merge traces with system logs. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Note : do_setitimer instrumentation could potentially be done with a more generic system call instrumentation. Signed-off-by: Mathieu Desnoyers CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: "David S. Miller" CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit b6cb709af8cfd36da0479c0fc7cb4d2da931613c Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:32 2011 -0400 lttng-instrumentation/lttng-instrumentation-kernel LTTng instrumentation - kernel Instrument the core kernel : module load/free and printk events. It helps the tracer to keep track of module related events and to export valuable printk information into the traces. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: Andrew Morton CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 710fff2054cc7838d7e98714e4a78610a52547a2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:33 2011 -0400 lttng-instrumentation/lttng-instrumentation-filemap LTTng instrumentation - filemap Instrumentation of waits caused by memory accesses on mmap regions. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: linux-mm@kvack.org CC: Dave Hansen CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 85f84b8888712d234a3746fdf74a9ff36c58a8aa Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:34 2011 -0400 lttng-instrumentation/lttng-instrumentation-swap LTTng instrumentation - swap Instrumentation of waits caused by swap activity. Also instrumentation swapon/swapoff events to keep track of active swap partitions. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: linux-mm@kvack.org CC: Dave Hansen CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: Frederic Weisbecker CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 4298d6b069039c7f8e676f3b7499a00a4426971b Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:34 2011 -0400 lttng-instrumentation/lttng-instrumentation-fs LTTng instrumentation - fs Core filesystem tracepoints. Tracepoints added : fs_buffer_wait_end fs_buffer_wait_start fs_close fs_exec fs_ioctl fs_llseek fs_lseek fs_open fs_poll fs_pread64 fs_pwrite64 fs_read fs_readv fs_select fs_write fs_writev Instrument the core FS events, extracting the information when it is available. e.g. the instrumentation of "reads" is inserted _after_ the read, when the information is ready. This would not be possible if the instrumentation would be placed elsewhere (at the beginning of the system call for instance). Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: Alexander Viro CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 54e6171895006a006a71fd70183fef1f0375882b Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:35 2011 -0400 lttng-instrumentation/lttng-instrumentation-memory LTTng instrumentation - memory page faults Instrument the page fault entry and exit. Useful to detect delays caused by page faults and bad memory usage patterns. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: Andi Kleen CC: linux-mm@kvack.org CC: Dave Hansen CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit efc1681fb4d936ee043f181898a38aeec5b7851d Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:35 2011 -0400 lttng-instrumentation/lttng-instrumentation-page_alloc LTTng instrumentation - page_alloc Paging activity instrumentation. Instruments page allocation/free to keep track of page allocation. This does not cover hugetlb activity, which is covered by a separate patch. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: Martin Bligh CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 0a9c8d5c51c3e20809f36bdccb55af3ea3101cbf Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:36 2011 -0400 lttng-instrumentation/lttng-instrumentation-hugetlb LTTng instrumentation - hugetlb Instrumentation of hugetlb activity (alloc/free/reserve/grab/release). Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Changelog : - instrument page grab, buddy allocator alloc, page release. Signed-off-by: Mathieu Desnoyers CC: William Lee Irwin III CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 4af65ea8d12b780336089908b2d8c87648657212 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:36 2011 -0400 lttng-instrumentation/lttng-instrumentation-net LTTng instrumentation - net Network device activity instrumentation (xmit/receive). Allows to detect when a packet had arrived on the network card or when it is going to be sent. This is the instrumentation point outside of the drivers that is the closest to the hardware. It allows to detect the amount of time taken by a packet to go through the kernel between the system call and the actual delivery to the network card (given that system calls are instrumented). Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. 2.6.29-rc : now instrument __napi_complete rather than napi_complete wrapper. Note about 2.6.31: napi_poll instrumentation is before the poll, while mainline instrumentation is after poll. Leaving both for now. Signed-off-by: Mathieu Desnoyers CC: Andrew Morton CC: netdev@vger.kernel.org CC: Jeff Garzik CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 9a9db3379450ed49fb4fbd232b46ea81dff34f7c Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:36 2011 -0400 lttng-instrumentation/lttng-instrumentation-ipv4 LTTng instrumentation - ipv4 Keep track of interface up/down for ipv4. Allows to keep track of interface address changes in a trace. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: netdev@vger.kernel.org CC: David S. Miller CC: Alexey Kuznetsov CC: CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 241138a75b964d44fdc7360f70ff0810536e57d3 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:37 2011 -0400 lttng-instrumentation/lttng-instrumentation-ipv6 LTTng instrumentation - ipv6 Instrument addr_add and del of network interfaces. Lets a tracer know the interface address changes. Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. Signed-off-by: Mathieu Desnoyers CC: Pekka Savola CC: netdev@vger.kernel.org CC: David S. Miller CC: Alexey Kuznetsov CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit 16fd1036d0559f80b8c726bac4a1dc4fe296141a Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:37 2011 -0400 lttng-instrumentation/lttng-instrumentation-ipc LTTng instrumentation - ipc Interprocess communication, core events. Added tracepoints : ipc_msg_create ipc_sem_create ipc_shm_create Those tracepoints are used by LTTng. About the performance impact of tracepoints (which is comparable to markers), even without immediate values optimizations, tests done by Hideo Aoki on ia64 show no regression. His test case was using hackbench on a kernel where scheduler instrumentation (about 5 events in code scheduler code) was added. See the "Tracepoints" patch header for performance result detail. [ edit: also add generic ipc instrumentation (2.6.34) ] Signed-off-by: Mathieu Desnoyers CC: Masami Hiramatsu CC: 'Peter Zijlstra' CC: "Frank Ch. Eigler" CC: 'Ingo Molnar' CC: 'Hideo AOKI' CC: Takashi Nishiie CC: 'Steven Rostedt' CC: Eduard - Gabriel Munteanu commit aa619d07067ee4fe4891f166fe25adb0d3dfdb8d Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:38 2011 -0400 lttng-instrumentation/lttng-instrumentation-lockdep LTTng instrumentation lockdep tracepoints lockdep_hardirqs_off lockdep_hardirqs_on lockdep_lock_acquire lockdep_lock_release lockdep_softirqs_off lockdep_softirqs_on Update for 2.6.37 to remove dependency on immediate values and play nicely with trace event lockdep instrumentation. Signed-off-by: Mathieu Desnoyers commit a8674d69f58114d5fbcdb3f01dea9dfecdf43168 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:39 2011 -0400 lttng-instrumentation/lttng-trace-rcu RCU : tracepoint instrumentation Instrument RCU classic and RCU preempt callback execution and call_rcu. Signed-off-by: Mathieu Desnoyers CC: "Paul E. McKenney" commit 3aecf6c2ad1e192bc93e629c7eef1db0ae488070 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:39 2011 -0400 lttng-instrumentation/add-input-subsystem-instrumentation Allows tracing of all input events that pass through the input subsystem. Signed-off-by: Pierre-Marc Fournier commit e4e55e43ba9db6fe3b5e401167fb89528d12a229 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:41 2011 -0400 lttng-instrumentation/lttng-instrumentation-page-cache-transition LTTng instrumentation page cache transition >> * Atsushi Tsuji (a-tsuji@bk.jp.nec.com) wrote: >>> Hi, >>> >>> I thought it would be useful to trace pagecache behavior for problem >>> analysis (performance bottlenecks, behavior differences between stable >>> time and trouble time). >>> >>> By using those tracepoints, we can describe and visualize pagecache >>> transition (file-by-file basis) in kernel and pagecache >>> consumes most of the memory in running system and pagecache hit rate >>> and writeback behavior will influence system load and performance. >>> >>> I attached an example which is visualization of pagecache status using >>> SystemTap. That graph describes pagecache transition of File A and File B >>> on a file-by-file basis with the situation where regular I/O to File A >>> is delayed because of other I/O to File B. We visually understand >>> pagecache for File A is narrowed down due to I/O pressure from File B. >>> >>> The below patch is for lttng tree to add those new tracepoints. >>> >> Hi Atsushi, >> >> Great patch ! >> >> I'll merge it into the next LTTng release. >> > From: Atsushi Tsuji Signed-off-by: Atsushi Tsuji Signed-off-by: Mathieu Desnoyers commit 28f9180bf2d1726565445c485c201e4c3e02d100 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:42 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-alpha LTTng Kernel Trace Thread Flag Alpha Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit 4c47e9a7ebeaa014a8663257e0d8c23657147014 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:43 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-arm LTTng Kernel Trace Thread Flag ARM Add a thread flag to activate system-wide syscall tracing. folded omap-arm-fix-syscall-exit-trace-flag.patch. Signed-off-by: Mathieu Desnoyers commit 8d6e14641df510f3d273e9aa1416f3bfe1231760 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:43 2011 -0400 lttng-instrumentation/avr32-thread-flags-cleanup avr32 thread flags cleanup Signed-off-by: Mathieu Desnoyers CC: Haavard Skinnemoen commit 54b905fa549ecfed43c242232929157ea1e99f94 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:44 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-avr32 LTTng Kernel Trace Thread Flag AVR32 Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit 9501f793b06416d79bcd51eb2fa9fbf2bbdf46d6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:45 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-blackfin LTTng Kernel Trace Thread Flag Blackfin Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit c3b864a07b5323f11bae4324e587a52c221239b4 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:46 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-cris LTTng Kernel Trace Thread Flag Cris Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit f218d3556fad3365fe84aa84bb70b2809488fd60 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:46 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-frv LTTng Kernel Trace Thread Flag Frv Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit b46d62fc34a31f3ed5264aebf97b51f8f6f15d1d Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:47 2011 -0400 lttng-instrumentation/h8300-thread-flags-cleanup h8300 thread flags cleanup Using style found in x86. Signed-off-by: Mathieu Desnoyers CC: Yoshinori Sato commit 59a0ad3a6cde75828a1787fc778c697913db2995 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:47 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-h8300 LTTng Kernel Trace Thread Flag H8300 Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit f51f3f6fc6508a550defd24ae48ed6b1bcabb074 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:48 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-ia64 LTTng Kernel Trace Thread Flag ia64 Add a thread flag to activate system-wide syscall tracing. FIXME : Masami reported that enabling the KERNEL_TRACE thread flag did disable the gate page for gettimeofday, falling back on a standard system call. More work would be needed in this area and I don't have the architecture available. Signed-off-by: Mathieu Desnoyers CC: Masami Hiramatsu commit c819b91824c1ac736bbb77ac2ce9cbd5c914504d Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:49 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-m32r LTTng Kernel Trace Thread Flag m32r Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit ad68de0118dc5be56af437ce69eaf4444779a359 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:50 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-m68k LTTng Kernel Trace Thread Flag m68k Add a thread flag to activate system-wide syscall tracing. [2.6.37 update: nommu thread_info_no.h is gone] Signed-off-by: Mathieu Desnoyers commit 423f5c3d38490bd01d055d1bb7b60b54b5f2f0f6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:51 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-mips LTTng Kernel Trace Thread Flag MIPS Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit e2aa37ca6ec1a8974730e34af30dcd64e826649d Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:51 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-parisc LTTng Kernel Trace Thread Flag parisc Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit 8678c48518d879aef2fd829c1123e1cf78a8f4f2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:52 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-powerpc LTTng Kernel Trace Thread Flag powerpc Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit 1a8cdc201ed9967a19b2920f980b0022fbf1d9dc Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:52 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-s390 LTTng Kernel Trace Thread Flag s390 Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit 3f27212d387cb452bc6d693baecf660fa203f19b Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:53 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-sh LTTng Kernel Trace Thread Flag SH Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit cdc32a188e348f516cf480227fefe44b27a6bbd7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:53 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-sparc LTTng Kernel Trace Thread Flag sparc Add a thread flag to activate system-wide syscall tracing. Folded lttng-kernel-trace-thread-flag-sparc64.patch. Signed-off-by: Mathieu Desnoyers commit dcb5e8e536372594bdca903a8bac794817716e24 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:54 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-um LTTng Kernel Trace Thread Flag UML Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit d664b35b277bbba9d63d663312bd653bf62d6d93 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:54 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-x86 LTTng Linux Kernel Trace Thread Flag x86 Add a thread flag to activate system-wide syscall tracing. Make x86 support TIF_SYSCALL_TRACE async flag set in entry_32.S/entry_64.S. x86_64 : When the flag is inactive upon syscall entry and concurrently activated before exit, we seem to reach a state where the top of stack is incorrect upon return to user space. Fix this by fixing the top of stack and jumping to int_ret_from_sys_call if we detect that thread flags has been modified. We make sure that the thread flag read is coherent between our new test and the ALLWORK_MASK test by first saving it in a register used for both comparisons. Note : Removed : # perform syscall exit tracing ALIGN syscall_exit_work: - testb $_TIF_WORK_SYSCALL_EXIT, %cl jz work_pending TRACE_IRQS_ON ENABLE_INTERRUPTS(CLBR_ANY) # could let syscall_trace_leave() call commit 8d07fb12e9102abe9ba183d9724317e1edd8eae5 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:55 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-xtensa LTTng Kernel Trace Thread Flag xtensa Add a thread flag to activate system-wide syscall tracing. Signed-off-by: Mathieu Desnoyers commit 584daca45196dff74ce6b15fe4f698a211a61235 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:56 2011 -0400 lttng-instrumentation/lttng-kernel-trace-thread-flag-api LTTng Kernel Trace Thread Flag API Add an API to set/clear the kernel wide tracing thread flags. Implemented in kernel/sched.c. Updates thread flags *asynchronously* while holding the tasklist read lock. Upon fork, the flag must be re-copied while the tasklist write lock is held. We are holding the read lock only to make sure we don't delay thread creation for too long while iterating on all threads. Signed-off-by: Mathieu Desnoyers commit 21f33e5d766dfac4a42fd191bb8af9dcf76fce83 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:56 2011 -0400 lttng-instrumentation/lttng-instrumentation-syscall LTTng instrumentation syscall Syscall instrumentation tracepoints. Signed-off-by: Mathieu Desnoyers commit a1f04a4097be932c04d3a2d57698f92242136c18 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:56 2011 -0400 lttng-instrumentation/lttng-instrumentation-traps LTTng instrumentation trap Trap and fault instrumentation tracepoints. Signed-off-by: Mathieu Desnoyers commit 4ad4e902d24b0beaac4cab2308a1001c41837b90 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:57 2011 -0400 lttng-instrumentation/lttng-instrumentation-scheduler-arch LTTng instrumentation scheduler arch Scheduler instrumentation tracepoints probes, arch-specific (sched_kthread_create). Signed-off-by: Mathieu Desnoyers commit ba23520dff6bf3448b6238179f56274ee70363c8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:58 2011 -0400 lttng-instrumentation/lttng-instrumentation-x86 LTTng - x86 instrumentation Make x86 support TIF_SYSCALL_TRACE async flag set in entry.S When the flag is inactive upon syscall entry and concurrently activated before exit, we seem to reach a state where the top of stack is incorrect upon return to user space. Fix this by fixing the top of stack and jumping to int_ret_from_sys_call if we detect that thread flags has been modified. We make sure that the thread flag read is coherent between our new test and the ALLWORK_MASK test by first saving it in a register used for both comparisons. Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Ingo Molnar CC: H. Peter Anvin commit ab1e23d27640b08b12d68f55add7a5314c6bc14b Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:58 2011 -0400 lttng-instrumentation/lttng-instrumentation-mips LTTng - MIPS instrumentation Signed-off-by: Mathieu Desnoyers commit b6fe057e20fd792a5a6e16b48451de6cc6938c2b Author: Mathieu Desnoyers Date: Wed Mar 16 19:04:59 2011 -0400 lttng-instrumentation/lttng-instrumentation-powerpc LTTng instrumentation Powerpc Signed-off-by: Mathieu Desnoyers commit eedb8dd005de7301c4ebf913edab768c6f5f3c22 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:00 2011 -0400 lttng-instrumentation/lttng-instrumentation-sh LTTng - instrumentation SH Partial SH64 instrumentation. Changelog: - fix do_fork instrumentation - fix redeclaration of ‘pid’ within process_<32/64>. - sh: spare fixes for LTTng (includes headers, DEFINE_TRACE) Signed-off-by: Mathieu Desnoyers commit d49408874fc3aab76baacce5e7eeabae11149472 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:00 2011 -0400 lttng-instrumentation/lttng-instrumentation-sh-add-ltt-dump-tables-support lttng instrumentation sh: added LTT_DUMP_TABLES support Only support syscall descriptor table listening for SUPERH32. From: Giuseppe Cavallaro Signed-off-by: Giuseppe Cavallaro Signed-off-by: Mathieu Desnoyers commit 26549e025525e49e53ef68b01c15ff793c3d3c24 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:01 2011 -0400 lttng-instrumentation/lttng-instrumentation-sparc LTTng Sparc instrumentation syscall trace missing traps missing Signed-off-by: Mathieu Desnoyers commit a7224dc2eeaa82a85b80ee21168881bfb321f770 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:01 2011 -0400 lttng-instrumentation/lttng-instrumentation-s390 LTTng - s390 instrumentation Changelog : - added syscall entry/exit instrumentation. - 2.6.37: large update (style changes in mainline). Added space_switch_exception. Signed-off-by: Mathieu Desnoyers commit db4e01ecb2b529e38e800eb8d2a2ff8fc9666ddf Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:02 2011 -0400 lttng-statedump/lttng-export-tasklist-lock LTTng export tasklist lock Needed by LTTng modules. Signed-off-by: Mathieu Desnoyers commit 831450450be0060b41359873a1ba439bd2e6701c Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:02 2011 -0400 lttng-statedump/lttng-export-irq_desc Export IRQ descriptor structure on every architectures. Currently, only a few architectures export the irq_desc structure. This is useful for loadable modules which are not part of the kernel but need to iterate on the irq descriptors to list them. Signed-off-by: Mathieu Desnoyers commit bcedc04b7b066fcfb277d430c308688d823039d5 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:02 2011 -0400 lttng-statedump/lttng-statedump-swap LTTng statedump swap files dump Dumps the kernel status at trace start. Iteration over kernel data structures divided in chunks so no lock is held for too long. Tracing being active at that time logs information about concurrent modification to data structures when lock is released. [Edit Mathieu Desnoyers] License changed to Dual LGPL v2.1/GPL v2 license. Swap file dump. Signed-off-by: Mathieu Desnoyers commit cf847b095c9d76cf6ae79f1f381add61b64a7a1d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:03 2011 -0400 lttng-statedump/export-get-files-struct-symbol Export get_files_struct symbol Export put_files_struct and get_files_struct, used by ltt-statedump module. Signed-off-by: Mathieu Desnoyers commit 597ec833dfdb701964818550b6a0174d9dd97ccc Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:03 2011 -0400 lttng-statedump/lttng-statedump-module-list LTTng instrumentation statedump module.c list List modules for ltt-statedump Signed-off-by: Mathieu Desnoyers commit ba7ed7f55c38797ea58774d621a5964e85edfd91 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:04 2011 -0400 lttng-statedump/fix-wan-desc-offset Fix WAN desc_offset name clash desc_offset is useful in desc_32.h. Rename desc_offset to hd_desc_offset (static inline function in a driver). Signed-off-by: Mathieu Desnoyers commit 3193831d2691005218752ef95b10f3afee1086d1 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:04 2011 -0400 lttng-statedump/lttng-statedump-x86 lttng statedump x86 Signed-off-by: Mathieu Desnoyers commit 13a7003720e34d2d304e0403782803ad9804780c Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:05 2011 -0400 markers-update-to-channel-api Markers update to new channel API Update marker users accordingly. Signed-off-by: Mathieu Desnoyers commit 30dae5653f72fefb28351b7dece29a0d9e412267 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:06 2011 -0400 lttng-instrumentation-separate-socketcall-tracepoint Now lttng trace only sys_socket_call for sys_socket, sys_bind and others. But on some arch(for ex, ia64) which lacks of sys_socket_call, we can't get those syscall traced. This patch add separate socketcall tracers to sys_socket, sys_bind, etc. So people who using ia64(and other arch without sys_socket_call) can trace each socket calls. Another benefit is that we can get detail information for those socket calls now.(we can see only arg1 before this patch) Signed-off-by: Zhao Lei Signed-off-by: Mathieu Desnoyers commit 55873f926bbeca07b4dbdf152b40366c15e386e2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:06 2011 -0400 lttng-instrumentation-fix-tracepoints-for-network-socket Hi, Currently, the tracepoints for network socket could not trace all the network activity due to its location, sock_{send/recv}msg, because there is the path without through sock_{send/recv}msg (like below). Kernel path for sendmsg: sys_write sys_{send/sendto/sendmsg} | | sock_aio_write sock_sendmsg \ / \ / __sock_sendmsg So I think __sock_{send/recv}msg is better tracepoints to track network socket activity. And I'd like to request to get the return value on those tracepoints to track the real size of sending/recieving by user and the error status of __sock_{send/recv}msg. The below patch is for lttng tree to change those tracepoints. Mathieu: Removed the return value from those tracepoints. They can be recorded with the syscall_exit event. From: Atsushi Tsuji Signed-off-by: Atsushi Tsuji Signed-off-by: Mathieu Desnoyers commit ab09cc89118995d145faa593019dd6b6dcd0cbf7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:06 2011 -0400 markers-list-from-marker-hash-table Markers - list from marker hash table The marker hash table contains the correct list of markers which are enabled, even the ones which does have a marker instance in any module. This is the table we should dump in the trace, not the markers section, because otherwise we can miss a marker if it's connected before its module is loaded. Signed-off-by: Mathieu Desnoyers commit 2539206c0614972496b98c572653a42dd002eb98 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:07 2011 -0400 lttng-instrumentation-arm LTTng - ARM instrumentation Changelog : fixed the syscall_exit return value. Signed-off-by: Mathieu Desnoyers commit a00d9cb6fbd139cbf0f047b2e32dcdfd9872e72b Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:07 2011 -0400 omap-lttng-use-iter_div omap lttng use iter div ARM does no seem to like u64 div in math64.h. Use the "iter" version. Signed-off-by: Mathieu Desnoyers commit 547c87565bbb85b567e2d0c267589e4efcb29396 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:08 2011 -0400 omap-lttng-statedump-arm omap lttng statedump arm Syscall table dump for arm. Signed-off-by: Mathieu Desnoyers commit f30af286881ca5c31eacdea49602200b45577bc4 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:09 2011 -0400 omap-trace-clock-specialize omap trace clock specialize Let trace clock specialize for architectures which can only provide 31 bits of timestamp counter. On OMAP3, we need to clear the cycle counter top bit periodically to make sure the ccnt register does not overflow. Signed-off-by: Mathieu Desnoyers commit 5e3cff8f463ea93d6fdb9ffa97ad3390299232cf Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:10 2011 -0400 omap-trace-clock omap trace clock Implement LTTng trace clock for omap. Should eventually make it so it can be compiled-out, but that would imply fixing other architecture's trace clocks too. It only supports uniprocessor for now. IPIs would be needed to restore each CPU's ccnt register in sync with the 32k clock upon resync_trace_clock to support SMP. Eventually, looking at how much time is lost lost when clearing the top ccnt bit should be done, so we can compensate for the cycles lost. Signed-off-by: Mathieu Desnoyers commit 5427fc2971a966c19d3d793ede99c8cfce1e7102 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:10 2011 -0400 omap-trace-clock-add-write-trace-clock omap trace clock add write value Allow update of trace clock after a long period of time. Signed-off-by: Mathieu Desnoyers commit c46bb5e2f4af53a75a3617c049636a5b64a526fd Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:11 2011 -0400 omap-trace-clock-basic-pm-fix OMAP trace clock basic PM fix This patch sets the whole trace clock when resynchronising with the 32k timer. Just setting the cycle counter is not enough, because we would lose bits for long sleeps. Signed-off-by: Mathieu Desnoyers commit 361d369814b63cfab774aee04843c9c9f5d17b8d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:11 2011 -0400 omap-trace-clock-fix-mutex omap trace clock fix mutex This is just a quick note to let you know that I think that the mutex in kernel/trace/trace-clock-32-to-64.c might be incorrect or at least incorrectly used. I get these warnings with CONFIG_DEBUG_SPINLOCK_SLEEP, looks like irqs are disabled when the mutex is locked/unlocked. [ 174.994348] BUG: sleeping function called from invalid context at kernel/mutex.c:207 [ 175.002283] in_atomic(): 1, irqs_disabled(): 0, pid: 1678, name: lttctl [ 175.009058] INFO: lockdep is turned off. [ 175.013055] [] (dump_stack+0x0/0x14) from [] (__might_sleep+0x108/0x128) [ 175.021661] [] (__might_sleep+0x0/0x128) from [] (mutex_lock_nested+0x28/0x2dc) [ 175.030908] r4:c0885810 [ 175.033472] [] (mutex_lock_nested+0x0/0x2dc) from [] (get_synthetic_tsc+0x1c/0xa4) [ 175.042963] [] (get_synthetic_tsc+0x0/0xa4) from [] (_start_trace_clock+0x108/0x16c) [ 175.052667] r5:00000000 r4:00577f46 [ 175.056299] [] (_start_trace_clock+0x0/0x16c) from [] (get_trace_clock+0x30/0x44) [ 175.065668] [] (get_trace_clock+0x0/0x44) from [] (ltt_trace_alloc+0x60/0x3ac) [ 175.074854] [] (ltt_trace_alloc+0x0/0x3ac) from [] (alloc_write+0xe8/0x128) [ 175.083734] [] (alloc_write+0x0/0x128) from [] (vfs_write+0xbc/0x14c) [ 175.092065] r6:c4f1df70 r5:4000c2c8 r4:c4e4f9a0 [ 175.096765] [] (vfs_write+0x0/0x14c) from [] (sys_write+0x48/0xfc) [ 175.104822] r7:00000001 r6:c4e4f9a0 r5:00000000 r4:00000000 [ 175.110615] [] (sys_write+0x0/0xfc) from [] (ret_fast_syscall+0x0/0x2c) Signed-off-by: Mathieu Desnoyers commit fdc7b753e3798fe3c1fefaf83af8682f5dfc7ead Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:12 2011 -0400 markers-make-example-probes-static Markers make example probes static Sparse asked whether these could be static. Signed-off-by: Roel Kluin commit dbc92664da242fca62420a62dcfe17c64b491254 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:12 2011 -0400 module-vmalloc_sync_all_on_module_load module : vmalloc_sync_all() on module load Call vmalloc_sync_all() after module vmalloc(), to make sure the module text or data access does not generate any page fault. This is useful for kernel tracing, when the trace code is within modules, and we want to isntrument the page fault handler. Signed-off-by: Mathieu Desnoyers commit a6dfdc428edc10d00cfde7c6632bc55ce77ef861 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:12 2011 -0400 ltt-channels-make-marker-entry-permanent-for-trace-session ltt channels make marker entry permanent for trace session Text output need a permanent struct for permanent eID as long as a trace session lives. This patch keeps marker_entry alive as long as a trace session exists. Will be useful for th ltt-ascii bin-to-ascii converter. Edited by Mathieu Desnoyers. locking is insured by lock_markers(). struct marker_entry is permanent for the duration of active tracing sessions. That means : as long as a struct marker_entry channel and event IDs can be seen by an active tracing session, it stays valid until all tracing sessions end. From: Lai Jiangshan Signed-off-by: Mathieu Desnoyers commit acf087a21d89e77a1924594d85784993ce52c578 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:13 2011 -0400 markers-get-name-and-fmt-from-session-permanent-eID struct marker_entry is permanent, we introduce two APIs for getting name and fmt from eIDs. struct marker_entry is permanent for the duration of active tracing sessions. That means : as long as a struct marker_entry channel and event IDs can be seen by an active tracing session, it stays valid until all tracing sessions end. Signed-off-by: Lai Jiangshan Signed-off-by: Mathieu Desnoyers commit 554a96e3526699f5b5dd20e54d3ce5ae663e3d86 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:13 2011 -0400 markers-add-is-marker-enabled Checks if a marker is enabled using a hash table lookup. API used by trace control module. Signed-off-by: Mathieu Desnoyers commit c08d27b6ee8b74745cf38ba1bfa3230cbbb5788d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:14 2011 -0400 lttng-instrumentation-panic LTTng instrumentation panic Instrumentation of following panic and kexec related events are added: panic kernel_kexec crash_kexec It is useful for build flight-recorder program based on lttng infrastructure. From: Zhao Lei Signed-off-by: Zhao Lei Signed-off-by: Mathieu Desnoyers commit e261a0698055005ca85ee72f2b6a09a1ea8370b3 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:15 2011 -0400 rculist-add-for-each-entry-without-prefetch rculist add for_each_entry without prefetch Useful for iteration on small lists, where prefetch is slower. Signed-off-by: Mathieu Desnoyers commit f0759ad9470fc54bef1b28c6456b91aae4e33686 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:18 2011 -0400 markers-hold-markers-mutex-for-marker-section-iteration Hold the markers_mutex during marker section iteration. From: Gui Jianfeng Signed-off-by: Gui Jianfeng Signed-off-by: Mathieu Desnoyers commit 0f733f532ea9afdc04e1099adc3f8159bdd0ea79 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:18 2011 -0400 lttng-make-markers-enabled-in-advance Hi Mathieu, Sorry for the later, i'm a little busy these days. v3 -> v4 changes: - export _is_marker_present and _is_marker_enabled - hold markers_mutex around _is_marker_present and _is_marker_enabled - fix a typo This patch makes marker enabled in advance. IOW, even if the marker isn't present for the moment, you can still enable it for future use. As soon as the marker is inserted into kernel, tracing work can be started immediately. Here is an example for using the user interface: This patch assumes the marker control patch is applied. [root@localhost markers]# cd /mnt/debugfs/ltt/markers [root@localhost markers]# mkdir fs [root@localhost markers]# cd fs/ [root@localhost fs]# mkdir close [root@localhost fs]# cd close/ [root@localhost close]# echo 1 > enable [root@localhost close]# cat enable 2 [root@localhost close]# cat info Marker Pre-enabled [root@localhost close]# modprobe fs-trace [root@localhost close]# cat enable 1 [root@localhost close]# cat info Location: fs_trace format: "fd %u" state: 1 event_id: 0 call: 0xc0468192 probe single : 0xc0520ed8 You can also remove a marker directory by "rmdir" if there is no actual marker backed and isn't enabled in advance. A channel directory can be remove if there are not any marker directories in it. Signed-off-by: Gui Jianfeng Signed-off-by: Mathieu Desnoyers commit fe427e3c88da72d1bace4cbbf648ae3cd1dab5a8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:19 2011 -0400 lttng: powerpc trace-clock.h include for get_tbl Make get_tbl() and get_tb() known to powerpc by having it include (where get_tbl() and get_tb() are defined). This fixes compiler errors when get_tbl() and get_tb() were referenced by without being defined. On the other hand, was needlessly included. Remove it. From: srikanth krishnakar Signed-off-by: Mathieu Desnoyers commit f1f035759afcc05400a5890c2524ed6c36f1819b Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:19 2011 -0400 export-vmalloc-sync-all-symbol-fix export vmalloc_sync_all() fix Need to export it for all architectures. Signed-off-by: Mathieu Desnoyers commit 97da5c972f4f6c505bec697e36b5cf79d00b36aa Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:19 2011 -0400 omap-trace-clock-32-to-64-use-spinlock Need to be called in non-preemptible context. Signed-off-by: Mathieu Desnoyers commit 44a98fdad093cbf465988cca5fd593c0a4688d3e Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:20 2011 -0400 tracepoints-pm Tracepoints power management Tracepoint declarations for power management. Signed-off-by: Mathieu Desnoyers commit 6cac365c4cf7cfebef617b000fe09f05ac4f1478 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:21 2011 -0400 omap-trace-clock-use-spinlock OMAP trace clock use spinlock useful for power management Signed-off-by: Mathieu Desnoyers commit 3fbf27a3547160f497576e88f11ca8f81f3249b0 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:21 2011 -0400 omap-trace-clock-fix OMAP trace clock fix - fix interval for timer clearing the top bit. - fix the read_ccnt() primitive to clear the top bit. - Make the printk output only show once when clock is started, otherwise it is shown at every return from idle. Signed-off-by: Mathieu Desnoyers commit 1c1f96e9cbe6146c8bd1cefbdf65b8efe099d014 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:22 2011 -0400 modpost-should-learn-about-discard-section modprost should learn about __discard section Fixes : WARNING: ltt/ltt-kprobes.o (__discard): unexpected non-allocatable section. Did you forget to use "ax"/"aw" in a .S file? Note that for example contains section definitions for use in .S files. Signed-off-by: Mathieu Desnoyers commit 54f66d6ca47439a76e9a29068d65dcfa3ef0e2b4 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:22 2011 -0400 trace-clock-rename-generic-identifier Trace clock: rename generic identifier > I am having the following trouble compiling kernel linux-2.6.30-rc5 when > patched with patch-2.6.30-rc5-lttng-0.136 and wondered if this is a known > problem... > > ... > LD kernel/time/built-in.o > CC kernel/trace/ring_buffer.o > CC kernel/trace/trace.o > CC kernel/trace/trace_clock.o > CC kernel/trace/trace_output.o > CC kernel/trace/trace_stat.o > CC kernel/trace/trace_printk.o > CC kernel/trace/trace_nop.o > CC kernel/trace/trace-clock-32-to-64.o > CC kernel/trace/trace-clock.o > LD kernel/trace/built-in.o > kernel/trace/trace-clock.o:(.bss+0x0): multiple definition of `trace_clock' > kernel/trace/trace_clock.o:trace_clock.c:(.text+0x0): first defined here > arm-linux-ld: Warning: size of symbol `trace_clock' changed from 8 in > kernel/trace/trace_clock.o to 4 in kernel/trace/trace-clock.o > arm-linux-ld: Warning: type of symbol `trace_clock' changed from 2 to 1 in > kernel/trace/trace-clock.o > make[2]: *** [kernel/trace/built-in.o] Error 1 > make[1]: *** [kernel/trace] Error 2 > make: *** [kernel] Error 2 > > I *think* that this is because the symbol trace_clock appears as both a > variable and a function. > > FILE: include/asm-generic/trace-clock.h: > > extern atomic_long_t trace_clock; > > and > > FILE: kernel/trace/trace_clock.c: > > u64 notrace trace_clock(void) > { > return cpu_clock(raw_smp_processor_id()); > } > Hrm, yes. This is caused by ftrace. But given they are in mainline and LTTng isn't, the LTTng trace clock identifier will have to move. Signed-off-by: Mathieu Desnoyers commit 55d9a8c497bb13e98d15dd0b5aa9c2085934fda9 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:22 2011 -0400 markers-fix-documentation Update the documentation for DEFINE_MARKER_TP and GET_MARKER. From: Benjamin Poirier Signed-off-by: Benjamin Poirier Signed-off-by: Mathieu Desnoyers commit 46230bada00ad9e7f4c65a4a6f8c2c56fd352ff5 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:23 2011 -0400 finish-ascii-kernel-support LTTng text output module, basic features working Here is the ltt-ascii module working, with still a few TODO left. Therefore, still considered experimental. See Documentation/lttng.txt. Signed-off-by: Mathieu Desnoyers CC: Lai Jiangshan commit 7137b06e78c98bfd756a7840fd1d090622e9d465 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:23 2011 -0400 lttng-instrumentation-fix-softirq LTTng instrumentation fix softirq Fix softirq instrumentation mismatch, caused by changes in trace_event softirq event name. Signed-off-by: Mathieu Desnoyers commit 3ba7a0e993e15778c45bf8ea9341eac65d41ae4b Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:23 2011 -0400 trace-clock-fix-usage-of-trace-clock-freq-scale-as-a-multiplier Trace clock - Fix usage of trace_clock_freq_scale() as a multiplier According to http://www.lttng.org/svn/trunk/lttv, svn revision 3150 commit log: freq scale is now a divisor From: Benjamin Poirier Signed-off-by: Mathieu Desnoyers commit d43022c0918efc848aabef46e3c05454e2083fa7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:24 2011 -0400 trace-clock-32-to-64-add-compiler-barrier trace clock 32 to 64 - add compiler barrier Update-side need a compiler barrier to ensure interrupts never see the index updated before the value. Signed-off-by: Mathieu Desnoyers commit 130ab0c3215436dd26b385ceaa797be7a86f380b Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:25 2011 -0400 omap-trace-clock-32-to-64-use-spinlock-fix The definition should be turned from a mutex to a spinlock too. Signed-off-by: Mathieu Desnoyers commit aae70d0e4b75f7d37aa49e48e316b3bab3092759 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:25 2011 -0400 x86-trace-clock-use-spinlock x86 trace-clock use spinlock CPU hotplug notifiers should use spinlocks, not mutexes. They are not sleepable. Signed-off-by: Mathieu Desnoyers commit c4425d7a4cc1e92716786c2408d5a03110e3266a Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:26 2011 -0400 mips-trace-clock-use-spinlock MIPS trace-clock use spinlock CPU hotplug notifiers should use spinlocks, not mutexes. They are not sleepable. Signed-off-by: Mathieu Desnoyers commit 45e2e1df5796ade73f13975a41e6588fac612cb6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:26 2011 -0400 marker-fix-rcu markers call_rcu usage: initialize rcu_head structures Initialize rcu_head structures before passing them to call_rcu() to eliminate false positives in DEBUG_RCU_HEAD. Signed-off-by: Mathieu Desnoyers CC: "Paul E. McKenney" CC: mingo@elte.hu CC: akpm@linux-foundation.org commit ec9c4352b97d2aae6437983529b3df669bfcbb61 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:26 2011 -0400 tracepoints-improve-documentation-sample After reading the tracepoints.txt documentation, I tried to follow the instructions to run the sample, but just assigning CONFIG_SAMPLE_TRACEPOINTS=m wasn't enough to generate the tracepoints samples. I also need to set CONFIG_SAMPLES=y, otherwise nothing happens. So, this silly patch explicit says that CONFIG_SAMPLES should be set to compile those files. Signed-off-by: Breno Leitao Signed-off-by: Mathieu Desnoyers commit fe3d63ccc07ff5a9c32930f89e01ebbafe2354c1 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:27 2011 -0400 lttng-instrumentation-net-move-network-tracepoints LTTng instrumentation net: move network tracepoints One of the objectives when tracing the network subsystems is to trace packet emission as late as possible and packet arrival as soon as possible in order to have more accurate timing measurements. This patch moves the xmit tracepoint to the dev_hard_start_xmit() function, the last function called that is not network interface specific but is called for every frame. The tracepoint is also duplicated to trace each segmented packet when GSO is in effect. The receive tracepoint is moved earlier in the netif_receive_skb() function. The tracepoint is also duplicated in the netif_rx() function. This enables more precise measurements for pre-NAPI drivers. Signed-off-by: Benjamin Poirier Signed-off-by: Mathieu Desnoyers commit 6a0cf272da72e957a4ebb39df37f8fb14661945e Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:27 2011 -0400 lttng-instrumentation-net-trace-incoming-tcp-traffic LTTng instrumentation net: trace incoming TCP traffic Add a tracepoint to determine if a received packet contains a TCP segment. Signed-off-by: Benjamin Poirier Signed-off-by: Mathieu Desnoyers commit b41f14d1b68f18428150596d8a3095b3e015f034 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:27 2011 -0400 lttng-instrumentation-net-trace-incoming-udp-traffic LTTng instrumentation net: trace incoming UDP traffic Add a tracepoint to determine if a received packet contains a UDP datagram. Signed-off-by: Benjamin Poirier Signed-off-by: Mathieu Desnoyers commit 6a6acc251d269eff282b315017870df515ad6aa8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:28 2011 -0400 lttng-instrumentation-lockdep-update LTTng instrumentation - lockdep update Signed-off-by: Mathieu Desnoyers commit 3a02c6ddd4afa3dd49a25da0ab6d93b8a0861ada Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:28 2011 -0400 lttng-relay-refactoring LTTng relay refactoring - Change design to inheritance for channels and buffers. - Eliminate structure duplication for locking/allocation level of buffer and channel. - Remove now unnecessary krefs. - Fix cpu hotplug for timers. - Cleanups Impact: - Cleaner code - Smaller d-cache footprint - Complete license change for LTTng parts re-usable for userspace tracing to dual-license LGPL v2.1 / GPL v2. Signed-off-by: Mathieu Desnoyers commit b67a927633d61daaa59e72dc963fa2547efc447d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:28 2011 -0400 lttng-pm-idle-instrumentation LTTng pm_idle instrumentation, arch-specific Signed-off-by: Mathieu Desnoyers commit e6ee1522ebee41af3ea24f20432210aa7b732b81 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:29 2011 -0400 notifier-atomic-call-chain-notrace notifier atomic call chain notrace Being able to use the atomic notifier from cpu idle entry to ensure the tracer flush the last events in the current subbuffer requires the rcu read-side to be marked "notrace". Also apply to the the die notifier. Signed-off-by: Mathieu Desnoyers Reviewed-by: Paul E. McKenney Reviewed-by: Masami Hiramatsu CC: Jason Baron CC: mingo@elte.hu commit 9cf695f37cd70bbcb26cf14693267955b74ae97e Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:29 2011 -0400 idle-notifier-standardize commit 6b5e84f4cdffd8eb44cc400e1f6243cdc6662fd5 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:31 2011 -0400 idle-notifier-x86_32 idle notifier standardization x86_32 Add idle notifier callback to x86_32. Signed-off-by: Mathieu Desnoyers commit 63ceaa5a0194406c04e01f1ad0a14e748fef7da4 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:31 2011 -0400 lttng-instrumentation-idle-x86_32 lttng instrumentation idle x86_32 Signed-off-by: Mathieu Desnoyers commit 4f5fe153c1ba0f984411155b20f444e1f972468a Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:31 2011 -0400 lttng-channels-fix-recursive-lock lttng channels fix recursive lock Do channel ID compaction outside of the outer channel mutex, because it itself takes the channel mutex. Signed-off-by: Mathieu Desnoyers commit 96555bc20c81d009277e72a0c1b7edd36fe78bba Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:32 2011 -0400 markers-fix-rcu-teardown markers fix rcu teardown RCU teardown of multiple probe array is now handled sanely in markers. Signed-off-by: Mathieu Desnoyers commit 3226b710a3f0d293990ed56b3c50deae8f7a22c6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:32 2011 -0400 mips-trace-clock-fix-order mips trace clock fix order Signed-off-by: Mathieu Desnoyers commit b3178c5bb79909e3f272fe98fa3c9430296cb3ae Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:33 2011 -0400 trace-clock-provide-sleep-free-get-put trace clock provide sleep free get put Signed-off-by: Mathieu Desnoyers commit 9cc4e6457af0cfad08393bb38e455ad6005f60eb Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:33 2011 -0400 mips-fix-trace-clock-32 MIPS fix trace clock 32 trace clock for mips 32 64-cmpxchg (based on irq off and spinlock) was buggy. Signed-off-by: Mathieu Desnoyers commit e032cef3edb7e309d0becd2d90fd55982c4e70c1 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:33 2011 -0400 markers-fix-compaction markers fix compaction Signed-off-by: Mathieu Desnoyers commit 84e586ab00856e23b562386c5ea2402a1a2f4ea2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:34 2011 -0400 markers-fix-marker-present-locking-reversed markers fix marker present locking reversed Signed-off-by: Mathieu Desnoyers commit 9cdcfb49ea8b3c24809a43b30b7ddd4df89cfb22 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:34 2011 -0400 mips32-fix-trace-clock-spinlock mips32 fix trace clock spinlock v2 Signed-off-by: Mathieu Desnoyers commit 4c4e6c48a23b904a5b6dddded2a03bd68f03f4cd Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:35 2011 -0400 mips-assume-synchronized-tsc MIPS assume synchronized TSC Code for non-synchronized TSC support was broken (at least for MIPS32). I suspect the spinlock did not do well with NMIs or something like this. Revert to assuming synchronized TSCs across cores until someone send me a MIPS board to play with. Signed-off-by: Mathieu Desnoyers commit e74f96916c9f8185a51f0f832f729571f94e22a0 Author: Giuseppe Cavallaro Date: Wed Mar 16 19:05:35 2011 -0400 lttng-fix-trace-clock-definitions-for-sh Signed-off-by: Giuseppe Cavallaro Signed-off-by: Mathieu Desnoyers commit b9038ac6339303ef3f65991cda47cad9dea0ada0 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:36 2011 -0400 Fix LTTng 0.181 compilation on PowerPC LTTng fails to build on powerpc due to a missing #include in the instrumented arch/powerpc/kernel/timer.c file. Fix it. From: Josh Boyer Signed-off-by: Josh Boyer Signed-off-by: Mathieu Desnoyers commit 06ba662ed0e79388107d28254583e5641f71abe9 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:36 2011 -0400 arm-trace-clock-update-include arm trace clock update include Signed-off-by: Mathieu Desnoyers commit a77ab15f39dc60f25eaecbcfb7f0f72af080df31 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:37 2011 -0400 arm-trace-clock-update-clocksource arm trace clock update clocksource * Differs from omap tree * Signed-off-by: Mathieu Desnoyers commit 87d0f0c8422790bd8f49d84f37a51c673c65b07c Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:37 2011 -0400 omap-trace-clock-support-pm omap : trace clock support pm Support power management for omap trace clock. - Updated for 2.6.32-rc8 kernel. - Fix trace pm suspend exit (was a 2nd entry). * Differs from omap tree * Signed-off-by: Mathieu Desnoyers commit 9689d5a60f9c59ac3f8fdc49b8318ba14b0d6cfc Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:38 2011 -0400 omap-trace-clock-pm-update omap trace clock pm update Update OMAP trace clock locking. * Differs from omap tree * Signed-off-by: Mathieu Desnoyers commit 13fc41a743182902d2deca22d3de0c8eeaf753bb Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:38 2011 -0400 omap-dvfs-support OMAP dvfs support Signed-off-by: Mathieu Desnoyers commit 76d3ec57cdc5cef205ea271dddc09abbcb26cb73 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:39 2011 -0400 omap-debug-trace-clock OMAP debug trace clock Test if trace clock runs backward. Signed-off-by: Mathieu Desnoyers commit 5007f6f0d88174a6c11e3a2f82236e842e06b0c1 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:39 2011 -0400 omap-move-trace-clock-header-to-mach OMAP move trace clock header to mach Reported-by: Felipe Balbi Signed-off-by: Mathieu Desnoyers commit 75bd473a4109f181123d615bf384f1b704144453 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:40 2011 -0400 omap-merge-fix-plat-mach omap merge fix plat mach Temporary fixup for integration from linux omap to mainline tree. Signed-off-by: Mathieu Desnoyers commit 9051b3eff759d5bd7e29191360297a9d2fed6aa8 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:40 2011 -0400 omap-move-resync-timer-to-cpufreq-event omap move resync timer to cpufreq event Remove a periodic timer to save energy. Signed-off-by: Mathieu Desnoyers commit 154b6dbb6e2f6b7f6b51d52a4f36bd18387a8dc7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:41 2011 -0400 omap-stop-ccnt-in-idle omap stop ccnt in idle Let's play safe: don't assume the ccnt register is stopped while we are in idle/sleep modes. Stop it ourself. Signed-off-by: Mathieu Desnoyers commit be25a311071b16eae982b3ed5e6fbdad1a6b7bf6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:41 2011 -0400 omap-trace-clock-fix-no-cpufreq commit 78f6ccddf1c7a7889c976217d85d81290489ce2c Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:42 2011 -0400 arm-trace-clock-use-cpufreq-get arm trace clock use cpufreq get (v2) > test.freq_change: 10.429663096 "prechange", oldfreq = 600000, newfreq = > 125000, const = 0, quickfreq = 600000 > test.freq_change: 10.434801182 "postchange", oldfreq = 600000, newfreq = > 125000, const = 0, quickfreq = 600000 Ah, yes, I think this explains our issue. In arch/arm/mach-omap2/trace-clock.c: cpufreq_trace_clock() calls resync_on_32k(pm_count, cpu) at CPUFREQ_POSTCHANGE. This function expects cpufreq_quick_get() to return the new frequency value rather than the old one (we're "post" frequency change after all!). Here is a patch that only calls cpufreq_quick_get() when returning from PM and tracing start, use the new frequency when called from DVFS, and use the cached frequency when doing the periodic resync. - Use the internally cached frequency value for periodic time resync. - Use the new freq value upon dvfs frequency change. Signed-off-by: Mathieu Desnoyers commit b8990a400107aa236e8f9f06266a2a1854b83801 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:42 2011 -0400 rcu-list-for-each-entry-continue-rcu rcu list_for_each_entry_continue_rcu Needed to continue a list_for_each_entry_rcu iteration. Signed-off-by: Mathieu Desnoyers commit 729c0d86b6c58ded3118d67b80b43db60df2cb61 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:43 2011 -0400 idle-notifier-x86_32-fix idle notifier x86_32 fix - Comment cleanup - Fix apm.c for 32-bit. Need to include asm/idle.h and need __exit_idle symbol. Therefore, x86 64 __exit_idle must become non-static too. Signed-off-by: Mathieu Desnoyers commit e4692bb7df4c9316939baf83d96fc03ab938384d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:43 2011 -0400 idle-notifier-x86_32-fix-export-symbol idle notifier x86_32 fix export symbol Signed-off-by: Mathieu Desnoyers commit 0b8292277eb2c8b84c1caba6b02dffa1ebfa6519 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:43 2011 -0400 omap-trace-clock-use-del-timer-sync omap trace clock use del timer sync and raw_spinlock Needed for RT kernels. Signed-off-by: Mathieu Desnoyers commit 73d03f0d21936bc1a281b433e2ca4bc8913ed22d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:44 2011 -0400 x86-trace-clock-use-mod-timer x86 trace clock use del timer sync It is incorrect to call add_timer_on from the timer handler. This fixes this issue. Signed-off-by: Mathieu Desnoyers commit 986257ab5736d3b563370336cfe784af212078c2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:44 2011 -0400 trace-clock-32-to-64-use-del-timer-sync trace clock 32 to 64 use del timer sync Needed for RT kernel. Signed-off-by: Mathieu Desnoyers commit f7d75b1e179c0c7949ccb2c7a80deb74dacc3a0c Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:45 2011 -0400 omap-fix-disable-timer-missing-declaration omap fix disable timer missing declaration Reported by: Jarkko Nikula From: Jarkko Nikula Signed-off-by: Mathieu Desnoyers commit 8630119e48dedcd1e8e16a140314794cfc690a34 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:45 2011 -0400 markers-revert-modpost-removal markers revert modpost removal commit a8773769d1a1e08d0ca15f890515401ab3860637 Author: Wenji Huang Date: Mon Nov 16 13:49:55 2009 +0800 Kbuild: clear marker out of modpost Remove the unnecessary functions and variables. Signed-off-by: Mathieu Desnoyers commit 518e16aa49bea20cdb1a6d6913b28f4fffb1087c Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:45 2011 -0400 tsc-sync-relax-check tsc sync relax check At some point, when booting my 8-core Xeon, 1 out of 8 CPUs seems to be 1700 cycles apart from the others. It might be caused by more frequent SMIs, or by the CPU just being a bit off. So let's increase the number of test loops from 10 to 200 (to account for more frequent SMIs) and relax the accepted range to from 1000 to 3000 cycles. Signed-off-by: Mathieu Desnoyers commit c2a1e09dabd3f3866f75a34f3da053bb05e650a6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:46 2011 -0400 omap3-trace-clock-header-moved-to-plat omap3 trace clock header moved to plat Fixes: CC arch/arm/mach-omap2/pm34xx.o In file included from /home/fabroy01/src/linux-2.6-lttng/arch/arm/include/asm/trace-clock.h:1, from arch/arm/mach-omap2/pm34xx.c:45: arch/arm/mach-omap2/include/mach/trace-clock.h:12: fatal error: mach/clock.h: No such file or directory compilation terminated. Also updates the plat/ header including missing bits from the mach/ header. Remove the now unused mach/ header to complete transition. Signed-off-by: Mathieu Desnoyers commit 6d51e0479178242e9a7a8671cec352f743ce4538 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:46 2011 -0400 arm-fix-comment-2-byte-cmpxchg arm 32v6k fix comment 2-byte cmpxchg commit ecd322c9b3e4ac70f9f108badde3eb6b99c7993d introduced a 2-byte cmpxchg with a comment mismatch (labeled __cmpxchg1). Signed-off-by: Mathieu Desnoyers CC: Catalin Marinas CC: Nicolas Pitre CC: Russell King CC: Alexander Shishkin commit cc2898f8c9b1ebaa11805886ab1f8c595ed13c2f Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:47 2011 -0400 Create generic alignment API (v11) Rather than re-doing the "alignment on a type size" trick all over again at different levels, import the "ltt_align" from LTTng into kernel.h and make this available to everyone. Renaming to: - object_align() - object_align_floor() - offset_align() - offset_align_floor() Changelog since v10: - Remove stale comment. - Fix parenthesis in the MAYBE_BUILD_BUG_ON test. Changelog since v9: - Hardcode MAYBE_BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0)) rather than creating a helper macro in kernel.h, by popular request. - Remove unneeded log2.h include. - Now that offset_align_floor and offset_align are macros (needed for MAYBE_BUILD_BUG_ON()), add the appropriate braces around parameters used. Changelog since v8: - Remove unnecessary braces. - Update object_align/object_align_floor comments. Changelog since v7: - Add missing include/linux/Kconfig header-y. Changelog since v6: - Adapt to changes introduced by commit a79ff731a1b277d0e92d9453bdf374e04cec717a - Use __alignof__() instead of sizeof() to support compound types. Changelog since v5: - moved alignment apis to a separate header file so that it is possible to use them from other header files which are, for example, included from kernel.h. Changelog since v4: - add missing ( ) around parameters within object_align() and object_align_floor(). - More coding style cleanups to ALIGN() (checkpatch.pl is happy now). Changelog since v3: - optimize object_align*() so fewer instructions are needed for alignment of addresses known dynamically. Use the (already existing) "ALIGN()", and create the "ALIGN_FLOOR()" macro. - While we are there, let's clean up the ALIGN() macros wrt coding style. e.g. missing parenthesis around the first use of the "x" parameter in ALIGN(). Changelog since v2: - Fix object_align*(): should use object size alignment, not pointer alignment. Changelog since v1: - Align on the object natural alignment (rather than min(arch word alignment, natural alignment)) The advantage of separating the API in "object alignment" and "offset alignment" is that it gives more freedom to play with offset alignment. Very useful to implement a tracer ring-buffer alignment. (hint hint) Typical users will use "object alignment", but infrastructures like tracers which need to perform alignment of statically known base+offsets will typically use "offset alignment", because it allows to align with respect to a base rather than to pass an absolute address. Signed-off-by: Mathieu Desnoyers Signed-off-by: Alexander Shishkin Reviewed-by: Steven Rostedt Reviewed-by: "Kirill A. Shutemov" CC: Russell King - ARM Linux CC: linux-arm-kernel@lists.infradead.org CC: Imre Deak CC: Jamie Lokier CC: mingo@elte.hu CC: Alexey Dobriyan commit ec216cea8c0e853ac73edb255378c52bd3cd106d Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:47 2011 -0400 lttng-revert-powerpc-irq-instrumentation Revert powerpc: tracing: Add powerpc tracepoints for interrupt entry and exit commit 1bf4af165050d90ea6659ffb2536ec8ca783aab5 Author: Anton Blanchard Date: Mon Oct 26 18:47:42 2009 +0000 powerpc: tracing: Add powerpc tracepoints for interrupt entry and exit This adds powerpc-specific tracepoints for interrupt entry and exit. While we already have generic irq_handler_entry and irq_handler_exit tracepoints there are cases on our virtualised powerpc machines where an interrupt is presented to the OS, but subsequently handled by the hypervisor. This means no OS interrupt handler is invoked. Here is an example on a POWER6 machine with the patch below applied: -0 [006] 3243.949840744: irq_entry: pt_regs=c0000000ce31fb10 -0 [006] 3243.949850520: irq_exit: pt_regs=c0000000ce31fb10 -0 [007] 3243.950218208: irq_entry: pt_regs=c0000000ce323b10 -0 [007] 3243.950224080: irq_exit: pt_regs=c0000000ce323b10 -0 [000] 3244.021879320: irq_entry: pt_regs=c000000000a63aa0 -0 [000] 3244.021883616: irq_handler_entry: irq=87 handler=eth0 -0 [000] 3244.021887328: irq_handler_exit: irq=87 return=handled -0 [000] 3244.021897408: irq_exit: pt_regs=c000000000a63aa0 Here we see two phantom interrupts (no handler was invoked), followed by a real interrupt for eth0. Without the tracepoints in this patch we would have missed the phantom interrupts. Mathieu: Allright, so the "handler" tracepoint does not get executed. Can we just instrument the generic irq routines in kernel/irq/handle.c instead of doing this asm-specific stuff ? Signed-off-by: Mathieu Desnoyers CC: Anton Blanchard CC: Steven Rostedt CC: Paul Mackerras commit b35714122b5017834f37973771c4ef5db8864eff Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:48 2011 -0400 lttng-idle-notifier-i7300-fix lttng idle notifier i7300 fix Signed-off-by: Mathieu Desnoyers commit 9aacc216a8627fccbf979e1336be3f36ed150ce5 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:48 2011 -0400 lttng-mips-fix-syscall-entry-tracing For the 32-bit kernel and all three ABIs of the 64-bit kernel, we need to test the _TIF_KERNEL_TRACE flag on syscall entry. Otherwise, no syscall entry tracing for you! Signed-off-by: David Daney Signed-off-by: Mathieu Desnoyers commit 1f4364f934a6f31c262da2abc1d638ef7b82c808 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:48 2011 -0400 lttng-mips-dump-mips-system-call-tables The 64-bit kernel may support all three ABIs, so we iterate the sys_call_tables of all of enabled ABIs. [Mathieu: Coding style cleanup] Signed-off-by: David Daney Signed-off-by: Mathieu Desnoyers commit d555d86f2c95c8fdece55eeb3f82e1e850345ea2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:49 2011 -0400 lttng-mips-use-64-bit-counter-for-trace-clock-on-octeon-cpus Cavium Octeon CPUs have a 64-bit cycle counter that is synchronized when the CPUs are brought on-line. So for this case we don't need any fancy stuff. [Mathieu: move octeon code to its own header] Signed-off-by: David Daney Signed-off-by: Mathieu Desnoyers commit a059f8038d5cb3fd9758e20d69ef56903d25f253 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:50 2011 -0400 lttng-trace-clock-sh-code-rework lttng trace clock sh code rework LTTng trace clock definitions for SuperH were broken for the new Kernels. The patch reviews this code using the clocksource API to handle trace clock. For example, on ST Kernels the TMU channel 1 continues to be used as clocksource and all works fine for LTT (tested on SH4 STM platforms based). Concerning the TMU frequency, it comes from the module_clk clock available on ST platforms. This support was only tested on ST platforms and it is turned-on for CPU_SH4 configurations. Other effort and tests are necessary to verify it on other SH architectures. From: Giuseppe Cavallaro Signed-off-by: Giuseppe Cavallaro Signed-off-by: Mathieu Desnoyers commit 38305b6286a58e968c30851d6b11219e93e857d3 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:51 2011 -0400 trace-clock-32-to-64-fix-del-timer-bug trace clock 32 to 64 fix del timer bug {{{ BUG: using smp_processor_id() in preemptible [00000000] code: lttctl/748 caller is put_synthetic_tsc+0x7c/0xf8 Backtrace: [] (dump_backtrace+0x0/0x10c) from [] (dump_stack+0x18/0x1c) r7:c04c69d4 r6:c008e7a4 r5:00000000 r4:ce0c0000 [] (dump_stack+0x0/0x1c) from [] (debug_smp_processor_id+0xc0/0xec) [] (debug_smp_processor_id+0x0/0xec) from [] (put_synthetic_tsc+0x7c/0xf8) r6:c04fa24c r5:c0023600 r4:00000000 [] (put_synthetic_tsc+0x0/0xf8) from [] (put_trace_clock+0x68/0x7c) r8:befa4edb r7:0000000b r6:ce0c1d2a r5:cdfbe200 r4:00000000 [] (put_trace_clock+0x0/0x7c) from [] (ltt_trace_destroy+0x40/0x94) [] (ltt_trace_destroy+0x0/0x94) from [] (destroy_trace_write+0xbc/0x140) r5:00000000 r4:0000000b [] (destroy_trace_write+0x0/0x140) from [] (vfs_write+0xb4/0x144) r7:0000000b r6:ce0c1f70 r5:befa4edb r4:cde545a0 [] (vfs_write+0x0/0x144) from [] (sys_write+0x48/0xf4) r7:0000000b r6:cde545a0 r5:00000000 r4:00000000 [] (sys_write+0x0/0xf4) from [] (__sys_trace_return+0x0/0x24) BUG: using smp_processor_id() in preemptible [00000000] code: lttctl/748 caller is put_synthetic_tsc+0x7c/0xf8 }}} Signed-off-by: Mathieu Desnoyers commit e363c063f40ab7af592cc3f13dccc81416bb50eb Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:52 2011 -0400 markers-fix-out-of-bound-array markers fix out of bound array While creating my own probes, I've observed that I get format mismatch error... While digging into the executed code I observe that my format (stored in a marker_entry) was overwritten by a new allocated structure. Finally I found that in add_marker function the format pointer seems to be set to the wrong position: e->format = &e->name[channel_len + name_len]; while the proper assignment should be e->format = &e->name[name_len]; indead: size_t channel_len = strlen(channel) + 1; size_t name_len = strlen(name) + 1; ... size_t format_len ...= strlen(format) + 1; and struct marker_entry { .... char channel[0]; /* Contains channel'\0'name'\0'format'\0' * / }; ... e = kmalloc(sizeof(struct marker_entry) + channel_len + name_len + format_len, GFP_KERNEL); .... e->name = &e->channel[channel_len]; Rgds, Damien COTTIER. Signed-off-by: Mathieu Desnoyers commit 1016856a3297f5feb786876a14e775c1eb1e1f15 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:53 2011 -0400 markers-revert-removal-of-linker-script Revert eb878b3bc0349344dbf70c51bf01fc734d5cf2d3 Signed-off-by: Mathieu Desnoyers commit 065e87f30d1a7b74cbbd551342eb57cde1c258ed Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:53 2011 -0400 markers-align-on-128-bytes Ensure the compiler (happily aligning the marker structure on the struct size) and the linker scripts are in sync. Signed-off-by: Mathieu Desnoyers commit 307f98a753f78996b7d1809e7fbf7ecfad03ff48 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:54 2011 -0400 markers-update-to-2.6.35-tracepoints markers update to 2.6.35 tracepoints Add extra parameter to register. Signed-off-by: Mathieu Desnoyers commit 9b7657e28d034747a24ab9744dd5dbba62b0decf Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:54 2011 -0400 markers-modularize-lttng commit 553d3e04ba0b6bf34cfa7bd3962e1085d2c0d1d4 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:54 2011 -0400 trace-clock-fix-kconfig-apply-problem trace clock kconfig options were incorrectly in cgroups menu (rebase error) Signed-off-by: Mathieu Desnoyers commit 8c437a5aedd491a37f93334838abebe90f66e9ef Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:55 2011 -0400 lttng-instrumentation-fs-exec-const-filename lttng instrumentation fs exec const filename Signed-off-by: Mathieu Desnoyers commit 99bc73f616db2e87f0e1918aad59eb68ee1ff573 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:56 2011 -0400 Move KVM trace includes in a standard directory The mmutrace.h and trace.h were defined in arch/x86/kvm/. Moved them in arch/x86/include and fixed the dependencies to make inclusion possible by lttng-modules. From: Julien Desfossez Signed-off-by: Julien Desfossez Signed-off-by: Mathieu Desnoyers commit 3181ff37cc46f72c01421e1c85965dcf10df8130 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:56 2011 -0400 lttng-instrumentation-xtime-deprecated lttng instrumentation xtime deprecated Signed-off-by: Mathieu Desnoyers commit ec160c4c797190f21ddb19ebe945bd259c4875f2 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:57 2011 -0400 trace-clock-get-may-fail Trace clock get may fail ARM pmu reservation may fail, so we have to change the trace clock get prototype. Signed-off-by: Mathieu Desnoyers commit d58cc7d529b3944617b1e4453f747b5cdec011c7 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:57 2011 -0400 arm-trace-clock-reserve-pmu Be nice to perf by reserving the PMU before using the trace clock. Signed-off-by: Mathieu Desnoyers commit 710944c4e1f7468dba1a0c4fa36b4cda5846f350 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:58 2011 -0400 trace-clock-remove-extra-barriers-on-x86 trace clock remove extra barriers on x86 Given that a tracer cannot realistically provide accuracy better than the inaccuracy between the traced action (e.g. an atomic operation) and the timestamp read, having barriers around the timestamp read is just overkill. This will speed up tracing. Signed-off-by: Mathieu Desnoyers commit e4e9699bcf4b5ea207c859e056bb705e30f06f10 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:58 2011 -0400 trace-clock-userspace TRACE_CLOCK and TRACE_CLOCK_FREQ in clock_gettime These new options to clock_gettime allows the user to retreive the TSC frequency and the current TSC from userspace. We use the LTTng infrastructure to make sure the TSC is synchronized. If it is not, we fallback to a syscall (which for the moment does the same thing but in the future will be modified to ensure consistency for the tracing between user and kernel space). The main difference with using the TSC clocksource directly is that the time starts at machine boot and not at Linux boot which makes it possible to correlate user and kernelspace events. Also we export frequency and cycles, we don't do the conversion in sec.nsec from the kernel since we don't need it. The differences between the v1 are : - we validated on 32 bits the clock_gettime vDSO doesn't exist so it cleans up the vDSO code; - the syscall is now properly defined using the posix timer architecture - we export the frequency to userspace so we don't need to convert the cycles in sec.nsec anymore. Which means that on 64 bits machine, the nsec field will contain the whole cycle counter and on 32 bits the value is split between the two fields sec and nsec. - remove the rdtsc_barrier() which is overkill for tracing purpose - trace_clock_is_sync field is updated as soon as the LTTng trace clock detects an inconsistency Updated benchmarks (with 20000000 iterations reading the tsc before and after each call on an i7 920): 64 bits with vDSO average cycles for clock_realtime: 101 average cycles for clock_monotonic: 104 average cycles for clock_trace: 52 64 bits without vDSO (using syscall) average cycles for clock_realtime: 240 average cycles for clock_monotonic: 256 average cycles for clock_trace: 219 32 bits (without vDSO) average cycles for clock_realtime: 649 average cycles for clock_monotonic: 661 average cycles for clock_trace: 616 Signed-off-by: Julien Desfossez Signed-off-by: Mathieu Desnoyers commit 2a8acf8d23979b051385f47878df93127ca6f750 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:58 2011 -0400 arm-trace-clock-fix-missing-include arm trace clock fix missing include Signed-off-by: Mathieu Desnoyers commit e031f0a736fb18584130b32d58ed5d4b12677489 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:59 2011 -0400 lttng-instrumentation-irq-remove-softirq-raise-dup lttng instrumentation irq remove softirq raise dup Signed-off-by: Mathieu Desnoyers commit 2bb8ae6cfcc6daaf5fa71235059fb2deb710b872 Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:59 2011 -0400 marker-remove-init-rcu-head marker remove init rcu head Signed-off-by: Mathieu Desnoyers commit db228a32ab728f01a7d1586a4909282e94f185fd Author: Mathieu Desnoyers Date: Wed Mar 16 19:05:59 2011 -0400 lttng-instrumentation-net-fix-conflict lttng instrumentation net fix conflict Signed-off-by: Mathieu Desnoyers commit c783e9294f5e99f9ac74cef64b36a9cd442adf3f Author: Mathieu Desnoyers Date: Wed Mar 16 19:06:00 2011 -0400 lttng-instrumentation-x86-add-missing-dump-tables lttng instrumentation x86 add missing dump tables Signed-off-by: Mathieu Desnoyers commit 06c883ac3ec331a9486c484a5356885385ddbac6 Author: Mathieu Desnoyers Date: Wed Mar 16 19:06:01 2011 -0400 markers-fix-128-align Make sure the minimum alignment matches the type declaration alignment. Should not have any impact, but let's take no chance. Signed-off-by: Mathieu Desnoyers commit f3a4474ab05cd121845aeac12e72ea3c06f21404 Author: Mathieu Desnoyers Date: Wed Mar 16 19:06:01 2011 -0400 mips-octeon-fix-get-cycles Make sure get_cycles(), used by kernel/time/tsc-sync.c TSC synchronicity checker, works fine on octeon by using the full 64-bits. Changelog: - Use unsigned long for Cavium Octeon cycles_t. Signed-off-by: Mathieu Desnoyers commit c5eb989efedce43c30b7c71a6f393f6f62b1f46a Author: Mathieu Desnoyers Date: Wed Mar 16 19:06:02 2011 -0400 arm-trace-clock-fix-no-pmu ARM trace clock fix no PMU Causes trace clock start failure when CONFIG_CPU_HAS_PMU=n. Signed-off-by: Mathieu Desnoyers commit b2afcd30fff4c24290a63a2497de301864d9726d Author: Mathieu Desnoyers Date: Wed Mar 16 19:06:02 2011 -0400 ltt-align-reinsert-maybe-build-bug-on ltt-align reinsert MAYBE_BUILD_BUG_ON Signed-off-by: Mathieu Desnoyers commit dffc55adfa2676a02a838d56a0cc4edd3809510c Author: Linus Walleij Date: Wed Feb 16 23:28:53 2011 +0100 mmc: msm_sdcc: remove needless cache flush after dma_unmap_sg() dma_unmap_sg() already flushes the cache, I don't get what this code is doing here. Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 0c6d49ce53bc18c0ac637fb137f1e01ee9082201 Author: Wolfram Sang Date: Sat Feb 26 14:44:39 2011 +0100 mmc: sdhci-esdhc-imx: add write protect on custom GPIO on mx25/35 Signed-off-by: Wolfram Sang Tested-by: Marc Reilly Tested-by: Eric Benard Signed-off-by: Chris Ball commit 3bb2a9f6a7c0887a7f79b59c5b9bff349a03247e Author: Wolfram Sang Date: Sat Feb 26 14:44:40 2011 +0100 mmc: sdhci-esdhc: broken card detection is not a default quirk It can be worked around using a GPIO which will be done for i.MX later. Signed-off-by: Wolfram Sang Acked-by: Anton Vorontsov Tested-by: Marc Reilly Tested-by: Eric Benard Signed-off-by: Chris Ball commit 7e29c3060369c2cd003b8069972b8535944310e4 Author: Wolfram Sang Date: Sat Feb 26 14:44:41 2011 +0100 mmc: sdhci-esdhc-imx: add card detect on custom GPIO for mx25/35 Signed-off-by: Wolfram Sang Tested-by: Marc Reilly Tested-by: Eric Benard Signed-off-by: Chris Ball commit ba6a902d9d89b976bf64a435ec97a490cd160dec Author: Chris Ball Date: Mon Feb 28 16:45:10 2011 -0500 mmc: dw_mmc: Remove set-but-unused variable. count is only ever used by assigning to old_len if count == 0, and then old_len isn't ever used at all. So, both are redundant. Fixes: drivers/mmc/host/dw_mmc.c: In function ‘dw_mci_read_data_pio’: drivers/mmc/host/dw_mmc.c:1034:32: warning: variable ‘old_len’ set but not used [-Wunused-but-set-variable] Signed-off-by: Chris Ball Acked-by: Will Newton commit 0aab3995485b8a994bf29a995a008c9ea4a28054 Author: Stefan Nilsson XK Date: Tue Mar 1 14:41:04 2011 +0100 mmc: sdio: remember new card RCA when redetecting card During redetection of a SDIO card, a request for a new card RCA was submitted to the card, but was then overwritten by the old RCA. This caused the card to be deselected instead of selected when using the incorrect RCA. This bug's been present since the "oldcard" handling was introduced in 2.6.32. Signed-off-by: Stefan Nilsson XK Reviewed-by: Ulf Hansson Reviewed-by: Pawel Wieczorkiewicz Signed-off-by: Linus Walleij Cc: Signed-off-by: Chris Ball commit ab1efd271704416c9e6e9cb4e5f58e7e4c4260e6 Author: Ulf Hansson Date: Wed Mar 9 09:11:02 2011 +0100 mmc: core: export function mmc_do_release_host() When using mmc_try_claim_host the corresponding release function is mmc_do_release_host, which then also must be exported. Reviewed-by: Jonas Aberg Reviewed-by: Sebastian Rasmussen Signed-off-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit b33d46c398fd071dccd0815f33620924684860cd Author: Ulf Hansson Date: Sat Mar 5 14:36:24 2011 +0100 mmc: core: reset card voltage after power off At power off, reset OCR mask to be the highest possible voltage supported for the current mmc host. This solves the re-initialization during the power up sequence. The voltage may have been decreased due to the card accepts a lower voltage than the voltage used during the initialization sequence. We need to reset the voltage to by the host highest possible value since according to specification the initialization must always be done at high voltage. Reviewed-by: Jonas Aberg Signed-off-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Chris Ball commit 860cfe796c793bfad1e666de9600852f2d653c57 Author: Guennadi Liakhovetski Date: Fri Mar 11 08:30:14 2011 +0100 mmc: tmio: fix address in kunmap_atomic() calls Currently kunmap_atomic() doesn't take into account the offset, used with kmap_atomic(). On platforms, where kunmap_atomic() is not a NOP, this will lead to problems, when offset != 0. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Chris Ball commit fc3d7720541d4b70cbae25ac121d7e6343125090 Author: Jaehoon Chung Date: Fri Feb 25 11:08:15 2011 +0900 mmc: dw_mmc: add quirks for unreliable card detect, and capabilities This patch adds quirks and capabilities to platdata. Some cards don't use the CDn pin; in that case, we assume the card's inserted. Some boards need other capabilities. So, we add capabilities in the board's platdata. Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Acked-by: Will Newton Signed-off-by: Chris Ball commit e61cf1184d72e574460492fd6c6b6d8a3ace2089 Author: Jaehoon Chung Date: Thu Mar 17 20:32:33 2011 +0900 mmc: dw_mmc: fix suspend/resume operation This patch is related to re-init processing on suspend/resume. When card is resuming, some register is reset. If card is removable, maybe controller should be rescan for card. But if assume card is non-removable, need to restore the old value at registers. We store the value of FIFOTH at probe time and then restore it in dw_mci_resume(). Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Acked-by: Will Newton Signed-off-by: Chris Ball commit c07946a3350244d7c3d9bc1032325e04dd11575b Author: Jaehoon Chung Date: Fri Feb 25 11:08:14 2011 +0900 mmc: dw_mmc: support mmc power control with regulator This patch adds support for power regulators. Signed-off-by: Jaehoon Chung Signed-off-by: kyungmin Park Acked-by: Will Newton Signed-off-by: Chris Ball commit 0acf659f1469725fb6e39d53af970f36c5f69a41 Author: Tomi Valkeinen Date: Mon Mar 14 07:28:57 2011 -0500 OMAP: DSS2: Clean up for dpll4_m4_ck handling OMAP2 does not have dpll4_m4_ck source clock for dss functional clock, but later OMAPs do. Currently we check for cpu type in multiple places to find out if dpll4_m4_ck is available. This patch cleans up dss.c by using the fact that dss.dpll4_m4_ck pointer is NULL on OMAP2. This allows us to remove many of the cpu checks. Signed-off-by: Tomi Valkeinen commit 2de110868f455b74e91111801ce63a3c9d06f091 Author: Murthy, Raghuveer Date: Mon Mar 14 07:28:58 2011 -0500 OMAP: DSS2: Implement OMAP4 DSS fclk support Add dss.dpll4_m4_ck (DSS FCLK) initialization for OMAP4. This is used to compute the pixel clock for DPI interface and also to reconfigure the DSS FCLK to the desired rate, corresponding to the rate computed for pixel clock. Adding these cpu_is_44xx() checks are meant to be temporary, until a cleaner implementation to manage these checks are added. Currently this is needed to get DVI display running on OMAP4 PandaBoard Signed-off-by: Raghuveer Murthy [tomi.valkeinen@ti.com: minor changes due to conflicts] Signed-off-by: Tomi Valkeinen commit b295d6e593e02168fdafc5db11464b6d51cf239d Author: Murthy, Raghuveer Date: Mon Mar 14 07:52:25 2011 -0500 OMAP4: PandaBoard: Adding DVI support Adding DVI support to OMAP4 PandaBoard. PandaBoard uses TFP410 DVI Framer chip http://focus.ti.com/lit/ds/symlink/tfp410.pdf The TFP410 gets its power enable and display data over GPIO lines muxed in from OMAP4430. PandaBoard supports other LCD displays through expansion connectors, following board rework. This will disable the DVI interface. However, the existing mux settings remain the same PandaBoard additionally supports display over HDMI interface. It is mutually exclusive to display over DVI. Hence the mux settings need to be configured seperately, as and when HDMI is enabled Also, I2C3 bus used for reading EDID data from DVI Monitors is registered here. Since the design is similar to BeagleBoard, the code for the same is taken from the kernel.org commit e3333f48dd5cb21 (omap: Adding beagle i2c eeprom driver to read EDID) Reviewed-by: Manjunath G Kondaiah Reviewed-by: Anand Gadiyar Reviewed-by: Nishanth Menon Reviewed-by: Sumit Semwal Signed-off-by: Raghuveer Murthy [tomi.valkeinen@ti.com: fixed conflicts with HDMI] Signed-off-by: Tomi Valkeinen commit 36133869c4b5b70e6acf6ff7ce25df526a6d5cae Author: Aaro Koskinen Date: Fri Mar 18 16:53:19 2011 -0700 arm: mach-omap2: devices: fix omap3_l3_init() return value Fix the return value for the successful case. Signed-off-by: Aaro Koskinen Acked-by: Santosh Shilimkar Signed-off-by: Tony Lindgren commit 18a81019b851dae83f7df3e72064de706788ff25 Author: Aaro Koskinen Date: Fri Mar 18 16:53:20 2011 -0700 arm: mach-omap2: omap_l3_smx: fix irq handler setup The handler function may be called from the point it is registered. Since the handler inspects IRQ numbers, we must set them up before registration. Signed-off-by: Aaro Koskinen Acked-by: Santosh Shilimkar Signed-off-by: Tony Lindgren commit 8b8e2ef328c3378c74fb4347f66df8e58feeaf46 Author: David Anders Date: Fri Mar 18 16:53:20 2011 -0700 OMAP4: PandaBoard: remove unused power regulators the pandaboard does not use the VUSIM or VAUX1 power regulators on the TWL6030 and are left floating. if the VUSIM and VAUX1 power regulators are initilized, noise on the unloaded regulators generates an overcurrent interrupt causing the system to power down. this patch removes the initialization of the unused power regulators of VUSIM and VAUX1. Signed-off-by: David Anders Acked-by: Andy Green Acked-by: Anand Gadiyar Tested-by: Kevin Hilman Signed-off-by: Tony Lindgren commit 77aded2f523c6540f71b1f549373dd8046329a6b Author: Balaji T K Date: Fri Mar 18 16:53:20 2011 -0700 ARM: OMAP2+: Fix warnings for GPMC interrupt Commit db97eb7dfe13f6c04f0a0e77c32e2691f563ab8b (omap: gpmc: enable irq mode in gpmc) enabled interrupts for GPMC (General Purpose Memory Controller). However, looks like this patch only works on omap3. Fix the issues to avoid warnings on omap4 during the boot. GPMC: number of chip select is 8, CS0 to CS7. One less IRQ allocated throws below warning at boot: [ 0.429290] Trying to install type control for IRQ409 [ 0.429290] Trying to set irq flags for IRQ409 Resolve following warning messages in boot when irq chip is not set: [ 0.429229] Trying to install interrupt handler for IRQ402 [ 0.429229] Trying to install interrupt handler for IRQ403 [ 0.429229] Trying to install interrupt handler for IRQ404 [ 0.429260] Trying to install interrupt handler for IRQ405 [ 0.429260] Trying to install interrupt handler for IRQ406 [ 0.429260] Trying to install interrupt handler for IRQ407 [ 0.429290] Trying to install interrupt handler for IRQ408 Resolve following warning in OMAP4: [ 0.429290] gpmc: irq-20 could not claim: err -22 Signed-off-by: Balaji T K [tony@atomide.com: combined patches into one, updated comments] Signed-off-by: Tony Lindgren commit 4fa8eebb045a6d798011f3935a38dd29de30e6c9 Author: Ohad Ben-Cohen Date: Fri Mar 18 16:53:21 2011 -0700 hwspinlock: depend on OMAP4 Currently only OMAP4 supports hwspinlocks, so don't bother asking anyone else. Signed-off-by: Ohad Ben-Cohen Signed-off-by: Tony Lindgren commit a84465fb5aaf0f6fa3a08197c61a25d00704b7f4 Author: Nicolas Pitre Date: Fri Mar 18 22:54:35 2011 -0400 ARM: kernel/sleep.S: fix Thumb2 compilation issues Signed-off-by: Nicolas Pitre commit 884574073f95097bf0a39ab7d4faba93012d6f7a Author: Amit Daniel Kachhap Date: Fri Mar 18 08:51:31 2011 -0400 ARM: Samsung: Basic CPUIDLE Support This patch supports cpuidle framework for EXYNOS4210. Currently, Only one idle state is possible to use, but more idle states can be added following by this patch. Signed-off-by: Jaecheol Lee Signed-off-by: Amit Daniel Kachhap Signed-off-by: Nicolas Pitre commit ddb229691db8bbe6e4529aca6977c48c9f73de05 Author: Marc Zyngier Date: Fri Mar 18 13:53:58 2011 -0400 NET: smsc95xx: don't use stack for async writes to the device The set_multicast operation performs asynchronous writes to the device, with some addresses pointing to the stack. Bad things may happen, and this is trapped CONFIG_DMA_API_DEBUG: [ 5.237762] WARNING: at /build/buildd/linux-linaro-omap-2.6.38/lib/dma-debug.c:867 check_for_stack+0xd4/0x100() [ 5.237792] ehci-omap ehci-omap.0: DMA-API: device driver maps memory fromstack [addr=d9c77dec] [ 5.237792] Modules linked in: smsc95xx(+) usbnet twl6030_usb twl4030_pwrbutton leds_gpio omap_wdt omap2_mcspi [ 5.237854] [] (unwind_backtrace+0x0/0xf8) from [] (warn_slowpath_common+0x54/0x64) [ 5.237884] [] (warn_slowpath_common+0x54/0x64) from [] (warn_slowpath_fmt+0x30/0x40) [ 5.237915] [] (warn_slowpath_fmt+0x30/0x40) from [] (check_for_stack+0xd4/0x100) [ 5.237915] [] (check_for_stack+0xd4/0x100) from [] (debug_dma_map_page+0xb4/0xdc) [ 5.237976] [] (debug_dma_map_page+0xb4/0xdc) from [] (map_urb_for_dma+0x26c/0x304) [ 5.237976] [] (map_urb_for_dma+0x26c/0x304) from [] (usb_hcd_submit_urb+0x78/0x19c) [ 5.238037] [] (usb_hcd_submit_urb+0x78/0x19c) from [] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) [ 5.238067] [] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) from [] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) [ 5.238098] [] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) from [] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) [ 5.238128] [] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) from [] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) [ 5.238159] [] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) from [] (usbnet_probe+0x204/0x4c4 [usbnet]) [ 5.238220] [] (usbnet_probe+0x204/0x4c4 [usbnet]) from [] (usb_probe_interface+0xe4/0x1c4) [ 5.238250] [] (usb_probe_interface+0xe4/0x1c4) from [] (really_probe+0x64/0x160) [ 5.238250] [] (really_probe+0x64/0x160) from [] (driver_probe_device+0x48/0x60) [ 5.238281] [] (driver_probe_device+0x48/0x60) from [] (__driver_attach+0x8c/0x90) [ 5.238311] [] (__driver_attach+0x8c/0x90) from [] (bus_for_each_dev+0x50/0x7c) [ 5.238311] [] (bus_for_each_dev+0x50/0x7c) from [] (bus_add_driver+0x190/0x250) [ 5.238311] [] (bus_add_driver+0x190/0x250) from [] (driver_register+0x78/0x13c) [ 5.238433] [] (driver_register+0x78/0x13c) from [] (usb_register_driver+0x78/0x13c) [ 5.238464] [] (usb_register_driver+0x78/0x13c) from [] (do_one_initcall+0x34/0x188) [ 5.238494] [] (do_one_initcall+0x34/0x188) from [] (sys_init_module+0xb0/0x1c0) [ 5.238525] [] (sys_init_module+0xb0/0x1c0) from [] (ret_fast_syscall+0x0/0x30) Move the two offenders to the private structure which is kmalloc-ed, and thus safe. Signed-off-by: Marc Zyngier Cc: Steve Glendinning Signed-off-by: Nicolas Pitre commit bf4dcd2a333cdab5995dbc79f06a09a7b90c9f62 Author: John Rigby Date: Wed Mar 16 23:01:09 2011 -0600 mach-ux500: fix build error the commit: mach-ux500: basic HREFv60 support v2 u8500_init_machine was changed to mop500_init_machine and 2 of 3 uses instances of .init_machine were changed. Fix the 3rd one. Signed-off-by: John Rigby Signed-off-by: Nicolas Pitre commit c4202c86cdd53c91744d652ec0e16fd28ff6d6f3 Author: Archit Taneja Date: Tue Mar 22 06:33:36 2011 -0500 OMAP4: DSS2: Register configuration changes for DSI The following changes have changed from OMAP3 to OMAP4 DSI: -The register field DSI_PLL_FREQSEL in DSI_PLL_CONFIGURATION2 has been removed. -DCS_CMD_ENABLE and DCS_CMD_CODE bits have been moved from DSI_CTRL to DSI_VC_CTRLi, hence the control of the bits is available per VC. -DSI LDO powergood notification doesn't work on OMAP4. This is mentioned in OMAP4 errata revision 1.8(Errata 1.76). -OCP_WIDTH register field is included in DSI_VC_CTRL. -The SCP clock is also required to access DSI PLL registers Introduce dss features for these changes so that DSI runs on both OMAP3 and OMAP4. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 5da4c1ad7e78241fe31064eeacb2e92494aa4306 Author: Thomas Abraham Date: Tue Mar 22 17:29:29 2011 +0530 ARM: EXYNOS4: Fix addruart macro Fix incorrect conditional execution of ldr instructions in addruart macro. Signed-off-by: Thomas Abraham Signed-off-by: Abhilash Kesavan Signed-off-by: Nicolas Pitre commit 5b9a4f98b2e29fb92a4a54ef12b2e3940f941ed9 Author: Uwe Kleine-König Date: Tue Mar 22 10:35:17 2011 +0100 dma: let IMX_DMA depend on IMX_HAVE_DMA_V1 instead of an explicit list of SoCs As a side effect this makes IMX_DMA selectable on i.MX21 again, because the symbol ARCH_MX21 doesn't exist (MACH_MX21 would have been more correct). Signed-off-by: Uwe Kleine-König Signed-off-by: Dan Williams commit d42efe6bfb4eed8314c8ce3547f21954a4140399 Author: Viresh Kumar Date: Tue Mar 22 17:27:25 2011 +0530 dmaengine/dmatest: Pass timeout via module params When we try to test all channels present on our controller together, some channels of lower priority may be very slow as compared to others. If number of transfers is unlimited, some channels may timeout and will not finish within 3 seconds. Thus, while doing such regress testing we may need to have higher value of timeouts. This patch adds support for passing timeout value via module parameters. Default value is 3 msec, a negative value means max timeout possible. Signed-off-by: Viresh Kumar Signed-off-by: Dan Williams commit 3ea205c449d2b5996d0256aa8b2894f7aea228a2 Author: Jamie Iles Date: Tue Mar 22 15:34:56 2011 -0700 avr32: at32ap700x: fix typo in DMA master configuration Commit 4aa5f366431fe (avr32: at32ap700x: specify DMA src and dst masters) specified the masters for the ac97c playback device but incorrectly set them in the capture slave information rather than playback. Cc: Hans-Christian Egtvedt Reported-by: Nicolas Ferre Signed-off-by: Jamie Iles Acked-by: Vinod Koul [rebased on dmaengine for 2.6.39 (d42efe6b)] Signed-off-by: Dan Williams commit d2482d64ef8b2eac73ca4acef64f5c184a85bdec Author: Vincent Guittot Date: Mon Feb 7 17:14:25 2011 +0100 calculate delay after dbs_check_cpu calculate ondemand delay after dbs_check_cpu call because it can modify rate_mult value use freq_lo_jiffies value for the sub sample period of powersave_bias mode Signed-off-by: Vincent Guittot Signed-off-by: Dave Jones Signed-off-by: Nicolas Pitre commit fb05aff5afa3159d81f27b5826cf4e5804acf58a Author: Will Deacon Date: Mon Feb 28 17:01:04 2011 +0100 ARM: 6771/1: vexpress: add support for multiple core tiles The current Versatile Express BSP defines the MACHINE_START macro in the core tile code. This patch moves this into the generic board code and introduces a method for determining the current tile at runtime, allowing the Kernel to have support for multiple tiles compiled in. Tile-specific functions are executed via a descriptor struct containing the correct implementations for the current tile. Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit 80b5efbd43f0a21e9fc6db87823be32fcfe3e7ce) commit a6358be91a4e6af8a8f8db392341ebc63d299b1c Author: Russell King Date: Sun Mar 20 09:50:05 2011 +0000 ARM: Update (and cut down) mach-types As many entries have never been submitted to mainline, there's no point them existing in this file. So remove the entries which aren't relevant for mainline. Signed-off-by: Russell King (cherry picked from commit 6f82f4db80189281a8ac42f2e72396accb719b57) commit eaeb0b25204f71bc57befad1f552d07ed33d677e Author: Mark Brown Date: Fri Jan 14 13:38:16 2011 +0000 mfd: Leave acknowledgement of WM831x touchscreen IRQs to the driver The WM831x touchscreen interrupts need acknowledgement even when using direct signals to the CPU (which don't go through the core) so leave the acknowledgement up to the touchscreen driver for simplicity. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit df508450870cd5b4478156dcde8e68e6bf0d6661) commit a30b0110a0938c2fe5102909d24cae22ac61d726 Author: Mark Brown Date: Thu Jan 20 21:45:46 2011 +0000 mfd: Convert adp5520 to dev_pm_ops There is a move to deprecate bus-specific PM operations and move to using dev_pm_ops instead in order to reduce the amount of boilerplate code in buses and facilitiate updates to the PM core. Do this move for the adp5520 driver. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit dc781454690d7e5857afd84845b6402e03493ee1) commit 4c4db85ceacb2482b64778d23e6e24d586819ff8 Author: Mark Brown Date: Thu Jan 20 21:47:31 2011 +0000 mfd: Staticise non-exported symbols in MAX8998 driver No need to have them in the global namespace and sparse complains. Signed-off-by: Mark Brown Acked-by: Kyungmin Park Signed-off-by: Samuel Ortiz (cherry picked from commit 44be0a40d8666d9f3acee2a329e50f925e32d8b0) commit 8f2cd4a31b349a8b5bc3087bcd1885e848c8740f Author: Mark Brown Date: Thu Jan 20 21:52:42 2011 +0000 mfd: Convert pcf50633 to dev_pm_ops There is a move to deprecate bus-specific PM operations and move to using dev_pm_ops instead in order to reduce the amount of boilerplate code in buses and facilitiate updates to the PM core. Do this move for the pcf50633 driver. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 939941d44dcaa138241d2182bd9e10f2b5d52665) commit 8112bcfdf60ba176123f4f00cd066a20dd0b56f2 Author: Mark Brown Date: Fri Jan 21 13:26:46 2011 +0000 mfd: Support configuration of WM831x /IRQ output in CMOS mode Provide platform data allowing the system to set the /IRQ pin into CMOS mode rather than the default open drain. The default value of this platform data reflects the default hardware configuration so there should be no change to existing users. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit b103e0b3c52e6edb4839ccc961cf335ca6b88918) commit 7f5e31d5297dbdfe59da114e21e599c7b69ac7e1 Author: Wolfram Sang Date: Mon Jan 24 11:44:27 2011 +0100 mfd: Remove obsolete cleanup for wl1273 clientdata A few new i2c-drivers came into the kernel which clear the clientdata-pointer on exit or error. This is obsolete meanwhile, the core will do it. Signed-off-by: Wolfram Sang Signed-off-by: Samuel Ortiz (cherry picked from commit ce5d4a435af2839771210aeda2b649f5a183b63c) commit 07ccf75cba08324294ff9a84314335cfdf5b7652 Author: Jochen Friedrich Date: Sun Jan 30 13:40:56 2011 +0100 mfd: Add BTN_TOUCH event to ucb1x00-ts Add BTN_TOUCH event reporting to ucb1x00_ts touchscreen driver. This will make this touchscreen driver behave consistently wrt. BTN_TOUCH. Signed-off-by: Jochen Friedrich Acked-by: Dmitry Torokhov Signed-off-by: Samuel Ortiz (cherry picked from commit de8c8b0683043e81d2001e446f2bcb143affb0b2) commit d81dc4b0726276cc63b5607734e7566b44a99886 Author: Vincent Palatin Date: Mon Jan 31 11:31:49 2011 -0500 mfd: Invert tps6586x GPIO and subdevices initialization When using a fixed voltage regulator triggered by a TPS6586x GPIO, this allows to declare and initialize it conveniently from the "subdev" list. Signed-off-by: Vincent Palatin Signed-off-by: Samuel Ortiz (cherry picked from commit 6f9f13bf9b9fabf2da2028cb7c1e732ef2efa26d) commit 67dbaceb19cfb58a6c92b86a73e5c2c6e5f165bd Author: Mark Brown Date: Tue Feb 1 11:46:12 2011 +0000 mfd: Convert WM831x SPI to use dev_pm_ops There is a move to deprecate bus-specific PM operations and move to using dev_pm_ops instead in order to reduce the amount of boilerplate code in buses and facilitiate updates to the PM core. Do this move for the WM831x SPI driver. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 87d1906df4ecf6df0832e78e5189a39c7ea09a29) commit 660a48848aab81eb567f6e21b401bdce70b9e6ec Author: Mark Brown Date: Tue Feb 1 11:46:13 2011 +0000 mfd: Add fast path for WM831x touchscreen interrupts The WM831x interrupt controller provides reporting of the touchscreen related interrupts in the primary interrupt status register as a performance optimisation - use this to avoid reading the secondary status registers for those interrupts. For code simplicity and to avoid iterating over all interrupts we open code for the two affected interrupt sources. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 8546bd4af1251d17d16b0ef682d84fd23c8beaca) commit 9e098aa3f7803ca740508f5f23d28cf95ec1f5cc Author: Mattias Nilsson Date: Mon Feb 14 11:17:12 2011 +0100 mfd: AB8500 system control driver This adds a pretty straight-forward system control driver for the AB8500. This driver will be used from the core platform, e.g the clock tree implementation in the machine code, and is by nature singleton. There are a few simple functions to read, write, set and clear registers so that the machine code can control its own foundation. Cc: Mattias Wallin Signed-off-by: Mattias Nilsson Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 90550d1903da8dac851d220b794e44c90a11c6ce) commit 3004985ba25a1e861fb622466f87935845f832ef Author: Vasiliy Kulikov Date: Fri Feb 4 15:23:36 2011 +0300 mfd: ab3100: world-writable debugfs *_priv files Don't allow everybody to change device hardware registers. Signed-off-by: Vasiliy Kulikov Acked-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit f8a0697722d12a201588225999cfc8bfcbc82781) commit 7c7026bc7bb1c11be0179ee86c2be40d87f10199 Author: Vasiliy Kulikov Date: Fri Feb 4 15:23:39 2011 +0300 mfd: ab3500: world-writable debugfs register-* files Don't allow everybody to interact with hardware registers. Signed-off-by: Vasiliy Kulikov Acked-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 90c861c2a83d974684974441093ff8a50e6b430b) commit 249be3088bbe391c10f20325eaa52dce92ef5a4b Author: Vasiliy Kulikov Date: Fri Feb 4 15:23:43 2011 +0300 mfd: ab8500: world-writable debugfs register-* files Don't allow everybody to interact with hardware registers. Signed-off-by: Vasiliy Kulikov Acked-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 44bdcb54df2714da18c4a0c6f711a350ab4ed93c) commit b3b858370da018739da829899cccb20bb520d73a Author: Arun Murthy Date: Tue Feb 22 10:11:13 2011 +0100 mfd: Add new ab8500 GPADC driver AB8500 GPADC driver used to convert Acc and battery/ac/usb voltage Signed-off-by: Arun Murthy Acked-by: Linus Walleij Acked-by: Mattias Wallin Signed-off-by: Samuel Ortiz (cherry picked from commit dae2db30c114cd0dec59b4130c315c9cce351741) commit 2d07e2b7fd4908d12a88c5ecc196636dc49433ba Author: Balaji T K Date: Thu Feb 10 18:44:50 2011 +0530 regulator: twl: add clk32kg to twl-regulator In OMAP4 Blaze and Panda, 32KHz clock to WLAN is supplied from Phoenix TWL6030. The 32KHz clock state (ON/OFF) is configured in CLK32KG_CFG_[GRP, TRANS, STATE] register. This follows the same register programming model as other regulators in TWL6030. So add CLK32KG as pseudo regulator. Signed-off-by: Balaji T K Acked-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 8e6de4a30294809420ac9a974b4f28b38ebdb38f) commit 180d39696f8939a7d9839eaabeae6e2c8ccc2c52 Author: Balaji T K Date: Thu Feb 10 18:45:26 2011 +0530 OMAP4: add clk32kg data to omap4panda and blaze board file In Blaze and Panda, 32KHz clock - CLK32KG to WLAN is supplied from Phoenix TWL6030. Add CLK32KG platform data to blaze and omap4panda board file. Signed-off-by: Balaji T K Acked-by: Mark Brown Acked-by: Tony Lindgren Signed-off-by: Samuel Ortiz (cherry picked from commit 8af1b0d72f7b65f0ed34f0b2c5d1774fabca24a2) commit 236f5fd241b95244ca6695f2e55a2e0c4c419507 Author: Mark Brown Date: Sun Feb 13 20:06:06 2011 +0000 mfd: Remove bitrotted genirq comment from wm831x IRQ code Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit f66ea457f616258777cb3349f33745b0240e54fd) commit 8daf7c762e509e0bba58669a52291671f56e19fc Author: Mark Brown Date: Mon Feb 21 18:30:31 2011 +0000 mfd: Put WM8994 into reset when suspending Ensure that the chip is in the lowest power mode possible when suspended by performing a soft reset on it. On early silicon revisions the lowest power modes can't be entered without using reset so we can't achieve equivalent results within the individual drivers. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit f40dff9edbf1daa14068542d60ae22df78e8c74a) commit d81507ef597177d330f4574bdd4edd1e3804651a Author: Keerthy Date: Wed Feb 23 16:26:54 2011 +0530 mfd: Enabling twl4030_wdt and pwrbutton only for Triton Enabling twl4030_wdt and twl4030_pwrbutton only for Triton i.e for TWL4030 and TWL5030. This is to be excluded for Phoenix TWL6030. Tested OMAP4 blaze, OMAP2430, OMAP3630 boot up. Signed-off-by: Keerthy Reviewed-by: Balaji T K Signed-off-by: Samuel Ortiz (cherry picked from commit 153617fdd3e88fc9f8ea0bcd664671054645180f) commit e218e0ae10b62cde957e58079561adb689936a8d Author: Andres Salomon Date: Thu Feb 17 19:07:08 2011 -0800 mfd-core: Fix up typos/vagueness in comment Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 2798e226ad7db82725ba03da933638e981b472f7) commit 28977cc67fb187b02acc6294de63e944e022276a Author: Andres Salomon Date: Thu Feb 17 19:07:09 2011 -0800 mfd-core: Unconditionally add mfd_cell to every platform_device Previously, one would set the mfd_cell's platform_data/data_size to point to the current mfd_cell in order to pass that information along to drivers. This causes the current mfd_cell to always be available to drivers. It also adds a wrapper function for fetching the mfd cell from a platform device, similar to what originally existed for mfd devices. Drivers who previously used platform_data for other purposes can still use it; the difference is that mfd_get_data() must be used to access it (and the pdata structure is no longer allocated in mfd_add_devices). Note that mfd_get_data is intentionally vague (in name) about where the data is stored; variable name changes can come later without having to touch brazillions of drivers. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit fe891a008f3310be47786e87c158edebdb71e265) commit 06121c7f63c79e26042aa1d38fe3957d21a24772 Author: Andres Salomon Date: Thu Feb 17 19:07:10 2011 -0800 mfd: mfd_cell is now implicitly available to jz4740 drivers No need to explicitly set the cell's platform_data/data_size. Modify clients to use mfd_get_cell helper function instead of accessing platform_data directly. Signed-off-by: Andres Salomon Acked-by: Jean Delvare Signed-off-by: Samuel Ortiz (cherry picked from commit 6a54ac2149ab5b8972bb4f77bd42b43dbeabb56f) commit 4175ae52e000aa5b5750f70d354c3653871d8d07 Author: Andres Salomon Date: Thu Feb 17 19:07:11 2011 -0800 mfd: mfd_cell is now implicitly available to ab3550 driver No clients (in mainline kernel, I'm told that drivers exist in external trees that are planned for mainline inclusion) make use of this, nor do they make use of platform_data, so nothing really had to change here. The .data_size field is unused, so its usage gets removed. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 0ce5fabe59d7c4f51b5ad51ed178ba92531ec04d) commit 85ef62cf208b4bfcbdf446ae63dcfa6435c27e56 Author: Andres Salomon Date: Thu Feb 17 19:07:12 2011 -0800 mfd: mfd_cell is now implicitly available to ab3100 drivers The cell's platform_data is now accessed with a helper function; change clients to use that, and remove the now-unused data_size. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 5528e40f973ac427c857593ea0f636b6f65058b0) commit 236e274c61b0fa52e5312d440b0c8ca515fea678 Author: Andres Salomon Date: Thu Feb 17 19:07:13 2011 -0800 mfd: mfd_cell is now implicitly available to asic3 drivers No need to explicitly set the cell's platform_data/data_size. Modify clients to use mfd_get_cell helper function instead of accessing platform_data directly. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit d24f36d352bb9fb72b6611bdca41adbb41cb13ba) commit 73bd5cf8e86fa3944e7ab5aeeeb51754d5f24331 Author: Andres Salomon Date: Thu Feb 17 19:07:14 2011 -0800 mfd: mfd_cell is now implicitly available to htc-pasic3 drivers No need to explicitly set the cell's platform_data/data_size. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 07ae2a08deb141f22d7974615bd3006e8dce3883) commit 76a244badbce1135178a17db53298c47e7adb208 Author: Andres Salomon Date: Thu Feb 17 19:07:15 2011 -0800 mfd: mfd_cell is now implicitly available to timberdale drivers The cell's platform_data is now accessed with a helper function; change clients to use that, and remove the now-unused data_size. Note that the mfd's platform_data is marked __devinitdata. This is still correct in all cases except for the timbgpio driver, whose remove hook has been changed to no longer reference the pdata. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit e46dccff341068d8530610a822965794f70b998f) commit fa0c7fbdb448c7a2f68dd8ef33475abbdf70af4e Author: Andres Salomon Date: Thu Feb 17 19:07:16 2011 -0800 mfd: mfd_cell is now implicitly available to t7166xb drivers No need to explicitly set the cell's platform_data/data_size. Modify clients to use mfd_get_cell helper function instead of accessing platform_data directly. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit a23090ada44889322fe39142fb58ebc5794f709c) commit 8613113adc8bd9af0726d894015fe7c0ec38bfb3 Author: Andres Salomon Date: Thu Feb 17 19:07:17 2011 -0800 mfd: mfd_cell is now implicitly available to wl1273 drivers The cell's platform_data is now accessed with a helper function; change clients to use that, and remove the now-unused data_size. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 15de7a41d30cfe8090efdc5fd6a92ed7a2d80ce7) commit 51bbf6d32f976c5bf6f1e4ca0572524d4169f837 Author: Andres Salomon Date: Thu Feb 17 19:07:18 2011 -0800 mfd: mfd_cell is now implicitly available to sh_mobile_sdhi drivers No need to explicitly set the cell's platform_data/data_size. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 410b09172787a930753fa5ed904d820e3a9d7a1f) commit db49fac8fd4a5bf79442e5d587591662de5118be Author: Andres Salomon Date: Thu Feb 17 19:07:19 2011 -0800 mfd: mfd_cell is now implicitly available to tc6393xb drivers No need to explicitly set the cell's platform_data/data_size. Modify clients to use mfd_get_cell helper function instead of accessing platform_data directly. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 7d76ac15ad1a8d8b1a7b7b4f6be7a9d8dfd225bf) commit 805f9a2e380f277ac3748f2cc5a155023174bc73 Author: Andres Salomon Date: Thu Feb 17 19:07:20 2011 -0800 mfd: mfd_cell is now implicitly available to twl4030 drivers The cell's platform_data is now accessed with a helper function; change clients to use that, and remove the now-unused data_size. Signed-off-by: Andres Salomon Acked-by: Peter Ujfalusi Signed-off-by: Samuel Ortiz (cherry picked from commit 0638d56fbb6cf8367fcf01a1febf6a191b0e0704) commit 34fe7ef9f4d4e0f451d09fc70f558af5cd8cd23e Author: Andres Salomon Date: Thu Feb 17 19:07:21 2011 -0800 mfd: mfd_cell is now implicitly available to tc6387xb drivers No need to explicitly set the cell's platform_data/data_size. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 6a3521ad3db45066d4ca38652dd0b57ea2fd0a30) commit f8d2f675e852d0296606923405bc27a2ac3aa3d1 Author: Andres Salomon Date: Thu Feb 17 19:07:22 2011 -0800 mfd: mfd_cell is now implicitly available to janz drivers The cell's platform_data is now accessed with a helper function; change clients to use that, and remove the now-unused data_size. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 8615e4cba1d3a0f15b9a4da9f32f8fbc3488fa54) commit 705bf16799b2d8909be27fe27be1def038f5482f Author: Andres Salomon Date: Thu Feb 17 19:07:23 2011 -0800 mfd: mfd_cell is now implicitly available to mc13xxx drivers The cell's platform_data is now accessed with a helper function; change clients to use that, and remove the now-unused data_size. Note that mfd-core no longer makes a copy of platform_data, but the mc13xxx-core driver creates the pdata structures on the stack. In order to get around that, the various ARM mach types that set the pdata have been changed to hold the variable in static (global) memory. Also note that __initdata references in aforementioned pdata structs have been dropped. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 4ec1b54c4d082d4bad19b55ca709da7e7138d542) commit 72d6e726d977c2b25be6f493eb0e580c41cde893 Author: Andres Salomon Date: Thu Feb 17 19:07:24 2011 -0800 mfd: Drop data_size from mfd_cell struct Now that there are no more users of this, drop it. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 40e03f571b2e63827f2afb90ea9aa459612c29e3) commit bff366d355f87c3878b82185e1baf5c97f98d903 Author: Andres Salomon Date: Thu Feb 17 19:07:25 2011 -0800 mfd: Rename platform_data field of mfd_cell to mfd_data Rename the platform_data variable to imply a distinction between common platform_data driver usage (typically accessed via pdev->dev.platform_data) and the way MFD passes data down to clients (using a wrapper named mfd_get_data). All clients have already been changed to use the wrapper function, so this can be a quick single-commit change that only touches things in drivers/mfd. Signed-off-by: Andres Salomon Acked-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 65e523595a31813c0f20ffd249792c60e253438e) commit da05d6008d85a8a052c646cefca150dbf0c482bd Author: Andres Salomon Date: Mon Feb 28 17:24:03 2011 +0100 asoc: davinci_voicecodec: use mfd_data instead of driver_data Use mfd_data for passing information from mfd drivers to soc clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). Signed-off-by: Andres Salomon Acked-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit d57763370e1e12dd72e5a7bc6d6a7644e0003593) commit 74d44c16cf28d59960920c8d3b31a5db511ce486 Author: Andres Salomon Date: Thu Feb 17 19:07:27 2011 -0800 asoc: wm8400-codec: Use mfd_data instead of driver_data Use mfd_data for passing information from mfd drivers to soc clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). Signed-off-by: Andres Salomon Acked-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit dab1547a011b221308b6e991405677c78e1a8956) commit 564df5f94fdcd8662054364f2e5989b5f29387bd Author: Andres Salomon Date: Thu Feb 17 19:07:28 2011 -0800 w1: Use mfd_data instead of driver_data for dsw1wm.c Use mfd_data for passing information from mfd drivers to mfd clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). This changes ds1wm only; mfd drivers with other cells are not modified, with the exception of led_cell. The led_cell.driver_data line is dropped from htc-pasic3.c in this patch as well. It's not used in mainline (there's no leds-pasic3 platform driver), so it should be safe to take care of that here. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit fcd67979d3808afbe357048d928470ef9b37cd4b) commit 69d9d8a8fb8846ad35553bd0fddeeed74d7e568a Author: Andres Salomon Date: Thu Feb 17 19:07:29 2011 -0800 mmc: Use mfd_data instead of driver_data for tmio-mmc Use mfd_data for passing information from mfd drivers to mfd clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). This changes tmio-mmc only; mfd drivers with other cells are not modified. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 4f95bf404870cccb08ff6d59e1986d43aee5efb6) commit d774639870033739dbb58f2b8db6a55546bc339a Author: Andres Salomon Date: Thu Feb 17 19:07:30 2011 -0800 mtd: Use mfd_data instead of driver_data for tmio_nand Use mfd_data for passing information from mfd drivers to mfd clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). This changes tmio-nand only; mfd drivers with other cells are not modified. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit d9d01f4b2697b410625fce288bd1196927994093) commit 9f4a87b3a8bc3b28be0add9ef4963a09db75b5e0 Author: Andres Salomon Date: Thu Feb 17 19:07:31 2011 -0800 fb: Use mfd_data instead of driver_data for tmio-fb Use mfd_data for passing information from mfd drivers to mfd clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). This changes tmio-fb only; mfd drivers with other cells are not modified. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 6d90bdde4b7b8e0f403bc3641fcddea733bddf77) commit 79f7ba68272254bf30e7c57be4290c361814aa6f Author: Andres Salomon Date: Thu Feb 17 19:07:32 2011 -0800 rdc321x-southbridge: Use mfd_data instead of driver_data Use mfd_data for passing information from mfd drivers to soc clients. The mfd_cell's driver_data field is being phased out. Clients that were using driver_data now access .mfd_data via mfd_get_data(). Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 46673ed2cdca85afa7c69d126e3778bba2dbd2d5) commit 40916c268c138905ccca23ed98ddcdec7a4e526f Author: Andres Salomon Date: Thu Feb 17 19:07:33 2011 -0800 mfd: Remove driver_data field from mfd_cell All users of this have now been switched over to using mfd_data; it can go away now. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit dcb50e83bb86d66d3554ba9c365488669c84d037) commit 6f350dd778e96ddf6e492ab23c3135af10f450e8 Author: Andres Salomon Date: Thu Feb 17 19:07:34 2011 -0800 mfd: Add refcounting support to mfd_cells This provides convenience functions for sharing of cells across multiple mfd clients. Mfd drivers can provide enable/disable hooks to actually tweak the hardware, and clients can call mfd_shared_cell_{en,dis}able without having to worry about whether or not another client happens to have enabled or disabled the cell/hardware. Note that this is purely optional; drivers can continue to use the mfd_cell's enable/disable hooks for their own purposes, if desired. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 1e29af62f2b285bd18685da93c3ce8c33ca2d1db) commit 30a029160f585962c18792462a1bd9e80e0c1db1 Author: Andres Salomon Date: Thu Feb 17 19:07:35 2011 -0800 mfd: add platform_device sharing support for mfd This adds functions to enable platform_device sharing for mfd clients. Each platform driver (mfd client) that wants to share an mfd_cell's platform_device uses the mfd_shared_platform_driver_{un,}register() functions instead of platform_driver_{un,}register(). Along with registering the platform driver, these also register a new platform device with the same characteristics as the original cell, but a different name. Given an mfd_cell with the name "foo", drivers that want to share access to its resources can call mfd_shared_platform_driver_register with platform drivers named (for example) "bar" and "baz". This will register two platform devices and drivers named "bar" and "baz" that share the same cell as the platform device "foo". The drivers can then call "foo" cell's enable hooks (or mfd_shared_cell_enable) to enable resources, and obtain platform resources as they normally would. This deals with platform handling only; mfd driver-specific details, hardware handling, refcounting, etc are all dealt with separately. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit a9bbba996302344b1fac7773cf8198f6fee35ac1) commit e8450026048ae66ef4caed6bd77641ab30ab3ec2 Author: Andres Salomon Date: Thu Feb 17 19:07:36 2011 -0800 mfd: Add sharing for cs5535 acpi/pms cells This enables sharing of cs5535-mfd cells via the new mfd_shared_* API. Hooks for enable/disble of resources are added, with refcounting of resources being automatically handled so that cs5535_mfd_res_enable/disable are only called when necessary. Clients of cs5535-mfd (in this case, olpc-xo1.c) are also modified to use the mfd_shared API. The platform drivers are also renamed to olpc-xo1-{pms,acpi}, and resource enabling/disabling is replaced with mfd_shared API calls. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 1310e6d638b302bd9cd064f8de7dcd546bb7f597) commit ced0c9bbe3b82c2bf2bbb9e10b8c4bbe7d82ea60 Author: Axel Lin Date: Mon Feb 28 14:32:15 2011 +0800 mfd: Add MODULE_DEVICE_TABLE to mc13xxx-core The device table is required to load modules based on modaliases. After adding the MODULE_DEVICE_TABLE, below entries will be added to modules.alias: alias spi:mc13892 mc13xxx_core alias spi:mc13783 mc13xxx_core Signed-off-by: Axel Lin Acked-by: Uwe Kleine-König Signed-off-by: Samuel Ortiz (cherry picked from commit 6991ec255af960e1349a21ec2782ea67408b7eb6) commit 2469b03523613425ecfb5f01d6d2c1de44ebef63 Author: Axel Lin Date: Mon Feb 28 14:33:12 2011 +0800 mfd: Add MODULE_DEVICE_TABLE to pcf50633-core The device table is required to load modules based on modaliases. After adding the MODULE_DEVICE_TABLE, below entries will be added to modules.alias: alias i2c:pcf50633 pcf50633 Signed-off-by: Axel Lin Acked-by: Harald Welte Signed-off-by: Samuel Ortiz (cherry picked from commit 7679089debfbffc9243b41664e348412f9df1639) commit b4d87ef88c9dd1094276a11ea338aa65fede9399 Author: Axel Lin Date: Mon Feb 28 14:34:27 2011 +0800 mfd: Add MODULE_DEVICE_TABLE to vx855 The device table is required to load modules based on modaliases. After adding the MODULE_DEVICE_TABLE, below entries will be added to modules.pcimap: vx855 0x00001106 0x00008409 0xffffffff 0xffffffff 0x00000000 0x00000000 0x0 Signed-off-by: Axel Lin Acked-by: Harald Welte Signed-off-by: Samuel Ortiz (cherry picked from commit bcd2f639629b58fbc702bb8be348a03e75472021) commit 8e943e16386760ab4d79eea21d09a4925f3f6297 Author: Keerthy Date: Tue Mar 1 19:12:26 2011 +0530 mfd: Add twl4030 madc driver Introducing a driver for MADC on TWL4030 powerIC. MADC stands for monitoring ADC. This driver monitors the real time conversion of analog signals like battery temperature, battery cuurent etc. Signed-off-by: Keerthy Signed-off-by: Samuel Ortiz (cherry picked from commit f99c1d4f94f91fd3a20bd2eaa3be9c5e7d2668eb) commit c734068e24c69f51c817da8a369e55ba31416ecf Author: Keerthy Date: Tue Mar 1 19:12:36 2011 +0530 hwmon: twl4030: Hwmon Driver for TWL4030 MADC This driver exposes the sysfs nodes of the TWL4030 MADC module. All the voltage channel values are expressed in terms of mV. Channel 13 and channel 14 are reserved. There are channels which represent temperature and current the output is represented by celcius and mA respectively. Signed-off-by: Keerthy Acked-by: Guenter Roeck Signed-off-by: Samuel Ortiz (cherry picked from commit 0070bddfe7275e5bc763884a8ac59651f4e79eab) commit 7ebe3ee2a485393b45beb354e0afedaddbaf45b0 Author: Mark Brown Date: Tue Mar 1 20:12:44 2011 +0000 mfd: Convert WM831x interrupt masking to enable/disable operations The WM831x interrupt masking support is a much better match for the genirq enable and disable operations than for the mask and unmask operations. The latter are intended to used during interrupt handling for temporary changes which isn't really practical on a slow bus. Convert the operations over to match this. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit f624effb7354814d062f149c8a1e2c46a44acb1f) commit 6ad0d128930fef630aedd7fd2c358aee2f433ed7 Author: Mark Brown Date: Tue Mar 1 20:12:45 2011 +0000 mfd: Convert WM8994/58 interrupt masking to enable/disable operations The WM8994/58 interrupt masking support is a much better match for the genirq enable and disable operations than for the mask and unmask operations. The latter are intended to used during interrupt handling for temporary changes which isn't really practical on a slow bus. Convert the operations over to match this. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit d664f20020e0a3564d7aaba6625aa58d24283b7d) commit fdc14394406c1e5e665edb453c3065eebab33c3e Author: Mark Brown Date: Tue Mar 1 20:12:46 2011 +0000 mfd: Add platform data to support multiple WM831x devices per board If a system contains multiple WM831x devices we need to pass a device number through to the MFD so that we use unique device IDs when we instantiate child devices. In order to get support for this into 2.6.39 add some platform data to support the configuration, but no implementation as yet. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 93619c2106e2c968a260ebffb75ddc5efa567c16) commit f757e02a574d3bd2d84ab886856b7c971f4aff90 Author: Andres Salomon Date: Tue Mar 1 12:32:20 2011 -0800 tmio: Silence warnings introduced by mfd changes This silences warnings such as drivers/video/tmiofb.c: In function 'tmiofb_hw_init': drivers/video/tmiofb.c:270: warning: initialization discards qualifiers from pointer target type These were added by me in commit 2a79bb1d. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 944dc03551f6e812c00e586edba84b28c52ffe8c) commit 3a2f13be163fe740a2bd83cd4f6178a8541e8b4c Author: Andres Salomon Date: Tue Mar 1 13:35:48 2011 -0800 jz4740: silence warnings related to mfd_get_cell changes mfd_get_cell returns a const, so change the jz4740 clients to store a const mfd cell. This silences type mismatch warnings. Signed-off-by: Andres Salomon Acked-by: Anton Vorontsov Signed-off-by: Samuel Ortiz (cherry picked from commit e9300066bbd21c4fba3c8c5475c6a21d9c97694e) commit 5a3e5fd1f3b8ece30c18d89f71d40f09ee9d45c4 Author: Mattias Wallin Date: Wed Mar 2 11:51:11 2011 +0100 mfd: ab8500 chip revision 3.0 support This patch adds support for ab8500 chip revision cut 3.0. Also rephrased from Changes to Author in the header. Signed-off-by: Mattias Wallin Acked-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit adceed6263887e04721b477e6504aa24789f827d) commit 365e27bb5c0a92e5db669fa391500822cc33f391 Author: Mattias Wallin Date: Wed Mar 2 11:52:36 2011 +0100 mfd: ab8500-core switch off status added This patch adds a sysfs file with the ab8500 switch off status. The switch off status contains information of what caused the ab8500 chip to power off. A print during boot is also added. Signed-off-by: Mattias Wallin Acked-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit e5c238c3fde93afdddef36aec2642155c709d93a) commit 6e812d9d6ac4fad532cc72318e6fd89e6f6a8abe Author: Andres Salomon Date: Tue Mar 1 13:55:07 2011 -0800 w1: Silence ds1wm warnings related to mfd_get_cell changes mfd_get_cell returns a const, so change the ds1wm client to store a const mfd cell. This silences type mismatch warnings. Since we're guaranteed to have the mfd_cell, we can also simplify the code a bit to get rid of a temporary variable and NULL check. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit 7e5dc1f7004832f797999dfb3498a68a6c16ef73) commit 2f9f05f412ea19e77242415a3b1759860375f7da Author: Andres Salomon Date: Thu Mar 3 09:51:58 2011 -0800 mfd: Rename mfd_shared_cell_{en,dis}able to drop the "shared" part As requested by Samuel, there's not really any reason to have "shared" in the name. This also modifies the only user of the function, as well. Signed-off-by: Andres Salomon Signed-off-by: Samuel Ortiz (cherry picked from commit f77289ac25b0c81acbed6f9c17cb14809a04e18b) commit 84a895cad2fe8e68a3f5375cfd22f7d942e9a9e9 Author: MyungJoo Ham Date: Fri Mar 4 15:50:26 2011 +0900 mfd: MAX8997/8966 support MAX8997/MAX8966 chip is a multi-function device with I2C bussses. The chip includes PMIC, RTC, Fuel Gauge, MUIC, Haptic, Flash control, and Battery (charging) control. This patch is an initial release of a MAX8997/8966 driver that supports to enable the chip with its primary I2C bus that connects every device mentioned above except for Fuel Gauge, which uses another I2C bus. The fuel gauge is not supported by this mfd driver and is supported by a seperated driver of MAX17042 Fuel Gauge (yes, the fuel gauge part is compatible with MAX17042). Signed-off-by: MyungJoo Ham Signed-off-by: Kyungmin Park Reviewed-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 527e7e9a82ec95cdb8f694855004b3d262efd09f) commit b7520cf2d71003f29857446c0ee47395806e1714 Author: Daniel Willerud Date: Sat Mar 5 11:46:01 2011 +0100 mfd: Move ab8500 gpadc header to subdir This moves the ab8500-gpadc.h header down into the ab8500/ subdir in include/linux/mfd and fixes some whitespace in the header in the process. Signed-off-by: Daniel Willerud Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit cf16943947cef089c564d2be0ae9d96a285f495e) commit ebbe52e2457ec72e0c7e24de779a532695bd6212 Author: Daniel Willerud Date: Sat Mar 5 11:46:13 2011 +0100 mfd: Reentrance and revamp ab8500 gpadc fetching interface This revamps the interface so that AB8500 GPADCs are fetched by name. Probed GPADCs are added to a list and this list is searched for a matching GPADC. This makes it possible to have multiple AB8500 GPADC instances instead of it being a singleton, and rids the need to keep a GPADC pointer around in the core AB8500 MFD struct. Currently the match is made to the device name which is by default numbered from the device instance such as "ab8500-gpadc.0" but by using the .init_name field of the device a more intiutive naming for the GPADC blocks can be achieved if desired. Signed-off-by: Daniel Willerud Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 6321992cd3c56bab6cc52e3384951e12616805a1) commit 2d2492b655b0cc4b0b8b43d481e6f6cae95b3fcb Author: Daniel Willerud Date: Sat Mar 5 11:46:27 2011 +0100 mfd: Free dangling irq in ab8500 gpadc probe error path Signed-off-by: Daniel Willerud Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 633e0fa59072f5d78227191b212cb12ad3d21902) commit cab2eb465791bc85df4d79244cc0135b30f65adf Author: Johan Palsson Date: Sat Mar 5 11:46:37 2011 +0100 mfd: Calibrate ab8500 gpadc using OTP values The GPADC found in the AB8500 needs to be calibrated to work properly. This is done by writing a number of special OTP (one-time-programmable) registers at production. This patch makes sure that these values are used to calibrate the returned value from the GPADC so that it is correct. Signed-off-by: Johan Palsson Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 586f3318adceee4857e82cafc3610070368754e3) commit 01c17c58f49c82596e6321ddb6e38060adb3219a Author: Karl Komierowski Date: Sat Mar 5 11:46:45 2011 +0100 mfd: Fix ab8500-gpadc to measure charger current The GPADC in the AB8500 was incorrectly configured when a charger current channel was selected. Signed-off-by: Karl Komierowski Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 4aad5a918c919c04b6c3136f3c4dcafada3b6319) commit c7ac81acea829d7249b4390ab3be37259f5d5df4 Author: Axel Lin Date: Mon Mar 7 11:02:29 2011 +0800 mfd: Add "platform:" prefix for twl4030-madc platform modalias Since 43cc71eed1250755986da4c0f9898f9a635cb3bf (platform: prefix MODALIAS with "platform:"), the platform modalias is prefixed with "platform:". Signed-off-by: Axel Lin Signed-off-by: Samuel Ortiz (cherry picked from commit 0ea3e83bd8d198f2a18e0066542f8670b2883890) commit 670c283044f34655c711716768c395a9ffae72d5 Author: Randy Dunlap Date: Mon Mar 14 11:28:37 2011 +0100 mfd: Fix MAX8997 Kconfig entry typos Signed-off-by: Samuel Ortiz (cherry picked from commit d7e8c01a97429101cb0ca2c09380e683c3814af8) commit 494f21922be20007572b9c17a071a7febbfc5a27 Author: Haojian Zhuang Date: Mon Mar 7 23:43:09 2011 +0800 mfd: Adopt mfd_data in 88pm860x backlight Copy 88pm860x platform data into different mfd_data structure for backlight driver. So move the identification of device node from backlight driver to mfd driver. Signed-off-by: Haojian Zhuang Signed-off-by: Samuel Ortiz (cherry picked from commit adb70483f4d560323db9aaca5f066fde4d96f339) commit f54f28e46b7ba463fc99d33e8bec29e768510e69 Author: Haojian Zhuang Date: Mon Mar 7 23:43:10 2011 +0800 mfd: Adopt mfd_data in 88pm860x led Copy 88pm860x platform data into different mfd_data structure for led driver. So move the identification of device node from led driver to mfd driver. Signed-off-by: Haojian Zhuang Signed-off-by: Samuel Ortiz (cherry picked from commit 3154c344696e58b7e15317cd624816dbe3832ad1) commit 1e75144a6926646a1195b77a1d6ac389eb3415bf Author: Haojian Zhuang Date: Mon Mar 7 23:43:11 2011 +0800 mfd: Adopt mfd_data in 88pm860x regulator Copy 88pm860x platform data into different mfd_data structure for regulator driver. So move the identification of device node from regulator driver to mfd driver. Signed-off-by: Haojian Zhuang Acked-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 22aad0011e4728a29bf3775b6f5e2f9677abd8c0) commit 90f5d06efe36ffce01ab1a3563e5530f53c4844d Author: Haojian Zhuang Date: Mon Mar 7 23:43:12 2011 +0800 mfd: Adopt mfd_data in 88pm860x input driver Copy 88pm860x platform data into different mfd_data structure for onkey/touch/codec/power driver. So move the identification of device node from those drivers to mfd driver. Signed-off-by: Haojian Zhuang Signed-off-by: Samuel Ortiz (cherry picked from commit c9f560b3d0222f6a6e3faeda324e786e230e4f20) commit 6490adb04afd84c31f2443ef929db50c0b483096 Author: Haojian Zhuang Date: Mon Mar 7 23:43:16 2011 +0800 mfd: Append additional read write on 88pm860x Append the additional read/write operation on 88pm860x for accessing test page in 88PM860x. Signed-off-by: Haojian Zhuang Signed-off-by: Samuel Ortiz (cherry picked from commit 09b034191acd1f95a749630fe366a84d3029930c) commit af75b8f0d9af1e2543beb0cdfaada94f2abdd4b5 Author: Mark Brown Date: Thu Mar 10 13:54:07 2011 +0000 mfd: Add WM8994 bulk register write operation Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit e93c53870c6d77c40de8981da238af947d6aa084) commit c61d8f0769b953c1cca19f6714159aec8a6f29d8 Author: MyungJoo Ham Date: Fri Mar 11 11:34:44 2011 +0900 regulator: MAX8997/8966 support This patch supports PMIC/Regulator part of MAX8997/MAX8966 MFD. In this initial release, selecting voltages or current-limit and switching on/off the regulators are supported. Controlling voltages for DVS with GPIOs is not implemented fully and requires more considerations: it controls multiple bucks (selection of 1, 2, and 5) at the same time with SET1~3 gpios. Thus, when DVS-GPIO is activated, we lose the ability to control the voltage of a single buck regulator independently; i.e., contolling a buck affects other two bucks. Therefore, using the conventional regulator framework directly might be problematic. However, in this driver, we try to choose a setting without such side effect of affecting other regulators and then try to choose a setting with the minimum side effect (the sum of voltage changes in other regulators). On the other hand, controlling all the three bucks simultenously based on the voltage set table may help build cpufreq and similar system more robust; i.e., all the three voltages are consistent every time without glitches during transition. Signed-off-by: MyungJoo Ham Signed-off-by: Kyungmin Park Acked-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit bd6ca2cf50fbe3cc63513d026343035c3bd2e352) commit 2bbb83904581b8d151c0bbfe7256ac400028d2bd Author: Linus Walleij Date: Wed Mar 9 13:02:38 2011 +0100 mfd: Add a core driver for TI TPS61050/TPS61052 chips v2 The TPS61050/TPS61052 are boost converters, LED drivers, LED flash drivers and a simple GPIO pin chips. Cc: Liam Girdwood Cc: Mark Brown Cc: Jonas Aberg Cc: Ola Lilja Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 798a8eee44da56b4f2e000ff81dfb49d09c65b71) commit 87015694e6a53f7ebf0a7c2a01040d3c0984eb1b Author: Linus Walleij Date: Wed Mar 9 12:02:55 2011 +0000 regulator: Add a subdriver for TI TPS6105x regulator portions v2 This adds a subdriver for the regulator found inside the TPS61050 and TPS61052 chips. Cc: Samuel Ortiz Cc: Ola Lilja Cc: Jonas Aberg Signed-off-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 2edd3b692404efc2d3915175a2ed553e783de763) commit 9d75b6cad47c98b2d44cf460532fb141d9a1b783 Author: Mark Brown Date: Thu Mar 17 16:33:49 2011 +0000 mfd: Staticise WM8994 PM ops They're not exported. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit aad343107b4c153dd9f3ffc3d0f32558a25438e9) commit ac01b490e4b01916681f4a911f2d265b301a06d7 Author: Mark Brown Date: Thu Mar 17 21:40:51 2011 +0000 mfd: Remove copy from WM831x I2C write function This saves us allocating an array on the stack, giving a meaningless performance improvement and ensuring that if drivers ever do large writes we'll not allocate large arrays on the stack. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 4c4d887822070410e3be519e1a4ff933fb899ba8) commit 4adc3e3722bac653153bbc7a1c0de26d9441c7f4 Author: Mark Brown Date: Thu Mar 17 21:42:28 2011 +0000 mfd: Avoid copying data in WM8994 I2C write As well as providing a trivial performance optimisation this also avoids allocating a copy of the message on the stack which is beneficial when doing large transfers. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 334e9ab8f9bb90ddf1eff0b07609961a628064b6) commit 7b80d792d127a9c6789eb8893d37ff5e699573f4 Author: Mark Brown Date: Thu Mar 17 21:42:29 2011 +0000 mfd: Push byte swap out of WM8994 bulk I/O For bulk I/O it is both convenient and more sensible to pre-swap the data rather than doing the swap as part of the I/O operation so move the byte swaps we're currently doing into the core write function into the register based functions, giving the bulk write function a straight pass through to the chip. This leaves reads inconsistent, this will be addressed as a followup patch. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 4277163c2a451fd8db0883cde5e55cf61a70fe85) commit 40baac1b59aaa7b62b7bf608c1aa9a1b809c4dfe Author: Mark Brown Date: Thu Mar 17 21:42:30 2011 +0000 mfd: Constify WM8994 write path Allow const buffers to be passed in without type safety issues. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 07e73fbb2d52434e6b61019326f35040357e8efb) commit 86bf9cc233fc333d9e0018f6c2b0aec59e65fbdf Author: Linus Walleij Date: Tue Mar 15 14:26:37 2011 +0100 mfd: Rename ab8500 gpadc header Rename AB8500 GPADC header so as not to be redunantly named. Signed-off-by: Linus Walleij Signed-off-by: Samuel Ortiz (cherry picked from commit 8bd4d7c4c500e88bff975bbcb7fe0d89da319cdd) commit 1be030ee4c589acb079c578a00686a54942d88fb Author: Mark Brown Date: Fri Mar 18 12:50:10 2011 +0000 mfd: Push byte swaps out of wm8994 bulk read path For consistency with the write path push byte swaps of the WM8994 register data out of the bulk read data path into the per-register APIs. The only user of the bulk register read is the interrupt code which is updated to do the swaps itself part of this patch. Signed-off-by: Mark Brown Signed-off-by: Samuel Ortiz (cherry picked from commit 316b6cc081b112546842d44ded21512bd8454a85) commit dde67d729877f77aa057435566ac55830b037555 Author: Henry Nestler Date: Sun Feb 20 20:50:56 2011 +0000 fbcon: Bugfix soft cursor detection in Tile Blitting Use mask 0x10 for "soft cursor" detection on in function tile_cursor. (Tile Blitting Operation in framebuffer console). The old mask 0x01 for vc_cursor_type detects CUR_NONE, CUR_LOWER_THIRD and every second mode value as "software cursor". This hides the cursor for these modes (cursor.mode = 0). But, only CUR_NONE or "software cursor" should hide the cursor. See also 0x10 in functions add_softcursor, bit_cursor and cw_cursor. Signed-off-by: Henry Nestler Cc: stable@kernel.org Signed-off-by: Paul Mundt (cherry picked from commit d6244bc0ed0c52a795e6f4dcab3886daf3e74fac) commit 78476666001689649e40f58e0f41ae8c5a05f303 Author: Martin Decky Date: Sun Feb 13 19:28:40 2011 +0000 video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET The macros for getting the values for horizontal sync width and offset do not respect the EDID specification. Both these values are 10 bit values according to [1], not 6 bit values. The lower 8 bits are stored in byte 8 and byte 9 of the DTD respectively, while two additional bits for each value are stored in byte 11. The original macros just slammed the bits together. Although the original macros usually worked fine because the higher two bits are rarely used, it can cause severe problems on plasma panels running at 1920x1080 @ 50 Hz with drivers that rely on the correct parsing of the EDID data by fbmon.c (e.g. udlfb). The patch should apply cleanly to both the fbdev-2.6.git branch and linux-next.git branch. [1] VESA Enhanced Extended Display Identification Data Standard, Release A, Revision 2, page 34, notes 7 & 8, VESA, Sep 2006 Signed-off-by: Martin Decky Signed-off-by: Paul Mundt (cherry picked from commit dfc906daeec03b3f2d306ae260d398d97ba232c5) commit 12251c7c7ec3e479972edd3e49c510a0cb16b89a Author: Andy Green Date: Tue Mar 8 11:07:27 2011 +0000 I2C: OMAP2+: Set hwmod flags to only allow 16-bit accesses to i2c Peter Maydell noticed when running under QEMU he was getting errors reporting 32-bit access to I2C peripheral unit registers that are documented to be 8 or 16-bit only[1][2] The I2C driver is blameless as it wraps its accesses in a function using __raw_writew and __raw_readw, it turned out it is the hwmod stuff. However the hwmod code already has a flag to force a perhipheral unit to only be accessed using 16-bit operations. This patch applies the 16-bit only flag to the 2430, OMAP3xxx and OMAP44xx hwmod structs. 2420 was already correctly marked up as 16-bit. The 2430 change will need testing by TI as arranged in the comments to the previous patch version. When the 16-bit flag is or-ed with other flags, it is placed first as requested in comments. [1] OMAP4430 Technical reference manual section 23.1.6.2 [2] OMAP3530 Techincal reference manual section 18.6 Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 0a93547eb6bebdedda419fddee83c0791fe1f8ec Author: Andy Green Date: Tue Mar 8 11:07:34 2011 +0000 I2C: OMAP2+: Name registers in I2C IP V2 only accordingly The OMAP I2C driver dynamically chooses between two register sets of differing sizes depending on the cpu type it finds itself on. It has been observed that the existing code references non-existing registers on OMAP3530, because while it correctly chose the smaller register layout based on cpu type, the code uses the probed register ID to decide if to execute code referencing an extra register, and both register layout devices on OMAP3530 and OMAP4430 report the same probed ID of 0x40. This patch changes the extended register names only found on IP V2 of the I2C peripheral unit accordingly to help show up errors in usage. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 79908891864f7580c8d0badad87539c248f9ff1d Author: Andy Green Date: Tue Mar 8 11:07:42 2011 +0000 I2C: OMAP2+: Introduce I2C IP versioning constants These represent the two kinds of (incompatible) OMAP I2C peripheral unit in use so far. The constants are in linux/i2c-omap.h so the omap i2c driver can have them too. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit ab37d02c9c621c8d1c6d7758ff6e226ee0139ae7 Author: Andy Green Date: Tue Mar 8 11:07:50 2011 +0000 I2C: OMAP2+: Tag all OMAP2+ hwmod defintions with I2C IP revision Since we cannot trust (or even reliably find) the OMAP I2C peripheral unit's own revision register, we must inform the OMAP i2c driver of which IP version it is running on. We do this by tagging the omap_hwmod_class for i2c on all the OMAP2+ platform / cpu specific hwmod init and passing it up to the driver (next patches). Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 91ec764b9b078177a1d61c0d500794020fde3e9e Author: Andy Green Date: Tue Mar 8 11:07:57 2011 +0000 I2C: OMAP: add rev to omap i2c platform data We need to pass the I2C IP revision from the hwmod class up into the OMAP I2C driver, which does not have direct access to it. This adds a member to the platform data the OMAP I2C driver does use already to hold the I2C IP revision. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 8247e4b6d8d44ee5ef4e0565e1a6e2dc04f2dc3c Author: Andy Green Date: Tue Mar 8 11:08:05 2011 +0000 I2C: OMAP1: set IP revision in platform data All OMAP1 are using "IP revision 1" in terms of register layout. We set this information in omap1_i2c_add_bus() so we don't have to use cpu_is_xxx() any more in the omap i2c driver. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit c2a2e607b7dcd893711666dbbc8779fc7a12f993 Author: Andy Green Date: Tue Mar 8 11:08:12 2011 +0000 I2C: OMAP2+: Pass hwmod rev knowledge via platform_data when i2c bus added Mark each OMAP I2C bus with the hwmod's knowledge of which I2C IP version is in the chip we're running on. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 209c289d3dcf14362aa64e9f714c5ccdf9012837 Author: Andy Green Date: Tue Mar 8 11:08:20 2011 +0000 I2C: OMAP2+: use platform_data ip revision to select register map Change the register map names to reflect the IP revision they are representing, and use the platform_data IP revision index to select between them at init time. Eliminates 1 of 17 cpu_...() calls in the driver. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit fb4a8e567370615203a5560e7206c082dc6ad6f4 Author: Andy Green Date: Tue Mar 8 11:08:27 2011 +0000 I2C: OMAP2+: Solve array bounds overflow error on i2c idle This solves the main problem the patch series is about. Prior to this patch on OMAP3530 the driver wrongly interprets the I2C peripheral unit's own reported revision as meaning it is running on an IP V2 device and must use the extended registers. In fact OMAP3530 is IP V1 with the smaller register set, the reason for the confusion is that the hardware does in fact report having the same IP revision index as is found on an OMAP4430, which really is IP V2 and has the extended registers. This corrects the test for which registers to use so that it decides using hwmod knowledge found in the platform_data. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit a8c85b00b9b1e3d37b9cf0774002388448e19709 Author: Andy Green Date: Tue Mar 8 11:08:34 2011 +0000 I2C: OMAP2+: address confused probed version naming The driver reflects the confusion that probed I2C revision from the hardware of 0x40 means it is on an OMAP4430. However, you will probe the same 0x40 ID on an OMAP3530. So this patch changes the name to reflect that. It also clarifies that the original name OMAP_I2C_REV_2 is referring to some ancient OMAP1 revision number, not to be confused with the IP revisions this patch series introduces. Similarly the term "rev" is used in the ancient OMAP1 ISR, the term is changed to use omap1 instead. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren commit 2f05e13bb6813ffe465056fccef18363b49f34b7 Author: Andy Green Date: Tue Mar 8 11:08:42 2011 +0000 I2C: OMAP2+: increase omap_i2c_dev_attr flags from u8 to u32 As part of removing cpu_...() from the OMAP I2C driver, we need to convert the CPU tests into functionality flags that are set by hwmod class in the same way the IP revision is. More flags are needed than will fit in the existing u8 flags member of omap_i2c_dev_attr. These flags can refer to options inside the IP block but they are most needed for information about cpu implementation specific options that are not part of the IP block itself. For example, how the CPU data bus is wired to the IP block databus differs between OMAP cpus and affects how you must shift the address in the IP block, but is not a feature of the IP block itself. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 3293bcf2387a773f273cf8744d33383eb7ab3e8b Author: Andy Green Date: Tue Mar 8 11:08:49 2011 +0000 I2C: OMAP1/OMAP2+: add flags field to omap i2c platform data OMAP I2C driver can access the configuration flags through its platform data. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit b9a94d4ddff781314f031f6eac6a32e497da4b2f Author: Andy Green Date: Tue Mar 8 11:08:57 2011 +0000 I2C: OMAP2+: Pass flags up to omap i2c platform_data as well This is how the driver can find the flags for its implementation functionality in its platform_data Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit ad4b94c5fe4f05f1914c740b1ea2aaa2debac6a3 Author: Andy Green Date: Tue Mar 8 11:09:04 2011 +0000 I2C: OMAP1/OMAP2+: create omap I2C functionality flags for each cpu_... test These represent the 8 kinds of implementation functionality that up until now were inferred by the 16 remaining cpu_...() tests in the omap i2c driver. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit c58276328afab524c8e1bbd919a72ed4590ae48a Author: Andy Green Date: Tue Mar 8 11:09:12 2011 +0000 I2C: OMAP2+: add correct functionality flags to all omap2plus i2c dev_attr This adds the new functionality flags for omap i2c unit to all OMAP2 hwmod definitions Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 516c0fb31716ede513d1d3b8b9c3b92f94a241c7 Author: Andy Green Date: Tue Mar 8 11:09:19 2011 +0000 I2C: OMAP1: set i2c unit feature implementation flags in platform data Most of the OMAP1 implementation flags are set statically, with the exception that omap7xx has its data bus wired up differently. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit a8ea8320feeb5c4db69a09505dd1b4975ca25682 Author: Andy Green Date: Tue Mar 8 11:09:27 2011 +0000 I2C: OMAP2+: Convert omap I2C driver to use feature implementation flags from platform data This patch eliminates all cpu_...() tests from the OMAP I2C driver. Instead, it uses the functionality flags in the platform data to make the decisions about product variations the driver needs to handle. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 981e7269aed0073517194f3ed5a48216043a9d97 Author: Andy Green Date: Tue Mar 8 11:09:34 2011 +0000 I2C: OMAP1/OMAP2+: prepend I2C IP version to probed version shown in dev_info The IP version is prepended to the existing printed probed version as an "epoch" version. Cc: patches@linaro.org Cc: Ben Dooks Reported-by: Peter Maydell Signed-off-by: Andy Green Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit ceb4b2fe28ae1890180bb971bfd6fdcac5fa8f1b Author: Thomas Weber Date: Tue Feb 1 08:30:41 2011 +0100 OMAP: Enable Magic SysRq on serial console ttyOx Magic SysRq key is not working for OMAP on new serial console ttyOx because SUPPORT_SYSRQ is not defined for omap-serial. This patch defines SUPPORT_SYSRQ in omap-serial and enables handling of Magic SysRq character. Further there is an issue of losing first break character. Removing the reset of the lsr_break_flag fixes this issue. Signed-off-by: Thomas Weber Acked-by: Govindraj.R Tested-by: Manjunath G Kondaiah Acked-by: Kevin Hilman Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 364a6ece62455f669336e50d5b00f14ba650da93) commit d3990bb3f24867378ad42c99ecb0811376ed6a40 Author: Thomas Abraham Date: Tue Mar 22 17:29:29 2011 +0530 ARM: EXYNOS4: Fix addruart macro Fix incorrect conditional execution of ldr instructions in addruart macro. Signed-off-by: Thomas Abraham Signed-off-by: Abhilash Kesavan Signed-off-by: Nicolas Pitre commit 3f4f5fe92b856225385137f6e20ef605831b9465 Author: Marc Zyngier Date: Fri Mar 18 03:53:58 2011 +0000 NET: smsc95xx: don't use stack for async writes to the device The set_multicast operation performs asynchronous writes to the device, with some addresses pointing to the stack. Bad things may happen, and this is trapped CONFIG_DMA_API_DEBUG: [ 5.237762] WARNING: at /build/buildd/linux-linaro-omap-2.6.38/lib/dma-debug.c:867 check_for_stack+0xd4/0x100() [ 5.237792] ehci-omap ehci-omap.0: DMA-API: device driver maps memory fromstack [addr=d9c77dec] [ 5.237792] Modules linked in: smsc95xx(+) usbnet twl6030_usb twl4030_pwrbutton leds_gpio omap_wdt omap2_mcspi [ 5.237854] [] (unwind_backtrace+0x0/0xf8) from [] (warn_slowpath_common+0x54/0x64) [ 5.237884] [] (warn_slowpath_common+0x54/0x64) from [] (warn_slowpath_fmt+0x30/0x40) [ 5.237915] [] (warn_slowpath_fmt+0x30/0x40) from [] (check_for_stack+0xd4/0x100) [ 5.237915] [] (check_for_stack+0xd4/0x100) from [] (debug_dma_map_page+0xb4/0xdc) [ 5.237976] [] (debug_dma_map_page+0xb4/0xdc) from [] (map_urb_for_dma+0x26c/0x304) [ 5.237976] [] (map_urb_for_dma+0x26c/0x304) from [] (usb_hcd_submit_urb+0x78/0x19c) [ 5.238037] [] (usb_hcd_submit_urb+0x78/0x19c) from [] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) [ 5.238067] [] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) from [] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) [ 5.238098] [] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) from [] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) [ 5.238128] [] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) from [] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) [ 5.238159] [] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) from [] (usbnet_probe+0x204/0x4c4 [usbnet]) [ 5.238220] [] (usbnet_probe+0x204/0x4c4 [usbnet]) from [] (usb_probe_interface+0xe4/0x1c4) [ 5.238250] [] (usb_probe_interface+0xe4/0x1c4) from [] (really_probe+0x64/0x160) [ 5.238250] [] (really_probe+0x64/0x160) from [] (driver_probe_device+0x48/0x60) [ 5.238281] [] (driver_probe_device+0x48/0x60) from [] (__driver_attach+0x8c/0x90) [ 5.238311] [] (__driver_attach+0x8c/0x90) from [] (bus_for_each_dev+0x50/0x7c) [ 5.238311] [] (bus_for_each_dev+0x50/0x7c) from [] (bus_add_driver+0x190/0x250) [ 5.238311] [] (bus_add_driver+0x190/0x250) from [] (driver_register+0x78/0x13c) [ 5.238433] [] (driver_register+0x78/0x13c) from [] (usb_register_driver+0x78/0x13c) [ 5.238464] [] (usb_register_driver+0x78/0x13c) from [] (do_one_initcall+0x34/0x188) [ 5.238494] [] (do_one_initcall+0x34/0x188) from [] (sys_init_module+0xb0/0x1c0) [ 5.238525] [] (sys_init_module+0xb0/0x1c0) from [] (ret_fast_syscall+0x0/0x30) Move the two offenders to the private structure which is kmalloc-ed, and thus safe. Signed-off-by: Marc Zyngier Cc: Steve Glendinning Signed-off-by: David S. Miller (cherry picked from commit 3c0f3c605b2572c740f66ea39fe2d125399b20aa) commit 708ded8589ebfa9332eb0f4bd9ae829ce30637ac Author: Pawel Moll Date: Thu Mar 17 13:10:22 2011 +0100 ARM: 6807/1: realview: Fix secondary GIC initialisation for EB with MPCore tile The second GIC, present when EB board is used with a MPCore tile, was initialised starting with irq number 64, which made interrupts 64-95 in the primary GIC unusable. Signed-off-by: Pawel Moll Signed-off-by: Russell King (cherry picked from commit 0efc48ecaf0f84430524a1759ab9c60aad8eab1e) commit 77f2ba4ab6822084699a297099b01c8789ecb5f9 Author: Nicolas Pitre Date: Tue Mar 22 19:09:14 2011 +0100 ARM: 6825/1: kernel/sleep.S: fix Thumb2 compilation issues Signed-off-by: Nicolas Pitre Reviewed-by: Dave Martin Signed-off-by: Russell King (cherry picked from commit fb4fe87d79511398a68000d2100c825f54b51652) commit 5711e51c52253d24b006d16bd5c37cbdfda66d6a Author: Will Deacon Date: Fri Mar 25 13:12:23 2011 +0100 ARM: 6833/1: perf: add required isbs() to ARMv7 backend The ARMv7 architecture does not guarantee that effects from co-processor writes are immediately visible to following instructions. This patch adds two isbs to the ARMv7 perf code: (1) Immediately after selecting an event register, so that the PMU state following this instruction is consistent with the new event. (2) Immediately before writing to the PMCR, so that any previous writes to the PMU have taken effect before (typically) enabling the counters. Acked-by: Jean Pihet Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit d25d3b4c4d0e27975ee659a64b6d29f02fdbfde4) commit 002d7c4de2bd18e579cd26fdd3b3942084418e7f Author: Will Deacon Date: Fri Mar 25 13:13:34 2011 +0100 ARM: 6834/1: perf: reset counters on all CPUs during initialisation ARMv7 dictates that the interrupt-enable and count-enable registers for each PMU counter are UNKNOWN following core reset. This patch adds a new (optional) function pointer to struct arm_pmu for resetting the PMU state during init. The reset function is called on each CPU via an arch_initcall in the generic ARM perf_event code and allows the PMU backend to write sane values to any UNKNOWN registers. Acked-by: Jean Pihet Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit 574b69cbb633037a9c305d2993aeb680f4a8badd) commit 45be72862258cbe01a36a2e4b0c5025c608b6a3b Author: Will Deacon Date: Fri Mar 25 17:12:37 2011 +0100 ARM: 6835/1: perf: ensure overflows aren't missed due to IRQ latency If a counter overflows during a perf stat profiling run it may overtake the last known value of the counter: 0 prev new 0xffffffff |----------|-------|----------------------| In this case, the number of events that have occurred is (0xffffffff - prev) + new. Unfortunately, the event update code will not realise an overflow has occurred and will instead report the event delta as (new - prev) which may be considerably smaller than the real count. This patch adds an extra argument to armpmu_event_update which indicates whether or not an overflow has occurred. If an overflow has occurred then we use the maximum period of the counter to calculate the elapsed events. Acked-by: Jamie Iles Reported-by: Ashwin Chaugule Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit a737823d37666255e3e74ce84bc9611a038e0888) commit 45c5d8aa4b7cb94ec6be1a3d0e3f67f02ab986d0 Author: John Rigby Date: Wed Mar 9 16:23:14 2011 -0700 ARM: omap3: Fix assembler breakage in sleep34xx.S Assembler in latest binutils needs extra option to enable smc instructions introduced in: ARM: omap3: Remove hand-encoded SMC instructions Signed-off-by: John Rigby Signed-off-by: Nicolas Pitre commit b5fa43b722196bc4ba0e7723176a15b6406872b7 Author: Dave Martin Date: Fri Mar 11 14:29:20 2011 +0000 ARM: Thumb-2: Add local symbols to work around gas behaviour All current versions of gas at the time of writing have issues fixing up pc-relative instructions which reference global symbols, due to the potential need to support symbol preemption. Even though symbol preemption is not relevant to the Linux kernel, there is no way to inform the tools of this, so we get the problem. Most pc-relative forms in ARM, and all pc-relative forms in Thumb, will cause the assembler to fail with various fixup error messages when used to reference global symbols. The legacy behaviour is for ADR and plain LDR instructions in ARM which reference global symbols to be fixed up silently with no relocation emitted. This means that building the kernel in ARM currently works without problems, but this behaviour may be a bug. After discussion with Richard Earnshaw, it seems that there is no single obvious remedy for this inconsistent behaviour, so there is not likely to be a comprehensive upstream fix for a while. A workaround which should be valid for all past and all foreseeable future versions of gas is to express the need for a local fixup explicitly, by declaring a shadow local symbol for any global symbol which needs to be addressed using ADR or any pc-relative LDR variant. This patch implements this workaround for the one part of the main kernel currently known to be affected. The resulting code builds and works correctly in ARM and Thumb. Similar fixes may be needed in mach-specific assembler. Signed-off-by: Dave Martin Signed-off-by: Nicolas Pitre commit da92d4c8dcaf14175ee14521df8cdefc59fa95a5 Author: Joe Perches Date: Sun Nov 14 19:04:23 2010 -0800 [CPUFREQ] drivers/cpufreq: Remove unnecessary semicolons Signed-off-by: Joe Perches Signed-off-by: Dave Jones (cherry picked from commit 2feb690c20d52e22c7874a1e090245e6a4344ce6) commit b6c784d817ac77750b4729f2e78dac591b55ddd4 Author: Vishwanath BS Date: Tue Jan 25 20:12:41 2011 +0530 [CPUFREQ] Add documentation for sampling_down_factor Update cpufreq governor documentation for sampling_down_factor tunable parameter. Signed-off-by: Vishwanath BS Signed-off-by: Dave Jones (cherry picked from commit 5b95364f6101d67a073a5ec18d726e94e02ca605) commit 56fedf321f0ad06aeda0321c1acb8323f3ef5090 Author: Vincent Guittot Date: Mon Feb 7 17:14:25 2011 +0100 [CPUFREQ] calculate delay after dbs_check_cpu calculate ondemand delay after dbs_check_cpu call because it can modify rate_mult value use freq_lo_jiffies value for the sub sample period of powersave_bias mode Signed-off-by: Vincent Guittot Signed-off-by: Dave Jones (cherry picked from commit 5cb2c3bd0c5e0f3ced63f250ec2ad59d7c5c626a) commit ad5389d3409d1d995764597efb4dcc7e333dd58b Author: Thomas Renninger Date: Thu Mar 3 21:31:25 2011 +0100 [CPUFREQ] Remove deprecated sysfs file sampling_rate_max Marked deprecated for quite a while now... Signed-off-by: Thomas Renninger Signed-off-by: Dave Jones CC: cpufreq@vger.kernel.org (cherry picked from commit ef598549b28014ec2ea7574d4e793728e0e33d02) commit 0f7cfa0beaf98e8c8c1286fee1c2bfa70f91479f Author: Thomas Renninger Date: Thu Mar 3 21:31:26 2011 +0100 [CPUFREQ] Remove old, deprecated per cpu ondemand/conservative sysfs files Marked deprecated for quite a whilte now... Signed-off-by: Thomas Renninger Signed-off-by: Dave Jones CC: cpufreq@vger.kernel.org (cherry picked from commit e8951251b89440644a39f2512b4f265973926b41) commit 22c287f176bfe420328ebc791d07a88ce27ace84 Author: Thomas Renninger Date: Thu Mar 3 21:31:27 2011 +0100 [CPUFREQ] Remove unneeded locks There cannot be any concurrent access to these through different cpu sysfs files anymore, because these tunables are now all global (not per cpu). I still have some doubts whether some of these locks were needed at all. Anyway, let's get rid of them. Signed-off-by: Thomas Renninger Signed-off-by: Dave Jones CC: cpufreq@vger.kernel.org (cherry picked from commit 326c86deaed54ad1b364fcafe5073f563671eb58) commit 2e29df8ed731bd869a7c76ec1f950571ee2c2154 Author: Rafael J. Wysocki Date: Thu Mar 10 21:13:05 2011 +0100 [CPUFREQ] Remove the pm_message_t argument from driver suspend None of the existing cpufreq drivers uses the second argument of its .suspend() callback (which isn't useful anyway), so remove it. Signed-off-by: Rafael J. Wysocki Signed-off-by: Dave Jones (cherry-picked from 7ca64e2) commit 7aa1471f64882e97ce45189967e66a0757903243 Author: Arnd Bergmann Date: Thu Mar 24 14:15:44 2011 +0100 usbnet: use eth%d name for known ethernet devices The documentation for the USB ethernet devices suggests that only some devices are supposed to use usb0 as the network interface name instead of eth0. The logic used there, and documented in Kconfig for CDC is that eth0 will be used when the mac address is a globally assigned one, but usb0 is used for the locally managed range that is typically used on point-to-point links. Unfortunately, this has caused a lot of pain on the smsc95xx device that is used on the popular pandaboard without an EEPROM to store the MAC address, which causes the driver to call random_ether_address(). Obviously, there should be a proper MAC addressed assigned to the device, and discussions are ongoing about how to solve this, but this patch at least makes sure that the default interface naming gets a little saner and matches what the user can expect based on the documentation, including for new devices. The approach taken here is to flag whether a device might be a point-to-point link with the new FLAG_POINTTOPOINT setting in the usbnet driver_info. A driver can set both FLAG_PTP and FLAG_ETHER if it is not sure (e.g. cdc_ether), or just one of the two. The usbnet framework only looks at the MAC address for device naming if both flags are set, otherwise it trusts the flag. Signed-off-by: Arnd Bergmann Cc: Andy Green Cc: patches@linaro.org Tested-by: Andy Green Signed-off-by: Nicolas Pitre commit 1da46fc5bbdbaba801f66e8419d3195924e1a5f3 Author: Andy Green Date: Thu Mar 24 21:27:29 2011 +0000 OMAP2+: add cpu id register to MAC address helper Introduce a generic helper function that can set a MAC address using data from the OMAP unique CPU ID register. For comparison purposes this produces a MAC address of 2e:40:70:f0:12:06 for the ethernet device on my Panda. Signed-off-by: Andy Green Acked-by: Arnd Bergmann Signed-off-by: Nicolas Pitre commit 0603fc25db7d77ae7acd6066aa2e913398ed0e52 Author: Andy Green Date: Thu Mar 24 21:27:38 2011 +0000 OMAP2+: PANDA: Fix up random or missing MAC addresses for eth0 and wlan0 This patch registers a network device notifier callback to set the mac addresses for the onboard network assets of Panda correctly, despite the drivers involved have used a random or all-zeros MAC address. The technique was suggested by Alan Cox on lkml. It works by device path so it corrects the MAC addresses even if the drivers are in modules loaded in an order that changes their interface name from usual (eg, the onboard module might be "wlan1" if there is a USB wireless stick plugged in and its module is inserted first.) Cc: Alan Cox Signed-off-by: Andy Green Acked-by: Arnd Bergmann Signed-off-by: Nicolas Pitre commit f461b8a322b7eea954b9f3dee139ce5bb3a6a8d0 Author: Catalin Marinas Date: Wed Nov 17 13:58:57 2010 +0000 ARM: Set bit 22 in the PL310 (cache controller) AuxCtlr register Clearing bit 22 in the PL310 Auxiliary Control register (shared attribute override enable) has the side effect of transforming Normal Shared Non-cacheable reads into Cacheable no-allocate reads. Coherent DMA buffers in Linux always have a Cacheable alias via the kernel linear mapping and the processor can speculatively load cache lines into the PL310 controller. With bit 22 cleared, Non-cacheable reads would unexpectedly hit such cache lines leading to buffer corruption. This patch ensures that bit 22 is set in the l2x0_init() function if PL310 and not rely on the platform code to specify it. It also modifies the 'aux' variable only if the actual register is written so that the final printk displays the real hardware value. Signed-off-by: Catalin Marinas Signed-off-by: Nicolas Pitre commit c4bb07ec0084e26323047bcbe446d59ac352e07f Author: Anton Vorontsov Date: Mon Jun 7 21:36:30 2010 +0400 ARM: Add PI/robust mutexes support for SMP kernels To support PI or robust mutexes, the kernel needs to perform some operations atomically on userspace addresses, and yet ARM lacked the support for the SMP case. ARMv6 adds exclusive access variants of ldr and str instructions, which means that support for PI/robust mutexes should now be relatively straightforward. Note that with this patch, if we run ARMv6 or greater, we'll use atomic instructions no matter if it's SMP or UP kernel (just as we do in atomic.h). This has been tested on an ARM11 MPCore machine (ARMv6K), but I also plan to test it with some Cortex-A9 (ARMv7) soon. Signed-off-by: Anton Vorontsov [ np -- made it conditional on !CONFIG_CPU_USE_DOMAINS ] Signed-off-by: Nicolas Pitre commit e4f2724656b1066e5dfa28e9d7c754b3132b713c Author: Mark Brown Date: Thu Feb 24 17:39:09 2011 +0000 regulator: If we fail when setting up a supply say which supply Makes it a bit easier to identify if it's a problem with the supplies, the usual error would be omitting the supply name entirely. Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit 23c2f041efa891e6ec0706dc9ad4f776a9aa8c14) commit 300a08acf7ff729d12df585fa89e2211d70bc760 Author: Mark Brown Date: Tue Mar 1 16:50:43 2011 +0000 regulator: Convert WM831x regulators to genirq Signed-off-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit dfda9c27ba15330f37453c389d775ecf9e981d05) commit 2acc5d0798256bad5b372166edacbd54cee25d28 Author: Igor Grinberg Date: Tue Mar 1 11:54:44 2011 +0200 regulator: fix typo in Kconfig Fix typo: s/TPS695x0/TPS659x0/ Signed-off-by: Igor Grinberg Acked-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit fb7c18cac8608983168a7f4f55193cea190c83c8) commit a66d5fba29125a34e27dccb0b82fa3aa3e09928b Author: MyungJoo Ham Date: Fri Mar 11 10:13:59 2011 +0900 Regulator: add suspend-finish API for regulator core. The regulator core had suspend-prepare that turns off the regulators when entering a system-wide suspend. However, it did not have suspend-finish that pairs with suspend-prepare and the regulator core has assumed that the regulator devices and their drivers support autonomous recover at resume. This patch adds regulator_suspend_finish that pairs with the previously-existed regulator_suspend_prepare. The function regulator_suspend_finish turns on the regulators that have always_on set or positive use_count so that we can reset the regulator states appropriately at resume. In regulator_suspend_finish, if has_full_constraints, it disables unnecessary regulators. Signed-off-by: MyungJoo Ham Signed-off-by: Kyungmin Park Acked-by: Mark Brown -- Updates v3 comments corrected (Thanks to Igor) v2 disable unnecessary regulators (Thanks to Mark) Signed-off-by: Liam Girdwood (cherry picked from commit 7a32b589a9c856493bccb02db55047edc04eee7b) commit 86bb4c68dd67012ae8d74eca3517c32ff2e7ce95 Author: Linus Walleij Date: Fri Mar 11 16:26:18 2011 +0100 regulator: switch the ab3100 to use enable_time() Acked-by: Mark Brown This switches the ab3100 core to use the enable_time() infrastructure from the regulator core. Cc: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Liam Girdwood (cherry picked from commit 19c98825941cb10b59c9953665fc4495bc82c0ae) commit 0229fad377bc544250acb0ef7aa5f90b1b1cb119 Author: Bengt Jonsson Date: Thu Mar 10 14:43:31 2011 +0100 regulator: add support for USB voltage regulator Signed-off-by: Bengt Jonsson Signed-off-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit ea05ef31f2aa98b25d14222300dc9c1d1eb59e41) commit a1e314027cfeecb6d78ae9818b7f91a43812acbe Author: Bengt Jonsson Date: Fri Mar 11 11:54:46 2011 +0100 regulator: initialization for ab8500 regulators The regulators on the AB8500 have a lot of custom hardware control settings pertaining to 8 external signals, settings which are board-specific and need be provided from the platform at startup. Initialization added for regulators Vana, VextSupply1, VextSupply2, VextSupply3, Vaux1, Vaux2, Vaux3, VTVout, Vintcore12, Vaudio, Vdmic, Vamic1, Vamic2, VrefDDR. Signed-off-by: Bengt Jonsson Reviewed-by: Rickard Andersson Reviewed-by: Jonas Aberg Signed-off-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit 79568b941277b5986a8a7f0fb8578b2ccfc3e87e) commit 0e45893ee8116e8e8133cd40dd25b314ccb92fa5 Author: Linus Walleij Date: Thu Mar 17 13:24:36 2011 +0100 regulator: add set_voltage_time_sel infrastructure This makes it possible to set the stabilization time for voltage regulators in the same manner as enable_time(). The interface only supports regulators that implements fixed selectors. Cc: Bengt Jonsson Signed-off-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit 77af1b2641faf45788a0d480db94082ebee931dc) commit 23101e2daf31eb30a5e717795f17a701e14d4d24 Author: Linus Walleij Date: Thu Mar 17 13:24:52 2011 +0100 regulator: provide consumer interface for fall/rise time This exposes the functionality for rise/fall fime when setting voltage to the consumers. Cc: Bengt Jonsson Signed-off-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit 88cd222b259d62148ab8c82398498b1a01314476) commit 49f1812a88ebd3cd1507f6385d0ac6a0d8564f90 Author: Linus Walleij Date: Thu Mar 17 13:25:02 2011 +0100 regulator: add ab8500 enable and raise time delays This uses the new infrastructure to provide proper delays when enabling or setting the voltage of one specific regulator. Cc: Bengt Jonsson Signed-off-by: Linus Walleij Acked-by: Mark Brown Signed-off-by: Liam Girdwood (cherry picked from commit 42ab616afe8844261828395cc2e4708c867412c2) commit d4788f88a775b726572179783682497260b8c53a Author: Banajit Goswami Date: Fri Mar 18 17:15:22 2011 +0530 ARM: S5P64X0: Fix iodesc array size for S5P6450 The array size parameter of iotable_init for S5P6450 is incorrect. Fix this by passing the correct length of s5p6450_iodesc table. Signed-off-by: Banajit Goswami Signed-off-by: Kukjin Kim (cherry picked from commit 3814554d11b3f677117ab048f147d207fd66f856) commit 7d0cb602f249ec586111633d2feaf9ef47423ab6 Author: Vladimir Zapolskiy Date: Wed Mar 23 15:08:17 2011 +0900 ARM: S5PV210: Fix security engine interrupt names This change is intended to correct security subsystem interrupt names for Samsung S5PV210 and S5PC110 SoCs. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Kukjin Kim (cherry picked from commit 912003e8f1b23af65dd32f91c7e699c1f496b067) commit e1a4c1d53d010d188fefb459114cb472352aafe4 Author: Huang Weiyi Date: Wed Mar 23 15:29:32 2011 +0900 ARM: S5PV210: Remove duplicated inclusion Remove duplicated #include('s) in arch/arm/mach-s5pv210/mach-smdkv210.c Signed-off-by: Huang Weiyi Signed-off-by: Kukjin Kim (cherry picked from commit 768fe2c31fc48e63ff623393986eeb1ce27cc287) commit 10d2d25da29aa6d876d948cf317709998d0e095b Author: Kukjin Kim Date: Fri Mar 25 10:46:16 2011 +0900 ARM: EXYNOS4: Fix build warning on regarding SATA_AHCI_PLATFORM This patch fixes following build warnings. warning: (MACH_ARMLEX4210) selects SATA_AHCI_PLATFORM which has unmet direct dependencies (ATA) And adds EXYNOX4_DEV_AHCI for building machines which are not suppoort for AHCI feature on board. Signed-off-by: Kukjin Kim (cherry picked from commit 94fc1d80d6df31e036f6dcc18e05b3ddb8dd790e) commit 13288fd32100318c7d9223902ad46b6ebadc2f3a Author: Jeongtae Park Date: Fri Mar 25 15:48:15 2011 +0900 ARM: EXYNOS4: Fix smsc9215 irq polarity on SMDKV310 This patch fixes smsc9215 irq ploarity configuration of SMDKV310. We can change type of EINT(5) as HIGH, but it's better to change IRQ output of smsc9215 as an active low because smsc's IRQ line has been pull-up. Signed-off-by: Jeongtae Park Signed-off-by: Kukjin Kim (cherry picked from commit cd0527c25bfb1f30f6994744fb600c4a32ab5a4f) commit 16185b20dd761ce4c4e92e1543582dd37653a917 Author: Jeongtae Park Date: Fri Mar 25 15:48:15 2011 +0900 ARM: EXYNOS4: Fix smsc9215 irq polarity on SMDKC210 This patch fixes smsc9215 irq ploarity configuration of SMDKC210. We can change type of EINT(5) as HIGH, but it's better to change IRQ output of smsc9215 as an active low because smsc's IRQ line has been pull-up. Signed-off-by: Jeongtae Park Signed-off-by: Kukjin Kim (cherry picked from commit 1af3c67212d1694977b6da47b4451a9b019e7606) commit 38c0e89c1f8a8baedda30b6b28313ab7607e40ae Author: Kukjin Kim Date: Wed Mar 23 14:45:29 2011 +0900 ARM: SAMSUNG: Fix CPU idmask This patch fixes CPU idmask of S5P64X0 and EXYNOS4210 and its comparison method because just want to use CPU id for it. Cc: Ben Dooks Signed-off-by: Kukjin Kim (cherry picked from commit 9d5fda6656fae8004deb81e91bbd144c8743e500) commit 4f81aebfc66d9c0b2a6240ac0cbac73a422443ea Author: Kukjin Kim Date: Fri Mar 25 20:09:26 2011 +0900 ARM: Suspend: Fix dependency of ARCH_SUSPEND_POSSIBLE The current mainline codes of ARCH_S5P64X0 and ARCH_S5P6442 can not support suspend to ram. So needs this for preventing build error on them. Cc: Russell King Cc: Rafael J. Wysocki Cc: Len Brown Signed-off-by: Kukjin Kim (cherry picked from commit 3e1d9874b44212628b65ec4455d32cb4880b553f) commit 8d292c8b548713fab1793bfd8b32bc7b4f7c7b08 Author: Bibek Basu Date: Wed Feb 9 11:02:35 2011 +0530 gpio: driver for 42 AB8500 GPIO pins To get rid of port expanders, the free GPIOs of ab8500 can be used. There are 42 GPIO pins. Out of which 16 are interrupt capable.This patch implements 16 virtual IRQ mapped to 16 interrupt capable AB8500 GPIOs. Signed-off-by: Bibek Basu Acked-by: Grant Likely [Renamed header file as per MFD structure] Signed-off-by: Linus Walleij (cherry picked from commit 0cb3fcd72cc3e6dd88f0e769746d294e5e6bafa9) commit ba9ed06ef6f67f912852acac1f1c5a1d5ee07f86 Author: Bibek Basu Date: Tue Feb 15 12:56:16 2011 +0530 mach-ux500: board support for AB8500 GPIO driver This is the board support patch for ab8500 gpio driver on mach-ux500.Patch implements 16 virtual IRQ mapped to 16 interrupt capable AB8500 GPIOs. Signed-off-by: Bibek Basu [Modify for header file placement] Signed-off-by: Linus Walleij (cherry picked from commit 3ef374a22bdf91fb3b4213200aadd054f81c3499) commit e4985eef4684648d02eeb948f1e7a461d873f29a Author: Bengt Jonsson Date: Wed Mar 9 13:34:17 2011 +0100 mach-ux500: provide ab8500 init vector This adds an ab8500 regulator initialization vector for the HREF/MOP500 series of boards. This also sets the display regulator to be on at boot so we don't loose our splash screen when the board comes up. Signed-off-by: Bengt Jonsson Signed-off-by: Linus Walleij (cherry picked from commit dfa3a824de631e6833ffa9a7befc08186b027799) commit 7af5b290014d9f85e89cca8bc1b9581f7ada0fea Author: Linus Walleij Date: Mon Mar 7 11:48:15 2011 +0100 mach-ux500: configure board for the TPS61052 regulator v2 This registers the TPS61052 regulator to the ux500 MOP/HREF boards. Cc: Samuel Ortiz Cc: Liam Girdwood Cc: Mark Brown Cc: Ola Lilja Signed-off-by: Linus Walleij (cherry picked from commit fe67dfc874da094bbbfbb73e74924d414b96105b) commit 43b5ca26e63464709fcc866d8fa33c853b3d7c18 Author: Viktor Rosendahl Date: Sat Mar 26 18:11:01 2011 +0100 ARM: 6836/1: kprobes/fix emulation of LDR/STR instruction when Rn == PC The Rn value from the emulation is unconditionally written back; this is fine as long as Rn != PC because in that case, even if the instruction isn't a write back instruction, it will only result in the same value being written back. In case Rn == PC, then the emulated instruction doesn't have the actual PC value in Rn but an adjusted value; when this is written back, it will result in the PC being incorrectly updated. An altenative solution would be to check bits 24 and 22 to see whether the instruction actually is a write back instruction or not. I think it's enough to check whether Rn != PC, because: - it's looks cheaper than the alternative - to my understaning it's not permitted to update the PC with a write back instruction, so we don't lose any ability to emulate legal instructions. - in case of writing back for non write back instructions where Rn != PC, it doesn't matter because the values are the same. Regarding the second point above, it would possibly be prudent to add some checking to prep_emulate_ldr_str(), so that instructions with both write back and Rn == PC would be rejected. Signed-off-by: Viktor Rosendahl Signed-off-by: Russell King (cherry picked from commit 0652f067360fc3be2c3e668085f5fb2b76402928) commit 900372202bbf283a297b6cfdf14ba35626ca6a99 Author: Colin Cross Date: Sun Mar 27 00:45:25 2011 +0100 ARM: 6837/1: remove unused pci_fixup_prpmc1100 The PrPMC1100 machine was removed in 2.6.11, but left a reference to machine_is_prpmc1100 in arch/arm/kernel/bios32.c. 6f82f4db80189281a8ac42f2e72396accb719b57 removed the machine type, which causes a build failure: CC arch/arm/kernel/bios32.o arch/arm/kernel/bios32.c: In function 'pci_fixup_prpmc1100': arch/arm/kernel/bios32.c:174: error: implicit declaration of function 'machine_is_prpmc1100' Remove the unused pci_fixup_prpcm1100. Signed-off-by: Colin Cross Signed-off-by: Russell King (cherry picked from commit 7f479c64a52094354c10309fcacaa71de015dc9e) commit 4b816d2650717c2e2e0e1a3d377dbb908c22bae1 Author: Ming Lei Date: Mon Mar 28 06:10:25 2011 +0100 ARM: 6838/1: etm: fix section mismatch warning The patch fixes the warning below: WARNING: arch/arm/kernel/built-in.o(.data+0x27c): Section mismatch in reference from the variable etb_driver to the function .init.text:etb_probe() The variable etb_driver references the function __init etb_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: arch/arm/kernel/built-in.o(.data+0x2cc): Section mismatch in reference from the variable etm_driver to the function .init.text:etm_probe() The variable etm_driver references the function __init etm_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Ming Lei Signed-off-by: Russell King (cherry picked from commit 8e8806990cfd91a4ec25df6f00528008c4b0087a) commit f302d2ec52bfb0d9ae2bb7fbff957f3f6ea71f45 Author: Stephen Boyd Date: Wed Mar 23 22:46:15 2011 +0100 ARM: 6826/1: Merge v6 and v7 DEBUG_LL DCC support The inline assembly differences for v6 vs. v7 are purely optimizations. On a v7 processor, an mrc with the pc sets the condition codes to the 28-31 bits of the register being read. It just so happens that the TX/RX full bits the DCC support code is testing for are high enough in the register to be put into the condition codes. On a v6 processor, this "feature" isn't implemented and thus we have to do the usual read, mask, test operations to check for TX/RX full. Thus, we can drop the v7 implementation and just use the v6 implementation for both. Cc: Tony Lindgren Signed-off-by: Stephen Boyd Signed-off-by: Russell King (cherry picked from commit dfad549d98b60160547d1b8299051b9456c8da85) commit 39bcea7549c1e3d275262d8062dc2b33e0a99ce8 Author: Nicolas Pitre Date: Mon Mar 28 16:30:44 2011 -0400 Linaro kernel time warp patch Due to increasing difficulties with the merging of upstream changes that conflict with earlier patches that were merged during the -rc5 era, I decided to rebuild the linaro-2.6.38 tree from scratch in order to use latest upstream commits as found in mainline to reduce the divergence and conflicts. http://lists.linaro.org/pipermail/linaro-kernel/2011-March/000138.html This rebuild was done in a parallel branch. This commit's purpose is to bring this branch in sync with the new branch and allow the history from that new branch to be tied to this branch without forcing rebase operations to downstream consumers of this tree. commit a732c122dd0d68c41372c28b765405474cf40550 Author: Grant Likely Date: Mon Mar 28 21:20:29 2011 -0600 driver-core: remove conditionals around devicetree pointers Having conditional around the of_match_table and the of_node pointers turns out to make driver code use ugly #ifdef blocks. Drop the conditionals and remove the #ifdef blocks from the affected drivers. Also tidy up minor whitespace issues within the same hunks. Signed-off-by: Grant Likely Acked-by: Greg Kroah-Hartman commit 041f8f6586a8e5171fe2d5a3ca6595fa939b34da Author: Grant Likely Date: Mon Mar 28 21:20:32 2011 -0600 dt: Refactor of_platform_bus_probe() The current implementation uses three copies of of basically identical code. This patch consolidates them to make the code simpler. Signed-off-by: Grant Likely commit 1a16467e29a975f4dda1ccd3c6d12f9bea150743 Author: Grant Likely Date: Mon Mar 28 21:20:40 2011 -0600 dt: protect against NULL matches passed to of_match_node() There are a few use cases where it is convenient to pass NULL to of_match_node() and have it fail gracefully. The patch adds a null check to the beginning so taht it does so. Signed-off-by: Grant Likely commit e0ceac7b1e4b89519b8bfd711b128560a5b2deea Author: Grant Likely Date: Mon Mar 28 21:20:43 2011 -0600 dt: eliminate OF_NO_DEEP_PROBE and test for NULL match table There are no users of OF_NO_DEEP_PROBE, and of_match_node() now gracefully handles being passed a NULL pointer, so the checks at the top of of_platform_bus_probe can be dropped. While at it, consolidate the root node pointer check to be easier to read and tidy up related comments. Signed-off-by: Grant Likely commit 3a1a90a4cf4f0870bb6ee8065092e2c0ea7d72aa Author: Grant Likely Date: Mon Mar 28 21:20:47 2011 -0600 dt: add of_platform_populate() for creating device from the device tree of_platform_populate() is similar to of_platform_bus_probe() except that it strictly enforces that all device nodes must have a compatible property, and it can be used to register devices (not buses) which are children of the root node. This patch also modifies MPC5200 support to use the new function. Signed-off-by: Grant Likely commit c3cf74a53764b234937837e8be0a10cdb6d5ca40 Author: Grant Likely Date: Mon Mar 28 21:20:53 2011 -0600 dt: add of_platform_prepare() to match nodes with static platform_devices This patch implements an alternate method for using device tree data for populating machine device registration. Traditionally, board support has directly generated and registered devices based on nodes in the device tree. The board support code starts at the root of the tree and begins allocating devices for each device node it finds. Similarly, bus drivers (i2c, spi, etc.) use their child nodes to register child devices. This model can be seen in almost all the powerpc board ports (arch/powerpc/platforms/*). However, for many of the ARM SoCs, there already exists complete board support for many SoCs that have their own code for registering the basic set of platform devices with non-trivial dependencies on clock structure and machine specific platform code. While starting at the base of the tree and working up is certainly possible, it requires modifying a lot of machine support code to get it working. This patch adds the function of_platform_prepare() to declare which nodes will be used to create platform_devices without actually creating them yet. Then it uses a bus notifier to inspect platform_device registrations. If any match a node declared with of_platform_prepare(), it will set the of_node pointer before the device gets bound to a driver, making the device tree data available at probe time. After all the static devices are registered, the platform code can still call either of_platform_populate or of_platform_bus_probe() on the same nodes that were declared with of_platform_prepare(). Any nodes that *were not* matched to a static platform_device will get created in the normal way. Note: Board ports using this facility are still required to provide a fully populated device tree blob. It is not a shortcut to providing an accurate device tree model of the machine to the point that it would be reasonably possible to switch to a direct registration model for all devices without change the device tree. ie. The SoC still needs to be correctly identified and there should be nodes for all the discrete devices. v2: Complete revamp to make of_platform_populate() and of_platform_bus_probe() respect the prepared nodes. Signed-off-by: Grant Likely commit faa3fa0d48b41eb8713654a8e856cac33d2ec11c Author: Grant Likely Date: Mon Mar 28 21:20:57 2011 -0600 tty/serial: Relax the device_type restriction from of_serial There is no need to test for a device_type property in ns8250 compatible serial ports. device_type is an OpenFirmware property that is not required when using the flattened tree representation. Signed-off-by: Grant Likely commit fb8a46ce9f22f6e47dc25a8fb9f4dad1512330e1 Author: Grant Likely Date: Mon Mar 28 21:35:22 2011 -0600 arm/dt: Make __vet_atags also accept a dtb image The dtb is passed to the kernel via register r2, which is the same method that is used to pass an atags pointer. This patch modifies __vet_atags to not clear r2 when it encounters a dtb image. v2: fixed bugs pointed out by Nicolas Pitre Signed-off-by: Grant Likely commit b9db18bbb8b091b9828a175a66be098d075f0fde Author: Jeremy Kerr Date: Mon Mar 28 21:40:05 2011 -0600 arm/dt: Allow CONFIG_OF on ARM Add some basic empty infrastructure for DT support on ARM. v5: - Fix off-by-one error in size calculation of initrd v3: - moved cmd_line export and initrd setup to this patch to make the series bisectable. - switched to alloc_bootmem_align() for allocation when unflattening the device tree. memblock_alloc() was not the right interface. Signed-off-by: Jeremy Kerr Signed-off-by: Grant Likely commit d8b582eb11acc9e5c34f46a4e6791604fa1fbc75 Author: Grant Likely Date: Mon Mar 28 21:41:14 2011 -0600 arm/dt: consolidate atags setup into setup_machine_atags In preparation for adding device tree support, this patch consolidates all of the atag-specific setup into a single function. v5: - drop double printk("Machine; %s\n", ...); call. v4: - adapt to the removal of lookup_machine_type() - break out dump of machine_desc table into dump_machine_table() because the device tree probe code will use it. - Add for_each_machine_desc() macro Signed-off-by: Grant Likely commit 391546f97a8a64b75ec69fca171e9f3fcd6662ba Author: Grant Likely Date: Mon Mar 28 21:45:13 2011 -0600 arm/dt: probe for platforms via the device tree If a dtb is passed to the kernel then the kernel needs to iterate through compiled-in mdescs looking for one that matches and move the dtb data to a safe location before it gets accidentally overwritten by the kernel. This patch creates a new function, setup_machine_fdt() which is analogous to the setup_machine_atags() created in the previous patch. It does all the early setup needed to use a device tree machine description. v5: - Print warning with neither dtb nor atags are passed to the kernel - Fix bug in setting of __machine_arch_type to the selected machine, not just the last machine in the list. Reported-by: Tixy v4: - Dump some output when a matching machine_desc cannot be found v3: - Added processing of reserved list. - Backed out the v2 change that copied instead of reserved the dtb. dtb is reserved again and the real problem was fixed by using alloc_bootmem_align() for early allocation of RAM for unflattening the tree. - Moved cmd_line and initrd changes to earlier patch to make series bisectable. v2: Changed to save the dtb by copying into an allocated buffer. - Since the dtb will very likely be passed in the first 16k of ram where the interrupt vectors live, memblock_reserve() is insufficient to protect the dtb data. [based on work originally written by Jeremy Kerr ] Signed-off-by: Grant Likely commit 23e06de25a59136a2b26d564a9ec4a53240effb5 Author: Rob Herring Date: Mon Mar 28 21:45:17 2011 -0600 arm/dt: Add dtb make rule Add a make rule to compile dt blobs for ARM. Signed-off-by: Rob Herring Acked-by: Shawn Guo Tested-by: Jason Liu Signed-off-by: Grant Likely commit 926bb2d679d632479807ad9e00355109654d544c Author: Grant Likely Date: Mon Mar 28 21:45:20 2011 -0600 arm/dt: Basic versatile devicetree support This patch adds adds very basic support for booting versatile with a device tree. It simply allows the existing machine_descs to match against the versatile ab & pb compatible values so that the kernel can boot. Kernel parameters and the initrd pointer is read out of the tree instead of atags. This is not complete device tree support. This change will be reverted when a new machine_desc is added that can populate the versatile device registrations directly from data in the tree instead of using hard coded data. That change will be made in a future patch. v5: - Add skeleton device tree for versatile AB and PB. Bare minimum needed for booting. Signed-off-by: Grant Likely commit 675d7bacd9419dcdef48e8349abbb423828c491c Author: Grant Likely Date: Mon Mar 28 21:45:24 2011 -0600 arm/dt: Basic tegra devicetree support This patch adds adds very basic support for booting tegra with a device tree. It simply allows the existing machine_descs to match against the tegra compatible values so that the kernel can boot. Kernel parameters and the initrd pointer is read out of the tree instead of atags. This is not complete device tree support. This change will be reverted when a new machine_desc is added that can populate the device registrations directly from data in the tree instead of using hard coded data. That change will be made in a future patch. v2: Fixed cut-and-paste error in commit text Signed-off-by: Grant Likely commit 54a3318612a86f3a79cdfc37e8ab921ca39f6d85 Author: Grant Likely Date: Mon Mar 28 21:46:34 2011 -0600 arm/dt: Add Pandaboard devicetree support Enable basic device tree support on Pandaboard Signed-off-by: Grant Likely commit 79af0e1433c7f02ea298fba67d5ffb6ac5b079d2 Author: Grant Likely Date: Mon Mar 28 21:46:37 2011 -0600 dt: add documentation of ARM dt boot interface v5: clarified that dtb should be aligned on a 64 bit boundary in RAM. v3: added details to Documentation/arm/Booting Signed-off-by: Grant Likely commit 0587fd46e135354712be3ad08cd0a2e5e0589da9 Author: Grant Likely Date: Mon Mar 28 21:46:40 2011 -0600 arm/dt: Add dt machine definition This patch adds a DT_MACHINE_START macro to use instead of MACHINE_START when creating a machine_desc that supports using the device tree. Signed-off-by: Grant Likely commit afd489e15a1fc57d25674b3d0ab8a6cfc69c3ed0 Author: Thomas Abraham Date: Mon Mar 28 22:07:32 2011 -0600 dt/arm: Add basic device tree support for smdkv310 board Enable basic device tree support for Exynos4 smdkv310 board. Signed-off-by: Thomas Abraham Signed-off-by: Grant Likely commit 9d51c816166a8c7773143e4a161f54cbb9899019 Author: Jon Medhurst Date: Mon Mar 28 17:11:03 2011 +0100 arm/dt: Add basic device tree support for Beagleboad Signed-off-by: Jon Medhurst Signed-off-by: Grant Likely commit 58b6cf28da2fb962aca89bf82b196fa398521f40 Author: Nicolas Pitre Date: Tue Mar 29 16:47:36 2011 -0400 fix missing merge resolution A merge conflict resolution was hidden in mainline commit 2f284c8463. Let's pick it up to fix build breakage for exynos4_defconfig. Signed-off-by: Nicolas Pitre commit 3e42b0fd76be95391adf49fe68b80641881de57e Author: Ulrich Weigand Date: Tue Mar 22 16:01:25 2011 +0100 arm: handle ptrace requests to change PC during interrupted system calls GDB's interrupt.exp test cases currenly fail on ARM. The problem is how do_signal handled restarting interrupted system calls: The entry.S assembler code determines that we come from a system call; and that information is passed as "syscall" parameter to do_signal. That routine then calls get_signal_to_deliver [*] and if a signal is to be delivered, calls into handle_signal. If a system call is to be restarted either after the signal handler returns, or if no handler is to be called in the first place, the PC is updated after the get_signal_to_deliver call, either in handle_signal (if we have a handler) or at the end of do_signal (otherwise). Now the problem is that during [*], the call to get_signal_to_deliver, a ptrace intercept may happen. During this intercept, the debugger may change registers, including the PC. This is done by GDB if it wants to execute an "inferior call", i.e. the execution of some code in the debugged program triggered by GDB. To this purpose, GDB will save all registers, allocate a stack frame, set up PC and arguments as appropriate for the call, and point the link register to a dummy breakpoint instruction. Once the process is restarted, it will execute the call and then trap back to the debugger, at which point GDB will restore all registers and continue original execution. This generally works fine. However, now consider what happens when GDB attempts to do exactly that while the process was interrupted during execution of a to-be- restarted system call: do_signal is called with the syscall flag set; it calls get_signal_to_deliver, at which point the debugger takes over and changes the PC to point to a completely different place. Now get_signal_to_deliver returns without a signal to deliver; but now do_signal decides it should be restarting a system call, and decrements the PC by 2 or 4 -- so it now points to 2 or 4 bytes before the function GDB wants to call -- which leads to a subsequent crash. To fix this problem, two things need to be supported: - do_signal must be able to recognize that get_signal_to_deliver changed the PC to a different location, and skip the restart-syscall sequence - once the debugger has restored all registers at the end of the inferior call sequence, do_signal must recognize that *now* it needs to restart the pending system call, even though it was now entered from a breakpoint instead of an actual svc instruction This set of issues is solved on other platforms, usually by one of two mechanisms: - The status information "do_signal is handling a system call that may need restarting" is itself carried in some register that can be accessed via ptrace. This is e.g. on Intel the "orig_eax" register; on Sparc the kernel defines a magic extra bit in the flags register for this purpose. This allows GDB to manage that state: reset it when doing an inferior call, and restore it after the call is finished. - On s390, do_signal transparently handles this problem without requiring GDB interaction, by performing system call restarting in the following way: first, adjust the PC as necessary for restarting the call. Then, call get_signal_to_deliver; and finally just continue execution at the PC. This way, if GDB does not change the PC, everything is as before. If GDB *does* change the PC, execution will simply continue there -- and once GDB restores the PC it saved at that point, it will automatically point to the *restarted* system call. (There is the minor twist how to handle system calls that do *not* need restarting -- do_signal will undo the PC change in this case, after get_signal_to_deliver has returned, and only if ptrace did not change the PC during that call.) Because there does not appear to be any obvious register to carry the syscall-restart information on ARM, we'd either have to introduce a new artificial ptrace register just for that purpose, or else handle the issue transparently like on s390. The patch below implements the second option; using this patch makes the interrupt.exp test cases pass on ARM, with no regression in the GDB test suite otherwise. Signed-off-by: Ulrich Weigand Signed-off-by: Arnd Bergmann Cc: patches@linaro.org Signed-off-by: Nicolas Pitre commit 3aad04105485a8eae642fed9e9f06fa7096b6115 Author: John Rigby Date: Tue Mar 29 22:00:50 2011 -0600 USB: fix merge error in isp1760-hcd.c 0e9882b4fb8703f13921279fe4a6592574f92c62 from Merge commit 'v2.6.38.1' into linaro-2.6.38 Signed-off-by: John Rigby Signed-off-by: Nicolas Pitre commit 0c8021e66ca6e22b682c3f13767c9eaccca1855a Author: Andres Salomon Date: Fri Mar 4 08:06:53 2011 -0800 ARM: mx51_efika: update platform data for new mfd changes Note that this relies on stuff currently in mfd's next tree, but this is also a newer driver. I'm not sure which tree it should go through, as it's a problem that shows up in next. From: Andres Salomon MFD changes in c738892f cause the mc13xxx_platform_data struct to change. This changes one more (new) user of it, fixing a build error. Signed-off-by: Andres Salomon Signed-off-by: Sascha Hauer (cherry picked from commit 251290a6078cb88382344b3ee535ae8c6254c1b5) commit 60bd570837f6a7690ba0b35d220f7a3a428cb4e1 Author: Linus Walleij Date: Wed Mar 30 14:33:13 2011 +0200 mach-ux500: fix i2c0 device setup regression Adding two sets of I2C devices to the same bus doesn't quite work, atleast not anymore. Stash one array and determine how much of it shall be added instead. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Pitre commit 540709973cc4dc725f2d4e3f74773b064c4fd9d9 Author: Viktor Rosendahl Date: Fri Mar 25 19:01:59 2011 +0200 kprobes/arm: fix emulation of LDR/STR instruction when Rn == PC The Rn value from the emulation is unconditionally written back; this is fine as long as Rn != PC because in that case, even if the instruction isn't a write back instruction, it will only result in the same value being written back. In case Rn == PC, then the emulated instruction doesn't have the actual PC value in Rn but an adjusted value; when this is written back, it will result in the PC being incorrectly updated. An altenative solution would be to check bits 24 and 22 to see whether the instruction actually is a write back instruction or not. I think it's enough to check whether Rn != PC, because: - it's looks cheaper than the alternative - to my understaning it's not permitted to update the PC with a write back instruction, so we don't lose any ability to emulate legal instructions. - in case of writing back for non write back instructions where Rn != PC, it doesn't matter because the values are the same. Regarding the second point above, it would possibly be prudent to add some checking to prep_emulate_ldr_str(), so that instructions with write back and Rn == PC would be rejected. Signed-off-by: Viktor Rosendahl Signed-off-by: Nicolas Pitre commit 7b428f01af482a0fc8e97b4e68f59f7fa36c99d4 Author: Viktor Rosendahl Date: Mon Mar 28 18:56:05 2011 +0300 kprobes/arm: Fix ldrd/strd emulation Currently emulate_ldrd and emulate_strd don't even have the adjustment of the PC value, so in case of Rn == PC, it will not update the PC incorrectly but instead load/store from the wrong address. Let's add both the adjustment of the PC value and the check for PC == PC. Signed-off-by: Viktor Rosendahl Signed-off-by: Nicolas Pitre commit 8061f3a885ec3538bf405ff3957c205b1ab2aae4 Author: Linus Walleij Date: Wed Mar 30 16:02:34 2011 +0200 mach-ux500: correct MMC/SDI parameters We cannot clock the MMCI blocks more than 50 MHz. A bug prevented us from seeing the effect of actually driving them to 100 MHz, which indeed resulted failure, on the external SD card. Signed-off-by: Linus Walleij Signed-off-by: Nicolas Pitre commit f6950887f5a6ea73b9037cdd8346deb7fdfe6ae2 Author: Avik Sil Date: Thu Mar 31 17:12:38 2011 +0530 lttng: fix cpu_hz initialization issue for omap4 commit 7c2f3276a5912e3aad2038f4ebaf971ff7c12dbe Author: Avik Sil Date: Thu Mar 31 17:14:30 2011 +0530 lttng: ARM trace clock fix release_pmu Check if reserved_pmu is valid before passing it to release_pmu() commit b500fc733a96f79b4c516b9f3fa1bc7fda630fd0 Author: Avik Sil Date: Fri Apr 1 15:53:18 2011 +0530 Merge remote branch 'lttng/2.6.38.2-lttng-0.248' commit a0bf86b27cf2918a1d0fc4909943eceb85b44f56 Author: Thomas Abraham Date: Tue Mar 29 17:36:26 2011 +0530 arm/dt: Update basic device tree support for smdkv310 board Add documentation, make dt_match table __initdata, and include the skeleton.dtsi file in the device tree. Signed-off-by: Grant Likely commit e3f565796ca50d1f8ba3d00cc44d01de325c89ee Author: Andy Doan Date: Tue Mar 29 18:24:40 2011 -0700 arm/dt: Add basic device tree support for overo Enable basic device tree support for Gumstix Overo. tested with Overo Tide COM and Tobi expansion board Signed-off-by: Andy Doan Signed-off-by: Grant Likely commit f90b5bc964fb1965a75ba3b8a70a5418b4d58059 Author: Jason Liu Date: Fri Apr 1 15:54:52 2011 -0600 arm/dt: Add basic device tree support for mx51 and mx53 boards This patch add support for the Genesi Efika MX Smarttop and Smartbook, the Freescale mx51 babbage board, and the Freescale mx53 loco board Signed-off-by: Jason Liu Signed-off-by: Grant Likely commit a925c5b8a2caa97d5e417ae9e70ea4cca8b25457 Author: Vishwanath BS Date: Wed Mar 30 11:44:32 2011 +0530 OMAP2PLUS PM: move voltage layer header files to plat-omap DVFS layer will use Voltage layer APIs. So move voltage layer header files to plat-omap. Signed-off-by: Vishwanath BS commit 6a9ebb3cff916f10244e8a0e4a8fe720551947d7 Author: Vishwanath BS Date: Wed Mar 30 11:56:44 2011 +0530 OMAP: Introduce accessory APIs for DVFS This patch introduces accessory APIs for DVFS. Data structures added: 1. omap_dev_user_list: This structure maintains list of frequency requests per device basis. When a device needs to be scaled to a particular frequency, This list is searched to find the maximum request for a given device. If noone has placed any request, device frequency is obtained from device opp table. 2. omap_vdd_dev_list: This strcucture stores device list per vdd basis. Whenever a device is registered with a vdd, it is added to this list. 3. omap_vdd_user_list: User list of devices associated with each voltage domain instance. The user list is implemented using plist structure with priority node populated with the voltage values. 4. omap_vdd_dvfs_info: This structure is used to abstract DVFS related information per VDD basis. It holds pointer to corresponding vdd's voltagedomain instance and pointer to user list. Following APIs have been added to operate on above data structures: 1. omap_dvfs_add_vdd_user - API to add a user into omap_vdd_user_list 2. omap_vdd_user_list - API to remove a user from omap_vdd_user_list 3. omap_dvfs_register_device - API to register a device with vdd 4. omap_dvfs_add_freq_request - API to add a frequency request into omap_dev_user_list 5. omap_dvfs_remove_freq_request - API to remove a frequency request from omap_dev_user_list 6. omap_dvfs_find_voltage - API to find the opp corresponding to given voltage DVFS layer is initialized and basic data structures are allocated and initialized as part of this. This patch is based on Thara's previous DVFS implementation, but with major rework. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit 9dbdbc4c113fd8354c6314f63aa4798beef01628 Author: Thara Gopinath Date: Mon Dec 27 17:04:42 2010 +0530 OMAP: Introduce device specific set rate and get rate in omap_device structure This patch extends the omap_device structure to contain pointers to scale the operating rate of the device and to retrieve the operating rate of the device. This patch also adds the three new APIs in the omap device layer namely omap_device_set_rate that can be called to set a new operating rate for a device, omap_device_get_rate that can be called to retrieve the operating frequency for a device and omap_device_register_dvfs_callbacks to register the device specific set_rate and get_rate functions. The omap_device_set_rate and omap_device_get_rate does some routine error checks and finally calls into the device specific set_rate and get_rate APIs populated through omap_device_populate_rate_fns. Signed-off-by: Thara Gopinath Signed-off-by: Vishwanath BS commit c9b60d24805b7b1b0a49551bb0646b866852c47a Author: Vishwanath BS Date: Wed Mar 30 11:58:53 2011 +0530 OMAP: Implement Basic DVFS This patch introduces an API to perform DVFS for a given voltage domain. It takes omap_vdd_dvfs_info pointer as input parameter, computes the highest requested voltage for that vdd and scales all the devices in that vdd to the requested frequency along with voltage scaling. Based on original patch from Thara. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit dab3ad92582725092a8e530f94d7019e7dd5ae36 Author: Vishwanath BS Date: Wed Mar 30 12:07:55 2011 +0530 OMAP: Introduce dependent voltage domain support There could be dependencies between various voltage domains for maintaining system performance or hardware limitation reasons like VDD should be at voltage v1 when VDD is at voltage v2. This patch introduce dependent vdd information structures in the voltage layer which can be used to populate these dependencies for a voltage domain. This patch also adds support to scale the dependent vdd and the scalable devices belonging to it during the scaling of a main vdd through omap_voltage_scale. As part of this, some of the voltage layer structure definitions are moved from voltage.c to voltage.h as it needs to be used in the dvfs layer for dependency voltage handling. Based on original patch from Thara. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit c4c60ba7d625a2a2a855c5a4b41e49b7691d7fb8 Author: Vishwanath BS Date: Wed Mar 30 12:31:53 2011 +0530 OMAP: Introduce device scale implementation This patch adds omap_device_scale API which can be used to generic device rate scaling. Based on original patch from Thara. Signed-off-by: Vishwanath BS Cc: Thara Gopinath commit cec79c90b83c8a2e52d36f7d6a2e19541bb076a8 Author: Thara Gopinath Date: Fri Jan 21 15:32:30 2011 +0530 OMAP: Disable Smartreflex across DVFS This patch disables smartreflex for a particular voltage domain when the the voltage domain and the devices belonging to it is being scaled and re-enables it back once the scaling is done. Signed-off-by: Thara Gopinath Signed-off-by: Vishwanath BS commit 14db9801db2c522c3a39ad4a6e528fe0707153ca Author: Thara Gopinath Date: Mon Dec 27 18:01:18 2010 +0530 OMAP3: Introduce custom set rate and get rate APIs for scalable devices This patch also introduces omap3_mpu_set_rate, omap3_iva_set_rate, omap3_l3_set_rate, omap3_mpu_get_rate, omap3_iva_get_rate, omap3_l3_get_rate as device specific set rate and get rate APIs for OMAP3 mpu, iva and l3_main devices. This patch also calls into omap_device_populate_rate_fns during system init to register various set_rate and get_rate APIs with the omap device layer Signed-off-by: Thara Gopinath commit b7584aa0a18700c55ef7fc9aa9f664c0514222ff Author: Vishwanath BS Date: Wed Feb 9 16:27:44 2011 +0530 OMAP3: cpufreq driver changes for DVFS support Changes in the omap cpufreq driver for DVFS support. Signed-off-by: Vishwanath BS commit ebdb7d0861eb4bffbb79a60d924b9b579febd85d Author: Vishwanath BS Date: Wed Mar 30 12:37:41 2011 +0530 OMAP3: Introduce voltage domain info in the hwmod structures. This patch adds voltage domain info in the relevant device hwmod structures so as to enable OMAP3 DVFS support. Signed-off-by: Thara Gopinath Signed-off-by: Vishwanath BS commit 740bcc9b2580f68c9304542d1dc528686c8d3993 Author: Vishwanath BS Date: Thu Mar 31 13:01:26 2011 +0530 OMAP3: Add voltage dependency table for VDD1. In OMAP3, for perfomrance reasons when VDD1 is at voltage above 1.075V, VDD2 should be at 1.15V for perfomrance reasons. This patch introduce this cross VDD dependency for OMAP3 VDD1. Signed-off-by: Thara Gopinath Signed-off-by: Vishwanath BS commit 01c67c944c371fb7091097e6c47333d319f8af4f Author: Vishwanath BS Date: Thu Mar 31 18:31:06 2011 +0530 OMAP PM: Initialise voltage domain as part of common infrastructure RIght now voltage layer is initialized as part of core init which is too late for devices to register with voltage domain as part of hwmod init. So moving voltage layer initialization as part of common infrastructure init. Signed-off-by: Vishwanath BS commit f4cbae8ea1e9bcbad45e9bb1934f66bae09e876f Author: Thara Gopinath Date: Fri Oct 29 20:44:13 2010 +0530 OMAP2PLUS: Enable various options in defconfig This patch enables Smartreflex and Cpu Freq in the omap2plus defconfig. Signed-off-by: Thara Gopinath commit 3f9afabee2002c1ea8194316ba17dc3dc44ded86 Author: Vishwanath BS Date: Fri Jan 21 16:24:58 2011 +0530 OMAP: Add DVFS Documentation Add Documentation for DVFS Framework Signed-off-by: Vishwanath BS commit 9b2515968179d32bfbc2a011a654968939bdf085 Author: Vishwanath BS Date: Thu Mar 31 19:04:42 2011 +0530 Revert "OMAP3: cpufreq driver changes for DVFS support" This reverts commit 7feb1d6505144376a since there is another patch set for omap cpufreq changes at https://patchwork.kernel.org/patch/589081/ Signed-off-by: Vishwanath BS commit 4e050197c77120a3009066ce74494a77873440cf Author: Santosh Shilimkar Date: Fri Apr 1 11:23:08 2011 +0530 omap2plus: clock: Add an alias cpu_ck to be used in common cpufreq driver Add an alias clock node for cpu clock control on all OMAP2PLUS devices. The intention is avoid cpu_is_xxxx() checks in the common cpufreq driver. Signed-off-by: Santosh Shilimkar Signed-off-by: Vishwanath BS commit e5ce464e0053a9fe61eadf0d9f2cf3cadb4a2425 Author: Santosh Shilimkar Date: Mon Feb 28 17:34:23 2011 +0530 omap: cpufreq: Split omap1 and omap2plus cpufreq drivers. This patch is an attempt to cleanup the #ifdeferry in the omap cpufreq drivers. The split betwenn omap1 and omap2plus is logical because - omap1 doesn't support opp layer. - omap1 build is seperate from omap2plus. Signed-off-by: Santosh Shilimkar Cc: Kevin Hilman Cc: Vishwanath BS commit 337c4875b849f89ce54282bd74ca0b035287da0b Author: Santosh Shilimkar Date: Fri Feb 25 06:10:39 2011 +0000 omap2plus: cpufreq: Add SMP support to cater OMAP4430 On OMAP SMP configuartion, both processors share the voltage and clock. So both CPUs needs to be scaled together and hence needs software co-ordination. Signed-off-by: Santosh Shilimkar Cc: Kevin Hilman cc: Vishwanath BS commit 795062f08920ac553553f84ebd0bf77f21904519 Author: Vishwanath BS Date: Fri Feb 25 12:52:08 2011 +0530 OMAP2PLUS: cpufreq DVFS changes This patch adds support for DVFS in cpufreq driver by replacing clock api with DVFS api. Signed-off-by: Vishwanath BS commit bcee8ba57c873918cd09dd084b1f4c58adf3dacc Author: Vishwanath BS Date: Fri Apr 1 14:57:50 2011 +0530 OMAP4 PM: Add support for OMAP4 MPU DVFS This patchset adds support for OMAP4 MPU DVFS with following changes - add vdd information for omap4 - enable all relevant OPPs for MPU VDD - define and register get_rate and set_rate with DVFS layer Signed-off-by: Vishwanath BS commit bfef60ab15a69a6bfaf92f6926d70868fa4655de Author: Konstantin Porotchkin Date: Sun Mar 27 11:54:49 2011 +0200 Fix the broken build for Marvell Dove platform. Remove call to the old GPIO init function. Fix old MPP control offset value. Signed-off-by: Konstantin Porotchkin Acked-by: Saeed Bishara Signed-off-by: Nicolas Pitre (cherry picked from commit dc7b602dd481cad61fc4f18874bbdc5b04b5ee3e) commit 38ca62abee446053a2b5dfb08a51c30012b8d48a Author: Russell King - ARM Linux Date: Sat Apr 2 10:20:46 2011 +0100 ARM: Make consolidated PM sleep code depend on PM_SLEEP CONFIG_PM is now set whenever we support either runtime PM in addition to suspend and hibernate. This causes build errors when runtime PM is enabled on a platform, but the CPU does not have the appropriate support for suspend. So, switch this code to use CONFIG_PM_SLEEP rather than CONFIG_PM to allow runtime PM to be enabled without causing build errors. Signed-off-by: Russell King Signed-off-by: Nicolas Pitre commit 7c4bc9c2662c6d9840afed0e29eb01314af9bb78 Author: Russell King - ARM Linux Date: Sat Apr 2 10:21:07 2011 +0100 ARM: Only allow PM_SLEEP with CPUs which support suspend Offering CONFIG_PM_SLEEP for CPUs which do not support suspend leads to build errors, so only set CONFIG_ARCH_SUSPEND_POSSIBLE if we have a CPU selected which supports suspend. Signed-off-by: Russell King Signed-off-by: Nicolas Pitre commit 1449fb96cb7f12a28a4f0aebf83c0b0ece0dfeed Author: Shawn Guo Date: Mon Apr 4 23:01:47 2011 +0800 arm/dt: Add a make rule to build dtb for enabled boards With 'make ARCH=arm dtb', it builds Device Tree Blobs for those boards enabled by build CONFIG. Signed-off-by: Shawn Guo Signed-off-by: Grant Likely commit 7cd797d191bd24ce97264801ec4c6142cbe08b21 Author: Grant Likely Date: Mon Apr 4 22:29:49 2011 -0600 arm/dt: Add basic devicetree support to IGEPv2 and v3 Signed-off-by: Grant Likely commit ae2417a7c607b3eb4adf6103b2919caaaf8b27b8 Author: Dave Martin Date: Tue Apr 5 09:59:33 2011 +0100 ARM: ELF: Define new core note type for VFP registers The VFP registers are not currently included in coredumps, and there's no existing note type where they can sensibly be included, so this patch defines a dedicated note type for them. Signed-off-by: Dave Martin Acked-by: Will Deacon Signed-off-by: Nicolas Pitre commit 16db02432c7fe0c62eadfe9504e1ab4a1d5f086b Author: Dave Martin Date: Tue Apr 5 09:59:34 2011 +0100 ARM: ptrace: Migrate to regsets framework This patch migrates the implementation of the ptrace interface for the core integer registers, legacy FPA registers and VFP registers to use the regsets framework. As an added bonus, all this stuff gets included in coredumps at no extra cost. Without this patch, coredumps contained no VFP state. Third-party extension register sets (iwmmx, crunch) are not migrated by this patch, and continue to use the old implementation; these should be migratable without much extra work. Signed-off-by: Dave Martin Acked-by: Will Deacon Signed-off-by: Nicolas Pitre commit f387a40bd35dac20359fd648e91b54935de45019 Author: Nicolas Pitre Date: Tue Apr 5 20:26:10 2011 -0400 ARM: the ADDR_NO_RANDOMIZE personality flag should be honored with mmap() Signed-off-by: Nicolas Pitre commit c3578355a999d3dcf886e41407fce5ae35333783 Author: Nicolas Pitre Date: Wed Apr 6 18:35:17 2011 -0400 ARM: fix personality flag propagation across an exec Our SET_PERSONALITY() implementation was overwriting all existing personality flags, including ADDR_NO_RANDOMIZE, making them unavailable to processes being exec'd after a call to personality() in user space. This prevents the gdb test suite from running successfully. Signed-off-by: Nicolas Pitre commit 4447ee554813bb9d7eef8963722c6c72b554750c Author: Jaecheol Lee Date: Wed Mar 16 07:28:23 2011 +0900 ARM: EXYNOS4: CPUIDLE Support This patch supports cpuidle framework for EXYNOS4210. Currently, Only one idle state is possible to use, but more idle states can be added following by this patch. Signed-off-by: Jaecheol Lee Signed-off-by: Kukjin Kim (cherry picked from commit df7bf189d23ecd1c211c273de462b93d9e3e1fef) commit 4997081246dead035e5a0fde827aace41d54db5d Author: Thomas Abraham Date: Tue Apr 12 17:31:34 2011 +0530 ARM: EXYNOS4: Fix incorrect mapping of gpio pull-up macro to register setting The S3C_GPIO_PULL_UP macro value incorrectly maps to a reserved setting of GPIO pull up/down registers on Exynos4 platform. Fix this incorrect mapping by adding wrappers to the s3c_gpio_setpull_updown and s3c_gpio_getpull_updown functions. Signed-off-by: Thomas Abraham Signed-off-by: Nicolas Pitre commit 240b5b16a5e2eab90fbbaa43f236d083ee72b464 Author: Thomas Abraham Date: Tue Apr 12 19:33:53 2011 +0530 ARM: EXYNOS4: Fix card insert/removal event detection on smdkv310 board On SMDKV310 board, a card detect gpio pin is available that is directly connected to the io pad of the sdhci controller. Fix incorrect value of cd_type field in platform data for sdhci instance 0 and 2. Signed-off-by: Thomas Abraham Signed-off-by: Nicolas Pitre commit 4ff0a77071bdb2fef66c3aeac6bf0e13fd47dac9 Author: Will Deacon Date: Tue Apr 5 13:57:53 2011 +0100 ARM: 6864/1: hw_breakpoint: clear DBGVCR out of reset The DBGVCR, used for configuring vector catch debug events, is UNKNOWN out of reset on ARMv7. When enabling monitor mode, this must be zeroed to avoid UNPREDICTABLE behaviour. This patch adds the zeroing code to the debug reset path. Cc: stable Reported-by: Stepan Moskovchenko Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit e89c0d7090c54d7b11b9b091e495a1ae345dd3ff) commit df72b721a703c44999e964e512600699e47daf16 Author: Will Deacon Date: Tue Apr 5 14:01:24 2011 +0100 ARM: 6865/1: perf: ensure pass through zero is counted on overflow Commit a737823d ("ARM: perf: ensure overflows aren't missed due to IRQ latency") changed the way that event deltas are calculated on overflow so that we don't miss events when the new count value overtakes the previous one. Unfortunately, we forget to count the event that passes through zero so we end up being off by 1. This patch adds on the correction. Reported-by: Chris Moore Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit 6759788b944139793bffa889761cc3d8d703fdc0) commit 3011c378f591a76e57890a8a6a312fc57ad3cff5 Author: Catalin Marinas Date: Wed Apr 6 16:14:25 2011 +0100 ARM: 6866/1: Do not restrict HIGHPTE to !OUTER_CACHE The HIGHPTE config option depends on !OUTER_CACHE. However, there is no set_pte_ext() function that does outer cache maintenance by physical address, hence no need for such restriction. Signed-off-by: Catalin Marinas Signed-off-by: Russell King (cherry picked from commit 974508262e94b567f9d5b7ba1eef9fc493561f63) commit 5038273786d348f0c89998cd03f9707341ae2dc1 Author: Catalin Marinas Date: Wed Apr 6 16:16:29 2011 +0100 ARM: 6867/1: Introduce THREAD_NOTIFY_COPY for copy_thread() hooks This patch adds THREAD_NOTIFY_COPY for calling registered handlers during the copy_thread() function call. It also changes the VFP handler to use a switch statement rather than if..else and ignore this event. Signed-off-by: Catalin Marinas Signed-off-by: Russell King (cherry picked from commit 2e82669acf03e5bf2080f5d3ef005168e67d8a51) commit 7b4af25469a8a4b19feb2549777fed3120a4978f Author: Catalin Marinas Date: Wed Apr 6 16:17:17 2011 +0100 ARM: 6868/1: Preserve the VFP state during fork VFP registers d16-d31 are callee saved registers and must be preserved during function calls, including fork(). The VFP configuration should also be preserved. The patch copies the full VFP state to the child process. Reported-by: Paul Wright Signed-off-by: Catalin Marinas Signed-off-by: Russell King (cherry picked from commit c98c09773d80db93cae349f0496fef109feab54d) commit 1e8f03663c90c2c2618e00aa08300857508c3e02 Author: Tushar Behera Date: Wed Apr 13 10:08:54 2011 +0530 ARM: EXYNOS4: Register HSMMC2 before HSMMC0 on SMDKV310 board On Exynos4210 SOC, of all the HSMMC controllers only HSMMC2 can be used as a boot media. Hence the default SD/MMC card should be connected to HSMMC2. The secondary card is connected to HSMMC0. If HSMMC0 is registered before HSMMC2, the device node for default MMC card changes depending on whether secondary card is connected or not. It creates problem in mounting the file-system present in default SD/MMC card. Hence HSMMC2 should be registered before HSMMC0. Signed-off-by: Tushar Behera Signed-off-by: Nicolas Pitre commit 3e7170ba4810ca425a9031de902bb9c5aa107fd7 Author: Lorenzo Pieralisi Date: Wed Apr 13 19:02:20 2011 +0100 ARM: vexpress: add basic DT platform matching support This patch adds a DT match table to the Versatile Express machine description in order to enable basic device tree support. Tested on a Versatile Express board where the device tree blob is passed to the kernel by u-boot. Signed-off-by: Lorenzo Pieralisi Signed-off-by: Nicolas Pitre commit 8f45a06b52151080c150d3b114cf79c4a3308642 Author: Lorenzo Pieralisi Date: Wed Apr 13 19:02:21 2011 +0100 ARM: vexpress: add basic dts DT source This patch provides a simple device tree source for the Versatile Express board. It just defines memory layout and assigns a compatible string to the board. Compiled blob tested on Versatile Express, passed to the kernel through u-boot. 'chosen' node defined within u-boot to avoid cluttering the default dts configuration. Signed-off-by: Lorenzo Pieralisi Signed-off-by: Nicolas Pitre commit c311b6f8a942ea863897ec1b2c5ae89fa0ac0b6c Author: Sebastien Jan Date: Wed Mar 16 11:16:08 2011 +0100 OMAP4: DSS: add generic notifier mechanism A callback can be registered by the dssdev client in order to be notified of resolution changes, for example an external monitor that is hot-plugged. Multiple clients can now register for notification from one dssdev, and the notification mechanism can be extended in the future to add other events. This is a port of Rob Clark's original patch. Signed-off-by: Sebastien Jan commit ba77f32cec4c105a2d37e7ffcc8eb084cc9b66c3 Author: Rob Clark Date: Mon Feb 7 19:45:26 2011 -0600 OMAP: DSS2: Expose API to get edid Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 521ef551b393cde31fdf4757b42ae373f37e6ba4 Author: Rob Clark Date: Fri Mar 4 13:44:33 2011 -0600 OMAP: DSS2: Add default get/check timings functions Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 15fccd970e81657b6e24a36edfcef82592f728b4 Author: Rob Clark Date: Thu Mar 10 13:26:57 2011 -0600 OMAP: DSS2: Add is_detected() driver API The API should return whether the device is detected, and if applicable whether the cable is plugged in. For non-hot-plug devices, it simply means "is the display/panel present". For hot-plug devices it means "is the cable plugged in". Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 1a2b24926da1307563b9a9963ac9b335044accb1 Author: Rob Clark Date: Wed Mar 9 20:22:50 2011 -0600 OMAP: DSS2: Add hotplug notify events Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 6e82144b365857918caeb185edb28a3af7dde9a6 Author: Rob Clark Date: Sat Mar 26 21:15:10 2011 -0500 OMAP: DSS2: Add missing color formats Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 4a7f2b6a75f68814cd3fff534f7163bb209cbce8 Author: Rob Clark Date: Sun Feb 13 14:14:47 2011 -0600 drm: psuedocolor support for ARGB modes If there is an alpha channel, need to mask in 1's in the alpha channel to prevent the fb from being completely transparent. Signed-off-by: Rob Clark commit 482d3449110c8316cafa6c27c31d4e105227d1e4 Author: Rob Clark Date: Wed Mar 2 12:05:24 2011 -0600 drm: platform multi-device support Include the minor device id in the bus-id to give userspace a way to open the correct "cardN" when there are multiple device instances. Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 26d0dba2db2f403d62761060ef4012e1c7ba991b Author: Rob Clark Date: Sun Feb 27 16:23:03 2011 -0600 fbops support for framebuffers with alpha channel Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit cf42e0d832c909f71e58d81238e082791cff1dca Author: Jeff McGee Date: Fri Oct 8 16:59:49 2010 -0500 drm: Call platform register/unregister for platform drivers. Signed-off-by: Jeff McGee Signed-off-by: Ricardo Salveti de Araujo commit d795e2ce653e6c0e622c9b31f91f0c525c5982cb Author: Rob Clark Date: Sun Apr 3 22:05:25 2011 -0300 Adding omap_gpu drm display driver A DSS based DRM display driver, which provides a plugin interface for 3d/2d accelerators to register. The core driver handles construction of CRTC/encoder/connectors to represent the hardware, and support KMS. This driver replaces omapfb. omap_gpu drm driver allocates framebuffer memory and implements (with the help of drm_fb_helper) the legacy fbdev interface. The driver maps CRTCs to overlays, encoders to overlay-managers, and connectors to dssdev's. To set vram on the command-line (bootargs): omapgpu.vram=0:32M (same syntax as omapfb but use omapgpu module name instead) To set default resolution on command-line, use the normal video= line, such as: video="HDMI Type A-1:800x600@60" And of course, to enable debug: drm.debug=7 The omap_gpu drm driver supports using platform_data to configure which omap_gpu devices are assigned which overlays/managers/devices. If multiple devices are registered, each one creates it's own framebuffer and fbdev. This allows for multiple independent display contexts (like with the old omapfb driver) in cases where you don't want to share one virtual framebuffer across multiple displays. Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 29c8989816b50e8cf185582c8de95ad3a6565e86 Author: Ricardo Salveti de Araujo Date: Sun Apr 3 22:07:17 2011 -0300 drm/omap: add common scaled modes The idea behind it is just to add more modes, and add them with reduced blanking, so we have more choices while probing the EDID. It tries to identify what would be the native mode for the monitor, and add the scaler modes that would be compatible with it, but with reduced blanking. With that it can get more compatible modes with OMAP 3 pixel clock. Signed-off-by: Ricardo Salveti de Araujo commit 22c70629bb38edf430e6541260958392b098793a Author: Ricardo Salveti de Araujo Date: Sun Apr 3 22:15:54 2011 -0300 OMAP2: DSS2: Adding i2c_bus_num to panel_generic_dpi_data to probe the eeprom The i2c_bus_num can be used to probe needed information from the eeprom, like EDID from DVI monitors. Signed-off-by: Ricardo Salveti de Araujo commit 3b32fb03d55c885a64315c1a6c67f9a1d03f2bd7 Author: Ricardo Salveti de Araujo Date: Mon Apr 4 01:03:51 2011 -0300 OMAP: DSS2: add get_edid and is_detected support Signed-off-by: Ricardo Salveti de Araujo commit ba369f27666546f6a88da75bb39eeadbdc36f51d Author: Rob Clark Date: Fri Mar 18 20:39:46 2011 -0500 omap2+: fix number of omap_vout resources Depending on whether kernel is built with omapfb or omapgpu, it needs to consider CONFIG_FB_OMAP2_NUM_FBS or CONFIG_DRM_OMAP_NUM_CRTCS to know how many DSS pipes are used for framebuffers. Signed-off-by: Rob Clark Signed-off-by: Ricardo Salveti de Araujo commit 44ee1dd964c6d04a4a25ddcafeeac062821c5528 Author: Ricardo Salveti de Araujo Date: Tue Apr 5 09:41:39 2011 -0300 drm/omap: adding MODULE_ALIAS Signed-off-by: Ricardo Salveti de Araujo commit 167f6cc789629fee00950b98df719b3605f8812d Author: Andy Doan Date: Wed Apr 13 17:35:44 2011 -0700 OMAP: DSS2: handle null pointer for no attached panel A null pointer error occurs when a board file configures a panel (LCD in my case) but doesn't have one attached commit 21f184dabe444d353e9fbba4bef608af0d31227a Author: Andy Doan Date: Wed Apr 13 17:38:19 2011 -0700 OMAP2: DSS2: Add i2c_bus_num for Overo panel probing The i2c_bus_num can be used to probe needed information from the eeprom, like EDID from DVI monitors. commit 532e4cace52775dcd4fb787b825d998783cddf98 Author: Juergen Kilb Date: Thu Apr 14 09:31:43 2011 +0200 OMAP: Fixed gpio polarity of gpio USB-phy reset. With commit 19403165 a main part of ehci-omap.c moved to drivers/mfd/omap-usb-host.c created by commit 17cdd29d. Due to this reorganisation the polarity used to reset the external USB phy changed and USB host doesn't recognize any devices. Signed-off-by: Juergen Kilb Acked-by: Felipe Balbi Signed-off-by: Nicolas Pitre commit 5b612fcb26b784180ef9add46a37007a917b3461 Author: Jassi Brar Date: Wed Apr 13 11:46:41 2011 +0100 MUSB: shutdown: Make sure block is awake before doing shutdown Without this an OOPS can be seen at shutdown because the peripheral unit is unclocked, leading to an "imprecise external abort" Signed-off-by: Jassi Brar Signed-off-by: Nicolas Pitre commit 7f9eed8ee4d22be7280adda8f8fc78325c53719f Author: Grant Likely Date: Thu Apr 14 14:58:56 2011 -0600 arm/dt: Fix broken dtbs rule. On recent make, commit 1449fb96, "arm/dt: Add a make rule to build dtb for enabled boards" breaks build of the kernel immediately: /projects/linaro/linux-2.6/arch/arm/Makefile:292: *** mixed implicit and normal rules. Stop. > $ rpm -q make > make-3.82-4.fc15.x86_64 > > ''The previous behavior of mixing implicit and pattern rules in one line > like that was never supported or documented, but due to a "hole" in the > parser it worked for certain specific cases (for example, reversing that > line so the pattern comes first would not work, nor would adding extra > explicit targets after the pattern target). > > In 3.82, the parser was tightened in this respect and that "hole" was > closed, hence you see this error.'' This patch splits the rule to fix the bug. Reported-by: Andy Green Signed-off-by: Grant Likely Signed-off-by: Nicolas Pitre commit 993916203f00e8c62599466a5caa866e09f0fae3 Author: Grant Likely Date: Thu Apr 14 14:59:44 2011 -0600 arm/dt: vexpress: Update basic DT to use skeleton.dtsi file. Converted .dts file to use skeleton.dtsi, and added 'dtbs' target. Signed-off-by: Grant Likely Signed-off-by: Nicolas Pitre commit 457520e3fbce80812c6901c226ec242fdb906c63 Author: Avik Sil Date: Sat Apr 16 16:11:02 2011 +0530 arm: pmu: support pmu/perf on OMAP4 This patch fixes the bug #702999 (oprofile failure on panda (omap4)). It is based on [1] that fixes the issue by enabling pmu events for omap4, which are routed from CTI. The patch attached is a modified version of [1] with removal of some CTI register reads that cause hang in the initial phase of booting. The patch has been verified on Panda board and the profile data could be generated that are shown by opreport. Although, there is a lockdep warning "possible circular locking dependency detected" when "opcontrol --start" is called for the first time. Regards, Avik [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-March/045283.html Signed-off-by: Avik Sil Signed-off-by: Nicolas Pitre commit 4fcd294d4a6e156cccd077f24c6a255298df0fd8 Author: Sonny Rao Date: Fri Apr 15 20:27:25 2011 -0700 Fix infinite loop in ARM user perf_event backtrace code The ARM user backtrace code can get into an infinite loop if it runs into an invalid stack frame which points back to itself. This situation has been observed in practice. Fix it by capping the number of entries in the backtrace. This is also what other architectures do in their backtrace code. Signed-off-by: Sonny Rao Acked-by: Jamie Iles Acked-by: Will Deacon Acked-by: Olof Johansson Signed-off-by: Nicolas Pitre commit 9c83e1501f0fee8ea84b32ff6edd5368e1db093b Author: Nicolas Pitre Date: Tue Apr 19 15:42:43 2011 -0400 ARM: zImage: no need to get the decompressed size from the filesystem In commit d239b1dc093d the hardcoded 4x estimate for the decompressed kernel size was replaced by the exact Image file size and passed to the linker as a symbol value. Turns out that this is unneeded as the size is already included at the end of the compressed piggy data. For those compressed formats that don't include this data, the build system already takes care of appending it using size_append in scripts/Makefile.lib. So let's use that instead. Signed-off-by: Nicolas Pitre commit 8dcbf26fb5bf96bd3bad4a913ebef5459a0c0cf0 Author: Nicolas Pitre Date: Tue Apr 19 16:13:23 2011 -0400 ARM: compressed/misc.c: simplify decompress_kernel() The return value for decompress_kernel() is no longer used. Furthermore, this was obtained and stored in a variable called output_ptr which is a complete misnomer for what is actually the size of the decompressed kernel image. Let's get rid of it. Signed-off-by: Nicolas Pitre commit 925f6039cebb771e0143c26bd9c63dfd1fa314db Author: Nicolas Pitre Date: Tue Apr 19 21:55:22 2011 -0400 ARM: zImage: fix issues with missing GOT entries for some global variables Many architecture specific versions of uncompress.h make use of global variables marked static. In such case the GOT is bypassed and the code in head.S can't relocate them. Instead of removing the static keyword from all those files and hope that it won't come back, let's simply define it out. Signed-off-by: Nicolas Pitre commit 9142a117517759a6a4e9e4e01e8185e6c56dc2c0 Author: Jon Medhurst Date: Wed Apr 6 11:17:09 2011 +0100 ARM: kprobes: Fix probing of conditionally executed instructions When a kprobe is placed onto conditionally executed ARM instructions, many of the emulation routines used to single step them produce corrupt register results. Rather than fix all of these cases we modify the framework which calls them to test the relevant condition flags and, if the test fails, skip calling the emulation code. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit fcb8c04a80247cadc610df28b8a9ab738e49206a Author: Jon Medhurst Date: Wed Apr 6 11:17:10 2011 +0100 ARM: kprobes: Remove redundant condition checks from simulation routines Now we have the framework code handling conditionally executed instructions we can remove redundant checks in individual simulation routines. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit a2d2f8e74a1cfc08ed95ed01c21e9fa23bcba1ba Author: Jon Medhurst Date: Wed Apr 6 11:17:11 2011 +0100 ARM: kprobes: Fix emulation of CMP, CMN, TST and TEQ instructions. Probing these instructions was corrupting R0 because the emulation code didn't account for the fact that they don't write a result to a register. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit b7c62d4f3db7d6fbd967264334e7f8d8f92edf3e Author: Jon Medhurst Date: Wed Apr 6 11:17:12 2011 +0100 ARM: kprobes: Fix emulation of Data-processing (immediate) instructions Emulation of instructions like "ADD rd, rn, #" would result in a corrupted value for rd. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 350fb0452a80b01e6d39382c8fcb2548811c164b Author: Jon Medhurst Date: Thu Apr 7 13:25:15 2011 +0100 ARM: kprobes: Reject probing MRS instructions which read SPSR We need to reject probing of instructions which read SPSR because we can't handle this as the value in SPSR is lost when the exception handler for the probe breakpoint first runs. This patch also fixes the bitmask for MRS instructions decoding to include checking bits 5-7. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 71bfa888ea7de362cde2c67868aabe8b967709f9 Author: Jon Medhurst Date: Thu Apr 7 13:25:16 2011 +0100 ARM: kprobes: Fix emulation of MRS instruction The MRS instruction should set mode and interrupt bits in the read value so it is simpler to use a new simulation routine (simulate_mrs) rather than some modified emulation. prep_emulate_rd12 is now unused and removed. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 35e1e3fc18bd7cc5bc47b1a9a90b10f9f8a472d1 Author: Jon Medhurst Date: Thu Apr 7 13:25:17 2011 +0100 ARM: kprobes: Reject probing of instructions which write to PC unpredictably. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 6546ec637367b63c325b7aa5f7081ffd981d39ea Author: Jon Medhurst Date: Thu Apr 7 13:25:18 2011 +0100 ARM: kprobes: Fix error in comment Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit dfb8a2c9c9b09fad4c8abf628045aea26a5c8457 Author: Jon Medhurst Date: Thu Apr 7 13:25:19 2011 +0100 ARM: kprobes: Reject probing of undefined multiply instructions The instructions space for 'Multiply and multiply-accumulate' instructions contains some undefined patterns. We need to reject probing of these because they may in future become defined and the kprobes code may then emulate them faultily. This has already happened with the new MLS instruction which this patch also adds correct decoding for as well as tightening up other decoding tests. (Before this patch the wrong emulation routine was being called for MLS though it still produced correct results.) Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 93447aa52cd2710a557029c1574dfd9e18cd153d Author: Jon Medhurst Date: Fri Apr 8 15:32:53 2011 +0100 ARM: kprobes: Reject probing of STREX and LDREX instructions The emulation code for STREX and LDREX instructions is faulty, however, rather than attempting to fix this we reject probes of these instructions. We do this because they can never succeed in gaining exclusive access as the exception framework clears the exclusivity monitor when a probes breakpoint is hit. (This is a general problem when probing all instructions executing between a LDREX and its corresponding STREX and can lead to infinite retry loops.) Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 828681d10839c56546bf11581021a366c0e2a47b Author: Jon Medhurst Date: Fri Apr 8 15:32:54 2011 +0100 ARM: kprobes: Fix emulation of LDRH, STRH, LDRSB and LDRSH instructions The decoding of these instructions got the register indexed and immediate indexed forms the wrong way around, causing incorrect emulation. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 10b65e3d630b1c1bf2a2b00f3825e843115a5348 Author: Jon Medhurst Date: Fri Apr 8 15:32:55 2011 +0100 ARM: kprobes: Reject probing of LDR/STR instructions which update PC unpredictably Using PC as an base register with writeback is UNPREDICTABLE, as is non word-sized loads or stores of PC. (We only really care about preventing loads to PC but it keeps the code simpler if we also exclude stores.) Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit eeb8dce98e08b8473922ced90c259a3f03b836ad Author: Jon Medhurst Date: Fri Apr 8 15:32:56 2011 +0100 ARM: kprobes: Fix emulation of LDRD and STRD instructions The decoding of these instructions got the register indexed and immediate indexed forms the wrong way around, causing incorrect emulation. Instructions like "LDRD Rx, [Rx]" were corrupting Rx because the base register writeback was being performed unconditionally, overwriting the value just loaded from memory. The fix is to only writeback the base register when that form of the instruction is used. Note, now that we reject probing writeback with PC the emulation code doesn't need the check rn!=15. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 1a08c7f8e6d2b2e048abfdfe187572621f17dcf7 Author: Jon Medhurst Date: Tue Apr 12 07:45:21 2011 +0100 ARM: kprobes: Reject probing of LDRB instructions which load PC These instructions are specified as UNPREDICTABLE. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 57e041030de009ab99374c9a13c754414007d645 Author: Jon Medhurst Date: Tue Apr 12 07:45:22 2011 +0100 ARM: kprobes: Add emulation of RBIT instruction The v6T2 RBIT instruction was accidentally being emulated correctly, this patch adds correct decoding for the instruction. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 1064e723c102add8e9d2732432625bdb97fc1694 Author: Jon Medhurst Date: Tue Apr 12 07:45:23 2011 +0100 ARM: kprobes: Reject probing of undefined media instructions The instructions space for media instructions contains some undefined patterns. We need to reject probing of these because they may in future become defined and the kprobes code may then emulate them faultily. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 26d0df449b03f8214e601e375d37f77bfc2ca36b Author: Jon Medhurst Date: Tue Apr 12 07:45:24 2011 +0100 ARM: kprobes: Fix emulation of SXTB16, SXTB, SXTH, UXTB16, UXTB and UXTH instructions These sign extension instructions are encoded as extend-and-add instructions where the register to add is specified as r15. The decoding routines weren't checking for this and were using the incorrect emulation code, giving incorrect results. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit c20c0045319af7941e9984a53dae8b5806c1ddcb Author: Jon Medhurst Date: Tue Apr 12 07:45:25 2011 +0100 ARM: kprobes: Fix emulation of SMUAD, SMUSD and SMMUL instructions The signed multiply instructions were being decoded incorrectly. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit d193fe18fa8a7f9a6c14593827a8b4804e296b24 Author: Jon Medhurst Date: Tue Apr 12 07:45:26 2011 +0100 ARM: kprobes: Fix emulation of USAD8 instructions The USAD8 instruction wasn't being explicitly decoded leading to the incorrect emulation routine being called. It can be correctly decoded in the same way as the signed multiply instructions so we move the decoding there. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit e0b294f730b7d1abebfee0442b973376f3c21f3f Author: Jon Medhurst Date: Mon Apr 18 08:53:54 2011 +0100 ARM: kprobes: Reject probing of all coprocessor instructions The kernel doesn't currently support VFP or Neon code, and probing of code with CP15 operations is fraught with bad consequences. Therefore we don't need the ability to probe coprocessor instructions and the code to support this can be removed. The removed code also had at least two bugs: - MRC into R15 should set CPSR not trash PC - LDC and STC which use PC as base register needed the address offset by 8 Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit c295df2fda69175b66e13cc5bc4d690bce68a0da Author: Jon Medhurst Date: Mon Apr 18 08:53:55 2011 +0100 ARM: kprobes: Consolidate stub decoding functions Following the change to remove support for coprocessor instructions we are left with three stub functions which can be consolidated. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 9b12218ae0fda2060213642d2cfbc894446f0056 Author: Jon Medhurst Date: Mon Apr 18 08:53:56 2011 +0100 ARM: kprobes: Reject probing of SETEND instructions The emulation of SETEND was broken as it changed the endianess for the running kprobes handling code. Rather than adding a new simulation routine to fix this we'll just reject probing of SETEND as these should be very rare in the kernel. Note, the function emulate_none is now unused but it is left in the source code as future patches will use it. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit d511fc150c01ffb363bceb8f911a1cd84875336f Author: Jon Medhurst Date: Mon Apr 18 08:53:57 2011 +0100 ARM: kprobes: Fix emulation of PLD instructions The PLD instructions wasn't being decoded correctly and the emulation code wasn't adjusting PC correctly. As the PLD instruction is only a performance hint we emulate it as a simple nop, and we can broaden the instruction decoding to take into account newer PLI and PLDW instructions. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit fe2d66bfafc8c63823c95caaf0845ce4d4b6a6b9 Author: Jon Medhurst Date: Mon Apr 18 08:53:58 2011 +0100 ARM: kprobes: Remove redundant code in space_1111 The tests to explicitly reject probing CPS, RFE and SRS instructions are redundant as the default case is now to reject undecoded patterns. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 41847cf4bff1334217ed5fd938c5fd9181a7e577 Author: Jon Medhurst Date: Tue Apr 19 10:52:16 2011 +0100 ARM: kprobes: Reject probing of undefined data processing instructions The instruction decoding in space_cccc_000x needs to reject probing of instructions with undefined patterns as they may in future become defined and then emulated faultily - as has already happened with the SMC instruction. This fix is achieved by testing for the instruction patterns we want to probe and making the the default fall-through paths reject probes. This also allows us to remove some explicit tests for instructions that we wish to reject, as that is now the default action. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit cb23d0878c061ac22d2641185415edb7e592096e Author: Jon Medhurst Date: Tue Apr 19 10:52:17 2011 +0100 ARM: kprobes: Add emulation of MOVW and MOVT instructions The MOVW and MOVT instructions account for approximately 7% of all instructions in a ARMv7 kernel as GCC uses them instead of a literal pool. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 37feca8adcf0ad2e04d480e086d90f6b5d4b4164 Author: Jon Medhurst Date: Tue Apr 19 10:52:18 2011 +0100 ARM: kprobes: Add emulation of SBFX, UBFX, BFI and BFC instructions These bit field manipulation instructions occur several thousand times in an ARMv7 kernel. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit a33ac39587674a13e2dcab8f002aff4861cc0913 Author: Jon Medhurst Date: Tue Apr 19 10:52:19 2011 +0100 ARM: kprobes: Add emulation of hint instructions like NOP and WFI Being able to probe NOP instructions is useful for hard-coding probeable locations and is used by the kprobes test code. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 6537f8d508d1500322b81d1e2f7d302cfd430ce6 Author: Jon Medhurst Date: Tue Apr 19 10:52:20 2011 +0100 ARM: kprobes: Tidy-up kprobes-decode.c - Remove coding standard violations reported by checkpatch.pl - Delete comment about handling of conditional branches which is no longer true. - Delete comment at end of file which lists all ARM instructions. This duplicates data available in the ARM ARM and seems like an unnecessary maintenance burden to keep this up to date and accurate. Signed-off-by: Jon Medhurst Signed-off-by: Nicolas Pitre commit 5dec36665c99e2113385ba97cacb9378a979d162 Author: Nicolas Pitre Date: Thu Apr 21 21:45:08 2011 -0400 ARM: zImage: make sure the stack is 64-bit aligned With ARMv5+ and EABI, the compiler expects a 64-bit aligned stack so instructions like STRD and LDRD can be used. Without this, mysterious boot failures were seen semi randomly with the LZMA decompressor. While at it, let's align .bss as well. Signed-off-by: Nicolas Pitre CC: stable@kernel.org commit 2c429264e26c471fa8c9e0026d94f6832fc0f946 Author: Nicolas Pitre Date: Thu Apr 21 21:59:49 2011 -0400 ARM: zImage: don't ignore error returned from decompress() If decompress() returns an error without calling error(), we must not attempt to boot the resulting kernel. Signed-off-by: Nicolas Pitre commit 1d121efe89c5842090a3c21983490bad6151254c Author: Nicolas Pitre Date: Thu Apr 21 22:52:06 2011 -0400 ARM: zImage: the page table memory must be considered before relocation For correctness, the initial page table located right before the decompressed kernel should be considered when determining if relocation is required. Signed-off-by: Nicolas Pitre commit 1090e71d6adca637aeaabe39d7e48e905e407b80 Author: Nicolas Pitre Date: Mon Apr 25 14:08:48 2011 -0400 Revert "ARM: Add PI/robust mutexes support for SMP kernels" This reverts commit c4bb07ec0084e26323047bcbe446d59ac352e07f. A nicer version was posted by Will Deacon, which will replace it. commit 1d60a2699fd1340a149cf30b00ac30c233a4a553 Author: Will Deacon Date: Fri Apr 8 13:58:39 2011 +0100 ARM: futex: add SMP futex support when !CPU_USE_DOMAINS This patch uses the load/store exclusive instructions to add SMP futex support for ARM. Since the ARM architecture does not provide instructions for unprivileged exclusive memory accesses, we can only provide SMP futexes when CPU domain support is disabled. Signed-off-by: Will Deacon Signed-off-by: Nicolas Pitre commit 92c4a6da040d6d838e1c1595f6434364aff36303 Author: Nicolas Pitre Date: Mon Apr 25 23:07:36 2011 -0400 Revert "ARM: zImage: fix issues with missing GOT entries for some global variables" This reverts commit 925f6039cebb771e0143c26bd9c63dfd1fa314db. The whole situation is rather messy and a more comprehensive fix will be required. Signed-off-by: Nicolas Pitre commit b3bbbe0ae4ba39a678437808cb25a79e6c07bf4e Author: Jassi Brar Date: Tue Apr 26 13:41:42 2011 +0800 MUSB: omap2430: Compile conditionally gadget_driver Signed-off-by: Jassi Brar commit 108cdaf08faa4ce898e62d7b2fd647988d9be881 Author: Andy Green Date: Tue Apr 26 13:41:43 2011 +0800 DEBUG dump cpuid into dmesg using pr_info Signed-off-by: Andy Green commit ec963b5476b35d8d00e65eb3c7a726758d6bd090 Author: Andy Green Date: Tue Apr 26 13:41:43 2011 +0800 OMAP2plus ID dump cpu die id into dmesg Signed-off-by: Andy Green commit b4459ba5170430c1370e98c7e0c470a77d7daf83 Author: Nicolas Pitre Date: Tue Apr 26 21:43:09 2011 -0400 ARM: zImage: avoid using the stack in cache_clean_flush With commit 6d7d0ae5 "improvements to compressed/head.S" the code relocates itself, calls cache_clean_flush, and restart from the beginning in order to determine the new stack location amongst other things. But cache_clean_flush in the ARMv7 case was stashing the content of some registers to the old stack location, possibly corrupting the newly relocated code. Let's rework register assignment in cache_clean_flush to avoid stack usage entirely. Thanks to Aaro Koskinen for investigating this problem. Signed-off-by: Nicolas Pitre Tested-by: Tony Lindgren commit 869bf4a84ea78615066512d821645185a1410a0d Author: Nicolas Pitre Date: Fri Apr 29 17:19:33 2011 -0400 Revert "ARM: zImage: avoid using the stack in cache_clean_flush" This reverts commit b4459ba5170430c1370e98c7e0c470a77d7daf83. Some reports indicate this prevents successful boot. Let's use a simpler alternative as proposed for mainline. commit 4e922ab37b2e0c5f7c5b23b7d5ecacc87b82e069 Author: Tony Lindgren Date: Tue Apr 26 05:37:46 2011 -0700 ARM: zImage: Fix bad SP address after relocating kernel Otherwise cache_clean_flush can overwrite some of the relocated area depending on where the kernel image gets loaded. This fixes booting on n900 after commit 6d7d0ae51574943bf571d269da3243257a2d15db (ARM: 6750/1: improvements to compressed/head.S). Thanks to Aaro Koskinen for debugging the address of the relocated area that gets corrupted, and to Nicolas Pitre for the other uncompress related fixes. Signed-off-by: Tony Lindgren Signed-off-by: Nicolas Pitre commit 70ec2c2c8ec1d6771042da5e78ab640b4ff15dbd Author: Nicolas Pitre Date: Wed Apr 27 16:15:11 2011 -0400 ARM: zImage: make sure not to relocate on top of the relocation code If the zImage load address is slightly below the relocation address, there is a risk for the copied data to overwrite the copy loop or cache flush code that the relocation process requires. Always bump the relocation address by the size of that code to avoid this issue. Noticed by Tony Lindgren . While at it, let's start the copy from the restart symbol which makes the above code size computation possible by the assembler directly, given that we don't need to preserve the code before that point anyway. And therefore we don't need to carry the _start pointer in r5 anymore. Signed-off-by: Nicolas Pitre commit d5fe41c571d8b0fce1c0042285e6e1b6fcacb72e Author: Nicolas Pitre Date: Thu Apr 28 17:00:17 2011 -0400 ARM: zImage: remove the static qualifier from global data variables To be able to relocate the .bss section at run time independently from the rest of the code, we must make sure that no GOTOFF relocations are used with .bss symbols. This usually means that no global variables can be marked static unless they're also const. Let's remove the static qualifier from current offenders, or turn them into const variables when possible. Next commit will ensure the build fails if one of those is reintroduced due to otherwise enforced coding standards for the kernel. Signed-off-by: Nicolas Pitre commit fb1dec1386bfd6f4f1bce71fe1b058f06cc42aad Author: Nicolas Pitre Date: Wed Apr 27 14:54:39 2011 -0400 ARM: zImage: make sure no GOTOFF relocs are used with .bss symbols To be able to relocate the .bss section at run time independently from the rest of the code, we must make sure that no GOTOFF relocations are used with .bss symbols. This usually means that no global variables can be marked static unless they're also const. To enforce this, suffice to fail the build whenever a private symbol is allocated to .bss and list those symbols for convenience. The user_stack and user_stack_end labels in head.S were converted into non exported symbols to remove false positives. Signed-off-by: Nicolas Pitre commit 71e4589c6f1cf5eb765d51e3106a4f48ea6ace71 Author: Hema HK Date: Tue Apr 26 05:41:44 2011 +0800 Subject: [PATCH 3/3] usb: musb: Moving the Vbus enable function call from to workqueue. Enable VBUS function can involve the I2C transfers which can't be called from interrupt context. Moving the function call to work queqe. Signed-off-by: Hema HK commit 2967f8fa3c6349fbe9f6f3e79614689c854ba577 Author: Andy Green Date: Tue Apr 26 05:41:45 2011 +0800 CONFIG disable OMAP_RESET_CLOCKS COMAP2_DSS_VENC using BROKEN Signed-off-by: Andy Green commit 39a3e261066d9fd961a3426e7de4506708ac57e8 Author: Jaswinder Singh Date: Tue Apr 26 05:41:46 2011 +0800 MUSB: workaround runtime pm sysfs Workaround possible OOPS when writing to musb mode with no gadget or host comfiguration active Signed-off-by: Jaswinder Singh commit ed1f1c5c5c39ae651515980f86ccf190a9900a33 Author: Andy Green Date: Tue Apr 26 05:41:47 2011 +0800 musb protect otg timer references Signed-off-by: Andy Green commit 9929a6fa100029fd7fec564f4b07ac901196b8e9 Author: panduranga_mallireddy@ti.com Date: Mon May 2 12:38:44 2011 +0800 omap: panda: wlan board muxing Add board muxing to support the wlan wl1271 chip that is hardwired to mmc5 (fifth mmc controller) on the PANDA. Based on the wlan board muxing for zoom3 by Ohad Ben-Cohen Signed-off-by: Panduranga Mallireddy commit 8b6b863cf1309ab089982e276175a6af8d64319e Author: Sebastien Jan Date: Mon May 2 12:39:39 2011 +0800 WLAN: fix the path to the wl12xx firmwares Signed-off-by: Sebastien Jan commit 95f5e39a7a404750c5a6fd31e94a3657bccaddad Author: Jan Weitzel Date: Mon May 2 12:40:25 2011 +0800 ARM: omap4: i2c reset regs postidle Without OMAP_I2C_FLAG_RESET_REGS_POSTIDLE I got i2c controller timeouts on each accsess after an NACK message. Taking this flag fix it. This patch is on top of the i2c feature implementation flags patches Signed-off-by: Jan Weitzel commit 11908044abffaff7fda8123ff250253cf16a28b7 Author: Eliad Peller Date: Mon May 2 12:41:23 2011 +0800 wl12xx: remove redundant debugfs_remove_recursive() call Upon rmmod, the /ieee80211/phyX dir is being removed. later, we try to remove /ieee80211/phyX/wl12xx, which might result in NULL dereference. Remove the excessive debugfs_remove_recursive() call. (consequently, there is no more need to save wl->rootdir) Reported-by: Arik Nemtsov Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 8bcc2314ef34a6a030faf03a495e0f895e66d57e Author: Dan Carpenter Date: Mon May 2 12:41:23 2011 +0800 wl12xx: use after free in debug code If debugging is turned on, then wl1271_dump() dereferences a freed variable. Signed-off-by: Dan Carpenter Signed-off-by: Luciano Coelho commit f710dc88ed5e8d99812a023e6a394c99e278f1a5 Author: Eliad Peller Date: Mon May 2 12:41:24 2011 +0800 wl12xx: fix some sparse warnings Note that wl1271_write32() calls cpu_to_le32() by itself, so calling wl1271_write32(addr, cpu_to_le32(val)) is in fact a bug on BE systems. Fix the following sparse warnings: drivers/net/wireless/wl12xx/cmd.c:662:16: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/cmd.c:662:16: expected unsigned short [unsigned] [addressable] [usertype] llc_type drivers/net/wireless/wl12xx/cmd.c:662:16: got restricted __be16 [usertype] drivers/net/wireless/wl12xx/cmd.c:674:17: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/cmd.c:674:17: expected unsigned int [unsigned] [addressable] [usertype] sender_ip drivers/net/wireless/wl12xx/cmd.c:674:17: got restricted __be32 [usertype] ip_addr drivers/net/wireless/wl12xx/rx.c:202:4: warning: incorrect type in argument 3 (different base types) drivers/net/wireless/wl12xx/rx.c:202:4: expected unsigned int [unsigned] [usertype] val drivers/net/wireless/wl12xx/rx.c:202:4: got restricted __le32 [usertype] drivers/net/wireless/wl12xx/acx.c:1247:23: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/acx.c:1247:23: expected restricted __le32 [usertype] ht_capabilites drivers/net/wireless/wl12xx/acx.c:1247:23: got unsigned long drivers/net/wireless/wl12xx/acx.c:1250:24: warning: invalid assignment: |= drivers/net/wireless/wl12xx/acx.c:1250:24: left side has type restricted __le32 drivers/net/wireless/wl12xx/acx.c:1250:24: right side has type unsigned long drivers/net/wireless/wl12xx/acx.c:1253:24: warning: invalid assignment: |= drivers/net/wireless/wl12xx/acx.c:1253:24: left side has type restricted __le32 drivers/net/wireless/wl12xx/acx.c:1253:24: right side has type unsigned long drivers/net/wireless/wl12xx/acx.c:1256:24: warning: invalid assignment: |= drivers/net/wireless/wl12xx/acx.c:1256:24: left side has type restricted __le32 drivers/net/wireless/wl12xx/acx.c:1256:24: right side has type unsigned long Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit f5613ab086c7bee18dd333ef94ce0f0cb6a96fdc Author: Arik Nemtsov Date: Mon May 2 12:41:25 2011 +0800 wl12xx: Add AP related configuration to conf_drv_settings Rate class configuration has been split up for AP and STA modes. Template related configuration likewise separated. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 97e685e321eb23de4e3add8453ede1198f8fcef0 Author: Arik Nemtsov Date: Mon May 2 12:41:26 2011 +0800 wl12xx: AP mode - AP specific CMD_CONFIGURE sub-commands Add AP max retries and rate policy configuration. Rename STA rate policy configuration function. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit ac80f5e522c76635e8d3e86e442ba56f784a115e Author: Arik Nemtsov Date: Mon May 2 12:41:26 2011 +0800 wl12xx: AP mode - add AP specific event Add STA-remove completion event. Unmask it during boot if operating in AP-mode. Ignore unrelated events in AP-mode. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit c106b6871b7204afa657fa3779b7cdc95483dd0a Author: Arik Nemtsov Date: Mon May 2 12:41:27 2011 +0800 wl12xx: AP-mode high level commands Add commands to start/stop BSS, add/remove STA and configure encryption keys. Split the encryption commands "set key" and "set default key" into AP and STA specific versions. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit d8984e96422ca04592dd21f3695d4b0cb36c8642 Author: Arik Nemtsov Date: Mon May 2 12:41:28 2011 +0800 wl12xx: AP mode - workaround for FW bug on station remove Sometimes an event indicating station removal is not sent up by firmware. We work around this by always indicating success in when a wait for the event timeouts. Temporary workaround until a FW fix is introduced. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 476cde42b8045436ecce15499a8cd3faff7954d2 Author: Arik Nemtsov Date: Mon May 2 12:41:29 2011 +0800 wl12xx: AP mode - init sequence Split HW init sequence into AP/STA specific parts The AP specific init sequence includes configuration of templates, rate classes, power mode, etc. Also unmask AP specific events in the event mbox. Separate the differences between AP and STA init into mode specific functions called from wl1271_hw_init. The first is called after radio configuration and the second after memory configuration. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 7abcf14aea25b60744a540d5554d3b844ddaa513 Author: Arik Nemtsov Date: Mon May 2 12:41:29 2011 +0800 wl12xx: AP specific RX filter configuration Set filters according to the mode of operation. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 49ccaa1f6543689769621ee929f2e04d642d9a9d Author: Arik Nemtsov Date: Mon May 2 12:41:30 2011 +0800 wl12xx: Add AP related definitions to HOST-FW interface Change structures in a non-destructive manner. This means no changes in size or location of existing members used by STA. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit a0326527512c73de975bb51bee2424faa3283cbe Author: Arik Nemtsov Date: Mon May 2 12:41:31 2011 +0800 wl12xx: Configure AP on BSS info change Configure AP-specific beacon and probe response templates. Start the AP when beaconing is enabled. The wl1271_bss_info_changed() function has been split into AP/STA specific handlers. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit ca83f99248d8dd7e4db0c1082a8350ee0281303c Author: Arik Nemtsov Date: Mon May 2 12:41:32 2011 +0800 wl12xx: AP mode config in ieee80211_ops.config Separate configuration according to mode. AP has different rate set configuration and no handling of idle-state. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 6307f388a4d684827e5d28fb46f5319a73df3f5b Author: Arik Nemtsov Date: Mon May 2 12:41:32 2011 +0800 wl12xx: AP mode - change filter config Do not configure a group address table in AP mode Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 37cb8c362c918ce2b51762e7f872f864d85c3a16 Author: Arik Nemtsov Date: Mon May 2 12:41:33 2011 +0800 wl12xx: AP mode - add STA add/remove ops Allocate and free host link IDs (HLIDs) for each link. A per-STA data structure keeps the HLID of each STA. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 3c1c93407c32922abfe743a4fcbbb9309972da29 Author: Arik Nemtsov Date: Mon May 2 12:41:34 2011 +0800 wl12xx: AP mode - changes in TX path When in AP mode set appropriate HLID and rate policy for each skb. Respond to supported-rates related changes in op_tx only when acting as STA. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit ee7b44bb2198157489508afe2d850852df4ce11b Author: Arik Nemtsov Date: Mon May 2 12:41:35 2011 +0800 wl12xx: AP mode - record TX configuration settings Record TX configuration settings in the "conf" member of our global structure (struct wl1271) if conf_tx is called when the firmware is not loaded. Later on when the firmware is loaded, we apply the tx conf as part of the init sequence. Important for AP mode since conf_tx is called before add_interface (where the firmware is initialized). Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit bed7957c65febc63d78b6ea9bfecd936ccc0633a Author: Arik Nemtsov Date: Mon May 2 12:41:35 2011 +0800 wl12xx: AP mode - encryption support Encryption key configuration is different for AP/STA modes. AP encryption keys are recorded when the BSS is not started. On BSS start they are propagated to the AP (in wl1271_ap_init_hwenc). Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 11e394b56afb89d7424595dd6d9a6824204c1d5f Author: Arik Nemtsov Date: Mon May 2 12:41:36 2011 +0800 wl12xx: AP mode - fetch appropriate firmware for AP AP and STA modes use different firmwares. Differentiate the firmware files by name and fetch the appropriate one when add_interface is called by mac80211. The STA firmware is chosen for PLT mode. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 634b69591a2a014d21182f89d25e01c5c7679e48 Author: Arik Nemtsov Date: Mon May 2 12:41:37 2011 +0800 wl12xx: Read MAC address from NVS file on HW startup Try to read the MAC address from the on-disk NVS file. A non-zero MAC address is required to add an AP interface. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit df1493882f05081d3123ce25758ddc3f9c524333 Author: Arik Nemtsov Date: Mon May 2 12:41:38 2011 +0800 wl12xx: Enable AP-mode Indicate support for the NL80211_IFTYPE_AP interface mode to enable AP mode operation. Disable 11a when operating in AP-mode (unsupported for now). Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 493f464e41ca9f9a14719f56a8db40a7eee9cf49 Author: Eliad Peller Date: Mon May 2 12:41:38 2011 +0800 wl12xx: don't join upon disassociation wl12xx "rejoins" upon every BSS_CHANGED_BSSID notification. However, there is no need to rejoin after disassociation, so just filter out the case when the new bssid is 00:00:00:00:00:00. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 6ac851151ae5507b652b0ed69f8c6a6b1238f06d Author: Luciano Coelho Date: Mon May 2 12:41:39 2011 +0800 wl12xx: don't modify the global supported band structures When 11a is not supported, we were modifying the global structure that contains the bands supported by the driver. This causes problems when having more one wl12xx device in the same system because they all use the same global. This also causes problems when the wl12xx_sdio module is removed and the wl12xx module remains. Fix this problem by copying the band structure into the wl12xx instance. Reported-by: Arik Nemtsov Reported-by: Johannes Berg Signed-off-by: Luciano Coelho commit bce8c44ef1a85c7292d0a3c50e36e96c69f9abdb Author: Luciano Coelho Date: Mon May 2 12:41:40 2011 +0800 wl12xx: lock the RCU when accessing sta via ieee80211_find_sta() We were calling ieee80211_find_sta() and the sta returned by it without locking the RCU, which is required by mac80211. Fix this and reorganize slightly the area of the code where the sta is used. Reported-by: Jonathan DE CESCO Signed-off-by: Luciano Coelho commit aa3851aa7c1782d5a7d9246a733fae87b775520a Author: Guy Eilam Date: Mon May 2 12:41:41 2011 +0800 wl12xx: change debug_level module param sysfs permissions changed the visibility of the debug_level module parameter in the filesystem to be readable and writable to the root user. It is now accessible under /sys/module/wl12xx/parameters removed the debug_level debugfs file that was created under /sys/kernel/debug/... Signed-off-by: Guy Eilam Signed-off-by: Luciano Coelho commit 252c3b1011c4523875e71464167daea805a773c9 Author: Luciano Coelho Date: Mon May 2 12:41:42 2011 +0800 wl12xx: add hw configuration for max supported AMDPU size The wl12xx chips do the AMDPU aggregation work in the firmware, but it supports a maximum of 8 frames per block. Configure the mac80211 hw structure accordingly. Signed-off-by: Luciano Coelho Tested-by: Juuso Oikarinen commit 55bd4b91e1276e5d7462db271978d47b49982278 Author: Eliad Peller Date: Mon May 2 12:41:42 2011 +0800 wl12xx: fix some endianess bugs pointed out by sparse warnings: CHECK drivers/net/wireless/wl12xx/cmd.c drivers/net/wireless/wl12xx/cmd.c:987:20: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/cmd.c:987:20: expected restricted __le16 [usertype] aging_period drivers/net/wireless/wl12xx/cmd.c:987:20: got int CHECK drivers/net/wireless/wl12xx/tx.c drivers/net/wireless/wl12xx/tx.c:197:2: warning: cast from restricted __le16 drivers/net/wireless/wl12xx/tx.c:197:2: warning: cast from restricted __le16 drivers/net/wireless/wl12xx/tx.c:197:2: warning: cast from restricted __le16 CHECK drivers/net/wireless/wl12xx/acx.c drivers/net/wireless/wl12xx/acx.c:816:23: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/acx.c:816:23: expected restricted __le32 [usertype] rate_policy_idx drivers/net/wireless/wl12xx/acx.c:816:23: got unsigned char [unsigned] [usertype] idx Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit b43f314fff8a42d45df09765590eb3dfda2df015 Author: Juuso Oikarinen Date: Mon May 2 12:41:43 2011 +0800 wl12xx: Cleanup PLT mode when module is removed PLT mode start/stop is controlled from userspace. When removing module, the PLT mode state is however not checked, and not cleared. There is the possibility of some unwanted state to left linger and there is even the possiblity of a kernel crash if for instance IRQ work is running when the module is removed. Fix this by stopping PLT mode on module removal, if still running. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 4e520c7946d7df40b2a40103050f931da5eb5e31 Author: Arik Nemtsov Date: Mon May 2 12:41:44 2011 +0800 wl12xx: add missing MODULE_FIRMWARE statment for AP-mode FW In wl12xx cards AP-mode requires a separate FW file. Add this file to the module info. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit f8e20491c36388adb469b0980eecc38e21dd11c1 Author: Arik Nemtsov Date: Mon May 2 12:41:45 2011 +0800 wl12xx: Add channel 14 to list of supported 2ghz channels Channel 14 is only supported in Japan (JP country code in regdb). The FW limits tranmissions to CCK only on this channel. Tested in both STA and AP modes to work correctly. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit c491e749ffcd4f3d1b0098368b85e55aa6606cbe Author: Levi, Shahar Date: Mon May 2 12:41:46 2011 +0800 wl12xx: BA initiator support Add 80211n BA initiator session support wl1271 driver. Include BA supported FW version auto detection mechanism. BA initiator session management included in FW independently. Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit fdea740dca3930fbeb84dede47bd930c4a77c1a2 Author: Levi, Shahar Date: Mon May 2 12:41:46 2011 +0800 wl12xx: BA receiver support Add new ampdu_action ops to support receiver BA. The BA initiator session management in FW independently. Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 80aee6f2097c6b3bafedee1f87a633186b739573 Author: Eliad Peller Date: Mon May 2 12:41:47 2011 +0800 wl12xx: wrong values are returned in gpio_power_write() Return values were assigned to incorrect var / weren't assigned. fix it, and defer mutex_lock after the sanity checks. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit fb2e2647724f8c3fde34b754b888536932a1222b Author: Juuso Oikarinen Date: Mon May 2 12:41:48 2011 +0800 wl12xx: Increase scan channel dwell time for passive scans The passive scan channel dwell time currently used is 30-60TU. A typical beacon interval for AP's is 100TU. This leads to a ~30% worst-case probability of finding an AP via passive scanning. For 5GHz bands for DFS frequencies passive scanning is the only scanning option. Hence for these, the probability of finding an AP is very low. To fix this, increase the passive channel scan dwell times (also the early leave value, as 5GHz channels are still typically very silent.) Use a value of 100TU, because that covers most typical AP configurations. Based on testing the probability of finding an AP (100TU beacon interval) on a single scan round are as follows (based on 100 iterations): dwell min/max (TU) | probability ---------------------+------------ 30/60 | 35% 60/60 | 56% 80/80 | 77% 100/100 | 100% Total scan times now and after the change: Region | Before (s) | After (s) -------+------------+---------- 00 | 0.77 | 1.48 FI | 0.95 | 2.01 US | 0.91 | 1.76 Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit f0ee8d401d48757228912dbdd5abb024942cb944 Author: Eliad Peller Date: Mon May 2 12:41:49 2011 +0800 wl12xx: disable auto-arp The auto-arp feature sometimes has unexpected side effects (e.g. firmware crashes, no ARP replies, etc.) disable it until it will be solved. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit b9fc4d6daa764b75bc5c5720c26b5159f5f2b720 Author: Luciano Coelho Date: Mon May 2 12:41:49 2011 +0800 wl12xx: fix warning due to missing arg in ampdu_action Commit 0b01f030d38e00650e2db42da083d8647aad40a5 added a new argument to the ampdu_action operation. The ampdu_action operation in the wl12xx driver currently doesn't have that argument and this generates a warning. This happened during merging of the latest mac80211 patches with the wl12xx BA patches. CC [M] drivers/net/wireless/wl12xx/main.o drivers/net/wireless/wl12xx/main.c:3035: warning: initialization from incompatible pointer type The wl12xx driver doesn't need to do anything about the buf_size argument since the AMPDU TX is fully handled by the firmware. Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit dc7026c69658916234431191b80db4ad156277dd Author: Eliad Peller Date: Mon May 2 12:41:50 2011 +0800 wl12xx: mcp2.5 - add config_ps acx mcp2.5 uses this acx to configure the fw only once, rather than passing the params in every enter psm command. Signed-off-by: Eliad Peller Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit a81b885bbb868ed0932a116230c7346e61aedbcb Author: Eliad Peller Date: Mon May 2 12:41:51 2011 +0800 wl12xx: move to new firmware (6.1.3.50.49) This patch adds support for the new wl12xx firmware (Rev 6.1.3.50.49) Since this fw is not backward compatible with previous fw versions, a new fw (with different name) is being fetched. (the patch is big because it contains all the required fw api changes. splitting it into multiple patches will result in corrupted intermediate commits) Signed-off-by: Eliad Peller Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 83f00238a45eebc60a20f77023e963741de6c40b Author: Eliad Peller Date: Mon May 2 12:41:52 2011 +0800 wl12xx: use the conf struct instead of macros for memory configuration make the configuration management more flexible by using the conf struct, rather than predefined macros. Signed-off-by: Eliad Peller Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit fefa994df10c00a1dc14b21f7f4fa9ddc19a1f3a Author: Eliad Peller Date: Mon May 2 12:41:53 2011 +0800 wl12xx: set supported_rates after association Instead of looking for supported_rates change on every tx packet, just extract the supported_rates after association completes (station only). Remove wl1271.sta_rate_set and WL1271_FLAG_STA_RATES_CHANGED which are not used anymore. Signed-off-by: Eliad Peller Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho commit 3bd7190581d674f4d6c91c5f34bb31d2c11d85e9 Author: Randy Dunlap Date: Mon May 2 12:41:53 2011 +0800 wl12xx: fix sdio_test kconfig/build errors The wl12xx sdio_test code uses wl12xx_get_platform_data, which is only present when WL12*_SDIO is enabled, so make WL12XX_SDIO_TEST depend on WL12XX_SDIO so that the needed interface will be present. sdio_test.c:(.devinit.text+0x13178): undefined reference to `wl12xx_get_platform_data' Signed-off-by: Randy Dunlap Cc: Luciano Coelho Cc: Roger Quadros Signed-off-by: John W. Linville commit 030167c44c52ea98b96e1ae6f857e8b9e7a17c28 Author: Dan Carpenter Date: Mon May 2 12:41:54 2011 +0800 wl12xx: change type from u8 to int ret is used to store int types. Using an u8 will break the error handling. Signed-off-by: Dan Carpenter Signed-off-by: Luciano Coelho commit 00414210fb74dd6e9f45254fae495db108a80e86 Author: Gery Kahn Date: Mon May 2 12:41:55 2011 +0800 wl12xx: update PLT initialization for new firmware In revision > 6.1.3.0.0 the firmware expects memory configuration command as part of boot. This was missing if driver boots in PLT mode. The patch adds the memory configuration command, which fixes PLT commands tx continuous and rx statistics. Signed-off-by: Gery Kahn Signed-off-by: Luciano Coelho commit f32b72d02619e12e0be0d6c989df0112d1fa015c Author: Eliad Peller Date: Mon May 2 12:41:56 2011 +0800 wl12xx: fix identification of beacon packets (debug) for debugging purposes, wl12xx determines whether a rx packet is a beacon packet. however, it checks only the frame_control subtype without checking the actual packet type, which leads to false identification in some cases. use ieee80211_is_beacon instead. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit df260d2912c9683f446c977bf9e663193a67ea4d Author: Arik Nemtsov Date: Mon May 2 12:41:57 2011 +0800 wl12xx: avoid blocking while holding rcu lock on bss info change Some blocking functions were called while holding the rcu lock for accessing STA information. This can lead to a deadlock. Save the required info beforehand and release the rcu without blocking. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 3be8655379110ed68473550405fa3df48206b9d4 Author: Luciano Coelho Date: Mon May 2 12:41:57 2011 +0800 wl12xx: fix MODULE_AUTHOR email address Change my old email address to the new one in MODULE_AUTHOR. Signed-off-by: Luciano Coelho commit 91c09707478a3670162801635ea01abf82ebbf7e Author: Eliad Peller Date: Mon May 2 12:41:58 2011 +0800 wl12xx: declare support for IEEE80211_HW_REPORTS_TX_ACK_STATUS The wl12xx fw supports ack status reporting for tx frames, so add the IEEE80211_HW_REPORTS_TX_ACK_STATUS flag to our supported features. Since we do the rate control in the fw, we'll probably want to adjust the STA_LOST_PKT_THRESHOLD heuristics in the future, to account for retransmissions as well. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 40887a71b1efc715bccac6a745cb7981f50e2d03 Author: Eliad Peller Date: Mon May 2 12:41:59 2011 +0800 wl12xx: use standard ALIGN() macro Use the standard ALIGN() macro instead of redefining similar macros. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit d38249a6acb662096d4c829db0d8737122fe96f8 Author: Eliad Peller Date: Mon May 2 12:42:00 2011 +0800 wl12xx: always set mac_address when configuring ht caps The mac_address should be set also when ht caps are disabled. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit abfbf5899986d11726674465aa650cef29965a18 Author: Arik Nemtsov Date: Mon May 2 12:42:00 2011 +0800 wl12xx: fix potential race condition with TX queue watermark Check the conditions for the high/low TX queue watermarks when the spin-lock is taken. This prevents race conditions as tx_queue_count and the flag checked are only modified when the spin-lock is taken. The following race was in mind: - Queues are almost full and wl1271_op_tx() will stop the queues, but it doesn't get the spin-lock yet. - (on another CPU) tx_work_locked() dequeues 15 skbs from this queue and tx_queue_count is updated to reflect this - wl1271_op_tx() does not check tx_queue_count after taking the spin-lock and incorrectly stops the queue. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 59c4451db7828782b7aa38a02c31b5d858d1074c Author: Arik Nemtsov Date: Mon May 2 12:42:01 2011 +0800 wl12xx: AP-mode - fix race condition on sta connection If a sta starts transmitting immediately after authentication, sometimes the FW deauthenticates it. Fix this by marking the sta "in-connection" in FW before sending the autentication response. The "in-connection" entry is automatically removed when connection succeeds or after a timeout. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 3e328183e343091d14d6bf7997022510598fdfb9 Author: Arik Nemtsov Date: Mon May 2 12:42:02 2011 +0800 wl12xx: AP-mode - TX queue per link in AC When operating in AP-mode we require a per link tx-queue. This allows us to implement HW assisted PS mode for links, as well as regulate per-link FW TX blocks consumption. Split each link into ACs to support future QoS for AP-mode. AC queues are emptied in priority and per-link queues are scheduled in a simple round-robin fashion. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 85a6d865eddcc8285becd56d4d55871277e22d0a Author: Arik Nemtsov Date: Mon May 2 12:42:03 2011 +0800 wl12xx: report invalid TX rate when returning non-TX-ed skbs Report a TX rate idx of -1 and count 0 when returning untransmitted skbs to mac80211 using ieee80211_tx_status(). Otherwise mac80211 tries to use the returned (essentially garbage) status. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 0cf255d99fcf01c019de5ff466f3c2241a4bf5e1 Author: Arik Nemtsov Date: Mon May 2 12:42:03 2011 +0800 wl12xx: AP-mode - support HW based link PS monitoring When operating in AP mode the wl1271 hardware filters out null-data packets as well as management packets. This makes it impossible for mac80211 to monitor the PS mode by using the PM bit of incoming frames. Disable mac80211 automatic link PS-mode handling by supporting IEEE80211_HW_AP_LINK_PS in HW flags. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 6f9ecf43f378fc96ab79da6b71155e74bbb25c3b Author: Arik Nemtsov Date: Mon May 2 12:42:04 2011 +0800 wl12xx: AP mode - fix bug in cleanup of wl1271_op_sta_add() Remove an active hlid when chip wakeup fails. In addition rename the involved functions. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit a702a03eef3e9f5b5d940f9766633d6c68c0e2bc Author: Arik Nemtsov Date: Mon May 2 12:42:05 2011 +0800 wl12xx: AP-mode - count free FW TX blocks per link Count the number of FW TX blocks allocated per link. We add blocks to a link counter when allocated for a TX descriptor. We remove blocks according to counters in fw_status indicating the number of freed blocks in FW. These counters are polled after each IRQ. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 290bd79c23303c435e964bc298f60646ec730f7f Author: Arik Nemtsov Date: Mon May 2 12:42:06 2011 +0800 wl12xx: AP-mode - management of links in PS-mode Update the PS mode of each link according to a bitmap polled from fw_status. Manually notify mac80211 about PS mode changes in connected stations. mac80211 will only be notified about PS start when the station is in PS and there is a small number of TX blocks from this link ready in HW. This is required for waking up the remote station since the TIM is updated entirely by FW. When a station enters mac80211-PS-mode, we drop all the skbs in the low-level TX queues belonging to this sta with STAT_TX_FILTERED to keep our queues clean. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 803d8b29d7a9a1804f22ae425ab2bbb1840ba396 Author: Sebastien Jan Date: Mon May 2 12:42:06 2011 +0800 wl12xx: fix the path to the wl12xx firmwares In the linux-firmware git tree, the firmwares and the NVS are inside the ti-connectivity directory. Fix the filenames that the driver looks for accordingly. [Fixed commit message and merged with the latest changes. -- Luca] Signed-off-by: Sebastien Jan Signed-off-by: Luciano Coelho commit 64222b322e54c6e9012240658c13672e8836bd65 Author: Ido Yariv Date: Mon May 2 12:42:07 2011 +0800 wl12xx: Don't rely on runtime PM for toggling power Runtime PM might not always be enabled. Even if it is enabled in the running kernel, it can still be temporarily disabled, for instance during suspend. Runtime PM is opportunistic in nature, and should not be relied on for toggling power. In case the interface is removed and re-added while runtime PM is disabled, the FW will fail to boot, as it is mandatory to toggle power between boots. For instance, this can happen during suspend in case one of the devices fails to suspend before the MMC host suspends, but after mac80211 was suspended. The interface will be removed and reactivated without toggling the power. Fix this by calling mmc_power_save_host/mmc_power_restore_host in wl1271_sdio_power_on/off functions. It will toggle the power to the chip even if runtime PM is disabled. The runtime PM functions should still be called to make sure runtime PM does not opportunistically power the chip off (e.g. after resuming from system suspend). Signed-off-by: Ido Yariv Signed-off-by: Ohad Ben-Cohen Signed-off-by: Luciano Coelho commit 1103e6dd4e3b28e3dd6fffe971645f04af596422 Author: Ido Yariv Date: Mon May 2 12:42:08 2011 +0800 wl12xx: Remove private headers in wl1271_tx_reset Frames in the tx_frames array include extra private headers, which must be removed before passing the skbs to ieee80211_tx_status. Fix this by removing any private headers in wl1271_tx_reset, similar to how this is done in wl1271_tx_complete_packet. Signed-off-by: Ido Yariv Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 417cb2ec8ddc8e70b7aa7a8aa5b9f6bcf4f5d983 Author: Ido Yariv Date: Mon May 2 12:42:09 2011 +0800 wl12xx: Reorder data handling in irq_work The FW has a limited amount of memory for holding frames. In case it runs out of memory reserved for RX frames, it'll have no other choice but to drop packets received from the AP. Thus, it is important to handle RX data interrupts as soon as possible, before handling anything else. In addition, since there are enough TX descriptors to go around, it is better to first send TX frames, and only then handle TX completions. Fix this by changing the order of function calls in wl1271_irq_work. Signed-off-by: Ido Yariv Signed-off-by: Ohad Ben-Cohen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit bd190211eb111c4b65ffb84643fad61ddb8135b3 Author: Ido Yariv Date: Mon May 2 12:42:09 2011 +0800 wl12xx: Do end-of-transactions transfers only if needed On newer hardware revisions, there is no need to write the host's counter at the end of a RX transaction. The same applies to writing the number of packets at the end of a TX transaction. It is generally a good idea to avoid unnecessary SDIO/SPI transfers. Throughput and CPU usage are improved when avoiding these. Send the host's RX counter and the TX packet count only if needed, based on the hardware revision. [Changed WL12XX_QUIRK_END_OF_TRANSACTION to use BIT(0) -- Luca] Signed-off-by: Ido Yariv Signed-off-by: Ohad Ben-Cohen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit ab811915c37380293bf5ebc49e887d1151e6cac1 Author: Ido Yariv Date: Mon May 2 12:42:10 2011 +0800 wl12xx: Change claiming of the SDIO bus The SDIO bus is claimed and released for each SDIO transaction. In addition to the few CPU cycles it takes to claim and release the bus, it may also cause undesired side effects such as the MMC host stopping its internal clocks. Since only the wl12xx_sdio driver drives this SDIO card, it is safe to claim the SDIO host once (on power on), and release it only when turning the power off. This patch was inspired by Juuso Oikarinen's (juuso.oikarinen@nokia.com) patch "wl12xx: Change claiming of the (SDIO) bus". Signed-off-by: Ido Yariv Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit bcf2f8ac19c37b34450c28b89dd6a892269b4cf6 Author: Ido Yariv Date: Mon May 2 12:42:11 2011 +0800 wl12xx: Switch to a threaded interrupt handler To achieve maximal throughput, it is very important to react to interrupts as soon as possible. Currently the interrupt handler wakes up a worker for handling interrupts in process context. A cleaner and more efficient design would be to request a threaded interrupt handler. This handler's priority is very high, and can do blocking operations such as SDIO/SPI transactions. Some work can be deferred, mostly calls to mac80211 APIs (ieee80211_rx_ni and ieee80211_tx_status). By deferring such work to a different worker, we can keep the irq handler thread more I/O responsive. In addition, on multi-core systems the two threads can be scheduled on different cores, which will improve overall performance. The use of WL1271_FLAG_IRQ_PENDING & WL1271_FLAG_IRQ_RUNNING was changed. For simplicity, always query the FW for more pending interrupts. Since there are relatively long bursts of interrupts, the extra FW status read overhead is negligible. In addition, this enables registering the IRQ handler with the ONESHOT option. Signed-off-by: Ido Yariv Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 957ac436498c552b3b7f0f4824da49f5d3128156 Author: Ido Yariv Date: Mon May 2 12:42:12 2011 +0800 wl12xx: Switch to level trigger interrupts The interrupt of the wl12xx is a level interrupt in nature, since the interrupt line is not auto-reset. However, since resetting the interrupt requires bus transactions, this cannot be done from an interrupt context. Thus, requesting a level interrupt would require to disable the irq and re-enable it after the HW is acknowledged. Since we now request a threaded irq, this can also be done by specifying the IRQF_ONESHOT flag. Triggering on an edge can be problematic in some platforms, if the sampling frequency is not sufficient for detecting very frequent interrupts. In case an interrupt is missed, the driver will hang as the interrupt line will stay high until it is acknowledged by the driver, which will never happen. Fix this by requesting a level triggered interrupt, with the IRQF_ONESHOT flag. Signed-off-by: Ido Yariv Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 0d8235b5367dd5605c5bf06a99d6c73736d73607 Author: Ido Yariv Date: Mon May 2 12:42:12 2011 +0800 wl12xx: Avoid redundant TX work TX might be handled in the threaded IRQ handler, in which case, TX work might be scheduled just to discover it has nothing to do. Save a few context switches by cancelling redundant TX work in case TX is about to be handled in the threaded IRQ handler. Also, avoid scheduling TX work from wl1271_op_tx if not needed. Signed-off-by: Ido Yariv Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 4d74ec45745e1a2c0b969a47047df55376fa8214 Author: Ido Yariv Date: Mon May 2 12:42:13 2011 +0800 wl12xx: Modify requested number of memory blocks Tests have shown that the requested number of memory blocks is sub-optimal. Slightly modify the requested number of memory blocks for TX. Signed-off-by: Ido Yariv Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 9acf086b091661007de5221d9a65e733596095aa Author: Arik Nemtsov Date: Mon May 2 12:42:14 2011 +0800 wl12xx: wakeup chip from ELP during scan Commands are sometimes sent to FW on scan completion. Make sure the chip is awake to receive them. Sending commands while the chip is in ELP can cause SDIO read errors and/or crash the FW. Signed-off-by: Arik Nemtsov Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 62ab942eba8de7357eedbc8148d42b8f9f10e7df Author: Helmut Schaa Date: Mon May 2 12:42:15 2011 +0800 wl12xx: Correctly set up protection if non-GF STAs are present Set the gf_protection bit when calling ACX_HT_BSS_OPERATION according to the GF bit passed by mac80211 in ht_operation_mode. [Added a proper commit message -- Luca] Signed-off-by: Helmut Schaa Signed-off-by: Luciano Coelho commit d534bc2f0ff58ad78414b40ee8d20b11a26d6dcf Author: Luciano Coelho Date: Mon May 2 12:42:15 2011 +0800 wl12xx: fix module author's email address in the spi and sdio modules The MODULE_AUTHOR() macro in the main module (wl12xx) has been updated to reflect one of the author's new email address, but the wl12xx_spi and wl12xx_sdio modules haven't been updated. This patches updates them. Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 73cd7d2c6082856853b868adb3f5ee79d1bada0d Author: Luciano Coelho Date: Mon May 2 12:42:16 2011 +0800 wl12xx: add new board_tcxo_clock element to the platform data This new value is a new type of clock setting that is used by wl128x chipsets. Signed-off-by: Luciano Coelho commit b94b53466c7fb32c299f30c9b27557697c752f9b Author: Shahar Levi Date: Mon May 2 12:42:17 2011 +0800 wl12xx: 1281/1283 support - move IRQ polarity In order to prevent overran of IRQ polarity via FW the polarity setting move after FW download and before IRQ enable. Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 0facb1276675eec11c99611b5f07ffa52471b18e Author: Shahar Levi Date: Mon May 2 12:42:18 2011 +0800 wl12xx: 1281/1283 support - Add Definitions Definitions to support wl128x: - New FW file name - Chip ID - New PLL Configuration Algorithm macros that will be used at wl128x boot stage - Rename NVS macro name: wl127x and wl128x are using the same NVS file name. However, the ini parameters between them are different. The driver will validate the correct NVS size in wl1271_boot_upload_nvs(). [Cleaned up some of the definitions. -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 39b210175c89fee4431cee6d9e427c9680ba0240 Author: Shahar Levi Date: Mon May 2 12:42:18 2011 +0800 wl12xx: 1281/1283 support - Add acx commands New acx command that sets: Rx fifo enable reduced bus transactions in RX path. Tx bus transactions padding to SDIO block size that improve preference in Tx and essential for working with SDIO HS (48Mhz). The max SDIO block size is 256 when working with Tx bus transactions padding to SDIO block. Add new ops to SDIO & SPI that handles the win size change in case of transactions padding (relevant only for SDIO). [Fix endianess issues; simplify sdio-specific block_size handling; minor changes in comments; use "aligned_len" in one calculation instead of "pad" to avoid confusion -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 08cab57f687cf6397e6d5cbc3a41b290fde70863 Author: Luciano Coelho Date: Mon May 2 12:42:19 2011 +0800 wl12xx: 1281/1283 support - add block size handling for sdio and spi Add the the set_block_size op in the SDIO and in the SPI modules. Since it is only used with SDIO, just explicitly set the op to NULL in spi.c Signed-off-by: Luciano Coelho commit 5091eecc8bbfee602c37400d45f18a76e0243d04 Author: Shahar Levi Date: Mon May 2 12:42:20 2011 +0800 wl12xx: 1281/1283 support - New radio structs and functions New general and radio parameters structures and functions. Implemented as separate functions due to auto-detection between wl127x and wl128x. Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 43bccffc0a63701a77fe59b7dc81971a17b66a0b Author: Shahar Levi Date: Mon May 2 12:42:21 2011 +0800 wl12xx: 1281/1283 support - Loading FW & NVS Take care of FW & NVS with the auto-detection between wl127x and wl128x. [Moved some common code outside if statements and added notes about NVS structure assumptions; Fixed a bug when checking the nvs size: if the size was incorrect, the local nvs variable was set to NULL, it should be wl->nvs instead. -- Luca] [Merged with potential buffer overflow fix -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 053468772d0f9ec01faa26581e8982fdb0deade6 Author: Shahar Levi Date: Mon May 2 12:42:21 2011 +0800 wl12xx: 1281/1283 support - New boot sequence Boot sequence support FREF clock and TCXO clock. WL128x has two clocks input - TCXO and FREF. TCXO is the main clock of the device, while FREF is used to sync between the GPS and the cellular modem. Auto-detection checks where TCXO is 32.736MHz or 16.368MHz, in that case the FREF will be used as the WLAN/BT main clock. [Use clock enumeration as defined in linux/wl12xx.h; remove unnecessary else block in wl128x_switch_fref; remove unnecessary change in main.c; remove some unnecessary debug prints and comments; fix potential use of uninitialized value (pll_config) -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 09671fd1114c8b3a8b58c7ae7079ef018f6dca6d Author: Shahar Levi Date: Mon May 2 12:42:22 2011 +0800 wl12xx: 1281/1283 support - use dynamic memory for the RX/TX pools Separate the memory configuration to chip-specific structures and implement dynamic memory for wl128x. This feature allows us to move TX memory blocks to the RX pool when the RX path is overloaded. Thanks for Arik Nemtsov for helping simplify the wl1271_fw_status() code. [Rewrote the commit subject and message for clarity; improved some comments and changed "spare" to "padding" for consistency; added a FIXME for the AP memory configuration -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit c4015d0c14b8e6a7ab2a1cb0cfbc05b47c1cbf44 Author: Shahar Levi Date: Mon May 2 12:42:23 2011 +0800 wl12xx: 1281/1283 support - Improve Tx & Rx path Reduced bus transactions in the Tx & Rx path. [Removed unnecessary check wl->chip.id != CHIP_ID_1283_PG20 when checking the quirk -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit f8acf6951de4e3b52f52fc34379c5be3407318d7 Author: Shahar Levi Date: Mon May 2 12:42:24 2011 +0800 wl12xx: 1281/1283 support - Add dummy packet support Support sending dummy packet to wl128x FW as results of dummy packet event. That is part of dynamic TX mem blocks mechanism. Only send dummy packet when not in AP mode. [Even though the DUMMY_PACKET_EVENT_ID and the STA_REMOVE_COMPLETE_EVENT_ID events are defined to the same value, we need to treat them separately in the code. Keep the check and enable STA_REMOVE_COMPLETE_EVENT_ID for AP mode and DUMMY_PACKET_EVENT_ID for STA. Moved one warning to a cleaner place. Use WL1271_TID_MGMT for dummy packets -- Luca] Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit d9fcff1687914f064be981c4fa17ba3cefba4c88 Author: Arik Nemtsov Date: Mon May 2 12:42:24 2011 +0800 wl12xx: 1281/1283 support - Use different FW file for AP mode wl127x/wl128x chips Choose a different FW for AP-mode wl127x and wl128x chips, base on chip ID at boot time. Signed-off-by: Arik Nemtsov Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 2ba9c4b7b2ce37a7b95b32144cc09796a2802a4b Author: Shahar Levi Date: Mon May 2 12:42:25 2011 +0800 wl12xx: 1281/1283 support - enable chip support Add support to wl128x chip via chip id Signed-off-by: Shahar Levi Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 9dce80fa728157dc99deaef86dff969dc928328d Author: Luciano Coelho Date: Mon May 2 12:42:26 2011 +0800 wl12xx: use 1 spare TX block instead of two All the new firmware versions (>=6.1.3.50.58 for STA and >=6.2.0.0.47 for AP) use 1 spare TX block. We still want to support older firmwares that require 2 spare blocks, so added a quirk to handle the difference. Also implemented a generic way of setting quirks that depend on the firmware revision. Signed-off-by: Luciano Coelho commit 047c879e7c151987387fa83fe6bc6a65a3c4bba7 Author: Juuso Oikarinen Date: Mon May 2 12:42:27 2011 +0800 wl12xx: Fix potential incorrect band in rx-status The rx-status passed to mac80211 along with each received frame contains the band on which the frame was received. Under certain circumstances, this band information may be incorrect, causing in worst case a WARNING from mac80211, and causes the received frame to be dropped. This scenario mainly occurs when performing connected-mode scans, when the received scan results are from the other band than the one currently associated to. [Since desc_band doesn't exist anymore, use status->band in the later call to ieee80211_channel_to_frequency() to fix compilation -- Luca] Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit a8faf9629f284057155f9c85677a3d5f98ec7281 Author: Shahar Levi Date: Mon May 2 12:42:27 2011 +0800 wl12xx: Add support for 11n Rx STBC one spatial stream The wl12xx chip supports one Rx STBC spatial stream. Announce this in the HT capabilities info field. Signed-off-by: Shahar Levi Signed-off-by: Luciano Coelho commit ef46b39be6c233d2ac0d9cd880e1afda2b5becb1 Author: Ohad Ben-Cohen Date: Mon May 2 12:42:28 2011 +0800 wl12xx: update bet_max_consecutive Allow early termination of 50 consecutive beacons. This value is the recommended one by the 12xx's system/RF team, and tests show that power consumption is improved as expected. Reported-by: Ruthy Zaphir Tested-by: Danil Shalumov Signed-off-by: Ohad Ben-Cohen Signed-off-by: Luciano Coelho commit 291bd71352119f303d6259dc58127a431462858d Author: Arik Nemtsov Date: Mon May 2 12:42:29 2011 +0800 wl12xx: Clamp byte mode transfers for 128x chips On wl128x based devices, when TX packets are aggregated, each packet size must be aligned to the SDIO block size, and sent using block mode transfers. The block size is set to 256 bytes, which is less than the maximum possible byte transfer. Thus, if two small packets (< 256 bytes) are aggregated, the aggregation buffer size would be 512, and will be sent using byte mode transfers. This can have undesired side effects. Fix this by setting the MMC_QUIRK_BLKSZ_FOR_BYTE_MODE mmc card quirk. For 127x chips this has no effect, as the block size is set to 512 bytes. Signed-off-by: Arik Nemtsov Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 59a81df491fd123de8b5d3a3d3a327d2fcf69cb4 Author: Juuso Oikarinen Date: Mon May 2 12:42:30 2011 +0800 wl12xx: Add mutex protection for interface list The interface list maintained in main.c is not mutex protected. This could cause issues, as the list is accessed from notifier chains. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 7612b5b3d9e40d189612d89257603cd9bb3cb37e Author: Eliad Peller Date: Mon May 2 12:42:30 2011 +0800 wl12xx: set the actual tid instead of the ac When passing a tx frame, the driver incorrectly set desc->tid with the ac instead of the actual tid. It has some serious implications when using 802.11n + QoS, as the fw starts a BlockAck with the wrong tid (which finally cause beacon loss and disconnection / some fw crash) Fix it by using the actual tid stored in skb->priority. Reported-by: Shahar Levi Signed-off-by: Eliad Peller Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho commit 17d13fc4d1e792d0afae7cf0d96112042a337381 Author: Luciano Coelho Date: Mon May 2 12:42:31 2011 +0800 wl12xx: set the skbuff priority for dummy packets The firmware requires dummy packets to be sent using TID 7 (WL1271_TID_MGMT). Instead of hardcoding it in the tx_fill_hdr() function, set it when creating the packet itself. This requires Eliad's fix to set the actual TID in the TX descriptor. Cc: Ido Yariv Signed-off-by: Luciano Coelho commit f983a7767bac65cf78feb17cd21d648513527807 Author: Luciano Coelho Date: Mon May 2 12:42:32 2011 +0800 wl12xx: fix SG BT load value to reflect its new meaning The Soft Gemini BT load ratio value has changed its meaning with FW version 6.1.0.0.310. It now means the passive scan compensation percentage during A2DP EDR. Instead of 50, we need to use 200. Fix the SG configuration accordingly. Signed-off-by: Luciano Coelho commit c8d912a57822ce6b7f242b4b7a3c69227dee0c6e Author: Luciano Coelho Date: Mon May 2 12:42:33 2011 +0800 wl12xx: fix a couple of sparse warnings about undeclared functions Fix the following sparse warnings: drivers/net/wireless/wl12xx/main.c:1129:5: warning: symbol '__wl1271_plt_stop' was not declared. Should it be static? drivers/net/wireless/wl12xx/main.c:2988:5: warning: symbol 'wl1271_op_ampdu_action' was not declared. Should it be static? Both functions should be static. Signed-off-by: Luciano Coelho commit 4ff6d02c50284b3fd4bf92f7be7b75be00efefc0 Author: Luciano Coelho Date: Mon May 2 12:42:33 2011 +0800 wl12xx: use a bitmask instead of list of booleans in scanned_ch We were using an array of booleans to mark the channels we had already scanned. This was causing a sparse error, because bool is not a type with defined size. To fix this, use bitmasks instead, which is much cleaner anyway. Thanks Johannes Berg for the idea. Signed-off-by: Luciano Coelho commit 7f033cf59c5005c012a0f71e47fcdf65f01c5c28 Author: Arik Nemtsov Date: Mon May 2 12:42:34 2011 +0800 wl12xx: configure channel/band while FW is off Initialize the channel and band from mac80211 conf even when the FW is not yet loaded. This mitigates a bug in AP-mode where the channel was never changed from its initial setting after FW boot and was therefore never configured to FW. Reported-by: Alexander Boukaty Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit e2aee203d2fd5a5fb91a0ab2299e7732d3cb812a Author: Eliad Peller Date: Mon May 2 12:42:35 2011 +0800 wl12xx: rearrange some ELP wake_up/sleep calls ELP (Extremely/Enhanced Low Power, or something like that ;)) refers to the powerstate of the 12xx chip, in which very low power is consumed, and no commands (from the host) can be issued until the chip is woken up. Wakeup/sleep commands must be protected by a wl->mutex, so it's generally a good idea to call wakeup/sleep along with the mutex lock/unlock (where needed). However, in some places the wl12xx driver calls wakeup/sleep in some "inner" functions. This result in some "nested" wakeup/sleep calls which might end up letting the chip go to sleep prematurely (e.g. during event handling). Fix it by rearranging the elp calls to come along with mutex_lock/unlock. Signed-off-by: Eliad Peller Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit faff5457a0e9d3cd728a7acb021136324dca990c Author: Juuso Oikarinen Date: Mon May 2 12:42:36 2011 +0800 wl12xx: Handle duplicate calling of remove interface Because of the hardware recovery mechanism, its possible the __wl1271_op_remove_interface is called twice. Currently, this leads to a kernel crash even before a kernel WARNing can be issued. Fix this. Signed-off-by: Juuso Oikarinen Signed-off-by: Luciano Coelho commit bec5d4df8f74c530924b52f453f6fc0a481b1d9b Author: Ohad Ben-Cohen Date: Mon May 2 12:42:37 2011 +0800 wl12xx: fix roaming The wl12xx device normally drops all frames coming from BSSID it is not joined with. This behavior is configured today by the wl12xx driver in response to a handful of ieee80211_bss_change and ieee80211_conf_changed notification flags, such as BSS_CHANGED_ASSOC, BSS_CHANGED_BSSID, IEEE80211_CONF_CHANGE_IDLE, etc.. This breaks when we roam to a new BSSID, where authentication frames are sent before any BSS_CHANGED/CONF_CHANGED flags are received. When this happens the hardware silently drops the authentication responses, and the roaming fails. Ideally this aggressive filtering behavior of the device should be disabled upon a notification from mac80211. Such notification will take place after multi-channel support will be added: mac80211 will likely send a remain-on-channel notification to drivers when entering sensitive states (like authentication), otherwise the firmware might jump to different channels (to serve a different role). Until those notifications materialize, disable the hw BSSID filter when authentication requests are sent, so roaming would work. Signed-off-by: Ohad Ben-Cohen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit c62107b741025f79e58cc430f8a556278ceb2a20 Author: Ohad Ben-Cohen Date: Mon May 2 12:42:37 2011 +0800 wl12xx: fix "JOIN while associated" commentary Issuing multiple JOIN commands to the wl12xx's firmware, while we're associated, might have undesired implications, so the driver prints a message when that happens, and warn developers who check out the source. Update the commentary in order to consider the one valid scenario where this can happen: roaming. Cautiously keep the message for now, until we either gain confidence there are no unintentional JOIN-while-associated events, or until we move to the new multi-role fw who solves this multiple-join issue for good. Signed-off-by: Ohad Ben-Cohen Signed-off-by: Luciano Coelho commit c15cabc1589a3676e5daae32a0e6e1fc7b63eadf Author: Ido Yariv Date: Mon May 2 12:42:38 2011 +0800 wl12xx: Clean up and fix the 128x boot sequence Clean up the boot sequence code & fix the following issues: 1. Always read the registers' values and set the relevant bits instead of zeroing all other bits 2. Handle cases where wl1271_top_reg_read returns an error 3. Verify that the HW can detect the selected clock source 4. Remove 128x PG10 initialization code 5. Configure the MCS PLL to work in HP mode Signed-off-by: Ido Yariv Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 3e9d84cae5c31b45e6754f9602bf8c711fa3a183 Author: Ido Yariv Date: Mon May 2 12:42:39 2011 +0800 wl12xx: Clean up the block size alignment code Simplify and clean up the block size alignment code: 1. Set the block size according to the padding field type, as it cannot exceed the maximum value this field can hold. 2. Move the alignment code into a function instead of duplicating it in multiple places. 3. In the current implementation, the block_size member can be misleading because a zero value actually means that there's no need to align. Declare a block size alignment quirk instead. Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 1cecf9514c85f0aac480bbbe059e25bf623e683a Author: Ido Yariv Date: Mon May 2 12:42:40 2011 +0800 wl12xx: Clean up the dummy packet mechanism The current implementation allocates a skb each time one is requested by the firmware. Since dummy packets are handled differently than regular packets, the skb needs to be marked. Currently, this is done by setting the pkt_type member to 5. This might not be safe, as we cannot be sure that there won't be any other packets with this pkt_type value. Since the packet does not change from one request to another, we can simply allocate a dummy packet template and always send it. All changes to the skb done during packet preparation must be reverted, so the same skb can be reused. The dummy packets are not transmitted, therefore there's no need to set the BSSID or our own MAC address. In addition, the header portion of the packet was zeroed by mistake, so fix that as well. Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 4820d766c93b2dce5477f6fe0f934dba945d9f13 Author: Ido Yariv Date: Mon May 2 12:42:40 2011 +0800 wl12xx: Simplify TX blocks accounting The total number of TX memory blocks may change when the dynamic memory option is enabled. The current implementation only tracks the available memory blocks, which over-complicates TX blocks accounting. By tracking the number of allocated blocks, calculation of the number of available blocks becomes simpler and cleaner. It simply equals the total number of TX memory blocks minus the allocated ones. Also, remove some unnecessary castings and use union member accesses instead. Signed-off-by: Ido Yariv Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit fce4114144db86c450a63386233b34570b72479b Author: Ido Yariv Date: Mon May 2 12:42:41 2011 +0800 wl12xx: Handle platforms without level trigger interrupts Some platforms are incapable of triggering on level interrupts. Add a platform quirks member in the platform data structure, as well as an edge interrupt quirk which can be set on such platforms. When the interrupt is requested with IRQF_TRIGGER_RISING, IRQF_ONESHOT cannot be used, as we might miss interrupts that occur after the FW status is cleared and before the threaded interrupt handler exits. Moreover, when IRQF_ONESHOT is not set, iterating more than once in the threaded interrupt handler introduces a few race conditions between this handler and the hardirq handler. Currently this is worked around by limiting the loop to one iteration only. This workaround has an impact on performance. To remove to this restriction, the race conditions will need to be addressed. Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 35bddef66328fe977a03ec67d2b8b0957ccaef22 Author: Luciano Coelho Date: Mon May 2 12:42:42 2011 +0800 wl12xx: use kstrtoul functions Use the new kstrtoul functions instead of the deprecated strict_strtoul(). Signed-off-by: Luciano Coelho commit bdf94d0d09e669cf1027499fa3b97b711cc17640 Author: Luciano Coelho Date: Mon May 2 12:42:43 2011 +0800 wl12xx: move hardcoded hci_io_ds value into the conf struct Instead of hardcoding the hci_io_ds configuration that we write to the SDIO_IO_DS top registed, read it from the default configuration so that it's easier to change for different platforms. Reported-by: Ido Yariv Signed-off-by: Luciano Coelho commit 299178a30c62008313e8aae9875268fe269f689e Author: Luciano Coelho Date: Mon May 2 12:42:43 2011 +0800 wl12xx: remove unused conf_radio_params structure This structure has not been used anymore since commit e6b190ff3c2f4e4859502c41fa17b5c595e82000. Signed-off-by: Luciano Coelho commit 9d037538caa9e2ab40d76c9e6735b171ce8f7857 Author: Luciano Coelho Date: Mon May 2 12:42:44 2011 +0800 wl12xx: fix sparse warning about undeclared wl12xx_alloc_dummy_packet Fix sparse warning: CHECK drivers/net/wireless/wl12xx/main.c drivers/net/wireless/wl12xx/main.c:1246:17: warning: symbol 'wl12xx_alloc_dummy_packet' was not declared. Should it be static? Signed-off-by: Luciano Coelho commit e4eec9a97555ba03757330ece33fb82649b3b016 Author: Shahar Levi Date: Mon May 2 12:42:45 2011 +0800 wl12xx: Set End-of-transaction Flag at Wl127x AP Mode End-of-transaction flag should be set when working with wl127x chip on AP mode. Thanks Ido Yariv for the guidance with that. Signed-off-by: Shahar Levi Signed-off-by: Luciano Coelho commit 9d7e7acc24370045651cb19a7c71af99c8c22b23 Author: Eliad Peller Date: Mon May 2 12:42:46 2011 +0800 wl12xx: sleep instead of wakeup after tx work commit d05c806 ("wl12xx: rearrange some ELP wake_up/sleep calls") introduced a bug in which wl1271_ps_elp_wakeup() was called instead of wl1271_ps_elp_sleep() after completing the tx work. Reported-by: Arik Nemtsov Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit d7892a1c39866bd56cc584cba1d7ba8c90341529 Author: Eliad Peller Date: Mon May 2 12:42:47 2011 +0800 wl12xx: avoid premature elp entrance The elp_work is being enqueued on wl1271_ps_elp_sleep, but doesn't get cancelled on wl1271_ps_elp_wakeup. This might cause immediate entrance to elp when the wl->mutex is being released, rather than using the delayed enqueueing optimization. Cancel elp_work on wakeup request, and add a new WL1271_FLAG_ELP_REQUESTED flag to further synchronize the elp actions. [Fixed a couple of typos in some comments -- Luca] Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 739e9b2e94de2fa27ca6b76906bf5a03127d0a66 Author: Shahar Levi Date: Mon May 2 12:42:47 2011 +0800 wl12xx: Set correct REF CLK and TCXO CLK values to the FW Fix mismatch between the REF CLK and TCXO CLK information that is set in the platform data and the NVS, so we override what comes from the NVS and replace it with what comes from the platform data. [Small fix in a comment -- Luca] Signed-off-by: Shahar Levi Signed-off-by: Luciano Coelho commit 687be9769e13a60d8c54a3a8825bad0c3f36f14a Author: Eliad Peller Date: Mon May 2 12:42:48 2011 +0800 wl12xx: print actual rx packet size (without padding) When debugging, reduce the padding size from each rx packet, to get the actual packet size (so comparing it against a cap file will be easier) Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit c0b4cf2e7556bb82c71fcd77b4be3b5659286898 Author: Eliad Peller Date: Mon May 2 12:42:49 2011 +0800 wl12xx: avoid redundant join on interface reconfiguration ieee80211_reconfig() sets most of the "changed" flags regardless of the actual change (e.g. BSS_CHANGED_ASSOC will be set even if the interface is still not associated). in this case the driver will issue some unneeded commands. Since the driver relies solely on the BSS_CHANGED_ASSOC flag, without checking if there was an actual change, it will end up issuing unjoin() and dummy_join() commands, although it was never associated and should just remain idle. Avoid it by checking the actual state change, in addition to the "changed" flag. (there seem to be more redundant configuration commands being issued, but they shouldn't harm) Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit f447bbf0019ea4e2b38a94cf27c02e119b775aa2 Author: Eliad Peller Date: Mon May 2 12:42:50 2011 +0800 wl12xx: configure rates when working in ibss mode When working in ibss mode, we don't configure rate policy per station (as we use the same link for multiple stations), so currently the 1mb/s rate is being used. Instead, configure the firmware to use the whole 11b rates by default. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 750f1181d0b13abde4f1c093c297c4cfcf691bcf Author: Shahar Levi Date: Mon May 2 12:42:50 2011 +0800 wl12xx: FM WLAN coexistence Add support to FM WLAN coexistence (STA only). Some WiFi harmonics may interfere with FM operation, to avoid this problem special coexistence techniques are activated around some FM frequencies. Signed-off-by: Shahar Levi Signed-off-by: Luciano Coelho commit 52faeeaac029fb7487b60ffb079ce0c9efbaef60 Author: Arik Nemtsov Date: Mon May 2 12:42:51 2011 +0800 wl12xx: support FW TX inactivity triggers In AP mode we register for the MAX_TX_RETRY and INACTIVE_STA events. Both are reported to the upper layers as a TX failure in the offending stations. In STA mode we register only for the MAX_TX_RETRY event. A TX failure is interpreted as a loss of connection. Support for IEEE80211_HW_REPORTS_TX_ACK_STATUS has been removed to avoid the inherent race condition of a mac80211 TX failure counter in addition to the FW counter. This patch depends on "mac80211: allow low level driver to report packet loss" Signed-off-by: Arik Nemtsov Signed-off-by: John W. Linville commit 4bc1f87991206c629dc145a3670e1862296e81fb Author: Shahar Levi Date: Mon May 2 12:42:52 2011 +0800 wl12xx: Update Power Save Exit Retries Packets Reducing the retries of sending PS exit packets to the peer AP. That fix is to avoid sending unrealizable number of PS exit packets in case of ap lost. Signed-off-by: Shahar Levi Signed-off-by: Luciano Coelho commit c702558a67ca53df0883a1b45421e791ffa95acc Author: Eliad Peller Date: Mon May 2 12:42:53 2011 +0800 wl12xx: add debugfs entries for dtim_interval and beacon_interval When configuring ACX_WAKE_UP_CONDITIONS (before entering psm), we tell the firmware to wake up once in N DTIMs/beacons. Allow control of this value via debugfs (for debugging purposes). Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 719d0395a00351a223a57182f062464395145426 Author: Ido Yariv Date: Mon May 2 12:42:53 2011 +0800 wl12xx: Modify memory configuration for 128x/AP The 128x/AP firmware does not yet support dynamic memory. Temporarily, the memory configuration for the 127x was used both for 127x/AP as well as 128x/AP. Since the two chips don't have the same number of memory blocks, TP was significantly degraded. This hasn't been fine tuned yet, but using the base 128x numbers (without dynamic memory) seems to yield much better results (around 30% more). Additional fine tuning will be required in the future. Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit eadb051fba42541a42b4ba1d7fbdad688c1eb5fa Author: Ido Yariv Date: Mon May 2 12:42:54 2011 +0800 wl12xx: Restart TX when TX descriptors are available The driver stops sending TX packets when either there aren't enough memory blocks, or it runs out of TX descriptors. The driver continues to send packets to the FW only when more memory blocks are available. The FW might free TX descriptors without freeing the corresponding memory blocks, especially when dynamic memory is enabled. In cases where memory blocks are not freed at all, the driver will keep waiting for more memory blocks indefinitely. Fix this by clearing the WL1271_FLAG_FW_TX_BUSY flag when there are available TX descriptors. Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 699e1cacdd0bd4b7869fc22cdc58e92f35b2ca5a Author: Ido Yariv Date: Mon May 2 12:42:55 2011 +0800 wl12xx: Enable dynamic memory for 127x The FW can dynamically manage its internal TX & RX memory pools, moving blocks from one pool to another when necessary. This can significantly improve performance. Currently this feature is enabled only for 128x. Enable dynamic memory for 127x as well. Other parameters in the memory configuration structure may need to be fine tuned, as the optimal values for these may change once dynamic memory is enabled. Signed-off-by: Ido Yariv Signed-off-by: Luciano Coelho commit 549f8b0621b88fac084d241ee026d1f83ee9050a Author: Arik Nemtsov Date: Mon May 2 12:42:56 2011 +0800 wl12xx: implement the tx_frames_pending mac80211 callback Frames are considered pending when they reside in the driver TX queue or already queued in the FW. This notion of "pending" is appropriate for power save considerations in STA mode, but not necessarily in other modes (for instance P2P-GO). [Fixed a sparse warning about missing "static" in a function declaration -- Luca] Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 8e9aa145abea88ae55700c0754794e5daf5d031d Author: Arik Nemtsov Date: Mon May 2 12:42:56 2011 +0800 wl12xx: discard corrupted packets in RX When packets arrive with a RX descriptor indicating corruption, discard them. In general white-list the RX descriptor status to prevent rouge data from being sent up. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 47b230b9b27897ae7c55f9e16618d800e480a996 Author: Hauke Mehrtens Date: Mon May 2 12:42:57 2011 +0800 wl12xx: do not set queue_mapping directly It is preferred to use the setter that to set queue_mapping directly. This also helps backporting in compat-wireless. Signed-off-by: Hauke Mehrtens Signed-off-by: Luciano Coelho commit 0feee712834280f94abca9b29e793a80bcf0560c Author: Luciano Coelho Date: Mon May 2 12:42:58 2011 +0800 wl12xx: strict_stroul introduced converted to kstrtoul One new patch applied added a couple of new strict_strtoul calls. Converted those to kstroul(). Signed-off-by: Luciano Coelho commit 950903b0cbcab05a0ce83afa40fa21ca2e6b6087 Author: Andy Green Date: Mon May 2 12:42:59 2011 +0800 backport fixups for 2.6.38 mac80211 After pulling from wl12xx git HEAD, the following APIs had changed in the 2.6.39-rc5 basis mac80211 at that branch. So these work around the changes in the 8 places. When linux-linaro-2.6.39 comes with new mac80211 this patch can be discarded. Signed-off-by: Andy Green commit 7482b9bc86482f490d812f5c507767cd60bef6a7 Author: Andy Green Date: Mon May 2 12:53:55 2011 +0800 DRIVERS: WLAN: WL12XX provide driver runtime pm idle WL12XX fails to do power management in MMC layer when the last runtime_pm put is done and it calls runtime_pm_idle to indicate the device is not in use. The real reason seems to be to do with the .1 device, SDIO bluetooth, holding open the connection. This works around the problem by forcing power down in a local runtime_idle. Signed-off-by: Andy Green commit fbd46dc5333e0bc45719a7ed38d3411aef7dcd61 Author: Nicolas Pitre Date: Mon May 2 22:27:19 2011 -0400 ARM: zImage: direct comparison with pc is not allowed in Thumb2 mode ... and recent binutils actually enforces it. Signed-off-by: Nicolas Pitre commit 87bf0c5a7e848f0123c980b6799481bc438aee7c Author: Dave Martin Date: Thu May 5 15:43:14 2011 +0100 ARM: Thumb-2: Relax relocation requirements for non-function symbols The "Thumb bit" of a symbol is only really meaningful for function symbols (STT_FUNC). However, sometimes a branch is relocated against a non-function symbol; for example, PC-relative branches to anonymous assembler local symbols are typically fixed up against the start-of-section symbol, which is not a function symbol. Some inline assembler generates references of this type, such as fixup code generated by macros in . The existing relocation code for R_ARM_THM_CALL/R_ARM_THM_JUMP24 interprets this case as an error, because the target symbol appears to be an ARM symbol; but this is really not the case, since the target symbol is just a base in these cases. The addend defines the precise offset to the target location, but since the addend is encoded in a non-interworking Thumb branch instruction, there is no explicit Thumb bit in the addend. Because these instructions never interwork, the implied Thumb bit in the addend is 1, and the destination is Thumb by definition. This patch removes the extraneous Thumb bit check for non-function symbols, enabling modules containing the affected relocation types to be loaded. No modification to the actual relocation code is required, since this code does not take bit[0] of the location->destination offset into account in any case. Function symbols are always checked for interworking conflicts, as before. Signed-off-by: Dave Martin Signed-off-by: Nicolas Pitre commit e626d8673580760344f8278b397a954d4160c9a5 Author: Pawel Moll Date: Fri Mar 11 17:18:07 2011 +0000 mmc: mmci: Add ARM variant with extended FIFO New IO FPGA implementation for Versatile Express boards contain MMCI (PL180) cell with FIFO extended to 128 words (512 bytes). Matt Waddel reports that this patch improves MMC performance on his vexpress system, and also fixes "mmcblk0: error -5 transferring data" errors. Signed-off-by: Pawel Moll Tested-by: Matt Waddel Signed-off-by: Chris Ball (cherry picked from commit 768fbc1876b3239f4c463c00ea1e78725554cf21) commit 0f106b4f7fe6ad697cff5c02f0edd80bb066fabe Author: Sanjeev Premi Date: Wed Apr 13 02:03:13 2011 +0530 omap3: alsa-soc: Remove restrictive checks for cpu type Current checks for cpu type were too restrictive leading to failures for other silicons in same family. The problem was found while testing audio playback on AM37x and AM35x processors. But should exist on OMAP36xx as well. Signed-off-by: Sanjeev Premi Acked-by: Jarkko Nikula Signed-off-by: Nicolas Pitre commit 11d9d0e35ad08fe4d2a59f0ab931ca147649a4eb Author: Rabin Vincent Date: Sat Apr 30 08:29:27 2011 +0000 smsc95xx: fix reset check The reset loop check should check the MII_BMCR register value for BMCR_RESET rather than for MII_BMCR (the register address, which also happens to be zero). Signed-off-by: Rabin Vincent Signed-off-by: David S. Miller (cherry picked from commit d946092000698fd204d82a9d239103c656fb63bf) commit 2b2b095909d79cbc3378dc31d86dec4eb8174504 Author: Frederic Weisbecker Date: Thu Apr 7 16:53:20 2011 +0200 ptrace: Prepare to fix racy accesses on task breakpoints When a task is traced and is in a stopped state, the tracer may execute a ptrace request to examine the tracee state and get its task struct. Right after, the tracee can be killed and thus its breakpoints released. This can happen concurrently when the tracer is in the middle of reading or modifying these breakpoints, leading to dereferencing a freed pointer. Hence, to prepare the fix, create a generic breakpoint reference holding API. When a reference on the breakpoints of a task is held, the breakpoints won't be released until the last reference is dropped. After that, no more ptrace request on the task's breakpoints can be serviced for the tracer. Reported-by: Oleg Nesterov Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Will Deacon Cc: Prasad Cc: Paul Mundt Cc: v2.6.33.. Link: http://lkml.kernel.org/r/1302284067-7860-2-git-send-email-fweisbec@gmail.com (cherry picked from commit bf26c018490c2fce7fe9b629083b96ce0e6ad019) commit 8440c5d50d9cde8c4072771f3e61001db06a3d05 Author: Frederic Weisbecker Date: Fri Apr 8 17:29:36 2011 +0200 arm, hw_breakpoints: Fix racy access to ptrace breakpoints While the tracer accesses ptrace breakpoints, the child task may concurrently exit due to a SIGKILL and thus release its breakpoints at the same time. We can then dereference some freed pointers. To fix this, hold a reference on the child breakpoints before manipulating them. Reported-by: Oleg Nesterov Signed-off-by: Frederic Weisbecker Acked-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Prasad Cc: Paul Mundt Link: http://lkml.kernel.org/r/1302284067-7860-5-git-send-email-fweisbec@gmail.com (cherry picked from commit bf0b8f4b55e591ba417c2dbaff42769e1fc773b0) commit 2a0ee71ab8ac0031939a6d33c3f39139f5ba8c0d Author: Michael Buesch Date: Mon Apr 11 17:00:44 2011 -0400 mmc: omap: Fix possible NULL pointer deref Either OMAP_MMC_STAT_CARD_ERR or OMAP_MMC_STAT_END_OF_CMD might fire if there is no host->cmd pointer. Check for a valid host->cmd pointer before calling mmc_omap_cmd_done(). Signed-off-by: Michael Buesch Acked-by: Tony Lindgren Signed-off-by: Chris Ball (cherry picked from commit f69475142136c8ad9b9c717aea2ff907aed9f863) commit 5e5a24954307095495cd1c1d1306219481faccce Author: Will Deacon Date: Thu Apr 28 18:44:31 2011 +0100 ARM: 6890/1: memmap: only free allocated memmap entries when using SPARSEMEM The SPARSEMEM code allocates memmap entries only for sections which are present (i.e. those which contain some valid memory). The membank checks in free_unused_memmap do not take this into account and can incorrectly attempt to free memory which is not allocated, resulting in a BUG() in the bootmem code. However, if memory is configured as follows: |<----section---->|<----hole---->|<----section---->| +--------+--------+--------------+--------+--------+ | bank 0 | unused | | bank 1 | unused | +--------+--------+--------------+--------+--------+ where a bank only occupies part of a section, the memmap allocated for the remainder of the section *can* be freed. This patch modifies the checks in free_unused_memmap so that only valid memmap entries are considered for removal. Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Russell King (cherry picked from commit 9af386c8dc5a9dce56f36b484647ad6401758c85) commit d4038ce99242cabfc5e3f10394e7f86f7e747352 Author: Catalin Marinas Date: Wed Apr 6 16:18:47 2011 +0100 ARM: 6870/1: The mandatory barrier rmb() must be a dsb() in for device accesses Since mandatory barriers may be used (explicitly or implicitly via readl etc.) to ensure the ordering between Device and Normal memory accesses, a DMB is not enough. This patch converts it to a DSB. Cc: Colin Cross Signed-off-by: Catalin Marinas Signed-off-by: Russell King (cherry picked from commit a904f5f9eb7a55baacb2f4c1423cac8a8eb78a3a) commit a61d5cb72f3c976ac1f5e0b39b33b4ec217c2426 Author: Jassi Brar Date: Tue May 3 12:17:58 2011 +0800 V4L2: OMAP: Make it work for OMAP4 Some logical optimization and redundat checks removed. Signed-off-by: Jassi Brar commit cdd03ee2179d2fa438a98281a441a77fa72771dd Author: Paul Walmsley Date: Tue May 3 12:18:01 2011 +0800 OMAP2+: hwmod: add ability to setup individual hwmods Add omap_hwmod_setup_one(), which is intended for use early in boot to selectively setup the hwmods needed for system clocksources and clockevents, and any other hwmod that is needed in early boot. omap_hwmod_setup_all() can then be called later in the boot process. The point is to minimize the amount of code that needs to be run early. Signed-off-by: Paul Walmsley Cc: Benoît Cousson Cc: Kevin Hilman Cc: Santosh Shilimkar Cc: Tony Lindgren commit c746d7d197c7465beee81be183dc0b5c219b8e79 Author: Senthilvadivu Guruswamy Date: Tue May 3 12:18:04 2011 +0800 OMAP2, 3: DSS2: VENC: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for VENC is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. Also, venc_vdda_dac reading is moved to venc.c. VENC platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit e9c997e03320db8b10d163800bccdee7a960ed13 Author: Senthilvadivu Guruswamy Date: Tue May 3 12:18:07 2011 +0800 OMAP2, 3: DSS2: DSI: create platform_driver, move init, exit to driver Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver for DSI is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. Also, vdds_dsi regulator handling is copied to dsi.c, since vdds_dsi regulator is needed by dpi_init() too. Board files are updated accordingly to add 2 instances of vdds_dsi regulator. DSI platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy Signed-off-by: Sumit Semwal Signed-off-by: Tomi Valkeinen commit 83b5e39b4d67d799be52e9f4f90c07986929fecd Author: Raghuveer Murthy Date: Tue May 3 12:18:10 2011 +0800 OMAP: DSS2: Adding macro for DISPC_DIVISOR register Added macro for DISPC_DIVISOR. This is different from DISPC_DIVISOR1 and DISPC_DIVISOR2. OMAP4 supports all the above 3 registers. DISPC_DIVISOR1 and DISPC_DIVISOR2 registers are accessed through DISPC_DIVISORo(ch) macro Signed-off-by: Raghuveer Murthy commit d00cf79c8a4691c0406a2db57643db856b861fc0 Author: Sebastien Jan Date: Tue May 3 12:18:13 2011 +0800 v4l2: omap: pass debug param to v4l2 framework The omap_vout debug module parameter can be passed to the v4l2 framework. For this, its type has to be extended. Signed-off-by: Sebastien Jan commit 9b97b02e3d7fbd45ccf13cf5577f318644dc91d3 Author: K, Mythri P Date: Tue May 3 12:18:16 2011 +0800 OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA Adding board file structure for display which adds the display structure with HDMI as the default driver when the display init is called. HDMI GPIO configurations are also done in this file. Signed-off-by: Mythri P K Signed-off-by: Sebastien Jan commit f32697546c88f34ec4e490ce1b93fac0c902746a Author: Sebastien Jan Date: Tue May 3 12:18:18 2011 +0800 OMAP4: DSS: add generic notifier mechanism A callback can be registered by the dssdev client in order to be notified of resolution changes, for example an external monitor that is hot-plugged. Multiple clients can now register for notification from one dssdev, and the notification mechanism can be extended in the future to add other events. This is a port of Rob Clark's original patch. Signed-off-by: Sebastien Jan commit 3590438fd5c7f3b301cda61ce3ff8200556a0d02 Author: Sebastien Jan Date: Tue May 3 12:18:21 2011 +0800 OMAP4: OMAPFB: register callback to get notified of resolution change Protect fb_set_var() with console-sem to avoid making console driver unhappy. Supports more than one framebuffer. This is a port from Rob Clark patch. Signed-off-by: Sebastien Jan commit a3d8092fd6c485db31f462bb35731025955909be Author: kishore kadiyala Date: Tue May 3 12:18:24 2011 +0800 OMAP2420: hwmod data: Add HSMMC Update the omap2420 hwmod data with the HSMMC info. Add a device attribute structure which will be used by the host driver to find whether the HSMMC controller supports DUAL VOLT cards. Signed-off-by: Kishore Kadiyala commit 8d1aeed102c91adbcf82baa86f26be31238ea555 Author: Andy Green Date: Tue May 3 12:18:27 2011 +0800 OMAP4: platform devices.c is missing an include of err.h Signed-off-by: Andy Green commit 58918926f47bb20f5e362f543061cc3e2a32520d Author: Andy Green Date: Tue May 3 12:18:30 2011 +0800 OMAP: use correct mmc dev attr name in mmc.h Signed-off-by: Andy Green commit 21a0771ab7b0624a51de260fd19beba13e06fb41 Author: Andy Green Date: Tue May 3 12:18:32 2011 +0800 PANDA only register hdmi if enabled in config Signed-off-by: Andy Green commit d76a59b1e4414586696e29a3e6b4f606865d852d Author: Andy Green Date: Tue May 3 12:18:35 2011 +0800 OMAP2: PANDA: remove wl1271 references as replaced by new stuff in bt patchset Signed-off-by: Andy Green commit 2353c08e01dfedfeb825fe6b7c378fc0a9a10a8b Author: Sebastien Jan Date: Tue May 3 12:18:38 2011 +0800 DSS: fix DVI and DSI concurrent support DSI requires the OMAP2_DSS_USE_DSI_PLL flag to work, and the dummy regulators. The USE_DSI_PLL flag also impacts DPI (for DVI on pandaboard), and currently breaks it. So deactivate the USE_DSI_PLL flag and hack DSI code to enable DSI support. Signed-off-by: Sebastien Jan commit 17fe32fa959d510576cfc4dceda751e85070bb14 Author: Archit Taneja Date: Tue May 3 12:18:41 2011 +0800 OMAP: DSS2: DSI: Introduce sync_vc functions The DSI protocol engine has no interrupt for signalling the end of a Frame transfer. The present approach is to send a BTA after DISPC generates a FRAMEDONE interrupt, and unlock the dsi bus only when the BTA Ack is received. The assumption made with this approach was that OMAP will send a BTA only after the long packet corresponding to the last line is sent. However, it is possible that on the DISPC FRAMEDONE interrupt there are 2 (or more) lines of pixel data in the DSI line buffer. Hence, the BTA Ack could be received for the long packet corresponding to the second last line (or the third last and so on..). Therefore, the current method doesn't ensure that the complete frame data is sent before we start a new transfer. A similar explanation holds valid if we send a BTA in between multiple short/long command packets from the slave port. Introduce dsi_sync_vc functions, based on Tomi Valkeinen's idea, which ensure that the DSI Virtual Channel in use(update_channel) completes its previous work before proceeding to the next Frame/Command. For a frame update, the DSI driver now sends a callback to the Panel Driver on the FRAMEDONE interrupt itself. The callback in the panel driver then unlocks the bus. dsi_sync_vc() functions are placed in dsi_vc_config_l4() and dsi_vc_config_vp() to ensure that the previous task of the Virtual Channel is completed. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen commit 438b6af89efd97a7d218db48508ac228abbddc62 Author: Sebastien Jan Date: Tue May 3 12:18:44 2011 +0800 OMAPFB: re-allocate FB if needed on resize notification Note that re-allocating can fragment vram, so to avoid re-allocation, pre-assign FB size with kernel bootargs like: omapfb.vram=0:8M,1:8M Note: prevent the console accessing the FB while re-allocation is running. Other early FB users would be an issue as well. Signed-off-by: Sebastien Jan commit 6fbf8b2f7e9cb8e833e36345307ec7bbfde879bc Author: Hemant Hariyani Date: Tue May 3 12:18:47 2011 +0800 Kernel changes for hwmod and omap_device initialization for GPU. Change-Id: I4bd96e76af31d0991ce9e67b0c499f0d6f39a1a8 Signed-off-by: Ricardo Salveti de Araujo commit c3e1e8d96688674837a747eabe0d8f93905faeaa Author: Vikram Pandita Date: Tue May 3 12:18:50 2011 +0800 OMAP4: SGX-KM: Enable SGX initialisation Added most of the generic GPU initialisation code to mach-omap2. Change-Id: I90f137c18dcb79aa9b65761147d0aedeed021a27 Signed-off-by: Tony Lofthouse Signed-off-by: Vikram Pandita Signed-off-by: Ricardo Salveti de Araujo commit 631b67dd69b88958f9158749f37d1dba517021af Author: Ricardo Neri Date: Tue May 3 12:18:52 2011 +0800 OMAP4: DSS2: HDMI: Add enums and structures for audio Add enurations and structures for audio configuration. This includes enumerations for the Audio InfoFrame, I2S, audio FIFO and audio core. Signed-off-by: Ricardo Neri commit 41706eb9cf9cb4fc12bf97217b904c868b9041b6 Author: Ricardo Neri Date: Tue May 3 12:18:55 2011 +0800 OMAP4: DSS2: HDMI: Add functionality for audio configuration Add functionality for relevant audio configuration. Functions to configure the audio FIFO and DMA as well as functions for the audio core and Audio Info frame are included. This functionality is to be used by the ASoC HDMI audio codec that is implemented in the following patch. Signed-off-by: Ricardo Neri commit ff7ad047ccbb81a63328ca3a1b4dc569fc5369bc Author: Ricardo Neri Date: Tue May 3 12:18:58 2011 +0800 OMAP4: DSS2: HDMI: Implement ASoC Codec driver for HDMI audio Implement an ASoC Codec Driver to handle audio configuration. The implementation offers an interface for audio configuration and control to be exposed to ALSA while hidding the HDMI details. The ASoC driver supports the Basic Audio configuration as described in CEA-861-D: 2-channel linear PCM with 32, 44.1 and 48kHz sample rates and 16 bits/sample. It additionally supports 24 bit/sample in 32-bit words. Signed-off-by: Ricardo Neri commit 4f4a3e7dff28e5fff544e91a1a91c4895d006bbe Author: Ricardo Neri Date: Tue May 3 12:19:01 2011 +0800 OMAP4: HDMI: Add device for HDMI audio interface to OMAP4 SDP Add platform device for the HHDMI digital audio interface to OMAP4 SDP board. This is for use of the ASoC HDMI CPU DAI driver. Signed-off-by: Ricardo Neri commit 64dcf798ccba42e3fcc49431918411eedf5c86f0 Author: Ricardo Neri Date: Tue May 3 12:19:04 2011 +0800 OMAP4: HDMI: Add device for HDMI audio interface to OMAP4 PANDA Add platform device for the HHDMI digital audio interface to OMAP4 Panda board. This is for use of the ASoC HDMI CPU DAI driver. Signed-off-by: Ricardo Neri commit 24f3ad78a2570372401896459dd1ce3c5ac65211 Author: Ricardo Neri Date: Tue May 3 12:19:06 2011 +0800 ASoC: OMAP: Add CPU DAI driver for HDMI Addition of the HDMI CPU DAI driver for OMAP4. This driver is in charge of configuring DMA settings for HDMI. Also, it finds the HDMI video device and determines if audio playback can proceed. Signed-off-by: Ricardo Neri commit f65770c0ccad4baf51383e0804317137deda06b1 Author: Ricardo Neri Date: Tue May 3 12:19:09 2011 +0800 ASoC: OMAP: Add header for HDMI CPU DAI Add header with definitions for the ASoC HDMI CPU DAI. Signed-off-by: Ricardo Neri commit 7b0e91297e51b7ae88fb7dcf42e21263ec05ed05 Author: Ricardo Neri Date: Tue May 3 12:19:12 2011 +0800 ASoC: OMAP4: Add Machine driver for HDMI for SDP and Panda Add machine driver for HDMI on OMAP4 for SDP and Panda boards. Signed-off-by: Ricardo Neri commit 3a3e9cfb3b247504a690352134a02c8e17e276d8 Author: Ricardo Neri Date: Tue May 3 12:19:14 2011 +0800 ASoC: OMAP: Update Makefile and Kconfig for HDMI audio Update Makefile and Kconfig to build HDMI audio support for OMAP4 SDP and Panda boards. Signed-off-by: Ricardo Neri commit 88954507a5cb9f8679f19167a6dab92219aab534 Author: Ricardo Neri Date: Tue May 3 12:19:17 2011 +0800 ARM: OMAP4: Add base of DSS HDMI L3 interconnect Add base address of L3 interconnect of DSS HDMI. Signed-off-by: Ricardo Neri commit 50aa554329c97e159350bbfeee9b8a192da308b4 Author: Andy Green Date: Tue May 3 12:19:20 2011 +0800 OMAP2: VIDEO: DSS: Use working TI code for HDMI This downgrades the incompatibly uplevelled parts of the OMAP2 DSS stuff to the working HDMI version that TI provided Signed-off-by: Andy Green commit 742b6af87cf0ccc82d08581ce98f9e9fc2ce0de4 Author: Sebastien Jan Date: Tue May 3 12:19:23 2011 +0800 panda: select HDMI as default video output Tested with following kernel command line arguments: vram=32M omapfb.vram=0:8M,1:8M The omapfb.vram is necessary to properly size the FB, else FB are sized for a 640x480 screen, and cannot be properly re-sized afterwards. Signed-off-by: Sebastien Jan commit e51047cdb655ba4f9eedecc72bbbb7add35854c8 Author: Andy Green Date: Tue May 3 12:19:26 2011 +0800 hdmi audio 4430 hdmi device is only audio device Signed-off-by: Andy Green commit 0417d0dbd845ef6166a64df192c0d2fcc218199a Author: Andy Green Date: Tue May 3 12:19:28 2011 +0800 omap4: config: add omap4_defconfig This introduces a defconfig version of Sebastien Jan's reference config for Panda. To use the defconfig, you need to use the following scheme to expand it back to being a full config make ARCH=arm defconfig cat arch/arm/configs/omap4_defconfig >>.config make ARCH=arm oldnoconfig From Seb Jan about the original reference config --> Note on OMAP3 based boards: Deactivate OMAP3 based boards since their support has not been integrated (some boards would not build). Keep OMAP3 and ARCH_3430 because OMAP4 support is not yet properly supported by configuration and dependencies (ex: v4l2, DSI) Signed-off-by: Sebastien Jan Signed-off-by: Andy Green commit af3ac2ca9b3457a23968caa0b4a282ed62dcf82c Author: Andy Green Date: Tue May 3 12:19:31 2011 +0800 hdmi add notification Signed-off-by: Andy Green commit 570cbf4ad895b7d39b97631a348d98b6c5de94ec Author: Ricardo Salveti de Araujo Date: Thu May 5 20:31:29 2011 -0300 OMAP: devices: register first the drm omap device, and then the SGX one Avoid failing to load omap drm module in cases there the hardware doesn't have SGX hwmode description available. Signed-off-by: Ricardo Salveti de Araujo commit f4167754869dd07c9313e754bc4c78afec4d16ad Author: Ricardo Salveti de Araujo Date: Fri May 6 05:13:49 2011 -0300 OMAP: Panda: adding i2c_bus_num to make it work with omap drm driver Signed-off-by: Ricardo Salveti de Araujo commit 6f202d57b83ff3f8860bcf416736e9955ee88f97 Author: Ricardo Salveti de Araujo Date: Mon Apr 4 03:10:04 2011 -0300 OMAP: DSS2: HDMI: Adding get_edid callback support This is a port from Rob Clark patch. Signed-off-by: Ricardo Salveti de Araujo commit 5686410a6094b68aa665a33097aa0f381e2b7125 Author: Ricardo Salveti de Araujo Date: Mon Apr 4 03:11:56 2011 -0300 OMAP: DSS2: HDMI: Adding is_detected callback support This is a port from Rob Clark patch. Signed-off-by: Ricardo Salveti de Araujo commit 3470803999902d75785fb634f4cf8036ab6c2127 Author: Rob Clark Date: Sat Mar 26 16:00:12 2011 -0500 OMAP: DSS: HDMI: tame hdmi driver Main change is to avoid automatically picking timings. Now the driver defaults to a safe 640x480, and leaves it to the upper layer (drm driver) to pick the desired resolution based on what the user selects and the drm infrastucture's parsing of the EDID. Signed-off-by: Ricardo Salveti de Araujo commit 1dfd6553195352c741a50a0a0b3b5d343547c758 Author: John Rigby Date: Tue May 3 15:01:31 2011 -0600 DRM: OMAP: Add HDMI support This is a port from Rob Clark patch. Signed-off-by: Ricardo Salveti de Araujo commit 3e4bac2ebb2c84a4c819a024dd9a3ad175ecde32 Author: Ricardo Salveti de Araujo Date: Thu May 5 02:03:28 2011 -0300 OMAP: DSS2: adding force argument to is_detected() Force is available from (*detect) at drm_connector_funcs, and can be used by the driver to avoid expensive, destructive operations during automated probing. Signed-off-by: Ricardo Salveti de Araujo commit fb884cd44ca187f34e3982216c207e1044f2c883 Author: Ricardo Salveti de Araujo Date: Thu May 5 02:11:04 2011 -0300 OMAP4: DSS2: HDMI: adding a workaround for LG monitors Some monitors report a disconnect just after a connect, so if force is enabled, give some time and check at least one more time. This is a needed workaround to make the driver work with LG monitors. Signed-off-by: Ricardo Salveti de Araujo commit fd21f1db102535853258a0e1a43c00d47daa26ee Author: Ricardo Salveti de Araujo Date: Thu May 5 03:07:37 2011 -0300 OMAP: DSS2: Avoid enabling panel if none is around Signed-off-by: Ricardo Salveti de Araujo commit d109066caae15268722611d99ae5f060d752e0dc Author: Ricardo Salveti de Araujo Date: Thu May 5 03:54:46 2011 -0300 OMAP: I2C: "controller timed out" message should use dev_warn The OMAP DRM driver pools the I2C bus to find if the monitor is connected or not, and also to grab the EDID data from the monitor. Having the timed out messages as an error error doesn't really help, and is quite annoying for the user, so moving it to dev_warn. Signed-off-by: Ricardo Salveti de Araujo commit 6b2ea2506df17fd25443a3fc45218541c7eafad5 Author: Ricardo Salveti de Araujo Date: Thu May 5 21:21:54 2011 -0300 OMAP: DRM: Using same numbers of CRTCS and PIPES for OMAP 3 and 4 So we avoid having on extra vout resource when we enable both ARCH_OMAP3 and ARCH_OMAP4. Signed-off-by: Ricardo Salveti de Araujo commit fafe2ba1bc4774af081272cbf267a7010e6dbf49 Author: Ricardo Salveti de Araujo Date: Fri May 6 00:46:01 2011 -0300 DRM: OMAP: Fixing PVR kernel module name We currently expect it to be "pvrsrvkm" and not "omap_gpu_pvr", so change it to load the correct driver. Signed-off-by: Ricardo Salveti de Araujo commit a44b9cadc66053de09ce4db0040190cb0e9bf695 Author: Ricardo Salveti de Araujo Date: Fri May 6 01:09:41 2011 -0300 OMAP2: DSS: HDMI: removing error msg from check_timing The check_timing call is used to validate the timing before actually appling it, so it's expected to treat unsupported timings. It makes no sense to print an error message for the user saying that the timing could not be applied (it's not even being applied by this function). Signed-off-by: Ricardo Salveti de Araujo commit 756ce3f5d976cf6bade51957aea289ddce4923d3 Author: Ricardo Salveti de Araujo Date: Mon May 16 23:57:33 2011 -0300 DRM: OMAP: replace request_module with request_module_nowait Otherwise it'll hang while trying to identify the DRM cards and loading for the pvrsrvkm module. Signed-off-by: Ricardo Salveti de Araujo commit 51621c1eb7294fd8389dc45ec35e2ee464e6e888 Author: Will Deacon Date: Wed May 18 17:05:11 2011 +0100 ARM: sparsemem: fix highmem detection when using SPARSEMEM sanity_check_meminfo walks over the registered memory banks and attempts to split banks across lowmem and highmem when they would otherwise overlap with the vmalloc space. When SPARSEMEM is used, there are two potential problems that occur when the virtual address of the start of a bank is equal to vmalloc_min. 1.) The end of lowmem is calculated as __pa(vmalloc_min - 1) + 1. In the above scenario, this will give the end address of the previous bank, rather than the actual bank we are interested in. This value is later used as the memblock limit and artificially restricts the total amount of available memory. 2.) The checks to determine whether or not a bank belongs to highmem or not only check if __va(bank->start) is greater or less than vmalloc_min. In the case that it is equal, the bank is incorrectly treated as lowmem, which hoses the vmalloc area. This patch fixes these two problems by checking whether the virtual start address of a bank is >= vmalloc_min and then calculating lowmem_end by finding the virtual end address of the highest lowmem bank. Cc: Russell King Acked-by: Catalin Marinas Signed-off-by: Will Deacon Signed-off-by: Nicolas Pitre commit c5aa2077c8bae6dcb5fc185b029fc084ec4a5202 Author: Laura Abbott Date: Wed May 18 10:33:26 2011 -0700 arm: Add unwinding support for division functions The software division functions never had unwinding annotations added. Currently, when a division by zero occurs the backtrace shown will stop at Ldiv0 or some completely unrelated function. Add unwinding annotations in hopes of getting a more useful backtrace when a division by zero occurs. Signed-off-by: Laura Abbott Tested-by: Dave Martin Signed-off-by: Nicolas Pitre commit 19fe60d2d723c403620caaf297956a3303c5d155 Author: Ricardo Salveti de Araujo Date: Fri Jan 28 02:10:37 2011 -0200 omap3: beaglexm: fix DVI initialization Function beagle_twl_gpio_setup is called after beagle_display_init, what makes lets reset_gpio with an invalid value at the time it request the gpio. As a side effect the DVI reset GPIO is not properly set. Also removing old code that power down DVI in a hardcoded way, as it's not necessary anymore. Tested with Beagle-xM and C4. Signed-off-by: Ricardo Salveti de Araujo commit c635e295e4d49d5d6d224da5b85987aa21603a7c Author: Robert Nelson Date: Tue Apr 26 01:59:58 2011 -0300 omap3: beagle: detect new xM revision B The xM B uses a DM3730 ES1.1 over the ES1.0 on xM A's, no other board changes. BugLink: http://bugs.launchpad.net/bugs/770679 Signed-off-by: Robert Nelson Signed-off-by: Ricardo Salveti de Araujo commit 644e870df08d063705718daef2dfc4cc233c881d Author: Robert Nelson Date: Tue Apr 26 02:09:44 2011 -0300 omap3: beagle: detect new xM revision C Beagle xM rev C has nEN_USB_PWR inverted again, so we need proper check for revision C. BugLink: http://bugs.launchpad.net/bugs/770679 Signed-off-by: Robert Nelson Signed-off-by: Ricardo Salveti de Araujo commit 0ca81733d6335fe29203d7e58fd4d5e5bff2593f Author: Robert Nelson Date: Tue Apr 26 02:12:11 2011 -0300 omap3: beagle: if rev unknown, assume xM revision C BugLink: http://bugs.launchpad.net/bugs/770679 Signed-off-by: Robert Nelson Signed-off-by: Ricardo Salveti de Araujo