Lines Matching refs:ipa
41 struct ipa *ipa; member
49 struct ipa *ipa = interrupt->ipa; in ipa_interrupt_process() local
54 reg = ipa_reg(ipa, IPA_IRQ_CLR); in ipa_interrupt_process()
63 iowrite32(mask, ipa->reg_virt + offset); in ipa_interrupt_process()
64 ipa_uc_interrupt_handler(ipa, irq_id); in ipa_interrupt_process()
73 ipa_power_suspend_handler(ipa, irq_id); in ipa_interrupt_process()
77 iowrite32(mask, ipa->reg_virt + offset); in ipa_interrupt_process()
86 struct ipa *ipa = interrupt->ipa; in ipa_isr_thread() local
95 dev = &ipa->pdev->dev; in ipa_isr_thread()
104 reg = ipa_reg(ipa, IPA_IRQ_STTS); in ipa_isr_thread()
106 pending = ioread32(ipa->reg_virt + offset); in ipa_isr_thread()
115 pending = ioread32(ipa->reg_virt + offset); in ipa_isr_thread()
122 reg = ipa_reg(ipa, IPA_IRQ_CLR); in ipa_isr_thread()
123 iowrite32(pending, ipa->reg_virt + reg_offset(reg)); in ipa_isr_thread()
132 static void ipa_interrupt_enabled_update(struct ipa *ipa) in ipa_interrupt_enabled_update() argument
134 const struct reg *reg = ipa_reg(ipa, IPA_IRQ_EN); in ipa_interrupt_enabled_update()
136 iowrite32(ipa->interrupt->enabled, ipa->reg_virt + reg_offset(reg)); in ipa_interrupt_enabled_update()
140 void ipa_interrupt_enable(struct ipa *ipa, enum ipa_irq_id ipa_irq) in ipa_interrupt_enable() argument
143 ipa->interrupt->enabled |= BIT(ipa_irq); in ipa_interrupt_enable()
144 ipa_interrupt_enabled_update(ipa); in ipa_interrupt_enable()
148 void ipa_interrupt_disable(struct ipa *ipa, enum ipa_irq_id ipa_irq) in ipa_interrupt_disable() argument
151 ipa->interrupt->enabled &= ~BIT(ipa_irq); in ipa_interrupt_disable()
152 ipa_interrupt_enabled_update(ipa); in ipa_interrupt_disable()
155 void ipa_interrupt_irq_disable(struct ipa *ipa) in ipa_interrupt_irq_disable() argument
157 disable_irq(ipa->interrupt->irq); in ipa_interrupt_irq_disable()
160 void ipa_interrupt_irq_enable(struct ipa *ipa) in ipa_interrupt_irq_enable() argument
162 enable_irq(ipa->interrupt->irq); in ipa_interrupt_irq_enable()
169 struct ipa *ipa = interrupt->ipa; in ipa_interrupt_suspend_control() local
176 WARN_ON(!test_bit(endpoint_id, ipa->available)); in ipa_interrupt_suspend_control()
179 if (ipa->version == IPA_VERSION_3_0) in ipa_interrupt_suspend_control()
182 reg = ipa_reg(ipa, IRQ_SUSPEND_EN); in ipa_interrupt_suspend_control()
184 val = ioread32(ipa->reg_virt + offset); in ipa_interrupt_suspend_control()
191 iowrite32(val, ipa->reg_virt + offset); in ipa_interrupt_suspend_control()
211 struct ipa *ipa = interrupt->ipa; in ipa_interrupt_suspend_clear_all() local
215 unit_count = roundup(ipa->endpoint_count, 32); in ipa_interrupt_suspend_clear_all()
220 reg = ipa_reg(ipa, IRQ_SUSPEND_INFO); in ipa_interrupt_suspend_clear_all()
221 val = ioread32(ipa->reg_virt + reg_n_offset(reg, unit)); in ipa_interrupt_suspend_clear_all()
224 if (ipa->version == IPA_VERSION_3_0) in ipa_interrupt_suspend_clear_all()
227 reg = ipa_reg(ipa, IRQ_SUSPEND_CLR); in ipa_interrupt_suspend_clear_all()
228 iowrite32(val, ipa->reg_virt + reg_n_offset(reg, unit)); in ipa_interrupt_suspend_clear_all()
239 struct ipa_interrupt *ipa_interrupt_config(struct ipa *ipa) in ipa_interrupt_config() argument
241 struct device *dev = &ipa->pdev->dev; in ipa_interrupt_config()
247 ret = platform_get_irq_byname(ipa->pdev, "ipa"); in ipa_interrupt_config()
258 interrupt->ipa = ipa; in ipa_interrupt_config()
262 reg = ipa_reg(ipa, IPA_IRQ_EN); in ipa_interrupt_config()
263 iowrite32(0, ipa->reg_virt + reg_offset(reg)); in ipa_interrupt_config()
291 struct device *dev = &interrupt->ipa->pdev->dev; in ipa_interrupt_deconfig()