blob: 22cbd9c857524b03e4c06bf4f197a8deb87cfe04 [file] [log] [blame]
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07001# /bin/sh
2
3# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
4# Distributed under the terms of the GNU General Public License v2
5
6#
7# Helper script to setup compat-wireless configuration.
8#
9
10S=${1:?No kernel source directory specified}
11
12COMPAT_WIRELESS="${S}"/chromeos/compat-wireless
13COMPAT_VERSION=`cat ${COMPAT_WIRELESS}/compat_version`
14COMPAT_RELEASE=`cat ${COMPAT_WIRELESS}/compat_version`
15COMPAT_BASE_TREE=`cat ${COMPAT_WIRELESS}/compat_base_tree`
16COMPAT_BASE_TREE_VERSION=`cat ${COMPAT_WIRELESS}/compat_base_tree_version`
17# TODO(sleffler) calculate CONFIG_COMPAT_KERNEL version
18
19COMPAT_CONFIG='
20 CONFIG_COMPAT_KERNEL_33=y
21 CONFIG_COMPAT_FIRMWARE_CLASS=m
22
23 CONFIG_COMPAT_RFKILL=y
24 CONFIG_RFKILL_BACKPORT=y
25 CONFIG_RFKILL_BACKPORT_INPUT=y
26
27 CONFIG_COMPAT_WIRELESS=m
28 CONFIG_COMPAT_WIRELESS_MODULES=m
29
30 CONFIG_MAC80211=m
31 CONFIG_MAC80211_LEDS=y
32 CONFIG_MAC80211_DEBUGFS=y
33 CONFIG_MAC80211_RC_MINSTREL=y
34 CONFIG_MAC80211_RC_DEFAULT="minstrel"
35 CONFIG_COMPAT_MAC80211_RC_DEFAULT="minstrel"
36
37 CONFIG_CFG80211=m
38 CONFIG_CFG80211_DEBUGFS=y
39 CONFIG_CFG80211_DEFAULT_PS=y
40 CONFIG_CFG80211_WEXT=y
41
42 CONFIG_ATH=y
43 CONFIG_ATH_COMMON=m
44 CONFIG_ATH_DEBUG=y
45 CONFIG_ATH5K=m
46 CONFIG_ATH9K=m
47 CONFIG_ATH9K_HW=m
48 CONFIG_ATH9K_COMMON=m
49 CONFIG_ATH9K_DEBUGFS=y
50
51 CONFIG_IWLWIFI=m
52 CONFIG_IWLWIFI_SPECTRUM_MANAGEMENT=y
53 CONFIG_IWLAGN=m
54 CONFIG_COMPAT_IWL4965=y
55 CONFIG_IWL5000=y
56 CONFIG_IWL3945=m
57 CONFIG_IWL3945_SPECTRUM_MANAGEMENT=y
58 CONFIG_IWLWIFI_DEBUG=y
59 CONFIG_IWLWIFI_DEBUGFS=y
60
61 CONFIG_USB_NET_COMPAT_CDCETHER=m
62 CONFIG_USB_NET_COMPAT_RNDIS_HOST=m
63 CONFIG_USB_COMPAT_USBNET=m
64'
65echo "Configure compat-wireless: ${COMPAT_CONFIG}"
66
67#
68# Edit Makefiles to reflect configuration knobs
69#
70SED_ARGS=
71for c in $COMPAT_CONFIG; do
72 a=`echo $c | sed s/=.*//`
73 b=`echo $c | sed s/.*=//`
74 SED_ARGS="$SED_ARGS -e s/[\$]("$a")/"$b"/"
75done
76
77Makefiles=`find -L "${COMPAT_WIRELESS}" -name Makefile`
78for m in $Makefiles; do
79 sed $SED_ARGS -i $m
80done
81
82# Construct include/linux/compat_autoconf.h
83(cat<<EOF
84#ifndef COMPAT_AUTOCONF_INCLUDED
85#define COMPAT_AUTOCONF_INCLUDED
86/*
87* Automatically generated by chromeos-base/kernel/kernel-*.ebuild
88* compat-wireless-2.6: $COMPAT_VERSION
89* linux-2.6: v2.6.32
90*/
91#define COMPAT_BASE_TREE "$COMPAT_BASE_TREE"
92#define COMPAT_BASE_TREE_VERSION "$COMPAT_BASE_TREE_VERSION"
93#define COMPAT_PROJECT "Compat-wireless"
94#define COMPAT_VERSION "$COMPAT_VERSION"
95
96#ifndef CONFIG_WIRELESS_EXT
97#error Compat-wireless requirement: CONFIG_WIRELESS_EXT must be enabled in your kernel
98#endif /* CONFIG_WIRELESS_EXT */
99EOF
100 for c in $COMPAT_CONFIG; do
101 a=`echo $c | sed s/=.*//`
102 b=`echo $c | sed s/.*=//`
103 case $b in
104 m|y)
105 echo "#define $a 1";;
106 *)
107 echo "#define $a $b";;
108 esac
109 done
110 cat<<'EOF'
111#ifdef CONFIG_NET_SCHED
112#ifdef CONFIG_NETDEVICES_MULTIQUEUE
113#ifndef CONFIG_MAC80211_QOS
114#define CONFIG_MAC80211_QOS 1
115#endif /* CONFIG_MAC80211_QOS */
116#endif
117#endif
118#endif /* COMPAT_AUTOCONF_INCLUDED */
119EOF
120)>"${COMPAT_WIRELESS}"/include/linux/compat_autoconf.h