diff options
Diffstat (limited to 'meta-agl-profile-core')
69 files changed, 1710 insertions, 308 deletions
diff --git a/meta-agl-profile-core/conf/include/agl-devel.inc b/meta-agl-profile-core/conf/include/agl-devel.inc index 705b1739a..09d855c05 100644 --- a/meta-agl-profile-core/conf/include/agl-devel.inc +++ b/meta-agl-profile-core/conf/include/agl-devel.inc @@ -1,8 +1,8 @@ IMAGE_FEATURES =+ "debug-tweaks eclipse-debug tools-debug tools-profile" -#IMAGE_INSTALL_append = " \ -# packagegroup-agl-core-devel \ -#" +IMAGE_INSTALL_append = " \ + packagegroup-agl-core-devel \ +" IMAGE_INSTALL_append = "${@bb.utils.contains('IMAGE_FSTYPES', 'wic.vmdk', ' open-vm-tools vboxguestdrivers', '', d)}" diff --git a/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb new file mode 100644 index 000000000..78d96e928 --- /dev/null +++ b/meta-agl-profile-core/recipes-apis/agl-service-can-low-level/agl-service-can-low-level_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "Low level CAN service" +DESCRIPTION = "AGL Service application for read and decode CAN messages" +HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/low-level-can-service" +SECTION = "apps" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/low-level-can-service;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "d8d990528ea9746b21788f97be3fdbcc392c5d96" + +PV = "5.0+git${SRCPV}" +S = "${WORKDIR}/git" + +RDEPENDS_${PN} = "dev-mapping" + +inherit cmake aglwgt pkgconfig + diff --git a/meta-agl-profile-core/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb b/meta-agl-profile-core/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb deleted file mode 100644 index c5cf71c12..000000000 --- a/meta-agl-profile-core/recipes-apis/agl-service-mediaplayer/agl-service-mediaplayer_git.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Mediaplayer Service Binding" -DESCRIPTION = "AGL Mediaplayer Service Binding" -HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-mediaplayer" -SECTION = "apps" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" - -SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-mediaplayer;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "${AGL_APP_REVISION}" - -PV = "1.0+git${SRCPV}" -S = "${WORKDIR}/git" - -DEPENDS = "json-c gstreamer1.0 gstreamer1.0-plugins-base" -RDEPENDS_${PN} = "agl-service-mediascanner gstreamer1.0-plugins-bad-waylandsink" - -inherit cmake aglwgt pkgconfig diff --git a/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb b/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb new file mode 100644 index 000000000..79a9461e0 --- /dev/null +++ b/meta-agl-profile-core/recipes-config/agl-users/agl-users_0.1.bb @@ -0,0 +1,27 @@ +inherit allarch useradd + +SUMMARY = "AGL Users Seed" +DESCRIPTION = "This is a core framework component that\ + defines how users are managed and who are the default users." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +ALLOW_EMPTY_${PN} = "1" + +USERADD_PACKAGES = "${PN}" + +USERADDEXTENSION = "useradd-staticids" + +GROUPADD_PARAM_${PN} = "\ + --system display ; \ + --system weston-launch ; \ + -g 1001 agl-driver ; \ + -g 1002 agl-passenger \ +" + +USERADD_PARAM_${PN} = "\ + -g 1001 -G display -u 1001 -o -d /home/1001 -m -K PASS_MAX_DAYS=-1 agl-driver ; \ + -g 1002 -G display -u 1002 -o -d /home/1002 -m -K PASS_MAX_DAYS=-1 agl-passenger ; \ + --gid display --groups weston-launch,video,input --home-dir /run/platform/display --shell /bin/false --comment \"Display daemon\" --key PASS_MAX_DAYS=-1 display \ +" diff --git a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default new file mode 100644 index 000000000..7bd8bf2eb --- /dev/null +++ b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping/dev-mapping.conf.default @@ -0,0 +1,6 @@ +; Default CAN device mapping +; Format has to follow ini rules key="value", notice " around value. + +[CANbus-mapping] +hs="can0" +ls="can0" diff --git a/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb new file mode 100644 index 000000000..befb5443f --- /dev/null +++ b/meta-agl-profile-core/recipes-config/dev-mapping/dev-mapping_0.1.bb @@ -0,0 +1,18 @@ +inherit allarch + +SUMMARY = "AGL Device mapping configuration file" +DESCRIPTION = "This provide default dev-mapping.conf file \ + that defines mapping between kernel device and logical name \ + used in low-can binding by example." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://dev-mapping.conf.default" + +do_install() { + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/dev-mapping.conf.default ${D}${sysconfdir}/dev-mapping.conf +} diff --git a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb new file mode 100644 index 000000000..6379ec38f --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/bluez-alsa_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "Bluetooth Audio ALSA Backend" +HOMEPAGE = "https://github.com/Arkq/bluez-alsa" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=bb3e99e80c5d718213f35ae1def4c106" + +SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master" +SRCREV = "9045edb436ea755f395a2e09e4525b5defad286a" + +SRC_URI += "file://bluez-alsa.service" + +S = "${WORKDIR}/git" + +DEPENDS += "alsa-lib bluez5 systemd glib-2.0 sbc" + +PACKAGECONFIG[aac] = "--enable-aac, --disable-aac, " +PACKAGECONFIG[aptx] = "--enable-aptx,--disable-aptx," +PACKAGECONFIG[hcitop] = "--enable-hcitop, --disable-hcitop, libbsd ncurses" + +inherit autotools pkgconfig +inherit systemd + +SYSTEMD_AUTO_ENABLE = "enable" +SYSTEMD_SERVICE_${PN} = "bluez-alsa.service" + +PACKAGECONFIG += "hcitop" + +do_install_append () { + install -d ${D}${base_libdir}/systemd/system + install -m 0644 ${WORKDIR}/bluez-alsa.service ${D}${base_libdir}/systemd/system +} + +FILES_${PN} += "\ + ${datadir}/alsa/alsa.conf.d/20-bluealsa.conf\ + ${libdir}/alsa-lib/libasound_module_ctl_bluealsa.so\ + ${libdir}/alsa-lib/libasound_module_pcm_bluealsa.so\ +" diff --git a/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service new file mode 100644 index 000000000..671815e03 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/bluez-alsa/files/bluez-alsa.service @@ -0,0 +1,11 @@ +[Unit] +Description=Bluetooth Audio ALSA Backend +After=bluetooth.service +Requires=bluetooth.service + +[Service] +Type=simple +ExecStart=/usr/bin/bluealsa + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/0001_fix_compile_issue_when_using_in_c++.patch b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/0001_fix_compile_issue_when_using_in_c++.patch new file mode 100644 index 000000000..ba2f33c62 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/0001_fix_compile_issue_when_using_in_c++.patch @@ -0,0 +1,23 @@ +diff -urN bluez-5.22.orig/lib/bluetooth.h bluez-5.22/lib/bluetooth.h +--- bluez-5.22.orig/lib/bluetooth.h 2013-12-10 15:59:06.000000000 +0900 ++++ bluez-5.22/lib/bluetooth.h 2015-10-28 13:34:25.749335768 +0900 +@@ -158,16 +158,16 @@ + #define bt_get_unaligned(ptr) \ + ({ \ + struct __attribute__((packed)) { \ +- typeof(*(ptr)) __v; \ +- } *__p = (typeof(__p)) (ptr); \ ++ __typeof__(*(ptr)) __v; \ ++ } *__p = (__typeof__(__p)) (ptr); \ + __p->__v; \ + }) + + #define bt_put_unaligned(val, ptr) \ + do { \ + struct __attribute__((packed)) { \ +- typeof(*(ptr)) __v; \ +- } *__p = (typeof(__p)) (ptr); \ ++ __typeof__(*(ptr)) __v; \ ++ } *__p = (__typeof__(__p)) (ptr); \ + __p->__v = (val); \ + } while(0) diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf new file mode 100644 index 000000000..1f2762de7 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5/bluetooth.conf @@ -0,0 +1,39 @@ +<!-- This configuration file specifies the required security policies + for Bluetooth core daemon to work. --> + +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + + <!-- ../system.conf have denied everything, so we just punch some holes --> + + <policy user="root"> + <allow own="org.bluez"/> + <allow send_destination="org.bluez"/> + <allow send_interface="org.bluez.Agent1"/> + <allow send_interface="org.bluez.MediaEndpoint1"/> + <allow send_interface="org.bluez.MediaPlayer1"/> + <allow send_interface="org.bluez.ThermometerWatcher1"/> + <allow send_interface="org.bluez.AlertAgent1"/> + <allow send_interface="org.bluez.Profile1"/> + <allow send_interface="org.bluez.HeartRateWatcher1"/> + <allow send_interface="org.bluez.CyclingSpeedWatcher1"/> + <allow send_interface="org.bluez.GattCharacteristic1"/> + <allow send_interface="org.bluez.GattDescriptor1"/> + <allow send_interface="org.freedesktop.DBus.ObjectManager"/> + <allow send_interface="org.freedesktop.DBus.Properties"/> + <allow receive_type="signal" receive_sender="org.bluez" receive_interface="org.freedesktop.DBus.Properties"/> + <allow receive_type="signal" receive_sender="org.bluez" receive_interface="org.freedesktop.DBus.ObjectManager"/> + </policy> + + <policy at_console="true"> + <allow send_destination="org.bluez"/> + </policy> + + <!-- allow users of lp group (printing subsystem) to + communicate with bluetoothd --> + <policy group="lp"> + <allow send_destination="org.bluez"/> + </policy> + +</busconfig> diff --git a/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend new file mode 100644 index 000000000..c5afa875f --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -0,0 +1,13 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" +SRC_URI_append = " file://bluetooth.conf" + +APPLY_v522 = "${@str('no' if '${PV}' != '5.22' else 'yes')}" + +SRC_URI_append = "\ + file://0001_fix_compile_issue_when_using_in_c++.patch;apply=${APPLY_v522} \ +" + + +do_install_append() { + install -m 0644 ${WORKDIR}/bluetooth.conf ${D}${sysconfdir}/dbus-1/system.d/bluetooth.conf +} diff --git a/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend b/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend new file mode 100644 index 000000000..198b651dd --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/busybox/busybox_%.bbappend @@ -0,0 +1,2 @@ +SRC_URI += "file://enable-wget-https.cfg" +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" diff --git a/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg b/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg new file mode 100644 index 000000000..e92006bef --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/busybox/files/enable-wget-https.cfg @@ -0,0 +1,3 @@ +# Thu Jun 8 17:32:07 2017 +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_FEATURE_WGET_SSL_HELPER=y diff --git a/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb b/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb new file mode 100644 index 000000000..02afef75f --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "A simple ncurses interface for connman" +DESCRIPTION = "A simple ncurses interface for connman" +HOMEPAGE = "https://gitlab.com/iotbzh/connman-json-client" + +SECTION = "console/network" + +DEPENDS = "dbus ncurses connman json-c" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381" + +SRC_URI = "git://gitlab.com/iotbzh/connman-json-client.git;protocol=https;rev=ad4261a2f87c914667b1f6841c913f6b08d373e2" + +inherit autotools pkgconfig + +EXTRA_AUTORECONF += " -i" +EXTRA_OECONF += " --disable-optimization --enable-debug" + +S = "${WORKDIR}/git" + +do_install () { + install -dm755 ${D}${bindir} + install -Dm755 connman_ncurses ${D}${bindir} +} + +FILES_${PN} = "${bindir}/connman_ncurses" diff --git a/meta-agl-profile-core/recipes-connectivity/connman/.appends.core b/meta-agl-profile-core/recipes-connectivity/connman/.appends.core new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/connman/.appends.core diff --git a/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend b/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend new file mode 100644 index 000000000..e41cbe954 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/connman/connman_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +SRC_URI += "file://0001-disable-when-booting-over-nfs.patch" diff --git a/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch b/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch new file mode 100644 index 000000000..95fc0a905 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch @@ -0,0 +1,11 @@ +--- a/src/connman.service.in 2016-08-15 13:51:03.479478140 +0200 ++++ b/src/connman.service.in 2016-08-15 13:51:33.469478267 +0200 +@@ -7,6 +7,7 @@ RequiresMountsFor=@localstatedir@/lib/co + After=dbus.service network-pre.target systemd-sysusers.service + Before=network.target multi-user.target shutdown.target + Wants=network.target + Conflicts=systemd-resolved.service ++ConditionKernelCommandLine=!root=/dev/nfs + + [Service] + Type=dbus diff --git a/meta-agl-profile-core/recipes-connectivity/libnfc/libnfc_git.bb b/meta-agl-profile-core/recipes-connectivity/libnfc/libnfc_git.bb new file mode 100644 index 000000000..bd216f815 --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/libnfc/libnfc_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "libnfc" +DESCRIPTION = "Platform independent Near Field Communication (NFC) library" +HOMEPAGE = "https://github.com/nfc-tools/libnfc" +SECTION = "apps" + +DEPENDS = "libusb" + +LICENSE = "LGPLv3" +LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=b52f2d57d10c4f7ee67a7eb9615d5d24" + +inherit cmake pkgconfig + +SRC_URI = "git://github.com/nfc-tools/libnfc;protocol=https;branch=master" +SRCREV = "2d4543673e9b76c02679ca8b89259659f1afd932" + +PV = "1.7.1+git${SRCPV}" +S = "${WORKDIR}/git" + diff --git a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch new file mode 100644 index 000000000..86b7392df --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr/0001-remove-I-usr-include-in-pkg-config.patch @@ -0,0 +1,40 @@ +From 3aeaf8054fcb2617ca8f6196ca32be3e69337f77 Mon Sep 17 00:00:00 2001 +From: Martin Kelly <mkelly@xevo.com> +Date: Fri, 21 Apr 2017 10:29:19 -0700 +Subject: [PATCH] remove -I/usr/include in pkg-config + +This shouldn't be necessary as it's part of the default compiler include +paths anyway. Morever, it can cause GCC 6 C++ build failures in +downstream packages when combined with QMake (such as +qtmultimedia-rtlfm-radio-plugin). + +Fix these issues by removing it. + +Upstream-Status: Inappropriate [disable-feature] + +This patch should not go upstream because it breaks the ability to build +with --prefix. That's not a problem for Openembedded, but it is for +upstream more generally. See this mail thread for more information: + +http://lists.osmocom.org/pipermail/osmocom-sdr/2017-April/001580.html + +Signed-off-by: Martin Kelly <mkelly@xevo.com> +--- + librtlsdr.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in +index 5e55049..84b6d0c 100644 +--- a/librtlsdr.pc.in ++++ b/librtlsdr.pc.in +@@ -6,6 +6,6 @@ includedir=@includedir@ + Name: RTL-SDR Library + Description: C Utility Library + Version: @VERSION@ +-Cflags: -I${includedir}/ @RTLSDR_PC_CFLAGS@ ++Cflags: @RTLSDR_PC_CFLAGS@ + Libs: -L${libdir} -lrtlsdr -lusb-1.0 + Libs.private: @RTLSDR_PC_LIBS@ +-- +2.1.4 + diff --git a/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb new file mode 100644 index 000000000..7d5c0217d --- /dev/null +++ b/meta-agl-profile-core/recipes-connectivity/rtl-sdr/rtl-sdr_0.5.3.bb @@ -0,0 +1,26 @@ +SUMMARY = "Turns a Realtek RTL2832U-based DVB dongle into a SDR receiver" +DESCRIPTION = "DVB-T dongles based on the Realtek RTL2832U chipset can be used as Software Digital Radio adapters, since the chip allows transferring raw I/Q samples to the host, which is really used for DAB/DAB+/FM demodulation." +HOMEPAGE = "http://sdr.osmocom.org/trac/wiki/rtl-sdr" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://src/librtlsdr.c;endline=18;md5=1b05599c3ebd4d74857a0a7c45f3d4ef" + +DEPENDS = "libusb1" + +SRC_URI = "git://git.osmocom.org/rtl-sdr \ + file://0001-remove-I-usr-include-in-pkg-config.patch \ + " +SRCREV = "e3c03f738f5aef4dc51e2b741fbdb542b9cc1bb1" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--enable-driver-detach" +#CFLAGS_remove = " +do_configure_append() { + # remove included temporary path from pc file due to pass-through of OE CFLAGS + # debug-prefix-map + # See: http://lists.openembedded.org/pipermail/openembedded-devel/2016-May/107456.html + sed -i -e "s# -fdebug-prefix-map=.*##g" librtlsdr.pc +}
\ No newline at end of file diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-automotive.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-automotive.bb deleted file mode 100644 index d9f2279e1..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-automotive.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Automotive Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-automotive \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-graphics.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-graphics.bb deleted file mode 100644 index 1cc6f457b..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-graphics.bb +++ /dev/null @@ -1,10 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Graphics Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-graphics \ - " - -ALLOW_EMPTY_${PN} = "1" diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-kernel.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-kernel.bb deleted file mode 100644 index 3d5556fd5..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-kernel.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Kernel Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-kernel \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-multimedia.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-multimedia.bb deleted file mode 100644 index 01ca4cb85..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-multimedia.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Multimedia Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-multimedia \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-navi-lbs.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-navi-lbs.bb deleted file mode 100644 index 2b04d5387..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-navi-lbs.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Navigation and Location Based Services Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-navi-lbs \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-security.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-security.bb deleted file mode 100644 index eb5a68f0a..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-security.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Security Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-security \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-speech-services.bb b/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-speech-services.bb deleted file mode 100644 index a494e5889..000000000 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-speech-services.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "The minimal set of packages for Speech Services Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-core-speech-services \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-devtools/gdb/.appends.core b/meta-agl-profile-core/recipes-devtools/gdb/.appends.core new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/gdb/.appends.core diff --git a/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-devel.bb b/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb index ade8560ab..c1d6636e0 100644 --- a/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-devel.bb +++ b/meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb @@ -21,4 +21,5 @@ RDEPENDS_${PN} = "\ rsync \ tree \ pstree \ + procps \ " diff --git a/meta-agl-profile-core/recipes-extended/gperf/.appends.core b/meta-agl-profile-core/recipes-extended/gperf/.appends.core new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/meta-agl-profile-core/recipes-extended/gperf/.appends.core diff --git a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi-qa.bb b/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi-qa.bb deleted file mode 100644 index 017439454..000000000 --- a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi-qa.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "A basic system of AGL distribution of IVI profile for Quality Assurance(QA)" - -DESCRIPTION = "A basic set of AGL Distribution. This image also has additional \ -packages (e.g. commandline tools) for Quality Assurance(QA)." - -require agl-image-ivi.bb - -LICENSE = "MIT" - -IMAGE_INSTALL_append = " \ - packagegroup-agl-test \ - packagegroup-ivi-common-test \ - " - diff --git a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi.bb b/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi.bb deleted file mode 100644 index dd4f89b15..000000000 --- a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "A basic system of AGL distribution of IVI profile" - -DESCRIPTION = "Basic image for baseline of AGL Distribution for IVI profile." - -require agl-image-ivi.inc - -LICENSE = "MIT" - -IMAGE_INSTALL_append = "\ - packagegroup-agl-image-ivi \ - " - -DISTRO_FEATURES_append = " agl-core-image-profile" - -IMAGE_INSTALL += "\ - agl-desktop-config \ - " diff --git a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi.inc b/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi.inc deleted file mode 100644 index 0b564840b..000000000 --- a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi.inc +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-core/images/agl-image-minimal.inc - -IMAGE_FEATURES += "splash package-management ssh-server-dropbear" diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-image-ivi.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-image-ivi.bb deleted file mode 100644 index 075af913a..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-image-ivi.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "The middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required for AGL Distribution" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-image-ivi \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - packagegroup-agl-image-minimal \ -" - -RDEPENDS_${PN} += "\ - packagegroup-agl-ivi-automotive \ - packagegroup-agl-ivi-connectivity \ - packagegroup-agl-ivi-graphics \ - packagegroup-agl-ivi-multimedia \ - packagegroup-agl-ivi-navi-lbs \ - packagegroup-agl-ivi-os-commonlibs \ - packagegroup-agl-ivi-speech-services \ - packagegroup-agl-ivi-security \ - packagegroup-agl-ivi-kernel \ - " - -RDEPENDS_${PN} += "\ - agl-login-manager \ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-automotive.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-automotive.bb deleted file mode 100644 index f7221517f..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-automotive.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Automotive Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-automotive \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb deleted file mode 100644 index 664180d55..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "The middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Connectivity Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-connectivity \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - ofono \ - rtl-sdr \ - rygel \ - rygel-plugin-media-export \ - rygel-plugin-lms \ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-graphics.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-graphics.bb deleted file mode 100644 index d7650564b..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-graphics.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Graphics Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-graphics \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-kernel.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-kernel.bb deleted file mode 100644 index be51817b7..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-kernel.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Kernel Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-kernel \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb deleted file mode 100644 index 11536405e..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "The middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Multimedia Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-multimedia \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - gstreamer1.0-plugins-base-meta \ - gstreamer1.0-plugins-good-meta \ - lightmediascanner-meta \ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-navi-lbs.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-navi-lbs.bb deleted file mode 100644 index b7f47eecc..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-navi-lbs.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The packages of middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Navigation and Location Based Services Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-navi-lbs \ - " - -RDEPENDS_${PN} += "\ - gpsd \ - geoclue \ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-security.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-security.bb deleted file mode 100644 index f651c50cd..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-security.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The packages of middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Security Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-security \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-speech-services.bb b/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-speech-services.bb deleted file mode 100644 index eccebee9f..000000000 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-speech-services.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "The packages of middlewares for AGL IVI profile" -DESCRIPTION = "The set of packages required by Speech Services Subsystem" -LICENSE = "MIT" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-agl-ivi-speech-services \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - " diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch b/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch new file mode 100644 index 000000000..dd811c81b --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0002-src-most-add-auto-conf-feature.patch @@ -0,0 +1,472 @@ +From 9cb7cb85f59509ac445116e9458c502cf6cb74e6 Mon Sep 17 00:00:00 2001 +From: Christian Gromm <christian.gromm@microchip.com> +Date: Thu, 9 Nov 2017 13:20:23 +0100 +Subject: [PATCH 2/2] src: most: add auto conf feature + +This patch adds the auto configuration feature to the driver +sources. It is needed to have the driver configured automatically +upon start up w/o the need for userspace to set up sysfs. + +Signed-off-by: Christian Gromm <christian.gromm@microchip.com> +--- + driver/Makefile | 3 + + driver/default_conf.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++ + driver/include/mostcore.h | 64 ++++++++++++++++++ + driver/mostcore/core.c | 120 ++++++++++++++++++++++++++++------ + 4 files changed, 331 insertions(+), 18 deletions(-) + create mode 100644 driver/default_conf.c + +diff --git a/Makefile b/Makefile +index e77a4b6..6d74ebe 100644 +--- a/Makefile ++++ b/Makefile +@@ -6,6 +6,9 @@ obj-m := mostcore.o + mostcore-y := mostcore/core.o + CFLAGS_core.o := -I$(src)/include/ + ++obj-m += default_conf.o ++CFLAGL_default_conf.o := -I$(src)/include ++ + obj-m += aim_cdev.o + aim_cdev-y := aim-cdev/cdev.o + CFLAGS_cdev.o := -I$(src)/include/ +diff --git a/default_conf.c b/default_conf.c +new file mode 100644 +index 0000000..adb1786 +--- /dev/null ++++ b/default_conf.c +@@ -0,0 +1,162 @@ ++/* ++ * default_conf.c - Default configuration for the MOST channels. ++ * ++ * Copyright (C) 2017, Microchip Technology Germany II GmbH & Co. KG ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * This file is licensed under GPLv2. ++ */ ++ ++#include "include/mostcore.h" ++#include <linux/module.h> ++ ++static struct most_config_probe config_probes[] = { ++ ++ /* OS81118 Control */ ++ { ++ .ch_name = "ep8f", ++ .cfg = { ++ .direction = MOST_CH_RX, ++ .data_type = MOST_CH_CONTROL, ++ .num_buffers = 16, ++ .buffer_size = 64, ++ }, ++ .aim_name = "cdev", ++ .aim_param = "inic-usb-crx", ++ }, ++ { ++ .ch_name = "ep0f", ++ .cfg = { ++ .direction = MOST_CH_TX, ++ .data_type = MOST_CH_CONTROL, ++ .num_buffers = 16, ++ .buffer_size = 64, ++ }, ++ .aim_name = "cdev", ++ .aim_param = "inic-usb-ctx", ++ }, ++ /* OS81118 Async */ ++ { ++ .ch_name = "ep8e", ++ .cfg = { ++ .direction = MOST_CH_RX, ++ .data_type = MOST_CH_ASYNC, ++ .num_buffers = 20, ++ .buffer_size = 1522, ++ }, ++ .aim_name = "networking", ++ .aim_param = "inic-usb-arx", ++ }, ++ { ++ .ch_name = "ep0e", ++ .cfg = { ++ .direction = MOST_CH_TX, ++ .data_type = MOST_CH_ASYNC, ++ .num_buffers = 20, ++ .buffer_size = 1522, ++ }, ++ .aim_name = "networking", ++ .aim_param = "inic-usb-atx", ++ }, ++ /* OS81210 Control */ ++ { ++ .ch_name = "ep87", ++ .cfg = { ++ .direction = MOST_CH_RX, ++ .data_type = MOST_CH_CONTROL, ++ .num_buffers = 16, ++ .buffer_size = 64, ++ }, ++ .aim_name = "cdev", ++ .aim_param = "inic-usb-crx", ++ }, ++ { ++ .ch_name = "ep07", ++ .cfg = { ++ .direction = MOST_CH_TX, ++ .data_type = MOST_CH_CONTROL, ++ .num_buffers = 16, ++ .buffer_size = 64, ++ }, ++ .aim_name = "cdev", ++ .aim_param = "inic-usb-ctx", ++ }, ++ /* OS81210 Async */ ++ { ++ .ch_name = "ep86", ++ .cfg = { ++ .direction = MOST_CH_RX, ++ .data_type = MOST_CH_ASYNC, ++ .num_buffers = 20, ++ .buffer_size = 1522, ++ }, ++ .aim_name = "networking", ++ .aim_param = "inic-usb-arx", ++ }, ++ { ++ .ch_name = "ep06", ++ .cfg = { ++ .direction = MOST_CH_TX, ++ .data_type = MOST_CH_ASYNC, ++ .num_buffers = 20, ++ .buffer_size = 1522, ++ }, ++ .aim_name = "networking", ++ .aim_param = "inic-usb-atx", ++ }, ++ /* Streaming channels (common for all INICs) */ ++ { ++ .ch_name = "ep01", ++ .cfg = { ++ .direction = MOST_CH_TX, ++ .data_type = MOST_CH_SYNC, ++ .num_buffers = 8, ++ .buffer_size = 2 * 12 * 42, ++ .subbuffer_size = 12, ++ .packets_per_xact = 42, ++ }, ++ .aim_name = "sound", ++ .aim_param = "ep01-6ch.6x16", ++ }, ++ { ++ .ch_name = "ep02", ++ .cfg = { ++ .direction = MOST_CH_TX, ++ .data_type = MOST_CH_ISOC, ++ .num_buffers = 8, ++ .buffer_size = 40 * 188, ++ .subbuffer_size = 188, ++ .packets_per_xact = 2, ++ }, ++ .aim_name = "cdev", ++ .aim_param = "inic-usb-itx1", ++ }, ++ ++ /* sentinel */ ++ {} ++}; ++ ++static struct most_config_set config_set = { ++ .probes = config_probes ++}; ++ ++static int __init mod_init(void) ++{ ++ most_register_config_set(&config_set); ++ return 0; ++} ++ ++static void __exit mod_exit(void) ++{ ++ most_deregister_config_set(&config_set); ++} ++ ++module_init(mod_init); ++module_exit(mod_exit); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>"); ++MODULE_DESCRIPTION("Default configuration for the MOST channels"); +diff --git a/include/mostcore.h b/include/mostcore.h +index dc87121..3c00efb 100644 +--- a/include/mostcore.h ++++ b/include/mostcore.h +@@ -145,6 +145,39 @@ struct most_channel_config { + u16 dbr_size; + }; + ++/** ++ * struct most_config_probe - matching rule, channel configuration and ++ * the optional AIM name used for the automatic configuration and linking ++ * of the channel ++ * @dev_name: optional matching device id ++ * ("usb_device 1-1:1.0," "dim2-12345678", etc.) ++ * @ch_name: matching channel name ("ep8f", "ca2", etc.) ++ * @cfg: configuration that will be applied for the found channel ++ * @aim_name: optional name of the AIM that will be linked to the channel ++ * ("cdev", "networking", "v4l", "sound") ++ * @aim_param: AIM dependent parameter (it is the character device name ++ * for the cdev AIM, PCM format for the audio AIM, etc.) ++ */ ++struct most_config_probe { ++ const char *dev_name; ++ const char *ch_name; ++ struct most_channel_config cfg; ++ const char *aim_name; ++ const char *aim_param; ++}; ++ ++/** ++ * struct most_config_set - the configuration set containing ++ * several automatic configurations for the different channels ++ * @probes: list of the matching rules and the configurations, ++ * that must be ended with the empty structure ++ * @list: list head used by the MostCore ++ */ ++struct most_config_set { ++ const struct most_config_probe *probes; ++ struct list_head list; ++}; ++ + /* + * struct mbo - MOST Buffer Object. + * @context: context for core completion handler +@@ -285,6 +318,37 @@ struct most_aim { + }; + + /** ++ * most_register_config_set - registers the configuration set ++ * ++ * @cfg_set: configuration set to be registered for the future probes ++ * ++ * The function registers the given configuration set. ++ * ++ * It is possible to register or deregister several configuration sets ++ * independently. Different configuration sets may contain the ++ * overlapped matching rules but later registered configuration set has ++ * the higher priority over the prior registered set. ++ * ++ * The only the first matched configuration is applied for each ++ * channel. ++ * ++ * The configuration for the channel is applied at the time of ++ * registration of the parent most_interface. ++ */ ++void most_register_config_set(struct most_config_set *cfg_set); ++ ++/** ++ * most_deregister_config_set - deregisters the prior registered ++ * configuration set ++ * ++ * @cfg_set: configuration set to be deregistered ++ * ++ * The calling of this function does not change the current ++ * configuration of the channels. ++ */ ++void most_deregister_config_set(struct most_config_set *cfg_set); ++ ++/** + * most_register_interface - Registers instance of the interface. + * @iface: Pointer to the interface instance description. + * +diff --git a/mostcore/core.c b/mostcore/core.c +index 9e0a352..6035cf0 100644 +--- a/mostcore/core.c ++++ b/mostcore/core.c +@@ -36,6 +36,8 @@ static struct class *most_class; + static struct device *core_dev; + static struct ida mdev_id; + static int dummy_num_buffers; ++static struct list_head config_probes; ++struct mutex config_probes_mt; /* config_probes */ + + struct most_c_aim_obj { + struct most_aim *ptr; +@@ -918,6 +920,30 @@ most_c_obj *get_channel_by_name(char *mdev, char *mdev_ch) + return c; + } + ++static int link_channel_to_aim(struct most_c_obj *c, struct most_aim *aim, ++ char *aim_param) ++{ ++ int ret; ++ struct most_aim **aim_ptr; ++ ++ if (!c->aim0.ptr) ++ aim_ptr = &c->aim0.ptr; ++ else if (!c->aim1.ptr) ++ aim_ptr = &c->aim1.ptr; ++ else ++ return -ENOSPC; ++ ++ *aim_ptr = aim; ++ ret = aim->probe_channel(c->iface, c->channel_id, ++ &c->cfg, &c->kobj, aim_param); ++ if (ret) { ++ *aim_ptr = NULL; ++ return ret; ++ } ++ ++ return 0; ++} ++ + /** + * add_link_store - store() function for add_link attribute + * @aim_obj: pointer to AIM object +@@ -946,45 +972,33 @@ static ssize_t add_link_store(struct most_aim_obj *aim_obj, + size_t len) + { + struct most_c_obj *c; +- struct most_aim **aim_ptr; + char buffer[STRING_SIZE]; + char *mdev; + char *mdev_ch; +- char *mdev_devnod; ++ char *aim_param; + char devnod_buf[STRING_SIZE]; + int ret; + size_t max_len = min_t(size_t, len + 1, STRING_SIZE); + + strlcpy(buffer, buf, max_len); + +- ret = split_string(buffer, &mdev, &mdev_ch, &mdev_devnod); ++ ret = split_string(buffer, &mdev, &mdev_ch, &aim_param); + if (ret) + return ret; + +- if (!mdev_devnod || *mdev_devnod == 0) { ++ if (!aim_param || *aim_param == 0) { + snprintf(devnod_buf, sizeof(devnod_buf), "%s-%s", mdev, + mdev_ch); +- mdev_devnod = devnod_buf; ++ aim_param = devnod_buf; + } + + c = get_channel_by_name(mdev, mdev_ch); + if (IS_ERR(c)) + return -ENODEV; + +- if (!c->aim0.ptr) +- aim_ptr = &c->aim0.ptr; +- else if (!c->aim1.ptr) +- aim_ptr = &c->aim1.ptr; +- else +- return -ENOSPC; +- +- *aim_ptr = aim_obj->driver; +- ret = aim_obj->driver->probe_channel(c->iface, c->channel_id, +- &c->cfg, &c->kobj, mdev_devnod); +- if (ret) { +- *aim_ptr = NULL; ++ ret = link_channel_to_aim(c, aim_obj->driver, aim_param); ++ if (ret) + return ret; +- } + + return len; + } +@@ -1679,6 +1693,73 @@ int most_deregister_aim(struct most_aim *aim) + } + EXPORT_SYMBOL_GPL(most_deregister_aim); + ++void most_register_config_set(struct most_config_set *cfg_set) ++{ ++ mutex_lock(&config_probes_mt); ++ list_add(&cfg_set->list, &config_probes); ++ mutex_unlock(&config_probes_mt); ++} ++EXPORT_SYMBOL(most_register_config_set); ++ ++void most_deregister_config_set(struct most_config_set *cfg_set) ++{ ++ mutex_lock(&config_probes_mt); ++ list_del(&cfg_set->list); ++ mutex_unlock(&config_probes_mt); ++} ++EXPORT_SYMBOL(most_deregister_config_set); ++ ++static int probe_aim(struct most_c_obj *c, ++ const char *aim_name, const char *aim_param) ++{ ++ struct most_aim_obj *aim_obj; ++ char buf[STRING_SIZE]; ++ ++ list_for_each_entry(aim_obj, &aim_list, list) { ++ if (!strcmp(aim_obj->driver->name, aim_name)) { ++ strlcpy(buf, aim_param ? aim_param : "", sizeof(buf)); ++ return link_channel_to_aim(c, aim_obj->driver, buf); ++ } ++ } ++ return 0; ++} ++ ++static bool probe_config_set(struct most_c_obj *c, ++ const char *dev_name, const char *ch_name, ++ const struct most_config_probe *p) ++{ ++ int err; ++ ++ for (; p->ch_name; p++) { ++ if ((p->dev_name && strcmp(dev_name, p->dev_name)) || ++ strcmp(ch_name, p->ch_name)) ++ continue; ++ ++ c->cfg = p->cfg; ++ if (p->aim_name) { ++ err = probe_aim(c, p->aim_name, p->aim_param); ++ if (err) ++ pr_err("failed to autolink %s to %s: %d\n", ++ ch_name, p->aim_name, err); ++ } ++ return true; ++ } ++ return false; ++} ++ ++static void find_configuration(struct most_c_obj *c, const char *dev_name, ++ const char *ch_name) ++{ ++ struct most_config_set *plist; ++ ++ mutex_lock(&config_probes_mt); ++ list_for_each_entry(plist, &config_probes, list) { ++ if (probe_config_set(c, dev_name, ch_name, plist->probes)) ++ break; ++ } ++ mutex_unlock(&config_probes_mt); ++} ++ + /** + * most_register_interface - registers an interface with core + * @iface: pointer to the instance of the interface description. +@@ -1777,6 +1858,7 @@ struct kobject *most_register_interface(struct most_interface *iface) + mutex_init(&c->start_mutex); + mutex_init(&c->nq_mutex); + list_add_tail(&c->list, &inst->channel_list); ++ find_configuration(c, iface->description, channel_name); + } + pr_info("registered new MOST device mdev%d (%s)\n", + inst->dev_id, iface->description); +@@ -1880,6 +1962,8 @@ static int __init most_init(void) + pr_info("init()\n"); + INIT_LIST_HEAD(&instance_list); + INIT_LIST_HEAD(&aim_list); ++ INIT_LIST_HEAD(&config_probes); ++ mutex_init(&config_probes_mt); + ida_init(&mdev_id); + + err = bus_register(&most_bus); +-- +2.7.4 + diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch b/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch new file mode 100644 index 000000000..4703844a1 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0003-core-remove-kernel-log-for-MBO-status.patch @@ -0,0 +1,26 @@ +From b269994be937cbb31c0d73ecc899ca8a545a6a4a Mon Sep 17 00:00:00 2001 +From: Christian Gromm <christian.gromm@microchip.com> +Date: Mon, 4 Sep 2017 11:09:17 +0200 +Subject: [PATCH 3/5] core: remove kernel log for MBO status + +Signed-off-by: Christian Gromm <christian.gromm@microchip.com> +--- + driver/mostcore/core.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/mostcore/core.c b/mostcore/core.c +index 931efb9..595becc 100644 +--- a/mostcore/core.c ++++ b/mostcore/core.c +@@ -1348,8 +1348,6 @@ static void most_write_completion(struct mbo *mbo) + BUG_ON((!mbo) || (!mbo->context)); + + c = mbo->context; +- if (mbo->status == MBO_E_INVAL) +- pr_info("WARN: Tx MBO status: invalid\n"); + if (unlikely(c->is_poisoned || (mbo->status == MBO_E_CLOSE))) + trash_mbo(mbo); + else +-- +2.7.4 + diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch b/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch new file mode 100644 index 000000000..010d4b0d0 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0004-most-video-set-device_caps.patch @@ -0,0 +1,25 @@ +From a5fd2ae8d4a3b2a8f7a33a4ea469ea7ee0d946ef Mon Sep 17 00:00:00 2001 +From: Christian Gromm <christian.gromm@microchip.com> +Date: Mon, 4 Sep 2017 15:36:38 +0200 +Subject: [PATCH 4/5] most: video: set device_caps + +Signed-off-by: Christian Gromm <christian.gromm@microchip.com> +--- + driver/aim-v4l2/video.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c +index e074841..6405a03 100644 +--- a/aim-v4l2/video.c ++++ b/aim-v4l2/video.c +@@ -263,6 +263,7 @@ static int vidioc_querycap(struct file *file, void *priv, + snprintf(cap->bus_info, sizeof(cap->bus_info), + "%s", mdev->iface->description); + ++ cap->device_caps = + cap->capabilities = + V4L2_CAP_READWRITE | + V4L2_CAP_TUNER | +-- +2.7.4 + diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch b/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch new file mode 100644 index 000000000..ebaee9e14 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch @@ -0,0 +1,25 @@ +From 7518453386ad3e82008186a6c9ca86ed8c136801 Mon Sep 17 00:00:00 2001 +From: Christian Gromm <christian.gromm@microchip.com> +Date: Mon, 4 Sep 2017 16:08:38 +0200 +Subject: [PATCH 5/5] most: video: set V4L2_CAP_DEVICE_CAPS flag + +Signed-off-by: Christian Gromm <christian.gromm@microchip.com> +--- + driver/aim-v4l2/video.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/aim-v4l2/video.c b/aim-v4l2/video.c +index 6405a03..db75d4d 100644 +--- a/aim-v4l2/video.c ++++ b/aim-v4l2/video.c +@@ -265,6 +265,7 @@ static int vidioc_querycap(struct file *file, void *priv, + + cap->device_caps = + cap->capabilities = ++ V4L2_CAP_DEVICE_CAPS | + V4L2_CAP_READWRITE | + V4L2_CAP_TUNER | + V4L2_CAP_VIDEO_CAPTURE; +-- +2.7.4 + diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch b/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch new file mode 100644 index 000000000..59c6ae671 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0006-dim2-fix-startup-sequence.patch @@ -0,0 +1,186 @@ +From 63bcd9b421ae7927948bffec9566db47f40ea290 Mon Sep 17 00:00:00 2001 +From: Andrey Shvetsov <andrey.shvetsov@k2l.de> +Date: Tue, 30 Jan 2018 17:34:09 +0100 +Subject: [PATCH] staging: most: dim2: fix startup sequence + +Platform specific initializations (pdata->init) must be done before DIM2 +IP module startup (dim_startup). + +Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de> +--- + hdm-dim2/dim2_hdm.c | 90 +++++++++++++++++++++++++++++++++++++++--------------------------------------------------- + 1 file changed, 39 insertions(+), 51 deletions(-) + +diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c +index 893b8e4..e4629a5 100644 +--- a/hdm-dim2/dim2_hdm.c ++++ b/hdm-dim2/dim2_hdm.c +@@ -155,38 +155,6 @@ void dimcb_on_error(u8 error_id, const char *error_message) + } + + /** +- * startup_dim - initialize the dim2 interface +- * @pdev: platform device +- */ +-static int startup_dim(struct platform_device *pdev) +-{ +- struct dim2_hdm *dev = platform_get_drvdata(pdev); +- struct dim2_platform_data *pdata = pdev->dev.platform_data; +- u8 hal_ret; +- int ret; +- +- if (!pdata) { +- pr_err("missing platform data\n"); +- return -EINVAL; +- } +- +- ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0; +- if (ret) +- return ret; +- +- pr_info("sync: num of frames per sub-buffer: %u\n", fcnt); +- hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt); +- if (hal_ret != DIM_NO_ERROR) { +- pr_err("dim_startup failed: %d\n", hal_ret); +- if (pdata && pdata->destroy) +- pdata->destroy(pdata); +- return -ENODEV; +- } +- +- return 0; +-} +- +-/** + * try_start_dim_transfer - try to transfer a buffer on a channel + * @hdm_ch: channel specific data + * +@@ -727,10 +695,12 @@ static void dma_free(struct mbo *mbo, u32 size) + */ + static int dim2_probe(struct platform_device *pdev) + { ++ struct dim2_platform_data *pdata = pdev->dev.platform_data; + struct dim2_hdm *dev; + struct resource *res; + int ret, i; + struct kobject *kobj; ++ u8 hal_ret; + int irq; + + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); +@@ -745,38 +715,59 @@ static int dim2_probe(struct platform_device *pdev) + if (IS_ERR(dev->io_base)) + return PTR_ERR(dev->io_base); + ++ if (!pdata) { ++ dev_err(&pdev->dev, "missing platform data\n"); ++ return -EINVAL; ++ } ++ ++ ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0; ++ if (ret) ++ return ret; ++ ++ dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", fcnt); ++ hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt); ++ if (hal_ret != DIM_NO_ERROR) { ++ dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret); ++ ret = -ENODEV; ++ goto err_bsp_destroy; ++ } ++ + irq = platform_get_irq(pdev, 0); + if (irq < 0) { + dev_err(&pdev->dev, "failed to get ahb0_int irq: %d\n", irq); +- return irq; ++ ret = irq; ++ goto err_shutdown_dim; + } + + ret = devm_request_irq(&pdev->dev, irq, dim2_ahb_isr, 0, + "dim2_ahb0_int", dev); + if (ret) { + dev_err(&pdev->dev, "failed to request ahb0_int irq %d\n", irq); +- return ret; ++ goto err_shutdown_dim; + } + + irq = platform_get_irq(pdev, 1); + if (irq < 0) { + dev_err(&pdev->dev, "failed to get mlb_int irq: %d\n", irq); +- return irq; ++ ret = irq; ++ goto err_shutdown_dim; + } + + ret = devm_request_irq(&pdev->dev, irq, dim2_mlb_isr, 0, + "dim2_mlb_int", dev); + if (ret) { + dev_err(&pdev->dev, "failed to request mlb_int irq %d\n", irq); +- return ret; ++ goto err_shutdown_dim; + } + + init_waitqueue_head(&dev->netinfo_waitq); + dev->deliver_netinfo = 0; +- dev->netinfo_task = kthread_run(&deliver_netinfo_thread, (void *)dev, ++ dev->netinfo_task = kthread_run(&deliver_netinfo_thread, dev, + "dim2_netinfo"); +- if (IS_ERR(dev->netinfo_task)) +- return PTR_ERR(dev->netinfo_task); ++ if (IS_ERR(dev->netinfo_task)) { ++ ret = PTR_ERR(dev->netinfo_task); ++ goto err_shutdown_dim; ++ } + + for (i = 0; i < DMA_CHANNELS; i++) { + struct most_channel_capability *cap = dev->capabilities + i; +@@ -833,20 +824,17 @@ static int dim2_probe(struct platform_device *pdev) + if (ret) + goto err_unreg_iface; + +- ret = startup_dim(pdev); +- if (ret) { +- dev_err(&pdev->dev, "failed to initialize DIM2\n"); +- goto err_destroy_bus; +- } +- + return 0; + +-err_destroy_bus: +- dim2_sysfs_destroy(&dev->bus); + err_unreg_iface: + most_deregister_interface(&dev->most_iface); + err_stop_thread: + kthread_stop(dev->netinfo_task); ++err_shutdown_dim: ++ dim_shutdown(); ++err_bsp_destroy: ++ if (pdata && pdata->destroy) ++ pdata->destroy(pdata); + + return ret; + } +@@ -863,6 +851,10 @@ static int dim2_remove(struct platform_device *pdev) + struct dim2_platform_data *pdata = pdev->dev.platform_data; + unsigned long flags; + ++ dim2_sysfs_destroy(&dev->bus); ++ most_deregister_interface(&dev->most_iface); ++ kthread_stop(dev->netinfo_task); ++ + spin_lock_irqsave(&dim_lock, flags); + dim_shutdown(); + spin_unlock_irqrestore(&dim_lock, flags); +@@ -870,10 +862,6 @@ static int dim2_remove(struct platform_device *pdev) + if (pdata && pdata->destroy) + pdata->destroy(pdata); + +- dim2_sysfs_destroy(&dev->bus); +- most_deregister_interface(&dev->most_iface); +- kthread_stop(dev->netinfo_task); +- + /* + * break link to local platform_device_id struct + * to prevent crash by unload platform device module +-- +libgit2 0.26.0 diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch b/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch new file mode 100644 index 000000000..679fab79c --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0007-dim2-use-device-tree.patch @@ -0,0 +1,378 @@ +From 8e16207392cd715ea88f6780981a3d55ab005588 Mon Sep 17 00:00:00 2001 +From: Andrey Shvetsov <andrey.shvetsov@k2l.de> +Date: Mon, 12 Feb 2018 12:23:37 +0100 +Subject: [PATCH] staging: most: dim2: use device tree + +Current dim2 driver expects the existence of a platform driver that +implements the platform specific initialization and delivery of the irq +numbers. + +This patch integrates the device tree activity and platform specific +code into the driver. + +Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de> +--- + hdm-dim2/dim2_hdm.c | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------- + hdm-dim2/dim2_hdm.h | 28 ---------------------------- + hdm-dim2/platform/dim2_arwen_mlb3.c | 165 --------------------------------------------------------------------------------------------------------------------------------------------------------------------- + hdm-dim2/platform/dim2_arwen_mlb6.c | 169 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + hdm-dim2/platform/dim2_h2_dt.c | 227 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + hdm-dim2/platform/dim2_mx6q.c | 192 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + hdm-dim2/platform/dim2_mx6q_dt.c | 224 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 7 files changed, 193 insertions(+), 1034 deletions(-) + delete mode 100644 hdm-dim2/dim2_hdm.h + delete mode 100644 hdm-dim2/platform/dim2_arwen_mlb3.c + delete mode 100644 hdm-dim2/platform/dim2_arwen_mlb6.c + delete mode 100644 hdm-dim2/platform/dim2_h2_dt.c + delete mode 100644 hdm-dim2/platform/dim2_mx6q.c + delete mode 100644 hdm-dim2/platform/dim2_mx6q_dt.c + +diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c +index e4629a5..2dba917 100644 +--- a/hdm-dim2/dim2_hdm.c ++++ b/hdm-dim2/dim2_hdm.c +@@ -14,6 +14,7 @@ + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + + #include <linux/module.h> ++#include <linux/of_platform.h> + #include <linux/printk.h> + #include <linux/kernel.h> + #include <linux/init.h> +@@ -21,13 +22,13 @@ + #include <linux/interrupt.h> + #include <linux/slab.h> + #include <linux/io.h> ++#include <linux/clk.h> + #include <linux/dma-mapping.h> + #include <linux/sched.h> + #include <linux/kthread.h> + + #include <mostcore.h> + #include "dim2_hal.h" +-#include "dim2_hdm.h" + #include "dim2_errors.h" + #include "dim2_sysfs.h" + +@@ -93,6 +94,9 @@ struct dim2_hdm { + struct most_interface most_iface; + char name[16 + sizeof "dim2-"]; + void __iomem *io_base; ++ u8 clk_speed; ++ struct clk *clk; ++ struct clk *clk_pll; + struct task_struct *netinfo_task; + wait_queue_head_t netinfo_waitq; + int deliver_netinfo; +@@ -102,6 +106,12 @@ struct dim2_hdm { + struct medialb_bus bus; + void (*on_netinfo)(struct most_interface *, + unsigned char, unsigned char *); ++ void (*disable_platform)(struct platform_device *); ++}; ++ ++struct dim2_platform_data { ++ int (*enable)(struct platform_device *); ++ void (*disable)(struct platform_device *); + }; + + #define iface_to_hdm(iface) container_of(iface, struct dim2_hdm, most_iface) +@@ -686,6 +696,8 @@ static void dma_free(struct mbo *mbo, u32 size) + dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address); + } + ++static const struct of_device_id dim2_of_match[]; ++ + /* + * dim2_probe - dim2 probe handler + * @pdev: platform device structure +@@ -695,7 +707,7 @@ static void dma_free(struct mbo *mbo, u32 size) + */ + static int dim2_probe(struct platform_device *pdev) + { +- struct dim2_platform_data *pdata = pdev->dev.platform_data; ++ const struct dim2_platform_data *pdata; + struct dim2_hdm *dev; + struct resource *res; + int ret, i; +@@ -703,6 +715,8 @@ static int dim2_probe(struct platform_device *pdev) + u8 hal_ret; + int irq; + ++ enum { MLB_INT_IDX, AHB0_INT_IDX }; ++ + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); + if (!dev) + return -ENOMEM; +@@ -710,29 +724,30 @@ static int dim2_probe(struct platform_device *pdev) + dev->atx_idx = -1; + + platform_set_drvdata(pdev, dev); ++ ++ dev->clk_speed = CLK_4096FS; ++ + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + dev->io_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(dev->io_base)) + return PTR_ERR(dev->io_base); + +- if (!pdata) { +- dev_err(&pdev->dev, "missing platform data\n"); +- return -EINVAL; +- } +- +- ret = pdata->init ? pdata->init(pdata, dev->io_base) : 0; ++ pdata = of_match_node(dim2_of_match, pdev->dev.of_node)->data; ++ ret = pdata && pdata->enable ? pdata->enable(pdev) : 0; + if (ret) + return ret; + ++ dev->disable_platform = pdata ? pdata->disable : 0; ++ + dev_info(&pdev->dev, "sync: num of frames per sub-buffer: %u\n", fcnt); +- hal_ret = dim_startup(dev->io_base, pdata->clk_speed, fcnt); ++ hal_ret = dim_startup(dev->io_base, dev->clk_speed, fcnt); + if (hal_ret != DIM_NO_ERROR) { + dev_err(&pdev->dev, "dim_startup failed: %d\n", hal_ret); + ret = -ENODEV; +- goto err_bsp_destroy; ++ goto err_disable_platform; + } + +- irq = platform_get_irq(pdev, 0); ++ irq = platform_get_irq(pdev, AHB0_INT_IDX); + if (irq < 0) { + dev_err(&pdev->dev, "failed to get ahb0_int irq: %d\n", irq); + ret = irq; +@@ -746,7 +761,7 @@ static int dim2_probe(struct platform_device *pdev) + goto err_shutdown_dim; + } + +- irq = platform_get_irq(pdev, 1); ++ irq = platform_get_irq(pdev, MLB_INT_IDX); + if (irq < 0) { + dev_err(&pdev->dev, "failed to get mlb_int irq: %d\n", irq); + ret = irq; +@@ -832,9 +847,9 @@ static int dim2_probe(struct platform_device *pdev) + kthread_stop(dev->netinfo_task); + err_shutdown_dim: + dim_shutdown(); +-err_bsp_destroy: +- if (pdata && pdata->destroy) +- pdata->destroy(pdata); ++err_disable_platform: ++ if (dev->disable_platform) ++ dev->disable_platform(pdev); + + return ret; + } +@@ -848,7 +863,6 @@ static int dim2_probe(struct platform_device *pdev) + static int dim2_remove(struct platform_device *pdev) + { + struct dim2_hdm *dev = platform_get_drvdata(pdev); +- struct dim2_platform_data *pdata = pdev->dev.platform_data; + unsigned long flags; + + dim2_sysfs_destroy(&dev->bus); +@@ -859,37 +873,187 @@ static int dim2_remove(struct platform_device *pdev) + dim_shutdown(); + spin_unlock_irqrestore(&dim_lock, flags); + +- if (pdata && pdata->destroy) +- pdata->destroy(pdata); ++ if (dev->disable_platform) ++ dev->disable_platform(pdev); ++ ++ return 0; ++} ++ ++/* platform specific functions [[ */ ++ ++static int fsl_mx6_enable(struct platform_device *pdev) ++{ ++ struct dim2_hdm *dev = platform_get_drvdata(pdev); ++ int ret; ++ ++ dev->clk = devm_clk_get(&pdev->dev, "mlb"); ++ if (IS_ERR_OR_NULL(dev->clk)) { ++ dev_err(&pdev->dev, "unable to get mlb clock\n"); ++ return -EFAULT; ++ } ++ ++ ret = clk_prepare_enable(dev->clk); ++ if (ret) { ++ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed"); ++ return ret; ++ } ++ ++ if (dev->clk_speed >= CLK_2048FS) { ++ /* enable pll */ ++ dev->clk_pll = devm_clk_get(&pdev->dev, "pll8_mlb"); ++ if (IS_ERR_OR_NULL(dev->clk_pll)) { ++ dev_err(&pdev->dev, "unable to get mlb pll clock\n"); ++ clk_disable_unprepare(dev->clk); ++ return -EFAULT; ++ } ++ ++ writel(0x888, dev->io_base + 0x38); ++ clk_prepare_enable(dev->clk_pll); ++ } ++ ++ return 0; ++} ++ ++static void fsl_mx6_disable(struct platform_device *pdev) ++{ ++ struct dim2_hdm *dev = platform_get_drvdata(pdev); ++ ++ if (dev->clk_speed >= CLK_2048FS) ++ clk_disable_unprepare(dev->clk_pll); ++ ++ clk_disable_unprepare(dev->clk); ++} ++ ++static int rcar_h2_enable(struct platform_device *pdev) ++{ ++ struct dim2_hdm *dev = platform_get_drvdata(pdev); ++ int ret; ++ ++ dev->clk = devm_clk_get(&pdev->dev, NULL); ++ if (IS_ERR(dev->clk)) { ++ dev_err(&pdev->dev, "cannot get clock\n"); ++ return PTR_ERR(dev->clk); ++ } ++ ++ ret = clk_prepare_enable(dev->clk); ++ if (ret) { ++ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed"); ++ return ret; ++ } ++ ++ if (dev->clk_speed >= CLK_2048FS) { ++ /* enable MLP pll and LVDS drivers */ ++ writel(0x03, dev->io_base + 0x600); ++ /* set bias */ ++ writel(0x888, dev->io_base + 0x38); ++ } else { ++ /* PLL */ ++ writel(0x04, dev->io_base + 0x600); ++ } ++ + +- /* +- * break link to local platform_device_id struct +- * to prevent crash by unload platform device module +- */ +- pdev->id_entry = NULL; ++ /* BBCR = 0b11 */ ++ writel(0x03, dev->io_base + 0x500); ++ writel(0x0002FF02, dev->io_base + 0x508); + + return 0; + } + +-static const struct platform_device_id dim2_id[] = { +- { "medialb_dim2" }, +- { }, /* Terminating entry */ ++static void rcar_h2_disable(struct platform_device *pdev) ++{ ++ struct dim2_hdm *dev = platform_get_drvdata(pdev); ++ ++ clk_disable_unprepare(dev->clk); ++ ++ /* disable PLLs and LVDS drivers */ ++ writel(0x0, dev->io_base + 0x600); ++} ++ ++static int rcar_m3_enable(struct platform_device *pdev) ++{ ++ struct dim2_hdm *dev = platform_get_drvdata(pdev); ++ u32 enable_512fs = dev->clk_speed == CLK_512FS; ++ int ret; ++ ++ dev->clk = devm_clk_get(&pdev->dev, NULL); ++ if (IS_ERR(dev->clk)) { ++ dev_err(&pdev->dev, "cannot get clock\n"); ++ return PTR_ERR(dev->clk); ++ } ++ ++ ret = clk_prepare_enable(dev->clk); ++ if (ret) { ++ dev_err(&pdev->dev, "%s\n", "clk_prepare_enable failed"); ++ return ret; ++ } ++ ++ /* PLL */ ++ writel(0x04, dev->io_base + 0x600); ++ ++ writel(enable_512fs, dev->io_base + 0x604); ++ ++ /* BBCR = 0b11 */ ++ writel(0x03, dev->io_base + 0x500); ++ writel(0x0002FF02, dev->io_base + 0x508); ++ ++ return 0; ++} ++ ++static void rcar_m3_disable(struct platform_device *pdev) ++{ ++ struct dim2_hdm *dev = platform_get_drvdata(pdev); ++ ++ clk_disable_unprepare(dev->clk); ++ ++ /* disable PLLs and LVDS drivers */ ++ writel(0x0, dev->io_base + 0x600); ++} ++ ++/* ]] platform specific functions */ ++ ++enum dim2_platforms { FSL_MX6, RCAR_H2, RCAR_M3 }; ++ ++static struct dim2_platform_data plat_data[] = { ++ [FSL_MX6] = { .enable = fsl_mx6_enable, .disable = fsl_mx6_disable }, ++ [RCAR_H2] = { .enable = rcar_h2_enable, .disable = rcar_h2_disable }, ++ [RCAR_M3] = { .enable = rcar_m3_enable, .disable = rcar_m3_disable }, ++}; ++ ++static const struct of_device_id dim2_of_match[] = { ++ { ++ .compatible = "fsl,imx6q-mlb150", ++ .data = plat_data + FSL_MX6 ++ }, ++ { ++ .compatible = "renesas,mlp", ++ .data = plat_data + RCAR_H2 ++ }, ++ { ++ .compatible = "rcar,medialb-dim2", ++ .data = plat_data + RCAR_M3 ++ }, ++ { ++ .compatible = "xlnx,axi4-os62420_3pin-1.00.a", ++ }, ++ { ++ .compatible = "xlnx,axi4-os62420_6pin-1.00.a", ++ }, ++ {}, + }; + +-MODULE_DEVICE_TABLE(platform, dim2_id); ++MODULE_DEVICE_TABLE(of, dim2_of_match); + + static struct platform_driver dim2_driver = { + .probe = dim2_probe, + .remove = dim2_remove, +- .id_table = dim2_id, + .driver = { + .name = "hdm_dim2", ++ .of_match_table = dim2_of_match, + }, + }; + + module_platform_driver(dim2_driver); + +-MODULE_AUTHOR("Jain Roy Ambi <JainRoy.Ambi@microchip.com>"); + MODULE_AUTHOR("Andrey Shvetsov <andrey.shvetsov@k2l.de>"); + MODULE_DESCRIPTION("MediaLB DIM2 Hardware Dependent Module"); + MODULE_LICENSE("GPL"); +libgit2 0.26.0 diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch b/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch new file mode 100644 index 000000000..1b01fb156 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0008-dim2-read-clock-speed-from-the-device-tree.patch @@ -0,0 +1,92 @@ +From 839ad403a2d8081a6c15f6fc2836b01919338f3c Mon Sep 17 00:00:00 2001 +From: Andrey Shvetsov <andrey.shvetsov@k2l.de> +Date: Mon, 12 Feb 2018 12:24:37 +0100 +Subject: [PATCH] staging: most: dim2: read clock speed from the device tree + +This implements reading of the clock speed parameter from the device +tree. + +Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de> +--- + Documentation/devicetree/bindings/inic/microchip,inic-dim2.txt | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + hdm-dim2/dim2_hdm.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 113 insertions(+), 1 deletion(-) + create mode 100644 Documentation/devicetree/bindings/inic/microchip,inic-dim2.txt + +diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c +index 2dba917..05e1896 100644 +--- a/hdm-dim2/dim2_hdm.c ++++ b/hdm-dim2/dim2_hdm.c +@@ -698,6 +698,42 @@ static void dma_free(struct mbo *mbo, u32 size) + + static const struct of_device_id dim2_of_match[]; + ++static struct { ++ const char *clock_speed; ++ u8 clk_speed; ++} clk_mt[] = { ++ { "256fs", CLK_256FS }, ++ { "512fs", CLK_512FS }, ++ { "1024fs", CLK_1024FS }, ++ { "2048fs", CLK_2048FS }, ++ { "3072fs", CLK_3072FS }, ++ { "4096fs", CLK_4096FS }, ++ { "6144fs", CLK_6144FS }, ++ { "8192fs", CLK_8192FS }, ++}; ++ ++/** ++ * get_dim2_clk_speed - converts string to DIM2 clock speed value ++ * ++ * @clock_speed: string in the format "{NUMBER}fs" ++ * @val: pointer to get one of the CLK_{NUMBER}FS values ++ * ++ * By success stores one of the CLK_{NUMBER}FS in the *val and returns 0, ++ * otherwise returns -EINVAL. ++ */ ++static int get_dim2_clk_speed(const char *clock_speed, u8 *val) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(clk_mt); i++) { ++ if (!strcmp(clock_speed, clk_mt[i].clock_speed)) { ++ *val = clk_mt[i].clk_speed; ++ return 0; ++ } ++ } ++ return -EINVAL; ++} ++ + /* + * dim2_probe - dim2 probe handler + * @pdev: platform device structure +@@ -708,6 +744,7 @@ static const struct of_device_id dim2_of_match[]; + static int dim2_probe(struct platform_device *pdev) + { + const struct dim2_platform_data *pdata; ++ const char *clock_speed; + struct dim2_hdm *dev; + struct resource *res; + int ret, i; +@@ -725,7 +762,18 @@ static int dim2_probe(struct platform_device *pdev) + + platform_set_drvdata(pdev, dev); + +- dev->clk_speed = CLK_4096FS; ++ ret = of_property_read_string(pdev->dev.of_node, ++ "microchip,clock-speed", &clock_speed); ++ if (ret) { ++ dev_err(&pdev->dev, "missing dt property clock-speed\n"); ++ return ret; ++ } ++ ++ ret = get_dim2_clk_speed(clock_speed, &dev->clk_speed); ++ if (ret) { ++ dev_err(&pdev->dev, "bad dt property clock-speed\n"); ++ return ret; ++ } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + dev->io_base = devm_ioremap_resource(&pdev->dev, res); +-- +libgit2 0.26.0 diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch b/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch new file mode 100644 index 000000000..08cd6f99d --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/files/0009-dim2-use-device-for-coherent-memory-allocation.patch @@ -0,0 +1,47 @@ +From 756f2f1f90524c2620ed7951e436d13bdb929a6b Mon Sep 17 00:00:00 2001 +From: Andrey Shvetsov <andrey.shvetsov@k2l.de> +Date: Mon, 12 Feb 2018 12:25:37 +0100 +Subject: [PATCH] staging: most: dim2: use device for coherent memory allocation + +On several modern architectures the allocation of coherent memory needs +a device that has the dma_ops properly set. This patch enables use of +the DIM2 platform device for the allocation process. + +Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de> +--- + hdm-dim2/dim2_hdm.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/hdm-dim2/dim2_hdm.c b/hdm-dim2/dim2_hdm.c +index 05e1896..1847091 100644 +--- a/hdm-dim2/dim2_hdm.c ++++ b/hdm-dim2/dim2_hdm.c +@@ -688,12 +688,16 @@ static int poison_channel(struct most_interface *most_iface, int ch_idx) + + static void *dma_alloc(struct mbo *mbo, u32 size) + { +- return dma_alloc_coherent(NULL, size, &mbo->bus_address, GFP_KERNEL); ++ struct device *dev = mbo->ifp->dev; ++ ++ return dma_alloc_coherent(dev, size, &mbo->bus_address, GFP_KERNEL); + } + + static void dma_free(struct mbo *mbo, u32 size) + { +- dma_free_coherent(NULL, size, mbo->virt_address, mbo->bus_address); ++ struct device *dev = mbo->ifp->dev; ++ ++ dma_free_coherent(dev, size, mbo->virt_address, mbo->bus_address); + } + + static const struct of_device_id dim2_of_match[]; +@@ -875,6 +879,7 @@ static int dim2_probe(struct platform_device *pdev) + dev->most_iface.poison_channel = poison_channel; + dev->most_iface.request_netinfo = request_netinfo; + dev->most_iface.extra_attrs = DBR_ATTRS; ++ dev->most_iface.dev = &pdev->dev; + + kobj = most_register_interface(&dev->most_iface); + if (IS_ERR(kobj)) { +-- +libgit2 0.26.0 diff --git a/meta-agl-profile-core/recipes-kernel/most/most.bb b/meta-agl-profile-core/recipes-kernel/most/most.bb new file mode 100644 index 000000000..222c8aa18 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/most.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Build MOST driver" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +inherit module + +PV = "0.1" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/most;protocol=https;branch=${AGL_BRANCH}" + +S = "${WORKDIR}/git/driver" +SRCREV = "794e6dc552e626eb6dd506baf941873414d9ef73" + +KERNEL_MODULE_AUTOLOAD += "aim_cdev aim_sound aim_network aim_v4l2 hdm_i2c hdm_dim2 hdm_usb mostcore"
\ No newline at end of file diff --git a/meta-agl-profile-core/recipes-kernel/most/most.bbappend b/meta-agl-profile-core/recipes-kernel/most/most.bbappend new file mode 100644 index 000000000..d85565fc2 --- /dev/null +++ b/meta-agl-profile-core/recipes-kernel/most/most.bbappend @@ -0,0 +1,12 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +SRC_URI_append = " \ + file://0002-src-most-add-auto-conf-feature.patch \ + file://0003-core-remove-kernel-log-for-MBO-status.patch \ + file://0004-most-video-set-device_caps.patch \ + file://0005-most-video-set-V4L2_CAP_DEVICE_CAPS-flag.patch \ + file://0006-dim2-fix-startup-sequence.patch \ + file://0007-dim2-use-device-tree.patch \ + file://0008-dim2-read-clock-speed-from-the-device-tree.patch \ + file://0009-dim2-use-device-for-coherent-memory-allocation.patch \ + " diff --git a/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio/10-unload-modules.pa b/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio/10-unload-modules.pa new file mode 100644 index 000000000..1f8b723e2 --- /dev/null +++ b/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio/10-unload-modules.pa @@ -0,0 +1,4 @@ +unload-module module-role-cork +unload-module module-device-restore +unload-module module-stream-restore +unload-module module-card-restore diff --git a/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend index a54ec60f1..7eebe306d 100644 --- a/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend +++ b/meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -1,7 +1,19 @@ FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" + +SRC_URI += "file://10-unload-modules.pa" + inherit systemd + +# Add .include directive to default.pa so optional configuration can be added +do_install_append () { + echo ".include ${sysconfdir}/pulse/default.d" >> ${D}${sysconfdir}/pulse/default.pa + install -d ${D}${sysconfdir}/pulse/default.d + install -m 0644 ${WORKDIR}/10-unload-modules.pa ${D}${sysconfdir}/pulse/default.d/ +} + + do_install_append() { # Install pulseaudio systemd service if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then @@ -26,3 +38,4 @@ FILES_${PN}-server += " \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/pulseaudio.service', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/default.target.wants/pulseaudio.service', '', d)} \ " + diff --git a/meta-agl-profile-core/recipes-core/images/agl-image-boot.bb b/meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb index 84cdbcf31..84cdbcf31 100644 --- a/meta-agl-profile-core/recipes-core/images/agl-image-boot.bb +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-boot.bb diff --git a/meta-agl-profile-core/recipes-core/images/agl-image-boot.inc b/meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc index 825393978..825393978 100644 --- a/meta-agl-profile-core/recipes-core/images/agl-image-boot.inc +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-boot.inc diff --git a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi-crosssdk.bb b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb index 0303d051d..164e1e9f5 100644..100755 --- a/meta-agl-profile-core/recipes-ivi/images/agl-image-ivi-crosssdk.bb +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb @@ -1,15 +1,15 @@ -SUMMARY = "Cross SDK of AGL Distribution for IVI profile" +SUMMARY = "Cross SDK of Full AGL Distribution for core profile" -DESCRIPTION = "Basic image for baseline of AGL Distribution for IVI profile. \ +DESCRIPTION = "SDK image for full AGL Distribution for IVI profile. \ It includes the full meta-toolchain, plus developement headers and libraries \ to form a standalone cross SDK." -require agl-image-ivi.bb +require agl-image-minimal.bb LICENSE = "MIT" -IMAGE_FEATURES += "dev-pkgs" -IMAGE_INSTALL += "kernel-dev" +IMAGE_FEATURES_append = " dev-pkgs" +IMAGE_INSTALL_append = " kernel-dev kernel-devsrc" inherit populate_sdk @@ -17,3 +17,4 @@ inherit populate_sdk # Both exec "createrepo" on the same directory, and so one of them # can failed (randomly). addtask do_populate_sdk after do_rootfs + diff --git a/meta-agl-profile-core/recipes-core/images/agl-image-minimal-qa.bb b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb index b162f2904..b162f2904 100644 --- a/meta-agl-profile-core/recipes-core/images/agl-image-minimal-qa.bb +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-qa.bb diff --git a/meta-agl-profile-core/recipes-core/images/agl-image-minimal.bb b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb index 1fd213d0f..1fd213d0f 100644 --- a/meta-agl-profile-core/recipes-core/images/agl-image-minimal.bb +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.bb diff --git a/meta-agl-profile-core/recipes-core/images/agl-image-minimal.inc b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc index 825393978..825393978 100644 --- a/meta-agl-profile-core/recipes-core/images/agl-image-minimal.inc +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal.inc diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-boot-agl.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb index c9d679879..c9d679879 100644 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-core-boot-agl.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-connectivity.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb index e909d5e5f..38d44995c 100644 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-connectivity.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb @@ -12,4 +12,5 @@ ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ dhcp-server \ ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client connman-tests connman-tools connman-ncurses','',d)} \ + rtl-sdr \ " diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-multimedia.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-multimedia.bb new file mode 100644 index 000000000..a56aa5070 --- /dev/null +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-multimedia.bb @@ -0,0 +1,27 @@ +SUMMARY = "The software for application framework of AGL IVI profile" +DESCRIPTION = "A set of packages belong to AGL application framework which required by \ +Multimedia Subsystem" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-core-multimedia \ + " + +RDEPENDS_${PN} += "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-audio-4a-framework', '' , 'agl-audio-plugin', d)} \ + alsa-utils \ + pulseaudio-server \ + pulseaudio-misc \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '\ + pulseaudio-module-bluetooth-discover \ + pulseaudio-module-bluetooth-policy \ + pulseaudio-module-bluez5-discover \ + pulseaudio-module-bluez5-device \ + pulseaudio-module-switch-on-connect \ + pulseaudio-module-loopback \ + ','', d)} \ + gstreamer1.0-meta-base \ + " diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-navigation.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-navigation.bb new file mode 100644 index 000000000..daebe4bde --- /dev/null +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-navigation.bb @@ -0,0 +1,16 @@ +SUMMARY = "The software for application framework of AGL IVI profile" +DESCRIPTION = "A set of packages belong to AGL application framework which required by \ +Navigation and Location-Based Services Subsystem" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-core-navigation \ + " + +RDEPENDS_${PN} += "\ + gpsd \ + geoclue \ + " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-os-commonlibs.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb index c44166e12..aef732838 100644 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-core-os-commonlibs.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb @@ -1,4 +1,5 @@ -DESCRIPTION = "The minimal set of packages for Operating System and Common libraries Subsystem" +SUMMARY = "The packages of middlewares for AGL IVI profile" +DESCRIPTION = "The set of packages required by Operating System and Common libraries Subsystem" LICENSE = "MIT" inherit packagegroup diff --git a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-os-commonlibs.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb index 0a9de8d5f..0ae5c77a3 100644 --- a/meta-agl-profile-core/recipes-ivi/packagegroups/packagegroup-agl-ivi-os-commonlibs.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb @@ -5,7 +5,7 @@ LICENSE = "MIT" inherit packagegroup PACKAGES = "\ - packagegroup-agl-ivi-os-commonlibs \ + packagegroup-agl-core-security \ " ALLOW_EMPTY_${PN} = "1" diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb new file mode 100644 index 000000000..f5a53461a --- /dev/null +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "The minimal set of packages for Connectivity Subsystem" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-core-services \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ +agl-service-bluetooth \ +agl-service-can-low-level \ +agl-service-data-persistence \ +agl-service-geoclue \ +agl-service-geofence \ +agl-service-gps \ +agl-service-identity-agent \ +agl-service-mediascanner \ +agl-service-navigation \ +agl-service-nfc \ +agl-service-radio \ +agl-service-signal-composer \ +agl-service-steering-wheel \ +agl-service-unicens \ +agl-service-weather \ +agl-service-wifi \ +high-level-viwi-service \ + " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-image-boot.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb index 29f859c49..ba7ccdd00 100644 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-image-boot.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb @@ -10,7 +10,7 @@ PACKAGES = "\ ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ - packagegroup-core-boot-agl \ + packagegroup-agl-core-boot \ " diff --git a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-image-minimal.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb index 630c11d43..027cf6b23 100644 --- a/meta-agl-profile-core/recipes-core/packagegroups/packagegroup-agl-image-minimal.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb @@ -5,23 +5,23 @@ inherit packagegroup PACKAGES = "\ packagegroup-agl-image-minimal \ + profile-agl-minimal \ " ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ - packagegroup-core-boot-agl \ + packagegroup-agl-core-boot \ " RDEPENDS_${PN} += "\ - packagegroup-agl-core-automotive \ packagegroup-agl-core-connectivity \ - packagegroup-agl-core-graphics \ + packagegroup-agl-core-navigation \ packagegroup-agl-core-multimedia \ - packagegroup-agl-core-navi-lbs \ packagegroup-agl-core-os-commonlibs \ - packagegroup-agl-core-speech-services \ + packagegroup-agl-core-services \ packagegroup-agl-core-security \ - packagegroup-agl-core-kernel \ " + +RDEPENDS_profile-agl-minimal = "${PN}" |