1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-24 07:00:37 +02:00

Merge commit 'nbd/master' into xburst

This commit is contained in:
Lars-Peter Clausen 2010-02-15 22:20:19 +01:00
commit 51aea9a21e
11 changed files with 157 additions and 75 deletions

View File

@ -10,7 +10,7 @@ SOUND_MENU:=Sound Support
define KernelPackage/sound-core define KernelPackage/sound-core
SUBMENU:=$(SOUND_MENU) SUBMENU:=$(SOUND_MENU)
TITLE:=Sound support TITLE:=Sound support
DEPENDS:=@PCI_SUPPORT||USB_SUPPORT||TARGET_uml DEPENDS:=@AUDIO_SUPPORT
KCONFIG:= \ KCONFIG:= \
CONFIG_SOUND \ CONFIG_SOUND \
CONFIG_SND \ CONFIG_SND \

View File

@ -1,13 +1,19 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c --- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1233,6 +1233,11 @@ void ath9k_hw_init_global_settings(struc @@ -1233,6 +1233,17 @@ void ath9k_hw_init_global_settings(struc
/* As defined by IEEE 802.11-2007 17.3.8.6 */ /* As defined by IEEE 802.11-2007 17.3.8.6 */
slottime = ah->slottime + 3 * ah->coverage_class; slottime = ah->slottime + 3 * ah->coverage_class;
acktimeout = slottime + sifstime; acktimeout = slottime + sifstime;
+ +
+ /* Workaround for a hw issue */ + /*
+ * Workaround for early ACK timeouts, add an offset to match the
+ * initval's 64us ack timeout value.
+ * This was initially only meant to work around an issue with delayed
+ * BA frames in some implementations, but it has been found to fix ACK
+ * timeout issues in other cases as well.
+ */
+ if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) + if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ)
+ acktimeout = max(64, acktimeout); + acktimeout += 64 - sifstime - ah->slottime;
+ +
ath9k_hw_setslottime(ah, slottime); ath9k_hw_setslottime(ah, slottime);
ath9k_hw_set_ack_timeout(ah, acktimeout); ath9k_hw_set_ack_timeout(ah, acktimeout);

View File

@ -2,6 +2,7 @@
* swconfig.c: Switch configuration utility * swconfig.c: Switch configuration utility
* *
* Copyright (C) 2008 Felix Fietkau <nbd@openwrt.org> * Copyright (C) 2008 Felix Fietkau <nbd@openwrt.org>
* Copyright (C) 2010 Martin Mares <mj@ucw.cz>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -34,9 +35,12 @@
#include "swlib.h" #include "swlib.h"
enum { enum {
GET, CMD_NONE,
SET, CMD_GET,
LOAD CMD_SET,
CMD_LOAD,
CMD_HELP,
CMD_SHOW,
}; };
static void static void
@ -79,10 +83,80 @@ list_attributes(struct switch_dev *dev)
print_attrs(dev->port_ops); print_attrs(dev->port_ops);
} }
static void
print_attr_val(const struct switch_attr *attr, const struct switch_val *val)
{
int i;
switch (attr->type) {
case SWITCH_TYPE_INT:
printf("%d", val->value.i);
break;
case SWITCH_TYPE_STRING:
printf("%s", val->value.s);
break;
case SWITCH_TYPE_PORTS:
for(i = 0; i < val->len; i++) {
printf("%d%s ",
val->value.ports[i].id,
(val->value.ports[i].flags &
SWLIB_PORT_FLAG_TAGGED) ? "t" : "");
}
break;
default:
printf("?unknown-type?");
}
}
static void
show_attrs(struct switch_dev *dev, struct switch_attr *attr, struct switch_val *val)
{
while (attr) {
if (attr->type != SWITCH_TYPE_NOVAL) {
printf("\t%s: ", attr->name);
if (swlib_get_attr(dev, attr, val) < 0)
printf("???");
else
print_attr_val(attr, val);
putchar('\n');
}
attr = attr->next;
}
}
static void
show_global(struct switch_dev *dev)
{
struct switch_val val;
printf("Global attributes:\n");
show_attrs(dev, dev->ops, &val);
}
static void
show_port(struct switch_dev *dev, int port)
{
struct switch_val val;
printf("Port %d:\n", port);
val.port_vlan = port;
show_attrs(dev, dev->port_ops, &val);
}
static void
show_vlan(struct switch_dev *dev, int vlan)
{
struct switch_val val;
printf("VLAN %d:\n", vlan);
val.port_vlan = vlan;
show_attrs(dev, dev->vlan_ops, &val);
}
static void static void
print_usage(void) print_usage(void)
{ {
printf("swconfig dev <dev> [port <port>|vlan <vlan>] (help|set <key> <value>|get <key>|load <config>)\n"); printf("swconfig dev <dev> [port <port>|vlan <vlan>] (help|set <key> <value>|get <key>|load <config>|show)\n");
exit(1); exit(1);
} }
@ -124,13 +198,12 @@ int main(int argc, char **argv)
struct switch_port *ports; struct switch_port *ports;
int cmd = 0; int cmd = CMD_NONE;
char *cdev = NULL; char *cdev = NULL;
int cport = -1; int cport = -1;
int cvlan = -1; int cvlan = -1;
char *ckey = NULL; char *ckey = NULL;
char *cvalue = NULL; char *cvalue = NULL;
int chelp = 0;
if(argc < 4) if(argc < 4)
print_usage(); print_usage();
@ -142,44 +215,38 @@ int main(int argc, char **argv)
for(i = 3; i < argc; i++) for(i = 3; i < argc; i++)
{ {
int p; char *arg = argv[i];
if (!strcmp(argv[i], "help")) { if (cmd != CMD_NONE) {
chelp = 1;
continue;
}
if( i + 1 >= argc)
print_usage(); print_usage();
p = atoi(argv[i + 1]); } else if (!strcmp(arg, "port") && i+1 < argc) {
if (!strcmp(argv[i], "port")) { cport = atoi(argv[++i]);
cport = p; } else if (!strcmp(arg, "vlan") && i+1 < argc) {
} else if (!strcmp(argv[i], "vlan")) { cvlan = atoi(argv[++i]);
cvlan = p; } else if (!strcmp(arg, "help")) {
} else if (!strcmp(argv[i], "set")) { cmd = CMD_HELP;
if(argc <= i + 1) } else if (!strcmp(arg, "set") && i+1 < argc) {
print_usage(); cmd = CMD_SET;
cmd = SET; ckey = argv[++i];
ckey = argv[i + 1]; if (i+1 < argc)
if (argc > i + 2) cvalue = argv[++i];
cvalue = argv[i + 2]; } else if (!strcmp(arg, "get") && i+1 < argc) {
else cmd = CMD_GET;
cvalue = NULL; ckey = argv[++i];
i++; } else if (!strcmp(arg, "load") && i+1 < argc) {
} else if (!strcmp(argv[i], "get")) {
cmd = GET;
ckey = argv[i + 1];
} else if (!strcmp(argv[i], "load")) {
if ((cport >= 0) || (cvlan >= 0)) if ((cport >= 0) || (cvlan >= 0))
print_usage(); print_usage();
cmd = CMD_LOAD;
ckey = argv[i + 1]; ckey = argv[++i];
cmd = LOAD; } else if (!strcmp(arg, "show")) {
cmd = CMD_SHOW;
} else { } else {
print_usage(); print_usage();
} }
i++;
} }
if(cport > -1 && cvlan > -1) if (cmd == CMD_NONE)
print_usage();
if (cport > -1 && cvlan > -1)
print_usage(); print_usage();
dev = swlib_connect(cdev); dev = swlib_connect(cdev);
@ -192,13 +259,7 @@ int main(int argc, char **argv)
memset(ports, 0, sizeof(struct switch_port) * dev->ports); memset(ports, 0, sizeof(struct switch_port) * dev->ports);
swlib_scan(dev); swlib_scan(dev);
if(chelp) if (cmd == CMD_GET || cmd == CMD_SET) {
{
list_attributes(dev);
goto out;
}
if (cmd != LOAD) {
if(cport > -1) if(cport > -1)
a = swlib_lookup_attr(dev, SWLIB_ATTR_GROUP_PORT, ckey); a = swlib_lookup_attr(dev, SWLIB_ATTR_GROUP_PORT, ckey);
else if(cvlan > -1) else if(cvlan > -1)
@ -215,7 +276,7 @@ int main(int argc, char **argv)
switch(cmd) switch(cmd)
{ {
case SET: case CMD_SET:
if ((a->type != SWITCH_TYPE_NOVAL) && if ((a->type != SWITCH_TYPE_NOVAL) &&
(cvalue == NULL)) (cvalue == NULL))
print_usage(); print_usage();
@ -230,7 +291,7 @@ int main(int argc, char **argv)
goto out; goto out;
} }
break; break;
case GET: case CMD_GET:
if(cvlan > -1) if(cvlan > -1)
val.port_vlan = cvlan; val.port_vlan = cvlan;
if(cport > -1) if(cport > -1)
@ -241,27 +302,29 @@ int main(int argc, char **argv)
retval = -1; retval = -1;
goto out; goto out;
} }
switch(a->type) { print_attr_val(a, &val);
case SWITCH_TYPE_INT: putchar('\n');
printf("%d\n", val.value.i);
break;
case SWITCH_TYPE_STRING:
printf("%s\n", val.value.s);
break;
case SWITCH_TYPE_PORTS:
for(i = 0; i < val.len; i++) {
printf("%d%s ",
val.value.ports[i].id,
(val.value.ports[i].flags &
SWLIB_PORT_FLAG_TAGGED) ? "t" : "");
}
printf("\n");
break;
}
break; break;
case LOAD: case CMD_LOAD:
swconfig_load_uci(dev, ckey); swconfig_load_uci(dev, ckey);
break; break;
case CMD_HELP:
list_attributes(dev);
break;
case CMD_SHOW:
if (cport >= 0 || cvlan >= 0) {
if (cport >= 0)
show_port(dev, cport);
else
show_vlan(dev, cvlan);
} else {
show_global(dev);
for (i=0; i < dev->ports; i++)
show_port(dev, i);
for (i=0; i < dev->vlans; i++)
show_vlan(dev, i);
}
break;
} }
out: out:

View File

@ -152,6 +152,7 @@ sub target_config_features(@) {
while ($_ = shift @_) { while ($_ = shift @_) {
/broken/ and $ret .= "\tdepends BROKEN\n"; /broken/ and $ret .= "\tdepends BROKEN\n";
/audio/ and $ret .= "\tselect AUDIO_SUPPORT\n";
/display/ and $ret .= "\tselect DISPLAY_SUPPORT\n"; /display/ and $ret .= "\tselect DISPLAY_SUPPORT\n";
/gpio/ and $ret .= "\tselect GPIO_SUPPORT\n"; /gpio/ and $ret .= "\tselect GPIO_SUPPORT\n";
/pci/ and $ret .= "\tselect PCI_SUPPORT\n"; /pci/ and $ret .= "\tselect PCI_SUPPORT\n";

View File

@ -11,6 +11,9 @@ config LINUX_2_6
config HAS_FPU config HAS_FPU
bool bool
config AUDIO_SUPPORT
bool
config DISPLAY_SUPPORT config DISPLAY_SUPPORT
bool bool
@ -18,6 +21,7 @@ config GPIO_SUPPORT
bool bool
config PCI_SUPPORT config PCI_SUPPORT
select AUDIO_SUPPORT
bool bool
config PCIE_SUPPORT config PCIE_SUPPORT
@ -27,6 +31,7 @@ config PCMCIA_SUPPORT
bool bool
config USB_SUPPORT config USB_SUPPORT
select AUDIO_SUPPORT
bool bool
config BIG_ENDIAN config BIG_ENDIAN

View File

@ -495,6 +495,7 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# CONFIG_DMA_ENGINE is not set # CONFIG_DMA_ENGINE is not set
# CONFIG_DMASCC is not set # CONFIG_DMASCC is not set
# CONFIG_DMATEST is not set # CONFIG_DMATEST is not set
# CONFIG_DM_LOG_USERSPACE is not set
# CONFIG_DNET is not set # CONFIG_DNET is not set
# CONFIG_DNOTIFY is not set # CONFIG_DNOTIFY is not set
# CONFIG_DRAGONRISE_FF is not set # CONFIG_DRAGONRISE_FF is not set

View File

@ -20,7 +20,7 @@ ARCH:=$(shell uname -m | sed \
) )
BOARD:=uml BOARD:=uml
BOARDNAME:=User Mode Linux BOARDNAME:=User Mode Linux
FEATURES:=ext2 FEATURES:=ext2 audio
LINUX_CONFIG:=$(CURDIR)/config/$(ARCH) LINUX_CONFIG:=$(CURDIR)/config/$(ARCH)
LINUX_VERSION:=2.6.30.10 LINUX_VERSION:=2.6.30.10

View File

@ -177,6 +177,8 @@
# CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PROCESSOR_SELECT is not set # CONFIG_PROCESSOR_SELECT is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_RELOCATABLE is not set # CONFIG_RELOCATABLE is not set
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
# CONFIG_SBC7240_WDT is not set # CONFIG_SBC7240_WDT is not set
@ -230,6 +232,7 @@
# CONFIG_X86_CMPXCHG64 is not set # CONFIG_X86_CMPXCHG64 is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set # CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_CPUID is not set # CONFIG_X86_CPUID is not set
# CONFIG_X86_CPU_DEBUG is not set
# CONFIG_X86_DEBUGCTLMSR is not set # CONFIG_X86_DEBUGCTLMSR is not set
# CONFIG_X86_DS is not set # CONFIG_X86_DS is not set
# CONFIG_X86_ELAN is not set # CONFIG_X86_ELAN is not set
@ -242,6 +245,7 @@
# CONFIG_X86_MCE_INJECT is not set # CONFIG_X86_MCE_INJECT is not set
# CONFIG_X86_MRST is not set # CONFIG_X86_MRST is not set
# CONFIG_X86_MSR is not set # CONFIG_X86_MSR is not set
# CONFIG_X86_OLD_MCE is not set
# CONFIG_X86_P4_CLOCKMOD is not set # CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_PAE is not set # CONFIG_X86_PAE is not set
# CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K6 is not set
@ -450,6 +454,7 @@ CONFIG_PNPACPI=y
CONFIG_PNP_DEBUG_MESSAGES=y CONFIG_PNP_DEBUG_MESSAGES=y
CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY=y
CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_PAGE_MONITOR=y
CONFIG_RCU_FANOUT=32
CONFIG_RD_BZIP2=y CONFIG_RD_BZIP2=y
CONFIG_RD_GZIP=y CONFIG_RD_GZIP=y
CONFIG_RTC=y CONFIG_RTC=y

View File

@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
ARCH:=mipsel ARCH:=mipsel
BOARD:=xburst BOARD:=xburst
BOARDNAME:=XBurst JZ47x0 BOARDNAME:=XBurst JZ47x0
FEATURES:=jffs2 tgz ubifs FEATURES:=jffs2 tgz ubifs audio
LINUX_VERSION:=2.6.32.8 LINUX_VERSION:=2.6.32.7
DEVICE_TYPE=other DEVICE_TYPE=other

View File

@ -8,6 +8,7 @@ choice
Select the version of binutils you wish to use. Select the version of binutils you wish to use.
config BINUTILS_VERSION_2_18 config BINUTILS_VERSION_2_18
depends !ubicom32
bool "binutils 2.18" bool "binutils 2.18"
config BINUTILS_VERSION_2_19_1 config BINUTILS_VERSION_2_19_1

View File

@ -5580,22 +5580,22 @@
case EM_XTENSA: return "Tensilica Xtensa Processor"; case EM_XTENSA: return "Tensilica Xtensa Processor";
--- a/config.sub --- a/config.sub
+++ b/config.sub +++ b/config.sub
@@ -283,6 +283,7 @@ case $basic_machine in @@ -285,6 +285,7 @@ case $basic_machine in
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \ | spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \ | tahoe | thumb | tic4x | tic80 | tron \
+ | ubicom32 \ + | ubicom32 \
| v850 | v850e \ | v850 | v850e \
| ubicom32 \
| we32k \ | we32k \
@@ -367,6 +368,7 @@ case $basic_machine in | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
@@ -370,6 +371,7 @@ case $basic_machine in
| tahoe-* | thumb-* \ | tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tron-* \ | tron-* \
+ | ubicom32-* \ + | ubicom32-* \
| v850-* | v850e-* | vax-* \ | v850-* | v850e-* | vax-* \
| ubicom32-* \
| we32k-* \ | we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
--- a/configure --- a/configure
+++ b/configure +++ b/configure
@@ -2666,6 +2666,12 @@ case "${target}" in @@ -2666,6 +2666,12 @@ case "${target}" in