]> err.no Git - linux-2.6/blobdiff - drivers/edac/edac_core.h
spi: fix the read path in spidev
[linux-2.6] / drivers / edac / edac_core.h
index bd7f00cf24439037fc4cc719cee6a8785f58bd03..b27b13c5eb5ad3871c88247887460a253d1a5276 100644 (file)
@@ -75,7 +75,7 @@ extern int edac_debug_level;
 #define edac_debug_printk(level, fmt, arg...)                            \
        do {                                                             \
                if (level <= edac_debug_level)                           \
-                       edac_printk(KERN_EMERG, EDAC_DEBUG, fmt, ##arg); \
+                       edac_printk(KERN_DEBUG, EDAC_DEBUG, fmt, ##arg); \
        } while(0)
 
 #define debugf0( ... ) edac_debug_printk(0, __VA_ARGS__ )
@@ -94,12 +94,10 @@ extern int edac_debug_level;
 
 #endif                         /* !CONFIG_EDAC_DEBUG */
 
-#define BIT(x) (1 << (x))
-
 #define PCI_VEND_DEV(vend, dev) PCI_VENDOR_ID_ ## vend, \
        PCI_DEVICE_ID_ ## vend ## _ ## dev
 
-#define dev_name(dev) (dev)->dev_name
+#define edac_dev_name(dev) (dev)->dev_name
 
 /* memory devices */
 enum dev_type {
@@ -138,6 +136,7 @@ enum mem_type {
        MEM_DDR2,               /* DDR2 RAM */
        MEM_FB_DDR2,            /* fully buffered DDR2 */
        MEM_RDDR2,              /* Registered DDR2 RAM */
+       MEM_XDR,                /* Rambus XDR */
 };
 
 #define MEM_FLAG_EMPTY         BIT(MEM_EMPTY)
@@ -154,6 +153,7 @@ enum mem_type {
 #define MEM_FLAG_DDR2           BIT(MEM_DDR2)
 #define MEM_FLAG_FB_DDR2        BIT(MEM_FB_DDR2)
 #define MEM_FLAG_RDDR2          BIT(MEM_RDDR2)
+#define MEM_FLAG_XDR            BIT(MEM_XDR)
 
 /* chipset Error Detection and Correction capabilities and mode */
 enum edac_type {
@@ -337,6 +337,9 @@ struct mcidev_sysfs_attribute {
  */
 struct mem_ctl_info {
        struct list_head link;  /* for global list of mem_ctl_info structs */
+
+       struct module *owner;   /* Module owner of this control struct */
+
        unsigned long mtype_cap;        /* memory types supported by mc */
        unsigned long edac_ctl_cap;     /* Mem controller EDAC capabilities */
        unsigned long edac_cap; /* configuration capabilities - this is
@@ -482,7 +485,16 @@ struct edac_dev_sysfs_attribute {
 };
 
 /* edac_dev_sysfs_block_attribute structure
+ *
  *     used in leaf 'block' nodes for adding controls/attributes
+ *
+ *     each block in each instance of the containing control structure
+ *     can have an array of the following. The show and store functions
+ *     will be filled in with the show/store function in the
+ *     low level driver.
+ *
+ *     The 'value' field will be the actual value field used for
+ *     counting
  */
 struct edac_dev_sysfs_block_attribute {
        struct attribute attr;
@@ -491,8 +503,6 @@ struct edac_dev_sysfs_block_attribute {
                        const char *, size_t);
        struct edac_device_block *block;
 
-       /* low driver use */
-       void *arg;
        unsigned int value;
 };
 
@@ -510,7 +520,6 @@ struct edac_device_block {
 
        /* edac sysfs device control */
        struct kobject kobj;
-       struct completion kobj_complete;
 };
 
 /* device instance control structure */
@@ -525,7 +534,6 @@ struct edac_device_instance {
 
        /* edac sysfs device control */
        struct kobject kobj;
-       struct completion kobj_complete;
 };
 
 
@@ -537,6 +545,8 @@ struct edac_device_ctl_info {
        /* for global list of edac_device_ctl_info structs */
        struct list_head link;
 
+       struct module *owner;   /* Module owner of this control struct */
+
        int dev_idx;
 
        /* Per instance controls for this edac_device */
@@ -587,7 +597,7 @@ struct edac_device_ctl_info {
         * NMI handlers may be traversing list
         */
        struct rcu_head rcu;
-       struct completion complete;
+       struct completion removal_complete;
 
        /* sysfs top name under 'edac' directory
         * and instance name:
@@ -611,7 +621,6 @@ struct edac_device_ctl_info {
         * device this structure controls
         */
        struct kobject kobj;
-       struct completion kobj_complete;
 };
 
 /* To get from the instance's wq to the beginning of the ctl structure */