Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752587Ab2B1GhK (ORCPT ); Tue, 28 Feb 2012 01:37:10 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:37408 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751724Ab2B1GhI (ORCPT ); Tue, 28 Feb 2012 01:37:08 -0500 X-AuditID: cbfee61a-b7b78ae000001ceb-66-4f4c7612b400 Reply-to: pullip.cho@samsung.com From: KyongHo Cho To: linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org Cc: "'Joerg Roedel'" , "'Sanghyun Lee'" , "'Kukjin Kim'" , "'Younglak Kim'" , "'Marek Szyprowski'" , "'Kyungmin Park'" , "'Subash Patel'" Subject: [PATCH v9 0/2] iommu/exynos: Add IOMMU/System MMU driver for Samsung Exynos Date: Tue, 28 Feb 2012 15:37:16 +0900 Organization: Samsung Electronics Co., Ltd Message-id: <001801ccf5e3$69d79860$3d86c920$%cho@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Content-language: ko Thread-index: AczxzGDy6asCBWuSSRqWu8xyxQTsHQEFRunw X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4687 Lines: 106 Changes since v8: - exynos_iommu_map/unmap() just works for the page sizes that System MMU supports. (Joerg's comment) - 1 platform device for 1 H/W though a multimedia accelerator with several System MMUs attached. This make controlling System MMU simpler. - Information between System MMU and the accelerators: Shifted to accelerator's device structure from System MMU's Changes since v7: - Rebased with the recent commits of the following git branches * git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git/next * git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git/for-next - Changed magic numbers into macros - Setting owner of a System MMU in 'iommu' field of dev_archdata - Verbose message in the default fault handler - Some bug fixes. Changes since v6: - Totally rewrite exynos_iommu_map() and exynos_iommu_unmap() according to the change in iommu_map() and iommu_unmap(). - Change special slab for Lv2 page table to kmalloc(). Changes since v5: - Relation between device and a domain become n:1 (Joerg's comment) - Implements iommu_commit(). --> Removed Changes since v4: - exynos_iommu_unmap()returns unmapped size in page order (Ohad Ben-Cohen's comment) - Fixed typo error of resource names - Fixed missing #include in arch/arm/mach-exynos4/mach-armlex4210.c Changes since v3: - Used DEFINE_RES_MEM and DEFINE_RES_IRQ macros to define resources of System MMU (Russell King's comment) - Fixed removal of CONFIG_S5P_SLEEP definition (Sylwester Nawrocki's comment) Changes since v2: - Add lock for System MMU private data. And fixes the following problems pointed by Joerg Rodel: - Fix wrong argument to kmalloc() and get_free_pages() - Merged patches into 2 due to bisectability Changes since v1: Fixes of the following problems pointed by Russell King.: - Missing unlocking a spinlock in exynos_iommu_attach_dev(). - atomic_t -> int in sysmmu_drvdata.activations - sysmmu_platdata -> sysmmu_drvdata - Change in error messages in irq handler - Removed casting in format of error message - omap_iommu_ops -> exynos_iommu_ops in the last patch Patch Summary: [PATCH v8 1/2] ARM: EXYNOS: Change System MMU platform device definitions [PATCH v8 2/2] iommu/exynos: Add iommu driver for Exynos Platforms The first patche enhances System MMU platform device definition: - Removed System MMU for MDMA0 in TOP block because it is not used. Use MDMA2 in LCD block. - Removed System MMU ID. Instead, a System MMU is bound to a device that the System MMU is dedicated during machin initialization. If a device driver wants to handle System MMU, it must bind its device with System MMU with sysmmu_set_owner(). - clkdev The last patch implements IOMMU API: - System MMU device driver is removed from arch/arm/plat-s5p to move it to driver/iommu directory. - Implements IOMMU API and System MMU driver that is moved from arch/arm/plat-s5p. Diffstats: arch/arm/mach-exynos/Kconfig | 11 +- arch/arm/mach-exynos/Makefile | 2 +- arch/arm/mach-exynos/clock-exynos4.c | 74 +- arch/arm/mach-exynos/clock-exynos4.h | 2 + arch/arm/mach-exynos/clock-exynos4210.c | 11 + arch/arm/mach-exynos/clock-exynos4212.c | 28 +- arch/arm/mach-exynos/clock-exynos5.c | 85 ++ arch/arm/mach-exynos/dev-sysmmu.c | 454 ++++++----- arch/arm/mach-exynos/include/mach/irqs.h | 179 ++-- arch/arm/mach-exynos/include/mach/map.h | 38 + arch/arm/mach-exynos/include/mach/memory.h | 1 + arch/arm/mach-exynos/include/mach/regs-clock.h | 5 + arch/arm/mach-exynos/include/mach/regs-sysmmu.h | 28 - arch/arm/mach-exynos/include/mach/sysmmu.h | 83 +- arch/arm/mach-exynos/mach-armlex4210.c | 1 - arch/arm/mach-exynos/mach-smdkv310.c | 1 - arch/arm/plat-s5p/Kconfig | 8 - arch/arm/plat-s5p/Makefile | 1 - arch/arm/plat-s5p/sysmmu.c | 313 ------- arch/arm/plat-samsung/include/plat/devs.h | 1 - arch/arm/plat-samsung/include/plat/sysmmu.h | 95 -- drivers/iommu/Kconfig | 22 + drivers/iommu/Makefile | 1 + drivers/iommu/exynos-iommu.c | 1076 +++++++++++++++++++++++ 24 files changed, 1698 insertions(+), 822 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/