Lines Matching refs:fan
81 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_release() local
83 kref_put(&fan->fcu_priv->ref, wf_fcu_release); in wf_fcu_fan_release()
84 kfree(fan); in wf_fcu_fan_release()
147 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_set_rpm() local
148 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_fan_set_rpm()
152 if (value < fan->min) in wf_fcu_fan_set_rpm()
153 value = fan->min; in wf_fcu_fan_set_rpm()
154 if (value > fan->max) in wf_fcu_fan_set_rpm()
155 value = fan->max; in wf_fcu_fan_set_rpm()
157 fan->target = value; in wf_fcu_fan_set_rpm()
161 rc = wf_fcu_write_reg(pv, 0x10 + (fan->id * 2), buf, 2); in wf_fcu_fan_set_rpm()
169 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_get_rpm() local
170 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_fan_get_rpm()
179 if ((failure & (1 << fan->id)) != 0) in wf_fcu_fan_get_rpm()
184 if ((active & (1 << fan->id)) == 0) in wf_fcu_fan_get_rpm()
193 rc = wf_fcu_read_reg(pv, reg_base + (fan->id * 2), buf, 2); in wf_fcu_fan_get_rpm()
204 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_set_pwm() local
205 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_fan_set_pwm()
209 if (value < fan->min) in wf_fcu_fan_set_pwm()
210 value = fan->min; in wf_fcu_fan_set_pwm()
211 if (value > fan->max) in wf_fcu_fan_set_pwm()
212 value = fan->max; in wf_fcu_fan_set_pwm()
214 fan->target = value; in wf_fcu_fan_set_pwm()
218 rc = wf_fcu_write_reg(pv, 0x30 + (fan->id * 2), buf, 1); in wf_fcu_fan_set_pwm()
226 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_get_pwm() local
227 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_fan_get_pwm()
236 if ((failure & (1 << fan->id)) != 0) in wf_fcu_fan_get_pwm()
241 if ((active & (1 << fan->id)) == 0) in wf_fcu_fan_get_pwm()
244 rc = wf_fcu_read_reg(pv, 0x30 + (fan->id * 2), buf, 1); in wf_fcu_fan_get_pwm()
255 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_min() local
257 return fan->min; in wf_fcu_fan_min()
262 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_max() local
264 return fan->max; in wf_fcu_fan_max()
285 static void wf_fcu_get_pump_minmax(struct wf_fcu_fan *fan) in wf_fcu_get_pump_minmax() argument
313 fan->min = pump_min; in wf_fcu_get_pump_minmax()
314 fan->max = pump_max; in wf_fcu_get_pump_minmax()
317 fan->ctrl.name, pump_min, pump_max); in wf_fcu_get_pump_minmax()
320 static void wf_fcu_get_rpmfan_minmax(struct wf_fcu_fan *fan) in wf_fcu_get_rpmfan_minmax() argument
322 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_get_rpmfan_minmax()
327 fan->min = 2400 >> pv->rpm_shift; in wf_fcu_get_rpmfan_minmax()
328 fan->max = 56000 >> pv->rpm_shift; in wf_fcu_get_rpmfan_minmax()
331 if (mpu0 && !strcmp(fan->ctrl.name, "cpu-front-fan-0")) { in wf_fcu_get_rpmfan_minmax()
332 fan->min = max(fan->min, (s32)mpu0->rminn_intake_fan); in wf_fcu_get_rpmfan_minmax()
333 fan->max = min(fan->max, (s32)mpu0->rmaxn_intake_fan); in wf_fcu_get_rpmfan_minmax()
336 if (mpu1 && !strcmp(fan->ctrl.name, "cpu-front-fan-1")) { in wf_fcu_get_rpmfan_minmax()
337 fan->min = max(fan->min, (s32)mpu1->rminn_intake_fan); in wf_fcu_get_rpmfan_minmax()
338 fan->max = min(fan->max, (s32)mpu1->rmaxn_intake_fan); in wf_fcu_get_rpmfan_minmax()
341 if (mpu0 && !strcmp(fan->ctrl.name, "cpu-rear-fan-0")) { in wf_fcu_get_rpmfan_minmax()
342 fan->min = max(fan->min, (s32)mpu0->rminn_exhaust_fan); in wf_fcu_get_rpmfan_minmax()
343 fan->max = min(fan->max, (s32)mpu0->rmaxn_exhaust_fan); in wf_fcu_get_rpmfan_minmax()
346 if (mpu1 && !strcmp(fan->ctrl.name, "cpu-rear-fan-1")) { in wf_fcu_get_rpmfan_minmax()
347 fan->min = max(fan->min, (s32)mpu1->rminn_exhaust_fan); in wf_fcu_get_rpmfan_minmax()
348 fan->max = min(fan->max, (s32)mpu1->rmaxn_exhaust_fan); in wf_fcu_get_rpmfan_minmax()
352 if (!strncmp(fan->ctrl.name, "cpu-fan", 7)) { in wf_fcu_get_rpmfan_minmax()
353 fan->min = max(fan->min, (s32)mpu0->rminn_intake_fan); in wf_fcu_get_rpmfan_minmax()
354 fan->max = min(fan->max, (s32)mpu0->rmaxn_intake_fan); in wf_fcu_get_rpmfan_minmax()
359 fan->ctrl.name, fan->min, fan->max); in wf_fcu_get_rpmfan_minmax()
365 struct wf_fcu_fan *fan; in wf_fcu_add_fan() local
367 fan = kzalloc(sizeof(*fan), GFP_KERNEL); in wf_fcu_add_fan()
368 if (!fan) in wf_fcu_add_fan()
370 fan->fcu_priv = pv; in wf_fcu_add_fan()
371 fan->id = id; in wf_fcu_add_fan()
372 fan->ctrl.name = name; in wf_fcu_add_fan()
373 fan->ctrl.priv = fan; in wf_fcu_add_fan()
380 wf_fcu_get_pump_minmax(fan); in wf_fcu_add_fan()
382 wf_fcu_get_rpmfan_minmax(fan); in wf_fcu_add_fan()
383 fan->ctrl.type = WF_CONTROL_RPM_FAN; in wf_fcu_add_fan()
384 fan->ctrl.ops = &wf_fcu_fan_rpm_ops; in wf_fcu_add_fan()
386 fan->min = 10; in wf_fcu_add_fan()
387 fan->max = 100; in wf_fcu_add_fan()
388 fan->ctrl.type = WF_CONTROL_PWM_FAN; in wf_fcu_add_fan()
389 fan->ctrl.ops = &wf_fcu_fan_pwm_ops; in wf_fcu_add_fan()
392 if (wf_register_control(&fan->ctrl)) { in wf_fcu_add_fan()
394 kfree(fan); in wf_fcu_add_fan()
397 list_add(&fan->link, &pv->fan_list); in wf_fcu_add_fan()
569 struct wf_fcu_fan *fan; in wf_fcu_remove() local
572 fan = list_first_entry(&pv->fan_list, struct wf_fcu_fan, link); in wf_fcu_remove()
573 list_del(&fan->link); in wf_fcu_remove()
574 wf_unregister_control(&fan->ctrl); in wf_fcu_remove()