Lines Matching full:rising

564 	__clear_bit(bit, &mcu->rising);  in omnia_irq_shutdown()
576 __clear_bit(bit, &mcu->rising); in omnia_irq_mask()
591 __set_bit(bit, &mcu->rising); in omnia_irq_unmask()
607 __assign_bit(bit, &mcu->rising, type & IRQ_TYPE_EDGE_RISING); in omnia_irq_set_type()
626 * omnia_mask_interleave - Interleaves the bytes from @rising and @falling
628 * @rising: rising mask
631 * Interleaves the little-endian bytes from @rising and @falling words.
633 * If @rising = (r0, r1, r2, r3) and @falling = (f0, f1, f2, f3), the result is
646 omnia_mask_interleave(u8 *dst, unsigned long rising, unsigned long falling) in omnia_mask_interleave() argument
649 dst[2 * i] = rising >> (8 * i); in omnia_mask_interleave()
655 * omnia_mask_deinterleave - Deinterleaves the bytes into @rising and @falling
657 * @rising: pointer where to store the rising mask gathered from @src
662 static void omnia_mask_deinterleave(const u8 *src, unsigned long *rising, in omnia_mask_deinterleave() argument
665 *rising = *falling = 0; in omnia_mask_deinterleave()
668 *rising |= src[2 * i] << (8 * i); in omnia_mask_deinterleave()
679 unsigned long rising, falling; in omnia_irq_bus_sync_unlock() local
688 rising = mcu->rising & mcu->mask; in omnia_irq_bus_sync_unlock()
691 /* interleave the rising and falling bytes into the command arguments */ in omnia_irq_bus_sync_unlock()
692 omnia_mask_interleave(&cmd[1], rising, falling); in omnia_irq_bus_sync_unlock()
703 * Remember which GPIOs have both rising and falling interrupts enabled. in omnia_irq_bus_sync_unlock()
708 mcu->both = rising & falling; in omnia_irq_bus_sync_unlock()
760 omnia_irq_compute_pending_length(unsigned long rising, unsigned long falling) in omnia_irq_compute_pending_length() argument
762 return max(omnia_compute_reply_length(rising, true, 0), in omnia_irq_compute_pending_length()
771 unsigned long rising, falling; in omnia_irq_read_pending_new() local
775 len = omnia_irq_compute_pending_length(mcu->rising & mcu->mask, in omnia_irq_read_pending_new()
789 /* deinterleave the reply bytes into rising and falling */ in omnia_irq_read_pending_new()
790 omnia_mask_deinterleave(reply, &rising, &falling); in omnia_irq_read_pending_new()
792 rising &= mcu->mask; in omnia_irq_read_pending_new()
794 *pending = rising | falling; in omnia_irq_read_pending_new()
797 mcu->is_cached &= ~(rising & falling); in omnia_irq_read_pending_new()
798 mcu->is_cached |= mcu->both & (rising ^ falling); in omnia_irq_read_pending_new()
799 mcu->cached = (mcu->cached | rising) & ~falling; in omnia_irq_read_pending_new()
835 fill_int_from_sts(unsigned long *rising, unsigned long *falling, in fill_int_from_sts() argument
840 *rising |= int_bit; in fill_int_from_sts()
848 unsigned long status, rising_sts, falling_sts, rising, falling; in omnia_irq_read_pending_old() local
901 rising = 0; in omnia_irq_read_pending_old()
903 fill_int_from_sts(&rising, &falling, rising_sts, falling_sts, in omnia_irq_read_pending_old()
905 fill_int_from_sts(&rising, &falling, rising_sts, falling_sts, in omnia_irq_read_pending_old()
907 fill_int_from_sts(&rising, &falling, rising_sts, falling_sts, in omnia_irq_read_pending_old()
911 rising &= mcu->rising & mcu->mask; in omnia_irq_read_pending_old()
913 *pending = rising | falling; in omnia_irq_read_pending_old()