Skip to content

Commit 0410595

Browse files
committed
Input: lm8323 - rely on device core to create kp_disable attribute
Device core now has facilities to create driver-specific device attributes as part of driver probing, use them. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent 3e4bb04 commit 0410595

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

drivers/input/keyboard/lm8323.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,12 @@ static ssize_t lm8323_set_disable(struct device *dev,
615615
}
616616
static DEVICE_ATTR(disable_kp, 0644, lm8323_show_disable, lm8323_set_disable);
617617

618+
static struct attribute *lm8323_attrs[] = {
619+
&dev_attr_disable_kp.attr,
620+
NULL,
621+
};
622+
ATTRIBUTE_GROUPS(lm8323);
623+
618624
static int lm8323_probe(struct i2c_client *client)
619625
{
620626
struct lm8323_platform_data *pdata = dev_get_platdata(&client->dev);
@@ -696,9 +702,6 @@ static int lm8323_probe(struct i2c_client *client)
696702
}
697703

698704
lm->kp_enabled = true;
699-
err = device_create_file(&client->dev, &dev_attr_disable_kp);
700-
if (err < 0)
701-
goto fail2;
702705

703706
idev->name = pdata->name ? : "LM8323 keypad";
704707
snprintf(lm->phys, sizeof(lm->phys),
@@ -719,14 +722,14 @@ static int lm8323_probe(struct i2c_client *client)
719722
err = input_register_device(idev);
720723
if (err) {
721724
dev_dbg(&client->dev, "error registering input device\n");
722-
goto fail3;
725+
goto fail2;
723726
}
724727

725728
err = request_threaded_irq(client->irq, NULL, lm8323_irq,
726729
IRQF_TRIGGER_LOW|IRQF_ONESHOT, "lm8323", lm);
727730
if (err) {
728731
dev_err(&client->dev, "could not get IRQ %d\n", client->irq);
729-
goto fail4;
732+
goto fail3;
730733
}
731734

732735
i2c_set_clientdata(client, lm);
@@ -736,11 +739,9 @@ static int lm8323_probe(struct i2c_client *client)
736739

737740
return 0;
738741

739-
fail4:
742+
fail3:
740743
input_unregister_device(idev);
741744
idev = NULL;
742-
fail3:
743-
device_remove_file(&client->dev, &dev_attr_disable_kp);
744745
fail2:
745746
while (--pwm >= 0)
746747
if (lm->pwm[pwm].enabled)
@@ -761,8 +762,6 @@ static void lm8323_remove(struct i2c_client *client)
761762

762763
input_unregister_device(lm->idev);
763764

764-
device_remove_file(&lm->client->dev, &dev_attr_disable_kp);
765-
766765
for (i = 0; i < 3; i++)
767766
if (lm->pwm[i].enabled)
768767
led_classdev_unregister(&lm->pwm[i].cdev);
@@ -823,8 +822,9 @@ static const struct i2c_device_id lm8323_id[] = {
823822

824823
static struct i2c_driver lm8323_i2c_driver = {
825824
.driver = {
826-
.name = "lm8323",
827-
.pm = pm_sleep_ptr(&lm8323_pm_ops),
825+
.name = "lm8323",
826+
.pm = pm_sleep_ptr(&lm8323_pm_ops),
827+
.dev_groups = lm8323_groups,
828828
},
829829
.probe = lm8323_probe,
830830
.remove = lm8323_remove,

0 commit comments

Comments
 (0)