Lines Matching defs:data

38 	struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
44 &data->function_list, node) {
49 devm_kfree(&rmi_dev->dev, data->irq_memory);
50 data->irq_memory = NULL;
51 data->irq_status = NULL;
52 data->fn_irq_bits = NULL;
53 data->current_irq_mask = NULL;
54 data->new_irq_mask = NULL;
56 data->f01_container = NULL;
57 data->f34_container = NULL;
100 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
104 list_for_each_entry(entry, &data->function_list, node) {
115 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
119 list_for_each_entry(entry, &data->function_list, node) {
130 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
135 if (!data)
138 if (!data->attn_data.data) {
140 data->f01_container->fd.data_base_addr + 1,
141 data->irq_status, data->num_of_irq_regs);
148 mutex_lock(&data->irq_mutex);
149 bitmap_and(data->irq_status, data->irq_status, data->fn_irq_bits,
150 data->irq_count);
155 mutex_unlock(&data->irq_mutex);
157 for_each_set_bit(i, data->irq_status, data->irq_count)
158 handle_nested_irq(irq_find_mapping(data->irqdomain, i));
160 if (data->input)
161 input_sync(data->input);
167 void *data, size_t size)
176 fifo_data = kmemdup(data, size, GFP_ATOMIC);
182 attn_data.data = fifo_data;
207 kfree(attn_data.data);
208 drvdata->attn_data.data = NULL;
220 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
238 data->enabled = true;
245 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
248 list_for_each_entry(entry, &data->function_list, node) {
277 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
281 list_for_each_entry(entry, &data->function_list, node) {
311 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
315 list_for_each_entry(entry, &data->function_list, node) {
336 * rmi_driver_set_input_params - set input device id and other data.
354 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
355 const char *device_name = rmi_f01_get_product_ID(data->f01_container);
370 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
373 mutex_lock(&data->irq_mutex);
374 bitmap_or(data->new_irq_mask,
375 data->current_irq_mask, mask, data->irq_count);
378 data->f01_container->fd.control_base_addr + 1,
379 data->new_irq_mask, data->num_of_irq_regs);
385 bitmap_copy(data->current_irq_mask, data->new_irq_mask,
386 data->num_of_irq_regs);
388 bitmap_or(data->fn_irq_bits, data->fn_irq_bits, mask, data->irq_count);
391 mutex_unlock(&data->irq_mutex);
399 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
402 mutex_lock(&data->irq_mutex);
403 bitmap_andnot(data->fn_irq_bits,
404 data->fn_irq_bits, mask, data->irq_count);
405 bitmap_andnot(data->new_irq_mask,
406 data->current_irq_mask, mask, data->irq_count);
409 data->f01_container->fd.control_base_addr + 1,
410 data->new_irq_mask, data->num_of_irq_regs);
416 bitmap_copy(data->current_irq_mask, data->new_irq_mask,
417 data->num_of_irq_regs);
420 mutex_unlock(&data->irq_mutex);
426 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
433 if (!data || !data->f01_container) {
440 data->f01_container->fd.control_base_addr + 1,
441 data->current_irq_mask, data->num_of_irq_regs);
507 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
538 return (data->bootloader_mode || *empty_pages >= 2) ?
591 * for this particular register type (ie query, control, or data).
747 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
760 data->bootloader_mode = true;
770 data->bootloader_mode = true;
832 struct rmi_driver_data *data = dev_get_drvdata(dev);
842 BITS_TO_LONGS(data->irq_count) * sizeof(unsigned long),
867 data->f01_container = fn;
869 data->f34_container = fn;
871 list_add_tail(&fn->node, &data->function_list);
879 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
884 mutex_lock(&data->enabled_mutex);
886 if (data->enabled)
890 data->enabled = true;
908 mutex_unlock(&data->enabled_mutex);
914 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
919 mutex_lock(&data->enabled_mutex);
921 if (!data->enabled)
924 data->enabled = false;
935 while (!kfifo_is_empty(&data->attn_fifo)) {
936 count = kfifo_get(&data->attn_fifo, &attn_data);
938 kfree(attn_data.data);
942 mutex_unlock(&data->enabled_mutex);
977 struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
981 irq_domain_remove(data->irqdomain);
982 data->irqdomain = NULL;
1011 int rmi_probe_interrupts(struct rmi_driver_data *data)
1013 struct rmi_device *rmi_dev = data->rmi_dev;
1027 data->bootloader_mode = false;
1035 if (data->bootloader_mode)
1039 data->irqdomain = irq_domain_create_linear(fwnode, irq_count,
1041 data);
1042 if (!data->irqdomain) {
1047 data->irq_count = irq_count;
1048 data->num_of_irq_regs = (data->irq_count + 7) / 8;
1050 size = BITS_TO_LONGS(data->irq_count) * sizeof(unsigned long);
1051 data->irq_memory = devm_kcalloc(dev, size, 4, GFP_KERNEL);
1052 if (!data->irq_memory) {
1057 data->irq_status = data->irq_memory + size * 0;
1058 data->fn_irq_bits = data->irq_memory + size * 1;
1059 data->current_irq_mask = data->irq_memory + size * 2;
1060 data->new_irq_mask = data->irq_memory + size * 3;
1065 int rmi_init_functions(struct rmi_driver_data *data)
1067 struct rmi_device *rmi_dev = data->rmi_dev;
1080 if (!data->f01_container) {
1087 data->f01_container->fd.control_base_addr + 1,
1088 data->current_irq_mask, data->num_of_irq_regs);
1105 struct rmi_driver_data *data;
1130 data = devm_kzalloc(dev, sizeof(struct rmi_driver_data), GFP_KERNEL);
1131 if (!data)
1134 INIT_LIST_HEAD(&data->function_list);
1135 data->rmi_dev = rmi_dev;
1136 dev_set_drvdata(&rmi_dev->dev, data);
1153 * than from a warm boot) and the reset_delay_ms in the platform data
1163 retval = rmi_read(rmi_dev, PDT_PROPERTIES_LOCATION, &data->pdt_props);
1173 mutex_init(&data->irq_mutex);
1174 mutex_init(&data->enabled_mutex);
1176 retval = rmi_probe_interrupts(data);
1188 data->input = rmi_dev->xport->input;
1190 data->input = devm_input_allocate_device(dev);
1191 if (!data->input) {
1197 rmi_driver_set_input_params(rmi_dev, data->input);
1198 data->input->phys = devm_kasprintf(dev, GFP_KERNEL,
1202 retval = rmi_init_functions(data);
1210 if (data->input) {
1211 rmi_driver_set_input_name(rmi_dev, data->input);
1213 retval = input_register_device(data->input);
1226 if (data->f01_container->dev.driver) {