Lines Matching refs:fp
92 static void set_fan_speeds(struct bbc_fan_control *fp) in set_fan_speeds() argument
97 if (fp->cpu_fan_speed < FAN_SPEED_MIN) in set_fan_speeds()
98 fp->cpu_fan_speed = FAN_SPEED_MIN; in set_fan_speeds()
99 if (fp->cpu_fan_speed > FAN_SPEED_MAX) in set_fan_speeds()
100 fp->cpu_fan_speed = FAN_SPEED_MAX; in set_fan_speeds()
101 if (fp->system_fan_speed < FAN_SPEED_MIN) in set_fan_speeds()
102 fp->system_fan_speed = FAN_SPEED_MIN; in set_fan_speeds()
103 if (fp->system_fan_speed > FAN_SPEED_MAX) in set_fan_speeds()
104 fp->system_fan_speed = FAN_SPEED_MAX; in set_fan_speeds()
107 fp->index, in set_fan_speeds()
108 fp->cpu_fan_speed, fp->system_fan_speed); in set_fan_speeds()
111 bbc_i2c_writeb(fp->client, fp->cpu_fan_speed, CPU_FAN_REG); in set_fan_speeds()
112 bbc_i2c_writeb(fp->client, fp->system_fan_speed, SYS_FAN_REG); in set_fan_speeds()
113 bbc_i2c_writeb(fp->client, in set_fan_speeds()
114 (fp->psupply_fan_on ? in set_fan_speeds()
319 static int maybe_new_ambient_fan_speed(struct bbc_fan_control *fp) in maybe_new_ambient_fan_speed() argument
329 if (fp->system_fan_speed >= FAN_SPEED_MAX) in maybe_new_ambient_fan_speed()
332 fp->system_fan_speed = FAN_SPEED_MAX; in maybe_new_ambient_fan_speed()
335 if (fp->system_fan_speed >= FAN_SPEED_MAX) in maybe_new_ambient_fan_speed()
338 fp->system_fan_speed += 2; in maybe_new_ambient_fan_speed()
340 int orig_speed = fp->system_fan_speed; in maybe_new_ambient_fan_speed()
343 orig_speed <= (fp->cpu_fan_speed - 3)) in maybe_new_ambient_fan_speed()
346 fp->system_fan_speed -= 1; in maybe_new_ambient_fan_speed()
353 static int maybe_new_cpu_fan_speed(struct bbc_fan_control *fp) in maybe_new_cpu_fan_speed() argument
363 if (fp->cpu_fan_speed >= FAN_SPEED_MAX) in maybe_new_cpu_fan_speed()
366 fp->cpu_fan_speed = FAN_SPEED_MAX; in maybe_new_cpu_fan_speed()
369 if (fp->cpu_fan_speed >= FAN_SPEED_MAX) in maybe_new_cpu_fan_speed()
372 fp->cpu_fan_speed += 2; in maybe_new_cpu_fan_speed()
373 if (fp->system_fan_speed < in maybe_new_cpu_fan_speed()
374 (fp->cpu_fan_speed - 3)) in maybe_new_cpu_fan_speed()
375 fp->system_fan_speed = in maybe_new_cpu_fan_speed()
376 fp->cpu_fan_speed - 3; in maybe_new_cpu_fan_speed()
379 if (fp->cpu_fan_speed <= FAN_SPEED_MIN) in maybe_new_cpu_fan_speed()
382 fp->cpu_fan_speed -= 1; in maybe_new_cpu_fan_speed()
389 static void maybe_new_fan_speeds(struct bbc_fan_control *fp) in maybe_new_fan_speeds() argument
393 new = maybe_new_ambient_fan_speed(fp); in maybe_new_fan_speeds()
394 new |= maybe_new_cpu_fan_speed(fp); in maybe_new_fan_speeds()
397 set_fan_speeds(fp); in maybe_new_fan_speeds()
402 struct bbc_fan_control *fp; in fans_full_blast() local
407 list_for_each_entry(fp, &all_fans, glob_list) { in fans_full_blast()
408 fp->cpu_fan_speed = FAN_SPEED_MAX; in fans_full_blast()
409 fp->system_fan_speed = FAN_SPEED_MAX; in fans_full_blast()
410 fp->psupply_fan_on = 1; in fans_full_blast()
411 set_fan_speeds(fp); in fans_full_blast()
425 struct bbc_fan_control *fp; in kenvctrld() local
435 list_for_each_entry(fp, &all_fans, glob_list) in kenvctrld()
436 maybe_new_fan_speeds(fp); in kenvctrld()
496 struct bbc_fan_control *fp; in attach_one_fan() local
498 fp = kzalloc(sizeof(*fp), GFP_KERNEL); in attach_one_fan()
499 if (!fp) in attach_one_fan()
502 INIT_LIST_HEAD(&fp->bp_list); in attach_one_fan()
503 INIT_LIST_HEAD(&fp->glob_list); in attach_one_fan()
505 fp->client = bbc_i2c_attach(bp, op); in attach_one_fan()
506 if (!fp->client) { in attach_one_fan()
507 kfree(fp); in attach_one_fan()
511 fp->index = fan_idx; in attach_one_fan()
513 list_add(&fp->glob_list, &all_fans); in attach_one_fan()
514 list_add(&fp->bp_list, &bp->fans); in attach_one_fan()
522 fp->psupply_fan_on = 1; in attach_one_fan()
523 fp->cpu_fan_speed = (FAN_SPEED_MAX - FAN_SPEED_MIN) / 2; in attach_one_fan()
524 fp->cpu_fan_speed += FAN_SPEED_MIN; in attach_one_fan()
525 fp->system_fan_speed = (FAN_SPEED_MAX - FAN_SPEED_MIN) / 2; in attach_one_fan()
526 fp->system_fan_speed += FAN_SPEED_MIN; in attach_one_fan()
528 set_fan_speeds(fp); in attach_one_fan()
548 static void destroy_one_fan(struct bbc_fan_control *fp) in destroy_one_fan() argument
550 bbc_i2c_detach(fp->client); in destroy_one_fan()
551 kfree(fp); in destroy_one_fan()
556 struct bbc_fan_control *fp, *fpos; in destroy_all_fans() local
558 list_for_each_entry_safe(fp, fpos, &bp->fans, bp_list) { in destroy_all_fans()
559 list_del(&fp->bp_list); in destroy_all_fans()
560 list_del(&fp->glob_list); in destroy_all_fans()
561 destroy_one_fan(fp); in destroy_all_fans()