From 9b09564e31ce67eaf97c85296e61eab1e4b0ada2 Mon Sep 17 00:00:00 2001 From: Sanchayan Maity Date: Thu, 3 Mar 2016 19:49:15 +0530 Subject: 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 Signed-off-by: Stefan Agner --- .../usb-suspend-resume/files/usb-resume.service | 10 ++++++ .../usb-suspend-resume/files/usb-resume.sh | 11 +++++++ .../usb-suspend-resume/files/usb-suspend.service | 10 ++++++ .../usb-suspend-resume/files/usb-suspend.sh | 2 ++ .../usb-suspend-resume/usb-suspend-resume.bb | 37 ++++++++++++++++++++++ 5 files changed, 70 insertions(+) create mode 100644 recipes-support/usb-suspend-resume/files/usb-resume.service create mode 100644 recipes-support/usb-suspend-resume/files/usb-resume.sh create mode 100644 recipes-support/usb-suspend-resume/files/usb-suspend.service create mode 100644 recipes-support/usb-suspend-resume/files/usb-suspend.sh create mode 100644 recipes-support/usb-suspend-resume/usb-suspend-resume.bb (limited to 'recipes-support/usb-suspend-resume') 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" -- cgit v1.2.3