mirror of https://github.com/hak5/openwrt.git
parent
95c5443b84
commit
d66662593c
|
@ -1,45 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2006 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:=nozomi
|
||||
PKG_VERSION:=060209
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=nozomi_$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://www.pharscape.org/3G
|
||||
PKG_MD5SUM:=90e4d8f389a18b5579f7234a23e32e99
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
PKG_UNPACK:=mkdir -p $(PKG_BUILD_DIR); gzip -dc $(DL_DIR)/$(PKG_SOURCE) | $(TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
|
||||
|
||||
define KernelPackage/nozomi
|
||||
SUBMENU:=Other modules
|
||||
TITLE:=Option Globetrotter HSDPA driver
|
||||
URL:=http://www.pharscape.org/
|
||||
DEPENDS:=@LINUX_2_4 @PCMCIA_SUPPORT
|
||||
FILES:=$(PKG_BUILD_DIR)/noz.$(LINUX_KMOD_SUFFIX)
|
||||
AUTOLOAD:=$(call AutoLoad,70,noz)
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
$(CP) ./files/Makefile $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(LINUX_DIR)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
PATH="$(TARGET_PATH)" \
|
||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,nozomi))
|
|
@ -1,14 +0,0 @@
|
|||
|
||||
O_TARGET := noz.o
|
||||
|
||||
export-objs := nozomi.o kfifo.o
|
||||
|
||||
list-multi := noz.o
|
||||
noz-objs := nozomi.o kfifo.o
|
||||
|
||||
obj-m := noz.o
|
||||
|
||||
include $(TOPDIR)/Rules.make
|
||||
|
||||
noz.o: $(noz-objs)
|
||||
$(LD) -r -o $@ $(noz-objs)
|
|
@ -1,19 +0,0 @@
|
|||
--- a/nozomi.c
|
||||
+++ b/nozomi.c
|
||||
@@ -2093,11 +2093,15 @@ static int ntty_tty_init(dc_t *dc) {
|
||||
|
||||
td->magic = TTY_DRIVER_MAGIC;
|
||||
td->driver_name = NOZOMI_NAME_TTY;
|
||||
+#ifndef CONFIG_DEVFS_FS
|
||||
td->name = "noz";
|
||||
+#else
|
||||
+ td->name = "noz%d";
|
||||
+#endif
|
||||
td->major = NTTY_TTY_MAJOR,
|
||||
td->type = TTY_DRIVER_TYPE_SERIAL,
|
||||
td->subtype = SERIAL_TYPE_NORMAL,
|
||||
- td->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS,
|
||||
+ td->flags = TTY_DRIVER_REAL_RAW,
|
||||
td->init_termios = tty_std_termios;
|
||||
td->init_termios.c_cflag = B115200 | CS8 | CREAD | HUPCL | CLOCAL;
|
||||
|
|
@ -1,251 +0,0 @@
|
|||
--- a/nozomi.c
|
||||
+++ b/nozomi.c
|
||||
@@ -7,6 +7,9 @@
|
||||
*
|
||||
* Maintained by: Paul Hardwick, p.hardwick@option.com
|
||||
*
|
||||
+ * Patches:
|
||||
+ * Locking code changes for Vodafone, Andrew Bird & Phil Sanderson
|
||||
+ *
|
||||
* Source has been ported from an implementation made by Filip Aben, f.aben@option.com
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
@@ -61,6 +64,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/kmod.h>
|
||||
#include <linux/proc_fs.h>
|
||||
+#include <linux/init.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
|
||||
@@ -133,23 +137,23 @@ static int nzdebug = NOZOMI_DEBUG_LEVEL;
|
||||
/* TODO: rewrite to optimize macros... */
|
||||
#define SET_FCR(value__) \
|
||||
do { \
|
||||
- writew((value__), (void*) (dc->REG_FCR )); \
|
||||
+ writew((value__), (dc->REG_FCR )); \
|
||||
} while(0)
|
||||
|
||||
#define SET_IER(value__, mask__) \
|
||||
do { \
|
||||
dc->ier_last_written = (dc->ier_last_written & ~mask__) | (value__ & mask__ );\
|
||||
- writew( dc->ier_last_written, (void*) (dc->REG_IER));\
|
||||
+ writew( dc->ier_last_written, (dc->REG_IER));\
|
||||
} while(0)
|
||||
|
||||
#define GET_IER(read_val__) \
|
||||
do { \
|
||||
- (read_val__) = readw((void*) (dc->REG_IER));\
|
||||
+ (read_val__) = readw((dc->REG_IER));\
|
||||
} while(0)
|
||||
|
||||
#define GET_IIR(read_val__) \
|
||||
do { \
|
||||
- (read_val__) = readw((void*) (dc->REG_IIR));\
|
||||
+ (read_val__) = readw( (dc->REG_IIR));\
|
||||
} while(0)
|
||||
|
||||
#define GET_MEM(value__, addr__, length__) \
|
||||
@@ -265,7 +269,7 @@ static int nzdebug = NOZOMI_DEBUG_LEVEL;
|
||||
/* There are two types of nozomi cards, one with 2048 memory and with 8192 memory */
|
||||
typedef enum {
|
||||
F32_2 = 2048, /* Has 512 bytes downlink and uplink * 2 -> 2048 */
|
||||
- F32_8 = 9192, /* Has 3072 bytes downlink and 1024 bytes uplink * 2 -> 8192 */
|
||||
+ F32_8 = 8192, /* Has 3072 bytes downlink and 1024 bytes uplink * 2 -> 8192 */
|
||||
} card_type_t;
|
||||
|
||||
/* Two different toggle channels exist */
|
||||
@@ -438,12 +442,12 @@ typedef struct {
|
||||
u32 base_addr;
|
||||
u8 closing;
|
||||
|
||||
- /* Register addresses */
|
||||
- u32 REG_IIR;
|
||||
- u32 REG_FCR;
|
||||
- u32 REG_IER;
|
||||
+ /* Pointers to registers ( register is tagged volatile, not pointer ) */
|
||||
+ volatile u16 * REG_IIR;
|
||||
+ volatile u16 * REG_FCR;
|
||||
+ volatile u16 * REG_IER;
|
||||
|
||||
- volatile u16 ier_last_written;
|
||||
+ u16 ier_last_written;
|
||||
card_type_t card_type;
|
||||
config_table_t config_table; /* Configuration table */
|
||||
struct pci_dev *pdev;
|
||||
@@ -490,7 +494,7 @@ static struct pci_device_id nozomi_pci_t
|
||||
|
||||
/* Used to store interrupt variables */
|
||||
typedef struct {
|
||||
- volatile u16 read_iir; /* Holds current interrupt tokens */
|
||||
+ u16 read_iir; /* Holds current interrupt tokens */
|
||||
} irq_t;
|
||||
|
||||
MODULE_DEVICE_TABLE(pci, nozomi_pci_tbl);
|
||||
@@ -1345,9 +1349,9 @@ void nozomi_setup_private_data(dc_t *dc)
|
||||
u32 offset = dc->base_addr + dc->card_type/2;
|
||||
int i;
|
||||
|
||||
- dc->REG_FCR = offset + R_FCR;
|
||||
- dc->REG_IIR = offset + R_IIR;
|
||||
- dc->REG_IER = offset + R_IER;
|
||||
+ dc->REG_FCR = (u16 *) (offset + R_FCR);
|
||||
+ dc->REG_IIR = (u16 *) (offset + R_IIR);
|
||||
+ dc->REG_IER = (u16 *) (offset + R_IER);
|
||||
dc->ier_last_written = 0;
|
||||
dc->closing = 0;
|
||||
|
||||
@@ -1366,13 +1370,16 @@ void nozomi_setup_private_data(dc_t *dc)
|
||||
static void tty_flip_queue_function(void *tmp_dc) {
|
||||
dc_t *dc = (dc_t*) tmp_dc;
|
||||
int i;
|
||||
+ u32 flags;
|
||||
|
||||
/* Enable interrupt for that port */
|
||||
for(i=0;i<MAX_PORT;i++) {
|
||||
if (dc->port[i].tty_dont_flip) {
|
||||
D6("Enable for port: %d", i);
|
||||
dc->port[i].tty_dont_flip = 0;
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
enable_transmit_dl(dc->port[i].tty_index, dc);
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1555,7 +1562,11 @@ err_disable_device:
|
||||
|
||||
static void tty_do_close(dc_t *dc, port_t *port) {
|
||||
|
||||
- down(&port->tty_sem);
|
||||
+ u32 flags;
|
||||
+
|
||||
+ if(down_interruptible(&port->tty_sem)){
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
if ( !port->tty_open_count ) {
|
||||
goto exit;
|
||||
@@ -1569,7 +1580,9 @@ static void tty_do_close(dc_t *dc, port_
|
||||
|
||||
if ( port->tty_open_count == 0) {
|
||||
D1("close: %d", port->token_dl );
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
SET_IER( 0, port->token_dl );
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
}
|
||||
|
||||
exit:
|
||||
@@ -1679,8 +1692,11 @@ static int ntty_open(struct tty_struct *
|
||||
s32 index = get_index(tty);
|
||||
port_t *port = get_port_by_tty(tty);
|
||||
dc_t *dc = get_dc_by_tty(tty);
|
||||
+ u32 flags;
|
||||
|
||||
- down(&port->tty_sem);
|
||||
+ if(down_interruptible(&port->tty_sem)){
|
||||
+ return -ERESTARTSYS;
|
||||
+ }
|
||||
|
||||
tty->low_latency = 1;
|
||||
tty->driver_data = port;
|
||||
@@ -1698,7 +1714,9 @@ static int ntty_open(struct tty_struct *
|
||||
if ( port->tty_open_count == 1) {
|
||||
port->rx_data = port->tx_data = 0;
|
||||
D1("open: %d", port->token_dl );
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
SET_IER( port->token_dl, port->token_dl );
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
}
|
||||
|
||||
up(&port->tty_sem);
|
||||
@@ -1722,6 +1740,7 @@ static s32 ntty_write(struct tty_struct
|
||||
int rval = -EINVAL;
|
||||
dc_t *dc = get_dc_by_tty(tty);
|
||||
port_t *port = (port_t *) tty->driver_data;
|
||||
+ u32 flags;
|
||||
|
||||
/* D1( "WRITEx: %d, index = %d", count, index); */
|
||||
|
||||
@@ -1729,7 +1748,10 @@ static s32 ntty_write(struct tty_struct
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
- down(&port->tty_sem);
|
||||
+ if(down_trylock(&port->tty_sem) ) { // must test lock as tty layer wraps calls to this function with BKL
|
||||
+ ERR("Would have deadlocked - return ERESTARTSYS");
|
||||
+ return -ERESTARTSYS;
|
||||
+ }
|
||||
|
||||
if (! port->tty_open_count) {
|
||||
D1( " ");
|
||||
@@ -1752,6 +1774,7 @@ static s32 ntty_write(struct tty_struct
|
||||
goto exit;
|
||||
}
|
||||
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
// CTS is only valid on the modem channel
|
||||
if ( port == &(dc->port[PORT_MDM]) ) {
|
||||
if ( port->ctrl_dl.CTS ) {
|
||||
@@ -1763,6 +1786,7 @@ static s32 ntty_write(struct tty_struct
|
||||
} else {
|
||||
enable_transmit_ul(port->tty_index, dc );
|
||||
}
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
|
||||
exit:
|
||||
up(&port->tty_sem);
|
||||
@@ -1782,7 +1806,9 @@ static int ntty_write_room(struct tty_st
|
||||
return 0;
|
||||
}
|
||||
|
||||
- down(&port->tty_sem);
|
||||
+ if(down_interruptible(&port->tty_sem)){
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
if (! port->tty_open_count) {
|
||||
goto exit;
|
||||
@@ -1969,6 +1995,8 @@ static int ntty_ioctl_tiocgicount(struct
|
||||
|
||||
static int ntty_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg) {
|
||||
port_t *port = (port_t *) tty->driver_data;
|
||||
+ dc_t *dc = get_dc_by_tty(tty);
|
||||
+ u32 flags;
|
||||
int mask;
|
||||
int rval = -ENOIOCTLCMD;
|
||||
|
||||
@@ -1991,7 +2019,9 @@ static int ntty_ioctl(struct tty_struct
|
||||
rval = ntty_ioctl_tiocgicount(tty, file, cmd, arg);
|
||||
break;
|
||||
case TIOCMGET:
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
rval = ntty_tiocmget(tty, file);
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
break;
|
||||
case TIOCMSET:
|
||||
rval = ntty_tiocmset(tty, file, arg);
|
||||
@@ -2000,20 +2030,24 @@ static int ntty_ioctl(struct tty_struct
|
||||
if (get_user(mask, (unsigned long *) arg))
|
||||
return -EFAULT;
|
||||
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
if (mask & TIOCM_RTS)
|
||||
set_rts(port->tty_index, 0);
|
||||
if (mask & TIOCM_DTR)
|
||||
set_dtr(port->tty_index, 0);
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
rval = 0;
|
||||
break;
|
||||
case TIOCMBIS:
|
||||
if (get_user(mask, (unsigned long *) arg))
|
||||
return -EFAULT;
|
||||
|
||||
+ spin_lock_irqsave(&dc->spin_mutex, flags);
|
||||
if (mask & TIOCM_RTS)
|
||||
set_rts(port->tty_index, 1);
|
||||
if (mask & TIOCM_DTR)
|
||||
set_dtr(port->tty_index, 1);
|
||||
+ spin_unlock_irqrestore(&dc->spin_mutex, flags);
|
||||
rval = 0;
|
||||
break;
|
||||
case TCFLSH:
|
|
@ -1,68 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2006 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:=pcmcia-cs
|
||||
PKG_VERSION:=3.2.8
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
|
||||
PKG_MD5SUM:=0d6d65be8896eff081aee996049afaa5
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/pcmcia-cs
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
DEPENDS:=@LINUX_2_4 @PCMCIA_SUPPORT
|
||||
TITLE:=PCMCIA/Cardbus management utilities
|
||||
URL:=http://pcmcia-cs.sourceforge.net/
|
||||
endef
|
||||
|
||||
$(STAMP_CONFIGURED): $(LINUX_DIR)/.config
|
||||
|
||||
define Build/Configure
|
||||
( cd $(PKG_BUILD_DIR); \
|
||||
./Configure \
|
||||
--noprompt \
|
||||
--kernel="$(LINUX_DIR)" \
|
||||
--target="$(PKG_INSTALL_DIR)" \
|
||||
--arch="$(ARCH)" \
|
||||
--ucc="$(TARGET_CC)" \
|
||||
--uflags="$(TARGET_CFLAGS)" \
|
||||
--srctree \
|
||||
--cardbus \
|
||||
--noapm \
|
||||
--nopnp \
|
||||
--notrust \
|
||||
--nox11 \
|
||||
--rcdir="/etc" \
|
||||
--sysv \
|
||||
)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
rm -rf $(PKG_INSTALL_DIR)
|
||||
mkdir -p $(PKG_INSTALL_DIR)
|
||||
$(call Build/Compile/Default, \
|
||||
CFLAGS="$(TARGET_CFLAGS)" \
|
||||
all install \
|
||||
)
|
||||
endef
|
||||
|
||||
define Package/pcmcia-cs/install
|
||||
$(INSTALL_DIR) $(1)/etc
|
||||
$(CP) $(PKG_INSTALL_DIR)/etc/pcmcia $(1)/etc/
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/cardctl $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/cardmgr $(1)/usr/sbin/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,pcmcia-cs))
|
|
@ -1,13 +0,0 @@
|
|||
--- a/etc/config
|
||||
+++ b/etc/config
|
||||
@@ -2413,6 +2413,10 @@ card "Xircom RBM56G Modem"
|
||||
pci 0x115d, 0x0101
|
||||
bind "serial_cb"
|
||||
|
||||
+card "Novatel Wireless - Merlin U630 UMTS Modem"
|
||||
+ manfid 0x00a4, 0x0276
|
||||
+ bind "serial_cs" to 0, "serial_cs" to 1
|
||||
+
|
||||
# Include configuration files for add-on drivers
|
||||
|
||||
source ./*.conf
|
|
@ -1,11 +0,0 @@
|
|||
--- a/etc/shared
|
||||
+++ b/etc/shared
|
||||
@@ -167,7 +167,7 @@ get_info ()
|
||||
STAB=/var/run/stab
|
||||
fi
|
||||
grep_stab $1 < $STAB || usage
|
||||
- eval `/sbin/cardctl info $SOCKET`
|
||||
+ eval `/usr/sbin/cardctl info $SOCKET`
|
||||
fi
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
--- a/cardmgr/cardmgr.c
|
||||
+++ b/cardmgr/cardmgr.c
|
||||
@@ -739,10 +739,7 @@ static int try_insmod(char *mod, char *o
|
||||
int ret;
|
||||
|
||||
strcpy(cmd, "insmod ");
|
||||
- if (strchr(mod, '/') != NULL)
|
||||
- sprintf(cmd+7, "%s/%s.o", modpath, mod);
|
||||
- else
|
||||
- sprintf(cmd+7, "%s/pcmcia/%s.o", modpath, mod);
|
||||
+ sprintf(cmd+7, "%s/%s.o", modpath, mod);
|
||||
if (access(cmd+7, R_OK) != 0) {
|
||||
syslog(LOG_NOTICE, "module %s not available", cmd+7);
|
||||
free(cmd);
|
||||
@@ -808,11 +805,13 @@ static void install_module(char *mod, ch
|
||||
}
|
||||
|
||||
if (do_modprobe) {
|
||||
- if (try_modprobe(mod, opts) != 0)
|
||||
+ if (try_modprobe(mod, opts) != 0) {
|
||||
try_insmod(mod, opts);
|
||||
+ }
|
||||
} else {
|
||||
- if (try_insmod(mod, opts) != 0)
|
||||
+ if (try_insmod(mod, opts) != 0) {
|
||||
try_modprobe(mod, opts);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1113,8 +1112,9 @@ static void do_remove(int sn)
|
||||
|
||||
/* remove kernel modules in inverse order */
|
||||
for (i = 0; i < card->bindings; i++) {
|
||||
- for (j = dev[i]->modules-1; j >= 0; j--)
|
||||
+ for (j = dev[i]->modules-1; j >= 0; j--) {
|
||||
remove_module(dev[i]->module[j]);
|
||||
+ }
|
||||
free_device(dev[i]);
|
||||
}
|
||||
/* Remove any MTD's bound to this socket */
|
|
@ -1,19 +0,0 @@
|
|||
--- a/etc/config.opts
|
||||
+++ b/etc/config.opts
|
||||
@@ -17,14 +17,13 @@
|
||||
#
|
||||
|
||||
include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
|
||||
-include memory 0xc0000-0xfffff
|
||||
-include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
|
||||
+include memory 0x40004000-0x40007fff
|
||||
|
||||
# High port numbers do not always work...
|
||||
# include port 0x1000-0x17ff
|
||||
|
||||
# Extra port range for IBM Token Ring
|
||||
-include port 0xa00-0xaff
|
||||
+# include port 0xa00-0xaff
|
||||
|
||||
# Resources we should not use, even if they appear to be available
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2006 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:=rt2570
|
||||
PKG_VERSION:=1.1.0-b2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=@SF/rt2400
|
||||
PKG_MD5SUM:=f4131d670920a878b4d4a0f5d4d8b93a
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/rt2570
|
||||
SUBMENU:=Wireless Drivers
|
||||
TITLE:=Driver for Ralink RT2570 usb wireless chipsets
|
||||
DEPENDS:=@LINUX_2_4 @USB_SUPPORT +wireless-tools
|
||||
URL:=http://rt2x00.serialmonkey.com/
|
||||
FILES:=$(PKG_BUILD_DIR)/Module/rt2570.$(LINUX_KMOD_SUFFIX)
|
||||
AUTOLOAD:=$(call AutoLoad,50,rt2570)
|
||||
endef
|
||||
|
||||
define KernelPackage/rt2570/description
|
||||
This package contains a driver for Ralink RT2570 usb chipsets.
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) -C "$(PKG_BUILD_DIR)/Module" \
|
||||
CC="$(TARGET_CC)" \
|
||||
LD="$(TARGET_CROSS)ld" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
PWD="$(PKG_BUILD_DIR)/Module" \
|
||||
KERNDIR="$(LINUX_DIR)" \
|
||||
PATCHLEVEL="$(patsubst 2.%,%,$(KERNEL))"
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,rt2570))
|
Loading…
Reference in New Issue