aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/image_types_fsl.bbclass39
-rw-r--r--conf/machine/imx23evk.conf1
-rw-r--r--conf/machine/imx28evk.conf1
-rw-r--r--conf/machine/imx51evk.conf2
-rw-r--r--conf/machine/imx53ard.conf2
-rw-r--r--conf/machine/imx53qsb.conf2
-rw-r--r--conf/machine/imx6qsabrelite.conf4
-rw-r--r--conf/machine/include/imx-base.inc5
-rw-r--r--conf/machine/include/mxs-base.inc3
-rw-r--r--recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch2
-rw-r--r--recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb10
-rw-r--r--recipes-bsp/u-boot/u-boot_2012.07.bb (renamed from recipes-bsp/u-boot/u-boot_2012.04.01.bb)5
-rw-r--r--recipes-core/packagegroup/packagegroup-base.bbappend (renamed from recipes-core/tasks/task-base.bbappend)0
-rw-r--r--recipes-core/udev/udev-extraconf/10-imx.rules (renamed from recipes-core/udev/udev-extra-rules/10-imx.rules)0
-rw-r--r--recipes-core/udev/udev-extraconf_1.0.bbappend (renamed from recipes-core/udev/udev-extra-rules.bbappend)6
-rw-r--r--recipes-kernel/linux/linux-mainline/mx5/defconfig175
-rw-r--r--recipes-kernel/linux/linux-mainline/mx6/defconfig175
-rw-r--r--recipes-kernel/linux/linux-mainline/mxs/defconfig118
-rw-r--r--recipes-kernel/linux/linux-mainline_3.6.bb28
-rw-r--r--recipes-qt/qt4/qt4-embedded_4.8.1.bbappend (renamed from recipes-qt/qt4/qt4-embedded_4.7.4.bbappend)0
-rw-r--r--recipes-qt/qt4/qt4-x11-free_4.8.1.bbappend (renamed from recipes-qt/qt4/qt4-x11-free_4.7.4.bbappend)2
-rw-r--r--recipes-qt/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch173
22 files changed, 654 insertions, 99 deletions
diff --git a/classes/image_types_fsl.bbclass b/classes/image_types_fsl.bbclass
index 1ed817f..1f4e6d4 100644
--- a/classes/image_types_fsl.bbclass
+++ b/classes/image_types_fsl.bbclass
@@ -13,8 +13,29 @@ UBOOT_SUFFIX_SDCARD ?= "${UBOOT_SUFFIX}"
# IMX Bootlets Linux bootstream
IMAGE_DEPENDS_linux.sb = "elftosb-native imx-bootlets virtual/kernel"
-IMAGE_CMD_linux.sb = "(cd ${DEPLOY_DIR_IMAGE} ; elftosb -z -c imx-bootlets-linux.bd-${MACHINE} \
- -o ${IMAGE_NAME}.linux.sb)"
+IMAGE_LINK_NAME_linux.sb = ""
+IMAGE_CMD_linux.sb () {
+ kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
+ kernel_dtb="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.dtb`"
+ linux_bd_file=imx-bootlets-linux.bd-${MACHINE}
+ if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then
+ # When using device tree we build a zImage with the dtb
+ # appended on the end of the image
+ linux_bd_file=imx-bootlets-linux.bd-dtb-${MACHINE}
+ cat $kernel_bin $kernel_dtb \
+ > $kernel_bin-dtb
+ rm -f ${KERNEL_IMAGETYPE}-${MACHINE}.bin-dtb
+ ln -s $kernel_bin-dtb ${KERNEL_IMAGETYPE}-${MACHINE}.bin-dtb
+ fi
+
+ # Ensure the file is generated
+ rm -f ${IMAGE_NAME}.linux.sb
+ elftosb -z -c $linux_bd_file -o ${IMAGE_NAME}.linux.sb
+
+ # Remove the appended file as it is only used here
+ rm -f $kernel_bin-dtb
+}
+
# U-Boot mxsboot generation to SD-Card
UBOOT_SUFFIX_SDCARD_mxs ?= "mxsboot-sdcard"
@@ -83,6 +104,13 @@ generate_imx_sdcard () {
| awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }')
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE}.bin ::/uImage
+ if [ -e "${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ]; then
+ kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
+ kernel_dtb="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.dtb`"
+ if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb ::/machine.dtb
+ fi
+ fi
dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=1M
dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=${BOOT_SPACE}
@@ -133,6 +161,13 @@ generate_mxs_sdcard () {
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE}.bin ::/uImage
+ if [ -e "${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ]; then
+ kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
+ kernel_dtb="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.dtb`"
+ if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb ::/machine.dtb
+ fi
+ fi
dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=2 bs=1MiB
;;
diff --git a/conf/machine/imx23evk.conf b/conf/machine/imx23evk.conf
index 2722b25..a4a9078 100644
--- a/conf/machine/imx23evk.conf
+++ b/conf/machine/imx23evk.conf
@@ -7,6 +7,7 @@ include conf/machine/include/mxs-base.inc
IMXBOOTLETS_MACHINE = "stmp378x_dev"
KERNEL_IMAGETYPE = "zImage"
+KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx23-evk.dts"
IMAGE_BOOTLOADER = "imx-bootlets"
diff --git a/conf/machine/imx28evk.conf b/conf/machine/imx28evk.conf
index c00d358..62c468f 100644
--- a/conf/machine/imx28evk.conf
+++ b/conf/machine/imx28evk.conf
@@ -13,6 +13,7 @@ UBOOT_MAKE_TARGET = "u-boot.sb"
UBOOT_SUFFIX = "sb"
KERNEL_IMAGETYPE = "uImage"
+KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx28-evk.dts"
SDCARD_ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
IMAGE_FSTYPES ?= "tar.bz2 ext3 uboot.mxsboot-sdcard sdcard"
diff --git a/conf/machine/imx51evk.conf b/conf/machine/imx51evk.conf
index 0f6771d..5d7bbab 100644
--- a/conf/machine/imx51evk.conf
+++ b/conf/machine/imx51evk.conf
@@ -8,6 +8,8 @@ include conf/machine/include/tune-cortexa8.inc
SOC_FAMILY = "mx5"
+KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx51-babbage.dts"
+
UBOOT_ENTRYPOINT = "0xa0000000"
UBOOT_LOADADDRESS = "0xa0000000"
UBOOT_MACHINE = "mx51evk_config"
diff --git a/conf/machine/imx53ard.conf b/conf/machine/imx53ard.conf
index d4ff4d7..9b070d0 100644
--- a/conf/machine/imx53ard.conf
+++ b/conf/machine/imx53ard.conf
@@ -8,6 +8,8 @@ include conf/machine/include/tune-cortexa8.inc
SOC_FAMILY = "mx5"
+KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx53-ard.dts"
+
UBOOT_ENTRYPOINT = "0x70800000"
UBOOT_LOADADDRESS = "0x70800000"
UBOOT_MACHINE = "mx53ard_config"
diff --git a/conf/machine/imx53qsb.conf b/conf/machine/imx53qsb.conf
index 69aa7b0..ca73671 100644
--- a/conf/machine/imx53qsb.conf
+++ b/conf/machine/imx53qsb.conf
@@ -8,6 +8,8 @@ include conf/machine/include/tune-cortexa8.inc
SOC_FAMILY = "mx5"
+KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx53-qsb.dts"
+
UBOOT_ENTRYPOINT = "0x70800000"
UBOOT_LOADADDRESS = "0x70800000"
UBOOT_MACHINE = "mx53loco_config"
diff --git a/conf/machine/imx6qsabrelite.conf b/conf/machine/imx6qsabrelite.conf
index b1daeab..e10229a 100644
--- a/conf/machine/imx6qsabrelite.conf
+++ b/conf/machine/imx6qsabrelite.conf
@@ -8,6 +8,8 @@ include conf/machine/include/tune-cortexa9.inc
SOC_FAMILY = "mx6"
+KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/imx6q-sabrelite.dts"
+
UBOOT_ENTRYPOINT = "0x10800000"
UBOOT_LOADADDRESS = "0x10800000"
UBOOT_MACHINE = "mx6qsabrelite_config"
@@ -19,7 +21,7 @@ XSERVER = "xserver-xorg \
xf86-video-fbdev"
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules \
imx-audio \
- udev-extra-rules"
+ udev-extraconf"
SERIAL_CONSOLE = "115200 ttymxc1"
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index 68a1911..4639430 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -4,6 +4,9 @@ include conf/machine/include/fsl-default-settings.inc
include conf/machine/include/fsl-default-versions.inc
include conf/machine/include/fsl-default-providers.inc
+# Disable perf features as 2.6.35.3 fail to build otherwise
+PERF_FEATURES_ENABLE = ""
+
# Set specific make target and binary suffix
UBOOT_MAKE_TARGET = "u-boot.imx"
UBOOT_SUFFIX = "imx"
@@ -19,7 +22,7 @@ MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
MACHINE_EXTRA_RRECOMMENDS += "imx-audio \
imx-firmware \
imx-lib \
- udev-extra-rules \
+ udev-extraconf \
"
# Gstreamer plugin
diff --git a/conf/machine/include/mxs-base.inc b/conf/machine/include/mxs-base.inc
index 6409937..74f839b 100644
--- a/conf/machine/include/mxs-base.inc
+++ b/conf/machine/include/mxs-base.inc
@@ -9,6 +9,9 @@ include conf/machine/include/tune-arm926ejs.inc
SOC_FAMILY = "mxs"
+# Disable perf features as 2.6.35.3 fail to build otherwise
+PERF_FEATURES_ENABLE = ""
+
XSERVER = "xserver-xorg \
xf86-input-evdev \
xf86-video-fbdev"
diff --git a/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch b/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch
index abcf5b0..d54add1 100644
--- a/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch
+++ b/recipes-bsp/imx-bootlets/imx-bootlets/linux-fix-paths.patch
@@ -22,7 +22,7 @@ index 516f4f2..366ac22 100644
+ power_prep="imx-bootlets-power_prep-@MACHINE@";
+ sdram_prep="imx-bootlets-boot_prep-@MACHINE@";
+ linux_prep="imx-bootlets-linux_prep-@MACHINE@";
-+ zImage="zImage-@MACHINE@.bin";
++ zImage="zImage-@MACHINE@.bin@DTB@";
}
section (0) {
diff --git a/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb b/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb
index d2f51fd..6cea049 100644
--- a/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb
+++ b/recipes-bsp/imx-bootlets/imx-bootlets_10.12.01.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "i.MXS boot streams"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-PR = "r1"
+PR = "r2"
SRC_URI = "http://download.ossystems.com.br/bsp/freescale/source/imx-bootlets-src-${PV}.tar.gz \
file://linux-fix-paths.patch \
@@ -30,7 +30,8 @@ python () {
do_configure () {
# Use machine specific binaries
- sed -i 's,@MACHINE@,${MACHINE},g' linux.bd
+ sed 's,@MACHINE@,${MACHINE},g;s,@DTB@,-dtb,g' < linux.bd > linux.bd-dtb
+ sed -i 's,@MACHINE@,${MACHINE},g;s,@DTB@,,g' linux.bd
}
do_compile () {
@@ -42,7 +43,8 @@ do_compile () {
do_install () {
install -d ${D}/boot/
install -m 644 boot_prep/boot_prep power_prep/power_prep \
- linux_prep/output-target/linux_prep linux.bd \
+ linux_prep/output-target/linux_prep \
+ linux.bd linux.bd-dtb \
${D}/boot
}
@@ -54,7 +56,7 @@ do_deploy () {
for f in boot_prep/boot_prep \
power_prep/power_prep \
linux_prep/output-target/linux_prep \
- linux.bd; do
+ linux.bd linux.bd-dtb; do
full_name="imx-bootlets-`basename $f`-${MACHINE}-${PV}-${PR}"
symlink_name="imx-bootlets-`basename $f`-${MACHINE}"
diff --git a/recipes-bsp/u-boot/u-boot_2012.04.01.bb b/recipes-bsp/u-boot/u-boot_2012.07.bb
index b18920b..d3f3abc 100644
--- a/recipes-bsp/u-boot/u-boot_2012.04.01.bb
+++ b/recipes-bsp/u-boot/u-boot_2012.07.bb
@@ -6,10 +6,9 @@ COMPATIBLE_MACHINE = "(imx28evk|mx5|mx6)"
DEPENDS_mxs += "elftosb-native"
-SRCREV = "560b63a4fc0f293ab2bfde015781a8f48f2c24c4"
+SRCREV = "573e018c01178616ecf04e088e1a5b99537db694"
-PV = "v2012.04.01"
-PR = "r5"
+PV = "v2012.07"
SRC_URI = "git://github.com/Freescale/u-boot-imx.git"
diff --git a/recipes-core/tasks/task-base.bbappend b/recipes-core/packagegroup/packagegroup-base.bbappend
index d380cb7..d380cb7 100644
--- a/recipes-core/tasks/task-base.bbappend
+++ b/recipes-core/packagegroup/packagegroup-base.bbappend
diff --git a/recipes-core/udev/udev-extra-rules/10-imx.rules b/recipes-core/udev/udev-extraconf/10-imx.rules
index 1fc32dc..1fc32dc 100644
--- a/recipes-core/udev/udev-extra-rules/10-imx.rules
+++ b/recipes-core/udev/udev-extraconf/10-imx.rules
diff --git a/recipes-core/udev/udev-extra-rules.bbappend b/recipes-core/udev/udev-extraconf_1.0.bbappend
index 81b584e..b8af0f1 100644
--- a/recipes-core/udev/udev-extra-rules.bbappend
+++ b/recipes-core/udev/udev-extraconf_1.0.bbappend
@@ -3,9 +3,9 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PRINC := "${@int(PRINC) + 1}"
-SRC_URI_append_mxs = "file://10-imx.rules"
-SRC_URI_append_mx5 = "file://10-imx.rules"
-SRC_URI_append_mx6 = "file://10-imx.rules"
+SRC_URI_append_mxs = " file://10-imx.rules"
+SRC_URI_append_mx5 = " file://10-imx.rules"
+SRC_URI_append_mx6 = " file://10-imx.rules"
do_install_prepend () {
if [ -e "${WORKDIR}/10-imx.rules" ]; then
diff --git a/recipes-kernel/linux/linux-mainline/mx5/defconfig b/recipes-kernel/linux/linux-mainline/mx5/defconfig
new file mode 100644
index 0000000..ac9f053
--- /dev/null
+++ b/recipes-kernel/linux/linux-mainline/mx5/defconfig
@@ -0,0 +1,175 @@
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_RCU_FANOUT=32
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EXPERT=y
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_BLK_DEV_BSG is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=4
+# CONFIG_SCHED_MC is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+# CONFIG_SECCOMP is not set
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_BINFMT_MISC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_DATAFLASH=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SST25L=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+CONFIG_PHYLIB=y
+# CONFIG_WLAN is not set
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MMA8450=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_SPI=y
+CONFIG_SPI_BITBANG=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_FB=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_STORAGE=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RTC_DRV_CMOS is not set
+CONFIG_DMADEVICES=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-mainline/mx6/defconfig b/recipes-kernel/linux/linux-mainline/mx6/defconfig
new file mode 100644
index 0000000..ac9f053
--- /dev/null
+++ b/recipes-kernel/linux/linux-mainline/mx6/defconfig
@@ -0,0 +1,175 @@
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_RCU_FANOUT=32
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUPS=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EXPERT=y
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_BLK_DEV_BSG is not set
+CONFIG_SMP=y
+CONFIG_NR_CPUS=4
+# CONFIG_SCHED_MC is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+# CONFIG_SECCOMP is not set
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_BINFMT_MISC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_DATAFLASH=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SST25L=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=65536
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+CONFIG_PHYLIB=y
+# CONFIG_WLAN is not set
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MMA8450=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_SPI=y
+CONFIG_SPI_BITBANG=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_FB=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_STORAGE=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RTC_DRV_CMOS is not set
+CONFIG_DMADEVICES=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_UTF8=y
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+CONFIG_SECURITYFS=y
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
diff --git a/recipes-kernel/linux/linux-mainline/mxs/defconfig b/recipes-kernel/linux/linux-mainline/mxs/defconfig
new file mode 100644
index 0000000..6029638
--- /dev/null
+++ b/recipes-kernel/linux/linux-mainline/mxs/defconfig
@@ -0,0 +1,118 @@
+CONFIG_EXPERIMENTAL=y
+CONFIG_SYSVIPC=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_BLK_DEV_INTEGRITY=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
+CONFIG_CAN=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_BCM=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_DEVTMPFS=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+# CONFIG_BLK_DEV is not set
+CONFIG_NETDEVICES=y
+CONFIG_ENC28J60=y
+CONFIG_PHYLIB=y
+CONFIG_USB_USBNET=m
+# CONFIG_USB_NET_AX8817X is not set
+# CONFIG_USB_NET_CDCETHER is not set
+# CONFIG_USB_NET_CDC_NCM is not set
+CONFIG_USB_NET_SMSC95XX=m
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_CDC_SUBSET is not set
+# CONFIG_USB_NET_ZAURUS is not set
+CONFIG_RTL8192CU=m
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_DEVKMEM is not set
+# CONFIG_HW_RANDOM is not set
+CONFIG_I2C=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_SPI=y
+CONFIG_SPI_GPIO=m
+CONFIG_GPIOLIB=y
+CONFIG_DEBUG_GPIO=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_HWMON is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_SOC=y
+CONFIG_USB=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_MMC=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_DMADEVICES=y
+CONFIG_EXT3_FS=y
+# CONFIG_DNOTIFY is not set
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_PRINTK_TIME=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_TIMER_STATS=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_DEBUG_INFO=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC7=m
diff --git a/recipes-kernel/linux/linux-mainline_3.6.bb b/recipes-kernel/linux/linux-mainline_3.6.bb
new file mode 100644
index 0000000..c71e160
--- /dev/null
+++ b/recipes-kernel/linux/linux-mainline_3.6.bb
@@ -0,0 +1,28 @@
+# Copyright (C) 2012 O.S. Systems Software LTDA.
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Linux mainline kernel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+DEPENDS += "lzop-native"
+
+inherit kernel
+
+require recipes-kernel/linux/linux-dtb.inc
+
+PV = "3.5+3.6-rc6+git${SRCPV}"
+
+# patches-3.6-rc6 tip
+SRCREV = "ed4adce4a3aae5008af26c2ca6847dc56e850d31"
+
+SRC_URI = "git://github.com/Freescale/linux-mainline.git \
+ \
+ file://defconfig"
+
+S = "${WORKDIR}/git"
+
+# We need to pass it as param since kernel might support more then one
+# machine, with different entry points
+EXTRA_OEMAKE += "LOADADDR=${UBOOT_ENTRYPOINT}"
+
+COMPATIBLE_MACHINE = "(mxs|mx5|mx6)"
diff --git a/recipes-qt/qt4/qt4-embedded_4.7.4.bbappend b/recipes-qt/qt4/qt4-embedded_4.8.1.bbappend
index 1419814..1419814 100644
--- a/recipes-qt/qt4/qt4-embedded_4.7.4.bbappend
+++ b/recipes-qt/qt4/qt4-embedded_4.8.1.bbappend
diff --git a/recipes-qt/qt4/qt4-x11-free_4.7.4.bbappend b/recipes-qt/qt4/qt4-x11-free_4.8.1.bbappend
index bb32024..1419814 100644
--- a/recipes-qt/qt4/qt4-x11-free_4.7.4.bbappend
+++ b/recipes-qt/qt4/qt4-x11-free_4.8.1.bbappend
@@ -9,4 +9,4 @@ QT_GLFLAGS_mx5 = "-opengl es2 -openvg"
PACKAGE_ARCH_mx6 = "${MACHINE_ARCH}"
-PRINC := "${@int(PRINC) + 2}"
+PRINC := "${@int(PRINC) + 3}"
diff --git a/recipes-qt/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch b/recipes-qt/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch
index 077939b..fd6483d 100644
--- a/recipes-qt/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch
+++ b/recipes-qt/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch
@@ -1,6 +1,6 @@
-From d46b70c7679e6706a001771c322185fcc95a981c Mon Sep 17 00:00:00 2001
+From 2ff5682e42771519757756dedbf27b7a9e8e25d9 Mon Sep 17 00:00:00 2001
From: Rogerio Pimentel <rogerio.pimentel@freescale.com>
-Date: Mon, 4 Jun 2012 14:25:31 -0300
+Date: Tue, 24 Jul 2012 13:47:01 -0300
Subject: [PATCH] Add support for i.MX codecs to phonon
Add support for i.MX codecs to phonon
@@ -10,15 +10,15 @@ Signed-off-by: Rogerio Pimentel <rogerio.pimentel@freescale.com>
---
src/3rdparty/phonon/gstreamer/abstractrenderer.h | 1 +
src/3rdparty/phonon/gstreamer/mediaobject.cpp | 4 +
- src/3rdparty/phonon/gstreamer/videowidget.cpp | 57 ++------
+ src/3rdparty/phonon/gstreamer/videowidget.cpp | 60 ++------
src/3rdparty/phonon/gstreamer/videowidget.h | 1 +
- src/3rdparty/phonon/gstreamer/widgetrenderer.cpp | 166 +++++++++++++---------
+ src/3rdparty/phonon/gstreamer/widgetrenderer.cpp | 169 ++++++++++++++--------
src/3rdparty/phonon/gstreamer/widgetrenderer.h | 17 ++-
- src/3rdparty/phonon/gstreamer/x11renderer.cpp | 23 +---
- 7 files changed, 136 insertions(+), 133 deletions(-)
+ src/3rdparty/phonon/gstreamer/x11renderer.cpp | 22 +---
+ 7 files changed, 141 insertions(+), 133 deletions(-)
diff --git a/src/3rdparty/phonon/gstreamer/abstractrenderer.h b/src/3rdparty/phonon/gstreamer/abstractrenderer.h
-index 10a2822..4901530 100644
+index 10a2822..fa0d87d 100644
--- a/src/3rdparty/phonon/gstreamer/abstractrenderer.h
+++ b/src/3rdparty/phonon/gstreamer/abstractrenderer.h
@@ -49,6 +49,7 @@ public:
@@ -52,19 +52,14 @@ index 23a60c0..f806d64 100644
GstPad *videopad = gst_element_get_pad (m_videoPipe, "sink");
gst_element_add_pad (m_videoGraph, gst_ghost_pad_new ("sink", videopad));
diff --git a/src/3rdparty/phonon/gstreamer/videowidget.cpp b/src/3rdparty/phonon/gstreamer/videowidget.cpp
-index e1f0ec9..6c9862b 100644
+index a4c6f79..3682d3f 100644
--- a/src/3rdparty/phonon/gstreamer/videowidget.cpp
+++ b/src/3rdparty/phonon/gstreamer/videowidget.cpp
-@@ -81,48 +81,17 @@ void VideoWidget::setupVideoBin()
+@@ -83,50 +83,16 @@ void VideoWidget::setupVideoBin()
Q_ASSERT(m_videoBin);
gst_object_ref (GST_OBJECT (m_videoBin)); //Take ownership
gst_object_sink (GST_OBJECT (m_videoBin));
-+ gst_bin_add_many (GST_BIN (m_videoBin), videoSink, NULL);
-+ GstPad *videopad = gst_element_get_pad (videoSink,"sink");
-+ gst_element_add_pad (m_videoBin, gst_ghost_pad_new ("sink", videopad));
-+ gst_object_unref (videopad);
-+ QWidget *parentWidget = qobject_cast<QWidget*>(parent());
-
+-
- //The videoplug element is the final element before the pluggable videosink
- m_videoplug = gst_element_factory_make ("identity", NULL);
-
@@ -94,26 +89,34 @@ index e1f0ec9..6c9862b 100644
- //If video balance is not available, just connect to sink directly
- success = gst_element_link_many(queue, m_colorspace, videoScale, m_videoplug, videoSink, (const char*)NULL);
- }
-+ if (parentWidget)
-+ parentWidget->winId(); // Due to some existing issues with alien in 4.4,
-+ // we must currently force the creation of a parent widget.
-+ m_isValid = true; //initialization ok, accept input
-
+-
- if (success) {
- GstPad *videopad = gst_element_get_pad (queue, "sink");
- gst_element_add_pad (m_videoBin, gst_ghost_pad_new ("sink", videopad));
- gst_object_unref (videopad);
+-#ifndef Q_WS_QPA
- QWidget *parentWidget = qobject_cast<QWidget*>(parent());
- if (parentWidget)
- parentWidget->winId(); // Due to some existing issues with alien in 4.4,
- // we must currently force the creation of a parent widget.
+-#endif
- m_isValid = true; //initialization ok, accept input
- }
- }
++ gst_bin_add_many (GST_BIN (m_videoBin), videoSink, NULL);
++ GstPad *videopad = gst_element_get_pad (videoSink,"sink");
++ gst_element_add_pad (m_videoBin, gst_ghost_pad_new ("sink", videopad));
++ gst_object_unref (videopad);
++ QWidget *parentWidget = qobject_cast<QWidget*>(parent());
++
++ if (parentWidget)
++ parentWidget->winId(); // Due to some existing issues with alien in 4.4,
++ // we must currently force the creation of a parent widget.
++ m_isValid = true; //initialization ok, accept input
}
void VideoWidget::paintEvent(QPaintEvent *event)
-@@ -131,6 +100,12 @@ void VideoWidget::paintEvent(QPaintEvent *event)
+@@ -135,6 +101,12 @@ void VideoWidget::paintEvent(QPaintEvent *event)
m_renderer->handlePaint(event);
}
@@ -139,7 +142,7 @@ index 8603f6a..38c7b17 100644
QRect scaleToAspect(QRect srcRect, int w, int h) const;
QRect calculateDrawFrameRect() const;
diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
-index 423af9d..de524ec 100644
+index 423af9d..aa4925a 100644
--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
+++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.cpp
@@ -15,7 +15,9 @@
@@ -152,7 +155,7 @@ index 423af9d..de524ec 100644
#include <gst/gst.h>
#include "common.h"
#include "message.h"
-@@ -24,6 +26,19 @@
+@@ -24,6 +26,18 @@
#include "widgetrenderer.h"
#include "qrgb.h"
@@ -163,7 +166,6 @@ index 423af9d..de524ec 100644
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
-+
+#include <linux/mxcfb.h>
+
+#define MXCFB_GBL_ALPHA 255
@@ -172,7 +174,7 @@ index 423af9d..de524ec 100644
// support old OpenGL installations (1.2)
// assume that if TEXTURE0 isn't defined, none are
#ifndef GL_TEXTURE0
-@@ -35,26 +50,6 @@
+@@ -35,26 +49,6 @@
#ifndef QT_NO_PHONON_VIDEO
QT_BEGIN_NAMESPACE
@@ -199,7 +201,7 @@ index 423af9d..de524ec 100644
namespace Phonon
{
namespace Gstreamer
-@@ -62,20 +57,12 @@ namespace Gstreamer
+@@ -62,17 +56,11 @@ namespace Gstreamer
WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget)
: AbstractRenderer(videoWidget)
@@ -210,6 +212,7 @@ index 423af9d..de524ec 100644
- if ((m_videoSink = GST_ELEMENT(g_object_new(get_type_RGB(), NULL)))) {
- gst_object_ref (GST_OBJECT (m_videoSink)); //Take ownership
+ if ((m_videoSink = gst_element_factory_make("mfw_v4lsink", NULL)) && m_videoSink != NULL) {
++
+ gst_object_ref (GST_OBJECT (m_videoSink)); //Take ownership
gst_object_sink (GST_OBJECT (m_videoSink));
-
@@ -218,11 +221,8 @@ index 423af9d..de524ec 100644
- sink->renderWidget = videoWidget;
}
-- // Clear the background with black by default
- QPalette palette;
- palette.setColor(QPalette::Background, Qt::black);
- m_videoWidget->setPalette(palette);
-@@ -84,65 +71,116 @@ WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget)
+ // Clear the background with black by default
+@@ -84,67 +72,124 @@ WidgetRenderer::WidgetRenderer(VideoWidget *videoWidget)
m_videoWidget->setAttribute(Qt::WA_PaintOnScreen, false);
}
@@ -231,35 +231,35 @@ index 423af9d..de524ec 100644
{
- if (m_videoWidget->root()->state() == Phonon::LoadingState)
- return;
-+ if (m_videoSink) {
+-
+- m_frame = QImage();
+- {
+- m_frame = QImage((uchar *)array.constData(), w, h, QImage::Format_RGB32);
+- }
++ if (m_videoSink) {
+ gst_object_unref (GST_OBJECT (m_videoSink));
+ m_videoSink = 0;
+ }
+}
-- m_frame = QImage();
-- {
-- m_frame = QImage((uchar *)array.constData(), w, h, QImage::Format_RGB32);
-- }
+- m_array = array;
+- m_width = w;
+- m_height = h;
+void WidgetRenderer::setVideoSize(void)
+{
-+
+
+- m_videoWidget->update();
+ int adj_x;
-+ int adj_y;
-+
++ int adj_y;
++
+ QSize wSize = m_videoWidget->size();
-+ m_drawFrameRect = m_videoWidget->calculateDrawFrameRect();
++ m_drawFrameRect = m_videoWidget->calculateDrawFrameRect();
+ framePos = m_videoWidget->mapToGlobal(QPoint(0,0));
-
-- m_array = array;
-- m_width = w;
-- m_height = h;
++
+ //Center the video in the widget
-
-- m_videoWidget->update();
-+ adj_x = (wSize.width()/2) - (m_drawFrameRect.width()/2);
-+ adj_y = (wSize.height()/2) - (m_drawFrameRect.height()/2);
+
++ adj_x = (wSize.width()/2) - (m_drawFrameRect.width()/2);
++ adj_y = (wSize.height()/2) - (m_drawFrameRect.height()/2);
+ g_object_set(G_OBJECT(m_videoSink), "axis-left",adj_x + framePos.x(),(const char*)NULL);
+ g_object_set(G_OBJECT(m_videoSink), "axis-top", adj_y + framePos.y(), (const char*)NULL);
+ g_object_set(G_OBJECT(m_videoSink), "disp-width", m_drawFrameRect.width(), (const char*)NULL);
@@ -295,30 +295,34 @@ index 423af9d..de524ec 100644
+int WidgetRenderer::setOverlay(void)
{
- return m_frame;
-+ struct mxcfb_color_key color_key;
-+ struct mxcfb_gbl_alpha alpha;
-+ int fd_fb;
++ struct mxcfb_color_key color_key;
++ struct mxcfb_gbl_alpha alpha;
++ int fd_fb;
++
++ if ((fd_fb = open("/dev/fb0", O_RDWR, 0)) < 0)
++ {
++ printf("Unable to open %s\n", "/dev/fb0");
++ return -1;
++
++ }
++
++ alpha.alpha = MXCFB_GBL_ALPHA;
++ alpha.enable = 1;
+
-+ if ((fd_fb = open("/dev/fb0", O_RDWR, 0)) < 0)
-+ {
-+ printf("Unable to open %s\n", "/dev/fb0");
-+ return -1;
-+ }
-+
-+ alpha.alpha = MXCFB_GBL_ALPHA;
-+ alpha.enable = 1;
-+
-+ if (ioctl(fd_fb, MXCFB_SET_GBL_ALPHA, &alpha) < 0) {
-+ printf("Error in applying Alpha\n");
-+ }
++ if (ioctl(fd_fb, MXCFB_SET_GBL_ALPHA, &alpha) < 0) {
++ printf("Error in applying Alpha\n");
++ }
+
+ color_key.color_key = MXCFB_CLR_KEY & 0x00FFFFFF;
+ color_key.enable = 1;
+ if ( ioctl(fd_fb, MXCFB_SET_CLR_KEY, &color_key) < 0) {
-+ printf("Error in applying Color Key\n");
-+ return -1;
++
++ printf("Error in applying Color Key\n");
++ return -1;
+ }
++
+ close (fd_fb);
++
+ return 0;
}
@@ -333,7 +337,7 @@ index 423af9d..de524ec 100644
+ Q_UNUSED(event);
+
+ if (framePos != m_videoWidget->mapToGlobal(QPoint(0,0)))
-+ setVideoSize();
++ setVideoSize();
}
bool WidgetRenderer::eventFilter(QEvent * event)
@@ -342,39 +346,42 @@ index 423af9d..de524ec 100644
- NewFrameEvent *frameEvent= static_cast <NewFrameEvent *>(event);
- setNextFrame(frameEvent->frame, frameEvent->width, frameEvent->height);
- return true;
-- }
-- return false;
-+ if (event->type() == QEvent::Show) {
++ if (event->type() == QEvent::Show) {
++
+ setOverlay();
+ return true;
-+ } else if (event->type() == QEvent::Resize) {
++
++ } else if (event->type() == QEvent::Resize) {
++
+ setVideoSize();
+ return true;
-+ }
-+ if (framePos != m_videoWidget->mapToGlobal(QPoint(0,0)))
+ }
++ if (framePos != m_videoWidget->mapToGlobal(QPoint(0,0)))
+ setVideoSize();
-+ return false;
-+}
-+
+ return false;
+ }
+
+void WidgetRenderer::aspectRatioChanged(Phonon::VideoWidget::AspectRatio)
+{
-+ setVideoSize();
++ setVideoSize();
+}
+
+void WidgetRenderer::scaleModeChanged(Phonon::VideoWidget::ScaleMode)
+{
+ setVideoSize();
+}
-+
++
+void WidgetRenderer::movieSizeChanged(const QSize &movieSize)
+{
+ Q_UNUSED(movieSize);
+ setVideoSize();
++}
++
}
+ } //namespace Phonon::Gstreamer
- }
diff --git a/src/3rdparty/phonon/gstreamer/widgetrenderer.h b/src/3rdparty/phonon/gstreamer/widgetrenderer.h
-index 03ee9c0..886975a 100644
+index 03ee9c0..6de1a03 100644
--- a/src/3rdparty/phonon/gstreamer/widgetrenderer.h
+++ b/src/3rdparty/phonon/gstreamer/widgetrenderer.h
@@ -40,20 +40,21 @@ class WidgetRenderer : public AbstractRenderer
@@ -394,7 +401,7 @@ index 03ee9c0..886975a 100644
+ void scaleModeChanged(Phonon::VideoWidget::ScaleMode scaleMode);
+ void movieSizeChanged(const QSize &movieSize);
+ void setVideoSize(void);
-+ int setOverlay(void);
++ int setOverlay(void);
+ void handleMove(QMoveEvent* event);
private:
- mutable QImage m_frame;
@@ -408,7 +415,7 @@ index 03ee9c0..886975a 100644
}
diff --git a/src/3rdparty/phonon/gstreamer/x11renderer.cpp b/src/3rdparty/phonon/gstreamer/x11renderer.cpp
-index 968f3a8..2119840 100644
+index 968f3a8..c4662e7 100644
--- a/src/3rdparty/phonon/gstreamer/x11renderer.cpp
+++ b/src/3rdparty/phonon/gstreamer/x11renderer.cpp
@@ -31,6 +31,8 @@
@@ -420,7 +427,7 @@ index 968f3a8..2119840 100644
QT_BEGIN_NAMESPACE
namespace Phonon
-@@ -83,26 +85,7 @@ X11Renderer::~X11Renderer()
+@@ -83,26 +85,8 @@ X11Renderer::~X11Renderer()
GstElement* X11Renderer::createVideoSink()
{
@@ -443,7 +450,7 @@ index 968f3a8..2119840 100644
-
- if (!videoSink)
- videoSink = gst_element_factory_make ("ximagesink", NULL);
--
+
+ GstElement *videoSink = gst_element_factory_make ("mfw_v4lsink", NULL);
gst_object_ref (GST_OBJECT (videoSink)); //Take ownership
gst_object_sink (GST_OBJECT (videoSink));