Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
6bff5474
Commit
6bff5474
authored
Mar 23, 2017
by
Tony Lindgren
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'hwmod-cleanup' into omap-for-v4.12/soc
parents
342bef7c
3cdf2f80
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
15 additions
and
210 deletions
+15
-210
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/omap_hwmod.c
+13
-186
arch/arm/mach-omap2/omap_hwmod.h
arch/arm/mach-omap2/omap_hwmod.h
+2
-14
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
+0
-1
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+0
-4
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+0
-2
arch/arm/mach-omap2/omap_hwmod_54xx_data.c
arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+0
-2
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+0
-1
No files found.
arch/arm/mach-omap2/omap_hwmod.c
View file @
6bff5474
...
@@ -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
++
)
{
...
...
arch/arm/mach-omap2/omap_hwmod.h
View file @
6bff5474
...
@@ -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
;
c
har
*
clkdm_name
;
c
onst
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
;
...
...
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
View file @
6bff5474
...
@@ -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
,
};
};
...
...
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
View file @
6bff5474
...
@@ -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
,
};
};
...
...
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
View file @
6bff5474
...
@@ -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
,
};
};
...
...
arch/arm/mach-omap2/omap_hwmod_54xx_data.c
View file @
6bff5474
...
@@ -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
=
{
...
...
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
View file @
6bff5474
...
@@ -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
,
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment