From: Bryan Vyhmeister Subject: Re: [PATCH] umb(4) support for new DW5821e variant To: tech@openbsd.org Date: Wed, 7 Aug 2024 22:05:56 -0700 On Sun, Aug 04, 2024 at 10:44:08PM -0700, Bryan Vyhmeister wrote: > On Mon, Jul 29, 2024 at 02:12:49AM -0700, Bryan Vyhmeister wrote: > > Gerhard Roth helped add support for the original (non-eSIM) Dell DW5821e > > device to umb(4) years ago on a Dell Latitude 7300. The Dell Latitude > > Rugged 5430 can also be ordered with a Dell DW5821e Snapdragon X20 LTE > > card but this one comes with a different USB ID (0x81e0 instead of > > 0x81d7) and has the eSIM selected as the default SIM out of the box. The > > patch below adds support to usbdevs and if_umb.c for this new variant. > > If you have this card in a system and want to use a physical SIM like I > > do, you have to boot into a recent Ubuntu (I used 24.04 LTS on a USB > > drive) or other Linux distro with good mmcli support and run: > > > > sudo mmcli -m 0 --set-primary-sim-slot=1 > > > > Once this is done, Ubuntu or OpenBSD will happily connect using a SIM > > card in the physical SIM card slot. Your modem could be at slot 1 > > instead of 0 as above and the physical SIM slot can be 0 in some cases > > that people have posted online but, in my case, slot 1 is the physical > > SIM and slot 2 is the eSIM. If someone could ok and commit, I would > > greatly appreciate it. Thank you. > > I am reposting this patch with a slight change. I noticed with some > other USB devices that have multiple USB ID variants (i.e. Prism GT) > that the first had an added _1 and the second _2. With that in mind, I > changed the patch to provide DW5821E_1 and DW5821E_2 to replace only > having DW5821E. I then updated if_umb.c to match. Now that we have switched to 7.6-beta, I would really like to get this patch in the tree. It is a simple addition and I have been using this umb(4) device almost daily with no issues other than it being somewhat slow but that could be due to many other factors and is in line with other supported devices. Thank you. Bryan Index: sys/dev/usb/if_umb.c =================================================================== RCS file: /cvs/src/sys/dev/usb/if_umb.c,v diff -u -p -u -r1.58 if_umb.c --- sys/dev/usb/if_umb.c 23 May 2024 03:21:09 -0000 1.58 +++ sys/dev/usb/if_umb.c 5 Aug 2024 05:09:57 -0000 @@ -241,7 +241,13 @@ struct umb_quirk { int umb_match; }; const struct umb_quirk umb_quirks[] = { - { { USB_VENDOR_DELL, USB_PRODUCT_DELL_DW5821E }, + { { USB_VENDOR_DELL, USB_PRODUCT_DELL_DW5821E_1 }, + 0, + 2, + UMATCH_VENDOR_PRODUCT + }, + + { { USB_VENDOR_DELL, USB_PRODUCT_DELL_DW5821E_2 }, 0, 2, UMATCH_VENDOR_PRODUCT Index: sys/dev/usb/usbdevs =================================================================== RCS file: /cvs/src/sys/dev/usb/usbdevs,v diff -u -p -u -r1.766 usbdevs --- sys/dev/usb/usbdevs 29 May 2024 06:48:43 -0000 1.766 +++ sys/dev/usb/usbdevs 5 Aug 2024 05:09:40 -0000 @@ -1537,7 +1537,8 @@ product DELL PRISM_GT_2 0x8104 PrismGT product DELL W5500 0x8115 W5500 HSDPA product DELL U740 0x8135 U740 CDMA product DELL EU870D 0x8138 EU870D HSDPA -product DELL DW5821E 0x81d7 DW5821e LTE +product DELL DW5821E_1 0x81d7 DW5821e LTE +product DELL DW5821E_2 0x81e0 DW5821e LTE product DELL DW700 0x9500 DW700 GPS product DELL2 UPS 0xffff UPS