Lines Matching full:service

60 	struct gpio_service *service;  in dal_gpio_service_create()  local
63 service = kzalloc(sizeof(struct gpio_service), GFP_KERNEL); in dal_gpio_service_create()
65 if (!service) { in dal_gpio_service_create()
70 if (!dal_hw_translate_init(&service->translate, dce_version_major, in dal_gpio_service_create()
76 if (!dal_hw_factory_init(&service->factory, dce_version_major, in dal_gpio_service_create()
85 service->ctx = ctx; in dal_gpio_service_create()
89 service->factory.number_of_pins[index_of_id]; in dal_gpio_service_create()
93 service->busyness[index_of_id] = in dal_gpio_service_create()
97 if (!service->busyness[index_of_id]) { in dal_gpio_service_create()
103 service->busyness[index_of_id][i] = 0; in dal_gpio_service_create()
107 service->busyness[index_of_id] = NULL; in dal_gpio_service_create()
114 return service; in dal_gpio_service_create()
119 kfree(service->busyness[index_of_id]); in dal_gpio_service_create()
123 kfree(service); in dal_gpio_service_create()
129 struct gpio_service *service, in dal_gpio_service_create_irq() argument
136 if (!service->translate.funcs->offset_to_id(offset, mask, &id, &en)) { in dal_gpio_service_create_irq()
141 return dal_gpio_create_irq(service, id, en); in dal_gpio_service_create_irq()
145 struct gpio_service *service, in dal_gpio_service_create_generic_mux() argument
153 if (!service->translate.funcs->offset_to_id(offset, mask, &id, &en)) { in dal_gpio_service_create_generic_mux()
159 service, id, en, GPIO_PIN_OUTPUT_STATE_DEFAULT); in dal_gpio_service_create_generic_mux()
179 struct gpio_service *service, in dal_gpio_get_generic_pin_info() argument
185 if (service->translate.funcs->id_to_offset) { in dal_gpio_get_generic_pin_info()
186 service->translate.funcs->id_to_offset(id, en, &pin); in dal_gpio_get_generic_pin_info()
240 const struct gpio_service *service, in is_pin_busy() argument
244 return service->busyness[id][en]; in is_pin_busy()
248 struct gpio_service *service, in set_pin_busy() argument
252 service->busyness[id][en] = true; in set_pin_busy()
256 struct gpio_service *service, in set_pin_free() argument
260 service->busyness[id][en] = false; in set_pin_free()
264 struct gpio_service *service, in dal_gpio_service_lock() argument
268 if (!service->busyness[id]) { in dal_gpio_service_lock()
273 set_pin_busy(service, id, en); in dal_gpio_service_lock()
278 struct gpio_service *service, in dal_gpio_service_unlock() argument
282 if (!service->busyness[id]) { in dal_gpio_service_unlock()
287 set_pin_free(service, id, en); in dal_gpio_service_unlock()
294 struct gpio_service *service = gpio->service; in dal_gpio_service_open() local
302 if (!service->busyness[id]) { in dal_gpio_service_open()
307 if (is_pin_busy(service, id, en)) { in dal_gpio_service_open()
314 *pin = service->factory.funcs->get_ddc_pin(gpio); in dal_gpio_service_open()
315 service->factory.funcs->define_ddc_registers(*pin, en); in dal_gpio_service_open()
318 *pin = service->factory.funcs->get_ddc_pin(gpio); in dal_gpio_service_open()
319 service->factory.funcs->define_ddc_registers(*pin, en); in dal_gpio_service_open()
322 *pin = service->factory.funcs->get_generic_pin(gpio); in dal_gpio_service_open()
323 service->factory.funcs->define_generic_registers(*pin, en); in dal_gpio_service_open()
326 *pin = service->factory.funcs->get_hpd_pin(gpio); in dal_gpio_service_open()
327 service->factory.funcs->define_hpd_registers(*pin, en); in dal_gpio_service_open()
346 dal_gpio_service_close(service, pin); in dal_gpio_service_open()
350 set_pin_busy(service, id, en); in dal_gpio_service_open()
355 struct gpio_service *service, in dal_gpio_service_close() argument
368 set_pin_free(service, pin->id, pin->en); in dal_gpio_service_close()
428 struct gpio_service *service, in dal_gpio_create_irq() argument
445 service, id, en, GPIO_PIN_OUTPUT_STATE_DEFAULT); in dal_gpio_create_irq()
469 struct gpio_service *service, in dal_gpio_create_ddc() argument
478 if (!service->translate.funcs->offset_to_id(offset, mask, &id, &en)) in dal_gpio_create_ddc()
489 service, GPIO_ID_DDC_DATA, en, GPIO_PIN_OUTPUT_STATE_DEFAULT); in dal_gpio_create_ddc()
497 service, GPIO_ID_DDC_CLOCK, en, GPIO_PIN_OUTPUT_STATE_DEFAULT); in dal_gpio_create_ddc()
506 ddc->ctx = service->ctx; in dal_gpio_create_ddc()