GitHub PushEvent at 2014-04-09 17:01:00
Repository: android_kernel_samsung_hlte
Actor: cm-gerrit
Payload: {"shas":[["e5025d32e75888185128d655123f7efc544c612d","ba04796cdc27a78fb5b7ed5fd78046b04268af75@codeaurora.org","mmc: core: enable async suspend\n\nEnables the asynchronous suspend of card and class device.\nThis would enable both these devices to suspend in separate\nrespective threads, thus allowing other devices to suspend\nconcurrently.\n\nCRs-fixed: 634333\nChange-Id: Ic73022ef777b4fae4b1065f92cfa19da51a99634\nSigned-off-by: Asutosh Das <asutoshd@codeaurora.org>","Asutosh Das",true],["28b02de3f936322eb77e45b93166a00dfcb64a5f","ba04796cdc27a78fb5b7ed5fd78046b04268af75@codeaurora.org","mmc: sdhci-msm: enable async suspend\n\nThis is aimed to reduce the suspend time of sdhci-msm device.\nThe suspend of this device would be carried out in a separate\nthread and other devices may suspend concurrently. This is\nrequired since the mmc sub-system contributes to the major\nchunk of suspend latency.\n\nCRs-fixed: 634333\nChange-Id: I7bdead2deacd96aec5201d82b143b07c470b3892\nSigned-off-by: Asutosh Das <asutoshd@codeaurora.org>","Asutosh Das",true],["3530a1944f41ae55991059bf651497e75283c1eb","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Allow option to use strict memblock_reserved memory\n\nDespite all the performance optimizations, some clients are\nstill unable to use CMA because of the allocation latency.\nRather than make those clients use a separate set of APIs,\nextend the CMA code to allow clients to keep the memory out of\nthe buddy allocator. Since the pages never actually go to the\nbuddy allocator, allocation and freeing is only based on the bitmap\nallocator to find the appropriate region.\n\nChange-Id: Ia31bb1212fd7b19280361128453c8d25369ce592\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["90129eb1e949da5f155fabc4327366921f91c76f","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Remove potential deadlock situation\n\nA report was given of a deadlock situation on the cma_mutex:\n\nmutex_lock(cma_mutex)   (*2)\ndma_release_from_contiguous\nion_secure_cma_free_chunk\nion_secure_cma_shrinker\nshrink_slab\ntry_to_free_pages\nmigrate_pages\nalloc_contig_range\nmutex_lock(cma_mutex)  (*1)\ndma_alloc_from_contiguous\nion_alloc\n\nWe may need to free CMA allocations while a current CMA allocation is in\nprogress if CMA is freed from a shrinker. cma_mutex currently protects\ntwo things: the bitmap indicating which pages are allocated/free and\nserialization of isolation/migration calls on allocation. There is\nno need to take the mutex on free calls though as the pages are\nfreed back into the system via the regular __free_page call. Move\nthe free_contig_range call outside the cma_mutex to break the\nchain dependency. We can safely free the pages back into the system\nbefore changing the bitmap without any risk of races.\n\nChange-Id: I4989eb2891e502b08db8117a51bd86652e902778\nCRs-Fixed: 619644\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["df9f22920b08093951e2fdc061c4c49c93d5bd90","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Increase the default number of regions\n\nThe total number of CMA regions that can be created is statically\ndecided at compile time via a config option. Incoming memory map\nchanges increase the number of CMA regions significantly across\nalmost all targets. Rather than make every target set the CONFIG,\njust increase the default number. The additional overhead is very\nsmall.\n\nChange-Id: I2f60ee56b43c256f3bfa4d1e3ab95a8f378568ab\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["ed1ea90c908980adee37aafe83e77f8b2933e59b","3ded2f39a78f0d7044839546f95841842b4d7c96@ideasonboard.com","drivers: cma: Fix wrong CMA selected region size default value\n\nKconfig lists CMA_SIZE_SEL_ABSOLUTE as the default value fo the CMA\nselected region size, but that option isn't available in the defined\nchoices. Set the default to CMA_SIZE_SEL_MBYTES instead.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>","Laurent Pinchart",true],["dfab21185661252a20f675764ea24e72905b0578","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","drivers: Add option to reserve default CMA region\n\nCMA provides good utilization of memory but for some use cases, the\nallocation time is too costly. Add a Kconfig option to allow the\ndefault region to be permanently set aside for contiguous use cases.\n\nChange-Id: I1eef508d37cf6ae3b7b7a652fc59391b186fc122\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["93c6496113861eaff8221ae63b9082f46dbef687","bc08dd6b821ed1cc3641822f9bf2e85bb4fd6e75@gnudd.com","ARM: 7430/1: sizes.h: move from asm-generic to <linux/sizes.h>\n\nsizes.h is used throughout the AMBA code and drivers, so the header\nshould be available to everyone in order to driver AMBA/PrimeCell\nperipherals behind a PCI bridge where the host can be any platform\n(I'm doing it under x86).\n\nAt this step <asm-generic/sizes.h> includes <linux/sizes.h>,\nto allow a grace period for both in-tree and out-of-tree drivers.\n\nSigned-off-by: Alessandro Rubini <rubini@gnudd.com>\nAcked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com>\nAcked-by: Linus Walleij <linus.walleij@linaro.org>\nCc: Alan Cox <alan@linux.intel.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>","Alessandro Rubini",true],["a6677ea9cdacca1325b56bed7f47b78281fce921","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Add support for different size_cells and address_cells\n\nCurrently, the CMA flat device tree code does not take into account\ntargets that may specify size_cells and address_cells > 1. This will\nlead to unsuccessful parsing. Add support for taking into account\nnodes that may specify size_cells and address_cells explicitly.\n\nChange-Id: I9ea63b8c34e903b186c29ec6555dd7a5c317c602\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["ff0b21ea33d490256ec1ac93ee5ab08f69b68481","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Add support for memory limits\n\nCurrently, when dynamically placing regions CMA will allow the memory\nto be placed anywhere, including highmem. Due to system restrictions,\nregions may need to be placed in a smaller range. Add support to\ndevicetree to allow these regions to have an upper bound on where they\nwill be placed.\n\nChange-Id: Ib4ae194cbb6389e1091e7e04cfd331e9ab67ad05\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["fecb90099a77dee2d2758e707af933d3d718aaf6","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: print physical addresses correctly\n\nPhysical addresses can be greater than an unsigned long on\nsystems with LPAE. Print these addresses properly with %pa\n\nChange-Id: If9f1572bb9dadcb14f2834647a4421509e90096a\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["54437caf232ca6b4572ad9b4006b31fa18eb08e6","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Make the default CMA region not reserved by default\n\nDue to a bug in code logic, the default CMA region is\nreserved when CONFIG_CMA_RESERVE_DEFAULT_AREA is NOT set\ninstead of when it is set. Fix this logic.\n\nChange-Id: I476594c1e3745386741f2aba1b978a436b60c7a4\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["95696485ad6c0f0b326f4e8f4205190f02e4af35","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Add support for status in DT nodes\n\nCMA scans the flattened devicetree to reserve memory early. Check\nfor the status of a DT node to possibly skip initialization.\n\nChange-Id: I58760ee5ff241a1ce3a93955b1e507d506f92162\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["e9a144ddce9013181a3894d54eceb37831dffe9c","168a6a722f36cbfb19d9b32bbc952ac3ffb3b983@codeaurora.org","msm: mdss: Allocate fb memory under 4GB physical address space\n\nLinux kernel framework of framebuffer APIs do not support LPAE systems.\nThese APIs are using \"unsigned long\" data type instead of \"phys_addr_t\"\nfor physical addresses which doesn't work with LPAE systems. Until\nframebuffer APIs are fixed, allocate fb memory on MSM chip-sets using\ndma_alloc_coherent and GFP_KERNEL to get the memory from below 4GB\nphysical address space.\n\nChange-Id: Ieca41cae21c956a8b4cf1d5729d287bb0bb30f8d\nSigned-off-by: Ujwal Patel <ujwalp@codeaurora.org>","Ujwal Patel",true],["a6f0d8bc47890e9ac79a27382ba9d65194e5c52f","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","ARM: dts: msm: Move audio heaps over to use reserved CMA regions\n\nCarveout regions are being deprecated. Convert the audio heaps over\nto use a reserved CMA region instead of a carveout. At a later time,\nthe audio regions may be converted over to a fully functional CMA region.\n\nChange-Id: I70d9c671ff118400ee60e669062a7b2092931536\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["8cf0f26fb62c39424482c7437843fd6c2faecb52","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","ARM: dts: msm: Add reservation for framebuffer memory\n\nThe framebuffer needs contiguous memory to work. Add a\ndedicated CMA region for framebuffer. This region is\nspecified with a default size which works for most targets\nand overridden for targets that have a larger screen and\ntherefore require a large framebuffer.\n\nChange-Id: If5f23884f6779ed325be15ee2e16e3bd23ba3698\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["4ba9add3f241c7d3fe03db8a70cc8464ca332e7f","c9fc91b52d462e3771631e64df07f4b9c5f526e8@codeaurora.org","ARM: dts: msm: Update size of modem pil heap\n\nThe modem pil heap size was incorrect. Updating the\nsize to reflect the correct size.\n\nChange-Id: I1ec2a907ec1e1b74e31cbe1c23817b25057237bb\nSigned-off-by: Neeti Desai <neetid@codeaurora.org>","Neeti Desai",true],["4d8b525f51df3deb9d1ee4f164d32b0c1437cad9","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Change to reserve-contiguous-region\n\nCurrently, devices are associated with CMA regions via phandle to the\nCMA region. The phandle name 'linux,contiguous-region' is the same as\nthat which is used to designate a CMA region. This can lead to issues\nof trying to treat a device only using a CMA region as an actual CMA\nregion. Rather than continuing to rely on this handle and the depth\nto differentiate CMA regions, just create separate DT binding\nlinux,reserve-contiguous-region to indicate that the node is\nan actual CMA node for reserving rather than a client referencing\nvia phandle.\n\nChange-Id: I88b2d86054525b0569efc424da87974509ce9b25\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["bf1721648c1e6a356bcb3b6058212ba46434e20b","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","cma: Add support for removed regions\n\nIn addition to reserving memory from the system, there may\nbe uses where memory should be completely removed from control\nof the linux page allocator. Add the appropriate information to\nbe able to remove the memory.\n\nChange-Id: Ia2e959e0858fb240ab5c0deee49b0d6e4aecfc00\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","Laura Abbott",true],["c286972bd6bd738e0514e2f13210543e9b0ea18b","e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","drivers: Add dma-removed dma_ops\n\nThe current set of dma_ops only supports memory that's actually\nbacked by struct pages. In the general case this is what we want,\nbut there are some use cases where it's useful to allocate\nremoved memory through dma APIs (through CMA region for example).\nAdd a limited set of dma operations to accomplish this. This is\nonly the allocate/free version of the APIs which is all that is\nnecessary for these purposes.\n\nChange-Id: I518e6965d63f3c95697f59c089b95219f8e6d96e\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>\n\nARM: DMA mapping: fix bad atomic test\n\nRealview fails to boot with this warning:\nBUG: spinlock lockup suspected on CPU#0, init/1\n lock: 0xcf8bde10, .magic: dead4ead, .owner: init/1, .owner_cpu: 0\nBacktrace:\n[<c00185d8>] (dump_backtrace+0x0/0x10c) from [<c03294e8>] (dump_stack+0x18/0x1c) r6:cf8bde10 r5:cf83d1c0 r4:cf8bde10 r3:cf83d1c0\n[<c03294d0>] (dump_stack+0x0/0x1c) from [<c018926c>] (spin_dump+0x84/0x98)\n[<c01891e8>] (spin_dump+0x0/0x98) from [<c0189460>] (do_raw_spin_lock+0x100/0x198)\n[<c0189360>] (do_raw_spin_lock+0x0/0x198) from [<c032cbac>] (_raw_spin_lock+0x3c/0x44)\n[<c032cb70>] (_raw_spin_lock+0x0/0x44) from [<c01c9224>] (pl011_console_write+0xe8/0x11c)\n[<c01c913c>] (pl011_console_write+0x0/0x11c) from [<c002aea8>] (call_console_drivers.clone.7+0xdc/0x104)\n[<c002adcc>] (call_console_drivers.clone.7+0x0/0x104) from [<c002b320>] (console_unlock+0x2e8/0x454)\n[<c002b038>] (console_unlock+0x0/0x454) from [<c002b8b4>] (vprintk_emit+0x2d8/0x594)\n[<c002b5dc>] (vprintk_emit+0x0/0x594) from [<c0329718>] (printk+0x3c/0x44)\n[<c03296dc>] (printk+0x0/0x44) from [<c002929c>] (warn_slowpath_common+0x28/0x6c)\n[<c0029274>] (warn_slowpath_common+0x0/0x6c) from [<c0029304>] (warn_slowpath_null+0x24/0x2c)\n[<c00292e0>] (warn_slowpath_null+0x0/0x2c) from [<c0070ab0>] (lockdep_trace_alloc+0xd8/0xf0)\n[<c00709d8>] (lockdep_trace_alloc+0x0/0xf0) from [<c00c0850>] (kmem_cache_alloc+0x24/0x11c)\n[<c00c082c>] (kmem_cache_alloc+0x0/0x11c) from [<c00bb044>] (__get_vm_area_node.clone.24+0x7c/0x16c)\n[<c00bafc8>] (__get_vm_area_node.clone.24+0x0/0x16c) from [<c00bb7b8>] (get_vm_area_caller+0x48/0x54)\n[<c00bb770>] (get_vm_area_caller+0x0/0x54) from [<c0020064>] (__alloc_remap_buffer.clone.15+0x38/0xb8)\n[<c002002c>] (__alloc_remap_buffer.clone.15+0x0/0xb8) from [<c0020244>] (__dma_alloc+0x160/0x2c8)\n[<c00200e4>] (__dma_alloc+0x0/0x2c8) from [<c00204d8>] (arm_dma_alloc+0x88/0xa0)[<c0020450>] (arm_dma_alloc+0x0/0xa0) from [<c00beb00>] (dma_pool_alloc+0xcc/0x1a8)\n[<c00bea34>] (dma_pool_alloc+0x0/0x1a8) from [<c01a9d14>] (pl08x_fill_llis_for_desc+0x28/0x568)\n[<c01a9cec>] (pl08x_fill_llis_for_desc+0x0/0x568) from [<c01aab8c>] (pl08x_prep_slave_sg+0x258/0x3b0)\n[<c01aa934>] (pl08x_prep_slave_sg+0x0/0x3b0) from [<c01c9f74>] (pl011_dma_tx_refill+0x140/0x288)\n[<c01c9e34>] (pl011_dma_tx_refill+0x0/0x288) from [<c01ca748>] (pl011_start_tx+0xe4/0x120)\n[<c01ca664>] (pl011_start_tx+0x0/0x120) from [<c01c54a4>] (__uart_start+0x48/0x4c)\n[<c01c545c>] (__uart_start+0x0/0x4c) from [<c01c632c>] (uart_start+0x2c/0x3c)\n[<c01c6300>] (uart_start+0x0/0x3c) from [<c01c795c>] (uart_write+0xcc/0xf4)\n[<c01c7890>] (uart_write+0x0/0xf4) from [<c01b0384>] (n_tty_write+0x1c0/0x3e4)\n[<c01b01c4>] (n_tty_write+0x0/0x3e4) from [<c01acfe8>] (tty_write+0x144/0x240)\n[<c01acea4>] (tty_write+0x0/0x240) from [<c01ad17c>] (redirected_tty_write+0x98/0xac)\n[<c01ad0e4>] (redirected_tty_write+0x0/0xac) from [<c00c371c>] (vfs_write+0xbc/0x150)\n[<c00c3660>] (vfs_write+0x0/0x150) from [<c00c39c0>] (sys_write+0x4c/0x78)\n[<c00c3974>] (sys_write+0x0/0x78) from [<c0014460>] (ret_fast_syscall+0x0/0x3c)\n\nThis happens because the DMA allocation code is not respecting atomic\nallocations correctly.\n\nGFP flags should not be tested for GFP_ATOMIC to determine if an\natomic allocation is being requested.  GFP_ATOMIC is not a flag but\na value.  The GFP bitmask flags are all prefixed with __GFP_.\n\nThe rest of the kernel tests for __GFP_WAIT not being set to indicate\nan atomic allocation.  We need to do the same.\n\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\n\nARM: dma-mapping: Small logical clean up\n\nSkip unnecessary operations if order == 0. A little bit easier to\nread.\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: Refrain noisy console message\n\nWith many IOMMU'able devices, console gets noisy.\n\nTegra30 has a few dozen of IOMMU'able devices.\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: add support for DMA_ATTR_SKIP_CPU_SYNC attribute\n\nThis patch adds support for DMA_ATTR_SKIP_CPU_SYNC attribute for\ndma_(un)map_(single,page,sg) functions family. It lets dma mapping clients\nto create a mapping for the buffer for the given device without performing\na CPU cache synchronization. CPU cache synchronization can be skipped for\nthe buffers which it is known that they are already in 'device' domain (CPU\ncaches have been already synchronized or there are only coherent mappings\nfor the buffer). For advanced users only, please use it with care.\n\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Kyungmin Park <kyungmin.park@samsung.com>\n\nARM: add coherent dma ops\n\narch_is_coherent is problematic as it is a global symbol. This\ndoesn't work for multi-platform kernels or platforms which can support\nper device coherent DMA.\n\nThis adds arm_coherent_dma_ops to be used for devices which connected\ncoherently (i.e. to the ACP port on Cortex-A9 or A15). The arm_dma_ops\nare modified at boot when arch_is_coherent is true.\n\nChange-Id: I5f4f022c9374a6a6ab4e447bb213b3e94e9544ae\nSigned-off-by: Rob Herring <rob.herring@calxeda.com>\nCc: Russell King <linux@arm.linux.org.uk>\nCc: Marek Szyprowski <m.szyprowski@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\ncommon: DMA-mapping: add DMA_ATTR_SKIP_CPU_SYNC attribute\n\nThis patch adds DMA_ATTR_SKIP_CPU_SYNC attribute to the DMA-mapping\nsubsystem.\n\nBy default dma_map_{single,page,sg} functions family transfer a given\nbuffer from CPU domain to device domain. Some advanced use cases might\nrequire sharing a buffer between more than one device. This requires\nhaving a mapping created separately for each device and is usually\nperformed by calling dma_map_{single,page,sg} function more than once\nfor the given buffer with device pointer to each device taking part in\nthe buffer sharing. The first call transfers a buffer from 'CPU' domain\nto 'device' domain, what synchronizes CPU caches for the given region\n(usually it means that the cache has been flushed or invalidated\ndepending on the dma direction). However, next calls to\ndma_map_{single,page,sg}() for other devices will perform exactly the\nsame sychronization operation on the CPU cache. CPU cache sychronization\nmight be a time consuming operation, especially if the buffers are\nlarge, so it is highly recommended to avoid it if possible.\nDMA_ATTR_SKIP_CPU_SYNC allows platform code to skip synchronization of\nthe CPU cache for the given buffer assuming that it has been already\ntransferred to 'device' domain. This attribute can be also used for\ndma_unmap_{single,page,sg} functions family to force buffer to stay in\ndevice domain after releasing a mapping for it. Use this attribute with\ncare!\n\nChange-Id: I0735afb1a22922db459234c60a52812f43d03b5a\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Kyungmin Park <kyungmin.park@samsung.com>\n\nARM: dma-mapping: add support for dma_get_sgtable()\n\nThis patch adds support for dma_get_sgtable() function which is required\nto let drivers to share the buffers allocated by DMA-mapping subsystem.\n\nGeneric implementation based on virt_to_page() is not suitable for ARM\ndma-mapping subsystem.\n\nChange-Id: I34cc245abe7c368d90d429b5b3650f47c9722542\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Kyungmin Park <kyungmin.park@samsung.com>\n\ncommon: dma-mapping: add support for generic dma_mmap_* calls\n\nCommit 9adc5374 ('common: dma-mapping: introduce mmap method') added a\ngeneric method for implementing mmap user call to dma_map_ops structure.\n\nThis patch converts ARM and PowerPC architectures (the only providers of\ndma_mmap_coherent/dma_mmap_writecombine calls) to use this generic\ndma_map_ops based call and adds a generic cross architecture\ndefinition for dma_mmap_attrs, dma_mmap_coherent, dma_mmap_writecombine\nfunctions.\n\nThe generic mmap virt_to_page-based fallback implementation is provided for\narchitectures which don't provide their own implementation for mmap method.\n\nChange-Id: I5e8b74846511e745f0f98a055add06e52ad64c6f\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Kyungmin Park <kyungmin.park@samsung.com>\n\nARM: DMA-Mapping: add function for setting coherent pool size from platform code\n\nSome platforms might require to increase atomic coherent pool to make\nsure that their device will be able to allocate all their buffers from\natomic context. This function can be also used to decrease atomic\ncoherent pool size if coherent allocations are not used for the given\nsub-platform.\n\nChange-Id: I5d272e55fbf0be1c875b8b05b56abe4dd67a95a7\nSuggested-by: Josh Coombs <josh.coombs@gmail.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: remove init_consistent_dma_size() stub\n\nSince commit e9da6e9905e639b0 (\"ARM: dma-mapping: remove custom consistent\ndma region\") setting consistent dma memory size is not longer required. All\ncalls to this function has been already removed, so the\ninit_consistent_dma_size() stub can also be gone.\n\nChange-Id: I2d8cc0915b601e7bd4deb23f0c2e9fb0df1b8d47\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\ncommon: dma-mapping: introduce dma_get_sgtable() function\n\nThis patch adds dma_get_sgtable() function which is required to let\ndrivers to share the buffers allocated by DMA-mapping subsystem. Right\nnow the driver gets a dma address of the allocated buffer and the kernel\nvirtual mapping for it. If it wants to share it with other device (= map\ninto its dma address space) it usually hacks around kernel virtual\naddresses to get pointers to pages or assumes that both devices share\nthe DMA address space. Both solutions are just hacks for the special\ncases, which should be avoided in the final version of buffer sharing.\n\nTo solve this issue in a generic way, a new call to DMA mapping has been\nintroduced - dma_get_sgtable(). It allocates a scatter-list which\ndescribes the allocated buffer and lets the driver(s) to use it with\nother device(s) by calling dma_map_sg() on it.\n\nThis patch provides a generic implementation based on virt_to_page()\ncall. Architectures which require more sophisticated translation might\nprovide their own get_sgtable() methods.\n\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Kyungmin Park <kyungmin.park@samsung.com>\nReviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>\n\nARM: dma-mapping: atomic_pool with struct page **pages\n\nstruct page **pages is necessary to align with non atomic path in\n__iommu_get_pages(). atomic_pool() has the intialized **pages instead\nof just *page.\n\nChange-Id: Ia7a0dc13bb8584c6182dbc311a9777da788e1d5b\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: DMA-mapping: add missing GFP_DMA flag for atomic buffer allocation\n\nAtomic pool should always be allocated from DMA zone if such zone is\navailable in the system to avoid issues caused by limited dma mask of\nany of the devices used for making an atomic allocation.\n\nChange-Id: If6741c60c27cfb6754c441248b8f163a19eb6897\nReported-by: Krzysztof Halasa <khc@pm.waw.pl>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nCc: Stable <stable@vger.kernel.org>\t[v3.6+]\n\nARM: dma-mapping: add support for CMA regions placed in highmem zone\n\nThis patch adds missing pieces to correctly support memory pages served\nfrom CMA regions placed in high memory zones. Please note that the default\nglobal CMA area is still put into lowmem and is limited by optional\narchitecture specific DMA zone. One can however put device specific CMA\nregions in high memory zone to reduce lowmem usage.\n\nChange-Id: Ia19124ea842df45413485fe28db8a32c9529fdb8\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nSigned-off-by: Kyungmin Park <kyungmin.park@samsung.com>\nAcked-by: Michal Nazarewicz <mina86@mina86.com>\n\ncma: use pfn instead of pages for argument passing\n\nThe CMA code is generic enough that it can be expanded out to track\nregions of memory that aren't officially managed by the regular page\nallocator. This memory can't be referenced via struct page. Change the\nCMA apis to track using pfn for allocation/free instead. The pfn can\nbe converted to a struct page as needed elsewhere.\n\nChange-Id: I5ac3fa5e2169b2101a738177f1654faa401f7604\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>\n\nARM: another fix for the DMA mapping checks\n\nPeter reports that OMAP audio broke with the recent fix for these\nchecks, caused by OMAP audio using a long DMA mask.  We should\nallow long DMA masks even with dma_addr_t if we can be sure\nthe amount of RAM we have won't allow the dma_addr_t to\noverflow.  Unfortunately, the checks to detect overflow were not\ncorrect.\n\nChange-Id: I90d92ccf96eea7cad36739022c5179d6b98473de\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nGit-commit: 9f28cde0bc643186d32744ce69d12222e8588fe7\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[ilialin@codeaurora.org: resolve trivial merge conflicts]\nSigned-off-by: Ilia Lin <ilialin@codeaurora.org>\n\nARM: dma-mapping: Allow highmem pages to not have a mapping\n\nThe DMA_ATTR_NO_KERNEL_MAPPING is used to make sure that CMA\npages have no kernel mapping. Add support to make sure that\nhighmem pages have no mapping.\n\nChange-Id: Ife76df126ecfedf0dba81a35e0de8a1787355b3d\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>\n\nARM: dma-mapping: Refactor out to introduce __in_atomic_pool\n\nCheck the given range(\"start\", \"size\") is included in \"atomic_pool\" or not.\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: add support for DMA_ATTR_NO_KERNEL_MAPPING attribute\n\nThis patch adds support for DMA_ATTR_NO_KERNEL_MAPPING attribute for\nIOMMU allocations, what let drivers to save precious kernel virtual\naddress space for large buffers that are intended to be accessed only\nfrom userspace.\n\nThis patch is heavily based on initial work kindly provided by Abhinav\nKochhar <abhinav.k@samsung.com>.\n\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Kyungmin Park <kyungmin.park@samsung.com>\n\nARM: dma-mapping: Introduce __atomic_get_pages() for __iommu_get_pages()\n\nSupport atomic allocation in __iommu_get_pages().\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\n[moved __atomic_get_pages() under #ifdef CONFIG_ARM_DMA_USE_IOMMU\n to avoid unused fuction warning for no-IOMMU case]\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: IOMMU allocates pages from atomic_pool with GFP_ATOMIC\n\nMake use of the same atomic pool as DMA does, and skip a kernel page\nmapping which can involve sleep'able operations at allocating a kernel\npage table.\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: Fix potential memory leak in atomic_pool_init()\n\nWhen either of __alloc_from_contiguous or __alloc_remap_buffer fails\nto provide a valid pointer, allocated memory is freed up and an error\nis returned. 'pages' was however not freed before returning error.\n\nCc: Arnd Bergmann <arnd@arndb.de>\nCc: Marek Szyprowski <m.szyprowski@samsung.com>\nSigned-off-by: Sachin Kamat <sachin.kamat@linaro.org>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: fix atomic allocation alignment\n\nThe alignment mask is calculated incorrectly. Fixing the calculation\nmakes strange hangs/lockups disappear during the boot with Amstrad E3\nand 3.6-rc1 kernel.\n\nSigned-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\narm: mm: fix DMA pool affiliation check\n\nThe __free_from_pool() function was changed in\ne9da6e9905e639b0f842a244bc770b48ad0523e9. Unfortunately, the test that\nchecks whether the provided (start,size) is within the DMA pool has\nbeen improperly modified. It used to be:\n\n  if (start < coherent_head.vm_start || end > coherent_head.vm_end)\n\nWhere coherent_head.vm_end was non-inclusive (i.e, it did not include\nthe first byte after the pool). The test has been changed to:\n\n  if (start < pool->vaddr || start > pool->vaddr + pool->size)\n\nSo now pool->vaddr + pool->size is inclusive (i.e, it includes the\nfirst byte after the pool), so the test should be >= instead of >.\n\nThis bug causes the following message when freeing the *first* DMA\ncoherent buffer that has been allocated, because its virtual address\nis exactly equal to pool->vaddr + pool->size :\n\nWARNING: at /home/thomas/projets/linux-2.6/arch/arm/mm/dma-mapping.c:463 __free_from_pool+0xa4/0xc0()\nfreeing wrong coherent size from pool\n\nSigned-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>\nCc: Marek Szyprowski <m.szyprowski@samsung.com>\nCc: Russell King <linux@arm.linux.org.uk>\nCc: Lior Amsalem <alior@marvell.com>\nCc: Maen Suleiman <maen@marvell.com>\nCc: Tawfik Bayouk <tawfik@marvell.com>\nCc: Shadi Ammouri <shadi@marvell.com>\nCc: Eran Ben-Avi <benavi@marvell.com>\nCc: Yehuda Yitschak <yehuday@marvell.com>\nCc: Nadav Haklai <nadavh@marvell.com>\n[m.szyprowski: rebased onto v3.6-rc5 and resolved conflict]\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: fix build warning in __dma_alloc()\n\nFix build warning in __dma_alloc() as below:\n\narch/arm/mm/dma-mapping.c: In function '__dma_alloc':\narch/arm/mm/dma-mapping.c:653:29: warning: 'page' may be used uninitialized in this function [-Wuninitialized]\n\nSigned-off-by: Jingoo Han <jg1.han@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: use himem for DMA buffers for IOMMU-mapped devices\n\nIOMMU can provide access to any memory page, so there is no point in\nlimiting the allocated pages only to lowmem, once other parts of\ndma-mapping subsystem correctly supports himem pages.\n\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: fix error path for memory allocation failure\n\nThis patch fixes incorrect check in error path. When the allocation of\nfirst page fails, the kernel ops appears due to accessing -1 element of\nthe pages array.\n\nReported-by: Sylwester Nawrocki <s.nawrocki@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: modify condition check while freeing pages\n\nWARNING: at mm/vmalloc.c:1471 __iommu_free_buffer+0xcc/0xd0()\nTrying to vfree() nonexistent vm area (ef095000)\nModules linked in:\n[<c0015a18>] (unwind_backtrace+0x0/0xfc) from [<c0025a94>] (warn_slowpath_common+0x54/0x64)\n[<c0025a94>] (warn_slowpath_common+0x54/0x64) from [<c0025b38>] (warn_slowpath_fmt+0x30/0x40)\n[<c0025b38>] (warn_slowpath_fmt+0x30/0x40) from [<c0016de0>] (__iommu_free_buffer+0xcc/0xd0)\n[<c0016de0>] (__iommu_free_buffer+0xcc/0xd0) from [<c0229a5c>] (exynos_drm_free_buf+0xe4/0x138)\n[<c0229a5c>] (exynos_drm_free_buf+0xe4/0x138) from [<c022b358>] (exynos_drm_gem_destroy+0x80/0xfc)\n[<c022b358>] (exynos_drm_gem_destroy+0x80/0xfc) from [<c0211230>] (drm_gem_object_free+0x28/0x34)\n[<c0211230>] (drm_gem_object_free+0x28/0x34) from [<c0211bd0>] (drm_gem_object_release_handle+0xcc/0xd8)\n[<c0211bd0>] (drm_gem_object_release_handle+0xcc/0xd8) from [<c01abe10>] (idr_for_each+0x74/0xb8)\n[<c01abe10>] (idr_for_each+0x74/0xb8) from [<c02114e4>] (drm_gem_release+0x1c/0x30)\n[<c02114e4>] (drm_gem_release+0x1c/0x30) from [<c0210ae8>] (drm_release+0x608/0x694)\n[<c0210ae8>] (drm_release+0x608/0x694) from [<c00b75a0>] (fput+0xb8/0x228)\n[<c00b75a0>] (fput+0xb8/0x228) from [<c00b40c4>] (filp_close+0x64/0x84)\n[<c00b40c4>] (filp_close+0x64/0x84) from [<c0029d54>] (put_files_struct+0xe8/0x104)\n[<c0029d54>] (put_files_struct+0xe8/0x104) from [<c002b930>] (do_exit+0x608/0x774)\n[<c002b930>] (do_exit+0x608/0x774) from [<c002bae4>] (do_group_exit+0x48/0xb4)\n[<c002bae4>] (do_group_exit+0x48/0xb4) from [<c002bb60>] (sys_exit_group+0x10/0x18)\n[<c002bb60>] (sys_exit_group+0x10/0x18) from [<c000ee80>] (ret_fast_syscall+0x0/0x30)\n\nThis patch modifies the condition while freeing to match the condition\nused while allocation. This fixes the above warning which arises when\narray size is equal to PAGE_SIZE where allocation is done using kzalloc\nbut free is done using vfree.\n\nChange-Id: I4c60aa727cea6b35d10d5b00208bb62f276205db\nSigned-off-by: Prathyush K <prathyush.k@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: Set arm_dma_set_mask() for iommu->set_dma_mask()\n\nstruct dma_map_ops iommu_ops doesn't have ->set_dma_mask, which causes\ncrash when dma_set_mask() is called from some driver.\n\nChange-Id: Ia68590d30f5453104fdcad55d69ae4254e7fb95e\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nRevert \"ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range\"\n\nThis partially reverts commit\n702b94bff3c50542a6e4ab9a4f4cef093262fe65. Some MSM drivers still\nuse the dmac_clean and dmac_inv_range APIs. Bring back the\ndefines and exports for v7 CPUs.\n\nChange-Id: I69017d73da1065a5eeb9c87c899b6a51be5ebfe6\nSigned-off-by: Rohit Vaswani <rvaswani@codeaurora.org\n\nARM: 7479/1: mm: avoid NULL dereference when flushing gate_vma with VIVT caches\n\nThe vivt_flush_cache_{range,page} functions check that the mm_struct\nof the VMA being flushed has been active on the current CPU before\nperforming the cache maintenance.\n\nThe gate_vma has a NULL mm_struct pointer and, as such, will cause a\nkernel fault if we try to flush it with the above operations. This\nhappens during ELF core dumps, which include the gate_vma as it may be\nuseful for debugging purposes.\n\nThis patch adds checks to the VIVT cache flushing functions so that VMAs\nwith a NULL mm_struct are flushed unconditionally (the vectors page may\nbe dirty if we use it to store the current TLS pointer).\n\nCc: <stable@vger.kernel.org> # 3.4+\nReported-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>\nTested-by: Uros Bizjak <ubizjak@gmail.com>\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\n\nARM: Fix bad merge bd1274dc005 (Merge branch 'v6v7' into devel)\n\nCommit 774c096bf9e49 (ARM: v6/v7 cache: allow cache calls to be\noptimized) got dropped when the merge conflicts for moving the contents\nof the files in commit 753790e713d (ARM: move cache/processor/fault\nglue to separate include files) was fixed up in merge bd1274dc005\n(Merge branch 'v6v7' into devel).\n\nThis puts the change back.\n\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\n\n[media] dma-mapping: fix dma_common_get_sgtable() conditional compilation\n\ndma_common_get_sgtable() function doesn't depend on\nARCH_HAS_DMA_DECLARE_COHERENT_MEMORY, so it must not be compiled\nconditionally.\n\nReported-by: Stephen Rothwell <sfr@canb.auug.org.au>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nAcked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>\n\nARM: dma-mapping: Add arm_iommu_detach_device()\n\nA counter part of arm_iommu_attach_device().\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\narm: dma mapping: export arm iommu functions\n\nThis patch adds EXPORT_SYMBOL_GPL calls to the three arm iommu\nfunctions - arm_iommu_create_mapping, arm_iommu_free_mapping\nand arm_iommu_attach_device. These three functions are arm specific\nwrapper functions for creating/freeing/using an iommu mapping and\nthey are called by various drivers. If any of these drivers need\nto be built as dynamic modules, these functions need to be exported.\n\nChangelog v2: using EXPORT_SYMBOL_GPL as suggested by Marek.\n\nSigned-off-by: Prathyush K <prathyush.k@samsung.com>\n[m.szyprowski: extended with recently introduced\n EXPORT_SYMBOL_GPL(arm_iommu_detach_device)]\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: add coherent iommu dma ops\n\nRemove arch_is_coherent() from iommu dma ops and implement separate\ncoherent ops functions.\n\nSigned-off-by: Rob Herring <rob.herring@calxeda.com>\nCc: Russell King <linux@arm.linux.org.uk>\nCc: Marek Szyprowski <m.szyprowski@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: kill off arch_is_coherent\n\nWith ixp2xxx removed, there are no platforms that define arch_is_coherent,\nso the last occurrences of arch_is_coherent can be removed. Any new\nplatform with coherent i/o should use coherent dma mapping functions.\n\nChange-Id: I688c6340134562bd8ef43ec99f599aba357f0c04\nSigned-off-by: Rob Herring <rob.herring@calxeda.com>\nCc: Russell King <linux@arm.linux.org.uk>\nCc: Marek Szyprowski <m.szyprowski@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: Remove unsed var at arm_coherent_iommu_unmap_page\n\nSigned-off-by: Hiroshi Doyu <hdoyu@nvidia.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: mm: Remove unused arm_vmregion priv field\n\nCommit e9da6e9905e639b0f842a244bc770b48ad0523e9 (\"ARM: dma-mapping:\nremove custom consistent dma region\") removed the last users of the\nfield. Remove it.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: add more sanity checks in arm_dma_mmap()\n\nAdd some sanity checks and forbid mmaping of buffers into vma areas larger\nthan allocated dma buffer.\n\nChange-Id: Ie774225f5a030324febef1c7a22ff0ac70575bdb\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: dma-mapping: add support for DMA_ATTR_FORCE_CONTIGUOUS attribute\n\nThis patch adds support for DMA_ATTR_FORCE_CONTIGUOUS attribute for\ndma_alloc_attrs() in IOMMU-aware implementation. For allocating physically\ncontiguous buffers Contiguous Memory Allocator is used.\n\nChange-Id: Id217168bbadb80c1ccececaae30a6781655dc08d\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\n\nARM: ensure vm_struct has its phys_addr member filled in\n\nThis allows /proc/vmallocinfo to show the physical address for\nioremap mappings.\n\nAcked-by: Nicolas Pitre <nico@linaro.org>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>","Laura Abbott",true]],"size":90,"ref":"refs/heads/cm-11.0","head":"972939ced0acf1027662c8868fb85c69d33de452"}