diff options
author | Sanchayan Maity <maitysanchayan@gmail.com> | 2016-03-03 19:49:15 +0530 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2016-03-14 14:26:27 +0100 |
commit | 4eb2bbe43a53d453787a2cf5a85a565345233705 (patch) | |
tree | 0cbcf6ac8c95cc1505a5a29176d8b7ff01db53fa | |
parent | 21860b7990513471b84621b055c25473e9290307 (diff) |
recipes-support: usb-suspend-resume: Add USB suspend resume fix for Vybrid
Add systemd service which utilises systemd's suspend resume hooks
to excute scripts which take care of unbinding and binding the
necessary configurations and usb driver during suspend and resume
respectively.
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
5 files changed, 70 insertions, 0 deletions
diff --git a/recipes-support/usb-suspend-resume/files/usb-resume.service b/recipes-support/usb-suspend-resume/files/usb-resume.service new file mode 100644 index 0000000..3bd9713 --- /dev/null +++ b/recipes-support/usb-suspend-resume/files/usb-resume.service @@ -0,0 +1,10 @@ +[Unit] +Description=User resume actions +After=suspend.target + +[Service] +Type=simple +ExecStart=-/usr/bin/usb-resume.sh + +[Install] +WantedBy=suspend.target diff --git a/recipes-support/usb-suspend-resume/files/usb-resume.sh b/recipes-support/usb-suspend-resume/files/usb-resume.sh new file mode 100644 index 0000000..2584813 --- /dev/null +++ b/recipes-support/usb-suspend-resume/files/usb-resume.sh @@ -0,0 +1,11 @@ +#!/bin/sh +echo ci_hdrc.1 > /sys/bus/platform/drivers/ci_hdrc/unbind +echo ci_hdrc.1 > /sys/bus/platform/drivers/ci_hdrc/bind +echo ci_hdrc.0 > /sys/bus/platform/drivers/ci_hdrc/unbind +echo ci_hdrc.0 > /sys/bus/platform/drivers/ci_hdrc/bind +/bin/sh -c '/bin/cat /proc/device-tree/model > \ + /sys/kernel/config/usb_gadget/g1/strings/0x409/product' +/bin/sh -c '/bin/cat /proc/device-tree/serial-number > \ + /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber' +/bin/sh -c '/bin/echo `ls /sys/class/udc/` > \ + /sys/kernel/config/usb_gadget/g1/UDC' diff --git a/recipes-support/usb-suspend-resume/files/usb-suspend.service b/recipes-support/usb-suspend-resume/files/usb-suspend.service new file mode 100644 index 0000000..e56630d --- /dev/null +++ b/recipes-support/usb-suspend-resume/files/usb-suspend.service @@ -0,0 +1,10 @@ +[Unit] +Description=User suspend actions +Before=sleep.target + +[Service] +Type=simple +ExecStart=-/usr/bin/usb-suspend.sh + +[Install] +WantedBy=sleep.target diff --git a/recipes-support/usb-suspend-resume/files/usb-suspend.sh b/recipes-support/usb-suspend-resume/files/usb-suspend.sh new file mode 100644 index 0000000..4a2df84 --- /dev/null +++ b/recipes-support/usb-suspend-resume/files/usb-suspend.sh @@ -0,0 +1,2 @@ +#!/bin/sh +echo "" > /sys/kernel/config/usb_gadget/g1/UDC diff --git a/recipes-support/usb-suspend-resume/usb-suspend-resume.bb b/recipes-support/usb-suspend-resume/usb-suspend-resume.bb new file mode 100644 index 0000000..d555b79 --- /dev/null +++ b/recipes-support/usb-suspend-resume/usb-suspend-resume.bb @@ -0,0 +1,37 @@ +SECTION = "USB" +SUMMARY = "Fix for USB suspend resume on Vybrid" +RDEPENDS_${PN} = "" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" + +PR = "r1" + +inherit allarch systemd + +SRC_URI = " \ + file://usb-suspend.sh \ + file://usb-resume.sh \ + file://usb-suspend.service \ + file://usb-resume.service \ +" + +do_install() { + install -d ${D}/${bindir} + install -m 0755 ${WORKDIR}/usb-suspend.sh ${D}/${bindir}/ + install -m 0755 ${WORKDIR}/usb-resume.sh ${D}/${bindir}/ + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/usb-suspend.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/usb-resume.service ${D}${systemd_unitdir}/system +} + +FILES_${PN} += " \ + ${systemd_unitdir}/system \ +" + +NATIVE_SYSTEMD_SUPPORT = "1" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "usb-suspend.service usb-resume.service" +SYSTEMD_AUTO_ENABLE_mx6 = "disable" +SYSTEMD_AUTO_ENABLE_t30 = "disable" +SYSTEMD_AUTO_ENABLE_t20 = "disable" |