Lines Matching full:d

44 	struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);  in regmap_irq_lock()  local
46 mutex_lock(&d->lock); in regmap_irq_lock()
51 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data); in regmap_irq_sync_unlock() local
59 for (i = 0; i < d->chip->num_regs; i++) { in regmap_irq_sync_unlock()
60 ret = regmap_update_bits(d->map, d->chip->mask_base + i, in regmap_irq_sync_unlock()
61 d->mask_buf_def[i], d->mask_buf[i]); in regmap_irq_sync_unlock()
63 dev_err(d->map->dev, "Failed to sync masks in %x\n", in regmap_irq_sync_unlock()
64 d->chip->mask_base + i); in regmap_irq_sync_unlock()
67 mutex_unlock(&d->lock); in regmap_irq_sync_unlock()
72 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data); in regmap_irq_enable() local
73 const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->irq); in regmap_irq_enable()
75 d->mask_buf[irq_data->reg_offset] &= ~irq_data->mask; in regmap_irq_enable()
80 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data); in regmap_irq_disable() local
81 const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->irq); in regmap_irq_disable()
83 d->mask_buf[irq_data->reg_offset] |= irq_data->mask; in regmap_irq_disable()
94 static irqreturn_t regmap_irq_thread(int irq, void *d) in regmap_irq_thread() argument
96 struct regmap_irq_chip_data *data = d; in regmap_irq_thread()
108 dev_err(map->dev, "Failed to read IRQ status: %d\n", ret); in regmap_irq_thread()
141 dev_err(map->dev, "Failed to ack 0x%x: %d\n", in regmap_irq_thread()
179 struct regmap_irq_chip_data *d; in regmap_add_irq_chip() local
185 dev_warn(map->dev, "Failed to allocate IRQs: %d\n", in regmap_add_irq_chip()
190 d = kzalloc(sizeof(*d), GFP_KERNEL); in regmap_add_irq_chip()
191 if (!d) in regmap_add_irq_chip()
194 d->status_buf = kzalloc(sizeof(unsigned int) * chip->num_regs, in regmap_add_irq_chip()
196 if (!d->status_buf) in regmap_add_irq_chip()
199 d->status_reg_buf = kzalloc(map->format.val_bytes * chip->num_regs, in regmap_add_irq_chip()
201 if (!d->status_reg_buf) in regmap_add_irq_chip()
204 d->mask_buf = kzalloc(sizeof(unsigned int) * chip->num_regs, in regmap_add_irq_chip()
206 if (!d->mask_buf) in regmap_add_irq_chip()
209 d->mask_buf_def = kzalloc(sizeof(unsigned int) * chip->num_regs, in regmap_add_irq_chip()
211 if (!d->mask_buf_def) in regmap_add_irq_chip()
214 d->map = map; in regmap_add_irq_chip()
215 d->chip = chip; in regmap_add_irq_chip()
216 d->irq_base = irq_base; in regmap_add_irq_chip()
217 mutex_init(&d->lock); in regmap_add_irq_chip()
220 d->mask_buf_def[chip->irqs[i].reg_offset] in regmap_add_irq_chip()
225 d->mask_buf[i] = d->mask_buf_def[i]; in regmap_add_irq_chip()
226 ret = regmap_write(map, chip->mask_base + i, d->mask_buf[i]); in regmap_add_irq_chip()
228 dev_err(map->dev, "Failed to set masks in 0x%x: %d\n", in regmap_add_irq_chip()
238 irq_set_chip_data(cur_irq, d); in regmap_add_irq_chip()
253 chip->name, d); in regmap_add_irq_chip()
255 dev_err(map->dev, "Failed to request IRQ %d: %d\n", irq, ret); in regmap_add_irq_chip()
262 kfree(d->mask_buf_def); in regmap_add_irq_chip()
263 kfree(d->mask_buf); in regmap_add_irq_chip()
264 kfree(d->status_reg_buf); in regmap_add_irq_chip()
265 kfree(d->status_buf); in regmap_add_irq_chip()
266 kfree(d); in regmap_add_irq_chip()
275 * @d: regmap_irq_chip_data allocated by regmap_add_irq_chip()
277 void regmap_del_irq_chip(int irq, struct regmap_irq_chip_data *d) in regmap_del_irq_chip() argument
279 if (!d) in regmap_del_irq_chip()
282 free_irq(irq, d); in regmap_del_irq_chip()
283 kfree(d->mask_buf_def); in regmap_del_irq_chip()
284 kfree(d->mask_buf); in regmap_del_irq_chip()
285 kfree(d->status_reg_buf); in regmap_del_irq_chip()
286 kfree(d->status_buf); in regmap_del_irq_chip()
287 kfree(d); in regmap_del_irq_chip()