Lines Matching refs:data

45 	unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *data,
52 struct regmap_irq *irq_to_regmap_irq(struct regmap_irq_chip_data *data,
55 return &data->chip->irqs[irq];
58 static bool regmap_irq_can_bulk_read_status(struct regmap_irq_chip_data *data)
60 struct regmap *map = data->map;
67 return data->irq_reg_stride == 1 && map->reg_stride == 1 &&
68 data->get_irq_reg == regmap_irq_get_irq_reg_linear &&
72 static void regmap_irq_lock(struct irq_data *data)
74 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
79 static void regmap_irq_sync_unlock(struct irq_data *data)
81 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
206 static void regmap_irq_enable(struct irq_data *data)
208 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
210 const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->hwirq);
235 static void regmap_irq_disable(struct irq_data *data)
237 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
239 const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->hwirq);
244 static int regmap_irq_set_type(struct irq_data *data, unsigned int type)
246 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
248 const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->hwirq);
274 static int regmap_irq_set_wake(struct irq_data *data, unsigned int on)
276 struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
278 const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->hwirq);
304 static inline int read_sub_irq_data(struct regmap_irq_chip_data *data,
307 const struct regmap_irq_chip *chip = data->chip;
308 struct regmap *map = data->map;
314 reg = data->get_irq_reg(data, chip->status_base, b);
315 ret = regmap_read(map, reg, &data->status_buf[b]);
327 &data->status_buf[index]);
337 struct regmap_irq_chip_data *data = d;
338 const struct regmap_irq_chip *chip = data->chip;
339 struct regmap *map = data->map;
364 memset32(data->status_buf, GENMASK(31, 0), chip->num_regs);
374 memset(data->status_buf, 0, size);
382 reg = data->get_irq_reg(data, chip->main_status, i);
383 ret = regmap_read(map, reg, &data->main_status_buf[i]);
395 const unsigned long mreg = data->main_status_buf[i];
401 ret = read_sub_irq_data(data, b);
412 } else if (regmap_irq_can_bulk_read_status(data)) {
414 u8 *buf8 = data->status_reg_buf;
415 u16 *buf16 = data->status_reg_buf;
416 u32 *buf32 = data->status_reg_buf;
418 BUG_ON(!data->status_reg_buf);
421 data->status_reg_buf,
429 for (i = 0; i < data->chip->num_regs; i++) {
432 data->status_buf[i] = buf8[i];
435 data->status_buf[i] = buf16[i];
438 data->status_buf[i] = buf32[i];
447 for (i = 0; i < data->chip->num_regs; i++) {
448 unsigned int reg = data->get_irq_reg(data,
449 data->chip->status_base, i);
450 ret = regmap_read(map, reg, &data->status_buf[i]);
462 for (i = 0; i < data->chip->num_regs; i++)
463 data->status_buf[i] = ~data->status_buf[i];
472 for (i = 0; i < data->chip->num_regs; i++) {
473 data->status_buf[i] &= ~data->mask_buf[i];
475 if (data->status_buf[i] && (chip->ack_base || chip->use_ack)) {
476 reg = data->get_irq_reg(data, data->chip->ack_base, i);
480 ~data->status_buf[i]);
483 data->status_buf[i]);
497 if (data->status_buf[chip->irqs[i].reg_offset /
499 handle_nested_irq(irq_find_mapping(data->domain, i));
520 struct regmap_irq_chip_data *data = h->host_data;
522 irq_set_chip_data(virq, data);
523 irq_set_chip(virq, &data->irq_chip);
525 irq_set_parent(virq, data->irq);
538 * @data: Data for the &struct regmap_irq_chip
545 unsigned int regmap_irq_get_irq_reg_linear(struct regmap_irq_chip_data *data,
548 struct regmap *map = data->map;
550 return base + index * map->reg_stride * data->irq_reg_stride;
561 * @irq_drv_data: Driver specific IRQ data
565 * the &struct regmap_irq_type data associated with an IRQ.
620 * @data: Runtime data structure for the controller, allocated on success.
632 struct regmap_irq_chip_data **data)
881 *data = d;
913 * @data: Runtime data structure for the controller, allocated on success.
922 struct regmap_irq_chip_data **data)
925 irq_flags, irq_base, chip, data);
986 static int devm_regmap_irq_chip_match(struct device *dev, void *res, void *data)
995 return *r == data;
1008 * @data: Runtime data structure for the controller, allocated on success
1020 struct regmap_irq_chip_data **data)
1039 *data = d;
1053 * @data: Runtime data structure for the controller, allocated on success
1063 struct regmap_irq_chip_data **data)
1067 data);
1076 * @data: &regmap_irq_chip_data allocated by regmap_add_irq_chip().
1081 struct regmap_irq_chip_data *data)
1085 WARN_ON(irq != data->irq);
1087 devm_regmap_irq_chip_match, data);
1097 * @data: regmap irq controller to operate on.
1101 int regmap_irq_chip_get_base(struct regmap_irq_chip_data *data)
1103 WARN_ON(!data->irq_base);
1104 return data->irq_base;
1111 * @data: regmap irq controller to operate on.
1116 int regmap_irq_get_virq(struct regmap_irq_chip_data *data, int irq)
1119 if (!data->chip->irqs[irq].mask)
1122 return irq_create_mapping(data->domain, irq);
1129 * @data: regmap_irq controller to operate on.
1136 struct irq_domain *regmap_irq_get_domain(struct regmap_irq_chip_data *data)
1138 if (data)
1139 return data->domain;