Lines Matching refs:mgi
312 struct mvebu_gpio_irqsrc *mgi, uint32_t val) in intr_modify() argument
316 bit = GPIO_BIT(mgi->irq); in intr_modify()
318 sc->offset + GPIO_REGNUM(mgi->irq) + reg, 1 << bit, in intr_modify()
324 struct mvebu_gpio_irqsrc *mgi, uint32_t val) in mvebu_gpio_isrc_mask() argument
327 if (mgi->is_level) in mvebu_gpio_isrc_mask()
328 intr_modify(sc, GPIO_INT_LEVEL_MASK, mgi, val); in mvebu_gpio_isrc_mask()
330 intr_modify(sc, GPIO_INT_MASK, mgi, val); in mvebu_gpio_isrc_mask()
335 struct mvebu_gpio_irqsrc *mgi) in mvebu_gpio_isrc_eoi() argument
339 if (!mgi->is_level) { in mvebu_gpio_isrc_eoi()
340 bit = GPIO_BIT(mgi->irq); in mvebu_gpio_isrc_eoi()
342 sc->offset + GPIO_REGNUM(mgi->irq) + GPIO_INT_CAUSE, in mvebu_gpio_isrc_eoi()
390 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_disable_intr() local
393 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_disable_intr()
394 mvebu_gpio_isrc_mask(sc, mgi, 0); in mvebu_gpio_pic_disable_intr()
401 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_enable_intr() local
404 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_enable_intr()
405 mvebu_gpio_isrc_mask(sc, mgi, 1); in mvebu_gpio_pic_enable_intr()
527 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_post_filter() local
530 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_post_filter()
531 if (mgi->is_level) in mvebu_gpio_pic_post_filter()
532 mvebu_gpio_isrc_eoi(sc, mgi); in mvebu_gpio_pic_post_filter()
539 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_post_ithread() local
542 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_post_ithread()
543 mvebu_gpio_isrc_mask(sc, mgi, 1); in mvebu_gpio_pic_post_ithread()
550 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_pre_ithread() local
553 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_pre_ithread()
555 mvebu_gpio_isrc_mask(sc, mgi, 0); in mvebu_gpio_pic_pre_ithread()
556 if (mgi->is_level) in mvebu_gpio_pic_pre_ithread()
557 mvebu_gpio_isrc_eoi(sc, mgi); in mvebu_gpio_pic_pre_ithread()
568 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_setup_intr() local
571 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_setup_intr()
602 mgi->is_level == level && mgi->is_inverted == inverted ? in mvebu_gpio_pic_setup_intr()
605 mgi->is_level = level; in mvebu_gpio_pic_setup_intr()
606 mgi->is_inverted = inverted; in mvebu_gpio_pic_setup_intr()
609 intr_modify(sc, GPIO_DATA_IN_POL, mgi, inverted ? 1 : 0); in mvebu_gpio_pic_setup_intr()
621 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_pic_teardown_intr() local
624 mgi = (struct mvebu_gpio_irqsrc *)isrc; in mvebu_gpio_pic_teardown_intr()
627 mvebu_gpio_isrc_mask(sc, mgi, 0); in mvebu_gpio_pic_teardown_intr()
643 struct mvebu_gpio_irqsrc *mgi; in mvebu_gpio_intr() local
658 mgi = &sc->isrcs[i]; in mvebu_gpio_intr()
659 if (!mgi->is_level) in mvebu_gpio_intr()
660 mvebu_gpio_isrc_eoi(sc, mgi); in mvebu_gpio_intr()
662 if (intr_isrc_dispatch(&mgi->isrc, tf) != 0) { in mvebu_gpio_intr()
663 mvebu_gpio_isrc_mask(sc, mgi, 0); in mvebu_gpio_intr()
664 if (mgi->is_level) in mvebu_gpio_intr()
665 mvebu_gpio_isrc_eoi(sc, mgi); in mvebu_gpio_intr()
667 "Stray irq %u disabled\n", mgi->irq); in mvebu_gpio_intr()