Lines Matching refs:device
39 static enum rbtn_type rbtn_check(struct acpi_device *device) in rbtn_check() argument
44 status = acpi_evaluate_integer(device->handle, "CRBT", NULL, &output); in rbtn_check()
60 static int rbtn_get(struct acpi_device *device) in rbtn_get() argument
65 status = acpi_evaluate_integer(device->handle, "GRBT", NULL, &output); in rbtn_get()
72 static int rbtn_acquire(struct acpi_device *device, bool enable) in rbtn_acquire() argument
83 status = acpi_evaluate_object(device->handle, "ARBT", &input, NULL); in rbtn_acquire()
97 struct acpi_device *device = data; in rbtn_rfkill_query() local
100 state = rbtn_get(device); in rbtn_rfkill_query()
118 static int rbtn_rfkill_init(struct acpi_device *device) in rbtn_rfkill_init() argument
120 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_rfkill_init()
131 rbtn_data->rfkill = rfkill_alloc("dell-rbtn", &device->dev, in rbtn_rfkill_init()
132 RFKILL_TYPE_WLAN, &rbtn_ops, device); in rbtn_rfkill_init()
146 static void rbtn_rfkill_exit(struct acpi_device *device) in rbtn_rfkill_exit() argument
148 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_rfkill_exit()
158 static void rbtn_rfkill_event(struct acpi_device *device) in rbtn_rfkill_event() argument
160 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_rfkill_event()
163 rbtn_rfkill_query(rbtn_data->rfkill, device); in rbtn_rfkill_event()
214 static int rbtn_add(struct acpi_device *device);
215 static int rbtn_remove(struct acpi_device *device);
216 static void rbtn_notify(struct acpi_device *device, u32 event);
232 static int rbtn_suspend(struct device *dev) in rbtn_suspend()
234 struct acpi_device *device = to_acpi_device(dev); in rbtn_suspend() local
235 struct rbtn_data *rbtn_data = acpi_driver_data(device); in rbtn_suspend()
242 static int rbtn_resume(struct device *dev) in rbtn_resume()
244 struct acpi_device *device = to_acpi_device(dev); in rbtn_resume() local
245 struct rbtn_data *rbtn_data = acpi_driver_data(device); in rbtn_resume()
290 static int rbtn_inc_count(struct device *dev, void *data) in rbtn_inc_count()
292 struct acpi_device *device = to_acpi_device(dev); in rbtn_inc_count() local
293 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_inc_count()
302 static int rbtn_switch_dev(struct device *dev, void *data) in rbtn_switch_dev()
304 struct acpi_device *device = to_acpi_device(dev); in rbtn_switch_dev() local
305 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_switch_dev()
312 rbtn_rfkill_init(device); in rbtn_switch_dev()
314 rbtn_rfkill_exit(device); in rbtn_switch_dev()
366 static int rbtn_add(struct acpi_device *device) in rbtn_add() argument
372 type = rbtn_check(device); in rbtn_add()
374 dev_info(&device->dev, "Unknown device type\n"); in rbtn_add()
378 ret = rbtn_acquire(device, true); in rbtn_add()
380 dev_err(&device->dev, "Cannot enable device\n"); in rbtn_add()
384 rbtn_data = devm_kzalloc(&device->dev, sizeof(*rbtn_data), GFP_KERNEL); in rbtn_add()
389 device->driver_data = rbtn_data; in rbtn_add()
399 ret = rbtn_rfkill_init(device); in rbtn_add()
409 static int rbtn_remove(struct acpi_device *device) in rbtn_remove() argument
411 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_remove()
418 rbtn_rfkill_exit(device); in rbtn_remove()
424 rbtn_acquire(device, false); in rbtn_remove()
425 device->driver_data = NULL; in rbtn_remove()
430 static void rbtn_notify(struct acpi_device *device, u32 event) in rbtn_notify() argument
432 struct rbtn_data *rbtn_data = device->driver_data; in rbtn_notify()
439 dev_dbg(&device->dev, "ACPI notification ignored\n"); in rbtn_notify()
444 dev_info(&device->dev, "Received unknown event (0x%x)\n", in rbtn_notify()
454 rbtn_rfkill_event(device); in rbtn_notify()
455 atomic_notifier_call_chain(&rbtn_chain_head, event, device); in rbtn_notify()