From d4dfed2f548bdd6f503dd7965ff9996754bb69b3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rn=20Mork?= Date: Wed, 11 May 2016 13:24:02 +0200 Subject: [PATCH] get buffer size from driver MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Bjørn Mork --- mbim-dev.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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); } -- 2.25.1