Fix i.MX6
[AGL/meta-agl.git] / meta-agl-bsp / meta-freescale-layer / recipes-kernel / linux / linux-fslc-imx_%.bbappend
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx_%.bbappend b/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx_%.bbappend
new file mode 100644 (file)
index 0000000..5fe15cb
--- /dev/null
@@ -0,0 +1,103 @@
+# Borrowed fragments logic from linaro kernel configuration
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+KERNEL_CONFIG_FRAGMENTS ?= ""
+
+kernel_conf_variable() {
+    CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
+    if test "$2" = "n"
+    then
+        echo "# CONFIG_$1 is not set" >> ${B}/.config
+    else
+        echo "CONFIG_$1=$2" >> ${B}/.config
+    fi
+}
+
+do_configure_append() {
+
+    CONF_SED_SCRIPT=""
+
+    # kernel_conf_variable NAME y/n lines here
+
+    if [ -f '${WORKDIR}/defconfig' ]; then
+        sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config'
+    else
+        sed -e "${CONF_SED_SCRIPT}" < '${KERNEL_DEFCONFIG}' >> '${B}/.config'
+    fi
+
+    # Check for kernel config fragments.  The assumption is that the config
+    # fragment will be specified with the absolute path.  For example:
+    #   * ${WORKDIR}/config1.cfg
+    #   * ${S}/config2.cfg
+    # Iterate through the list of configs and make sure that you can find
+    # each one.  If not then error out.
+    # NOTE: If you want to override a configuration that is kept in the kernel
+    #       with one from the OE meta data then you should make sure that the
+    #       OE meta data version (i.e. ${WORKDIR}/config1.cfg) is listed
+    #       after the in kernel configuration fragment.
+    # Check if any config fragments are specified.
+    if [ ! -z "${KERNEL_CONFIG_FRAGMENTS}" ]
+    then
+        for f in ${KERNEL_CONFIG_FRAGMENTS}
+        do
+            # Check if the config fragment was copied into the WORKDIR from
+            # the OE meta data
+            if [ ! -e "$f" ]
+            then
+                echo "Could not find kernel config fragment $f"
+                exit 1
+            fi
+        done
+
+#        # Now that all the fragments are located merge them.
+#        ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 )
+#
+
+        cat ${KERNEL_CONFIG_FRAGMENTS} >> ${B}/.config
+    fi
+
+    yes '' | oe_runmake -C ${S} O=${B} oldconfig
+    oe_runmake -C ${S} O=${B} savedefconfig && cp ${B}/defconfig ${WORKDIR}/defconfig.saved
+}
+
+# Make sure these are enabled so that AGL configurations work
+
+SRC_URI_append = " file://tmpfs.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/tmpfs.cfg"
+SRC_URI_append = " file://namespace.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/namespace.cfg"
+SRC_URI_append = " file://cgroup.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/cgroup.cfg"
+
+# Fragments common to AGL demo platform (make sure they are added)
+
+# Enable support for USB HID touch display
+SRC_URI_append = " file://touchscreen.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/touchscreen.cfg"
+
+# Enable support for TP-Link TL-W722N USB Wifi adapter
+SRC_URI_append = " file://ath9k_htc.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/ath9k_htc.cfg"
+
+# Enable support for RTLSDR
+SRC_URI_append = " file://rtl_sdr.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtl_sdr.cfg"
+
+# Enable support for Bluetooth HCI USB devices
+SRC_URI_append = " file://btusb.cfg"
+KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/btusb.cfg"
+
+#-------------------------------------------------------------------------
+# smack patches for handling bluetooth
+
+SRC_URI_append_smack = "\
+       file://0004-Smack-Assign-smack_known_web-label-for-kernel-thread.patch \
+"
+
+# Enable support for smack
+KERNEL_CONFIG_FRAGMENTS_append_smack = "\
+       ${WORKDIR}/audit.cfg \
+       ${WORKDIR}/smack.cfg \
+       ${WORKDIR}/smack-default-lsm.cfg \
+"
+