]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
authorLinus Torvalds <torvalds@g5.osdl.org>
Thu, 27 Apr 2006 21:25:30 +0000 (14:25 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 27 Apr 2006 21:25:30 +0000 (14:25 -0700)
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:
  [PATCH] Added URI of "linux kernel development process"
  [PATCH] Kobject: possible cleanups
  [PATCH] Fix OCFS2 warning when DEBUG_FS is not enabled
  [PATCH] Kobject: fix build error
  [PATCH] Frame buffer: remove cmap sysfs interface

Documentation/HOWTO
drivers/video/fbsysfs.c
include/linux/debugfs.h
include/linux/kobject.h
lib/kobject.c
lib/kobject_uevent.c

index 6c9e746267da692c0759a93803ebbdb943bc5f94..915ae8c986c68a9ac3041cd072c6f7697353ee02 100644 (file)
@@ -603,7 +603,8 @@ start exactly where you are now.
 
 
 ----------
-Thanks to Paolo Ciarrocchi who allowed the "Development Process" section
+Thanks to Paolo Ciarrocchi who allowed the "Development Process"
+(http://linux.tar.bz/articles/2.6-development_process) section
 to be based on text he had written, and to Randy Dunlap and Gerrit
 Huizenga for some of the list of things you should and should not say.
 Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,
index b72b05250a9d22916c8f6a3b3446d1d517e50d5a..34e07399756b4ebd739792dff78abc1114dade2c 100644 (file)
@@ -305,94 +305,6 @@ static ssize_t show_stride(struct class_device *class_device, char *buf)
        return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->fix.line_length);
 }
 
-/* Format for cmap is "%02x%c%4x%4x%4x\n" */
-/* %02x entry %c transp %4x red %4x blue %4x green \n */
-/* 256 rows at 16 chars equals 4096, the normal page size */
-/* the code will automatically adjust for different page sizes */
-static ssize_t store_cmap(struct class_device *class_device, const char *buf,
-                         size_t count)
-{
-       struct fb_info *fb_info = class_get_devdata(class_device);
-       int rc, i, start, length, transp = 0;
-
-       if ((count > PAGE_SIZE) || ((count % 16) != 0))
-               return -EINVAL;
-
-       if (!fb_info->fbops->fb_setcolreg && !fb_info->fbops->fb_setcmap)
-               return -EINVAL;
-
-       sscanf(buf, "%02x", &start);
-       length = count / 16;
-
-       for (i = 0; i < length; i++)
-               if (buf[i * 16 + 2] != ' ')
-                       transp = 1;
-
-       /* If we can batch, do it */
-       if (fb_info->fbops->fb_setcmap && length > 1) {
-               struct fb_cmap umap;
-
-               memset(&umap, 0, sizeof(umap));
-               if ((rc = fb_alloc_cmap(&umap, length, transp)))
-                       return rc;
-
-               umap.start = start;
-               for (i = 0; i < length; i++) {
-                       sscanf(&buf[i * 16 +  3], "%4hx", &umap.red[i]);
-                       sscanf(&buf[i * 16 +  7], "%4hx", &umap.blue[i]);
-                       sscanf(&buf[i * 16 + 11], "%4hx", &umap.green[i]);
-                       if (transp)
-                               umap.transp[i] = (buf[i * 16 +  2] != ' ');
-               }
-               rc = fb_info->fbops->fb_setcmap(&umap, fb_info);
-               fb_copy_cmap(&umap, &fb_info->cmap);
-               fb_dealloc_cmap(&umap);
-
-               return rc ?: count;
-       }
-       for (i = 0; i < length; i++) {
-               u16 red, blue, green, tsp;
-
-               sscanf(&buf[i * 16 +  3], "%4hx", &red);
-               sscanf(&buf[i * 16 +  7], "%4hx", &blue);
-               sscanf(&buf[i * 16 + 11], "%4hx", &green);
-               tsp = (buf[i * 16 +  2] != ' ');
-               if ((rc = fb_info->fbops->fb_setcolreg(start++,
-                                     red, green, blue, tsp, fb_info)))
-                       return rc;
-
-               fb_info->cmap.red[i] = red;
-               fb_info->cmap.blue[i] = blue;
-               fb_info->cmap.green[i] = green;
-               if (transp)
-                       fb_info->cmap.transp[i] = tsp;
-       }
-       return count;
-}
-
-static ssize_t show_cmap(struct class_device *class_device, char *buf)
-{
-       struct fb_info *fb_info = class_get_devdata(class_device);
-       unsigned int i;
-
-       if (!fb_info->cmap.red || !fb_info->cmap.blue ||
-          !fb_info->cmap.green)
-               return -EINVAL;
-
-       if (fb_info->cmap.len > PAGE_SIZE / 16)
-               return -EINVAL;
-
-       /* don't mess with the format, the buffer is PAGE_SIZE */
-       /* 256 entries at 16 chars per line equals 4096 = PAGE_SIZE */
-       for (i = 0; i < fb_info->cmap.len; i++) {
-               snprintf(&buf[ i * 16], PAGE_SIZE - i * 16, "%02x%c%4x%4x%4x\n", i + fb_info->cmap.start,
-                       ((fb_info->cmap.transp && fb_info->cmap.transp[i]) ? '*' : ' '),
-                       fb_info->cmap.red[i], fb_info->cmap.blue[i],
-                       fb_info->cmap.green[i]);
-       }
-       return 16 * fb_info->cmap.len;
-}
-
 static ssize_t store_blank(struct class_device *class_device, const char * buf,
                           size_t count)
 {
@@ -502,10 +414,12 @@ static ssize_t show_fbstate(struct class_device *class_device, char *buf)
        return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->state);
 }
 
+/* When cmap is added back in it should be a binary attribute
+ * not a text one. Consideration should also be given to converting
+ * fbdev to use configfs instead of sysfs */
 static struct class_device_attribute class_device_attrs[] = {
        __ATTR(bits_per_pixel, S_IRUGO|S_IWUSR, show_bpp, store_bpp),
        __ATTR(blank, S_IRUGO|S_IWUSR, show_blank, store_blank),
-       __ATTR(color_map, S_IRUGO|S_IWUSR, show_cmap, store_cmap),
        __ATTR(console, S_IRUGO|S_IWUSR, show_console, store_console),
        __ATTR(cursor, S_IRUGO|S_IWUSR, show_cursor, store_cursor),
        __ATTR(mode, S_IRUGO|S_IWUSR, show_mode, store_mode),
index 176e2d37157783153458fc1d8e57b53057482171..047567d34ca77e5da470f7a954e3799a217e14a9 100644 (file)
@@ -58,9 +58,8 @@ struct dentry *debugfs_create_blob(const char *name, mode_t mode,
  */
 
 static inline struct dentry *debugfs_create_file(const char *name, mode_t mode,
-                                                struct dentry *parent,
-                                                void *data,
-                                                struct file_operations *fops)
+                                       struct dentry *parent, void *data,
+                                       const struct file_operations *fops)
 {
        return ERR_PTR(-ENODEV);
 }
index dcd0623be892fb522d82b698f51365f760f8a03d..c187c53cecd0f94dd15bf3340b87c9a3652ea6d3 100644 (file)
@@ -257,9 +257,8 @@ struct subsys_attribute {
 };
 
 extern int subsys_create_file(struct subsystem * , struct subsys_attribute *);
-extern void subsys_remove_file(struct subsystem * , struct subsys_attribute *);
 
-#if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET)
+#if defined(CONFIG_HOTPLUG)
 void kobject_uevent(struct kobject *kobj, enum kobject_action action);
 
 int add_uevent_var(char **envp, int num_envp, int *cur_index,
index 01d9575139408bf2a697b4683bd2183ea7cd104c..b46350c278370b3ea799fdd5e220befbb7b83a83 100644 (file)
@@ -422,7 +422,6 @@ struct kobject *kobject_add_dir(struct kobject *parent, const char *name)
 
        return k;
 }
-EXPORT_SYMBOL_GPL(kobject_add_dir);
 
 /**
  *     kset_init - initialize a kset for use
@@ -569,7 +568,7 @@ int subsys_create_file(struct subsystem * s, struct subsys_attribute * a)
  *     @s:     subsystem.
  *     @a:     attribute desciptor.
  */
-
+#if 0
 void subsys_remove_file(struct subsystem * s, struct subsys_attribute * a)
 {
        if (subsys_get(s)) {
@@ -577,6 +576,7 @@ void subsys_remove_file(struct subsystem * s, struct subsys_attribute * a)
                subsys_put(s);
        }
 }
+#endif  /*  0  */
 
 EXPORT_SYMBOL(kobject_init);
 EXPORT_SYMBOL(kobject_register);
@@ -588,10 +588,7 @@ EXPORT_SYMBOL(kobject_del);
 
 EXPORT_SYMBOL(kset_register);
 EXPORT_SYMBOL(kset_unregister);
-EXPORT_SYMBOL(kset_find_obj);
 
-EXPORT_SYMBOL(subsystem_init);
 EXPORT_SYMBOL(subsystem_register);
 EXPORT_SYMBOL(subsystem_unregister);
 EXPORT_SYMBOL(subsys_create_file);
-EXPORT_SYMBOL(subsys_remove_file);
index 982226daf9398112185a5eb717c28d396fcb9341..7f20e7b857cb559b7624d89ca4c52bbf86bc1b65 100644 (file)
 #define BUFFER_SIZE    2048    /* buffer for the variables */
 #define NUM_ENVP       32      /* number of env pointers */
 
-#if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET)
+#if defined(CONFIG_HOTPLUG)
 u64 uevent_seqnum;
 char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug";
 static DEFINE_SPINLOCK(sequence_lock);
+#if defined(CONFIG_NET)
 static struct sock *uevent_sock;
+#endif
 
 static char *action_to_string(enum kobject_action action)
 {
@@ -155,6 +157,7 @@ void kobject_uevent(struct kobject *kobj, enum kobject_action action)
        spin_unlock(&sequence_lock);
        sprintf(seq_buff, "SEQNUM=%llu", (unsigned long long)seq);
 
+#if defined(CONFIG_NET)
        /* send netlink message */
        if (uevent_sock) {
                struct sk_buff *skb;
@@ -179,6 +182,7 @@ void kobject_uevent(struct kobject *kobj, enum kobject_action action)
                        netlink_broadcast(uevent_sock, skb, 0, 1, GFP_KERNEL);
                }
        }
+#endif
 
        /* call uevent_helper, usually only enabled during early boot */
        if (uevent_helper[0]) {
@@ -249,6 +253,7 @@ int add_uevent_var(char **envp, int num_envp, int *cur_index,
 }
 EXPORT_SYMBOL_GPL(add_uevent_var);
 
+#if defined(CONFIG_NET)
 static int __init kobject_uevent_init(void)
 {
        uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL,
@@ -264,5 +269,6 @@ static int __init kobject_uevent_init(void)
 }
 
 postcore_initcall(kobject_uevent_init);
+#endif
 
 #endif /* CONFIG_HOTPLUG */