add sierra-directip, a package based on the latest DirectIP capable sierra wireless drivers + some fixes
SVN-Revision: 28635
This commit is contained in:
		
							
								
								
									
										41
									
								
								package/sierra-directip/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								package/sierra-directip/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | # | ||||||
|  | # Copyright (C) 2006-2010 OpenWrt.org | ||||||
|  | # | ||||||
|  | # This is free software, licensed under the GNU General Public License v2. | ||||||
|  | # See /LICENSE for more information. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  | include $(INCLUDE_DIR)/kernel.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=sierra-directip | ||||||
|  | PKG_RELEASE:=10 | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  |  | ||||||
|  | define KernelPackage/usb-sierrawireless-directip | ||||||
|  |   SUBMENU:=USB Support | ||||||
|  |   DEPENDS:=+kmod-usb-serial +kmod-usb-net | ||||||
|  |   TITLE:=Updated Sierra Wireless drivers for DirectIP | ||||||
|  |   FILES:= \ | ||||||
|  |   	$(PKG_BUILD_DIR)/sierra.ko \ | ||||||
|  |   	$(PKG_BUILD_DIR)/sierra_net.ko | ||||||
|  |   AUTOLOAD:=$(call AutoLoad,60,sierra sierra_net) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Prepare | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR) | ||||||
|  | 	$(CP) ./src/* $(PKG_BUILD_DIR)/ | ||||||
|  | 	$(Build/Patch) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Build/Compile | ||||||
|  | 	$(MAKE) -C "$(LINUX_DIR)" \ | ||||||
|  | 		CROSS_COMPILE="$(TARGET_CROSS)" \ | ||||||
|  | 		ARCH="$(LINUX_KARCH)" \ | ||||||
|  | 		SUBDIRS="$(PKG_BUILD_DIR)" \ | ||||||
|  | 		EXTRA_CFLAGS="$(BUILDFLAGS)" \ | ||||||
|  | 		modules | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(call KernelPackage,usb-sierrawireless-directip)) | ||||||
							
								
								
									
										22
									
								
								package/sierra-directip/patches/100-sierra_net_endian.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								package/sierra-directip/patches/100-sierra_net_endian.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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"); | ||||||
| @@ -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)); | ||||||
							
								
								
									
										1
									
								
								package/sierra-directip/src/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								package/sierra-directip/src/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | obj-m := sierra.o sierra_net.o | ||||||
							
								
								
									
										1409
									
								
								package/sierra-directip/src/sierra.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1409
									
								
								package/sierra-directip/src/sierra.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1123
									
								
								package/sierra-directip/src/sierra_net.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1123
									
								
								package/sierra-directip/src/sierra_net.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau