]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/power/ab8500_fg.c
ab8500_fg: use jiffies_to_msecs for jiffies conversion
[mirror_ubuntu-jammy-kernel.git] / drivers / power / ab8500_fg.c
index c908658aa31aa7500ec51b373c2cfa7296dfbebf..40344e01df8096155ff0b483056e418c3a0a2614 100644 (file)
@@ -622,14 +622,14 @@ int ab8500_fg_inst_curr_finalize(struct ab8500_fg *di, int *res)
        u8 low, high;
        int val;
        int ret;
-       int timeout;
+       unsigned long timeout;
 
        if (!completion_done(&di->ab8500_fg_complete)) {
                timeout = wait_for_completion_timeout(
                        &di->ab8500_fg_complete,
                        INS_CURR_TIMEOUT);
                dev_dbg(di->dev, "Finalize time: %d ms\n",
-                       ((INS_CURR_TIMEOUT - timeout) * 1000) / HZ);
+                       jiffies_to_msecs(INS_CURR_TIMEOUT - timeout));
                if (!timeout) {
                        ret = -ETIME;
                        disable_irq(di->irq);
@@ -716,7 +716,7 @@ fail:
 int ab8500_fg_inst_curr_blocking(struct ab8500_fg *di)
 {
        int ret;
-       int timeout;
+       unsigned long timeout;
        int res = 0;
 
        ret = ab8500_fg_inst_curr_start(di);
@@ -731,7 +731,7 @@ int ab8500_fg_inst_curr_blocking(struct ab8500_fg *di)
                        &di->ab8500_fg_started,
                        INS_CURR_TIMEOUT);
                dev_dbg(di->dev, "Start time: %d ms\n",
-                       ((INS_CURR_TIMEOUT - timeout) * 1000) / HZ);
+                       jiffies_to_msecs(INS_CURR_TIMEOUT - timeout));
                if (!timeout) {
                        ret = -ETIME;
                        dev_err(di->dev, "completion timed out [%d]\n",
@@ -2954,44 +2954,37 @@ static struct device_attribute ab8505_fg_sysfs_psy_attrs[] = {
                ab8505_powercut_enable_status_read, NULL),
 };
 
-static int ab8500_fg_sysfs_psy_create_attrs(struct device *dev)
+static int ab8500_fg_sysfs_psy_create_attrs(struct ab8500_fg *di)
 {
        unsigned int i;
-       struct power_supply *psy = dev_get_drvdata(dev);
-       struct ab8500_fg *di;
-
-       di = to_ab8500_fg_device_info(psy);
 
        if (((is_ab8505(di->parent) || is_ab9540(di->parent)) &&
-            abx500_get_chip_id(dev->parent) >= AB8500_CUT2P0)
+            abx500_get_chip_id(di->dev) >= AB8500_CUT2P0)
            || is_ab8540(di->parent)) {
                for (i = 0; i < ARRAY_SIZE(ab8505_fg_sysfs_psy_attrs); i++)
-                       if (device_create_file(dev,
+                       if (device_create_file(di->fg_psy.dev,
                                               &ab8505_fg_sysfs_psy_attrs[i]))
                                goto sysfs_psy_create_attrs_failed_ab8505;
        }
        return 0;
 sysfs_psy_create_attrs_failed_ab8505:
-       dev_err(dev, "Failed creating sysfs psy attrs for ab8505.\n");
+       dev_err(di->fg_psy.dev, "Failed creating sysfs psy attrs for ab8505.\n");
        while (i--)
-               device_remove_file(dev, &ab8505_fg_sysfs_psy_attrs[i]);
+               device_remove_file(di->fg_psy.dev, &ab8505_fg_sysfs_psy_attrs[i]);
 
        return -EIO;
 }
 
-static void ab8500_fg_sysfs_psy_remove_attrs(struct device *dev)
+static void ab8500_fg_sysfs_psy_remove_attrs(struct ab8500_fg *di)
 {
        unsigned int i;
-       struct power_supply *psy = dev_get_drvdata(dev);
-       struct ab8500_fg *di;
-
-       di = to_ab8500_fg_device_info(psy);
 
        if (((is_ab8505(di->parent) || is_ab9540(di->parent)) &&
-            abx500_get_chip_id(dev->parent) >= AB8500_CUT2P0)
+            abx500_get_chip_id(di->dev) >= AB8500_CUT2P0)
            || is_ab8540(di->parent)) {
                for (i = 0; i < ARRAY_SIZE(ab8505_fg_sysfs_psy_attrs); i++)
-                       (void)device_remove_file(dev, &ab8505_fg_sysfs_psy_attrs[i]);
+                       (void)device_remove_file(di->fg_psy.dev,
+                                                &ab8505_fg_sysfs_psy_attrs[i]);
        }
 }
 
@@ -3056,7 +3049,7 @@ static int ab8500_fg_remove(struct platform_device *pdev)
        ab8500_fg_sysfs_exit(di);
 
        flush_scheduled_work();
-       ab8500_fg_sysfs_psy_remove_attrs(di->fg_psy.dev);
+       ab8500_fg_sysfs_psy_remove_attrs(di);
        power_supply_unregister(&di->fg_psy);
        return ret;
 }
@@ -3221,7 +3214,7 @@ static int ab8500_fg_probe(struct platform_device *pdev)
                goto free_irq;
        }
 
-       ret = ab8500_fg_sysfs_psy_create_attrs(di->fg_psy.dev);
+       ret = ab8500_fg_sysfs_psy_create_attrs(di);
        if (ret) {
                dev_err(di->dev, "failed to create FG psy\n");
                ab8500_fg_sysfs_exit(di);