Lines Matching defs:msgr

30 static inline void _mpic_msgr_mer_write(struct mpic_msgr *msgr, u32 value)
32 out_be32(msgr->mer, value);
35 static inline u32 _mpic_msgr_mer_read(struct mpic_msgr *msgr)
37 return in_be32(msgr->mer);
40 static inline void _mpic_msgr_disable(struct mpic_msgr *msgr)
42 u32 mer = _mpic_msgr_mer_read(msgr);
44 _mpic_msgr_mer_write(msgr, mer & ~(1 << msgr->num));
50 struct mpic_msgr *msgr;
53 msgr = ERR_PTR(-EBUSY);
59 msgr = mpic_msgrs[reg_num];
60 if (msgr->in_use == MSGR_FREE)
61 msgr->in_use = MSGR_INUSE;
64 return msgr;
68 void mpic_msgr_put(struct mpic_msgr *msgr)
72 raw_spin_lock_irqsave(&msgr->lock, flags);
73 msgr->in_use = MSGR_FREE;
74 _mpic_msgr_disable(msgr);
75 raw_spin_unlock_irqrestore(&msgr->lock, flags);
79 void mpic_msgr_enable(struct mpic_msgr *msgr)
84 raw_spin_lock_irqsave(&msgr->lock, flags);
85 mer = _mpic_msgr_mer_read(msgr);
86 _mpic_msgr_mer_write(msgr, mer | (1 << msgr->num));
87 raw_spin_unlock_irqrestore(&msgr->lock, flags);
91 void mpic_msgr_disable(struct mpic_msgr *msgr)
95 raw_spin_lock_irqsave(&msgr->lock, flags);
96 _mpic_msgr_disable(msgr);
97 raw_spin_unlock_irqrestore(&msgr->lock, flags);
117 snprintf(buf, sizeof(buf), "mpic-msgr-block%d", count);
147 snprintf(buf, sizeof(buf), "mpic-msgr-block%d", index);
213 prop = of_get_property(np, "mpic-msgr-receive-mask", NULL);
218 struct mpic_msgr *msgr;
221 msgr = kzalloc(sizeof(struct mpic_msgr), GFP_KERNEL);
222 if (!msgr) {
228 msgr->base = msgr_block_addr + i * MPIC_MSGR_STRIDE;
229 msgr->mer = (u32 *)((u8 *)msgr->base + MPIC_MSGR_MER_OFFSET);
230 msgr->in_use = MSGR_FREE;
231 msgr->num = i;
232 raw_spin_lock_init(&msgr->lock);
235 msgr->irq = irq_of_parse_and_map(np, irq_index);
236 if (!msgr->irq) {
239 kfree(msgr);
244 msgr->irq = 0;
247 mpic_msgrs[reg_number] = msgr;
248 mpic_msgr_disable(msgr);
250 reg_number, msgr->irq);
259 .compatible = "fsl,mpic-v3.1-msgr",
267 .name = "mpic-msgr",