static ssize_t attr_status_show(struct device *dev, struct device_attribute *attr, char *buf) { struct lm3561_drv_data *data = dev_get_drvdata(dev); int result; u8 status; result = lm3561_check_status(data, &status); if (result) return result; return snprintf(buf, PAGE_SIZE, "%d\n", status); }
static ssize_t attr_status_show(struct device *dev, struct device_attribute *attr, char *buf) { struct lm3561_drv_data *data = dev_get_drvdata(dev); int result; u8 status; result = pm_runtime_get_sync(&data->client->dev); if (result < 0) return result; result = lm3561_check_status(data, &status); pm_runtime_mark_last_busy(&data->client->dev); pm_runtime_put_autosuspend(&data->client->dev); if (result) return result; return snprintf(buf, PAGE_SIZE, "%d\n", status); }