mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-05 21:37:15 +02:00
This updates ofono to 1.21, adds a patch upstreamed to ofono but not merged in time for the 1.21 release, and installs the ofono udev rules.
105 lines
2.6 KiB
Diff
105 lines
2.6 KiB
Diff
From 20642bfed99dac5559f88743c3043f33fa3e7796 Mon Sep 17 00:00:00 2001
|
|
From: Clayton Craft <clayton@craftyguy.net>
|
|
Date: Tue, 26 Sep 2017 19:42:11 -0700
|
|
Subject: [PATCH] nokia-gpio: do not create links to gpios in /dev/cmt
|
|
|
|
The nokia-gpio plugin should not try to create symlinks to relevant gpio
|
|
pins under /dev/cmt, since the location it is looking is no longer
|
|
correct on newer kernels and it might change again in the future. This
|
|
patch removes code from nokia-gpio that tries to create a symlink.
|
|
|
|
Users will now need to symlink the modem gpios to /dev/cmt themselves.
|
|
On the 4.13 kernel, this can be done by, for example, adding a udev rule
|
|
to:
|
|
# ln -sf /sys/bus/hsi/devices/n900-modem /dev/cmt
|
|
---
|
|
plugins/nokia-gpio.c | 67 ++++------------------------------------------------
|
|
1 file changed, 4 insertions(+), 63 deletions(-)
|
|
|
|
diff --git a/plugins/nokia-gpio.c b/plugins/nokia-gpio.c
|
|
index 7a93106c..1d014337 100644
|
|
--- a/plugins/nokia-gpio.c
|
|
+++ b/plugins/nokia-gpio.c
|
|
@@ -632,74 +632,15 @@ static void phonet_status_cb(GIsiModem *idx, enum GIsiPhonetLinkState state,
|
|
|
|
static int gpio_probe_links(void)
|
|
{
|
|
- char const *gpiodir = "/sys/class/gpio";
|
|
char const *cmtdir = "/dev/cmt";
|
|
- DIR *gpio;
|
|
- struct dirent *d;
|
|
|
|
- if (file_exists(cmtdir)) {
|
|
- DBG("Using %s", cmtdir);
|
|
- return 0;
|
|
- }
|
|
-
|
|
- DBG("Using %s: trying to make links to %s", gpiodir, cmtdir);
|
|
-
|
|
- if (!dir_exists(cmtdir)) {
|
|
- if (mkdir(cmtdir, 0755) == -1) {
|
|
- DBG("%s: %s", cmtdir, strerror(errno));
|
|
- return -(errno = ENODEV);
|
|
- }
|
|
- }
|
|
-
|
|
- gpio = opendir(gpiodir);
|
|
- if (gpio == NULL) {
|
|
- DBG("%s: %s", "gpiodir", strerror(errno));
|
|
+ if (!file_exists(cmtdir)) {
|
|
+ DBG("%s: %s", cmtdir, strerror(errno));
|
|
return -(errno = ENODEV);
|
|
}
|
|
|
|
- while ((d = readdir(gpio)) != NULL) {
|
|
- char nn[PATH_MAX], name[PATH_MAX], from[PATH_MAX], to[PATH_MAX];
|
|
- FILE *nf;
|
|
- size_t len;
|
|
-
|
|
- snprintf(nn, sizeof nn, "%s/%s/name", gpiodir, d->d_name);
|
|
-
|
|
- nf = fopen(nn, "rb");
|
|
- if (nf == NULL) {
|
|
- DBG("%s: %s", nn, strerror(errno));
|
|
- continue;
|
|
- }
|
|
-
|
|
- len = fread(name, sizeof name, 1, nf);
|
|
-
|
|
- if (ferror(nf)) {
|
|
- DBG("read from %s: %s", nn, strerror(errno));
|
|
- fclose(nf);
|
|
- continue;
|
|
- }
|
|
-
|
|
- fclose(nf);
|
|
-
|
|
- if (len < 4)
|
|
- continue;
|
|
-
|
|
- name[--len] = '\0';
|
|
-
|
|
- if (strncmp(name, "cmt_", 4))
|
|
- continue;
|
|
-
|
|
- snprintf(from, sizeof from, "%s/%s", gpiodir, d->d_name);
|
|
- snprintf(to, sizeof to, "%s/%s", cmtdir, name);
|
|
-
|
|
- if (symlink(from, to) == -1)
|
|
- DBG("%s: %s", to, strerror(errno));
|
|
- }
|
|
-
|
|
- DBG("%s: %s", "/sys/class/gpio", strerror(errno));
|
|
-
|
|
- (void) closedir(gpio);
|
|
-
|
|
- return -(errno = ENODEV);
|
|
+ DBG("Using %s", cmtdir);
|
|
+ return 0;
|
|
}
|
|
|
|
|
|
--
|
|
2.14.1
|
|
|