Lines Matching full:bank
62 * Each bank (BANK0 and BANK1) has two usage counts - LEDs using the
161 /* Bank 2 is Master Intensity and doesn't use times */
162 struct bank { struct
167 } bank[3]; member
178 int bank; /* Bank used, or -1 */ member
280 * bank or other. This can be used for timers, for levels, or for
283 static void set_code(struct tca6507_chip *tca, int reg, int bank, int new) in set_code() argument
287 if (bank) { in set_code()
300 static void set_level(struct tca6507_chip *tca, int bank, int level) in set_level() argument
302 switch (bank) { in set_level()
305 set_code(tca, TCA6507_MAX_INTENSITY, bank, level); in set_level()
311 tca->bank[bank].level = level; in set_level()
314 /* Record all relevant time codes for a given bank */
315 static void set_times(struct tca6507_chip *tca, int bank) in set_times() argument
320 result = choose_times(tca->bank[bank].ontime, &c1, &c2); in set_times()
326 c2, time_codes[c2], tca->bank[bank].ontime); in set_times()
327 set_code(tca, TCA6507_FADE_ON, bank, c2); in set_times()
328 set_code(tca, TCA6507_FULL_ON, bank, c1); in set_times()
329 tca->bank[bank].ontime = result; in set_times()
331 result = choose_times(tca->bank[bank].offtime, &c1, &c2); in set_times()
335 c2, time_codes[c2], tca->bank[bank].offtime); in set_times()
336 set_code(tca, TCA6507_FADE_OFF, bank, c2); in set_times()
337 set_code(tca, TCA6507_FIRST_OFF, bank, c1); in set_times()
338 set_code(tca, TCA6507_SECOND_OFF, bank, c1); in set_times()
339 tca->bank[bank].offtime = result; in set_times()
341 set_code(tca, TCA6507_INITIALIZE, bank, INIT_CODE); in set_times()
370 if (led->bank >= 0) { in led_release()
371 struct bank *b = tca->bank + led->bank; in led_release()
377 led->bank = -1; in led_release()
382 /* Assign this led to a bank, configuring that bank if in led_prepare()
388 struct bank *b; in led_prepare()
400 * bank. If none perfect, choose best. Count in led_prepare()
401 * backwards so we check MASTER bank first to avoid in led_prepare()
414 if (tca->bank[i].level == level || in led_prepare()
415 tca->bank[i].level_use == 0) { in led_prepare()
419 d = abs(level - tca->bank[i].level); in led_prepare()
432 if (!tca->bank[best].level_use) in led_prepare()
435 tca->bank[best].level_use++; in led_prepare()
436 led->bank = best; in led_prepare()
438 led->led_cdev.brightness = TO_BRIGHT(tca->bank[best].level); in led_prepare()
444 * bank. First check if times are compatible with hardware in led_prepare()
453 if (tca->bank[i].level_use == 0) in led_prepare()
456 if (tca->bank[i].level != level) in led_prepare()
463 if (tca->bank[i].time_use == 0) in led_prepare()
467 if (!(tca->bank[i].on_dflt || in led_prepare()
469 tca->bank[i].ontime == led->ontime)) in led_prepare()
473 if (!(tca->bank[i].off_dflt || in led_prepare()
475 tca->bank[i].offtime == led->offtime)) in led_prepare()
487 b = &tca->bank[i]; in led_prepare()
491 led->bank = i; in led_prepare()
776 l->bank = -1; in tca6507_probe()