2023-09-12 09:42:53

by Bjørn Mork

[permalink] [raw]
Subject: Re: [PATCH net-next] qmi_wwan: Add rawip module param

Stefan x Nilsson <[email protected]> writes:

> Certain QMI modems will start communicating in rawip mode after
> bootup, and will not work properly if communication starts off in
> ethernet mode. So add a module parameter, rawip_as_default, that
> can be used to load the qmi driver in rawip mode.
>
> The advantage compared to changing rawip at a later point using
> sysfs is that the os will not detect the device and start talking
> to it while the driver is still in incorrect mode.
>
> Signed-off-by: Stefan x Nilsson <[email protected]>
> ---
> drivers/net/usb/qmi_wwan.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
> index 344af3c5c836..968c60ececf8 100644
> --- a/drivers/net/usb/qmi_wwan.c
> +++ b/drivers/net/usb/qmi_wwan.c
> @@ -46,6 +46,10 @@
> * commands on a serial interface
> */
>
> +/* Module parameters */
> +static bool rawip_as_default;
> +module_param(rawip_as_default, bool, 0644);
> +
> /* driver specific data */
> struct qmi_wwan_state {
> struct usb_driver *subdriver;
> @@ -843,6 +847,13 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
> }
> dev->net->netdev_ops = &qmi_wwan_netdev_ops;
> dev->net->sysfs_groups[0] = &qmi_wwan_sysfs_attr_group;
> +
> + /* Set the driver into rawip mode if requested by module param */
> + if (rawip_as_default) {
> + info->flags |= QMI_WWAN_FLAG_RAWIP;
> + qmi_wwan_netdev_setup(dev->net);
> + }
> +
> err:
> return status;
> }
>

NAK

There is no reason to start communicating with the device before
changing the framing, using the existing sysfs interface.

This seems to be a workaround for some userspace bug. I don't think we
yet another userspace knob for that. And certainly not one that applies
to every device.



Bjørn


2023-09-13 02:00:05

by Stefan x Nilsson

[permalink] [raw]
Subject: Re: [PATCH net-next] qmi_wwan: Add rawip module param

On 9/12/23 09:22, Bjørn Mork wrote:
> Stefan x Nilsson <[email protected]> writes:
>
>> Certain QMI modems will start communicating in rawip mode after
>> bootup, and will not work properly if communication starts off in
>> ethernet mode. So add a module parameter, rawip_as_default, that
>> can be used to load the qmi driver in rawip mode.
>>
>> The advantage compared to changing rawip at a later point using
>> sysfs is that the os will not detect the device and start talking
>> to it while the driver is still in incorrect mode.
>>
>> Signed-off-by: Stefan x Nilsson <[email protected]>
>> ---
>> drivers/net/usb/qmi_wwan.c | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
>> index 344af3c5c836..968c60ececf8 100644
>> --- a/drivers/net/usb/qmi_wwan.c
>> +++ b/drivers/net/usb/qmi_wwan.c
>> @@ -46,6 +46,10 @@
>> * commands on a serial interface
>> */
>>
>> +/* Module parameters */
>> +static bool rawip_as_default;
>> +module_param(rawip_as_default, bool, 0644);
>> +
>> /* driver specific data */
>> struct qmi_wwan_state {
>> struct usb_driver *subdriver;
>> @@ -843,6 +847,13 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
>> }
>> dev->net->netdev_ops = &qmi_wwan_netdev_ops;
>> dev->net->sysfs_groups[0] = &qmi_wwan_sysfs_attr_group;
>> +
>> + /* Set the driver into rawip mode if requested by module param */
>> + if (rawip_as_default) {
>> + info->flags |= QMI_WWAN_FLAG_RAWIP;
>> + qmi_wwan_netdev_setup(dev->net);
>> + }
>> +
>> err:
>> return status;
>> }
>>
>
> NAK
>
> There is no reason to start communicating with the device before
> changing the framing, using the existing sysfs interface.
>
> This seems to be a workaround for some userspace bug. I don't think we
> yet another userspace knob for that. And certainly not one that applies
> to every device.
>
>
>
> Bjørn

Right, got the message and I see your point. Thanks for the review.

Would a quirk on the affected modem be an better/acceptable solution?

Best Regards
Stefan x Nilsson