From e0bbe7b9acc9cdcaa39611fe3d05ed8c1eede7c6 Mon Sep 17 00:00:00 2001 From: "Milo(Woogyom) Kim" Date: Tue, 5 Feb 2013 19:20:01 +0900 Subject: [PATCH] --- yaml --- r: 358615 b: refs/heads/master c: 240085e255cd2818aff2ccde3066b7db1f29076a h: refs/heads/master i: 358613: 5b3186afdc79ccc2cc70615c7d776a7bae27eba1 358611: f75accfbab007ab95642304f54dea6e1687ad10c 358607: 57df2edb77b663ceb0a6f6c3daf16b2edf543a61 v: v3 --- [refs] | 2 +- trunk/drivers/leds/leds-lp55xx-common.c | 13 ++++++++++++- trunk/drivers/leds/leds-lp55xx-common.h | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index bde43668cddb..6d4f961afd84 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: db6eaf8388a413a5ee1b4547ce78506b9c6456b0 +refs/heads/master: 240085e255cd2818aff2ccde3066b7db1f29076a diff --git a/trunk/drivers/leds/leds-lp55xx-common.c b/trunk/drivers/leds/leds-lp55xx-common.c index 578902ab604f..9638ad4dc635 100644 --- a/trunk/drivers/leds/leds-lp55xx-common.c +++ b/trunk/drivers/leds/leds-lp55xx-common.c @@ -493,8 +493,19 @@ EXPORT_SYMBOL_GPL(lp55xx_unregister_leds); int lp55xx_register_sysfs(struct lp55xx_chip *chip) { struct device *dev = &chip->cl->dev; + struct lp55xx_device_config *cfg = chip->cfg; + int ret; + + if (!cfg->run_engine || !cfg->firmware_cb) + goto dev_specific_attrs; + + ret = sysfs_create_group(&dev->kobj, &lp55xx_engine_attr_group); + if (ret) + return ret; - return sysfs_create_group(&dev->kobj, &lp55xx_engine_attr_group); +dev_specific_attrs: + return cfg->dev_attr_group ? + sysfs_create_group(&dev->kobj, cfg->dev_attr_group) : 0; } EXPORT_SYMBOL_GPL(lp55xx_register_sysfs); diff --git a/trunk/drivers/leds/leds-lp55xx-common.h b/trunk/drivers/leds/leds-lp55xx-common.h index 8473abf9830c..64eb78da1c4b 100644 --- a/trunk/drivers/leds/leds-lp55xx-common.h +++ b/trunk/drivers/leds/leds-lp55xx-common.h @@ -45,6 +45,7 @@ struct lp55xx_reg { * @set_led_current : LED current set function * @firmware_cb : Call function when the firmware is loaded * @run_engine : Run internal engine for pattern + * @dev_attr_group : Device specific attributes */ struct lp55xx_device_config { const struct lp55xx_reg reset; @@ -65,6 +66,9 @@ struct lp55xx_device_config { /* used for running firmware LED patterns */ void (*run_engine) (struct lp55xx_chip *chip, bool start); + + /* additional device specific attributes */ + const struct attribute_group *dev_attr_group; }; /*