Lines Matching refs:fn

131 	struct rmi_function *fn = to_rmi_function(dev);
133 kfree(fn);
149 struct rmi_function *fn = to_rmi_function(dev);
151 return fn->fd.function_number == handler->func;
155 static void rmi_function_of_probe(struct rmi_function *fn)
158 struct device_node *node = fn->rmi_dev->xport->dev->of_node;
161 fn->fd.function_number);
162 fn->dev.of_node = of_get_child_by_name(node, of_name);
165 static inline void rmi_function_of_probe(struct rmi_function *fn)
173 static int rmi_create_function_irq(struct rmi_function *fn,
176 struct rmi_driver_data *drvdata = dev_get_drvdata(&fn->rmi_dev->dev);
179 for (i = 0; i < fn->num_of_irqs; i++) {
180 set_bit(fn->irq_pos + i, fn->irq_mask);
182 fn->irq[i] = irq_create_mapping(drvdata->irqdomain,
183 fn->irq_pos + i);
185 irq_set_chip_data(fn->irq[i], fn);
186 irq_set_chip_and_handler(fn->irq[i], &rmi_irq_chip,
188 irq_set_nested_thread(fn->irq[i], 1);
190 error = devm_request_threaded_irq(&fn->dev, fn->irq[i], NULL,
192 dev_name(&fn->dev), fn);
194 dev_err(&fn->dev, "Error %d registering IRQ\n", error);
204 struct rmi_function *fn = to_rmi_function(dev);
209 rmi_function_of_probe(fn);
212 error = handler->probe(fn);
217 if (fn->num_of_irqs && handler->attention) {
218 error = rmi_create_function_irq(fn, handler);
228 struct rmi_function *fn = to_rmi_function(dev);
233 handler->remove(fn);
238 int rmi_register_function(struct rmi_function *fn)
240 struct rmi_device *rmi_dev = fn->rmi_dev;
243 device_initialize(&fn->dev);
245 dev_set_name(&fn->dev, "%s.fn%02x",
246 dev_name(&rmi_dev->dev), fn->fd.function_number);
248 fn->dev.parent = &rmi_dev->dev;
249 fn->dev.type = &rmi_function_type;
250 fn->dev.bus = &rmi_bus_type;
252 error = device_add(&fn->dev);
256 dev_name(&fn->dev));
261 fn->fd.function_number);
266 put_device(&fn->dev);
270 void rmi_unregister_function(struct rmi_function *fn)
274 rmi_dbg(RMI_DEBUG_CORE, &fn->dev, "Unregistering F%02X.\n",
275 fn->fd.function_number);
277 device_del(&fn->dev);
278 of_node_put(fn->dev.of_node);
280 for (i = 0; i < fn->num_of_irqs; i++)
281 irq_dispose_mapping(fn->irq[i]);
283 put_device(&fn->dev);