Re: libQMI - developed and extended….

Markus Gothe nietzsche at lysator.liu.se
Mon Oct 24 09:07:07 PDT 2011


24 okt 2011 kl. 16:35 skrev Dan Williams <dcbw at redhat.com>:

> On Sun, 2011-10-23 at 16:50 +0200, Markus Gothe wrote:
>> Last night I sat up hacking at the GobiDrivers and figured out a way to speedup the probing of modems (and some other tweaks)... By whitelisting the EPs for the specific VID (& PID)... Pretty much inspired by the option and sierra-net drivers. Now from taking a very long time on probing non-Gobi-modems it's is blazing fast. ;-) Apparently I applied the endian-fixes correctly, but one thing bothers me... the MEID. What is it and how is it represented. I know it is like 14 bytes. (Fixing that to be endian-wise will make me go crazy on bit-operations ;-) )...
> 
> It's the Mobile Equipment Identifier, which is the CDMA equivalent of
> the IMEI that GSM/UMTS/LTE use.  All devices that support CDMA/EVDO will
> have an MEID.

This explains things well I'll make a function for arbitrary length (read: slow) byteswapping...
> 
> But good work on making that part faster, the code there does a lot of
> stuff it doesn't really need to do...
> 
> In the end though, a lot of the device detection code in there is
> completely bogus.  What the process *should* be is to grab the port's
> kernel driver name via udev, and if the device is driven by qcserial or
> qcnet (when that ever gets merged), then handle it.  The code does a lot
> of sysfs parkour that could be completely eliminated by just talking to
> udev instead.

Will udev is nice it doesnt fit into the embedded industry where the memory footprint is thight. I suggest keeping the old way and implement udev and use an #ifdef to define which method to use.

The option driver works instead of Gobiserial hanging the kernel.

> 
>> Elly, I see in the Chroniuom src that you've replaced the khtread with a workqueue. What's the reason for this and not using a tasklet?
> 
> That I'm not 100% sure about.

All I know is that the kthread polling is dead slow on embedded systems: Think 200MHz RISC CPU. Maybe I will have to do some inline asm... However the issues we experienced with unloading the driver was fixed by my optimization.

//Markus
> 
> Dan
> 
> _______________________________________________
> libqmi-devel mailing list
> libqmi-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libqmi-devel


More information about the libqmi-devel mailing list