Displaying 9 results from an estimated 9 matches for "nouveau_alarm".
2013 Aug 12
5
[PATCH 0/5] Thermal management fixes
From: Martin Peres <martin.peres at labri.fr>
This patchset is mostly about fixing fdo bug #66177, reported by Dash Four.
This bug is about fan/temp management not working after a suspend/resume cycle.
Fan/therm management relies on ptimer's alarm feature to call periodically
multiple callbacks that poll the temperature and update the fan speed if needed.
The problem is that there is
2014 Jul 14
0
[PATCH] drm/nouveau/therm: fix a potential deadlock in the therm monitoring code
...f --git a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c
index cfde9eb..6212537 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c
@@ -192,11 +192,11 @@ alarm_timer_callback(struct nouveau_alarm *alarm)
nouveau_therm_threshold_hyst_polling(therm, &sensor->thrs_shutdown,
NOUVEAU_THERM_THRS_SHUTDOWN);
+ spin_unlock_irqrestore(&priv->sensor.alarm_program_lock, flags);
+
/* schedule the next poll in one second */
if (therm->temp_get(therm) >= 0 &&...
2014 Dec 18
2
[RFC PATCH 2/3] dvfs: add support for GK20A
...include <subdev/timer.h>
> +
> +struct nouveau_dvfs_data {
> + int p_load_target;
> + int p_load_max;
> + int p_smooth;
> + unsigned int avg_load;
> +};
> +
> +struct nouveau_dvfs {
> + struct nouveau_subdev base;
> + struct nouveau_alarm alarm;
> + struct nouveau_dvfs_data *data;
> +};
> +
> +static inline struct nouveau_dvfs *
> +nouveau_dvfs(void *obj)
> +{
> + return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DVFS];
> +}
> +
> +extern struct nouveau_oclass *gk20a_dvfs_oclass;
> +...
2014 Dec 18
3
[RFC PATCH 2/3] dvfs: add support for GK20A
...gt;>> + int p_load_target;
>>> + int p_load_max;
>>> + int p_smooth;
>>> + unsigned int avg_load;
>>> +};
>>> +
>>> +struct nouveau_dvfs {
>>> + struct nouveau_subdev base;
>>> + struct nouveau_alarm alarm;
>>> + struct nouveau_dvfs_data *data;
>>> +};
>>> +
>>> +static inline struct nouveau_dvfs *
>>> +nouveau_dvfs(void *obj)
>>> +{
>>> + return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DVFS];
>>> +}
>&...
2014 Dec 18
4
[RFC PATCH 0/3] introduce DVFS for GK20A
Hi,
This is a try to have some simple DVFS (Dynamic Voltage and Frequency Scaling)
support for GK20A. Instead of relying on other existing frequency scaling
framework, we create a simple subdev in Nouveau for the same purpose. That's
because we don't want to make the DVFS implementation for GK20A far more
than enough in the beginning and hinder the implementation for dGPU in the
future.
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...e __NOUVEAU_DVFS_H__
+
+#include <core/subdev.h>
+#include <core/device.h>
+
+#include <subdev/timer.h>
+
+struct nouveau_dvfs_data {
+ int p_load_target;
+ int p_load_max;
+ int p_smooth;
+ unsigned int avg_load;
+};
+
+struct nouveau_dvfs {
+ struct nouveau_subdev base;
+ struct nouveau_alarm alarm;
+ struct nouveau_dvfs_data *data;
+};
+
+static inline struct nouveau_dvfs *
+nouveau_dvfs(void *obj)
+{
+ return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DVFS];
+}
+
+extern struct nouveau_oclass *gk20a_dvfs_oclass;
+
+#endif
diff --git a/nvkm/subdev/Makefile.am b/nvkm/subdev/Makefile...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...t;> +struct nouveau_dvfs_data {
>> + int p_load_target;
>> + int p_load_max;
>> + int p_smooth;
>> + unsigned int avg_load;
>> +};
>> +
>> +struct nouveau_dvfs {
>> + struct nouveau_subdev base;
>> + struct nouveau_alarm alarm;
>> + struct nouveau_dvfs_data *data;
>> +};
>> +
>> +static inline struct nouveau_dvfs *
>> +nouveau_dvfs(void *obj)
>> +{
>> + return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DVFS];
>> +}
>> +
>> +extern struct no...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...arget;
>>>> + int p_load_max;
>>>> + int p_smooth;
>>>> + unsigned int avg_load;
>>>> +};
>>>> +
>>>> +struct nouveau_dvfs {
>>>> + struct nouveau_subdev base;
>>>> + struct nouveau_alarm alarm;
>>>> + struct nouveau_dvfs_data *data;
>>>> +};
>>>> +
>>>> +static inline struct nouveau_dvfs *
>>>> +nouveau_dvfs(void *obj)
>>>> +{
>>>> + return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_...
2014 Dec 22
7
[PATCH V2 1/4] clk: allow non-blocking for nouveau_clock_astate()
There might be some callers of nouveau_clock_astate(), and they are from
inetrrupt context. So we must ensure that this function can be atomic in
that condition. This patch adds one parameter which is subsequently passed
to nouveau_pstate_calc(). Therefore we can choose whether we want to wait
for the pstate work's completion or not.
Signed-off-by: Vince Hsu <vinceh at nvidia.com>
---