aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-03-05 17:58:52 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2022-02-02 13:29:15 +0100
commit7e4f0e079ac308510c3e34a2abf721ac1a2edab2 (patch)
treed96a6effc263134c6ac25298af68a7dfaa465fa5
parent172740cc44843db467eef94671d10662c26be947 (diff)
downloadhardware_replicant_libsamsung-ipc-7e4f0e079ac308510c3e34a2abf721ac1a2edab2.tar.gz
hardware_replicant_libsamsung-ipc-7e4f0e079ac308510c3e34a2abf721ac1a2edab2.tar.bz2
hardware_replicant_libsamsung-ipc-7e4f0e079ac308510c3e34a2abf721ac1a2edab2.zip
device: generic: Simplify poll and report errors
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r--samsung-ipc/devices/generic/generic.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/samsung-ipc/devices/generic/generic.c b/samsung-ipc/devices/generic/generic.c
index 37758ba..cb5f619 100644
--- a/samsung-ipc/devices/generic/generic.c
+++ b/samsung-ipc/devices/generic/generic.c
@@ -150,7 +150,8 @@ int xmm626_kernel_linux_modem_open(struct ipc_client *client, int type)
while (fd < 0 && i < 30) {
i++;
usleep(30000);
- ipc_client_log(client, "%s: type: %d", __func__, type);
+ ipc_client_log(client, "%s: client type: %s", __func__,
+ ipc_client_type_string(type));
switch (type) {
case IPC_CLIENT_TYPE_FMT:
err = 0;
@@ -182,7 +183,8 @@ int xmm626_kernel_linux_modem_open(struct ipc_client *client, int type)
}
break;
default:
- ipc_client_log(client, "%s: unknown type\n", __func__);
+ ipc_client_log(client, "%s: unknown client type %s\n",
+ __func__, ipc_client_type_string(type));
return -1;
}
}
@@ -560,12 +562,19 @@ int generic_poll(__attribute__((unused)) struct ipc_client *client,
ipc_client_log(client, "%s: transport_data->fd: %d", __func__, transport_data->fd);
#endif
rc = poll(&fd, 1, -1);
+ if (rc == -1) {
+ rc = errno;
+ ipc_client_log(client,
+ "%s: poll failed with error %d: %s", __func__,
+ rc, strerror(rc));
+ return -1;
+ }
#if GENERIC_DEBUG
ipc_client_log(client, "%s: poll: %d", __func__, rc);
#endif
- return rc - 1;
+ return 0;
}