[PATCH V5 net-next 0/3] The huawei_cdc_ncm driver
Enrico Mioso
mrkiko.rs at gmail.com
Mon Sep 30 04:27:38 PDT 2013
Oh - I'm so happy about that!!
This really makes me feel very happy - being able to improve the situation is
just fantastic!
Thank you for your help and review! Now let's try to fix the code a little...
:)
On Mon, 30 Sep 2013, Bj?rn Mork wrote:
==Date: Mon, 30 Sep 2013 10:56:23 +0200
==From: Bj?rn Mork <bjorn at mork.no>
==To: Enrico Mioso <mrkiko.rs at gmail.com>
==Cc: Oliver Neukum <oliver at neukum.org>,
== Greg Kroah-Hartman <gregkh at linuxfoundation.org>,
== David S. Miller <davem at davemloft.net>,
== Steve Glendinning <steve.glendinning at shawell.net>,
== Robert de Vries <rhdv at xs4all.nl>, Hayes Wang <hayeswang at realtek.com>,
== Freddy Xin <freddy at asix.com.tw>, Liu Junliang <liujunliang_ljl at 163.com>,
== open list <linux-kernel at vger.kernel.org>,
== "open list:USB NETWORKING DR..." <linux-usb at vger.kernel.org>,
== "open list:NETWORKING DRIVERS" <netdev at vger.kernel.org>,
== ModemManager-devel at lists.freedesktop.org
==Subject: Re: [PATCH V5 net-next 0/3] The huawei_cdc_ncm driver
==
==Enrico Mioso <mrkiko.rs at gmail.com> writes:
==
==> So this is a new, revised, edition of the huawei_cdc_ncm.c driver, which
==> supports devices resembling the NCM standard, but using it also as a mean
==> to encapsulate other protocols, as is the case for the Huawei E3131 and
==> E3251 modem devices.
==> Some precisations are needed however - and I encourage discussion on this: and
==> that's why I'm sending this message with a broader CC.
==> Merging those patches might change:
==> - the way Modem Manager interacts with those devices
==> - some regressions might be possible if there are some unknown firmware
==> variants around (Franko?)
==>
==> First of all: I observed the behaviours of two devices.
==> Huawei E3131: this device doesn't accept NDIS setup requests unless they're
==> sent via the embedded AT channel exposed by this driver.
==> So actually we gain funcionality in this case!
==>
==> The second case, is the Huawei E3251: which works with standard NCM driver,
==> still exposing an AT embedded channel. Whith this patch set applied, you gain
==> some funcionality, loosing the ability to catch standard NCM events for now.
==> The device will work in both ways with no problems, but this has to be
==> acknowledged and discussed. Might be we can develop this driver further to
==> change this, when more devices are tested.
==
==Your driver, and the cdc-wdm subdriver API in general, could certainly
==be extended to support standard NCM events. There have been some
==discussions in the linux-usb list already on how to best do this. I
==believe this message from Oliver is the current conclusion to that
==discussion: http://www.spinics.net/lists/linux-usb/msg70140.html
==
==I.e:
== - extend the cdc-wdm subdriver API by creating a struct holding all
== necessary callbacks, and use this struct instead of the current
== single "manage_power" callback, and
== - create one callback hook per notification you want to handle, with
== clear semantics and reasonable names
==
==But I still believe your driver should go in as it is for now. As you
==note, it is required for the E3131. And the same is most likely the
==case for other devices in the same family.
==
==Handling the NCM notifications can always be added later. IMHO, they can
==be considered optional given that a separate management channel is
==required in any case to configure these devices and start/stop the
==connection. The NCM events you lose compared to cdc_ncm are
==NETWORK_CONNECTION and SPEED_CHANGE. The first one is useful as it is
==implemented in cdc_ncm because it controls the network device link
==state, but it is still redundant for devices like these where a managing
==userspace application is required and the connection events are
==available via the management channel. The implementation of
==SPEED_CHANGE events is less useful. The cdc_ncm driver doesn't use the
==received speed data for anything except printing an informational
==message. I don't think implementing it in your driver will gain you
==anything.
==
==> We where thinking Huawei changed their interfaces on new devices - but probably
==> this driver only works around a nice firmware bug present in E3131, which
==> prevented the modem from being used in NDIS mode.
==
==I am not sure this is a firmware bug. It could very well be by design,
==and the differences in observed behaviour could be just artifacts of the
==interface implementation on top of different chipsets and/or base
==firmwares. AFAIK, Huawei have never officially supported the serial
==port for network device management on this class of devices. The
==embedded AT channel is most likely the only AT command channel intended
==for network device management, even on the devices with serial ports.
==
==> I think committing this is definitely wortth-while, since it will allow for
==> more Huawei devices to be used without serial connection. Some devices like the
==> E3251 also, reports some status information only via the embedded AT channel,
==> at least in my case.
==> Note: I'm not subscribed to any list except the Modem Manager's one, so please
==> CC me, thanks!!
==
==Yes, this is most definitely a driver worth being added. There are a
==number of devices which just cannot be made working in Linux without it
==because the embedded management channel is the only one available.
==
==I don't know if you are aware of this, but I have pointed a few people
==to your previous submission attempts and there are therefore some
==success stories around already. An example:
==http://lists.freedesktop.org/archives/libqmi-devel/2013-September/000650.html
==
==
==Bj?rn
==
More information about the ModemManager-devel
mailing list