1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-26 06:25:11 +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
SUBMENU:=$(SOUND_MENU)
TITLE:=Sound support
DEPENDS:=@PCI_SUPPORT||USB_SUPPORT||TARGET_uml
DEPENDS:=@AUDIO_SUPPORT
KCONFIG:= \
CONFIG_SOUND \
CONFIG_SND \

View File

@ -1,13 +1,19 @@
--- a/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 */
slottime = ah->slottime + 3 * ah->coverage_class;
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)
+ acktimeout = max(64, acktimeout);
+ acktimeout += 64 - sifstime - ah->slottime;
+
ath9k_hw_setslottime(ah, slottime);
ath9k_hw_set_ack_timeout(ah, acktimeout);

View File

@ -2,6 +2,7 @@
* swconfig.c: Switch configuration utility
*
* 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
* modify it under the terms of the GNU General Public License
@ -34,9 +35,12 @@
#include "swlib.h"
enum {
GET,
SET,
LOAD
CMD_NONE,
CMD_GET,
CMD_SET,
CMD_LOAD,
CMD_HELP,
CMD_SHOW,
};
static void
@ -79,10 +83,80 @@ list_attributes(struct switch_dev *dev)
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
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);
}
@ -124,13 +198,12 @@ int main(int argc, char **argv)
struct switch_port *ports;
int cmd = 0;
int cmd = CMD_NONE;
char *cdev = NULL;
int cport = -1;
int cvlan = -1;
char *ckey = NULL;
char *cvalue = NULL;
int chelp = 0;
if(argc < 4)
print_usage();
@ -142,44 +215,38 @@ int main(int argc, char **argv)
for(i = 3; i < argc; i++)
{
int p;
if (!strcmp(argv[i], "help")) {
chelp = 1;
continue;
}
if( i + 1 >= argc)
char *arg = argv[i];
if (cmd != CMD_NONE) {
print_usage();
p = atoi(argv[i + 1]);
if (!strcmp(argv[i], "port")) {
cport = p;
} else if (!strcmp(argv[i], "vlan")) {
cvlan = p;
} else if (!strcmp(argv[i], "set")) {
if(argc <= i + 1)
print_usage();
cmd = SET;
ckey = argv[i + 1];
if (argc > i + 2)
cvalue = argv[i + 2];
else
cvalue = NULL;
i++;
} else if (!strcmp(argv[i], "get")) {
cmd = GET;
ckey = argv[i + 1];
} else if (!strcmp(argv[i], "load")) {
} else if (!strcmp(arg, "port") && i+1 < argc) {
cport = atoi(argv[++i]);
} else if (!strcmp(arg, "vlan") && i+1 < argc) {
cvlan = atoi(argv[++i]);
} else if (!strcmp(arg, "help")) {
cmd = CMD_HELP;
} else if (!strcmp(arg, "set") && i+1 < argc) {
cmd = CMD_SET;
ckey = argv[++i];
if (i+1 < argc)
cvalue = argv[++i];
} else if (!strcmp(arg, "get") && i+1 < argc) {
cmd = CMD_GET;
ckey = argv[++i];
} else if (!strcmp(arg, "load") && i+1 < argc) {
if ((cport >= 0) || (cvlan >= 0))
print_usage();
ckey = argv[i + 1];
cmd = LOAD;
cmd = CMD_LOAD;
ckey = argv[++i];
} else if (!strcmp(arg, "show")) {
cmd = CMD_SHOW;
} else {
print_usage();
}
i++;
}
if(cport > -1 && cvlan > -1)
if (cmd == CMD_NONE)
print_usage();
if (cport > -1 && cvlan > -1)
print_usage();
dev = swlib_connect(cdev);
@ -192,13 +259,7 @@ int main(int argc, char **argv)
memset(ports, 0, sizeof(struct switch_port) * dev->ports);
swlib_scan(dev);
if(chelp)
{
list_attributes(dev);
goto out;
}
if (cmd != LOAD) {
if (cmd == CMD_GET || cmd == CMD_SET) {
if(cport > -1)
a = swlib_lookup_attr(dev, SWLIB_ATTR_GROUP_PORT, ckey);
else if(cvlan > -1)
@ -215,7 +276,7 @@ int main(int argc, char **argv)
switch(cmd)
{
case SET:
case CMD_SET:
if ((a->type != SWITCH_TYPE_NOVAL) &&
(cvalue == NULL))
print_usage();
@ -230,7 +291,7 @@ int main(int argc, char **argv)
goto out;
}
break;
case GET:
case CMD_GET:
if(cvlan > -1)
val.port_vlan = cvlan;
if(cport > -1)
@ -241,27 +302,29 @@ int main(int argc, char **argv)
retval = -1;
goto out;
}
switch(a->type) {
case SWITCH_TYPE_INT:
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;
}
print_attr_val(a, &val);
putchar('\n');
break;
case LOAD:
case CMD_LOAD:
swconfig_load_uci(dev, ckey);
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:

View File

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

View File

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

View File

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

View File

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

View File

@ -177,6 +177,8 @@
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PROCESSOR_SELECT 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_RWSEM_GENERIC_SPINLOCK is not set
# CONFIG_SBC7240_WDT is not set
@ -230,6 +232,7 @@
# CONFIG_X86_CMPXCHG64 is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_CPUID is not set
# CONFIG_X86_CPU_DEBUG is not set
# CONFIG_X86_DEBUGCTLMSR is not set
# CONFIG_X86_DS is not set
# CONFIG_X86_ELAN is not set
@ -242,6 +245,7 @@
# CONFIG_X86_MCE_INJECT is not set
# CONFIG_X86_MRST 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_PAE is not set
# CONFIG_X86_POWERNOW_K6 is not set
@ -450,6 +454,7 @@ CONFIG_PNPACPI=y
CONFIG_PNP_DEBUG_MESSAGES=y
CONFIG_POWER_SUPPLY=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_RCU_FANOUT=32
CONFIG_RD_BZIP2=y
CONFIG_RD_GZIP=y
CONFIG_RTC=y

View File

@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
ARCH:=mipsel
BOARD:=xburst
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

View File

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

View File

@ -5580,22 +5580,22 @@
case EM_XTENSA: return "Tensilica Xtensa Processor";
--- a/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 \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
+ | ubicom32 \
| v850 | v850e \
| ubicom32 \
| 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-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tron-* \
+ | ubicom32-* \
| v850-* | v850e-* | vax-* \
| ubicom32-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
--- a/configure
+++ b/configure
@@ -2666,6 +2666,12 @@ case "${target}" in