summaryrefslogtreecommitdiff
path: root/sys/dev/usb/if_umb.h
diff options
context:
space:
mode:
authorGerhard Roth <gerhard@cvs.openbsd.org>2016-11-21 08:19:37 +0000
committerGerhard Roth <gerhard@cvs.openbsd.org>2016-11-21 08:19:37 +0000
commit1b3d034976cd7226041228076082d1c75d07c0aa (patch)
tree480b3859c17218242d79bb61858e5b9f4ecf83bd /sys/dev/usb/if_umb.h
parent2f79d357541137a60aed93e3dbcef59686f47dba (diff)
Some MBIM devices need a FCC Authentication before they're willing to
turn on the radio. This is done by encapsulating QMI requests inside a MBIM message. Based on prio work by sthen@, tested by Bryan Vyhmeister. ok sthen@
Diffstat (limited to 'sys/dev/usb/if_umb.h')
-rw-r--r--sys/dev/usb/if_umb.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/dev/usb/if_umb.h b/sys/dev/usb/if_umb.h
index 79adc02c04b..9ac11f3f53f 100644
--- a/sys/dev/usb/if_umb.h
+++ b/sys/dev/usb/if_umb.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_umb.h,v 1.1 2016/06/15 19:39:34 gerhard Exp $ */
+/* $OpenBSD: if_umb.h,v 1.2 2016/11/21 08:19:36 gerhard Exp $ */
/*
* Copyright (c) 2016 genua mbH
@@ -220,6 +220,7 @@ umb_val2descr(const struct umb_valdescr *vdp, int val)
enum umb_state {
UMB_S_DOWN = 0, /* interface down */
UMB_S_OPEN, /* MBIM device has been opened */
+ UMB_S_CID, /* QMI client id allocated */
UMB_S_RADIO, /* radio is on */
UMB_S_SIMREADY, /* SIM is ready */
UMB_S_ATTACHED, /* packet service is attached */
@@ -228,11 +229,12 @@ enum umb_state {
};
#define UMB_INTERNAL_STATE_DESCRIPTIONS { \
- { UMB_S_DOWN, "down" }, \
- { UMB_S_OPEN, "open" }, \
+ { UMB_S_DOWN, "down" }, \
+ { UMB_S_OPEN, "open" }, \
+ { UMB_S_CID, "CID allocated" }, \
{ UMB_S_RADIO, "radio on" }, \
{ UMB_S_SIMREADY, "SIM is ready" }, \
- { UMB_S_ATTACHED, "attached" }, \
+ { UMB_S_ATTACHED, "attached" }, \
{ UMB_S_CONNECTED, "connected" }, \
{ UMB_S_UP, "up" }, \
{ 0, NULL } }
@@ -337,6 +339,10 @@ struct umb_softc {
int sc_maxpktlen;
int sc_maxsessions;
+#define UMBFLG_FCC_AUTH_REQUIRED 0x0001
+ uint32_t sc_flags;
+ int sc_cid;
+
struct usb_task sc_umb_task;
struct usb_task sc_get_response_task;
int sc_nresp;