From: Bjørn Mork Date: Wed, 11 May 2016 11:24:02 +0000 (+0200) Subject: get buffer size from driver X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d4dfed2f548bdd6f503dd7965ff9996754bb69b3;p=oweals%2Fumbim.git get buffer size from driver Signed-off-by: Bjørn Mork --- diff --git a/mbim-dev.c b/mbim-dev.c index 34bb2c2..dd1110d 100644 --- a/mbim-dev.c +++ b/mbim-dev.c @@ -12,6 +12,8 @@ * GNU General Public License for more details. */ +#include +#include #include #include @@ -132,13 +134,20 @@ mbim_recv(struct uloop_fd *u, unsigned int events) void mbim_open(const char *path) { + __u16 max; + int rc; + mbim_fd.cb = mbim_recv; mbim_fd.fd = open(path, O_RDWR); if (mbim_fd.fd < 1) { perror("open failed: "); exit(-1); } - mbim_bufsize = MBIM_BUFFER_SIZE; + rc = ioctl(mbim_fd.fd, IOCTL_WDM_MAX_COMMAND, &max); + if (!rc) + mbim_bufsize = max; + else + mbim_bufsize = 512; mbim_buffer = malloc(mbim_bufsize); uloop_fd_add(&mbim_fd, ULOOP_READ); }