sh: hwblk: Kill off remaining bits of hwblk API.
Paul Mundt [Fri, 18 Nov 2011 07:26:00 +0000 (16:26 +0900)]
Now that everything has been migrated, kill off the remaining
infrastructure bits.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

arch/sh/include/asm/hwblk.h [deleted file]
arch/sh/kernel/cpu/Makefile
arch/sh/kernel/cpu/hwblk.c [deleted file]
arch/sh/kernel/time.c

diff --git a/arch/sh/include/asm/hwblk.h b/arch/sh/include/asm/hwblk.h
deleted file mode 100644 (file)
index 75d50d9..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __ASM_SH_HWBLK_H
-#define __ASM_SH_HWBLK_H
-
-#include <asm/clock.h>
-#include <asm/io.h>
-
-#define HWBLK_CNT_USAGE 0
-#define HWBLK_CNT_IDLE 1
-#define HWBLK_CNT_DEVICES 2
-#define HWBLK_CNT_NR 3
-
-#define HWBLK_AREA_FLAG_PARENT (1 << 0) /* valid parent */
-
-#define HWBLK_AREA(_flags, _parent)            \
-{                                              \
-       .flags = _flags,                        \
-       .parent = _parent,                      \
-}
-
-struct hwblk_area {
-       int cnt[HWBLK_CNT_NR];
-       unsigned char parent;
-       unsigned char flags;
-};
-
-#define HWBLK(_mstp, _bit, _area)              \
-{                                              \
-       .mstp = (void __iomem *)_mstp,          \
-       .bit = _bit,                            \
-       .area = _area,                          \
-}
-
-struct hwblk {
-       void __iomem *mstp;
-       unsigned char bit;
-       unsigned char area;
-       int cnt[HWBLK_CNT_NR];
-};
-
-struct hwblk_info {
-       struct hwblk_area *areas;
-       int nr_areas;
-       struct hwblk *hwblks;
-       int nr_hwblks;
-};
-
-#if !defined(CONFIG_CPU_SUBTYPE_SH7722) && \
-    !defined(CONFIG_CPU_SUBTYPE_SH7723) && \
-    !defined(CONFIG_CPU_SUBTYPE_SH7724)
-/* Should be defined by processor-specific code */
-int arch_hwblk_init(void);
-
-int hwblk_register(struct hwblk_info *info);
-int hwblk_init(void);
-
-void hwblk_enable(struct hwblk_info *info, int hwblk);
-void hwblk_disable(struct hwblk_info *info, int hwblk);
-
-void hwblk_cnt_inc(struct hwblk_info *info, int hwblk, int cnt);
-void hwblk_cnt_dec(struct hwblk_info *info, int hwblk, int cnt);
-
-/* allow clocks to enable and disable hardware blocks */
-#define SH_HWBLK_CLK(_hwblk, _parent, _flags)  \
-[_hwblk] = {                                   \
-       .parent         = _parent,              \
-       .arch_flags     = _hwblk,               \
-       .flags          = _flags,               \
-}
-
-int sh_hwblk_clk_register(struct clk *clks, int nr);
-#else
-#define hwblk_init() 0
-#endif
-#endif /* __ASM_SH_HWBLK_H */
index 5366fdf..fa58bfd 100644 (file)
@@ -19,6 +19,3 @@ obj-$(CONFIG_SH_ADC)          += adc.o
 obj-$(CONFIG_SH_CLK_CPG_LEGACY)        += clock-cpg.o
 
 obj-y  += irq/ init.o clock.o fpu.o proc.o
-ifneq ($(CONFIG_CPU_SUBTYPE_SH7722)$(CONFIG_CPU_SUBTYPE_SH7723)$(CONFIG_CPU_SUBTYPE_SH7724),y)
-obj-y  += hwblk.o
-endif
diff --git a/arch/sh/kernel/cpu/hwblk.c b/arch/sh/kernel/cpu/hwblk.c
deleted file mode 100644 (file)
index 00bab45..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-#include <linux/clk.h>
-#include <linux/compiler.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-#include <asm/suspend.h>
-#include <asm/hwblk.h>
-#include <asm/clock.h>
-
-static DEFINE_SPINLOCK(hwblk_lock);
-
-static void hwblk_area_mod_cnt(struct hwblk_info *info,
-                              int area, int counter, int value, int goal)
-{
-       struct hwblk_area *hap = info->areas + area;
-
-       hap->cnt[counter] += value;
-
-       if (hap->cnt[counter] != goal)
-               return;
-
-       if (hap->flags & HWBLK_AREA_FLAG_PARENT)
-               hwblk_area_mod_cnt(info, hap->parent, counter, value, goal);
-}
-
-
-static int __hwblk_mod_cnt(struct hwblk_info *info, int hwblk,
-                         int counter, int value, int goal)
-{
-       struct hwblk *hp = info->hwblks + hwblk;
-
-       hp->cnt[counter] += value;
-       if (hp->cnt[counter] == goal)
-               hwblk_area_mod_cnt(info, hp->area, counter, value, goal);
-
-       return hp->cnt[counter];
-}
-
-static void hwblk_mod_cnt(struct hwblk_info *info, int hwblk,
-                         int counter, int value, int goal)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&hwblk_lock, flags);
-       __hwblk_mod_cnt(info, hwblk, counter, value, goal);
-       spin_unlock_irqrestore(&hwblk_lock, flags);
-}
-
-void hwblk_cnt_inc(struct hwblk_info *info, int hwblk, int counter)
-{
-       hwblk_mod_cnt(info, hwblk, counter, 1, 1);
-}
-
-void hwblk_cnt_dec(struct hwblk_info *info, int hwblk, int counter)
-{
-       hwblk_mod_cnt(info, hwblk, counter, -1, 0);
-}
-
-void hwblk_enable(struct hwblk_info *info, int hwblk)
-{
-       struct hwblk *hp = info->hwblks + hwblk;
-       unsigned long tmp;
-       unsigned long flags;
-       int ret;
-
-       spin_lock_irqsave(&hwblk_lock, flags);
-
-       ret = __hwblk_mod_cnt(info, hwblk, HWBLK_CNT_USAGE, 1, 1);
-       if (ret == 1) {
-               tmp = __raw_readl(hp->mstp);
-               tmp &= ~(1 << hp->bit);
-               __raw_writel(tmp, hp->mstp);
-       }
-
-       spin_unlock_irqrestore(&hwblk_lock, flags);
-}
-
-void hwblk_disable(struct hwblk_info *info, int hwblk)
-{
-       struct hwblk *hp = info->hwblks + hwblk;
-       unsigned long tmp;
-       unsigned long flags;
-       int ret;
-
-       spin_lock_irqsave(&hwblk_lock, flags);
-
-       ret = __hwblk_mod_cnt(info, hwblk, HWBLK_CNT_USAGE, -1, 0);
-       if (ret == 0) {
-               tmp = __raw_readl(hp->mstp);
-               tmp |= 1 << hp->bit;
-               __raw_writel(tmp, hp->mstp);
-       }
-
-       spin_unlock_irqrestore(&hwblk_lock, flags);
-}
-
-struct hwblk_info *hwblk_info;
-
-int __init hwblk_register(struct hwblk_info *info)
-{
-       hwblk_info = info;
-       return 0;
-}
-
-int __init __weak arch_hwblk_init(void)
-{
-       return 0;
-}
-
-int __init hwblk_init(void)
-{
-       return arch_hwblk_init();
-}
-
-/* allow clocks to enable and disable hardware blocks */
-static int sh_hwblk_clk_enable(struct clk *clk)
-{
-       if (!hwblk_info)
-               return -ENOENT;
-
-       hwblk_enable(hwblk_info, clk->arch_flags);
-       return 0;
-}
-
-static void sh_hwblk_clk_disable(struct clk *clk)
-{
-       if (hwblk_info)
-               hwblk_disable(hwblk_info, clk->arch_flags);
-}
-
-static struct clk_ops sh_hwblk_clk_ops = {
-       .enable         = sh_hwblk_clk_enable,
-       .disable        = sh_hwblk_clk_disable,
-       .recalc         = followparent_recalc,
-};
-
-int __init sh_hwblk_clk_register(struct clk *clks, int nr)
-{
-       struct clk *clkp;
-       int ret = 0;
-       int k;
-
-       for (k = 0; !ret && (k < nr); k++) {
-               clkp = clks + k;
-
-               /* skip over clocks using hwblk 0 (HWBLK_UNKNOWN) */
-               if (!clkp->arch_flags)
-                       continue;
-
-               clkp->ops = &sh_hwblk_clk_ops;
-               ret |= clk_register(clkp);
-       }
-
-       return ret;
-}
index 8a0072d..552c8fc 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/smp.h>
 #include <linux/rtc.h>
 #include <asm/clock.h>
-#include <asm/hwblk.h>
 #include <asm/rtc.h>
 
 /* Dummy RTC ops */
@@ -110,7 +109,6 @@ void __init time_init(void)
        if (board_time_init)
                board_time_init();
 
-       hwblk_init();
        clk_init();
 
        late_time_init = sh_late_time_init;