]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
Merge branch 'for-next' of git://sources.calxeda.com/kernel/linux into HEAD
authorGrant Likely <grant.likely@secretlab.ca>
Tue, 7 May 2013 11:03:42 +0000 (12:03 +0100)
committerGrant Likely <grant.likely@secretlab.ca>
Tue, 7 May 2013 11:03:42 +0000 (12:03 +0100)
Documentation/devicetree/usage-model.txt
arch/arm/boot/dts/include/dt-bindings [new symlink]
include/dt-bindings/gpio/gpio.h [new file with mode: 0644]
include/dt-bindings/interrupt-controller/arm-gic.h [new file with mode: 0644]
include/dt-bindings/interrupt-controller/irq.h [new file with mode: 0644]
include/linux/of_platform.h
scripts/Makefile.lib
scripts/basic/fixdep.c

index ef9d06c9f8fde9341c3dc1926f83524fb7a47396..0efedaad5165d74a1ef8273fe1ff9491c096d97a 100644 (file)
@@ -191,9 +191,11 @@ Linux it will look something like this:
        };
 
 The bootargs property contains the kernel arguments, and the initrd-*
-properties define the address and size of an initrd blob.  The
-chosen node may also optionally contain an arbitrary number of
-additional properties for platform-specific configuration data.
+properties define the address and size of an initrd blob.  Note that
+initrd-end is the first address after the initrd image, so this doesn't
+match the usual semantic of struct resource.  The chosen node may also
+optionally contain an arbitrary number of additional properties for
+platform-specific configuration data.
 
 During early boot, the architecture setup code calls of_scan_flat_dt()
 several times with different helper callbacks to parse device tree
diff --git a/arch/arm/boot/dts/include/dt-bindings b/arch/arm/boot/dts/include/dt-bindings
new file mode 120000 (symlink)
index 0000000..08c00e4
--- /dev/null
@@ -0,0 +1 @@
+../../../../../include/dt-bindings
\ No newline at end of file
diff --git a/include/dt-bindings/gpio/gpio.h b/include/dt-bindings/gpio/gpio.h
new file mode 100644 (file)
index 0000000..e6b1e0a
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * This header provides constants for most GPIO bindings.
+ *
+ * Most GPIO bindings include a flags cell as part of the GPIO specifier.
+ * In most cases, the format of the flags cell uses the standard values
+ * defined in this header.
+ */
+
+#ifndef _DT_BINDINGS_GPIO_GPIO_H
+#define _DT_BINDINGS_GPIO_GPIO_H
+
+#define GPIO_ACTIVE_HIGH 0
+#define GPIO_ACTIVE_LOW 1
+
+#endif
diff --git a/include/dt-bindings/interrupt-controller/arm-gic.h b/include/dt-bindings/interrupt-controller/arm-gic.h
new file mode 100644 (file)
index 0000000..1ea1b70
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * This header provides constants for the ARM GIC.
+ */
+
+#ifndef _DT_BINDINGS_INTERRUPT_CONTROLLER_ARM_GIC_H
+#define _DT_BINDINGS_INTERRUPT_CONTROLLER_ARM_GIC_H
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/* interrupt specific cell 0 */
+
+#define GIC_SPI 0
+#define GIC_PPI 1
+
+/*
+ * Interrupt specifier cell 2.
+ * The flaggs in irq.h are valid, plus those below.
+ */
+#define GIC_CPU_MASK_RAW(x) ((x) << 8)
+#define GIC_CPU_MASK_SIMPLE(num) GIC_CPU_MASK_RAW((1 << (num)) - 1)
+
+#endif
diff --git a/include/dt-bindings/interrupt-controller/irq.h b/include/dt-bindings/interrupt-controller/irq.h
new file mode 100644 (file)
index 0000000..33a1003
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * This header provides constants for most IRQ bindings.
+ *
+ * Most IRQ bindings include a flags cell as part of the IRQ specifier.
+ * In most cases, the format of the flags cell uses the standard values
+ * defined in this header.
+ */
+
+#ifndef _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
+#define _DT_BINDINGS_INTERRUPT_CONTROLLER_IRQ_H
+
+#define IRQ_TYPE_NONE          0
+#define IRQ_TYPE_EDGE_RISING   1
+#define IRQ_TYPE_EDGE_FALLING  2
+#define IRQ_TYPE_EDGE_BOTH     (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)
+#define IRQ_TYPE_LEVEL_HIGH    4
+#define IRQ_TYPE_LEVEL_LOW     8
+
+#endif
index 3863a4dbdf1888c51ff9d4ae94057a31e5118034..2a93b64a3869f2af9ea623b8ddc0a435668b3c8c 100644 (file)
  *
  */
 
-#ifdef CONFIG_OF_DEVICE
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+
+#ifdef CONFIG_OF_DEVICE
 #include <linux/pm.h>
 #include <linux/of_device.h>
 #include <linux/platform_device.h>
@@ -100,7 +101,7 @@ extern int of_platform_populate(struct device_node *root,
 
 #if !defined(CONFIG_OF_ADDRESS)
 struct of_dev_auxdata;
-struct device;
+struct device_node;
 static inline int of_platform_populate(struct device_node *root,
                                        const struct of_device_id *matches,
                                        const struct of_dev_auxdata *lookup,
index 07125e697d7a980efdb0f9136ee5741fe8cf0473..3e73dfd838cdcc546f0839f206d703d2d42c6ac2 100644 (file)
@@ -156,9 +156,9 @@ cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
 
 ld_flags       = $(LDFLAGS) $(ldflags-y)
 
-dtc_cpp_flags  = -Wp,-MD,$(depfile) -nostdinc                            \
+dtc_cpp_flags  = -Wp,-MD,$(depfile).pre -nostdinc                        \
                 -I$(srctree)/arch/$(SRCARCH)/boot/dts                   \
-                -I$(srctree)/arch/$(SRCARCH)/include/dts                \
+                -I$(srctree)/arch/$(SRCARCH)/boot/dts/include           \
                 -undef -D__DTS__
 
 # Finds the multi-part object the current object will be linked into
@@ -269,20 +269,17 @@ $(obj)/%.dtb.S: $(obj)/%.dtb
        $(call cmd,dt_S_dtb)
 
 quiet_cmd_dtc = DTC     $@
-cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) -d $(depfile) $<
+cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
+       $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \
+               -i $(srctree)/arch/$(SRCARCH)/boot/dts $(DTC_FLAGS) \
+               -d $(depfile).dtc $(dtc-tmp) ; \
+       cat $(depfile).pre $(depfile).dtc > $(depfile)
 
 $(obj)/%.dtb: $(src)/%.dts FORCE
        $(call if_changed_dep,dtc)
 
 dtc-tmp = $(subst $(comma),_,$(dot-target).dts)
 
-quiet_cmd_dtc_cpp = DTC+CPP $@
-cmd_dtc_cpp = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
-       $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $(dtc-tmp)
-
-$(obj)/%.dtb: $(src)/%.dtsp FORCE
-       $(call if_changed_dep,dtc_cpp)
-
 # Bzip2
 # ---------------------------------------------------------------------------
 
index 7f6425e24ce3ad985635e9249a64552f661566f2..078fe1d64e7df3e38e94dcd595bb834e5bd9da9c 100644 (file)
@@ -320,49 +320,78 @@ static void parse_dep_file(void *map, size_t len)
        char *end = m + len;
        char *p;
        char s[PATH_MAX];
-       int first;
-
-       p = strchr(m, ':');
-       if (!p) {
-               fprintf(stderr, "fixdep: parse error\n");
-               exit(1);
-       }
-       memcpy(s, m, p-m); s[p-m] = 0;
-       m = p+1;
+       int is_target;
+       int saw_any_target = 0;
+       int is_first_dep = 0;
 
        clear_config();
 
-       first = 1;
        while (m < end) {
+               /* Skip any "white space" */
                while (m < end && (*m == ' ' || *m == '\\' || *m == '\n'))
                        m++;
+               /* Find next "white space" */
                p = m;
-               while (p < end && *p != ' ') p++;
-               if (p == end) {
-                       do p--; while (!isalnum(*p));
+               while (p < end && *p != ' ' && *p != '\\' && *p != '\n')
                        p++;
+               /* Is the token we found a target name? */
+               is_target = (*(p-1) == ':');
+               /* Don't write any target names into the dependency file */
+               if (is_target) {
+                       /* The /next/ file is the first dependency */
+                       is_first_dep = 1;
+               } else {
+                       /* Save this token/filename */
+                       memcpy(s, m, p-m);
+                       s[p - m] = 0;
+
+                       /* Ignore certain dependencies */
+                       if (strrcmp(s, "include/generated/autoconf.h") &&
+                           strrcmp(s, "arch/um/include/uml-config.h") &&
+                           strrcmp(s, "include/linux/kconfig.h") &&
+                           strrcmp(s, ".ver")) {
+                               /*
+                                * Do not list the source file as dependency,
+                                * so that kbuild is not confused if a .c file
+                                * is rewritten into .S or vice versa. Storing
+                                * it in source_* is needed for modpost to
+                                * compute srcversions.
+                                */
+                               if (is_first_dep) {
+                                       /*
+                                        * If processing the concatenation of
+                                        * multiple dependency files, only
+                                        * process the first target name, which
+                                        * will be the original source name,
+                                        * and ignore any other target names,
+                                        * which will be intermediate temporary
+                                        * files.
+                                        */
+                                       if (!saw_any_target) {
+                                               saw_any_target = 1;
+                                               printf("source_%s := %s\n\n",
+                                                       target, s);
+                                               printf("deps_%s := \\\n",
+                                                       target);
+                                       }
+                                       is_first_dep = 0;
+                               } else
+                                       printf("  %s \\\n", s);
+                               do_config_file(s);
+                       }
                }
-               memcpy(s, m, p-m); s[p-m] = 0;
-               if (strrcmp(s, "include/generated/autoconf.h") &&
-                   strrcmp(s, "arch/um/include/uml-config.h") &&
-                   strrcmp(s, "include/linux/kconfig.h") &&
-                   strrcmp(s, ".ver")) {
-                       /*
-                        * Do not list the source file as dependency, so that
-                        * kbuild is not confused if a .c file is rewritten
-                        * into .S or vice versa. Storing it in source_* is
-                        * needed for modpost to compute srcversions.
-                        */
-                       if (first) {
-                               printf("source_%s := %s\n\n", target, s);
-                               printf("deps_%s := \\\n", target);
-                       } else
-                               printf("  %s \\\n", s);
-                       do_config_file(s);
-               }
-               first = 0;
+               /*
+                * Start searching for next token immediately after the first
+                * "whitespace" character that follows this token.
+                */
                m = p + 1;
        }
+
+       if (!saw_any_target) {
+               fprintf(stderr, "fixdep: parse error; no targets found\n");
+               exit(1);
+       }
+
        printf("\n%s: $(deps_%s)\n\n", target, target);
        printf("$(deps_%s):\n", target);
 }