Blame view

kernel/linux-rt-4.4.41/sound/aoa/soundbus/sysfs.c 1.15 KB
5113f6f70   김현기   kernel add
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
47
48
49
  #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;
  }
  static DEVICE_ATTR_RO(modalias);
  
  soundbus_config_of_attr (name, "%s
  ");
  static DEVICE_ATTR_RO(name);
  soundbus_config_of_attr (type, "%s
  ");
  static DEVICE_ATTR_RO(type);
  
  struct attribute *soundbus_dev_attrs[] = {
  	&dev_attr_name.attr,
  	&dev_attr_type.attr,
  	&dev_attr_modalias.attr,
  	NULL,
  };