Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
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
Show 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
...
@@ -102,6 +102,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
}
}
EXPORT_SYMBOL
(
of_set_property
);
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
unsigned
int
prom_early_allocated
;
static
void
*
__init
prom_early_alloc
(
unsigned
long
size
)
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)
...
@@ -568,20 +568,6 @@ static void __init report_platform_properties(void)
mdesc_release
(
hp
);
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
,
static
void
__devinit
fill_in_one_cache
(
cpuinfo_sparc
*
c
,
struct
mdesc_handle
*
hp
,
struct
mdesc_handle
*
hp
,
u64
mp
)
u64
mp
)
...
@@ -596,10 +582,10 @@ static void __devinit fill_in_one_cache(cpuinfo_sparc *c,
...
@@ -596,10 +582,10 @@ static void __devinit fill_in_one_cache(cpuinfo_sparc *c,
switch
(
*
level
)
{
switch
(
*
level
)
{
case
1
:
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_size
=
*
size
;
c
->
icache_line_size
=
*
line_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_size
=
*
size
;
c
->
dcache_line_size
=
*
line_size
;
c
->
dcache_line_size
=
*
line_size
;
}
}
...
@@ -677,7 +663,7 @@ static void __devinit set_core_ids(struct mdesc_handle *hp)
...
@@ -677,7 +663,7 @@ static void __devinit set_core_ids(struct mdesc_handle *hp)
continue
;
continue
;
type
=
mdesc_get_property
(
hp
,
mp
,
"type"
,
&
len
);
type
=
mdesc_get_property
(
hp
,
mp
,
"type"
,
&
len
);
if
(
!
find_in_proplist
(
type
,
"instn"
,
len
))
if
(
!
of_
find_in_proplist
(
type
,
"instn"
,
len
))
continue
;
continue
;
mark_core_ids
(
hp
,
mp
,
idx
);
mark_core_ids
(
hp
,
mp
,
idx
);
...
@@ -718,8 +704,8 @@ static void __devinit __set_proc_ids(struct mdesc_handle *hp,
...
@@ -718,8 +704,8 @@ static void __devinit __set_proc_ids(struct mdesc_handle *hp,
int
len
;
int
len
;
type
=
mdesc_get_property
(
hp
,
mp
,
"type"
,
&
len
);
type
=
mdesc_get_property
(
hp
,
mp
,
"type"
,
&
len
);
if
(
!
find_in_proplist
(
type
,
"int"
,
len
)
&&
if
(
!
of_
find_in_proplist
(
type
,
"int"
,
len
)
&&
!
find_in_proplist
(
type
,
"integer"
,
len
))
!
of_
find_in_proplist
(
type
,
"integer"
,
len
))
continue
;
continue
;
mark_proc_ids
(
hp
,
mp
,
idx
);
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
...
@@ -107,6 +107,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
}
}
EXPORT_SYMBOL
(
of_set_property
);
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
unsigned
int
prom_early_allocated
;
static
void
*
__init
prom_early_alloc
(
unsigned
long
size
)
static
void
*
__init
prom_early_alloc
(
unsigned
long
size
)
...
...
arch/sparc64/kernel/vio.c
View file @
46bcea77
...
@@ -16,21 +16,6 @@
...
@@ -16,21 +16,6 @@
#include <asm/mdesc.h>
#include <asm/mdesc.h>
#include <asm/vio.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
(
static
const
struct
vio_device_id
*
vio_match_device
(
const
struct
vio_device_id
*
matches
,
const
struct
vio_device_id
*
matches
,
const
struct
vio_dev
*
dev
)
const
struct
vio_dev
*
dev
)
...
@@ -49,7 +34,7 @@ static const struct vio_device_id *vio_match_device(
...
@@ -49,7 +34,7 @@ static const struct vio_device_id *vio_match_device(
if
(
matches
->
compat
[
0
])
{
if
(
matches
->
compat
[
0
])
{
match
&=
len
&&
match
&=
len
&&
find_in_proplist
(
compat
,
matches
->
compat
,
len
);
of_
find_in_proplist
(
compat
,
matches
->
compat
,
len
);
}
}
if
(
match
)
if
(
match
)
return
matches
;
return
matches
;
...
@@ -406,7 +391,7 @@ static int __init vio_init(void)
...
@@ -406,7 +391,7 @@ static int __init vio_init(void)
"property
\n
"
);
"property
\n
"
);
goto
out_release
;
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) "
printk
(
KERN_ERR
"VIO: Channel devices node lacks (%s) "
"compat entry.
\n
"
,
channel_devices_compat
);
"compat entry.
\n
"
,
channel_devices_compat
);
goto
out_release
;
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
...
@@ -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
,
extern
int
of_getintprop_default
(
struct
device_node
*
np
,
const
char
*
name
,
const
char
*
name
,
int
def
);
int
def
);
extern
int
of_find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
);
extern
void
prom_build_devicetree
(
void
);
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
...
@@ -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
,
extern
int
of_getintprop_default
(
struct
device_node
*
np
,
const
char
*
name
,
const
char
*
name
,
int
def
);
int
def
);
extern
int
of_find_in_proplist
(
const
char
*
list
,
const
char
*
match
,
int
len
);
extern
void
prom_build_devicetree
(
void
);
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