brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 936ac9d Raw
58 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2//3// Copyright(c) 2020 Intel Corporation4//5// Author: Cezary Rojewski <cezary.rojewski@intel.com>6//7 8#include <linux/pm_runtime.h>9#include "core.h"10 11static ssize_t fw_version_show(struct device *dev,12			       struct device_attribute *attr, char *buf)13{14	struct catpt_dev *cdev = dev_get_drvdata(dev);15	struct catpt_fw_version version;16	int ret;17 18	ret = pm_runtime_resume_and_get(cdev->dev);19	if (ret < 0 && ret != -EACCES)20		return ret;21 22	ret = catpt_ipc_get_fw_version(cdev, &version);23 24	pm_runtime_mark_last_busy(cdev->dev);25	pm_runtime_put_autosuspend(cdev->dev);26 27	if (ret)28		return CATPT_IPC_ERROR(ret);29 30	return sysfs_emit(buf, "%d.%d.%d.%d\n", version.type, version.major,31			  version.minor, version.build);32}33static DEVICE_ATTR_RO(fw_version);34 35static ssize_t fw_info_show(struct device *dev,36			    struct device_attribute *attr, char *buf)37{38	struct catpt_dev *cdev = dev_get_drvdata(dev);39 40	return sysfs_emit(buf, "%s\n", cdev->ipc.config.fw_info);41}42static DEVICE_ATTR_RO(fw_info);43 44static struct attribute *catpt_attrs[] = {45	&dev_attr_fw_version.attr,46	&dev_attr_fw_info.attr,47	NULL48};49 50static const struct attribute_group catpt_attr_group = {51	.attrs = catpt_attrs,52};53 54const struct attribute_group *catpt_attr_groups[] = {55	&catpt_attr_group,56	NULL57};58