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
Kirill Smelkov
linux
Commits
46bcea77
Commit
46bcea77
authored
Aug 07, 2007
by
David S. Miller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[SPARC]: Centralize find_in_proplist() instead of duplicating N times.
Signed-off-by:
David S. Miller
<
davem@davemloft.net
>
parent
4a2a4df7
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
39 additions
and
36 deletions
+39
-36
arch/sparc/kernel/prom.c
arch/sparc/kernel/prom.c
+15
-0
arch/sparc64/kernel/mdesc.c
arch/sparc64/kernel/mdesc.c
+5
-19
arch/sparc64/kernel/prom.c
arch/sparc64/kernel/prom.c
+15
-0
arch/sparc64/kernel/vio.c
arch/sparc64/kernel/vio.c
+2
-17
include/asm-sparc/prom.h
include/asm-sparc/prom.h
+1
-0
include/asm-sparc64/prom.h
include/asm-sparc64/prom.h
+1
-0
No files found.
arch/sparc/kernel/prom.c
View file @
46bcea77
...
...
@@ -102,6 +102,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
}
EXPORT_SYMBOL
(
of_set_property
);
int
of_find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
)
{
while
(
len
>
0
)
{
int
l
;
if
(
!
strcmp
(
list
,
match
))
return
1
;
l
=
strlen
(
list
)
+
1
;
list
+=
l
;
len
-=
l
;
}
return
0
;
}
EXPORT_SYMBOL
(
of_find_in_proplist
);
static
unsigned
int
prom_early_allocated
;
static
void
*
__init
prom_early_alloc
(
unsigned
long
size
)
...
...
arch/sparc64/kernel/mdesc.c
View file @
46bcea77
...
...
@@ -568,20 +568,6 @@ static void __init report_platform_properties(void)
mdesc_release
(
hp
);
}
static
int
inline
find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
)
{
while
(
len
>
0
)
{
int
l
;
if
(
!
strcmp
(
list
,
match
))
return
1
;
l
=
strlen
(
list
)
+
1
;
list
+=
l
;
len
-=
l
;
}
return
0
;
}
static
void
__devinit
fill_in_one_cache
(
cpuinfo_sparc
*
c
,
struct
mdesc_handle
*
hp
,
u64
mp
)
...
...
@@ -596,10 +582,10 @@ static void __devinit fill_in_one_cache(cpuinfo_sparc *c,
switch
(
*
level
)
{
case
1
:
if
(
find_in_proplist
(
type
,
"instn"
,
type_len
))
{
if
(
of_
find_in_proplist
(
type
,
"instn"
,
type_len
))
{
c
->
icache_size
=
*
size
;
c
->
icache_line_size
=
*
line_size
;
}
else
if
(
find_in_proplist
(
type
,
"data"
,
type_len
))
{
}
else
if
(
of_
find_in_proplist
(
type
,
"data"
,
type_len
))
{
c
->
dcache_size
=
*
size
;
c
->
dcache_line_size
=
*
line_size
;
}
...
...
@@ -677,7 +663,7 @@ static void __devinit set_core_ids(struct mdesc_handle *hp)
continue
;
type
=
mdesc_get_property
(
hp
,
mp
,
"type"
,
&
len
);
if
(
!
find_in_proplist
(
type
,
"instn"
,
len
))
if
(
!
of_
find_in_proplist
(
type
,
"instn"
,
len
))
continue
;
mark_core_ids
(
hp
,
mp
,
idx
);
...
...
@@ -718,8 +704,8 @@ static void __devinit __set_proc_ids(struct mdesc_handle *hp,
int
len
;
type
=
mdesc_get_property
(
hp
,
mp
,
"type"
,
&
len
);
if
(
!
find_in_proplist
(
type
,
"int"
,
len
)
&&
!
find_in_proplist
(
type
,
"integer"
,
len
))
if
(
!
of_
find_in_proplist
(
type
,
"int"
,
len
)
&&
!
of_
find_in_proplist
(
type
,
"integer"
,
len
))
continue
;
mark_proc_ids
(
hp
,
mp
,
idx
);
...
...
arch/sparc64/kernel/prom.c
View file @
46bcea77
...
...
@@ -107,6 +107,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
}
EXPORT_SYMBOL
(
of_set_property
);
int
of_find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
)
{
while
(
len
>
0
)
{
int
l
;
if
(
!
strcmp
(
list
,
match
))
return
1
;
l
=
strlen
(
list
)
+
1
;
list
+=
l
;
len
-=
l
;
}
return
0
;
}
EXPORT_SYMBOL
(
of_find_in_proplist
);
static
unsigned
int
prom_early_allocated
;
static
void
*
__init
prom_early_alloc
(
unsigned
long
size
)
...
...
arch/sparc64/kernel/vio.c
View file @
46bcea77
...
...
@@ -16,21 +16,6 @@
#include <asm/mdesc.h>
#include <asm/vio.h>
static
inline
int
find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
)
{
while
(
len
>
0
)
{
int
l
;
if
(
!
strcmp
(
list
,
match
))
return
1
;
l
=
strlen
(
list
)
+
1
;
list
+=
l
;
len
-=
l
;
}
return
0
;
}
static
const
struct
vio_device_id
*
vio_match_device
(
const
struct
vio_device_id
*
matches
,
const
struct
vio_dev
*
dev
)
...
...
@@ -49,7 +34,7 @@ static const struct vio_device_id *vio_match_device(
if
(
matches
->
compat
[
0
])
{
match
&=
len
&&
find_in_proplist
(
compat
,
matches
->
compat
,
len
);
of_
find_in_proplist
(
compat
,
matches
->
compat
,
len
);
}
if
(
match
)
return
matches
;
...
...
@@ -406,7 +391,7 @@ static int __init vio_init(void)
"property
\n
"
);
goto
out_release
;
}
if
(
!
find_in_proplist
(
compat
,
channel_devices_compat
,
len
))
{
if
(
!
of_
find_in_proplist
(
compat
,
channel_devices_compat
,
len
))
{
printk
(
KERN_ERR
"VIO: Channel devices node lacks (%s) "
"compat entry.
\n
"
,
channel_devices_compat
);
goto
out_release
;
...
...
include/asm-sparc/prom.h
View file @
46bcea77
...
...
@@ -67,6 +67,7 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
extern
int
of_getintprop_default
(
struct
device_node
*
np
,
const
char
*
name
,
int
def
);
extern
int
of_find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
);
extern
void
prom_build_devicetree
(
void
);
...
...
include/asm-sparc64/prom.h
View file @
46bcea77
...
...
@@ -76,6 +76,7 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
extern
int
of_getintprop_default
(
struct
device_node
*
np
,
const
char
*
name
,
int
def
);
extern
int
of_find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
);
extern
void
prom_build_devicetree
(
void
);
...
...
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