From c8df7ada33d19859f3f4edf9df4cbdd7ff2ee891 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Sat, 9 May 2020 12:29:22 -0700 Subject: Synced to upstream --- PKGBUILD | 15 +++++++++++---- audio_jack_plugged_in.sh | 8 ++++++-- pinebookpro-audio.install | 8 ++++++++ pinebookpro-audio.service | 10 ++++++++++ sync.sh | 17 +++++++++++++++++ 5 files changed, 52 insertions(+), 6 deletions(-) mode change 100755 => 100644 audio_jack_plugged_in.sh create mode 100644 pinebookpro-audio.install create mode 100644 pinebookpro-audio.service create mode 100644 sync.sh diff --git a/PKGBUILD b/PKGBUILD index 8f3cd75..4622b22 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -7,19 +7,26 @@ pkgname=pinebookpro-audio pkgver=1 -pkgrel=1 +pkgrel=2.2 pkgdesc="Pine64 Pinebook Pro - Audo Switch Audio Output" #arch=('x86_64') arch=('aarch64') url="https://gitlab.manjaro.org/tsys/hpdet-pinebookpro" license=('GPL') depends=('acpid' 'alsa-utils') +install=${pkgname}.install source=("audio_jack_plugged_in" - 'audio_jack_plugged_in.sh') -md5sums=('03a8c88234b393f5b1c38e75ff68aa2a' - '4d395caad54fb1718a503754c034ebc2') + "audio_jack_plugged_in.sh" + "sync.sh" + "pinebookpro-audio.service") +b2sums=('b802737ab0cec94fe0417d9671b6301d888c2535fabe346fc5123bdf09e2d8ee5b7c0f0414b1dab04912e84805ce8b36e75c707533010d97b1792096cc9a6ad4' + '9820bf9e827f534e37f0dc4053e405dc36c08dedf3c3eb20bc97083f27af60975f5f4834233dec3d5bfb3778d047b61f6daf38aab3f1c237cd5a775c60f4d5c1' + '8e60ab4bfe47b689ac53666d0debb28123b893cf2d57a44b4127482a6fc91dc2387945fb63dead00e2a9bc281c07041b6b5c35edfb2299eff497cf0d5785337a' + '3ff0e93936656bda5e317b57e620073f8331b7d61cc6ec2dc2ce73fbf52c399b4fb778ef310afed79294f0c2eaa816911b781c7166cef5b461fc625175c905fa') package() { install -Dm644 "${srcdir}/audio_jack_plugged_in" -t "${pkgdir}/etc/acpi/events/" install -Dm755 "${srcdir}/audio_jack_plugged_in.sh" -t "${pkgdir}/etc/acpi/" + install -Dm755 "${srcdir}/sync.sh" -t "${pkgdir}/usr/bin/" + install -Dm644 "${srcdir}/pinebookpro-audio.service" -t "${pkgdir}/usr/lib/systemd/system/" } diff --git a/audio_jack_plugged_in.sh b/audio_jack_plugged_in.sh old mode 100755 new mode 100644 index c8277e7..af121a8 --- a/audio_jack_plugged_in.sh +++ b/audio_jack_plugged_in.sh @@ -1,6 +1,10 @@ #!/usr/bin/env sh case "$3" in - plug) amixer sset Speaker off ;; - unplug) amixer sset Speaker on ;; +plug) + amixer sset Speaker off + amixer sset 'Playback Polarity' Normal ;; + unplug) + amixer sset 'Playback Polarity' 'R Invert' + amixer sset Speaker on ;; esac diff --git a/pinebookpro-audio.install b/pinebookpro-audio.install new file mode 100644 index 0000000..9008ab3 --- /dev/null +++ b/pinebookpro-audio.install @@ -0,0 +1,8 @@ +post_upgrade() { + echo "Enabling acpid ..." + systemctl enable --now acpid + echo "Restarting acpid ..." + systemctl restart acpid + echo "Enabling hpdet state sync at boot ..." + systemctl enable --now pinebookpro-audio.service +} diff --git a/pinebookpro-audio.service b/pinebookpro-audio.service new file mode 100644 index 0000000..e1b09dd --- /dev/null +++ b/pinebookpro-audio.service @@ -0,0 +1,10 @@ +[Unit] +Description=Sync initial headphone plug state + +[Service] +Type=oneshot +ExecStart=/usr/bin/sync.sh +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/sync.sh b/sync.sh new file mode 100644 index 0000000..9a46879 --- /dev/null +++ b/sync.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env sh + +set -e + +# Could get this from dt, fixed for now +GPIO=8 + +# Headphone detect gpios are exported by default +value="$(cat /sys/class/gpio/gpio${GPIO}/value)" + +if [ "$value" -gt 0 ]; then + action=plug +else + action=unplug +fi + +/etc/acpi/audio_jack_plugged_in.sh jack/headphone HEADPHONE $action -- cgit v1.2.1