Compare commits

...
7 changed files with 238 additions and 1 deletions

No files matched your search

@@ -25,6 +25,7 @@ makedepends="
"
source="https://gitlab.com/postmarketOS/linux-postmarketos/-/archive/$_commit/linux-postmarketos-$_commit.tar.gz
config-$_flavor.armv7
hammerhead-proximity.patch
"
builddir="$srcdir/linux-postmarketos-$_commit"
@@ -54,4 +55,5 @@ package() {
}
sha512sums="27393de29fb1e08867f6572194625453a220cc0fb2d884c73da7f12ebef86912bf96ba1cac881639e44b6b3da9d3cbd44951488b2e019f5b0d597b284588f39f linux-postmarketos-901cb33cc2ea167dbb1de7032815ea65fd49d81f.tar.gz
19846a0d7c0e51de89bdfd517acaebc94a1478f0e7e1ff8d7666e7d9cc5a0dc5d7edf09fb413aeb37448aabe80b5457c6c07ece9f825c9507110b1588e7ce5a2 config-postmarketos-qcom-msm8974.armv7"
19846a0d7c0e51de89bdfd517acaebc94a1478f0e7e1ff8d7666e7d9cc5a0dc5d7edf09fb413aeb37448aabe80b5457c6c07ece9f825c9507110b1588e7ce5a2 config-postmarketos-qcom-msm8974.armv7
668c304e7a72fd2beb44db31a136531b786e44e6ecc4d5c6eb436ed85eb06aa403ce15852871ae0ccb107e9613ed62f57eb890657abab60c00a4ee5714a0f66a hammerhead-proximity.patch"
@@ -0,0 +1,77 @@
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
index fc619cb6f939..d492d9964fd2 100644
--- a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
@@ -677,6 +677,7 @@ avago_apds993@39 {
vddio-supply = <&pm8941_lvs1>;
led-max-microamp = <100000>;
amstaos,proximity-diodes = <0>;
+ proximity-near-level = <100>;
};
};
diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
index d79205361dfa..c2f55c2f504a 100644
--- a/drivers/iio/light/tsl2772.c
+++ b/drivers/iio/light/tsl2772.c
@@ -179,6 +179,7 @@ struct tsl2772_chip {
const struct tsl2772_chip_info *chip_info;
const struct iio_info *info;
s64 event_timestamp;
+ uint32_t near_level;
/*
* This structure is intentionally large to accommodate
* updates via sysfs.
@@ -614,6 +615,10 @@ static void tsl2772_parse_dt(struct tsl2772_chip *chip)
{
tsl2772_read_prox_led_current(chip);
tsl2772_read_prox_diodes(chip);
+
+ if (of_property_read_u32(chip->client->dev.of_node, "proximity-near-level",
+ &chip->near_level))
+ chip->near_level = 0;
}
/**
@@ -1512,6 +1517,25 @@ static const struct iio_event_spec tsl2772_events[] = {
},
};
+static ssize_t tsl2772_read_near_level(struct iio_dev *indio_dev,
+ uintptr_t priv,
+ const struct iio_chan_spec *chan,
+ char *buf)
+{
+ struct tsl2772_chip *chip = iio_priv(indio_dev);
+
+ return sprintf(buf, "%u\n", chip->near_level);
+}
+
+static const struct iio_chan_spec_ext_info tsl2772_ext_info[] = {
+ {
+ .name = "nearlevel",
+ .shared = IIO_SEPARATE,
+ .read = tsl2772_read_near_level,
+ },
+ { /* sentinel */ }
+};
+
static const struct tsl2772_chip_info tsl2772_chip_info_tbl[] = {
[ALS] = {
.channel_with_events = {
@@ -1716,6 +1740,7 @@ static const struct tsl2772_chip_info tsl2772_chip_info_tbl[] = {
BIT(IIO_CHAN_INFO_CALIBSCALE),
.event_spec = tsl2772_events,
.num_event_specs = ARRAY_SIZE(tsl2772_events),
+ .ext_info = tsl2772_ext_info,
},
},
.channel_without_events = {
@@ -1748,6 +1773,7 @@ static const struct tsl2772_chip_info tsl2772_chip_info_tbl[] = {
BIT(IIO_CHAN_INFO_CALIBSCALE),
.info_mask_separate_available =
BIT(IIO_CHAN_INFO_CALIBSCALE),
+ .ext_info = tsl2772_ext_info,
},
},
.chan_table_elements = 4,
@@ -0,0 +1,34 @@
It only needs systemd to determine the unit dir, so delete the dep for now.
From a1c5436d11e3e0dabc3cd236bf8175b13ac929cb Mon Sep 17 00:00:00 2001
From: Andrea Brancaleoni <abc@pompel.me>
Date: Fri, 23 Dec 2016 12:43:36 +0100
Subject: [PATCH] Revert "build: Check for .pc files before using them"
This reverts commit 78b4656fc24a1b21c948d8e68252f42df2a91735.
---
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index f8ded66..1d54698 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,14 +25,12 @@ AX_COMPILER_FLAGS([WARN_CFLAGS],[WARN_LDFLAGS])
GTK_DOC_CHECK([1.11],[--flavour no-tmpl])
-PKG_CHECK_EXISTS(udev, [], [AC_MSG_ERROR(udev development libraries are required)])
AC_ARG_WITH([udevrulesdir],
AS_HELP_STRING([--with-udevrulesdir=DIR], [Directory for udev rules]),
[],
[with_udevrulesdir=$($PKG_CONFIG --variable=udevdir udev)"/rules.d"])
AC_SUBST([udevrulesdir], [$with_udevrulesdir])
-PKG_CHECK_EXISTS(systemd, [], [AC_MSG_ERROR(systemd development libraries are required)])
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[],
--
2.11.0
@@ -0,0 +1,34 @@
From ed427251b703dc832a2051b5e4bdd1b51b99b115 Mon Sep 17 00:00:00 2001
From: Guido Günther <agx@sigxcpu.org>
Date: Wed, 25 Mar 2020 11:59:03 +0100
Subject: [PATCH] proximity: Get near-level from sysfs if available
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
DT based devices can set the near-level via sysfs. Parse it from
there too.
Signed-off-by: Guido Günther <agx@sigxcpu.org>
Closes: #297
---
src/drv-iio-poll-proximity.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/drv-iio-poll-proximity.c b/src/drv-iio-poll-proximity.c
index 98bacb1..432cda5 100644
--- a/src/drv-iio-poll-proximity.c
+++ b/src/drv-iio-poll-proximity.c
@@ -100,6 +100,9 @@ get_near_level (GUdevDevice *device)
gint near_level;
near_level = g_udev_device_get_property_as_int (device, PROXIMITY_NEAR_LEVEL);
+ if (!near_level)
+ near_level = g_udev_device_get_sysfs_attr_as_int (device, "in_proximity_nearlevel");
+
if (!near_level) {
g_warning ("Found proximity sensor but no " PROXIMITY_NEAR_LEVEL " udev property");
g_warning ("See https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/blob/master/README.md");
--
2.30.0
+52
View File
@@ -0,0 +1,52 @@
# Forked from Alpine INSERT-REASON-HERE (CHANGEME!)
pkgname=iio-sensor-proxy
pkgver=9999
_pkgver=3.0
pkgrel=0
pkgdesc="IIO sensors to D-Bus proxy"
url="https://developer.gnome.org/iio-sensor-proxy/1.0/"
arch="all"
license="GPL-2.0-or-later"
makedepends="eudev-dev libgudev-dev glib-dev autoconf automake libtool gtk+3.0-dev"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/uploads/de965bcb444552d328255639b241ce73/iio-sensor-proxy-$_pkgver.tar.xz
iio-sensor-proxy.initd
0001-Revert-build-Check-for-.pc-files-before-using-them.patch
0002-proximity-Get-near-level-from-sysfs-if-available.patch
proximity-hammerhead.patch
"
builddir="$srcdir/$pkgname-$_pkgver"
prepare() {
default_prepare
autoreconf -if
}
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--with-geoclue-user=geoclue
make
}
check() {
make check
}
package() {
make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
}
sha512sums="50e84a5df006c34db07532bdb583142723ad610ade7dc495d0c1b076c7ef84564a60202a8be378173a429bd04dee10e8b33e5b7acc4b3dd810755cb831ebf2ea iio-sensor-proxy-3.0.tar.xz
b0f2875074ff1211faeca3e29b32f60c5604ca31b6dac3d4d99f057ed32e2453aefc4495c34cf3885badacc7168b6c032f3d084052db52977bbe8438e76eac5f iio-sensor-proxy.initd
5480763f85cb22fd7b1b791609baa3a4b251fc30a025b40aee2de584fa114686bf181a87a249ba4b0cb9080881ff55498baa7e496513bc39fa1af7c43253c465 0001-Revert-build-Check-for-.pc-files-before-using-them.patch
ceda9e69c78a84e0f8dfd242e401ad4d84e58ef54ea46de284890896b7adf75ab4b66a1a58305e2f554861005ba941912558749d00963008f14642a66b311cf9 0002-proximity-Get-near-level-from-sysfs-if-available.patch
55921f6c2d994b070475dad51461b526600ac8bed504be911dcd601532a6e724835d126941bee1290f962cd6a16b4e537b655a48eba8ac424504c76eadd3177a proximity-hammerhead.patch"
@@ -0,0 +1,4 @@
#!/sbin/openrc-run
supervisor=supervise-daemon
command="/usr/sbin/iio-sensor-proxy"
@@ -0,0 +1,34 @@
diff --git a/data/80-iio-sensor-proxy.rules b/data/80-iio-sensor-proxy.rules
index 85d93f9..82c3bd5 100644
--- a/data/80-iio-sensor-proxy.rules
+++ b/data/80-iio-sensor-proxy.rules
@@ -14,6 +14,7 @@ SUBSYSTEM=="iio", TEST=="in_illuminance_raw", ENV{IIO_SENSOR_PROXY_TYPE}+="iio-p
SUBSYSTEM=="iio", TEST=="in_intensity_clear_raw", ENV{IIO_SENSOR_PROXY_TYPE}+="iio-poll-als"
SUBSYSTEM=="iio", TEST=="scan_elements/in_intensity_both_en", ENV{IIO_SENSOR_PROXY_TYPE}+="iio-buffer-als"
SUBSYSTEM=="iio", TEST=="in_proximity_raw", ENV{IIO_SENSOR_PROXY_TYPE}+="iio-poll-proximity"
+SUBSYSTEM=="iio", TEST=="in_proximity0_raw", ENV{IIO_SENSOR_PROXY_TYPE}+="iio-poll-proximity"
SUBSYSTEM=="input", ENV{ID_INPUT_ACCELEROMETER}=="1", ENV{IIO_SENSOR_PROXY_TYPE}+="input-accel"
ENV{IIO_SENSOR_PROXY_TYPE}=="", GOTO="iio_sensor_proxy_end"
diff --git a/src/drv-iio-poll-proximity.c b/src/drv-iio-poll-proximity.c
index 4d6f07b..1c49243 100644
--- a/src/drv-iio-poll-proximity.c
+++ b/src/drv-iio-poll-proximity.c
@@ -38,7 +38,7 @@ poll_proximity (gpointer user_data)
gdouble near_level = drv_data->near_level;
/* g_udev_device_get_sysfs_attr_as_int does not update when there's no event */
- prox = g_udev_device_get_sysfs_attr_as_int_uncached (drv_data->dev, "in_proximity_raw");
+ prox = g_udev_device_get_sysfs_attr_as_int_uncached (drv_data->dev, "in_proximity0_raw");
/* Use a margin so we don't trigger too often */
near_level *= (drv_data->last_level > near_level) ? PROXIMITY_WATER_MARK_LOW : PROXIMITY_WATER_MARK_HIGH;
readings.is_near = (prox > near_level) ? PROXIMITY_NEAR_TRUE : PROXIMITY_NEAR_FALSE;
@@ -81,7 +81,7 @@ get_near_level (GUdevDevice *device)
near_level = g_udev_device_get_property_as_int (device, PROXIMITY_NEAR_LEVEL);
if (!near_level)
- near_level = g_udev_device_get_sysfs_attr_as_int (device, "in_proximity_nearlevel");
+ near_level = g_udev_device_get_sysfs_attr_as_int (device, "in_proximity0_nearlevel");
if (!near_level) {
g_warning ("Found proximity sensor but no " PROXIMITY_NEAR_LEVEL " udev property");