ia64/linux-2.6.18-xen.hg

view sound/aoa/soundbus/sysfs.c @ 890:2e94884f0e8d

Dom0 PCI: fix a regression introduced by the SR-IOV change

The device class may be changed during the early fixup. So need to
re-read the device class from pci_dev after the fixup.

The patch "PCI: centralize device setup code" (c/s 825) wrongly
cleaned up the device class re-read. This patch reverts that change.

Signed-off-by: Yu Zhao <yu.zhao@intel.com>
author Keir Fraser <keir.fraser@citrix.com>
date Wed Jun 03 11:21:52 2009 +0100 (2009-06-03)
parents 831230e53067
children
line source
1 #include <linux/config.h>
2 #include <linux/kernel.h>
3 #include <linux/stat.h>
4 /* FIX UP */
5 #include "soundbus.h"
7 #define soundbus_config_of_attr(field, format_string) \
8 static ssize_t \
9 field##_show (struct device *dev, struct device_attribute *attr, \
10 char *buf) \
11 { \
12 struct soundbus_dev *mdev = to_soundbus_device (dev); \
13 return sprintf (buf, format_string, mdev->ofdev.node->field); \
14 }
16 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
17 char *buf)
18 {
19 struct soundbus_dev *sdev = to_soundbus_device(dev);
20 struct of_device *of = &sdev->ofdev;
21 int length;
23 if (*sdev->modalias) {
24 strlcpy(buf, sdev->modalias, sizeof(sdev->modalias) + 1);
25 strcat(buf, "\n");
26 length = strlen(buf);
27 } else {
28 length = sprintf(buf, "of:N%sT%s\n",
29 of->node->name, of->node->type);
30 }
32 return length;
33 }
35 soundbus_config_of_attr (name, "%s\n");
36 soundbus_config_of_attr (type, "%s\n");
38 struct device_attribute soundbus_dev_attrs[] = {
39 __ATTR_RO(name),
40 __ATTR_RO(type),
41 __ATTR_RO(modalias),
42 __ATTR_NULL
43 };