diff options
Diffstat (limited to 'package/sierra-directip/patches')
-rw-r--r-- | package/sierra-directip/patches/100-sierra_net_endian.patch | 22 | ||||
-rw-r--r-- | package/sierra-directip/patches/110-drop_dhcp_requirement.patch | 14 |
2 files changed, 36 insertions, 0 deletions
diff --git a/package/sierra-directip/patches/100-sierra_net_endian.patch b/package/sierra-directip/patches/100-sierra_net_endian.patch new file mode 100644 index 000000000..196d77d49 --- /dev/null +++ b/package/sierra-directip/patches/100-sierra_net_endian.patch @@ -0,0 +1,22 @@ +--- a/sierra_net.c ++++ b/sierra_net.c +@@ -840,8 +840,8 @@ static int sierra_net_bind(struct usbnet + init_timer(&priv->sync_timer); + /* verify fw attributes */ + status = sierra_net_get_fw_attr(dev, &fwattr); +- dev_dbg(&dev->udev->dev, "Fw attr: %x\n", fwattr); +- if (status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_APM)) { ++ dev_dbg(&dev->udev->dev, "Fw attr: %x\n", cpu_to_le16(fwattr)); ++ if (status == sizeof(fwattr) && (cpu_to_le16(fwattr) & SWI_GET_FW_ATTR_APM)) { + /******************************************************************************* + * If you want the default /sys/bus/usb/devices/.../.../power/level to be forced + * to auto, the following needs to be compiled in. +@@ -856,7 +856,7 @@ static int sierra_net_bind(struct usbnet + usb_disable_autosuspend(dev->udev); + } + /* test whether firmware supports DHCP */ +- if (!(status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_MASK))) { ++ if (!(status == sizeof(fwattr) && (cpu_to_le16(fwattr) & SWI_GET_FW_ATTR_MASK))) { + /* found incompatible firmware version */ + dev_err(&dev->udev->dev, "Incompatible driver and firmware" + " versions\n"); diff --git a/package/sierra-directip/patches/110-drop_dhcp_requirement.patch b/package/sierra-directip/patches/110-drop_dhcp_requirement.patch new file mode 100644 index 000000000..4c4d0ba65 --- /dev/null +++ b/package/sierra-directip/patches/110-drop_dhcp_requirement.patch @@ -0,0 +1,14 @@ +--- a/sierra_net.c ++++ b/sierra_net.c +@@ -858,10 +858,7 @@ static int sierra_net_bind(struct usbnet + /* test whether firmware supports DHCP */ + if (!(status == sizeof(fwattr) && (cpu_to_le16(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; ++ dev_err(&dev->udev->dev, "Warning: Firmware does not have DHCP support\n"); + } + /* prepare sync message from template */ + memcpy(priv->sync_msg, sync_tmplate, sizeof(priv->sync_msg)); |