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
335553ce
Commit
335553ce
authored
Apr 24, 2013
by
Zhang Rui
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'eduardo-1' of .git into next
parents
4f89038f
837b26bb
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
3 deletions
+57
-3
drivers/thermal/thermal_core.c
drivers/thermal/thermal_core.c
+55
-3
include/linux/thermal.h
include/linux/thermal.h
+2
-0
No files found.
drivers/thermal/thermal_core.c
View file @
335553ce
...
...
@@ -369,16 +369,28 @@ static void handle_thermal_trip(struct thermal_zone_device *tz, int trip)
monitor_thermal_zone
(
tz
);
}
static
int
thermal_zone_get_temp
(
struct
thermal_zone_device
*
tz
,
unsigned
long
*
temp
)
/**
* thermal_zone_get_temp() - returns its the temperature of thermal zone
* @tz: a valid pointer to a struct thermal_zone_device
* @temp: a valid pointer to where to store the resulting temperature.
*
* When a valid thermal zone reference is passed, it will fetch its
* temperature and fill @temp.
*
* Return: On success returns 0, an error code otherwise
*/
int
thermal_zone_get_temp
(
struct
thermal_zone_device
*
tz
,
unsigned
long
*
temp
)
{
int
ret
=
0
;
int
ret
=
-
EINVAL
;
#ifdef CONFIG_THERMAL_EMULATION
int
count
;
unsigned
long
crit_temp
=
-
1UL
;
enum
thermal_trip_type
type
;
#endif
if
(
IS_ERR_OR_NULL
(
tz
))
goto
exit
;
mutex_lock
(
&
tz
->
lock
);
ret
=
tz
->
ops
->
get_temp
(
tz
,
temp
);
...
...
@@ -402,8 +414,10 @@ static int thermal_zone_get_temp(struct thermal_zone_device *tz,
skip_emul:
#endif
mutex_unlock
(
&
tz
->
lock
);
exit:
return
ret
;
}
EXPORT_SYMBOL_GPL
(
thermal_zone_get_temp
);
static
void
update_temperature
(
struct
thermal_zone_device
*
tz
)
{
...
...
@@ -1754,6 +1768,44 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz)
}
EXPORT_SYMBOL
(
thermal_zone_device_unregister
);
/**
* thermal_zone_get_zone_by_name() - search for a zone and returns its ref
* @name: thermal zone name to fetch the temperature
*
* When only one zone is found with the passed name, returns a reference to it.
*
* Return: On success returns a reference to an unique thermal zone with
* matching name equals to @name, an ERR_PTR otherwise (-EINVAL for invalid
* paramenters, -ENODEV for not found and -EEXIST for multiple matches).
*/
struct
thermal_zone_device
*
thermal_zone_get_zone_by_name
(
const
char
*
name
)
{
struct
thermal_zone_device
*
pos
=
NULL
,
*
ref
=
ERR_PTR
(
-
EINVAL
);
unsigned
int
found
=
0
;
if
(
!
name
)
goto
exit
;
mutex_lock
(
&
thermal_list_lock
);
list_for_each_entry
(
pos
,
&
thermal_tz_list
,
node
)
if
(
!
strnicmp
(
name
,
pos
->
type
,
THERMAL_NAME_LENGTH
))
{
found
++
;
ref
=
pos
;
}
mutex_unlock
(
&
thermal_list_lock
);
/* nothing has been found, thus an error code for it */
if
(
found
==
0
)
ref
=
ERR_PTR
(
-
ENODEV
);
else
if
(
found
>
1
)
/* Success only when an unique zone is found */
ref
=
ERR_PTR
(
-
EEXIST
);
exit:
return
ref
;
}
EXPORT_SYMBOL_GPL
(
thermal_zone_get_zone_by_name
);
#ifdef CONFIG_NET
static
struct
genl_family
thermal_event_genl_family
=
{
.
id
=
GENL_ID_GENERATE
,
...
...
include/linux/thermal.h
View file @
335553ce
...
...
@@ -239,6 +239,8 @@ void thermal_zone_device_update(struct thermal_zone_device *);
struct
thermal_cooling_device
*
thermal_cooling_device_register
(
char
*
,
void
*
,
const
struct
thermal_cooling_device_ops
*
);
void
thermal_cooling_device_unregister
(
struct
thermal_cooling_device
*
);
struct
thermal_zone_device
*
thermal_zone_get_zone_by_name
(
const
char
*
name
);
int
thermal_zone_get_temp
(
struct
thermal_zone_device
*
tz
,
unsigned
long
*
temp
);
int
get_tz_trend
(
struct
thermal_zone_device
*
,
int
);
struct
thermal_instance
*
get_thermal_instance
(
struct
thermal_zone_device
*
,
...
...
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