diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2012-04-26 14:18:55 +0300 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-05-14 13:29:10 -0700 |
commit | fa86fff2c8ce7efc0dc66c74bec347f3c513fe8d (patch) | |
tree | 9d0e6273a21f2365354ca92549346e49b9c97133 /arch | |
parent | cf1ed1055ab229b7c306ecab3a69414e960c590c (diff) |
drivers: video: tegra: Implement HOST1X syncpt init
Move initialization for HOST1X sync point irq to nvhost driver.
Bug 871237
Change-Id: I0d31e03b43999c609194665cdcbd2f0e498d848f
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/100250
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/syncpt.c | 100 |
2 files changed, 0 insertions, 101 deletions
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index 96d4667a51be..b1b862ff9376 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile @@ -8,7 +8,6 @@ obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += common-t2.o obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += common-t3.o obj-y += io.o obj-y += irq.o -obj-$(CONFIG_TEGRA_GRHOST) += syncpt.o obj-y += clock.o obj-y += clock-common.o obj-y += timer.o diff --git a/arch/arm/mach-tegra/syncpt.c b/arch/arm/mach-tegra/syncpt.c deleted file mode 100644 index 8ebab3801a8a..000000000000 --- a/arch/arm/mach-tegra/syncpt.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2010 Google, Inc. - * - * Author: - * Erik Gilling <konkers@google.com> - * - * Copyright (C) 2010, NVIDIA Corporation - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/interrupt.h> -#include <linux/irq.h> -#include <linux/io.h> - -#include <asm/mach/irq.h> - -#include <mach/iomap.h> -#include <mach/irqs.h> - -#define HOST1X_SYNC_OFFSET 0x3000 -#define HOST1X_SYNC_SIZE 0x800 -enum { - HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS = 0x40, - HOST1X_SYNC_SYNCPT_THRESH_INT_DISABLE = 0x60 -}; - -static void syncpt_thresh_mask(struct irq_data *data) -{ - (void)data; -} - -static void syncpt_thresh_unmask(struct irq_data *data) -{ - (void)data; -} - -static void syncpt_thresh_cascade(unsigned int irq, struct irq_desc *desc) -{ - void __iomem *sync_regs = irq_desc_get_handler_data(desc); - unsigned long reg; - int id; - struct irq_chip *chip = irq_desc_get_chip(desc); - - chained_irq_enter(chip, desc); - - reg = readl(sync_regs + HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS); - - for_each_set_bit(id, ®, 32) - generic_handle_irq(id + INT_SYNCPT_THRESH_BASE); - - chained_irq_exit(chip, desc); -} - -static struct irq_chip syncpt_thresh_irq = { - .name = "syncpt", - .irq_mask = syncpt_thresh_mask, - .irq_unmask = syncpt_thresh_unmask -}; - -static int __init syncpt_init_irq(void) -{ - void __iomem *sync_regs; - unsigned int i; - int irq; - - sync_regs = ioremap(TEGRA_HOST1X_BASE + HOST1X_SYNC_OFFSET, - HOST1X_SYNC_SIZE); - BUG_ON(!sync_regs); - - writel(0xffffffffUL, - sync_regs + HOST1X_SYNC_SYNCPT_THRESH_INT_DISABLE); - writel(0xffffffffUL, - sync_regs + HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS); - - for (i = 0; i < INT_SYNCPT_THRESH_NR; i++) { - irq = INT_SYNCPT_THRESH_BASE + i; - irq_set_chip_and_handler(irq, &syncpt_thresh_irq, - handle_simple_irq); - irq_set_chip_data(irq, sync_regs); - set_irq_flags(irq, IRQF_VALID); - } - irq_set_chained_handler(INT_HOST1X_MPCORE_SYNCPT, - syncpt_thresh_cascade); - irq_set_handler_data(INT_HOST1X_MPCORE_SYNCPT, sync_regs); - - return 0; -} - -core_initcall(syncpt_init_irq); |