Blame view

kernel/linux-imx6_3.14.28/sound/aoa/soundbus/sysfs.c 1.06 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  #include <linux/kernel.h>
  #include <linux/stat.h>
  /* FIX UP */
  #include "soundbus.h"
  
  #define soundbus_config_of_attr(field, format_string)			\
  static ssize_t								\
  field##_show (struct device *dev, struct device_attribute *attr,	\
                char *buf)						\
  {									\
  	struct soundbus_dev *mdev = to_soundbus_device (dev);		\
  	return sprintf (buf, format_string, mdev->ofdev.dev.of_node->field); \
  }
  
  static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
  			     char *buf)
  {
  	struct soundbus_dev *sdev = to_soundbus_device(dev);
  	struct platform_device *of = &sdev->ofdev;
  	int length;
  
  	if (*sdev->modalias) {
  		strlcpy(buf, sdev->modalias, sizeof(sdev->modalias) + 1);
  		strcat(buf, "
  ");
  		length = strlen(buf);
  	} else {
  		length = sprintf(buf, "of:N%sT%s
  ",
  				 of->dev.of_node->name, of->dev.of_node->type);
  	}
  
  	return length;
  }
  
  soundbus_config_of_attr (name, "%s
  ");
  soundbus_config_of_attr (type, "%s
  ");
  
  struct device_attribute soundbus_dev_attrs[] = {
  	__ATTR_RO(name),
  	__ATTR_RO(type),
  	__ATTR_RO(modalias),
  	__ATTR_NULL
  };