Commit 6bff5474 authored by Tony Lindgren's avatar Tony Lindgren

Merge branch 'hwmod-cleanup' into omap-for-v4.12/soc

parents 342bef7c 3cdf2f80
...@@ -138,7 +138,6 @@ ...@@ -138,7 +138,6 @@
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/bootmem.h>
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/of_address.h>
...@@ -216,48 +215,11 @@ static LIST_HEAD(omap_hwmod_list); ...@@ -216,48 +215,11 @@ static LIST_HEAD(omap_hwmod_list);
/* mpu_oh: used to add/remove MPU initiator from sleepdep list */ /* mpu_oh: used to add/remove MPU initiator from sleepdep list */
static struct omap_hwmod *mpu_oh; static struct omap_hwmod *mpu_oh;
/*
* linkspace: ptr to a buffer that struct omap_hwmod_link records are
* allocated from - used to reduce the number of small memory
* allocations, which has a significant impact on performance
*/
static struct omap_hwmod_link *linkspace;
/*
* free_ls, max_ls: array indexes into linkspace; representing the
* next free struct omap_hwmod_link index, and the maximum number of
* struct omap_hwmod_link records allocated (respectively)
*/
static unsigned short free_ls, max_ls, ls_supp;
/* inited: set to true once the hwmod code is initialized */ /* inited: set to true once the hwmod code is initialized */
static bool inited; static bool inited;
/* Private functions */ /* Private functions */
/**
* _fetch_next_ocp_if - return the next OCP interface in a list
* @p: ptr to a ptr to the list_head inside the ocp_if to return
* @i: pointer to the index of the element pointed to by @p in the list
*
* Return a pointer to the struct omap_hwmod_ocp_if record
* containing the struct list_head pointed to by @p, and increment
* @p such that a future call to this routine will return the next
* record.
*/
static struct omap_hwmod_ocp_if *_fetch_next_ocp_if(struct list_head **p,
int *i)
{
struct omap_hwmod_ocp_if *oi;
oi = list_entry(*p, struct omap_hwmod_link, node)->ocp_if;
*p = (*p)->next;
*i = *i + 1;
return oi;
}
/** /**
* _update_sysc_cache - return the module OCP_SYSCONFIG register, keep copy * _update_sysc_cache - return the module OCP_SYSCONFIG register, keep copy
* @oh: struct omap_hwmod * * @oh: struct omap_hwmod *
...@@ -794,15 +756,10 @@ static int _init_main_clk(struct omap_hwmod *oh) ...@@ -794,15 +756,10 @@ static int _init_main_clk(struct omap_hwmod *oh)
static int _init_interface_clks(struct omap_hwmod *oh) static int _init_interface_clks(struct omap_hwmod *oh)
{ {
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p;
struct clk *c; struct clk *c;
int i = 0;
int ret = 0; int ret = 0;
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
if (!os->clk) if (!os->clk)
continue; continue;
...@@ -905,19 +862,13 @@ static void _disable_optional_clocks(struct omap_hwmod *oh) ...@@ -905,19 +862,13 @@ static void _disable_optional_clocks(struct omap_hwmod *oh)
static int _enable_clocks(struct omap_hwmod *oh) static int _enable_clocks(struct omap_hwmod *oh)
{ {
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p;
int i = 0;
pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name); pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name);
if (oh->_clk) if (oh->_clk)
clk_enable(oh->_clk); clk_enable(oh->_clk);
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE)) if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE))
clk_enable(os->_clk); clk_enable(os->_clk);
} }
...@@ -939,19 +890,13 @@ static int _enable_clocks(struct omap_hwmod *oh) ...@@ -939,19 +890,13 @@ static int _enable_clocks(struct omap_hwmod *oh)
static int _disable_clocks(struct omap_hwmod *oh) static int _disable_clocks(struct omap_hwmod *oh)
{ {
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p;
int i = 0;
pr_debug("omap_hwmod: %s: disabling clocks\n", oh->name); pr_debug("omap_hwmod: %s: disabling clocks\n", oh->name);
if (oh->_clk) if (oh->_clk)
clk_disable(oh->_clk); clk_disable(oh->_clk);
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE)) if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE))
clk_disable(os->_clk); clk_disable(os->_clk);
} }
...@@ -1190,16 +1135,11 @@ static int _get_sdma_req_by_name(struct omap_hwmod *oh, const char *name, ...@@ -1190,16 +1135,11 @@ static int _get_sdma_req_by_name(struct omap_hwmod *oh, const char *name,
static int _get_addr_space_by_name(struct omap_hwmod *oh, const char *name, static int _get_addr_space_by_name(struct omap_hwmod *oh, const char *name,
u32 *pa_start, u32 *pa_end) u32 *pa_start, u32 *pa_end)
{ {
int i, j; int j;
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p = NULL;
bool found = false; bool found = false;
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
i = 0;
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
if (!os->addr) if (!os->addr)
return -ENOENT; return -ENOENT;
...@@ -1239,18 +1179,13 @@ static int _get_addr_space_by_name(struct omap_hwmod *oh, const char *name, ...@@ -1239,18 +1179,13 @@ static int _get_addr_space_by_name(struct omap_hwmod *oh, const char *name,
static void __init _save_mpu_port_index(struct omap_hwmod *oh) static void __init _save_mpu_port_index(struct omap_hwmod *oh)
{ {
struct omap_hwmod_ocp_if *os = NULL; struct omap_hwmod_ocp_if *os = NULL;
struct list_head *p;
int i = 0;
if (!oh) if (!oh)
return; return;
oh->_int_flags |= _HWMOD_NO_MPU_PORT; oh->_int_flags |= _HWMOD_NO_MPU_PORT;
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
if (os->user & OCP_USER_MPU) { if (os->user & OCP_USER_MPU) {
oh->_mpu_port = os; oh->_mpu_port = os;
oh->_int_flags &= ~_HWMOD_NO_MPU_PORT; oh->_int_flags &= ~_HWMOD_NO_MPU_PORT;
...@@ -1393,7 +1328,7 @@ static void _enable_sysc(struct omap_hwmod *oh) ...@@ -1393,7 +1328,7 @@ static void _enable_sysc(struct omap_hwmod *oh)
*/ */
if ((oh->flags & HWMOD_SET_DEFAULT_CLOCKACT) && if ((oh->flags & HWMOD_SET_DEFAULT_CLOCKACT) &&
(sf & SYSC_HAS_CLOCKACTIVITY)) (sf & SYSC_HAS_CLOCKACTIVITY))
_set_clockactivity(oh, oh->class->sysc->clockact, &v); _set_clockactivity(oh, CLOCKACT_TEST_ICLK, &v);
_write_sysconfig(v, oh); _write_sysconfig(v, oh);
...@@ -2451,15 +2386,11 @@ static int __init _init(struct omap_hwmod *oh, void *data) ...@@ -2451,15 +2386,11 @@ static int __init _init(struct omap_hwmod *oh, void *data)
static void __init _setup_iclk_autoidle(struct omap_hwmod *oh) static void __init _setup_iclk_autoidle(struct omap_hwmod *oh)
{ {
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p;
int i = 0;
if (oh->_state != _HWMOD_STATE_INITIALIZED) if (oh->_state != _HWMOD_STATE_INITIALIZED)
return; return;
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
if (!os->_clk) if (!os->_clk)
continue; continue;
...@@ -2657,7 +2588,6 @@ static int __init _register(struct omap_hwmod *oh) ...@@ -2657,7 +2588,6 @@ static int __init _register(struct omap_hwmod *oh)
list_add_tail(&oh->node, &omap_hwmod_list); list_add_tail(&oh->node, &omap_hwmod_list);
INIT_LIST_HEAD(&oh->master_ports);
INIT_LIST_HEAD(&oh->slave_ports); INIT_LIST_HEAD(&oh->slave_ports);
spin_lock_init(&oh->_lock); spin_lock_init(&oh->_lock);
lockdep_set_class(&oh->_lock, &oh->hwmod_key); lockdep_set_class(&oh->_lock, &oh->hwmod_key);
...@@ -2674,50 +2604,11 @@ static int __init _register(struct omap_hwmod *oh) ...@@ -2674,50 +2604,11 @@ static int __init _register(struct omap_hwmod *oh)
return 0; return 0;
} }
/**
* _alloc_links - return allocated memory for hwmod links
* @ml: pointer to a struct omap_hwmod_link * for the master link
* @sl: pointer to a struct omap_hwmod_link * for the slave link
*
* Return pointers to two struct omap_hwmod_link records, via the
* addresses pointed to by @ml and @sl. Will first attempt to return
* memory allocated as part of a large initial block, but if that has
* been exhausted, will allocate memory itself. Since ideally this
* second allocation path will never occur, the number of these
* 'supplemental' allocations will be logged when debugging is
* enabled. Returns 0.
*/
static int __init _alloc_links(struct omap_hwmod_link **ml,
struct omap_hwmod_link **sl)
{
unsigned int sz;
if ((free_ls + LINKS_PER_OCP_IF) <= max_ls) {
*ml = &linkspace[free_ls++];
*sl = &linkspace[free_ls++];
return 0;
}
sz = sizeof(struct omap_hwmod_link) * LINKS_PER_OCP_IF;
*sl = NULL;
*ml = memblock_virt_alloc(sz, 0);
*sl = (void *)(*ml) + sizeof(struct omap_hwmod_link);
ls_supp++;
pr_debug("omap_hwmod: supplemental link allocations needed: %d\n",
ls_supp * LINKS_PER_OCP_IF);
return 0;
};
/** /**
* _add_link - add an interconnect between two IP blocks * _add_link - add an interconnect between two IP blocks
* @oi: pointer to a struct omap_hwmod_ocp_if record * @oi: pointer to a struct omap_hwmod_ocp_if record
* *
* Add struct omap_hwmod_link records connecting the master IP block * Add struct omap_hwmod_link records connecting the slave IP block
* specified in @oi->master to @oi, and connecting the slave IP block
* specified in @oi->slave to @oi. This code is assumed to run before * specified in @oi->slave to @oi. This code is assumed to run before
* preemption or SMP has been enabled, thus avoiding the need for * preemption or SMP has been enabled, thus avoiding the need for
* locking in this code. Changes to this assumption will require * locking in this code. Changes to this assumption will require
...@@ -2725,19 +2616,10 @@ static int __init _alloc_links(struct omap_hwmod_link **ml, ...@@ -2725,19 +2616,10 @@ static int __init _alloc_links(struct omap_hwmod_link **ml,
*/ */
static int __init _add_link(struct omap_hwmod_ocp_if *oi) static int __init _add_link(struct omap_hwmod_ocp_if *oi)
{ {
struct omap_hwmod_link *ml, *sl;
pr_debug("omap_hwmod: %s -> %s: adding link\n", oi->master->name, pr_debug("omap_hwmod: %s -> %s: adding link\n", oi->master->name,
oi->slave->name); oi->slave->name);
_alloc_links(&ml, &sl); list_add(&oi->node, &oi->slave->slave_ports);
ml->ocp_if = oi;
list_add(&ml->node, &oi->master->master_ports);
oi->master->masters_cnt++;
sl->ocp_if = oi;
list_add(&sl->node, &oi->slave->slave_ports);
oi->slave->slaves_cnt++; oi->slave->slaves_cnt++;
return 0; return 0;
...@@ -2784,45 +2666,6 @@ static int __init _register_link(struct omap_hwmod_ocp_if *oi) ...@@ -2784,45 +2666,6 @@ static int __init _register_link(struct omap_hwmod_ocp_if *oi)
return 0; return 0;
} }
/**
* _alloc_linkspace - allocate large block of hwmod links
* @ois: pointer to an array of struct omap_hwmod_ocp_if records to count
*
* Allocate a large block of struct omap_hwmod_link records. This
* improves boot time significantly by avoiding the need to allocate
* individual records one by one. If the number of records to
* allocate in the block hasn't been manually specified, this function
* will count the number of struct omap_hwmod_ocp_if records in @ois
* and use that to determine the allocation size. For SoC families
* that require multiple list registrations, such as OMAP3xxx, this
* estimation process isn't optimal, so manual estimation is advised
* in those cases. Returns -EEXIST if the allocation has already occurred
* or 0 upon success.
*/
static int __init _alloc_linkspace(struct omap_hwmod_ocp_if **ois)
{
unsigned int i = 0;
unsigned int sz;
if (linkspace) {
WARN(1, "linkspace already allocated\n");
return -EEXIST;
}
if (max_ls == 0)
while (ois[i++])
max_ls += LINKS_PER_OCP_IF;
sz = sizeof(struct omap_hwmod_link) * max_ls;
pr_debug("omap_hwmod: %s: allocating %d byte linkspace (%d links)\n",
__func__, sz, max_ls);
linkspace = memblock_virt_alloc(sz, 0);
return 0;
}
/* Static functions intended only for use in soc_ops field function pointers */ /* Static functions intended only for use in soc_ops field function pointers */
/** /**
...@@ -3180,13 +3023,6 @@ int __init omap_hwmod_register_links(struct omap_hwmod_ocp_if **ois) ...@@ -3180,13 +3023,6 @@ int __init omap_hwmod_register_links(struct omap_hwmod_ocp_if **ois)
if (ois[0] == NULL) /* Empty list */ if (ois[0] == NULL) /* Empty list */
return 0; return 0;
if (!linkspace) {
if (_alloc_linkspace(ois)) {
pr_err("omap_hwmod: could not allocate link space\n");
return -ENOMEM;
}
}
i = 0; i = 0;
do { do {
r = _register_link(ois[i]); r = _register_link(ois[i]);
...@@ -3398,14 +3234,10 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags) ...@@ -3398,14 +3234,10 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags)
ret += _count_sdma_reqs(oh); ret += _count_sdma_reqs(oh);
if (flags & IORESOURCE_MEM) { if (flags & IORESOURCE_MEM) {
int i = 0;
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p = oh->slave_ports.next;
while (i < oh->slaves_cnt) { list_for_each_entry(os, &oh->slave_ports, node)
os = _fetch_next_ocp_if(&p, &i);
ret += _count_ocp_if_addr_spaces(os); ret += _count_ocp_if_addr_spaces(os);
}
} }
return ret; return ret;
...@@ -3424,7 +3256,6 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags) ...@@ -3424,7 +3256,6 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags)
int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res) int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res)
{ {
struct omap_hwmod_ocp_if *os; struct omap_hwmod_ocp_if *os;
struct list_head *p;
int i, j, mpu_irqs_cnt, sdma_reqs_cnt, addr_cnt; int i, j, mpu_irqs_cnt, sdma_reqs_cnt, addr_cnt;
int r = 0; int r = 0;
...@@ -3454,11 +3285,7 @@ int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res) ...@@ -3454,11 +3285,7 @@ int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res)
r++; r++;
} }
p = oh->slave_ports.next; list_for_each_entry(os, &oh->slave_ports, node) {
i = 0;
while (i < oh->slaves_cnt) {
os = _fetch_next_ocp_if(&p, &i);
addr_cnt = _count_ocp_if_addr_spaces(os); addr_cnt = _count_ocp_if_addr_spaces(os);
for (j = 0; j < addr_cnt; j++) { for (j = 0; j < addr_cnt; j++) {
......
...@@ -313,6 +313,7 @@ struct omap_hwmod_ocp_if { ...@@ -313,6 +313,7 @@ struct omap_hwmod_ocp_if {
struct omap_hwmod_addr_space *addr; struct omap_hwmod_addr_space *addr;
const char *clk; const char *clk;
struct clk *_clk; struct clk *_clk;
struct list_head node;
union { union {
struct omap_hwmod_omap2_firewall omap2; struct omap_hwmod_omap2_firewall omap2;
} fw; } fw;
...@@ -410,7 +411,6 @@ struct omap_hwmod_class_sysconfig { ...@@ -410,7 +411,6 @@ struct omap_hwmod_class_sysconfig {
struct omap_hwmod_sysc_fields *sysc_fields; struct omap_hwmod_sysc_fields *sysc_fields;
u8 srst_udelay; u8 srst_udelay;
u8 idlemodes; u8 idlemodes;
u8 clockact;
}; };
/** /**
...@@ -616,16 +616,6 @@ struct omap_hwmod_class { ...@@ -616,16 +616,6 @@ struct omap_hwmod_class {
void (*unlock)(struct omap_hwmod *oh); void (*unlock)(struct omap_hwmod *oh);
}; };
/**
* struct omap_hwmod_link - internal structure linking hwmods with ocp_ifs
* @ocp_if: OCP interface structure record pointer
* @node: list_head pointing to next struct omap_hwmod_link in a list
*/
struct omap_hwmod_link {
struct omap_hwmod_ocp_if *ocp_if;
struct list_head node;
};
/** /**
* struct omap_hwmod - integration data for OMAP hardware "modules" (IP blocks) * struct omap_hwmod - integration data for OMAP hardware "modules" (IP blocks)
* @name: name of the hwmod * @name: name of the hwmod
...@@ -686,9 +676,8 @@ struct omap_hwmod { ...@@ -686,9 +676,8 @@ struct omap_hwmod {
const char *main_clk; const char *main_clk;
struct clk *_clk; struct clk *_clk;
struct omap_hwmod_opt_clk *opt_clks; struct omap_hwmod_opt_clk *opt_clks;
char *clkdm_name; const char *clkdm_name;
struct clockdomain *clkdm; struct clockdomain *clkdm;
struct list_head master_ports; /* connect to *_IA */
struct list_head slave_ports; /* connect to *_TA */ struct list_head slave_ports; /* connect to *_TA */
void *dev_attr; void *dev_attr;
u32 _sysc_cache; u32 _sysc_cache;
...@@ -703,7 +692,6 @@ struct omap_hwmod { ...@@ -703,7 +692,6 @@ struct omap_hwmod {
u8 response_lat; u8 response_lat;
u8 rst_lines_cnt; u8 rst_lines_cnt;
u8 opt_clks_cnt; u8 opt_clks_cnt;
u8 masters_cnt;
u8 slaves_cnt; u8 slaves_cnt;
u8 hwmods_cnt; u8 hwmods_cnt;
u8 _int_flags; u8 _int_flags;
......
...@@ -55,7 +55,6 @@ static struct omap_hwmod_class_sysconfig omap2xxx_timer_sysc = { ...@@ -55,7 +55,6 @@ static struct omap_hwmod_class_sysconfig omap2xxx_timer_sysc = {
SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET | SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS), SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
......
...@@ -149,7 +149,6 @@ static struct omap_hwmod_class_sysconfig omap3xxx_timer_sysc = { ...@@ -149,7 +149,6 @@ static struct omap_hwmod_class_sysconfig omap3xxx_timer_sysc = {
SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE | SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE |
SYSS_HAS_RESET_STATUS), SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
...@@ -424,7 +423,6 @@ static struct omap_hwmod_class_sysconfig i2c_sysc = { ...@@ -424,7 +423,6 @@ static struct omap_hwmod_class_sysconfig i2c_sysc = {
SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET | SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS), SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
...@@ -1045,7 +1043,6 @@ static struct omap_hwmod_class_sysconfig omap3xxx_mcbsp_sysc = { ...@@ -1045,7 +1043,6 @@ static struct omap_hwmod_class_sysconfig omap3xxx_mcbsp_sysc = {
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET), SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
.clockact = 0x2,
}; };
static struct omap_hwmod_class omap3xxx_mcbsp_hwmod_class = { static struct omap_hwmod_class omap3xxx_mcbsp_hwmod_class = {
...@@ -1210,7 +1207,6 @@ static struct omap_hwmod_sysc_fields omap34xx_sr_sysc_fields = { ...@@ -1210,7 +1207,6 @@ static struct omap_hwmod_sysc_fields omap34xx_sr_sysc_fields = {
static struct omap_hwmod_class_sysconfig omap34xx_sr_sysc = { static struct omap_hwmod_class_sysconfig omap34xx_sr_sysc = {
.sysc_offs = 0x24, .sysc_offs = 0x24,
.sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_NO_CACHE), .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_NO_CACHE),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap34xx_sr_sysc_fields, .sysc_fields = &omap34xx_sr_sysc_fields,
}; };
......
...@@ -1320,7 +1320,6 @@ static struct omap_hwmod_class_sysconfig omap44xx_i2c_sysc = { ...@@ -1320,7 +1320,6 @@ static struct omap_hwmod_class_sysconfig omap44xx_i2c_sysc = {
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP), SIDLE_SMART_WKUP),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
...@@ -2548,7 +2547,6 @@ static struct omap_hwmod_class_sysconfig omap44xx_timer_1ms_sysc = { ...@@ -2548,7 +2547,6 @@ static struct omap_hwmod_class_sysconfig omap44xx_timer_1ms_sysc = {
SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET | SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
SYSS_HAS_RESET_STATUS), SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
......
...@@ -839,7 +839,6 @@ static struct omap_hwmod_class_sysconfig omap54xx_i2c_sysc = { ...@@ -839,7 +839,6 @@ static struct omap_hwmod_class_sysconfig omap54xx_i2c_sysc = {
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP), SIDLE_SMART_WKUP),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
...@@ -1530,7 +1529,6 @@ static struct omap_hwmod_class_sysconfig omap54xx_timer_1ms_sysc = { ...@@ -1530,7 +1529,6 @@ static struct omap_hwmod_class_sysconfig omap54xx_timer_1ms_sysc = {
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP), SIDLE_SMART_WKUP),
.sysc_fields = &omap_hwmod_sysc_type2, .sysc_fields = &omap_hwmod_sysc_type2,
.clockact = CLOCKACT_TEST_ICLK,
}; };
static struct omap_hwmod_class omap54xx_timer_1ms_hwmod_class = { static struct omap_hwmod_class omap54xx_timer_1ms_hwmod_class = {
......
...@@ -1098,7 +1098,6 @@ static struct omap_hwmod_class_sysconfig dra7xx_i2c_sysc = { ...@@ -1098,7 +1098,6 @@ static struct omap_hwmod_class_sysconfig dra7xx_i2c_sysc = {
SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
.idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
SIDLE_SMART_WKUP), SIDLE_SMART_WKUP),
.clockact = CLOCKACT_TEST_ICLK,
.sysc_fields = &omap_hwmod_sysc_type1, .sysc_fields = &omap_hwmod_sysc_type1,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment