Browse Source

platform/chrome: cros_ec_lightbar - use name instead of ID to hide lightbar attributes

Lightbar attributes are hidden if the ID of the device is not 0 (the
assumption being that 0 = cros_ec = might have a lightbar, 1 = cros_pd =
hide); however, sometimes these devices get IDs 1 and 2 (or something
else) instead of IDs 0 and 1. This prevents the lightbar attributes from
appearing when they should.

Proposed change is to instead check whether the name assigned to the
device is CROS_EC_DEV_NAME (true for cros_ec, false for cros_pd).

Signed-off-by: Clinton Sprain <clintonsprain@gmail.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Clinton Sprain 9 years ago
parent
commit
d940f3065c
1 changed files with 6 additions and 1 deletions
  1. 6 1
      drivers/platform/chrome/cros_ec_lightbar.c

+ 6 - 1
drivers/platform/chrome/cros_ec_lightbar.c

@@ -413,7 +413,12 @@ static umode_t cros_ec_lightbar_attrs_are_visible(struct kobject *kobj,
 	struct cros_ec_dev *ec = container_of(dev,
 	struct cros_ec_dev *ec = container_of(dev,
 					      struct cros_ec_dev, class_dev);
 					      struct cros_ec_dev, class_dev);
 	struct platform_device *pdev = to_platform_device(ec->dev);
 	struct platform_device *pdev = to_platform_device(ec->dev);
-	if (pdev->id != 0)
+	struct cros_ec_platform *pdata = pdev->dev.platform_data;
+	int is_cros_ec;
+
+	is_cros_ec = strcmp(pdata->ec_name, CROS_EC_DEV_NAME);
+
+	if (is_cros_ec != 0)
 		return 0;
 		return 0;
 
 
 	/* Only instantiate this stuff if the EC has a lightbar */
 	/* Only instantiate this stuff if the EC has a lightbar */