Lines Matching full:rising
574 __clear_bit(bit, &mcu->rising); in omnia_irq_shutdown()
586 __clear_bit(bit, &mcu->rising); in omnia_irq_mask()
601 __set_bit(bit, &mcu->rising); in omnia_irq_unmask()
617 __assign_bit(bit, &mcu->rising, type & IRQ_TYPE_EDGE_RISING); in omnia_irq_set_type()
636 * omnia_mask_interleave - Interleaves the bytes from @rising and @falling
638 * @rising: rising mask
641 * Interleaves the little-endian bytes from @rising and @falling words.
643 * If @rising = (r0, r1, r2, r3) and @falling = (f0, f1, f2, f3), the result is
656 omnia_mask_interleave(u8 *dst, unsigned long rising, unsigned long falling) in omnia_mask_interleave() argument
659 dst[2 * i] = rising >> (8 * i); in omnia_mask_interleave()
665 * omnia_mask_deinterleave - Deinterleaves the bytes into @rising and @falling
667 * @rising: pointer where to store the rising mask gathered from @src
672 static void omnia_mask_deinterleave(const u8 *src, unsigned long *rising, in omnia_mask_deinterleave() argument
675 *rising = *falling = 0; in omnia_mask_deinterleave()
678 *rising |= src[2 * i] << (8 * i); in omnia_mask_deinterleave()
689 unsigned long rising, falling; in omnia_irq_bus_sync_unlock() local
698 rising = mcu->rising & mcu->mask; in omnia_irq_bus_sync_unlock()
701 /* interleave the rising and falling bytes into the command arguments */ in omnia_irq_bus_sync_unlock()
702 omnia_mask_interleave(&cmd[1], rising, falling); in omnia_irq_bus_sync_unlock()
713 * Remember which GPIOs have both rising and falling interrupts enabled. in omnia_irq_bus_sync_unlock()
718 mcu->both = rising & falling; in omnia_irq_bus_sync_unlock()
770 omnia_irq_compute_pending_length(unsigned long rising, unsigned long falling) in omnia_irq_compute_pending_length() argument
772 return max(omnia_compute_reply_length(rising, true, 0), in omnia_irq_compute_pending_length()
781 unsigned long rising, falling; in omnia_irq_read_pending_new() local
785 len = omnia_irq_compute_pending_length(mcu->rising & mcu->mask, in omnia_irq_read_pending_new()
799 /* deinterleave the reply bytes into rising and falling */ in omnia_irq_read_pending_new()
800 omnia_mask_deinterleave(reply, &rising, &falling); in omnia_irq_read_pending_new()
802 rising &= mcu->mask; in omnia_irq_read_pending_new()
804 *pending = rising | falling; in omnia_irq_read_pending_new()
807 mcu->is_cached &= ~(rising & falling); in omnia_irq_read_pending_new()
808 mcu->is_cached |= mcu->both & (rising ^ falling); in omnia_irq_read_pending_new()
809 mcu->cached = (mcu->cached | rising) & ~falling; in omnia_irq_read_pending_new()
845 fill_int_from_sts(unsigned long *rising, unsigned long *falling, in fill_int_from_sts() argument
850 *rising |= int_bit; in fill_int_from_sts()
858 unsigned long status, rising_sts, falling_sts, rising, falling; in omnia_irq_read_pending_old() local
911 rising = 0; in omnia_irq_read_pending_old()
913 fill_int_from_sts(&rising, &falling, rising_sts, falling_sts, in omnia_irq_read_pending_old()
915 fill_int_from_sts(&rising, &falling, rising_sts, falling_sts, in omnia_irq_read_pending_old()
917 fill_int_from_sts(&rising, &falling, rising_sts, falling_sts, in omnia_irq_read_pending_old()
921 rising &= mcu->rising & mcu->mask; in omnia_irq_read_pending_old()
923 *pending = rising | falling; in omnia_irq_read_pending_old()