MC8795V & 3.2 kernel


#1

Hi,

We are using currently using the AirPrime MC8795V module with a 2.6 Linux kernel, the module is used in direct ip mode.
Due to some hardware changes we now have to use a 3.2 Linux kernel but It’s not working in direct ip mode, the error message we see in syslog is “Incompatible driver and firmware”.
According to ATZI the module firmware revision is K2_0_7_50BAP, is there a new version of firmware and/or a different kernel driver?

Thanks

kyle.


#2

Hi,

Can you confirm the exact driver version used at your end. Also, can you try using the firmware package K2.0.7.52 .Please contact to your FAE for latest firmware update.

In case ,the issue still persists, share with us the system logs for analysis.

Thanks.


#3

Hi,

I have asked our fae for that version of the firmware.

The kernel module information is

filename: /lib/modules/3.2.0-25-generic-pae/kernel/drivers/net/usb/sierra_net.ko
license: GPL
version: v.2.0
description: USB-to-WWAN Driver for Sierra Wireless modems
author: Paxton Smith, Matthew Safar, Rory Filer
srcversion: C3998FF27BD6D7034AE1935
alias: usb:v1199p68A3ddcdscdpiciscip*
depends: usbnet
intree: Y
vermagic: 3.2.0-25-generic-pae SMP mod_unload modversions 686

Thanks

Kyle.


#4

Is autosuspend enabled? You can check the power management setting likc this, where 2-4 is the device bus-port and the control file is the one deciding whether to do autosuspend or not:

nemi:/tmp# grep . /sys/bus/usb/devices/2-4/power/*
/sys/bus/usb/devices/2-4/power/active_duration:4559504
/sys/bus/usb/devices/2-4/power/async:enabled
/sys/bus/usb/devices/2-4/power/autosuspend:2
/sys/bus/usb/devices/2-4/power/autosuspend_delay_ms:2000
/sys/bus/usb/devices/2-4/power/connected_duration:10979020
/sys/bus/usb/devices/2-4/power/control:auto
/sys/bus/usb/devices/2-4/power/level:auto
/sys/bus/usb/devices/2-4/power/persist:1
/sys/bus/usb/devices/2-4/power/runtime_active_kids:0
/sys/bus/usb/devices/2-4/power/runtime_active_time:4559404
/sys/bus/usb/devices/2-4/power/runtime_enabled:enabled
/sys/bus/usb/devices/2-4/power/runtime_status:suspended
/sys/bus/usb/devices/2-4/power/runtime_suspended_time:6419372
/sys/bus/usb/devices/2-4/power/runtime_usage:0
/sys/bus/usb/devices/2-4/power/wakeup:disabled

If enabled with a low autosuspend_delay_ms, then I believe the modem could be suspended while probing, and that is likely to cause exactly that symptom with the in-kernel driver. The bind function does this among other things:

/* verify fw attributes */
	status = sierra_net_get_fw_attr(dev, &fwattr);
	dev_dbg(&dev->udev->dev, "Fw attr: %x\n", fwattr);

	/* test whether firmware supports DHCP */
	if (!(status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_MASK))) {
		/* found incompatible firmware version */
		dev_err(&dev->udev->dev, "Incompatible driver and firmware"
			" versions\n");
		kfree(priv);
		return -ENODEV;
	}

and the sierra_net_get_fw_attr() will return a negative error code if autosuspend kicked in before it was called.

The out-of-kernel driver you can download from Sierra has a fix for this problem as well as a number of other power management improvements: It calls usb_autopm_get_interface() before sending the SWI_USB_REQUEST_GET_FW_ATTR control message.

Please test if disabling autosuspend makes a difference, and also if it helps using the out-of-tree driver. To disable autosuspend (where 2-4 is to be replaced with whatever applies to you):

echo on >/sys/bus/usb/devices/2-4/power/control

Note that this is only for testing. You would normally want autosuspend enabled in any system where energy is a limited resource (and that’s anything without a solar panel, isn’t it :smiley: )

It would be appreciated if Sierra could push these nice improvements upstream. I know there have been requests: comments.gmane.org/gmane.linux.usb.general/59312

Bjørn


#5

Thanks for your help so far.

Our fae is having trouble getting firmware version K2.0.7.52 as he is told this is not an approved version.

I get 5 virtual serial ports created and autosuspend is enabled for all of these, the network interface device doesn’t appear to have a control or power file in /sys?

I tried the latest driver from sierra

sierrawireless.com/resources … rectIP.tar

and I still get the same error “Incompatible driver and firmware” in syslog. I modified the bit of code where the message is printed to also print status and fwattr. status = 0x02 and fwattr = 0x07


#6

OK, then it is truly incompatible firmware. The status indicates a successful read of 2 bytes (fwattr is defined as u16), but bit #3 is not set in the result. If I understand the driver correctly, that means that the firmware has no DHCP support. I assume the firmware provides some alternate way of communicating the IP configuration, probably a HIP message of some sort, but the driver does not support that.

So you really want the newer firmware then.