diff options
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)); |