rbtn_data
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
if (rbtn_data->rfkill)
rbtn_data->rfkill = rfkill_alloc("dell-rbtn", dev, RFKILL_TYPE_WLAN,
if (!rbtn_data->rfkill)
ret = rfkill_register(rbtn_data->rfkill);
rfkill_destroy(rbtn_data->rfkill);
rbtn_data->rfkill = NULL;
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
if (!rbtn_data->rfkill)
rfkill_unregister(rbtn_data->rfkill);
rfkill_destroy(rbtn_data->rfkill);
rbtn_data->rfkill = NULL;
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
if (rbtn_data->rfkill)
rbtn_rfkill_query(rbtn_data->rfkill, ACPI_COMPANION(dev));
static int rbtn_input_init(struct rbtn_data *rbtn_data)
rbtn_data->input_dev = input_allocate_device();
if (!rbtn_data->input_dev)
rbtn_data->input_dev->name = "DELL Wireless hotkeys";
rbtn_data->input_dev->phys = "dellabce/input0";
rbtn_data->input_dev->id.bustype = BUS_HOST;
rbtn_data->input_dev->evbit[0] = BIT(EV_KEY);
set_bit(KEY_RFKILL, rbtn_data->input_dev->keybit);
ret = input_register_device(rbtn_data->input_dev);
input_free_device(rbtn_data->input_dev);
rbtn_data->input_dev = NULL;
static void rbtn_input_exit(struct rbtn_data *rbtn_data)
input_unregister_device(rbtn_data->input_dev);
rbtn_data->input_dev = NULL;
static void rbtn_input_event(struct rbtn_data *rbtn_data)
input_report_key(rbtn_data->input_dev, KEY_RFKILL, 1);
input_sync(rbtn_data->input_dev);
input_report_key(rbtn_data->input_dev, KEY_RFKILL, 0);
input_sync(rbtn_data->input_dev);
struct rbtn_data *rbtn_data = context;
rbtn_data->suspended = false;
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
rbtn_data->suspended = true;
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
rbtn_clear_suspended_flag, rbtn_data);
rbtn_clear_suspended_flag(rbtn_data);
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
if (rbtn_data->type == RBTN_SLIDER)
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
if (rbtn_data->type != RBTN_SLIDER)
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
switch (rbtn_data->type) {
rbtn_input_exit(rbtn_data);
struct rbtn_data *rbtn_data;
rbtn_data = devm_kzalloc(&pdev->dev, sizeof(*rbtn_data), GFP_KERNEL);
if (!rbtn_data)
platform_set_drvdata(pdev, rbtn_data);
rbtn_data->type = type;
switch (rbtn_data->type) {
ret = rbtn_input_init(rbtn_data);
struct rbtn_data *rbtn_data = dev_get_drvdata(dev);
if (rbtn_data->suspended) {
switch (rbtn_data->type) {
rbtn_input_event(rbtn_data);