static bool alsa_to_h2w_filter(struct input_handle *handle, unsigned int type, unsigned int code, int value) { if ((code == SW_HEADPHONE_INSERT) || (code == SW_MICROPHONE_INSERT)) alsa_to_h2w_headset_report(switch_to_h2w(handle->dev->sw[0])); return false; }
static int alsa_to_h2w_connect(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id) { int ret; struct input_handle *handle; handle = kzalloc(sizeof(*handle), GFP_KERNEL); if (!handle) return -ENOMEM; handle->dev = dev; handle->handler = handler; handle->name = "alsa_to_h2w"; ret = input_register_handle(handle); if (ret) goto err_input_register_handle; ret = input_open_device(handle); if (ret) goto err_input_open_device; alsa_to_h2w_headset_report(switch_to_h2w(dev->sw[0])); return 0; err_input_open_device: input_unregister_handle(handle); err_input_register_handle: kfree(handle); return ret; }
static int alsa_to_h2w_connect(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id) { int ret; struct input_handle *handle; /* * If a sensor hub is present, any other jack input device is a dummy * that should be ignored. */ if (sensor_hub_present) return -ENODEV; handle = kzalloc(sizeof(*handle), GFP_KERNEL); if (!handle) return -ENOMEM; handle->dev = dev; handle->handler = handler; handle->name = "alsa_to_h2w"; ret = input_register_handle(handle); if (ret) goto err_input_register_handle; ret = input_open_device(handle); if (ret) goto err_input_open_device; if (dev->name && (strcmp(dev->name, "sensorprocessor") == 0)) sensor_hub_present = true; alsa_to_h2w_headset_report(switch_to_h2w(dev->sw[0])); return 0; err_input_open_device: input_unregister_handle(handle); err_input_register_handle: kfree(handle); return ret; }