[oe] [PATCH 1/4] linux-2.6.30: fix ronetix-pm9g45 board support

Eric Bénard eric at eukrea.com
Tue Jul 5 16:38:16 UTC 2011


* patches previously fetched are no more present and patches integrated in OE were
updated so upgrade to the latest kernel patches available from Ronetix.

* this patch also enable UBIFS in the defconfig in order to be able to have
a UBIFS rootfs

Signed-off-by: Eric Bénard <eric at eukrea.com>
---
 .../0001-ads7846-.c-and-.h-add-swap_xy.patch       |    8 +-
 .../0002-add-pm9g45-number-in-mach-types.patch     | 4896 ---
 ...02-print-some-more-info-from-atmel_nand.c.patch |   42 +
 ...newline-at-the-end-of-uncorrectable-error.patch |   27 +
 ...03-print-some-more-info-from-atmel_nand.c.patch |   40 -
 ...-CompactFlash-to-at91sam9g45-architecture.patch |  145 +
 ...newline-at-the-end-of-uncorrectable-error.patch |   25 -
 ...-CompactFlash-to-at91sam9g45-architecture.patch |  143 -
 ...05-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch |   62 +
 .../ronetix-pm9g45/0006-add-board-pm9g45.patch     | 1005 +
 ...06-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch |   60 -
 .../ronetix-pm9g45/0007-add-pm9g45-board.patch     | 1004 -
 .../0007-pm9g45-default-configuration-files.patch  | 3360 ++
 .../0008-add-float-flags-in-Makefile.patch         |   29 +
 .../0008-pm9g45-default-configuration-files.patch  | 3358 --
 .../0009-add-float-flags-in-Makefile.patch         |   27 -
 ...009-conditional-compile-if-DEDICATED_VRAM.patch |   73 +
 ...board-version-1.2-and-adjust-memory-selec.patch |  139 +
 ...010-conditional-compile-if-DEDICATED_VRAM.patch |   70 -
 ...-board-version-1.2-and-adjust-memory-sele.patch |  138 -
 ...-enable-USB-Device-with-On-the-go-ability.patch |   44 +
 .../0012-one-more-update-of-mach-types.patch       |  907 +
 .../0013-sam9g45-UHSDP-add-debug-info.patch        |  130 +
 ...anges-FIXME-to-choose-a-base-board-each-b.patch |  830 +
 ...pactFlash-only-on-BB9263-v1.1-add-a-FIX-m.patch |   38 +
 ...16-enable-GAT.-LCD-backlight-capabilities.patch |   25 +
 ...5-change-GAT.-color-depth-and-wiring-mode.patch |   32 +
 .../0018-RGB_BGR-fixes-of-LCD-on-bb9g45.patch      |   57 +
 .../0019-bb9g45-sound-now-works.patch              |   36 +
 ..._tsadcc-introduce-changes-needed-for-at91.patch |  179 +
 .../0021-make-touchscreen-on-EB9G45-works.patch    |   62 +
 ...-bb9g45-USB-connector-J3-to-act-as-device.patch |  112 +
 .../ronetix-pm9g45/2.6.30-at91-exp.patch           |33460 --------------------
 .../linux/linux-2.6.30/ronetix-pm9g45/defconfig    |  356 +-
 recipes/linux/linux_2.6.30.bb                      |   42 +-
 35 files changed, 7650 insertions(+), 43311 deletions(-)
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-add-pm9g45-number-in-mach-types.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-print-some-more-info-from-atmel_nand.c.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-add-newline-at-the-end-of-uncorrectable-error.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-print-some-more-info-from-atmel_nand.c.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-Add-CompactFlash-to-at91sam9g45-architecture.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-add-newline-at-the-end-of-uncorrectable-error.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-Add-CompactFlash-to-at91sam9g45-architecture.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-add-board-pm9g45.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-add-pm9g45-board.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-pm9g45-default-configuration-files.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-add-float-flags-in-Makefile.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-pm9g45-default-configuration-files.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-add-float-flags-in-Makefile.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-conditional-compile-if-DEDICATED_VRAM.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-add-pm9g45-board-version-1.2-and-adjust-memory-selec.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-conditional-compile-if-DEDICATED_VRAM.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-add-pm9g45-board-version-1.2-and-adjust-memory-sele.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-enable-USB-Device-with-On-the-go-ability.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0012-one-more-update-of-mach-types.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0013-sam9g45-UHSDP-add-debug-info.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0014-A-mix-of-changes-FIXME-to-choose-a-base-board-each-b.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0015-Selects-CompactFlash-only-on-BB9263-v1.1-add-a-FIX-m.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0016-enable-GAT.-LCD-backlight-capabilities.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0017-pm9g45-change-GAT.-color-depth-and-wiring-mode.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0018-RGB_BGR-fixes-of-LCD-on-bb9g45.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0019-bb9g45-sound-now-works.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0020-input-atmel_tsadcc-introduce-changes-needed-for-at91.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0021-make-touchscreen-on-EB9G45-works.patch
 create mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/0022-bb9g45-USB-connector-J3-to-act-as-device.patch
 delete mode 100644 recipes/linux/linux-2.6.30/ronetix-pm9g45/2.6.30-at91-exp.patch

diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0001-ads7846-.c-and-.h-add-swap_xy.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0001-ads7846-.c-and-.h-add-swap_xy.patch
index 676b0c2..5e88755 100644
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0001-ads7846-.c-and-.h-add-swap_xy.patch
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0001-ads7846-.c-and-.h-add-swap_xy.patch
@@ -1,8 +1,10 @@
-From 84325d6118849188bd765933e0f2db6795df9756 Mon Sep 17 00:00:00 2001
+From 35c7710305a1f031e114b3d509a63ac8647d0d0b Mon Sep 17 00:00:00 2001
 From: Asen Dimov <dimov at ronetix.at>
 Date: Tue, 2 Mar 2010 00:58:51 +0200
-Subject: [PATCH] ads7846 .c and .h add swap_xy
+Subject: [[PATCH 01/22] ads7846 .c and .h add swap_xy
 
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
 ---
  drivers/input/touchscreen/ads7846.c |   24 ++++++++++++++++++++----
  include/linux/spi/ads7846.h         |    1 +
@@ -96,5 +98,5 @@ index 2ea2032..51948eb 100644
  	/* Settling time of the analog signals; a function of Vcc and the
  	 * capacitance on the X/Y drivers.  If set to non-zero, two samples
 -- 
-1.5.5.6
+1.7.4.4
 
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-add-pm9g45-number-in-mach-types.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-add-pm9g45-number-in-mach-types.patch
deleted file mode 100644
index 2917c1d..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-add-pm9g45-number-in-mach-types.patch
+++ /dev/null
@@ -1,4896 +0,0 @@
-From bc099148e45275e67743e28b3a620758d2693ca5 Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:00:54 +0200
-Subject: [PATCH] add pm9g45 number in mach-types
-
----
- arch/arm/tools/mach-types | 4873 ++++++++++++++++++++++++---------------------
- 1 files changed, 2642 insertions(+), 2231 deletions(-)
-
-diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
-index 165288a..e7ab8d2 100644
---- a/arch/arm/tools/mach-types
-+++ b/arch/arm/tools/mach-types
-@@ -12,2237 +12,2648 @@
- #
- #   http://www.arm.linux.org.uk/developer/machines/?action=new
- #
--# Last update: Fri May 29 10:14:20 2009
-+# Last update: Mon Feb 8 16:28:27 2010
- #
- # machine_is_xxx	CONFIG_xxxx		MACH_TYPE_xxx		number
- #
--ebsa110			ARCH_EBSA110		EBSA110			0
--riscpc			ARCH_RPC		RISCPC			1
--nexuspci		ARCH_NEXUSPCI		NEXUSPCI		3
--ebsa285			ARCH_EBSA285		EBSA285			4
--netwinder		ARCH_NETWINDER		NETWINDER		5
--cats			ARCH_CATS		CATS			6
--tbox			ARCH_TBOX		TBOX			7
--co285			ARCH_CO285		CO285			8
--clps7110		ARCH_CLPS7110		CLPS7110		9
--archimedes		ARCH_ARC		ARCHIMEDES		10
--a5k			ARCH_A5K		A5K			11
--etoile			ARCH_ETOILE		ETOILE			12
--lacie_nas		ARCH_LACIE_NAS		LACIE_NAS		13
--clps7500		ARCH_CLPS7500		CLPS7500		14
--shark			ARCH_SHARK		SHARK			15
--brutus			SA1100_BRUTUS		BRUTUS			16
--personal_server		ARCH_PERSONAL_SERVER	PERSONAL_SERVER		17
--itsy			SA1100_ITSY		ITSY			18
--l7200			ARCH_L7200		L7200			19
--pleb			SA1100_PLEB		PLEB			20
--integrator		ARCH_INTEGRATOR		INTEGRATOR		21
--h3600			SA1100_H3600		H3600			22
--ixp1200			ARCH_IXP1200		IXP1200			23
--p720t			ARCH_P720T		P720T			24
--assabet			SA1100_ASSABET		ASSABET			25
--victor			SA1100_VICTOR		VICTOR			26
--lart			SA1100_LART		LART			27
--ranger			SA1100_RANGER		RANGER			28
--graphicsclient		SA1100_GRAPHICSCLIENT	GRAPHICSCLIENT		29
--xp860			SA1100_XP860		XP860			30
--cerf			SA1100_CERF		CERF			31
--nanoengine		SA1100_NANOENGINE	NANOENGINE		32
--fpic			SA1100_FPIC		FPIC			33
--extenex1		SA1100_EXTENEX1		EXTENEX1		34
--sherman			SA1100_SHERMAN		SHERMAN			35
--accelent_sa		SA1100_ACCELENT		ACCELENT_SA		36
--accelent_l7200		ARCH_L7200_ACCELENT	ACCELENT_L7200		37
--netport			SA1100_NETPORT		NETPORT			38
--pangolin		SA1100_PANGOLIN		PANGOLIN		39
--yopy			SA1100_YOPY		YOPY			40
--coolidge		SA1100_COOLIDGE		COOLIDGE		41
--huw_webpanel		SA1100_HUW_WEBPANEL	HUW_WEBPANEL		42
--spotme			ARCH_SPOTME		SPOTME			43
--freebird		ARCH_FREEBIRD		FREEBIRD		44
--ti925			ARCH_TI925		TI925			45
--riscstation		ARCH_RISCSTATION	RISCSTATION		46
--cavy			SA1100_CAVY		CAVY			47
--jornada720		SA1100_JORNADA720	JORNADA720		48
--omnimeter		SA1100_OMNIMETER	OMNIMETER		49
--edb7211			ARCH_EDB7211		EDB7211			50
--citygo			SA1100_CITYGO		CITYGO			51
--pfs168			SA1100_PFS168		PFS168			52
--spot			SA1100_SPOT		SPOT			53
--flexanet		SA1100_FLEXANET		FLEXANET		54
--webpal			ARCH_WEBPAL		WEBPAL			55
--linpda			SA1100_LINPDA		LINPDA			56
--anakin			ARCH_ANAKIN		ANAKIN			57
--mvi			SA1100_MVI		MVI			58
--jupiter			SA1100_JUPITER		JUPITER			59
--psionw			ARCH_PSIONW		PSIONW			60
--aln			SA1100_ALN		ALN			61
--epxa			ARCH_CAMELOT		CAMELOT			62
--gds2200			SA1100_GDS2200		GDS2200			63
--netbook			SA1100_PSION_SERIES7	PSION_SERIES7		64
--xfile			SA1100_XFILE		XFILE			65
--accelent_ep9312		ARCH_ACCELENT_EP9312	ACCELENT_EP9312		66
--ic200			ARCH_IC200		IC200			67
--creditlart		SA1100_CREDITLART	CREDITLART		68
--htm			SA1100_HTM		HTM			69
--iq80310			ARCH_IQ80310		IQ80310			70
--freebot			SA1100_FREEBOT		FREEBOT			71
--entel			ARCH_ENTEL		ENTEL			72
--enp3510			ARCH_ENP3510		ENP3510			73
--trizeps			SA1100_TRIZEPS		TRIZEPS			74
--nesa			SA1100_NESA		NESA			75
--venus			ARCH_VENUS		VENUS			76
--tardis			ARCH_TARDIS		TARDIS			77
--mercury			ARCH_MERCURY		MERCURY			78
--empeg			SA1100_EMPEG		EMPEG			79
--adi_evb			ARCH_I80200FCC		I80200FCC		80
--itt_cpb			SA1100_ITT_CPB		ITT_CPB			81
--svc			SA1100_SVC		SVC			82
--alpha2			SA1100_ALPHA2		ALPHA2			84
--alpha1			SA1100_ALPHA1		ALPHA1			85
--netarm			ARCH_NETARM		NETARM			86
--simpad			SA1100_SIMPAD		SIMPAD			87
--pda1			ARCH_PDA1		PDA1			88
--lubbock			ARCH_LUBBOCK		LUBBOCK			89
--aniko			ARCH_ANIKO		ANIKO			90
--clep7212		ARCH_CLEP7212		CLEP7212		91
--cs89712			ARCH_CS89712		CS89712			92
--weararm			SA1100_WEARARM		WEARARM			93
--possio_px		SA1100_POSSIO_PX	POSSIO_PX		94
--sidearm			SA1100_SIDEARM		SIDEARM			95
--stork			SA1100_STORK		STORK			96
--shannon			SA1100_SHANNON		SHANNON			97
--ace			ARCH_ACE		ACE			98
--ballyarm		SA1100_BALLYARM		BALLYARM		99
--simputer		SA1100_SIMPUTER		SIMPUTER		100
--nexterm			SA1100_NEXTERM		NEXTERM			101
--sa1100_elf		SA1100_SA1100_ELF	SA1100_ELF		102
--gator			SA1100_GATOR		GATOR			103
--granite			ARCH_GRANITE		GRANITE			104
--consus			SA1100_CONSUS		CONSUS			105
--aaed2000		ARCH_AAED2000		AAED2000		106
--cdb89712		ARCH_CDB89712		CDB89712		107
--graphicsmaster		SA1100_GRAPHICSMASTER	GRAPHICSMASTER		108
--adsbitsy		SA1100_ADSBITSY		ADSBITSY		109
--pxa_idp			ARCH_PXA_IDP		PXA_IDP			110
--plce			ARCH_PLCE		PLCE			111
--pt_system3		SA1100_PT_SYSTEM3	PT_SYSTEM3		112
--murphy			ARCH_MEDALB		MEDALB			113
--eagle			ARCH_EAGLE		EAGLE			114
--dsc21			ARCH_DSC21		DSC21			115
--dsc24			ARCH_DSC24		DSC24			116
--ti5472			ARCH_TI5472		TI5472			117
--autcpu12		ARCH_AUTCPU12		AUTCPU12		118
--uengine			ARCH_UENGINE		UENGINE			119
--bluestem		SA1100_BLUESTEM		BLUESTEM		120
--xingu8			ARCH_XINGU8		XINGU8			121
--bushstb			ARCH_BUSHSTB		BUSHSTB			122
--epsilon1		SA1100_EPSILON1		EPSILON1		123
--balloon			SA1100_BALLOON		BALLOON			124
--puppy			ARCH_PUPPY		PUPPY			125
--elroy			SA1100_ELROY		ELROY			126
--gms720			ARCH_GMS720		GMS720			127
--s24x			ARCH_S24X		S24X			128
--jtel_clep7312		ARCH_JTEL_CLEP7312	JTEL_CLEP7312		129
--cx821xx			ARCH_CX821XX		CX821XX			130
--edb7312			ARCH_EDB7312		EDB7312			131
--bsa1110			SA1100_BSA1110		BSA1110			132
--powerpin		ARCH_POWERPIN		POWERPIN		133
--openarm			ARCH_OPENARM		OPENARM			134
--whitechapel		SA1100_WHITECHAPEL	WHITECHAPEL		135
--h3100			SA1100_H3100		H3100			136
--h3800			SA1100_H3800		H3800			137
--blue_v1			ARCH_BLUE_V1		BLUE_V1			138
--pxa_cerf		ARCH_PXA_CERF		PXA_CERF		139
--arm7tevb		ARCH_ARM7TEVB		ARM7TEVB		140
--d7400			SA1100_D7400		D7400			141
--piranha			ARCH_PIRANHA		PIRANHA			142
--sbcamelot		SA1100_SBCAMELOT	SBCAMELOT		143
--kings			SA1100_KINGS		KINGS			144
--smdk2400		ARCH_SMDK2400		SMDK2400		145
--collie			SA1100_COLLIE		COLLIE			146
--idr			ARCH_IDR		IDR			147
--badge4			SA1100_BADGE4		BADGE4			148
--webnet			ARCH_WEBNET		WEBNET			149
--d7300			SA1100_D7300		D7300			150
--cep			SA1100_CEP		CEP			151
--fortunet		ARCH_FORTUNET		FORTUNET		152
--vc547x			ARCH_VC547X		VC547X			153
--filewalker		SA1100_FILEWALKER	FILEWALKER		154
--netgateway		SA1100_NETGATEWAY	NETGATEWAY		155
--symbol2800		SA1100_SYMBOL2800	SYMBOL2800		156
--suns			SA1100_SUNS		SUNS			157
--frodo			SA1100_FRODO		FRODO			158
--ms301			SA1100_MACH_TYTE_MS301	MACH_TYTE_MS301		159
--mx1ads			ARCH_MX1ADS		MX1ADS			160
--h7201			ARCH_H7201		H7201			161
--h7202			ARCH_H7202		H7202			162
--amico			ARCH_AMICO		AMICO			163
--iam			SA1100_IAM		IAM			164
--tt530			SA1100_TT530		TT530			165
--sam2400			ARCH_SAM2400		SAM2400			166
--jornada56x		SA1100_JORNADA56X	JORNADA56X		167
--active			SA1100_ACTIVE		ACTIVE			168
--iq80321			ARCH_IQ80321		IQ80321			169
--wid			SA1100_WID		WID			170
--sabinal			ARCH_SABINAL		SABINAL			171
--ixp425_matacumbe	ARCH_IXP425_MATACUMBE	IXP425_MATACUMBE	172
--miniprint		SA1100_MINIPRINT	MINIPRINT		173
--adm510x			ARCH_ADM510X		ADM510X			174
--svs200			SA1100_SVS200		SVS200			175
--atg_tcu			ARCH_ATG_TCU		ATG_TCU			176
--jornada820		SA1100_JORNADA820	JORNADA820		177
--s3c44b0			ARCH_S3C44B0		S3C44B0			178
--margis2			ARCH_MARGIS2		MARGIS2			179
--ks8695			ARCH_KS8695		KS8695			180
--brh			ARCH_BRH		BRH			181
--s3c2410			ARCH_S3C2410		S3C2410			182
--possio_px30		ARCH_POSSIO_PX30	POSSIO_PX30		183
--s3c2800			ARCH_S3C2800		S3C2800			184
--fleetwood		SA1100_FLEETWOOD	FLEETWOOD		185
--omaha			ARCH_OMAHA		OMAHA			186
--ta7			ARCH_TA7		TA7			187
--nova			SA1100_NOVA		NOVA			188
--hmk			ARCH_HMK		HMK			189
--karo			ARCH_KARO		KARO			190
--fester			SA1100_FESTER		FESTER			191
--gpi			ARCH_GPI		GPI			192
--smdk2410		ARCH_SMDK2410		SMDK2410		193
--i519			ARCH_I519		I519			194
--nexio			SA1100_NEXIO		NEXIO			195
--bitbox			SA1100_BITBOX		BITBOX			196
--g200			SA1100_G200		G200			197
--gill			SA1100_GILL		GILL			198
--pxa_mercury		ARCH_PXA_MERCURY	PXA_MERCURY		199
--ceiva			ARCH_CEIVA		CEIVA			200
--fret			SA1100_FRET		FRET			201
--emailphone		SA1100_EMAILPHONE	EMAILPHONE		202
--h3900			ARCH_H3900		H3900			203
--pxa1			ARCH_PXA1		PXA1			204
--koan369			SA1100_KOAN369		KOAN369			205
--cogent			ARCH_COGENT		COGENT			206
--esl_simputer		ARCH_ESL_SIMPUTER	ESL_SIMPUTER		207
--esl_simputer_clr	ARCH_ESL_SIMPUTER_CLR	ESL_SIMPUTER_CLR	208
--esl_simputer_bw		ARCH_ESL_SIMPUTER_BW	ESL_SIMPUTER_BW		209
--hhp_cradle		ARCH_HHP_CRADLE		HHP_CRADLE		210
--he500			ARCH_HE500		HE500			211
--inhandelf2		SA1100_INHANDELF2	INHANDELF2		212
--inhandftip		SA1100_INHANDFTIP	INHANDFTIP		213
--dnp1110			SA1100_DNP1110		DNP1110			214
--pnp1110			SA1100_PNP1110		PNP1110			215
--csb226			ARCH_CSB226		CSB226			216
--arnold			SA1100_ARNOLD		ARNOLD			217
--voiceblue		MACH_VOICEBLUE		VOICEBLUE		218
--jz8028			ARCH_JZ8028		JZ8028			219
--h5400			ARCH_H5400		H5400			220
--forte			SA1100_FORTE		FORTE			221
--acam			SA1100_ACAM		ACAM			222
--abox			SA1100_ABOX		ABOX			223
--atmel			ARCH_ATMEL		ATMEL			224
--sitsang			ARCH_SITSANG		SITSANG			225
--cpu1110lcdnet		SA1100_CPU1110LCDNET	CPU1110LCDNET		226
--mpl_vcma9		ARCH_MPL_VCMA9		MPL_VCMA9		227
--opus_a1			ARCH_OPUS_A1		OPUS_A1			228
--daytona			ARCH_DAYTONA		DAYTONA			229
--killbear		SA1100_KILLBEAR		KILLBEAR		230
--yoho			ARCH_YOHO		YOHO			231
--jasper			ARCH_JASPER		JASPER			232
--dsc25			ARCH_DSC25		DSC25			233
--omap_innovator		MACH_OMAP_INNOVATOR	OMAP_INNOVATOR		234
--mnci			ARCH_RAMSES		RAMSES			235
--s28x			ARCH_S28X		S28X			236
--mport3			ARCH_MPORT3		MPORT3			237
--pxa_eagle250		ARCH_PXA_EAGLE250	PXA_EAGLE250		238
--pdb			ARCH_PDB		PDB			239
--blue_2g			SA1100_BLUE_2G		BLUE_2G			240
--bluearch		SA1100_BLUEARCH		BLUEARCH		241
--ixdp2400		ARCH_IXDP2400		IXDP2400		242
--ixdp2800		ARCH_IXDP2800		IXDP2800		243
--explorer		SA1100_EXPLORER		EXPLORER		244
--ixdp425			ARCH_IXDP425		IXDP425			245
--chimp			ARCH_CHIMP		CHIMP			246
--stork_nest		ARCH_STORK_NEST		STORK_NEST		247
--stork_egg		ARCH_STORK_EGG		STORK_EGG		248
--wismo			SA1100_WISMO		WISMO			249
--ezlinx			ARCH_EZLINX		EZLINX			250
--at91rm9200		ARCH_AT91RM9200		AT91RM9200		251
--adtech_orion		ARCH_ADTECH_ORION	ADTECH_ORION		252
--neptune			ARCH_NEPTUNE		NEPTUNE			253
--hackkit			SA1100_HACKKIT		HACKKIT			254
--pxa_wins30		ARCH_PXA_WINS30		PXA_WINS30		255
--lavinna			SA1100_LAVINNA		LAVINNA			256
--pxa_uengine		ARCH_PXA_UENGINE	PXA_UENGINE		257
--innokom			ARCH_INNOKOM		INNOKOM			258
--bms			ARCH_BMS		BMS			259
--ixcdp1100		ARCH_IXCDP1100		IXCDP1100		260
--prpmc1100		ARCH_PRPMC1100		PRPMC1100		261
--at91rm9200dk		ARCH_AT91RM9200DK	AT91RM9200DK		262
--armstick		ARCH_ARMSTICK		ARMSTICK		263
--armonie			ARCH_ARMONIE		ARMONIE			264
--mport1			ARCH_MPORT1		MPORT1			265
--s3c5410			ARCH_S3C5410		S3C5410			266
--zcp320a			ARCH_ZCP320A		ZCP320A			267
--i_box			ARCH_I_BOX		I_BOX			268
--stlc1502		ARCH_STLC1502		STLC1502		269
--siren			ARCH_SIREN		SIREN			270
--greenlake		ARCH_GREENLAKE		GREENLAKE		271
--argus			ARCH_ARGUS		ARGUS			272
--combadge		SA1100_COMBADGE		COMBADGE		273
--rokepxa			ARCH_ROKEPXA		ROKEPXA			274
--cintegrator		ARCH_CINTEGRATOR	CINTEGRATOR		275
--guidea07		ARCH_GUIDEA07		GUIDEA07		276
--tat257			ARCH_TAT257		TAT257			277
--igp2425			ARCH_IGP2425		IGP2425			278
--bluegrama		ARCH_BLUEGRAMMA		BLUEGRAMMA		279
--ipod			ARCH_IPOD		IPOD			280
--adsbitsyx		ARCH_ADSBITSYX		ADSBITSYX		281
--trizeps2		ARCH_TRIZEPS2		TRIZEPS2		282
--viper			ARCH_VIPER		VIPER			283
--adsbitsyplus		SA1100_ADSBITSYPLUS	ADSBITSYPLUS		284
--adsagc			SA1100_ADSAGC		ADSAGC			285
--stp7312			ARCH_STP7312		STP7312			286
--nx_phnx			MACH_NX_PHNX		NX_PHNX			287
--wep_ep250		ARCH_WEP_EP250		WEP_EP250		288
--inhandelf3		ARCH_INHANDELF3		INHANDELF3		289
--adi_coyote		ARCH_ADI_COYOTE		ADI_COYOTE		290
--iyonix			ARCH_IYONIX		IYONIX			291
--damicam1		ARCH_DAMICAM_SA1110	DAMICAM_SA1110		292
--meg03			ARCH_MEG03		MEG03			293
--pxa_whitechapel		ARCH_PXA_WHITECHAPEL	PXA_WHITECHAPEL		294
--nwsc			ARCH_NWSC		NWSC			295
--nwlarm			ARCH_NWLARM		NWLARM			296
--ixp425_mguard		ARCH_IXP425_MGUARD	IXP425_MGUARD		297
--pxa_netdcu4		ARCH_PXA_NETDCU4	PXA_NETDCU4		298
--ixdp2401		ARCH_IXDP2401		IXDP2401		299
--ixdp2801		ARCH_IXDP2801		IXDP2801		300
--zodiac			ARCH_ZODIAC		ZODIAC			301
--armmodul		ARCH_ARMMODUL		ARMMODUL		302
--ketop			SA1100_KETOP		KETOP			303
--av7200			ARCH_AV7200		AV7200			304
--arch_ti925		ARCH_ARCH_TI925		ARCH_TI925		305
--acq200			ARCH_ACQ200		ACQ200			306
--pt_dafit		SA1100_PT_DAFIT		PT_DAFIT		307
--ihba			ARCH_IHBA		IHBA			308
--quinque			ARCH_QUINQUE		QUINQUE			309
--nimbraone		ARCH_NIMBRAONE		NIMBRAONE		310
--nimbra29x		ARCH_NIMBRA29X		NIMBRA29X		311
--nimbra210		ARCH_NIMBRA210		NIMBRA210		312
--hhp_d95xx		ARCH_HHP_D95XX		HHP_D95XX		313
--labarm			ARCH_LABARM		LABARM			314
--m825xx			ARCH_M825XX		M825XX			315
--m7100			SA1100_M7100		M7100			316
--nipc2			ARCH_NIPC2		NIPC2			317
--fu7202			ARCH_FU7202		FU7202			318
--adsagx			ARCH_ADSAGX		ADSAGX			319
--pxa_pooh		ARCH_PXA_POOH		PXA_POOH		320
--bandon			ARCH_BANDON		BANDON			321
--pcm7210			ARCH_PCM7210		PCM7210			322
--nms9200			ARCH_NMS9200		NMS9200			323
--logodl			ARCH_LOGODL		LOGODL			324
--m7140			SA1100_M7140		M7140			325
--korebot			ARCH_KOREBOT		KOREBOT			326
--iq31244			ARCH_IQ31244		IQ31244			327
--koan393			SA1100_KOAN393		KOAN393			328
--inhandftip3		ARCH_INHANDFTIP3	INHANDFTIP3		329
--gonzo			ARCH_GONZO		GONZO			330
--bast			ARCH_BAST		BAST			331
--scanpass		ARCH_SCANPASS		SCANPASS		332
--ep7312_pooh		ARCH_EP7312_POOH	EP7312_POOH		333
--ta7s			ARCH_TA7S		TA7S			334
--ta7v			ARCH_TA7V		TA7V			335
--icarus			SA1100_ICARUS		ICARUS			336
--h1900			ARCH_H1900		H1900			337
--gemini			SA1100_GEMINI		GEMINI			338
--axim			ARCH_AXIM		AXIM			339
--audiotron		ARCH_AUDIOTRON		AUDIOTRON		340
--h2200			ARCH_H2200		H2200			341
--loox600			ARCH_LOOX600		LOOX600			342
--niop			ARCH_NIOP		NIOP			343
--dm310			ARCH_DM310		DM310			344
--seedpxa_c2		ARCH_SEEDPXA_C2		SEEDPXA_C2		345
--ixp4xx_mguardpci	ARCH_IXP4XX_MGUARD_PCI	IXP4XX_MGUARD_PCI	346
--h1940			ARCH_H1940		H1940			347
--scorpio			ARCH_SCORPIO		SCORPIO			348
--viva			ARCH_VIVA		VIVA			349
--pxa_xcard		ARCH_PXA_XCARD		PXA_XCARD		350
--csb335			ARCH_CSB335		CSB335			351
--ixrd425			ARCH_IXRD425		IXRD425			352
--iq80315			ARCH_IQ80315		IQ80315			353
--nmp7312			ARCH_NMP7312		NMP7312			354
--cx861xx			ARCH_CX861XX		CX861XX			355
--enp2611			ARCH_ENP2611		ENP2611			356
--xda			SA1100_XDA		XDA			357
--csir_ims		ARCH_CSIR_IMS		CSIR_IMS		358
--ixp421_dnaeeth		ARCH_IXP421_DNAEETH	IXP421_DNAEETH		359
--pocketserv9200		ARCH_POCKETSERV9200	POCKETSERV9200		360
--toto			ARCH_TOTO		TOTO			361
--s3c2440			ARCH_S3C2440		S3C2440			362
--ks8695p			ARCH_KS8695P		KS8695P			363
--se4000			ARCH_SE4000		SE4000			364
--quadriceps		ARCH_QUADRICEPS		QUADRICEPS		365
--bronco			ARCH_BRONCO		BRONCO			366
--esl_wireless_tab	ARCH_ESL_WIRELESS_TAB	ESL_WIRELESS_TAB	367
--esl_sofcomp		ARCH_ESL_SOFCOMP	ESL_SOFCOMP		368
--s5c7375			ARCH_S5C7375		S5C7375			369
--spearhead		ARCH_SPEARHEAD		SPEARHEAD		370
--pantera			ARCH_PANTERA		PANTERA			371
--prayoglite		ARCH_PRAYOGLITE		PRAYOGLITE		372
--gumstix			ARCH_GUMSTIX		GUMSTIX			373
--rcube			ARCH_RCUBE		RCUBE			374
--rea_olv			ARCH_REA_OLV		REA_OLV			375
--pxa_iphone		ARCH_PXA_IPHONE		PXA_IPHONE		376
--s3c3410			ARCH_S3C3410		S3C3410			377
--espd_4510b		ARCH_ESPD_4510B		ESPD_4510B		378
--mp1x			ARCH_MP1X		MP1X			379
--at91rm9200tb		ARCH_AT91RM9200TB	AT91RM9200TB		380
--adsvgx			ARCH_ADSVGX		ADSVGX			381
--omap_h2			MACH_OMAP_H2		OMAP_H2			382
--pelee			ARCH_PELEE		PELEE			383
--e740			MACH_E740		E740			384
--iq80331			ARCH_IQ80331		IQ80331			385
--versatile_pb		ARCH_VERSATILE_PB	VERSATILE_PB		387
--kev7a400		MACH_KEV7A400		KEV7A400		388
--lpd7a400		MACH_LPD7A400		LPD7A400		389
--lpd7a404		MACH_LPD7A404		LPD7A404		390
--fujitsu_camelot		ARCH_FUJITSU_CAMELOT	FUJITSU_CAMELOT		391
--janus2m			ARCH_JANUS2M		JANUS2M			392
--embtf			MACH_EMBTF		EMBTF			393
--hpm			MACH_HPM		HPM			394
--smdk2410tk		MACH_SMDK2410TK		SMDK2410TK		395
--smdk2410aj		MACH_SMDK2410AJ		SMDK2410AJ		396
--streetracer		MACH_STREETRACER	STREETRACER		397
--eframe			MACH_EFRAME		EFRAME			398
--csb337			MACH_CSB337		CSB337			399
--pxa_lark		MACH_PXA_LARK		PXA_LARK		400
--pxa_pnp2110		MACH_PNP2110		PNP2110			401
--tcc72x			MACH_TCC72X		TCC72X			402
--altair			MACH_ALTAIR		ALTAIR			403
--kc3			MACH_KC3		KC3			404
--sinteftd		MACH_SINTEFTD		SINTEFTD		405
--mainstone		MACH_MAINSTONE		MAINSTONE		406
--aday4x			MACH_ADAY4X		ADAY4X			407
--lite300			MACH_LITE300		LITE300			408
--s5c7376			MACH_S5C7376		S5C7376			409
--mt02			MACH_MT02		MT02			410
--mport3s			MACH_MPORT3S		MPORT3S			411
--ra_alpha		MACH_RA_ALPHA		RA_ALPHA		412
--xcep			MACH_XCEP		XCEP			413
--arcom_vulcan		MACH_ARCOM_VULCAN	ARCOM_VULCAN		414
--stargate		MACH_STARGATE		STARGATE		415
--armadilloj		MACH_ARMADILLOJ		ARMADILLOJ		416
--elroy_jack		MACH_ELROY_JACK		ELROY_JACK		417
--backend			MACH_BACKEND		BACKEND			418
--s5linbox		MACH_S5LINBOX		S5LINBOX		419
--nomadik			MACH_NOMADIK		NOMADIK			420
--ia_cpu_9200		MACH_IA_CPU_9200	IA_CPU_9200		421
--at91_bja1		MACH_AT91_BJA1		AT91_BJA1		422
--corgi			MACH_CORGI		CORGI			423
--poodle			MACH_POODLE		POODLE			424
--ten			MACH_TEN		TEN			425
--roverp5p		MACH_ROVERP5P		ROVERP5P		426
--sc2700			MACH_SC2700		SC2700			427
--ex_eagle		MACH_EX_EAGLE		EX_EAGLE		428
--nx_pxa12		MACH_NX_PXA12		NX_PXA12		429
--nx_pxa5			MACH_NX_PXA5		NX_PXA5			430
--blackboard2		MACH_BLACKBOARD2	BLACKBOARD2		431
--i819			MACH_I819		I819			432
--ixmb995e		MACH_IXMB995E		IXMB995E		433
--skyrider		MACH_SKYRIDER		SKYRIDER		434
--skyhawk			MACH_SKYHAWK		SKYHAWK			435
--enterprise		MACH_ENTERPRISE		ENTERPRISE		436
--dep2410			MACH_DEP2410		DEP2410			437
--armcore			MACH_ARMCORE		ARMCORE			438
--hobbit			MACH_HOBBIT		HOBBIT			439
--h7210			MACH_H7210		H7210			440
--pxa_netdcu5		MACH_PXA_NETDCU5	PXA_NETDCU5		441
--acc			MACH_ACC		ACC			442
--esl_sarva		MACH_ESL_SARVA		ESL_SARVA		443
--xm250			MACH_XM250		XM250			444
--t6tc1xb			MACH_T6TC1XB		T6TC1XB			445
--ess710			MACH_ESS710		ESS710			446
--mx31ads			MACH_MX31ADS		MX31ADS			447
--himalaya		MACH_HIMALAYA		HIMALAYA		448
--bolfenk			MACH_BOLFENK		BOLFENK			449
--at91rm9200kr		MACH_AT91RM9200KR	AT91RM9200KR		450
--edb9312			MACH_EDB9312		EDB9312			451
--omap_generic		MACH_OMAP_GENERIC	OMAP_GENERIC		452
--aximx3			MACH_AXIMX3		AXIMX3			453
--eb67xdip		MACH_EB67XDIP		EB67XDIP		454
--webtxs			MACH_WEBTXS		WEBTXS			455
--hawk			MACH_HAWK		HAWK			456
--ccat91sbc001		MACH_CCAT91SBC001	CCAT91SBC001		457
--expresso		MACH_EXPRESSO		EXPRESSO		458
--h4000			MACH_H4000		H4000			459
--dino			MACH_DINO		DINO			460
--ml675k			MACH_ML675K		ML675K			461
--edb9301			MACH_EDB9301		EDB9301			462
--edb9315			MACH_EDB9315		EDB9315			463
--reciva_tt		MACH_RECIVA_TT		RECIVA_TT		464
--cstcb01			MACH_CSTCB01		CSTCB01			465
--cstcb1			MACH_CSTCB1		CSTCB1			466
--shadwell		MACH_SHADWELL		SHADWELL		467
--goepel263		MACH_GOEPEL263		GOEPEL263		468
--acq100			MACH_ACQ100		ACQ100			469
--mx1fs2			MACH_MX1FS2		MX1FS2			470
--hiptop_g1		MACH_HIPTOP_G1		HIPTOP_G1		471
--sparky			MACH_SPARKY		SPARKY			472
--ns9750			MACH_NS9750		NS9750			473
--phoenix			MACH_PHOENIX		PHOENIX			474
--vr1000			MACH_VR1000		VR1000			475
--deisterpxa		MACH_DEISTERPXA		DEISTERPXA		476
--bcm1160			MACH_BCM1160		BCM1160			477
--pcm022			MACH_PCM022		PCM022			478
--adsgcx			MACH_ADSGCX		ADSGCX			479
--dreadnaught		MACH_DREADNAUGHT	DREADNAUGHT		480
--dm320			MACH_DM320		DM320			481
--markov			MACH_MARKOV		MARKOV			482
--cos7a400		MACH_COS7A400		COS7A400		483
--milano			MACH_MILANO		MILANO			484
--ue9328			MACH_UE9328		UE9328			485
--uex255			MACH_UEX255		UEX255			486
--ue2410			MACH_UE2410		UE2410			487
--a620			MACH_A620		A620			488
--ocelot			MACH_OCELOT		OCELOT			489
--cheetah			MACH_CHEETAH		CHEETAH			490
--omap_perseus2		MACH_OMAP_PERSEUS2	OMAP_PERSEUS2		491
--zvue			MACH_ZVUE		ZVUE			492
--roverp1			MACH_ROVERP1		ROVERP1			493
--asidial2		MACH_ASIDIAL2		ASIDIAL2		494
--s3c24a0			MACH_S3C24A0		S3C24A0			495
--e800			MACH_E800		E800			496
--e750			MACH_E750		E750			497
--s3c5500			MACH_S3C5500		S3C5500			498
--smdk5500		MACH_SMDK5500		SMDK5500		499
--signalsync		MACH_SIGNALSYNC		SIGNALSYNC		500
--nbc			MACH_NBC		NBC			501
--kodiak			MACH_KODIAK		KODIAK			502
--netbookpro		MACH_NETBOOKPRO		NETBOOKPRO		503
--hw90200			MACH_HW90200		HW90200			504
--condor			MACH_CONDOR		CONDOR			505
--cup			MACH_CUP		CUP			506
--kite			MACH_KITE		KITE			507
--scb9328			MACH_SCB9328		SCB9328			508
--omap_h3			MACH_OMAP_H3		OMAP_H3			509
--omap_h4			MACH_OMAP_H4		OMAP_H4			510
--n10			MACH_N10		N10			511
--montejade		MACH_MONTAJADE		MONTAJADE		512
--sg560			MACH_SG560		SG560			513
--dp1000			MACH_DP1000		DP1000			514
--omap_osk		MACH_OMAP_OSK		OMAP_OSK		515
--rg100v3			MACH_RG100V3		RG100V3			516
--mx2ads			MACH_MX2ADS		MX2ADS			517
--pxa_kilo		MACH_PXA_KILO		PXA_KILO		518
--ixp4xx_eagle		MACH_IXP4XX_EAGLE	IXP4XX_EAGLE		519
--tosa			MACH_TOSA		TOSA			520
--mb2520f			MACH_MB2520F		MB2520F			521
--emc1000			MACH_EMC1000		EMC1000			522
--tidsc25			MACH_TIDSC25		TIDSC25			523
--akcpmxl			MACH_AKCPMXL		AKCPMXL			524
--av3xx			MACH_AV3XX		AV3XX			525
--avila			MACH_AVILA		AVILA			526
--pxa_mpm10		MACH_PXA_MPM10		PXA_MPM10		527
--pxa_kyanite		MACH_PXA_KYANITE	PXA_KYANITE		528
--sgold			MACH_SGOLD		SGOLD			529
--oscar			MACH_OSCAR		OSCAR			530
--epxa4usb2		MACH_EPXA4USB2		EPXA4USB2		531
--xsengine		MACH_XSENGINE		XSENGINE		532
--ip600			MACH_IP600		IP600			533
--mcan2			MACH_MCAN2		MCAN2			534
--ddi_blueridge		MACH_DDI_BLUERIDGE	DDI_BLUERIDGE		535
--skyminder		MACH_SKYMINDER		SKYMINDER		536
--lpd79520		MACH_LPD79520		LPD79520		537
--edb9302			MACH_EDB9302		EDB9302			538
--hw90340			MACH_HW90340		HW90340			539
--cip_box			MACH_CIP_BOX		CIP_BOX			540
--ivpn			MACH_IVPN		IVPN			541
--rsoc2			MACH_RSOC2		RSOC2			542
--husky			MACH_HUSKY		HUSKY			543
--boxer			MACH_BOXER		BOXER			544
--shepherd		MACH_SHEPHERD		SHEPHERD		545
--aml42800aa		MACH_AML42800AA		AML42800AA		546
--lpc2294			MACH_LPC2294		LPC2294			548
--switchgrass		MACH_SWITCHGRASS	SWITCHGRASS		549
--ens_cmu			MACH_ENS_CMU		ENS_CMU			550
--mm6_sdb			MACH_MM6_SDB		MM6_SDB			551
--saturn			MACH_SATURN		SATURN			552
--i30030evb		MACH_I30030EVB		I30030EVB		553
--mxc27530evb		MACH_MXC27530EVB	MXC27530EVB		554
--smdk2800		MACH_SMDK2800		SMDK2800		555
--mtwilson		MACH_MTWILSON		MTWILSON		556
--ziti			MACH_ZITI		ZITI			557
--grandfather		MACH_GRANDFATHER	GRANDFATHER		558
--tengine			MACH_TENGINE		TENGINE			559
--s3c2460			MACH_S3C2460		S3C2460			560
--pdm			MACH_PDM		PDM			561
--h4700			MACH_H4700		H4700			562
--h6300			MACH_H6300		H6300			563
--rz1700			MACH_RZ1700		RZ1700			564
--a716			MACH_A716		A716			565
--estk2440a		MACH_ESTK2440A		ESTK2440A		566
--atwixp425		MACH_ATWIXP425		ATWIXP425		567
--csb336			MACH_CSB336		CSB336			568
--rirm2			MACH_RIRM2		RIRM2			569
--cx23518			MACH_CX23518		CX23518			570
--cx2351x			MACH_CX2351X		CX2351X			571
--computime		MACH_COMPUTIME		COMPUTIME		572
--izarus			MACH_IZARUS		IZARUS			573
--pxa_rts			MACH_RTS		RTS			574
--se5100			MACH_SE5100		SE5100			575
--s3c2510			MACH_S3C2510		S3C2510			576
--csb437tl		MACH_CSB437TL		CSB437TL		577
--slauson			MACH_SLAUSON		SLAUSON			578
--pearlriver		MACH_PEARLRIVER		PEARLRIVER		579
--tdc_p210		MACH_TDC_P210		TDC_P210		580
--sg580			MACH_SG580		SG580			581
--wrsbcarm7		MACH_WRSBCARM7		WRSBCARM7		582
--ipd			MACH_IPD		IPD			583
--pxa_dnp2110		MACH_PXA_DNP2110	PXA_DNP2110		584
--xaeniax			MACH_XAENIAX		XAENIAX			585
--somn4250		MACH_SOMN4250		SOMN4250		586
--pleb2			MACH_PLEB2		PLEB2			587
--cornwallis		MACH_CORNWALLIS		CORNWALLIS		588
--gurney_drv		MACH_GURNEY_DRV		GURNEY_DRV		589
--chaffee			MACH_CHAFFEE		CHAFFEE			590
--rms101			MACH_RMS101		RMS101			591
--rx3715			MACH_RX3715		RX3715			592
--swift			MACH_SWIFT		SWIFT			593
--roverp7			MACH_ROVERP7		ROVERP7			594
--pr818s			MACH_PR818S		PR818S			595
--trxpro			MACH_TRXPRO		TRXPRO			596
--nslu2			MACH_NSLU2		NSLU2			597
--e400			MACH_E400		E400			598
--trab			MACH_TRAB		TRAB			599
--cmc_pu2			MACH_CMC_PU2		CMC_PU2			600
--fulcrum			MACH_FULCRUM		FULCRUM			601
--netgate42x		MACH_NETGATE42X		NETGATE42X		602
--str710			MACH_STR710		STR710			603
--ixdpg425		MACH_IXDPG425		IXDPG425		604
--tomtomgo		MACH_TOMTOMGO		TOMTOMGO		605
--versatile_ab		MACH_VERSATILE_AB	VERSATILE_AB		606
--edb9307			MACH_EDB9307		EDB9307			607
--sg565			MACH_SG565		SG565			608
--lpd79524		MACH_LPD79524		LPD79524		609
--lpd79525		MACH_LPD79525		LPD79525		610
--rms100			MACH_RMS100		RMS100			611
--kb9200			MACH_KB9200		KB9200			612
--sx1			MACH_SX1		SX1			613
--hms39c7092		MACH_HMS39C7092		HMS39C7092		614
--armadillo		MACH_ARMADILLO		ARMADILLO		615
--ipcu			MACH_IPCU		IPCU			616
--loox720			MACH_LOOX720		LOOX720			617
--ixdp465			MACH_IXDP465		IXDP465			618
--ixdp2351		MACH_IXDP2351		IXDP2351		619
--adsvix			MACH_ADSVIX		ADSVIX			620
--dm270			MACH_DM270		DM270			621
--socltplus		MACH_SOCLTPLUS		SOCLTPLUS		622
--ecia			MACH_ECIA		ECIA			623
--cm4008			MACH_CM4008		CM4008			624
--p2001			MACH_P2001		P2001			625
--twister			MACH_TWISTER		TWISTER			626
--mudshark		MACH_MUDSHARK		MUDSHARK		627
--hb2			MACH_HB2		HB2			628
--iq80332			MACH_IQ80332		IQ80332			629
--sendt			MACH_SENDT		SENDT			630
--mx2jazz			MACH_MX2JAZZ		MX2JAZZ			631
--multiio			MACH_MULTIIO		MULTIIO			632
--hrdisplay		MACH_HRDISPLAY		HRDISPLAY		633
--mxc27530ads		MACH_MXC27530ADS	MXC27530ADS		634
--trizeps3		MACH_TRIZEPS3		TRIZEPS3		635
--zefeerdza		MACH_ZEFEERDZA		ZEFEERDZA		636
--zefeerdzb		MACH_ZEFEERDZB		ZEFEERDZB		637
--zefeerdzg		MACH_ZEFEERDZG		ZEFEERDZG		638
--zefeerdzn		MACH_ZEFEERDZN		ZEFEERDZN		639
--zefeerdzq		MACH_ZEFEERDZQ		ZEFEERDZQ		640
--gtwx5715		MACH_GTWX5715		GTWX5715		641
--astro_jack		MACH_ASTRO_JACK		ASTRO_JACK		643
--tip03			MACH_TIP03		TIP03			644
--a9200ec			MACH_A9200EC		A9200EC			645
--pnx0105			MACH_PNX0105		PNX0105			646
--adcpoecpu		MACH_ADCPOECPU		ADCPOECPU		647
--csb637			MACH_CSB637		CSB637			648
--mb9200			MACH_MB9200		MB9200			650
--kulun			MACH_KULUN		KULUN			651
--snapper			MACH_SNAPPER		SNAPPER			652
--optima			MACH_OPTIMA		OPTIMA			653
--dlhsbc			MACH_DLHSBC		DLHSBC			654
--x30			MACH_X30		X30			655
--n30			MACH_N30		N30			656
--manga_ks8695		MACH_MANGA_KS8695	MANGA_KS8695		657
--ajax			MACH_AJAX		AJAX			658
--nec_mp900		MACH_NEC_MP900		NEC_MP900		659
--vvtk1000		MACH_VVTK1000		VVTK1000		661
--kafa			MACH_KAFA		KAFA			662
--vvtk3000		MACH_VVTK3000		VVTK3000		663
--pimx1			MACH_PIMX1		PIMX1			664
--ollie			MACH_OLLIE		OLLIE			665
--skymax			MACH_SKYMAX		SKYMAX			666
--jazz			MACH_JAZZ		JAZZ			667
--tel_t3			MACH_TEL_T3		TEL_T3			668
--aisino_fcr255		MACH_AISINO_FCR255	AISINO_FCR255		669
--btweb			MACH_BTWEB		BTWEB			670
--dbg_lh79520		MACH_DBG_LH79520	DBG_LH79520		671
--cm41xx			MACH_CM41XX		CM41XX			672
--ts72xx			MACH_TS72XX		TS72XX			673
--nggpxa			MACH_NGGPXA		NGGPXA			674
--csb535			MACH_CSB535		CSB535			675
--csb536			MACH_CSB536		CSB536			676
--pxa_trakpod		MACH_PXA_TRAKPOD	PXA_TRAKPOD		677
--praxis			MACH_PRAXIS		PRAXIS			678
--lh75411			MACH_LH75411		LH75411			679
--otom			MACH_OTOM		OTOM			680
--nexcoder_2440		MACH_NEXCODER_2440	NEXCODER_2440		681
--loox410			MACH_LOOX410		LOOX410			682
--westlake		MACH_WESTLAKE		WESTLAKE		683
--nsb			MACH_NSB		NSB			684
--esl_sarva_stn		MACH_ESL_SARVA_STN	ESL_SARVA_STN		685
--esl_sarva_tft		MACH_ESL_SARVA_TFT	ESL_SARVA_TFT		686
--esl_sarva_iad		MACH_ESL_SARVA_IAD	ESL_SARVA_IAD		687
--esl_sarva_acc		MACH_ESL_SARVA_ACC	ESL_SARVA_ACC		688
--typhoon			MACH_TYPHOON		TYPHOON			689
--cnav			MACH_CNAV		CNAV			690
--a730			MACH_A730		A730			691
--netstar			MACH_NETSTAR		NETSTAR			692
--supercon		MACH_PHASEFALE_SUPERCON	PHASEFALE_SUPERCON	693
--shiva1100		MACH_SHIVA1100		SHIVA1100		694
--etexsc			MACH_ETEXSC		ETEXSC			695
--ixdpg465		MACH_IXDPG465		IXDPG465		696
--a9m2410			MACH_A9M2410		A9M2410			697
--a9m2440			MACH_A9M2440		A9M2440			698
--a9m9750			MACH_A9M9750		A9M9750			699
--a9m9360			MACH_A9M9360		A9M9360			700
--unc90			MACH_UNC90		UNC90			701
--eco920			MACH_ECO920		ECO920			702
--satview			MACH_SATVIEW		SATVIEW			703
--roadrunner		MACH_ROADRUNNER		ROADRUNNER		704
--at91rm9200ek		MACH_AT91RM9200EK	AT91RM9200EK		705
--gp32			MACH_GP32		GP32			706
--gem			MACH_GEM		GEM			707
--i858			MACH_I858		I858			708
--hx2750			MACH_HX2750		HX2750			709
--mxc91131evb		MACH_MXC91131EVB	MXC91131EVB		710
--p700			MACH_P700		P700			711
--cpe			MACH_CPE		CPE			712
--spitz			MACH_SPITZ		SPITZ			713
--nimbra340		MACH_NIMBRA340		NIMBRA340		714
--lpc22xx			MACH_LPC22XX		LPC22XX			715
--omap_comet3		MACH_COMET3		COMET3			716
--omap_comet4		MACH_COMET4		COMET4			717
--csb625			MACH_CSB625		CSB625			718
--fortunet2		MACH_FORTUNET2		FORTUNET2		719
--s5h2200			MACH_S5H2200		S5H2200			720
--optorm920		MACH_OPTORM920		OPTORM920		721
--adsbitsyxb		MACH_ADSBITSYXB		ADSBITSYXB		722
--adssphere		MACH_ADSSPHERE		ADSSPHERE		723
--adsportal		MACH_ADSPORTAL		ADSPORTAL		724
--ln2410sbc		MACH_LN2410SBC		LN2410SBC		725
--cb3rufc			MACH_CB3RUFC		CB3RUFC			726
--mp2usb			MACH_MP2USB		MP2USB			727
--ntnp425c		MACH_NTNP425C		NTNP425C		728
--colibri			MACH_COLIBRI		COLIBRI			729
--pcm7220			MACH_PCM7220		PCM7220			730
--gateway7001		MACH_GATEWAY7001	GATEWAY7001		731
--pcm027			MACH_PCM027		PCM027			732
--cmpxa			MACH_CMPXA		CMPXA			733
--anubis			MACH_ANUBIS		ANUBIS			734
--ite8152			MACH_ITE8152		ITE8152			735
--lpc3xxx			MACH_LPC3XXX		LPC3XXX			736
--puppeteer		MACH_PUPPETEER		PUPPETEER		737
--e570			MACH_E570		E570			739
--x50			MACH_X50		X50			740
--recon			MACH_RECON		RECON			741
--xboardgp8		MACH_XBOARDGP8		XBOARDGP8		742
--fpic2			MACH_FPIC2		FPIC2			743
--akita			MACH_AKITA		AKITA			744
--a81			MACH_A81		A81			745
--svm_sc25x		MACH_SVM_SC25X		SVM_SC25X		746
--vt020			MACH_VADATECH020	VADATECH020		747
--tli			MACH_TLI		TLI			748
--edb9315lc		MACH_EDB9315LC		EDB9315LC		749
--passec			MACH_PASSEC		PASSEC			750
--ds_tiger		MACH_DS_TIGER		DS_TIGER		751
--e310			MACH_E310		E310			752
--e330			MACH_E330		E330			753
--rt3000			MACH_RT3000		RT3000			754
--nokia770		MACH_NOKIA770		NOKIA770		755
--pnx0106			MACH_PNX0106		PNX0106			756
--hx21xx			MACH_HX21XX		HX21XX			757
--faraday			MACH_FARADAY		FARADAY			758
--sbc9312			MACH_SBC9312		SBC9312			759
--batman			MACH_BATMAN		BATMAN			760
--jpd201			MACH_JPD201		JPD201			761
--mipsa			MACH_MIPSA		MIPSA			762
--kacom			MACH_KACOM		KACOM			763
--swarcocpu		MACH_SWARCOCPU		SWARCOCPU		764
--swarcodsl		MACH_SWARCODSL		SWARCODSL		765
--blueangel		MACH_BLUEANGEL		BLUEANGEL		766
--hairygrama		MACH_HAIRYGRAMA		HAIRYGRAMA		767
--banff			MACH_BANFF		BANFF			768
--carmeva			MACH_CARMEVA		CARMEVA			769
--sam255			MACH_SAM255		SAM255			770
--ppm10			MACH_PPM10		PPM10			771
--edb9315a		MACH_EDB9315A		EDB9315A		772
--sunset			MACH_SUNSET		SUNSET			773
--stargate2		MACH_STARGATE2		STARGATE2		774
--intelmote2		MACH_INTELMOTE2		INTELMOTE2		775
--trizeps4		MACH_TRIZEPS4		TRIZEPS4		776
--mainstone2		MACH_MAINSTONE2		MAINSTONE2		777
--ez_ixp42x		MACH_EZ_IXP42X		EZ_IXP42X		778
--tapwave_zodiac		MACH_TAPWAVE_ZODIAC	TAPWAVE_ZODIAC		779
--universalmeter		MACH_UNIVERSALMETER	UNIVERSALMETER		780
--hicoarm9		MACH_HICOARM9		HICOARM9		781
--pnx4008			MACH_PNX4008		PNX4008			782
--kws6000			MACH_KWS6000		KWS6000			783
--portux920t		MACH_PORTUX920T		PORTUX920T		784
--ez_x5			MACH_EZ_X5		EZ_X5			785
--omap_rudolph		MACH_OMAP_RUDOLPH	OMAP_RUDOLPH		786
--cpuat91			MACH_CPUAT91		CPUAT91			787
--rea9200			MACH_REA9200		REA9200			788
--acts_pune_sa1110	MACH_ACTS_PUNE_SA1110	ACTS_PUNE_SA1110	789
--ixp425			MACH_IXP425		IXP425			790
--i30030ads		MACH_I30030ADS		I30030ADS		791
--perch			MACH_PERCH		PERCH			792
--eis05r1			MACH_EIS05R1		EIS05R1			793
--pepperpad		MACH_PEPPERPAD		PEPPERPAD		794
--sb3010			MACH_SB3010		SB3010			795
--rm9200			MACH_RM9200		RM9200			796
--dma03			MACH_DMA03		DMA03			797
--road_s101		MACH_ROAD_S101		ROAD_S101		798
--iq81340sc		MACH_IQ81340SC		IQ81340SC		799
--iq_nextgen_b		MACH_IQ_NEXTGEN_B	IQ_NEXTGEN_B		800
--iq81340mc		MACH_IQ81340MC		IQ81340MC		801
--iq_nextgen_d		MACH_IQ_NEXTGEN_D	IQ_NEXTGEN_D		802
--iq_nextgen_e		MACH_IQ_NEXTGEN_E	IQ_NEXTGEN_E		803
--mallow_at91		MACH_MALLOW_AT91	MALLOW_AT91		804
--cybertracker_i		MACH_CYBERTRACKER_I	CYBERTRACKER_I		805
--gesbc931x		MACH_GESBC931X		GESBC931X		806
--centipad		MACH_CENTIPAD		CENTIPAD		807
--armsoc			MACH_ARMSOC		ARMSOC			808
--se4200			MACH_SE4200		SE4200			809
--ems197a			MACH_EMS197A		EMS197A			810
--micro9			MACH_MICRO9		MICRO9			811
--micro9l			MACH_MICRO9L		MICRO9L			812
--uc5471dsp		MACH_UC5471DSP		UC5471DSP		813
--sj5471eng		MACH_SJ5471ENG		SJ5471ENG		814
--none			MACH_CMPXA26X		CMPXA26X		815
--nc1			MACH_NC			NC			816
--omap_palmte		MACH_OMAP_PALMTE	OMAP_PALMTE		817
--ajax52x			MACH_AJAX52X		AJAX52X			818
--siriustar		MACH_SIRIUSTAR		SIRIUSTAR		819
--iodata_hdlg		MACH_IODATA_HDLG	IODATA_HDLG		820
--at91rm9200utl		MACH_AT91RM9200UTL	AT91RM9200UTL		821
--biosafe			MACH_BIOSAFE		BIOSAFE			822
--mp1000			MACH_MP1000		MP1000			823
--parsy			MACH_PARSY		PARSY			824
--ccxp270			MACH_CCXP		CCXP			825
--omap_gsample		MACH_OMAP_GSAMPLE	OMAP_GSAMPLE		826
--realview_eb		MACH_REALVIEW_EB	REALVIEW_EB		827
--samoa			MACH_SAMOA		SAMOA			828
--palmt3			MACH_PALMT3		PALMT3			829
--i878			MACH_I878		I878			830
--borzoi			MACH_BORZOI		BORZOI			831
--gecko			MACH_GECKO		GECKO			832
--ds101			MACH_DS101		DS101			833
--omap_palmtt2		MACH_OMAP_PALMTT2	OMAP_PALMTT2		834
--palmld			MACH_PALMLD		PALMLD			835
--cc9c			MACH_CC9C		CC9C			836
--sbc1670			MACH_SBC1670		SBC1670			837
--ixdp28x5		MACH_IXDP28X5		IXDP28X5		838
--omap_palmtt		MACH_OMAP_PALMTT	OMAP_PALMTT		839
--ml696k			MACH_ML696K		ML696K			840
--arcom_zeus		MACH_ARCOM_ZEUS		ARCOM_ZEUS		841
--osiris			MACH_OSIRIS		OSIRIS			842
--maestro			MACH_MAESTRO		MAESTRO			843
--palmte2			MACH_PALMTE2		PALMTE2			844
--ixbbm			MACH_IXBBM		IXBBM			845
--mx27ads			MACH_MX27ADS		MX27ADS			846
--ax8004			MACH_AX8004		AX8004			847
--at91sam9261ek		MACH_AT91SAM9261EK	AT91SAM9261EK		848
--loft			MACH_LOFT		LOFT			849
--magpie			MACH_MAGPIE		MAGPIE			850
--mx21ads			MACH_MX21ADS		MX21ADS			851
--mb87m3400		MACH_MB87M3400		MB87M3400		852
--mguard_delta		MACH_MGUARD_DELTA	MGUARD_DELTA		853
--davinci_dvdp		MACH_DAVINCI_DVDP	DAVINCI_DVDP		854
--htcuniversal		MACH_HTCUNIVERSAL	HTCUNIVERSAL		855
--tpad			MACH_TPAD		TPAD			856
--roverp3			MACH_ROVERP3		ROVERP3			857
--jornada928		MACH_JORNADA928		JORNADA928		858
--mv88fxx81		MACH_MV88FXX81		MV88FXX81		859
--stmp36xx		MACH_STMP36XX		STMP36XX		860
--sxni79524		MACH_SXNI79524		SXNI79524		861
--ams_delta		MACH_AMS_DELTA		AMS_DELTA		862
--uranium			MACH_URANIUM		URANIUM			863
--ucon			MACH_UCON		UCON			864
--nas100d			MACH_NAS100D		NAS100D			865
--l083			MACH_L083_1000		L083_1000		866
--ezx			MACH_EZX		EZX			867
--pnx5220			MACH_PNX5220		PNX5220			868
--butte			MACH_BUTTE		BUTTE			869
--srm2			MACH_SRM2		SRM2			870
--dsbr			MACH_DSBR		DSBR			871
--crystalball		MACH_CRYSTALBALL	CRYSTALBALL		872
--tinypxa27x		MACH_TINYPXA27X		TINYPXA27X		873
--herbie			MACH_HERBIE		HERBIE			874
--magician		MACH_MAGICIAN		MAGICIAN		875
--cm4002			MACH_CM4002		CM4002			876
--b4			MACH_B4			B4			877
--maui			MACH_MAUI		MAUI			878
--cybertracker_g		MACH_CYBERTRACKER_G	CYBERTRACKER_G		879
--nxdkn			MACH_NXDKN		NXDKN			880
--mio8390			MACH_MIO8390		MIO8390			881
--omi_board		MACH_OMI_BOARD		OMI_BOARD		882
--mx21civ			MACH_MX21CIV		MX21CIV			883
--mahi_cdac		MACH_MAHI_CDAC		MAHI_CDAC		884
--palmtx			MACH_PALMTX		PALMTX			885
--s3c2413			MACH_S3C2413		S3C2413			887
--samsys_ep0		MACH_SAMSYS_EP0		SAMSYS_EP0		888
--wg302v1			MACH_WG302V1		WG302V1			889
--wg302v2			MACH_WG302V2		WG302V2			890
--eb42x			MACH_EB42X		EB42X			891
--iq331es			MACH_IQ331ES		IQ331ES			892
--cosydsp			MACH_COSYDSP		COSYDSP			893
--uplat7d_proto		MACH_UPLAT7D		UPLAT7D			894
--ptdavinci		MACH_PTDAVINCI		PTDAVINCI		895
--mbus			MACH_MBUS		MBUS			896
--nadia2vb		MACH_NADIA2VB		NADIA2VB		897
--r1000			MACH_R1000		R1000			898
--hw90250			MACH_HW90250		HW90250			899
--omap_2430sdp		MACH_OMAP_2430SDP	OMAP_2430SDP		900
--davinci_evm		MACH_DAVINCI_EVM	DAVINCI_EVM		901
--omap_tornado		MACH_OMAP_TORNADO	OMAP_TORNADO		902
--olocreek		MACH_OLOCREEK		OLOCREEK		903
--palmz72			MACH_PALMZ72		PALMZ72			904
--nxdb500			MACH_NXDB500		NXDB500			905
--apf9328			MACH_APF9328		APF9328			906
--omap_wipoq		MACH_OMAP_WIPOQ		OMAP_WIPOQ		907
--omap_twip		MACH_OMAP_TWIP		OMAP_TWIP		908
--treo650			MACH_TREO650		TREO650			909
--acumen			MACH_ACUMEN		ACUMEN			910
--xp100			MACH_XP100		XP100			911
--fs2410			MACH_FS2410		FS2410			912
--pxa270_cerf		MACH_PXA270_CERF	PXA270_CERF		913
--sq2ftlpalm		MACH_SQ2FTLPALM		SQ2FTLPALM		914
--bsemserver		MACH_BSEMSERVER		BSEMSERVER		915
--netclient		MACH_NETCLIENT		NETCLIENT		916
--palmt5			MACH_PALMT5		PALMT5			917
--palmtc			MACH_PALMTC		PALMTC			918
--omap_apollon		MACH_OMAP_APOLLON	OMAP_APOLLON		919
--mxc30030evb		MACH_MXC30030EVB	MXC30030EVB		920
--rea_2d			MACH_REA_2D		REA_2D			921
--eti3e524		MACH_TI3E524		TI3E524			922
--ateb9200		MACH_ATEB9200		ATEB9200		923
--auckland		MACH_AUCKLAND		AUCKLAND		924
--ak3220m			MACH_AK3320M		AK3320M			925
--duramax			MACH_DURAMAX		DURAMAX			926
--n35			MACH_N35		N35			927
--pronghorn		MACH_PRONGHORN		PRONGHORN		928
--fundy			MACH_FUNDY		FUNDY			929
--logicpd_pxa270		MACH_LOGICPD_PXA270	LOGICPD_PXA270		930
--cpu777			MACH_CPU777		CPU777			931
--simicon9201		MACH_SIMICON9201	SIMICON9201		932
--leap2_hpm		MACH_LEAP2_HPM		LEAP2_HPM		933
--cm922txa10		MACH_CM922TXA10		CM922TXA10		934
--sandgate		MACH_PXA		PXA			935
--sandgate2		MACH_SANDGATE2		SANDGATE2		936
--sandgate2g		MACH_SANDGATE2G		SANDGATE2G		937
--sandgate2p		MACH_SANDGATE2P		SANDGATE2P		938
--fred_jack		MACH_FRED_JACK		FRED_JACK		939
--ttg_color1		MACH_TTG_COLOR1		TTG_COLOR1		940
--nxeb500hmi		MACH_NXEB500HMI		NXEB500HMI		941
--netdcu8			MACH_NETDCU8		NETDCU8			942
--ng_fvx538		MACH_NG_FVX538		NG_FVX538		944
--ng_fvs338		MACH_NG_FVS338		NG_FVS338		945
--pnx4103			MACH_PNX4103		PNX4103			946
--hesdb			MACH_HESDB		HESDB			947
--xsilo			MACH_XSILO		XSILO			948
--espresso		MACH_ESPRESSO		ESPRESSO		949
--emlc			MACH_EMLC		EMLC			950
--sisteron		MACH_SISTERON		SISTERON		951
--rx1950			MACH_RX1950		RX1950			952
--tsc_venus		MACH_TSC_VENUS		TSC_VENUS		953
--ds101j			MACH_DS101J		DS101J			954
--mxc30030ads		MACH_MXC30030ADS	MXC30030ADS		955
--fujitsu_wimaxsoc	MACH_FUJITSU_WIMAXSOC	FUJITSU_WIMAXSOC	956
--dualpcmodem		MACH_DUALPCMODEM	DUALPCMODEM		957
--gesbc9312		MACH_GESBC9312		GESBC9312		958
--htcapache		MACH_HTCAPACHE		HTCAPACHE		959
--ixdp435			MACH_IXDP435		IXDP435			960
--catprovt100		MACH_CATPROVT100	CATPROVT100		961
--picotux1xx		MACH_PICOTUX1XX		PICOTUX1XX		962
--picotux2xx		MACH_PICOTUX2XX		PICOTUX2XX		963
--dsmg600			MACH_DSMG600		DSMG600			964
--empc2			MACH_EMPC2		EMPC2			965
--ventura			MACH_VENTURA		VENTURA			966
--phidget_sbc		MACH_PHIDGET_SBC	PHIDGET_SBC		967
--ij3k			MACH_IJ3K		IJ3K			968
--pisgah			MACH_PISGAH		PISGAH			969
--omap_fsample		MACH_OMAP_FSAMPLE	OMAP_FSAMPLE		970
--sg720			MACH_SG720		SG720			971
--redfox			MACH_REDFOX		REDFOX			972
--mysh_ep9315_1		MACH_MYSH_EP9315_1	MYSH_EP9315_1		973
--tpf106			MACH_TPF106		TPF106			974
--at91rm9200kg		MACH_AT91RM9200KG	AT91RM9200KG		975
--rcmt2			MACH_SLEDB		SLEDB			976
--ontrack			MACH_ONTRACK		ONTRACK			977
--pm1200			MACH_PM1200		PM1200			978
--ess24562		MACH_ESS24XXX		ESS24XXX		979
--coremp7			MACH_COREMP7		COREMP7			980
--nexcoder_6446		MACH_NEXCODER_6446	NEXCODER_6446		981
--stvc8380		MACH_STVC8380		STVC8380		982
--teklynx			MACH_TEKLYNX		TEKLYNX			983
--carbonado		MACH_CARBONADO		CARBONADO		984
--sysmos_mp730		MACH_SYSMOS_MP730	SYSMOS_MP730		985
--snapper_cl15		MACH_SNAPPER_CL15	SNAPPER_CL15		986
--pgigim			MACH_PGIGIM		PGIGIM			987
--ptx9160p2		MACH_PTX9160P2		PTX9160P2		988
--dcore1			MACH_DCORE1		DCORE1			989
--victorpxa		MACH_VICTORPXA		VICTORPXA		990
--mx2dtb			MACH_MX2DTB		MX2DTB			991
--pxa_irex_er0100		MACH_PXA_IREX_ER0100	PXA_IREX_ER0100		992
--omap_palmz71		MACH_OMAP_PALMZ71	OMAP_PALMZ71		993
--bartec_deg		MACH_BARTEC_DEG		BARTEC_DEG		994
--hw50251			MACH_HW50251		HW50251			995
--ibox			MACH_IBOX		IBOX			996
--atlaslh7a404		MACH_ATLASLH7A404	ATLASLH7A404		997
--pt2026			MACH_PT2026		PT2026			998
--htcalpine		MACH_HTCALPINE		HTCALPINE		999
--bartec_vtu		MACH_BARTEC_VTU		BARTEC_VTU		1000
--vcoreii			MACH_VCOREII		VCOREII			1001
--pdnb3			MACH_PDNB3		PDNB3			1002
--htcbeetles		MACH_HTCBEETLES		HTCBEETLES		1003
--s3c6400			MACH_S3C6400		S3C6400			1004
--s3c2443			MACH_S3C2443		S3C2443			1005
--omap_ldk		MACH_OMAP_LDK		OMAP_LDK		1006
--smdk2460		MACH_SMDK2460		SMDK2460		1007
--smdk2440		MACH_SMDK2440		SMDK2440		1008
--smdk2412		MACH_SMDK2412		SMDK2412		1009
--webbox			MACH_WEBBOX		WEBBOX			1010
--cwwndp			MACH_CWWNDP		CWWNDP			1011
--i839			MACH_DRAGON		DRAGON			1012
--opendo_cpu_board	MACH_OPENDO_CPU_BOARD	OPENDO_CPU_BOARD	1013
--ccm2200			MACH_CCM2200		CCM2200			1014
--etwarm			MACH_ETWARM		ETWARM			1015
--m93030			MACH_M93030		M93030			1016
--cc7u			MACH_CC7U		CC7U			1017
--mtt_ranger		MACH_MTT_RANGER		MTT_RANGER		1018
--nexus			MACH_NEXUS		NEXUS			1019
--desman			MACH_DESMAN		DESMAN			1020
--bkde303			MACH_BKDE303		BKDE303			1021
--smdk2413		MACH_SMDK2413		SMDK2413		1022
--aml_m7200		MACH_AML_M7200		AML_M7200		1023
--aml_m5900		MACH_AML_M5900		AML_M5900		1024
--sg640			MACH_SG640		SG640			1025
--edg79524		MACH_EDG79524		EDG79524		1026
--ai2410			MACH_AI2410		AI2410			1027
--ixp465			MACH_IXP465		IXP465			1028
--balloon3		MACH_BALLOON3		BALLOON3		1029
--heins			MACH_HEINS		HEINS			1030
--mpluseva		MACH_MPLUSEVA		MPLUSEVA		1031
--rt042			MACH_RT042		RT042			1032
--cwiem			MACH_CWIEM		CWIEM			1033
--cm_x270			MACH_CM_X270		CM_X270			1034
--cm_x255			MACH_CM_X255		CM_X255			1035
--esh_at91		MACH_ESH_AT91		ESH_AT91		1036
--sandgate3		MACH_SANDGATE3		SANDGATE3		1037
--primo			MACH_PRIMO		PRIMO			1038
--gemstone		MACH_GEMSTONE		GEMSTONE		1039
--pronghorn_metro		MACH_PRONGHORNMETRO	PRONGHORNMETRO		1040
--sidewinder		MACH_SIDEWINDER		SIDEWINDER		1041
--picomod1		MACH_PICOMOD1		PICOMOD1		1042
--sg590			MACH_SG590		SG590			1043
--akai9307		MACH_AKAI9307		AKAI9307		1044
--fontaine		MACH_FONTAINE		FONTAINE		1045
--wombat			MACH_WOMBAT		WOMBAT			1046
--acq300			MACH_ACQ300		ACQ300			1047
--mod272			MACH_MOD_270		MOD_270			1048
--vmc_vc0820		MACH_VC0820		VC0820			1049
--ani_aim			MACH_ANI_AIM		ANI_AIM			1050
--jellyfish		MACH_JELLYFISH		JELLYFISH		1051
--amanita			MACH_AMANITA		AMANITA			1052
--vlink			MACH_VLINK		VLINK			1053
--dexflex			MACH_DEXFLEX		DEXFLEX			1054
--eigen_ttq		MACH_EIGEN_TTQ		EIGEN_TTQ		1055
--arcom_titan		MACH_ARCOM_TITAN	ARCOM_TITAN		1056
--tabla			MACH_TABLA		TABLA			1057
--mdirac3			MACH_MDIRAC3		MDIRAC3			1058
--mrhfbp2			MACH_MRHFBP2		MRHFBP2			1059
--at91rm9200rb		MACH_AT91RM9200RB	AT91RM9200RB		1060
--ani_apm			MACH_ANI_APM		ANI_APM			1061
--ella1			MACH_ELLA1		ELLA1			1062
--inhand_pxa27x		MACH_INHAND_PXA27X	INHAND_PXA27X		1063
--inhand_pxa25x		MACH_INHAND_PXA25X	INHAND_PXA25X		1064
--empos_xm		MACH_EMPOS_XM		EMPOS_XM		1065
--empos			MACH_EMPOS		EMPOS			1066
--empos_tiny		MACH_EMPOS_TINY		EMPOS_TINY		1067
--empos_sm		MACH_EMPOS_SM		EMPOS_SM		1068
--egret			MACH_EGRET		EGRET			1069
--ostrich			MACH_OSTRICH		OSTRICH			1070
--n50			MACH_N50		N50			1071
--ecbat91			MACH_ECBAT91		ECBAT91			1072
--stareast		MACH_STAREAST		STAREAST		1073
--dspg_dw			MACH_DSPG_DW		DSPG_DW			1074
--onearm			MACH_ONEARM		ONEARM			1075
--mrg110_6		MACH_MRG110_6		MRG110_6		1076
--wrt300nv2		MACH_WRT300NV2		WRT300NV2		1077
--xm_bulverde		MACH_XM_BULVERDE	XM_BULVERDE		1078
--msm6100			MACH_MSM6100		MSM6100			1079
--eti_b1			MACH_ETI_B1		ETI_B1			1080
--za9l_series		MACH_ZILOG_ZA9L		ZILOG_ZA9L		1081
--bit2440			MACH_BIT2440		BIT2440			1082
--nbi			MACH_NBI		NBI			1083
--smdk2443		MACH_SMDK2443		SMDK2443		1084
--vdavinci		MACH_VDAVINCI		VDAVINCI		1085
--atc6			MACH_ATC6		ATC6			1086
--multmdw			MACH_MULTMDW		MULTMDW			1087
--mba2440			MACH_MBA2440		MBA2440			1088
--ecsd			MACH_ECSD		ECSD			1089
--palmz31			MACH_PALMZ31		PALMZ31			1090
--fsg			MACH_FSG		FSG			1091
--razor101		MACH_RAZOR101		RAZOR101		1092
--opera_tdm		MACH_OPERA_TDM		OPERA_TDM		1093
--comcerto		MACH_COMCERTO		COMCERTO		1094
--tb0319			MACH_TB0319		TB0319			1095
--kws8000			MACH_KWS8000		KWS8000			1096
--b2			MACH_B2			B2			1097
--lcl54			MACH_LCL54		LCL54			1098
--at91sam9260ek		MACH_AT91SAM9260EK	AT91SAM9260EK		1099
--glantank		MACH_GLANTANK		GLANTANK		1100
--n2100			MACH_N2100		N2100			1101
--n4100			MACH_N4100		N4100			1102
--rsc4			MACH_VERTICAL_RSC4	VERTICAL_RSC4		1103
--sg8100			MACH_SG8100		SG8100			1104
--im42xx			MACH_IM42XX		IM42XX			1105
--ftxx			MACH_FTXX		FTXX			1106
--lwfusion		MACH_LWFUSION		LWFUSION		1107
--qt2410			MACH_QT2410		QT2410			1108
--kixrp435		MACH_KIXRP435		KIXRP435		1109
--ccw9c			MACH_CCW9C		CCW9C			1110
--dabhs			MACH_DABHS		DABHS			1111
--gzmx			MACH_GZMX		GZMX			1112
--ipnw100ap		MACH_IPNW100AP		IPNW100AP		1113
--cc9p9360dev		MACH_CC9P9360DEV	CC9P9360DEV		1114
--cc9p9750dev		MACH_CC9P9750DEV	CC9P9750DEV		1115
--cc9p9360val		MACH_CC9P9360VAL	CC9P9360VAL		1116
--cc9p9750val		MACH_CC9P9750VAL	CC9P9750VAL		1117
--nx70v			MACH_NX70V		NX70V			1118
--at91rm9200df		MACH_AT91RM9200DF	AT91RM9200DF		1119
--se_pilot2		MACH_SE_PILOT2		SE_PILOT2		1120
--mtcn_t800		MACH_MTCN_T800		MTCN_T800		1121
--vcmx212			MACH_VCMX212		VCMX212			1122
--lynx			MACH_LYNX		LYNX			1123
--at91sam9260id		MACH_AT91SAM9260ID	AT91SAM9260ID		1124
--hw86052			MACH_HW86052		HW86052			1125
--pilz_pmi3		MACH_PILZ_PMI3		PILZ_PMI3		1126
--edb9302a		MACH_EDB9302A		EDB9302A		1127
--edb9307a		MACH_EDB9307A		EDB9307A		1128
--ct_dfs			MACH_CT_DFS		CT_DFS			1129
--pilz_pmi4		MACH_PILZ_PMI4		PILZ_PMI4		1130
--xceednp_ixp		MACH_XCEEDNP_IXP	XCEEDNP_IXP		1131
--smdk2442b		MACH_SMDK2442B		SMDK2442B		1132
--xnode			MACH_XNODE		XNODE			1133
--aidx270			MACH_AIDX270		AIDX270			1134
--rema			MACH_REMA		REMA			1135
--bps1000			MACH_BPS1000		BPS1000			1136
--hw90350			MACH_HW90350		HW90350			1137
--omap_3430sdp		MACH_OMAP_3430SDP	OMAP_3430SDP		1138
--bluetouch		MACH_BLUETOUCH		BLUETOUCH		1139
--vstms			MACH_VSTMS		VSTMS			1140
--xsbase270		MACH_XSBASE270		XSBASE270		1141
--at91sam9260ek_cn	MACH_AT91SAM9260EK_CN	AT91SAM9260EK_CN	1142
--adsturboxb		MACH_ADSTURBOXB		ADSTURBOXB		1143
--oti4110			MACH_OTI4110		OTI4110			1144
--hme_pxa			MACH_HME_PXA		HME_PXA			1145
--deisterdca		MACH_DEISTERDCA		DEISTERDCA		1146
--ces_ssem2		MACH_CES_SSEM2		CES_SSEM2		1147
--ces_mtr			MACH_CES_MTR		CES_MTR			1148
--tds_avng_sbc		MACH_TDS_AVNG_SBC	TDS_AVNG_SBC		1149
--everest			MACH_EVEREST		EVEREST			1150
--pnx4010			MACH_PNX4010		PNX4010			1151
--oxnas			MACH_OXNAS		OXNAS			1152
--fiori			MACH_FIORI		FIORI			1153
--ml1200			MACH_ML1200		ML1200			1154
--pecos			MACH_PECOS		PECOS			1155
--nb2xxx			MACH_NB2XXX		NB2XXX			1156
--hw6900			MACH_HW6900		HW6900			1157
--cdcs_quoll		MACH_CDCS_QUOLL		CDCS_QUOLL		1158
--quicksilver		MACH_QUICKSILVER	QUICKSILVER		1159
--uplat926		MACH_UPLAT926		UPLAT926		1160
--dep2410_dep2410		MACH_DEP2410_THOMAS	DEP2410_THOMAS		1161
--dtk2410			MACH_DTK2410		DTK2410			1162
--chili			MACH_CHILI		CHILI			1163
--demeter			MACH_DEMETER		DEMETER			1164
--dionysus		MACH_DIONYSUS		DIONYSUS		1165
--as352x			MACH_AS352X		AS352X			1166
--service			MACH_SERVICE		SERVICE			1167
--cs_e9301		MACH_CS_E9301		CS_E9301		1168
--micro9m			MACH_MICRO9M		MICRO9M			1169
--ia_mospck		MACH_IA_MOSPCK		IA_MOSPCK		1170
--ql201b			MACH_QL201B		QL201B			1171
--bbm			MACH_BBM		BBM			1174
--exxx			MACH_EXXX		EXXX			1175
--wma11b			MACH_WMA11B		WMA11B			1176
--pelco_atlas		MACH_PELCO_ATLAS	PELCO_ATLAS		1177
--g500			MACH_G500		G500			1178
--bug			MACH_BUG		BUG			1179
--mx33ads			MACH_MX33ADS		MX33ADS			1180
--chub			MACH_CHUB		CHUB			1181
--neo1973_gta01		MACH_NEO1973_GTA01	NEO1973_GTA01		1182
--w90n740			MACH_W90N740		W90N740			1183
--medallion_sa2410	MACH_MEDALLION_SA2410	MEDALLION_SA2410	1184
--ia_cpu_9200_2		MACH_IA_CPU_9200_2	IA_CPU_9200_2		1185
--dimmrm9200		MACH_DIMMRM9200		DIMMRM9200		1186
--pm9261			MACH_PM9261		PM9261			1187
--ml7304			MACH_ML7304		ML7304			1189
--ucp250			MACH_UCP250		UCP250			1190
--intboard		MACH_INTBOARD		INTBOARD		1191
--gulfstream		MACH_GULFSTREAM		GULFSTREAM		1192
--labquest		MACH_LABQUEST		LABQUEST		1193
--vcmx313			MACH_VCMX313		VCMX313			1194
--urg200			MACH_URG200		URG200			1195
--cpux255lcdnet		MACH_CPUX255LCDNET	CPUX255LCDNET		1196
--netdcu9			MACH_NETDCU9		NETDCU9			1197
--netdcu10		MACH_NETDCU10		NETDCU10		1198
--dspg_dga		MACH_DSPG_DGA		DSPG_DGA		1199
--dspg_dvw		MACH_DSPG_DVW		DSPG_DVW		1200
--solos			MACH_SOLOS		SOLOS			1201
--at91sam9263ek		MACH_AT91SAM9263EK	AT91SAM9263EK		1202
--osstbox			MACH_OSSTBOX		OSSTBOX			1203
--kbat9261		MACH_KBAT9261		KBAT9261		1204
--ct1100			MACH_CT1100		CT1100			1205
--akcppxa			MACH_AKCPPXA		AKCPPXA			1206
--ochaya1020		MACH_OCHAYA1020		OCHAYA1020		1207
--hitrack			MACH_HITRACK		HITRACK			1208
--syme1			MACH_SYME1		SYME1			1209
--syhl1			MACH_SYHL1		SYHL1			1210
--empca400		MACH_EMPCA400		EMPCA400		1211
--em7210			MACH_EM7210		EM7210			1212
--htchermes		MACH_HTCHERMES		HTCHERMES		1213
--eti_c1			MACH_ETI_C1		ETI_C1			1214
--ac100			MACH_AC100		AC100			1216
--sneetch			MACH_SNEETCH		SNEETCH			1217
--studentmate		MACH_STUDENTMATE	STUDENTMATE		1218
--zir2410			MACH_ZIR2410		ZIR2410			1219
--zir2413			MACH_ZIR2413		ZIR2413			1220
--dlonip3			MACH_DLONIP3		DLONIP3			1221
--instream		MACH_INSTREAM		INSTREAM		1222
--ambarella		MACH_AMBARELLA		AMBARELLA		1223
--nevis			MACH_NEVIS		NEVIS			1224
--htc_trinity		MACH_HTC_TRINITY	HTC_TRINITY		1225
--ql202b			MACH_QL202B		QL202B			1226
--vpac270			MACH_VPAC270		VPAC270			1227
--rd129			MACH_RD129		RD129			1228
--htcwizard		MACH_HTCWIZARD		HTCWIZARD		1229
--treo680			MACH_TREO680		TREO680			1230
--tecon_tmezon		MACH_TECON_TMEZON	TECON_TMEZON		1231
--zylonite		MACH_ZYLONITE		ZYLONITE		1233
--gene1270		MACH_GENE1270		GENE1270		1234
--zir2412			MACH_ZIR2412		ZIR2412			1235
--mx31lite		MACH_MX31LITE		MX31LITE		1236
--t700wx			MACH_T700WX		T700WX			1237
--vf100			MACH_VF100		VF100			1238
--nsb2			MACH_NSB2		NSB2			1239
--nxhmi_bb		MACH_NXHMI_BB		NXHMI_BB		1240
--nxhmi_re		MACH_NXHMI_RE		NXHMI_RE		1241
--n4100pro		MACH_N4100PRO		N4100PRO		1242
--sam9260			MACH_SAM9260		SAM9260			1243
--omap_treo600		MACH_OMAP_TREO600	OMAP_TREO600		1244
--indy2410		MACH_INDY2410		INDY2410		1245
--nelt_a			MACH_NELT_A		NELT_A			1246
--n311			MACH_N311		N311			1248
--at91sam9260vgk		MACH_AT91SAM9260VGK	AT91SAM9260VGK		1249
--at91leppe		MACH_AT91LEPPE		AT91LEPPE		1250
--at91lepccn		MACH_AT91LEPCCN		AT91LEPCCN		1251
--apc7100			MACH_APC7100		APC7100			1252
--stargazer		MACH_STARGAZER		STARGAZER		1253
--sonata			MACH_SONATA		SONATA			1254
--schmoogie		MACH_SCHMOOGIE		SCHMOOGIE		1255
--aztool			MACH_AZTOOL		AZTOOL			1256
--mioa701			MACH_MIOA701		MIOA701			1257
--sxni9260		MACH_SXNI9260		SXNI9260		1258
--mxc27520evb		MACH_MXC27520EVB	MXC27520EVB		1259
--armadillo5x0		MACH_ARMADILLO5X0	ARMADILLO5X0		1260
--mb9260			MACH_MB9260		MB9260			1261
--mb9263			MACH_MB9263		MB9263			1262
--ipac9302		MACH_IPAC9302		IPAC9302		1263
--cc9p9360js		MACH_CC9P9360JS		CC9P9360JS		1264
--gallium			MACH_GALLIUM		GALLIUM			1265
--msc2410			MACH_MSC2410		MSC2410			1266
--ghi270			MACH_GHI270		GHI270			1267
--davinci_leonardo	MACH_DAVINCI_LEONARDO	DAVINCI_LEONARDO	1268
--oiab			MACH_OIAB		OIAB			1269
--smdk6400		MACH_SMDK6400		SMDK6400		1270
--nokia_n800		MACH_NOKIA_N800		NOKIA_N800		1271
--greenphone		MACH_GREENPHONE		GREENPHONE		1272
--compex42x		MACH_COMPEXWP18		COMPEXWP18		1273
--xmate			MACH_XMATE		XMATE			1274
--energizer		MACH_ENERGIZER		ENERGIZER		1275
--ime1			MACH_IME1		IME1			1276
--sweda_tms		MACH_SWEDATMS		SWEDATMS		1277
--ntnp435c		MACH_NTNP435C		NTNP435C		1278
--spectro2		MACH_SPECTRO2		SPECTRO2		1279
--h6039			MACH_H6039		H6039			1280
--ep80219			MACH_EP80219		EP80219			1281
--samoa_ii		MACH_SAMOA_II		SAMOA_II		1282
--cwmxl			MACH_CWMXL		CWMXL			1283
--as9200			MACH_AS9200		AS9200			1284
--sfx1149			MACH_SFX1149		SFX1149			1285
--navi010			MACH_NAVI010		NAVI010			1286
--multmdp			MACH_MULTMDP		MULTMDP			1287
--scb9520			MACH_SCB9520		SCB9520			1288
--htcathena		MACH_HTCATHENA		HTCATHENA		1289
--xp179			MACH_XP179		XP179			1290
--h4300			MACH_H4300		H4300			1291
--goramo_mlr		MACH_GORAMO_MLR		GORAMO_MLR		1292
--mxc30020evb		MACH_MXC30020EVB	MXC30020EVB		1293
--adsbitsyg5		MACH_ADSBITSYG5		ADSBITSYG5		1294
--adsportalplus		MACH_ADSPORTALPLUS	ADSPORTALPLUS		1295
--mmsp2plus		MACH_MMSP2PLUS		MMSP2PLUS		1296
--em_x270			MACH_EM_X270		EM_X270			1297
--tpp302			MACH_TPP302		TPP302			1298
--tpp104			MACH_TPM104		TPM104			1299
--tpm102			MACH_TPM102		TPM102			1300
--tpm109			MACH_TPM109		TPM109			1301
--fbxo1			MACH_FBXO1		FBXO1			1302
--hxd8			MACH_HXD8		HXD8			1303
--neo1973_gta02		MACH_NEO1973_GTA02	NEO1973_GTA02		1304
--emtest			MACH_EMTEST		EMTEST			1305
--ad6900			MACH_AD6900		AD6900			1306
--europa			MACH_EUROPA		EUROPA			1307
--metroconnect		MACH_METROCONNECT	METROCONNECT		1308
--ez_s2410		MACH_EZ_S2410		EZ_S2410		1309
--ez_s2440		MACH_EZ_S2440		EZ_S2440		1310
--ez_ep9312		MACH_EZ_EP9312		EZ_EP9312		1311
--ez_ep9315		MACH_EZ_EP9315		EZ_EP9315		1312
--ez_x7			MACH_EZ_X7		EZ_X7			1313
--godotdb			MACH_GODOTDB		GODOTDB			1314
--mistral			MACH_MISTRAL		MISTRAL			1315
--msm			MACH_MSM		MSM			1316
--ct5910			MACH_CT5910		CT5910			1317
--ct5912			MACH_CT5912		CT5912			1318
--hynet_ine		MACH_HYNET_INE		HYNET_INE		1319
--hynet_app		MACH_HYNET_APP		HYNET_APP		1320
--msm7200			MACH_MSM7200		MSM7200			1321
--msm7600			MACH_MSM7600		MSM7600			1322
--ceb255			MACH_CEB255		CEB255			1323
--ciel			MACH_CIEL		CIEL			1324
--slm5650			MACH_SLM5650		SLM5650			1325
--at91sam9rlek		MACH_AT91SAM9RLEK	AT91SAM9RLEK		1326
--comtech_router		MACH_COMTECH_ROUTER	COMTECH_ROUTER		1327
--sbc2410x		MACH_SBC2410X		SBC2410X		1328
--at4x0bd			MACH_AT4X0BD		AT4X0BD			1329
--cbifr			MACH_CBIFR		CBIFR			1330
--arcom_quantum		MACH_ARCOM_QUANTUM	ARCOM_QUANTUM		1331
--matrix520		MACH_MATRIX520		MATRIX520		1332
--matrix510		MACH_MATRIX510		MATRIX510		1333
--matrix500		MACH_MATRIX500		MATRIX500		1334
--m501			MACH_M501		M501			1335
--aaeon1270		MACH_AAEON1270		AAEON1270		1336
--matrix500ev		MACH_MATRIX500EV	MATRIX500EV		1337
--pac500			MACH_PAC500		PAC500			1338
--pnx8181			MACH_PNX8181		PNX8181			1339
--colibri320		MACH_COLIBRI320		COLIBRI320		1340
--aztoolbb		MACH_AZTOOLBB		AZTOOLBB		1341
--aztoolg2		MACH_AZTOOLG2		AZTOOLG2		1342
--dvlhost			MACH_DVLHOST		DVLHOST			1343
--zir9200			MACH_ZIR9200		ZIR9200			1344
--zir9260			MACH_ZIR9260		ZIR9260			1345
--cocopah			MACH_COCOPAH		COCOPAH			1346
--nds			MACH_NDS		NDS			1347
--rosencrantz		MACH_ROSENCRANTZ	ROSENCRANTZ		1348
--fttx_odsc		MACH_FTTX_ODSC		FTTX_ODSC		1349
--classe_r6904		MACH_CLASSE_R6904	CLASSE_R6904		1350
--cam60			MACH_CAM60		CAM60			1351
--mxc30031ads		MACH_MXC30031ADS	MXC30031ADS		1352
--datacall		MACH_DATACALL		DATACALL		1353
--at91eb01		MACH_AT91EB01		AT91EB01		1354
--rty			MACH_RTY		RTY			1355
--dwl2100			MACH_DWL2100		DWL2100			1356
--vinsi			MACH_VINSI		VINSI			1357
--db88f5281		MACH_DB88F5281		DB88F5281		1358
--csb726			MACH_CSB726		CSB726			1359
--tik27			MACH_TIK27		TIK27			1360
--mx_uc7420		MACH_MX_UC7420		MX_UC7420		1361
--rirm3			MACH_RIRM3		RIRM3			1362
--pelco_odyssey		MACH_PELCO_ODYSSEY	PELCO_ODYSSEY		1363
--adx_abox		MACH_ADX_ABOX		ADX_ABOX		1365
--adx_tpid		MACH_ADX_TPID		ADX_TPID		1366
--minicheck		MACH_MINICHECK		MINICHECK		1367
--idam			MACH_IDAM		IDAM			1368
--mario_mx		MACH_MARIO_MX		MARIO_MX		1369
--vi1888			MACH_VI1888		VI1888			1370
--zr4230			MACH_ZR4230		ZR4230			1371
--t1_ix_blue		MACH_T1_IX_BLUE		T1_IX_BLUE		1372
--syhq2			MACH_SYHQ2		SYHQ2			1373
--computime_r3		MACH_COMPUTIME_R3	COMPUTIME_R3		1374
--oratis			MACH_ORATIS		ORATIS			1375
--mikko			MACH_MIKKO		MIKKO			1376
--holon			MACH_HOLON		HOLON			1377
--olip8			MACH_OLIP8		OLIP8			1378
--ghi270hg		MACH_GHI270HG		GHI270HG		1379
--davinci_dm6467_evm	MACH_DAVINCI_DM6467_EVM	DAVINCI_DM6467_EVM	1380
--davinci_dm355_evm	MACH_DAVINCI_DM355_EVM	DAVINCI_DM355_EVM	1381
--blackriver		MACH_BLACKRIVER		BLACKRIVER		1383
--sandgate_wp		MACH_SANDGATEWP		SANDGATEWP		1384
--cdotbwsg		MACH_CDOTBWSG		CDOTBWSG		1385
--quark963		MACH_QUARK963		QUARK963		1386
--csb735			MACH_CSB735		CSB735			1387
--littleton		MACH_LITTLETON		LITTLETON		1388
--mio_p550		MACH_MIO_P550		MIO_P550		1389
--motion2440		MACH_MOTION2440		MOTION2440		1390
--imm500			MACH_IMM500		IMM500			1391
--homematic		MACH_HOMEMATIC		HOMEMATIC		1392
--ermine			MACH_ERMINE		ERMINE			1393
--kb9202b			MACH_KB9202B		KB9202B			1394
--hs1xx			MACH_HS1XX		HS1XX			1395
--studentmate2440		MACH_STUDENTMATE2440	STUDENTMATE2440		1396
--arvoo_l1_z1		MACH_ARVOO_L1_Z1	ARVOO_L1_Z1		1397
--dep2410k		MACH_DEP2410K		DEP2410K		1398
--xxsvideo		MACH_XXSVIDEO		XXSVIDEO		1399
--im4004			MACH_IM4004		IM4004			1400
--ochaya1050		MACH_OCHAYA1050		OCHAYA1050		1401
--lep9261			MACH_LEP9261		LEP9261			1402
--svenmeb			MACH_SVENMEB		SVENMEB			1403
--fortunet2ne		MACH_FORTUNET2NE	FORTUNET2NE		1404
--nxhx			MACH_NXHX		NXHX			1406
--realview_pb11mp		MACH_REALVIEW_PB11MP	REALVIEW_PB11MP		1407
--ids500			MACH_IDS500		IDS500			1408
--ors_n725		MACH_ORS_N725		ORS_N725		1409
--hsdarm			MACH_HSDARM		HSDARM			1410
--sha_pon003		MACH_SHA_PON003		SHA_PON003		1411
--sha_pon004		MACH_SHA_PON004		SHA_PON004		1412
--sha_pon007		MACH_SHA_PON007		SHA_PON007		1413
--sha_pon011		MACH_SHA_PON011		SHA_PON011		1414
--h6042			MACH_H6042		H6042			1415
--h6043			MACH_H6043		H6043			1416
--looxc550		MACH_LOOXC550		LOOXC550		1417
--cnty_titan		MACH_CNTY_TITAN		CNTY_TITAN		1418
--app3xx			MACH_APP3XX		APP3XX			1419
--sideoatsgrama		MACH_SIDEOATSGRAMA	SIDEOATSGRAMA		1420
--treo700p		MACH_TREO700P		TREO700P		1421
--treo700w		MACH_TREO700W		TREO700W		1422
--treo750			MACH_TREO750		TREO750			1423
--treo755p		MACH_TREO755P		TREO755P		1424
--ezreganut9200		MACH_EZREGANUT9200	EZREGANUT9200		1425
--sarge			MACH_SARGE		SARGE			1426
--a696			MACH_A696		A696			1427
--turtle1916		MACH_TURTLE		TURTLE			1428
--mx27_3ds		MACH_MX27_3DS		MX27_3DS		1430
--bishop			MACH_BISHOP		BISHOP			1431
--pxx			MACH_PXX		PXX			1432
--redwood			MACH_REDWOOD		REDWOOD			1433
--omap_2430dlp		MACH_OMAP_2430DLP	OMAP_2430DLP		1436
--omap_2430osk		MACH_OMAP_2430OSK	OMAP_2430OSK		1437
--sardine			MACH_SARDINE		SARDINE			1438
--halibut			MACH_HALIBUT		HALIBUT			1439
--trout			MACH_TROUT		TROUT			1440
--goldfish		MACH_GOLDFISH		GOLDFISH		1441
--gesbc2440		MACH_GESBC2440		GESBC2440		1442
--nomad			MACH_NOMAD		NOMAD			1443
--rosalind		MACH_ROSALIND		ROSALIND		1444
--cc9p9215		MACH_CC9P9215		CC9P9215		1445
--cc9p9210		MACH_CC9P9210		CC9P9210		1446
--cc9p9215js		MACH_CC9P9215JS		CC9P9215JS		1447
--cc9p9210js		MACH_CC9P9210JS		CC9P9210JS		1448
--nasffe			MACH_NASFFE		NASFFE			1449
--tn2x0bd			MACH_TN2X0BD		TN2X0BD			1450
--gwmpxa			MACH_GWMPXA		GWMPXA			1451
--exyplus			MACH_EXYPLUS		EXYPLUS			1452
--jadoo21			MACH_JADOO21		JADOO21			1453
--looxn560		MACH_LOOXN560		LOOXN560		1454
--bonsai			MACH_BONSAI		BONSAI			1455
--adsmilgato		MACH_ADSMILGATO		ADSMILGATO		1456
--gba			MACH_GBA		GBA			1457
--h6044			MACH_H6044		H6044			1458
--app			MACH_APP		APP			1459
--tct_hammer		MACH_TCT_HAMMER		TCT_HAMMER		1460
--herald			MACH_HERMES		HERMES			1461
--artemis			MACH_ARTEMIS		ARTEMIS			1462
--htctitan		MACH_HTCTITAN		HTCTITAN		1463
--qranium			MACH_QRANIUM		QRANIUM			1464
--adx_wsc2		MACH_ADX_WSC2		ADX_WSC2		1465
--adx_medcom		MACH_ADX_MEDCOM		ADX_MEDCOM		1466
--bboard			MACH_BBOARD		BBOARD			1467
--cambria			MACH_CAMBRIA		CAMBRIA			1468
--mt7xxx			MACH_MT7XXX		MT7XXX			1469
--matrix512		MACH_MATRIX512		MATRIX512		1470
--matrix522		MACH_MATRIX522		MATRIX522		1471
--ipac5010		MACH_IPAC5010		IPAC5010		1472
--sakura			MACH_SAKURA		SAKURA			1473
--grocx			MACH_GROCX		GROCX			1474
--pm9263			MACH_PM9263		PM9263			1475
--sim_one			MACH_SIM_ONE		SIM_ONE			1476
--acq132			MACH_ACQ132		ACQ132			1477
--datr			MACH_DATR		DATR			1478
--actux1			MACH_ACTUX1		ACTUX1			1479
--actux2			MACH_ACTUX2		ACTUX2			1480
--actux3			MACH_ACTUX3		ACTUX3			1481
--flexit			MACH_FLEXIT		FLEXIT			1482
--bh2x0bd			MACH_BH2X0BD		BH2X0BD			1483
--atb2002			MACH_ATB2002		ATB2002			1484
--xenon			MACH_XENON		XENON			1485
--fm607			MACH_FM607		FM607			1486
--matrix514		MACH_MATRIX514		MATRIX514		1487
--matrix524		MACH_MATRIX524		MATRIX524		1488
--inpod			MACH_INPOD		INPOD			1489
--jive			MACH_JIVE		JIVE			1490
--tll_mx21		MACH_TLL_MX21		TLL_MX21		1491
--sbc2800			MACH_SBC2800		SBC2800			1492
--cc7ucamry		MACH_CC7UCAMRY		CC7UCAMRY		1493
--ubisys_p9_sc15		MACH_UBISYS_P9_SC15	UBISYS_P9_SC15		1494
--ubisys_p9_ssc2d10	MACH_UBISYS_P9_SSC2D10	UBISYS_P9_SSC2D10	1495
--ubisys_p9_rcu3		MACH_UBISYS_P9_RCU3	UBISYS_P9_RCU3		1496
--aml_m8000		MACH_AML_M8000		AML_M8000		1497
--snapper_270		MACH_SNAPPER_270	SNAPPER_270		1498
--omap_bbx		MACH_OMAP_BBX		OMAP_BBX		1499
--ucn2410			MACH_UCN2410		UCN2410			1500
--sam9_l9260		MACH_SAM9_L9260		SAM9_L9260		1501
--eti_c2			MACH_ETI_C2		ETI_C2			1502
--avalanche		MACH_AVALANCHE		AVALANCHE		1503
--realview_pb1176		MACH_REALVIEW_PB1176	REALVIEW_PB1176		1504
--dp1500			MACH_DP1500		DP1500			1505
--apple_iphone		MACH_APPLE_IPHONE	APPLE_IPHONE		1506
--yl9200			MACH_YL9200		YL9200			1507
--rd88f5182		MACH_RD88F5182		RD88F5182		1508
--kurobox_pro		MACH_KUROBOX_PRO	KUROBOX_PRO		1509
--se_poet			MACH_SE_POET		SE_POET			1510
--mx31_3ds		MACH_MX31_3DS		MX31_3DS		1511
--r270			MACH_R270		R270			1512
--armour21		MACH_ARMOUR21		ARMOUR21		1513
--dt2			MACH_DT2		DT2			1514
--vt4			MACH_VT4		VT4			1515
--tyco320			MACH_TYCO320		TYCO320			1516
--adma			MACH_ADMA		ADMA			1517
--wp188			MACH_WP188		WP188			1518
--corsica			MACH_CORSICA		CORSICA			1519
--bigeye			MACH_BIGEYE		BIGEYE			1520
--tll5000			MACH_TLL5000		TLL5000			1522
--bebot			MACH_BEBOT		BEBOT			1523
--qong			MACH_QONG		QONG			1524
--tcompact		MACH_TCOMPACT		TCOMPACT		1525
--puma5			MACH_PUMA5		PUMA5			1526
--elara			MACH_ELARA		ELARA			1527
--ellington		MACH_ELLINGTON		ELLINGTON		1528
--xda_atom		MACH_XDA_ATOM		XDA_ATOM		1529
--energizer2		MACH_ENERGIZER2		ENERGIZER2		1530
--odin			MACH_ODIN		ODIN			1531
--actux4			MACH_ACTUX4		ACTUX4			1532
--esl_omap		MACH_ESL_OMAP		ESL_OMAP		1533
--omap2evm		MACH_OMAP2EVM		OMAP2EVM		1534
--omap3evm		MACH_OMAP3EVM		OMAP3EVM		1535
--adx_pcu57		MACH_ADX_PCU57		ADX_PCU57		1536
--monaco			MACH_MONACO		MONACO			1537
--levante			MACH_LEVANTE		LEVANTE			1538
--tmxipx425		MACH_TMXIPX425		TMXIPX425		1539
--leep			MACH_LEEP		LEEP			1540
--raad			MACH_RAAD		RAAD			1541
--dns323			MACH_DNS323		DNS323			1542
--ap1000			MACH_AP1000		AP1000			1543
--a9sam6432		MACH_A9SAM6432		A9SAM6432		1544
--shiny			MACH_SHINY		SHINY			1545
--omap3_beagle		MACH_OMAP3_BEAGLE	OMAP3_BEAGLE		1546
--csr_bdb2		MACH_CSR_BDB2		CSR_BDB2		1547
--nokia_n810		MACH_NOKIA_N810		NOKIA_N810		1548
--c270			MACH_C270		C270			1549
--sentry			MACH_SENTRY		SENTRY			1550
--pcm038			MACH_PCM038		PCM038			1551
--anc300			MACH_ANC300		ANC300			1552
--htckaiser		MACH_HTCKAISER		HTCKAISER		1553
--sbat100			MACH_SBAT100		SBAT100			1554
--modunorm		MACH_MODUNORM		MODUNORM		1555
--pelos_twarm		MACH_PELOS_TWARM	PELOS_TWARM		1556
--flank			MACH_FLANK		FLANK			1557
--sirloin			MACH_SIRLOIN		SIRLOIN			1558
--brisket			MACH_BRISKET		BRISKET			1559
--chuck			MACH_CHUCK		CHUCK			1560
--otter			MACH_OTTER		OTTER			1561
--davinci_ldk		MACH_DAVINCI_LDK	DAVINCI_LDK		1562
--phreedom		MACH_PHREEDOM		PHREEDOM		1563
--sg310			MACH_SG310		SG310			1564
--ts_x09			MACH_TS209		TS209			1565
--at91cap9adk		MACH_AT91CAP9ADK	AT91CAP9ADK		1566
--tion9315		MACH_TION9315		TION9315		1567
--mast			MACH_MAST		MAST			1568
--pfw			MACH_PFW		PFW			1569
--yl_p2440		MACH_YL_P2440		YL_P2440		1570
--zsbc32			MACH_ZSBC32		ZSBC32			1571
--omap_pace2		MACH_OMAP_PACE2		OMAP_PACE2		1572
--imx_pace2		MACH_IMX_PACE2		IMX_PACE2		1573
--mx31moboard		MACH_MX31MOBOARD	MX31MOBOARD		1574
--mx37_3ds		MACH_MX37_3DS		MX37_3DS		1575
--rcc			MACH_RCC		RCC			1576
--dmp			MACH_ARM9		ARM9			1577
--vision_ep9307		MACH_VISION_EP9307	VISION_EP9307		1578
--scly1000		MACH_SCLY1000		SCLY1000		1579
--fontel_ep		MACH_FONTEL_EP		FONTEL_EP		1580
--voiceblue3g		MACH_VOICEBLUE3G	VOICEBLUE3G		1581
--tt9200			MACH_TT9200		TT9200			1582
--digi2410		MACH_DIGI2410		DIGI2410		1583
--terastation_pro2	MACH_TERASTATION_PRO2	TERASTATION_PRO2	1584
--linkstation_pro		MACH_LINKSTATION_PRO	LINKSTATION_PRO		1585
--motorola_a780		MACH_MOTOROLA_A780	MOTOROLA_A780		1587
--motorola_e6		MACH_MOTOROLA_E6	MOTOROLA_E6		1588
--motorola_e2		MACH_MOTOROLA_E2	MOTOROLA_E2		1589
--motorola_e680		MACH_MOTOROLA_E680	MOTOROLA_E680		1590
--ur2410			MACH_UR2410		UR2410			1591
--tas9261			MACH_TAS9261		TAS9261			1592
--davinci_hermes_hd	MACH_HERMES_HD		HERMES_HD		1593
--davinci_perseo_hd	MACH_PERSEO_HD		PERSEO_HD		1594
--stargazer2		MACH_STARGAZER2		STARGAZER2		1595
--e350			MACH_E350		E350			1596
--wpcm450			MACH_WPCM450		WPCM450			1597
--cartesio		MACH_CARTESIO		CARTESIO		1598
--toybox			MACH_TOYBOX		TOYBOX			1599
--tx27			MACH_TX27		TX27			1600
--ts409			MACH_TS409		TS409			1601
--p300			MACH_P300		P300			1602
--xdacomet		MACH_XDACOMET		XDACOMET		1603
--dexflex2		MACH_DEXFLEX2		DEXFLEX2		1604
--ow			MACH_OW			OW			1605
--armebs3			MACH_ARMEBS3		ARMEBS3			1606
--u3			MACH_U3			U3			1607
--smdk2450		MACH_SMDK2450		SMDK2450		1608
--rsi_ews			MACH_RSI_EWS		RSI_EWS			1609
--tnb			MACH_TNB		TNB			1610
--toepath			MACH_TOEPATH		TOEPATH			1611
--kb9263			MACH_KB9263		KB9263			1612
--mt7108			MACH_MT7108		MT7108			1613
--smtr2440		MACH_SMTR2440		SMTR2440		1614
--manao			MACH_MANAO		MANAO			1615
--cm_x300			MACH_CM_X300		CM_X300			1616
--gulfstream_kp		MACH_GULFSTREAM_KP	GULFSTREAM_KP		1617
--lanreadyfn522		MACH_LANREADYFN522	LANREADYFN522		1618
--arma37			MACH_ARMA37		ARMA37			1619
--mendel			MACH_MENDEL		MENDEL			1620
--pelco_iliad		MACH_PELCO_ILIAD	PELCO_ILIAD		1621
--unit2p			MACH_UNIT2P		UNIT2P			1622
--inc20otter		MACH_INC20OTTER		INC20OTTER		1623
--at91sam9g20ek		MACH_AT91SAM9G20EK	AT91SAM9G20EK		1624
--sc_ge2			MACH_STORCENTER		STORCENTER		1625
--smdk6410		MACH_SMDK6410		SMDK6410		1626
--u300			MACH_U300		U300			1627
--u500			MACH_U500		U500			1628
--ds9260			MACH_DS9260		DS9260			1629
--riverrock		MACH_RIVERROCK		RIVERROCK		1630
--scibath			MACH_SCIBATH		SCIBATH			1631
--at91sam7se		MACH_AT91SAM7SE512EK	AT91SAM7SE512EK		1632
--wrt350n_v2		MACH_WRT350N_V2		WRT350N_V2		1633
--multimedia		MACH_MULTIMEDIA		MULTIMEDIA		1634
--marvin			MACH_MARVIN		MARVIN			1635
--x500			MACH_X500		X500			1636
--awlug4lcu		MACH_AWLUG4LCU		AWLUG4LCU		1637
--palermoc		MACH_PALERMOC		PALERMOC		1638
--omap_ldp		MACH_OMAP_LDP		OMAP_LDP		1639
--ip500			MACH_IP500		IP500			1640
--ase2			MACH_ASE2		ASE2			1642
--mx35evb			MACH_MX35EVB		MX35EVB			1643
--aml_m8050		MACH_AML_M8050		AML_M8050		1644
--mx35_3ds		MACH_MX35_3DS		MX35_3DS		1645
--mars			MACH_MARS		MARS			1646
--ntosd_644xa		MACH_NTOSD_644XA	NTOSD_644XA		1647
--badger			MACH_BADGER		BADGER			1648
--trizeps4wl		MACH_TRIZEPS4WL		TRIZEPS4WL		1649
--trizeps5		MACH_TRIZEPS5		TRIZEPS5		1650
--marlin			MACH_MARLIN		MARLIN			1651
--ts78xx			MACH_TS78XX		TS78XX			1652
--hpipaq214		MACH_HPIPAQ214		HPIPAQ214		1653
--at572d940dcm		MACH_AT572D940DCM	AT572D940DCM		1654
--ne1board		MACH_NE1BOARD		NE1BOARD		1655
--zante			MACH_ZANTE		ZANTE			1656
--sffsdr			MACH_SFFSDR		SFFSDR			1657
--tw2662			MACH_TW2662		TW2662			1658
--vf10xx			MACH_VF10XX		VF10XX			1659
--zoran43xx		MACH_ZORAN43XX		ZORAN43XX		1660
--sonix926		MACH_SONIX926		SONIX926		1661
--celestialsemi		MACH_CELESTIALSEMI	CELESTIALSEMI		1662
--cc9m2443		MACH_CC9M2443		CC9M2443		1663
--tw5334			MACH_TW5334		TW5334			1664
--omap_htcartemis		MACH_HTCARTEMIS		HTCARTEMIS		1665
--nal_hlite		MACH_NAL_HLITE		NAL_HLITE		1666
--htcvogue		MACH_HTCVOGUE		HTCVOGUE		1667
--smartweb		MACH_SMARTWEB		SMARTWEB		1668
--mv86xx			MACH_MV86XX		MV86XX			1669
--mv87xx			MACH_MV87XX		MV87XX			1670
--songyoungho		MACH_SONGYOUNGHO	SONGYOUNGHO		1671
--younghotema		MACH_YOUNGHOTEMA	YOUNGHOTEMA		1672
--pcm037			MACH_PCM037		PCM037			1673
--mmvp			MACH_MMVP		MMVP			1674
--mmap			MACH_MMAP		MMAP			1675
--ptid2410		MACH_PTID2410		PTID2410		1676
--james_926		MACH_JAMES_926		JAMES_926		1677
--fm6000			MACH_FM6000		FM6000			1678
--db88f6281_bp		MACH_DB88F6281_BP	DB88F6281_BP		1680
--rd88f6192_nas		MACH_RD88F6192_NAS	RD88F6192_NAS		1681
--rd88f6281		MACH_RD88F6281		RD88F6281		1682
--db78x00_bp		MACH_DB78X00_BP		DB78X00_BP		1683
--smdk2416		MACH_SMDK2416		SMDK2416		1685
--oce_spider_si		MACH_OCE_SPIDER_SI	OCE_SPIDER_SI		1686
--oce_spider_sk		MACH_OCE_SPIDER_SK	OCE_SPIDER_SK		1687
--rovern6			MACH_ROVERN6		ROVERN6			1688
--pelco_evolution		MACH_PELCO_EVOLUTION	PELCO_EVOLUTION		1689
--wbd111			MACH_WBD111		WBD111			1690
--elaracpe		MACH_ELARACPE		ELARACPE		1691
--mabv3			MACH_MABV3		MABV3			1692
--mv2120			MACH_MV2120		MV2120			1693
--csb737			MACH_CSB737		CSB737			1695
--mx51_3ds		MACH_MX51_3DS		MX51_3DS		1696
--g900			MACH_G900		G900			1697
--apf27			MACH_APF27		APF27			1698
--ggus2000		MACH_GGUS2000		GGUS2000		1699
--omap_2430_mimic		MACH_OMAP_2430_MIMIC	OMAP_2430_MIMIC		1700
--imx27lite		MACH_IMX27LITE		IMX27LITE		1701
--almex			MACH_ALMEX		ALMEX			1702
--control			MACH_CONTROL		CONTROL			1703
--mba2410			MACH_MBA2410		MBA2410			1704
--volcano			MACH_VOLCANO		VOLCANO			1705
--zenith			MACH_ZENITH		ZENITH			1706
--muchip			MACH_MUCHIP		MUCHIP			1707
--magellan		MACH_MAGELLAN		MAGELLAN		1708
--usb_a9260		MACH_USB_A9260		USB_A9260		1709
--usb_a9263		MACH_USB_A9263		USB_A9263		1710
--qil_a9260		MACH_QIL_A9260		QIL_A9260		1711
--cme9210			MACH_CME9210		CME9210			1712
--hczh4			MACH_HCZH4		HCZH4			1713
--spearbasic		MACH_SPEARBASIC		SPEARBASIC		1714
--dep2440			MACH_DEP2440		DEP2440			1715
--hdl_gxr			MACH_HDL_GXR		HDL_GXR			1716
--hdl_gt			MACH_HDL_GT		HDL_GT			1717
--hdl_4g			MACH_HDL_4G		HDL_4G			1718
--s3c6000			MACH_S3C6000		S3C6000			1719
--mmsp2_mdk		MACH_MMSP2_MDK		MMSP2_MDK		1720
--mpx220			MACH_MPX220		MPX220			1721
--kzm_arm11_01		MACH_KZM_ARM11_01	KZM_ARM11_01		1722
--htc_polaris		MACH_HTC_POLARIS	HTC_POLARIS		1723
--htc_kaiser		MACH_HTC_KAISER		HTC_KAISER		1724
--lg_ks20			MACH_LG_KS20		LG_KS20			1725
--hhgps			MACH_HHGPS		HHGPS			1726
--nokia_n810_wimax	MACH_NOKIA_N810_WIMAX	NOKIA_N810_WIMAX	1727
--insight			MACH_INSIGHT		INSIGHT			1728
--sapphire		MACH_SAPPHIRE		SAPPHIRE		1729
--csb637xo		MACH_CSB637XO		CSB637XO		1730
--evisiong		MACH_EVISIONG		EVISIONG		1731
--stmp37xx		MACH_STMP37XX		STMP37XX		1732
--stmp378x		MACH_STMP378X		STMP378X		1733
--tnt			MACH_TNT		TNT			1734
--tbxt			MACH_TBXT		TBXT			1735
--playmate		MACH_PLAYMATE		PLAYMATE		1736
--pns10			MACH_PNS10		PNS10			1737
--eznavi			MACH_EZNAVI		EZNAVI			1738
--ps4000			MACH_PS4000		PS4000			1739
--ezx_a780		MACH_EZX_A780		EZX_A780		1740
--ezx_e680		MACH_EZX_E680		EZX_E680		1741
--ezx_a1200		MACH_EZX_A1200		EZX_A1200		1742
--ezx_e6			MACH_EZX_E6		EZX_E6			1743
--ezx_e2			MACH_EZX_E2		EZX_E2			1744
--ezx_a910		MACH_EZX_A910		EZX_A910		1745
--cwmx31			MACH_CWMX31		CWMX31			1746
--sl2312			MACH_SL2312		SL2312			1747
--blenny			MACH_BLENNY		BLENNY			1748
--ds107			MACH_DS107		DS107			1749
--dsx07			MACH_DSX07		DSX07			1750
--picocom1		MACH_PICOCOM1		PICOCOM1		1751
--lynx_wolverine		MACH_LYNX_WOLVERINE	LYNX_WOLVERINE		1752
--ubisys_p9_sc19		MACH_UBISYS_P9_SC19	UBISYS_P9_SC19		1753
--kratos_low		MACH_KRATOS_LOW		KRATOS_LOW		1754
--m700			MACH_M700		M700			1755
--edmini_v2		MACH_EDMINI_V2		EDMINI_V2		1756
--zipit2			MACH_ZIPIT2		ZIPIT2			1757
--hslfemtocell		MACH_HSLFEMTOCELL	HSLFEMTOCELL		1758
--daintree_at91		MACH_DAINTREE_AT91	DAINTREE_AT91		1759
--sg560usb		MACH_SG560USB		SG560USB		1760
--omap3_pandora		MACH_OMAP3_PANDORA	OMAP3_PANDORA		1761
--usr8200			MACH_USR8200		USR8200			1762
--s1s65k			MACH_S1S65K		S1S65K			1763
--s2s65a			MACH_S2S65A		S2S65A			1764
--icore			MACH_ICORE		ICORE			1765
--mss2			MACH_MSS2		MSS2			1766
--belmont			MACH_BELMONT		BELMONT			1767
--asusp525		MACH_ASUSP525		ASUSP525		1768
--lb88rc8480		MACH_LB88RC8480		LB88RC8480		1769
--hipxa			MACH_HIPXA		HIPXA			1770
--mx25_3ds		MACH_MX25_3DS		MX25_3DS		1771
--m800			MACH_M800		M800			1772
--omap3530_lv_som		MACH_OMAP3530_LV_SOM	OMAP3530_LV_SOM		1773
--prima_evb		MACH_PRIMA_EVB		PRIMA_EVB		1774
--mx31bt1			MACH_MX31BT1		MX31BT1			1775
--atlas4_evb		MACH_ATLAS4_EVB		ATLAS4_EVB		1776
--mx31cicada		MACH_MX31CICADA		MX31CICADA		1777
--mi424wr			MACH_MI424WR		MI424WR			1778
--axs_ultrax		MACH_AXS_ULTRAX		AXS_ULTRAX		1779
--at572d940deb		MACH_AT572D940DEB	AT572D940DEB		1780
--davinci_da8xx_evm	MACH_DAVINCI_DA8XX_EVM	DAVINCI_DA8XX_EVM	1781
--ep9302			MACH_EP9302		EP9302			1782
--at572d940hfek		MACH_AT572D940HFEB	AT572D940HFEB		1783
--cybook3			MACH_CYBOOK3		CYBOOK3			1784
--wdg002			MACH_WDG002		WDG002			1785
--sg560adsl		MACH_SG560ADSL		SG560ADSL		1786
--nextio_n2800_ica	MACH_NEXTIO_N2800_ICA	NEXTIO_N2800_ICA	1787
--marvell_newdb		MACH_MARVELL_NEWDB	MARVELL_NEWDB		1789
--vandihud		MACH_VANDIHUD		VANDIHUD		1790
--magx_e8			MACH_MAGX_E8		MAGX_E8			1791
--magx_z6			MACH_MAGX_Z6		MAGX_Z6			1792
--magx_v8			MACH_MAGX_V8		MAGX_V8			1793
--magx_u9			MACH_MAGX_U9		MAGX_U9			1794
--toughcf08		MACH_TOUGHCF08		TOUGHCF08		1795
--zw4400			MACH_ZW4400		ZW4400			1796
--marat91			MACH_MARAT91		MARAT91			1797
--overo			MACH_OVERO		OVERO			1798
--at2440evb		MACH_AT2440EVB		AT2440EVB		1799
--neocore926		MACH_NEOCORE926		NEOCORE926		1800
--wnr854t			MACH_WNR854T		WNR854T			1801
--imx27			MACH_IMX27		IMX27			1802
--moose_db		MACH_MOOSE_DB		MOOSE_DB		1803
--fab4			MACH_FAB4		FAB4			1804
--htcdiamond		MACH_HTCDIAMOND		HTCDIAMOND		1805
--fiona			MACH_FIONA		FIONA			1806
--mxc30030_x		MACH_MXC30030_X		MXC30030_X		1807
--bmp1000			MACH_BMP1000		BMP1000			1808
--logi9200		MACH_LOGI9200		LOGI9200		1809
--tqma31			MACH_TQMA31		TQMA31			1810
--ccw9p9215js		MACH_CCW9P9215JS	CCW9P9215JS		1811
--rd88f5181l_ge		MACH_RD88F5181L_GE	RD88F5181L_GE		1812
--sifmain			MACH_SIFMAIN		SIFMAIN			1813
--sam9_l9261		MACH_SAM9_L9261		SAM9_L9261		1814
--cc9m2443js		MACH_CC9M2443JS		CC9M2443JS		1815
--xaria300		MACH_XARIA300		XARIA300		1816
--it9200			MACH_IT9200		IT9200			1817
--rd88f5181l_fxo		MACH_RD88F5181L_FXO	RD88F5181L_FXO		1818
--kriss_sensor		MACH_KRISS_SENSOR	KRISS_SENSOR		1819
--pilz_pmi5		MACH_PILZ_PMI5		PILZ_PMI5		1820
--jade			MACH_JADE		JADE			1821
--ks8695_softplc		MACH_KS8695_SOFTPLC	KS8695_SOFTPLC		1822
--gprisc3			MACH_GPRISC3		GPRISC3			1823
--stamp9g20		MACH_STAMP9G20		STAMP9G20		1824
--smdk6430		MACH_SMDK6430		SMDK6430		1825
--smdkc100		MACH_SMDKC100		SMDKC100		1826
--tavorevb		MACH_TAVOREVB		TAVOREVB		1827
--saar			MACH_SAAR		SAAR			1828
--deister_eyecam		MACH_DEISTER_EYECAM	DEISTER_EYECAM		1829
--at91sam9m10g45ek	MACH_AT91SAM9M10G45EK	AT91SAM9M10G45EK	1830
--linkstation_produo	MACH_LINKSTATION_PRODUO	LINKSTATION_PRODUO	1831
--hit_b0			MACH_HIT_B0		HIT_B0			1832
--adx_rmu			MACH_ADX_RMU		ADX_RMU			1833
--xg_cpe_main		MACH_XG_CPE_MAIN	XG_CPE_MAIN		1834
--edb9407a		MACH_EDB9407A		EDB9407A		1835
--dtb9608			MACH_DTB9608		DTB9608			1836
--em104v1			MACH_EM104V1		EM104V1			1837
--demo			MACH_DEMO		DEMO			1838
--logi9260		MACH_LOGI9260		LOGI9260		1839
--mx31_exm32		MACH_MX31_EXM32		MX31_EXM32		1840
--usb_a9g20		MACH_USB_A9G20		USB_A9G20		1841
--picproje2008		MACH_PICPROJE2008	PICPROJE2008		1842
--cs_e9315		MACH_CS_E9315		CS_E9315		1843
--qil_a9g20		MACH_QIL_A9G20		QIL_A9G20		1844
--sha_pon020		MACH_SHA_PON020		SHA_PON020		1845
--nad			MACH_NAD		NAD			1846
--sbc35_a9260		MACH_SBC35_A9260	SBC35_A9260		1847
--sbc35_a9g20		MACH_SBC35_A9G20	SBC35_A9G20		1848
--davinci_beginning	MACH_DAVINCI_BEGINNING	DAVINCI_BEGINNING	1849
--uwc			MACH_UWC		UWC			1850
--mxlads			MACH_MXLADS		MXLADS			1851
--htcnike			MACH_HTCNIKE		HTCNIKE			1852
--deister_pxa270		MACH_DEISTER_PXA270	DEISTER_PXA270		1853
--cme9210js		MACH_CME9210JS		CME9210JS		1854
--cc9p9360		MACH_CC9P9360		CC9P9360		1855
--mocha			MACH_MOCHA		MOCHA			1856
--wapd170ag		MACH_WAPD170AG		WAPD170AG		1857
--linkstation_mini	MACH_LINKSTATION_MINI	LINKSTATION_MINI	1858
--afeb9260		MACH_AFEB9260		AFEB9260		1859
--w90x900			MACH_W90X900		W90X900			1860
--w90x700			MACH_W90X700		W90X700			1861
--kt300ip			MACH_KT300IP		KT300IP			1862
--kt300ip_g20		MACH_KT300IP_G20	KT300IP_G20		1863
--srcm			MACH_SRCM		SRCM			1864
--wlnx_9260		MACH_WLNX_9260		WLNX_9260		1865
--openmoko_gta03		MACH_OPENMOKO_GTA03	OPENMOKO_GTA03		1866
--osprey2			MACH_OSPREY2		OSPREY2			1867
--kbio9260		MACH_KBIO9260		KBIO9260		1868
--ginza			MACH_GINZA		GINZA			1869
--a636n			MACH_A636N		A636N			1870
--imx27ipcam		MACH_IMX27IPCAM		IMX27IPCAM		1871
--nemoc			MACH_NEMOC		NEMOC			1872
--geneva			MACH_GENEVA		GENEVA			1873
--htcpharos		MACH_HTCPHAROS		HTCPHAROS		1874
--neonc			MACH_NEONC		NEONC			1875
--nas7100			MACH_NAS7100		NAS7100			1876
--teuphone		MACH_TEUPHONE		TEUPHONE		1877
--annax_eth2		MACH_ANNAX_ETH2		ANNAX_ETH2		1878
--csb733			MACH_CSB733		CSB733			1879
--bk3			MACH_BK3		BK3			1880
--omap_em32		MACH_OMAP_EM32		OMAP_EM32		1881
--et9261cp		MACH_ET9261CP		ET9261CP		1882
--jasperc			MACH_JASPERC		JASPERC			1883
--issi_arm9		MACH_ISSI_ARM9		ISSI_ARM9		1884
--ued			MACH_UED		UED			1885
--esiblade		MACH_ESIBLADE		ESIBLADE		1886
--eye02			MACH_EYE02		EYE02			1887
--imx27kbd		MACH_IMX27KBD		IMX27KBD		1888
--sst61vc010_fpga		MACH_SST61VC010_FPGA	SST61VC010_FPGA		1889
--kixvp435		MACH_KIXVP435		KIXVP435		1890
--kixnp435		MACH_KIXNP435		KIXNP435		1891
--africa			MACH_AFRICA		AFRICA			1892
--nh233			MACH_NH233		NH233			1893
--rd88f6183ap_ge		MACH_RD88F6183AP_GE	RD88F6183AP_GE		1894
--bcm4760			MACH_BCM4760		BCM4760			1895
--eddy_v2			MACH_EDDY_V2		EDDY_V2			1896
--realview_pba8		MACH_REALVIEW_PBA8	REALVIEW_PBA8		1897
--hid_a7			MACH_HID_A7		HID_A7			1898
--hero			MACH_HERO		HERO			1899
--omap_poseidon		MACH_OMAP_POSEIDON	OMAP_POSEIDON		1900
--realview_pbx		MACH_REALVIEW_PBX	REALVIEW_PBX		1901
--micro9s			MACH_MICRO9S		MICRO9S			1902
--mako			MACH_MAKO		MAKO			1903
--xdaflame		MACH_XDAFLAME		XDAFLAME		1904
--phidget_sbc2		MACH_PHIDGET_SBC2	PHIDGET_SBC2		1905
--limestone		MACH_LIMESTONE		LIMESTONE		1906
--iprobe_c32		MACH_IPROBE_C32		IPROBE_C32		1907
--rut100			MACH_RUT100		RUT100			1908
--asusp535		MACH_ASUSP535		ASUSP535		1909
--htcraphael		MACH_HTCRAPHAEL		HTCRAPHAEL		1910
--sygdg1			MACH_SYGDG1		SYGDG1			1911
--sygdg2			MACH_SYGDG2		SYGDG2			1912
--seoul			MACH_SEOUL		SEOUL			1913
--salerno			MACH_SALERNO		SALERNO			1914
--ucn_s3c64xx		MACH_UCN_S3C64XX	UCN_S3C64XX		1915
--msm7201a		MACH_MSM7201A		MSM7201A		1916
--lpr1			MACH_LPR1		LPR1			1917
--armadillo500fx		MACH_ARMADILLO500FX	ARMADILLO500FX		1918
--g3evm			MACH_G3EVM		G3EVM			1919
--z3_dm355		MACH_Z3_DM355		Z3_DM355		1920
--w90p910evb		MACH_W90P910EVB		W90P910EVB		1921
--w90p920evb		MACH_W90P920EVB		W90P920EVB		1922
--w90p950evb		MACH_W90P950EVB		W90P950EVB		1923
--w90n960evb		MACH_W90N960EVB		W90N960EVB		1924
--camhd			MACH_CAMHD		CAMHD			1925
--mvc100			MACH_MVC100		MVC100			1926
--electrum_200		MACH_ELECTRUM_200	ELECTRUM_200		1927
--htcjade			MACH_HTCJADE		HTCJADE			1928
--memphis			MACH_MEMPHIS		MEMPHIS			1929
--imx27sbc		MACH_IMX27SBC		IMX27SBC		1930
--lextar			MACH_LEXTAR		LEXTAR			1931
--mv88f6281gtw_ge		MACH_MV88F6281GTW_GE	MV88F6281GTW_GE		1932
--ncp			MACH_NCP		NCP			1933
--z32an_series		MACH_Z32AN		Z32AN			1934
--tmq_capd		MACH_TMQ_CAPD		TMQ_CAPD		1935
--omap3_wl		MACH_OMAP3_WL		OMAP3_WL		1936
--chumby			MACH_CHUMBY		CHUMBY			1937
--atsarm9			MACH_ATSARM9		ATSARM9			1938
--davinci_dm365_evm	MACH_DAVINCI_DM365_EVM	DAVINCI_DM365_EVM	1939
--bahamas			MACH_BAHAMAS		BAHAMAS			1940
--das			MACH_DAS		DAS			1941
--minidas			MACH_MINIDAS		MINIDAS			1942
--vk1000			MACH_VK1000		VK1000			1943
--centro			MACH_CENTRO		CENTRO			1944
--ctera_2bay		MACH_CTERA_2BAY		CTERA_2BAY		1945
--edgeconnect		MACH_EDGECONNECT	EDGECONNECT		1946
--nd27000			MACH_ND27000		ND27000			1947
--cobra			MACH_GEMALTO_COBRA	GEMALTO_COBRA		1948
--ingelabs_comet		MACH_INGELABS_COMET	INGELABS_COMET		1949
--pollux_wiz		MACH_POLLUX_WIZ		POLLUX_WIZ		1950
--blackstone		MACH_BLACKSTONE		BLACKSTONE		1951
--topaz			MACH_TOPAZ		TOPAZ			1952
--aixle			MACH_AIXLE		AIXLE			1953
--mw998			MACH_MW998		MW998			1954
--nokia_rx51		MACH_NOKIA_RX51		NOKIA_RX51		1955
--vsc5605ev		MACH_VSC5605EV		VSC5605EV		1956
--nt98700dk		MACH_NT98700DK		NT98700DK		1957
--icontact		MACH_ICONTACT		ICONTACT		1958
--swarco_frcpu		MACH_SWARCO_FRCPU	SWARCO_FRCPU		1959
--swarco_scpu		MACH_SWARCO_SCPU	SWARCO_SCPU		1960
--bbox_p16		MACH_BBOX_P16		BBOX_P16		1961
--bstd			MACH_BSTD		BSTD			1962
--sbc2440ii		MACH_SBC2440II		SBC2440II		1963
--pcm034			MACH_PCM034		PCM034			1964
--neso			MACH_NESO		NESO			1965
--wlnx_9g20		MACH_WLNX_9G20		WLNX_9G20		1966
--omap_zoom2		MACH_OMAP_ZOOM2		OMAP_ZOOM2		1967
--totemnova		MACH_TOTEMNOVA		TOTEMNOVA		1968
--c5000			MACH_C5000		C5000			1969
--unipo_at91sam9263	MACH_UNIPO_AT91SAM9263	UNIPO_AT91SAM9263	1970
--ethernut5		MACH_ETHERNUT5		ETHERNUT5		1971
--arm11			MACH_ARM11		ARM11			1972
--cpuat9260		MACH_CPUAT9260		CPUAT9260		1973
--cpupxa255		MACH_CPUPXA255		CPUPXA255		1974
--cpuimx27		MACH_CPUIMX27		CPUIMX27		1975
--cheflux			MACH_CHEFLUX		CHEFLUX			1976
--eb_cpux9k2		MACH_EB_CPUX9K2		EB_CPUX9K2		1977
--opcotec			MACH_OPCOTEC		OPCOTEC			1978
--yt			MACH_YT			YT			1979
--motoq			MACH_MOTOQ		MOTOQ			1980
--bsb1			MACH_BSB1		BSB1			1981
--acs5k			MACH_ACS5K		ACS5K			1982
--milan			MACH_MILAN		MILAN			1983
--quartzv2		MACH_QUARTZV2		QUARTZV2		1984
--rsvp			MACH_RSVP		RSVP			1985
--rmp200			MACH_RMP200		RMP200			1986
--snapper_9260		MACH_SNAPPER_9260	SNAPPER_9260		1987
--dsm320			MACH_DSM320		DSM320			1988
--adsgcm			MACH_ADSGCM		ADSGCM			1989
--ase2_400		MACH_ASE2_400		ASE2_400		1990
--pizza			MACH_PIZZA		PIZZA			1991
--spot_ngpl		MACH_SPOT_NGPL		SPOT_NGPL		1992
--armata			MACH_ARMATA		ARMATA			1993
--exeda			MACH_EXEDA		EXEDA			1994
--mx31sf005		MACH_MX31SF005		MX31SF005		1995
--f5d8231_4_v2		MACH_F5D8231_4_V2	F5D8231_4_V2		1996
--q2440			MACH_Q2440		Q2440			1997
--qq2440			MACH_QQ2440		QQ2440			1998
--mini2440		MACH_MINI2440		MINI2440		1999
--colibri300		MACH_COLIBRI300		COLIBRI300		2000
--jades			MACH_JADES		JADES			2001
--spark			MACH_SPARK		SPARK			2002
--benzina			MACH_BENZINA		BENZINA			2003
--blaze			MACH_BLAZE		BLAZE			2004
--linkstation_ls_hgl	MACH_LINKSTATION_LS_HGL	LINKSTATION_LS_HGL	2005
--htckovsky		MACH_HTCVENUS		HTCVENUS		2006
--sony_prs505		MACH_SONY_PRS505	SONY_PRS505		2007
--hanlin_v3		MACH_HANLIN_V3		HANLIN_V3		2008
--sapphira		MACH_SAPPHIRA		SAPPHIRA		2009
--dack_sda_01		MACH_DACK_SDA_01	DACK_SDA_01		2010
--armbox			MACH_ARMBOX		ARMBOX			2011
--harris_rvp		MACH_HARRIS_RVP		HARRIS_RVP		2012
--ribaldo			MACH_RIBALDO		RIBALDO			2013
--agora			MACH_AGORA		AGORA			2014
--omap3_mini		MACH_OMAP3_MINI		OMAP3_MINI		2015
--a9sam6432_b		MACH_A9SAM6432_B	A9SAM6432_B		2016
--usg2410			MACH_USG2410		USG2410			2017
--pc72052_i10_revb	MACH_PC72052_I10_REVB	PC72052_I10_REVB	2018
--mx35_exm32		MACH_MX35_EXM32		MX35_EXM32		2019
--topas910		MACH_TOPAS910		TOPAS910		2020
--hyena			MACH_HYENA		HYENA			2021
--pospax			MACH_POSPAX		POSPAX			2022
--hdl_gx			MACH_HDL_GX		HDL_GX			2023
--ctera_4bay		MACH_CTERA_4BAY		CTERA_4BAY		2024
--ctera_plug_c		MACH_CTERA_PLUG_C	CTERA_PLUG_C		2025
--crwea_plug_i		MACH_CRWEA_PLUG_I	CRWEA_PLUG_I		2026
--egauge2			MACH_EGAUGE2		EGAUGE2			2027
--didj			MACH_DIDJ		DIDJ			2028
--m_s3c2443		MACH_MEISTER		MEISTER			2029
--htcblackstone		MACH_HTCBLACKSTONE	HTCBLACKSTONE		2030
--cpuat9g20		MACH_CPUAT9G20		CPUAT9G20		2031
--smdk6440		MACH_SMDK6440		SMDK6440		2032
--omap_35xx_mvp		MACH_OMAP_35XX_MVP	OMAP_35XX_MVP		2033
--ctera_plug_i		MACH_CTERA_PLUG_I	CTERA_PLUG_I		2034
--pvg610_100		MACH_PVG610		PVG610			2035
--hprw6815		MACH_HPRW6815		HPRW6815		2036
--omap3_oswald		MACH_OMAP3_OSWALD	OMAP3_OSWALD		2037
--nas4220b		MACH_NAS4220B		NAS4220B		2038
--htcraphael_cdma		MACH_HTCRAPHAEL_CDMA	HTCRAPHAEL_CDMA		2039
--htcdiamond_cdma		MACH_HTCDIAMOND_CDMA	HTCDIAMOND_CDMA		2040
--scaler			MACH_SCALER		SCALER			2041
--zylonite2		MACH_ZYLONITE2		ZYLONITE2		2042
--aspenite		MACH_ASPENITE		ASPENITE		2043
--teton			MACH_TETON		TETON			2044
--ttc_dkb			MACH_TTC_DKB		TTC_DKB			2045
--bishop2			MACH_BISHOP2		BISHOP2			2046
--ippv5			MACH_IPPV5		IPPV5			2047
--farm926			MACH_FARM926		FARM926			2048
--mmccpu			MACH_MMCCPU		MMCCPU			2049
--sgmsfl			MACH_SGMSFL		SGMSFL			2050
--tt8000			MACH_TT8000		TT8000			2051
--zrn4300lp		MACH_ZRN4300LP		ZRN4300LP		2052
--mptc			MACH_MPTC		MPTC			2053
--h6051			MACH_H6051		H6051			2054
--pvg610_101		MACH_PVG610_101		PVG610_101		2055
--stamp9261_pc_evb	MACH_STAMP9261_PC_EVB	STAMP9261_PC_EVB	2056
--pelco_odysseus		MACH_PELCO_ODYSSEUS	PELCO_ODYSSEUS		2057
--tny_a9260		MACH_TNY_A9260		TNY_A9260		2058
--tny_a9g20		MACH_TNY_A9G20		TNY_A9G20		2059
--aesop_mp2530f		MACH_AESOP_MP2530F	AESOP_MP2530F		2060
--dx900			MACH_DX900		DX900			2061
--cpodc2			MACH_CPODC2		CPODC2			2062
--tilt_8925		MACH_TILT_8925		TILT_8925		2063
--davinci_dm357_evm	MACH_DAVINCI_DM357_EVM	DAVINCI_DM357_EVM	2064
--swordfish		MACH_SWORDFISH		SWORDFISH		2065
--corvus			MACH_CORVUS		CORVUS			2066
--taurus			MACH_TAURUS		TAURUS			2067
--axm			MACH_AXM		AXM			2068
--axc			MACH_AXC		AXC			2069
--baby			MACH_BABY		BABY			2070
--mp200			MACH_MP200		MP200			2071
--pcm043			MACH_PCM043		PCM043			2072
--hanlin_v3c		MACH_HANLIN_V3C		HANLIN_V3C		2073
--kbk9g20			MACH_KBK9G20		KBK9G20			2074
--adsturbog5		MACH_ADSTURBOG5		ADSTURBOG5		2075
--avenger_lite1		MACH_AVENGER_LITE1	AVENGER_LITE1		2076
--suc82x			MACH_SUC		SUC			2077
--at91sam7s256		MACH_AT91SAM7S256	AT91SAM7S256		2078
--mendoza			MACH_MENDOZA		MENDOZA			2079
--kira			MACH_KIRA		KIRA			2080
--mx1hbm			MACH_MX1HBM		MX1HBM			2081
--quatro43xx		MACH_QUATRO43XX		QUATRO43XX		2082
--quatro4230		MACH_QUATRO4230		QUATRO4230		2083
--nsb400			MACH_NSB400		NSB400			2084
--drp255			MACH_DRP255		DRP255			2085
--thoth			MACH_THOTH		THOTH			2086
--firestone		MACH_FIRESTONE		FIRESTONE		2087
--asusp750		MACH_ASUSP750		ASUSP750		2088
--ctera_dl		MACH_CTERA_DL		CTERA_DL		2089
--socr			MACH_SOCR		SOCR			2090
--htcoxygen		MACH_HTCOXYGEN		HTCOXYGEN		2091
--heroc			MACH_HEROC		HEROC			2092
--zeno6800		MACH_ZENO6800		ZENO6800		2093
--sc2mcs			MACH_SC2MCS		SC2MCS			2094
--gene100			MACH_GENE100		GENE100			2095
--as353x			MACH_AS353X		AS353X			2096
--sheevaplug		MACH_SHEEVAPLUG		SHEEVAPLUG		2097
--at91sam9g20		MACH_AT91SAM9G20	AT91SAM9G20		2098
--mv88f6192gtw_fe		MACH_MV88F6192GTW_FE	MV88F6192GTW_FE		2099
--cc9200			MACH_CC9200		CC9200			2100
--sm9200			MACH_SM9200		SM9200			2101
--tp9200			MACH_TP9200		TP9200			2102
--snapperdv		MACH_SNAPPERDV		SNAPPERDV		2103
--avengers_lite		MACH_AVENGERS_LITE	AVENGERS_LITE		2104
--avengers_lite1		MACH_AVENGERS_LITE1	AVENGERS_LITE1		2105
--omap3axon		MACH_OMAP3AXON		OMAP3AXON		2106
--ma8xx			MACH_MA8XX		MA8XX			2107
--mp201ek			MACH_MP201EK		MP201EK			2108
--davinci_tux		MACH_DAVINCI_TUX	DAVINCI_TUX		2109
--mpa1600			MACH_MPA1600		MPA1600			2110
--pelco_troy		MACH_PELCO_TROY		PELCO_TROY		2111
--nsb667			MACH_NSB667		NSB667			2112
--rovers5_4mpix		MACH_ROVERS5_4MPIX	ROVERS5_4MPIX		2113
--twocom			MACH_TWOCOM		TWOCOM			2114
--ubisys_p9_rcu3r2	MACH_UBISYS_P9_RCU3R2	UBISYS_P9_RCU3R2	2115
--hero_espresso		MACH_HERO_ESPRESSO	HERO_ESPRESSO		2116
--afeusb			MACH_AFEUSB		AFEUSB			2117
--t830			MACH_T830		T830			2118
--spd8020_cc		MACH_SPD8020_CC		SPD8020_CC		2119
--om_3d7k			MACH_OM_3D7K		OM_3D7K			2120
--picocom2		MACH_PICOCOM2		PICOCOM2		2121
--uwg4mx27		MACH_UWG4MX27		UWG4MX27		2122
--uwg4mx31		MACH_UWG4MX31		UWG4MX31		2123
--cherry			MACH_CHERRY		CHERRY			2124
--mx51_babbage		MACH_MX51_BABBAGE	MX51_BABBAGE		2125
--s3c2440turkiye		MACH_S3C2440TURKIYE	S3C2440TURKIYE		2126
--tx37			MACH_TX37		TX37			2127
--sbc2800_9g20		MACH_SBC2800_9G20	SBC2800_9G20		2128
--benzglb			MACH_BENZGLB		BENZGLB			2129
--benztd			MACH_BENZTD		BENZTD			2130
--cartesio_plus		MACH_CARTESIO_PLUS	CARTESIO_PLUS		2131
--solrad_g20		MACH_SOLRAD_G20		SOLRAD_G20		2132
--mx27wallace		MACH_MX27WALLACE	MX27WALLACE		2133
--fmzwebmodul		MACH_FMZWEBMODUL	FMZWEBMODUL		2134
--rd78x00_masa		MACH_RD78X00_MASA	RD78X00_MASA		2135
--smallogger		MACH_SMALLOGGER		SMALLOGGER		2136
--ccw9p9215		MACH_CCW9P9215		CCW9P9215		2137
--dm355_leopard		MACH_DM355_LEOPARD	DM355_LEOPARD		2138
--ts219			MACH_TS219		TS219			2139
--tny_a9263		MACH_TNY_A9263		TNY_A9263		2140
--apollo			MACH_APOLLO		APOLLO			2141
--at91cap9stk		MACH_AT91CAP9STK	AT91CAP9STK		2142
--spc300			MACH_SPC300		SPC300			2143
--eko			MACH_EKO		EKO			2144
--ccw9m2443		MACH_CCW9M2443		CCW9M2443		2145
--ccw9m2443js		MACH_CCW9M2443JS	CCW9M2443JS		2146
--m2m_router_device	MACH_M2M_ROUTER_DEVICE	M2M_ROUTER_DEVICE	2147
--str9104nas		MACH_STAR9104NAS	STAR9104NAS		2148
--pca100			MACH_PCA100		PCA100			2149
--z3_dm365_mod_01		MACH_Z3_DM365_MOD_01	Z3_DM365_MOD_01		2150
--hipox			MACH_HIPOX		HIPOX			2151
--omap3_piteds		MACH_OMAP3_PITEDS	OMAP3_PITEDS		2152
--bm150r			MACH_BM150R		BM150R			2153
--tbone			MACH_TBONE		TBONE			2154
--merlin			MACH_MERLIN		MERLIN			2155
--falcon			MACH_FALCON		FALCON			2156
--davinci_da850_evm	MACH_DAVINCI_DA850_EVM	DAVINCI_DA850_EVM	2157
--s5p6440			MACH_S5P6440		S5P6440			2158
--at91sam9g10ek		MACH_AT91SAM9G10EK	AT91SAM9G10EK		2159
--omap_4430sdp		MACH_OMAP_4430SDP	OMAP_4430SDP		2160
--lpc313x			MACH_LPC313X		LPC313X			2161
--magx_zn5		MACH_MAGX_ZN5		MAGX_ZN5		2162
--magx_em30		MACH_MAGX_EM30		MAGX_EM30		2163
--magx_ve66		MACH_MAGX_VE66		MAGX_VE66		2164
--meesc			MACH_MEESC		MEESC			2165
--otc570			MACH_OTC570		OTC570			2166
--bcu2412			MACH_BCU2412		BCU2412			2167
--beacon			MACH_BEACON		BEACON			2168
--actia_tgw		MACH_ACTIA_TGW		ACTIA_TGW		2169
--e4430			MACH_E4430		E4430			2170
--ql300			MACH_QL300		QL300			2171
--btmavb101		MACH_BTMAVB101		BTMAVB101		2172
--btmawb101		MACH_BTMAWB101		BTMAWB101		2173
--sq201			MACH_SQ201		SQ201			2174
--quatro45xx		MACH_QUATRO45XX		QUATRO45XX		2175
--openpad			MACH_OPENPAD		OPENPAD			2176
--tx25			MACH_TX25		TX25			2177
--omap3_torpedo		MACH_OMAP3_TORPEDO	OMAP3_TORPEDO		2178
--htcraphael_k		MACH_HTCRAPHAEL_K	HTCRAPHAEL_K		2179
--lal43			MACH_LAL43		LAL43			2181
--htcraphael_cdma500	MACH_HTCRAPHAEL_CDMA500	HTCRAPHAEL_CDMA500	2182
--anw6410			MACH_ANW6410		ANW6410			2183
--htcprophet		MACH_HTCPROPHET		HTCPROPHET		2185
--cfa_10022		MACH_CFA_10022		CFA_10022		2186
--imx27_visstrim_m10	MACH_IMX27_VISSTRIM_M10	IMX27_VISSTRIM_M10	2187
--px2imx27		MACH_PX2IMX27		PX2IMX27		2188
--stm3210e_eval		MACH_STM3210E_EVAL	STM3210E_EVAL		2189
--dvs10			MACH_DVS10		DVS10			2190
--portuxg20		MACH_PORTUXG20		PORTUXG20		2191
--arm_spv			MACH_ARM_SPV		ARM_SPV			2192
--smdkc110		MACH_SMDKC110		SMDKC110		2193
--cabespresso		MACH_CABESPRESSO	CABESPRESSO		2194
--hmc800			MACH_HMC800		HMC800			2195
--sholes			MACH_SHOLES		SHOLES			2196
--btmxc31			MACH_BTMXC31		BTMXC31			2197
--dt501			MACH_DT501		DT501			2198
--ktx			MACH_KTX		KTX			2199
--omap3517evm		MACH_OMAP3517EVM	OMAP3517EVM		2200
--netspace_v2		MACH_NETSPACE_V2	NETSPACE_V2		2201
--netspace_max_v2		MACH_NETSPACE_MAX_V2	NETSPACE_MAX_V2		2202
--d2net_v2		MACH_D2NET_V2		D2NET_V2		2203
--net2big_v2		MACH_NET2BIG_V2		NET2BIG_V2		2204
--net4big_v2		MACH_NET4BIG_V2		NET4BIG_V2		2205
--net5big_v2		MACH_NET5BIG_V2		NET5BIG_V2		2206
--endb2443		MACH_ENDB2443		ENDB2443		2207
--inetspace_v2		MACH_INETSPACE_V2	INETSPACE_V2		2208
--tros			MACH_TROS		TROS			2209
--pelco_homer		MACH_PELCO_HOMER	PELCO_HOMER		2210
--ofsp8			MACH_OFSP8		OFSP8			2211
--at91sam9g45ekes		MACH_AT91SAM9G45EKES	AT91SAM9G45EKES		2212
--guf_cupid		MACH_GUF_CUPID		GUF_CUPID		2213
--eab1r			MACH_EAB1R		EAB1R			2214
--desirec			MACH_DESIREC		DESIREC			2215
--cordoba			MACH_CORDOBA		CORDOBA			2216
--irvine			MACH_IRVINE		IRVINE			2217
--sff772			MACH_SFF772		SFF772			2218
--pelco_milano		MACH_PELCO_MILANO	PELCO_MILANO		2219
--pc7302			MACH_PC7302		PC7302			2220
--bip6000			MACH_BIP6000		BIP6000			2221
--silvermoon		MACH_SILVERMOON		SILVERMOON		2222
--vc0830			MACH_VC0830		VC0830			2223
--dt430			MACH_DT430		DT430			2224
--ji42pf			MACH_JI42PF		JI42PF			2225
--gnet_ksm		MACH_GNET_KSM		GNET_KSM		2226
--gnet_sgm		MACH_GNET_SGM		GNET_SGM		2227
--gnet_sgr		MACH_GNET_SGR		GNET_SGR		2228
--omap3_icetekevm		MACH_OMAP3_ICETEKEVM	OMAP3_ICETEKEVM		2229
--pnp			MACH_PNP		PNP			2230
--ctera_2bay_k		MACH_CTERA_2BAY_K	CTERA_2BAY_K		2231
--ctera_2bay_u		MACH_CTERA_2BAY_U	CTERA_2BAY_U		2232
--sas_c			MACH_SAS_C		SAS_C			2233
--vma2315			MACH_VMA2315		VMA2315			2234
--vcs			MACH_VCS		VCS			2235
--spear600		MACH_SPEAR600		SPEAR600		2236
--spear300		MACH_SPEAR300		SPEAR300		2237
--spear1300		MACH_SPEAR1300		SPEAR1300		2238
--lilly1131		MACH_LILLY1131		LILLY1131		2239
--arvoo_ax301		MACH_ARVOO_AX301	ARVOO_AX301		2240
--mapphone		MACH_MAPPHONE		MAPPHONE		2241
--legend			MACH_LEGEND		LEGEND			2242
--salsa			MACH_SALSA		SALSA			2243
--lounge			MACH_LOUNGE		LOUNGE			2244
--vision			MACH_VISION		VISION			2245
--vmb20			MACH_VMB20		VMB20			2246
--hy2410			MACH_HY2410		HY2410			2247
--hy9315			MACH_HY9315		HY9315			2248
--bullwinkle		MACH_BULLWINKLE		BULLWINKLE		2249
--arm_ultimator2		MACH_ARM_ULTIMATOR2	ARM_ULTIMATOR2		2250
--vs_v210			MACH_VS_V210		VS_V210			2252
--vs_v212			MACH_VS_V212		VS_V212			2253
--hmt			MACH_HMT		HMT			2254
--suen3			MACH_SUEN3		SUEN3			2255
--vesper			MACH_VESPER		VESPER			2256
--str9			MACH_STR9		STR9			2257
--omap3_wl_ff		MACH_OMAP3_WL_FF	OMAP3_WL_FF		2258
--simcom			MACH_SIMCOM		SIMCOM			2259
--mcwebio			MACH_MCWEBIO		MCWEBIO			2260
--at91sam9g20ek_2mmc	MACH_AT91SAM9G20EK_2MMC	AT91SAM9G20EK_2MMC	2288
-+ebsa110         ARCH_EBSA110        EBSA110         0
-+riscpc          ARCH_RPC        RISCPC          1
-+nexuspci        ARCH_NEXUSPCI       NEXUSPCI        3
-+ebsa285         ARCH_EBSA285        EBSA285         4
-+netwinder       ARCH_NETWINDER      NETWINDER       5
-+cats            ARCH_CATS       CATS            6
-+tbox            ARCH_TBOX       TBOX            7
-+co285           ARCH_CO285      CO285           8
-+clps7110        ARCH_CLPS7110       CLPS7110        9
-+archimedes      ARCH_ARC        ARCHIMEDES      10
-+a5k         ARCH_A5K        A5K         11
-+etoile          ARCH_ETOILE     ETOILE          12
-+lacie_nas       ARCH_LACIE_NAS      LACIE_NAS       13
-+clps7500        ARCH_CLPS7500       CLPS7500        14
-+shark           ARCH_SHARK      SHARK           15
-+brutus          SA1100_BRUTUS       BRUTUS          16
-+personal_server     ARCH_PERSONAL_SERVER    PERSONAL_SERVER     17
-+itsy            SA1100_ITSY     ITSY            18
-+l7200           ARCH_L7200      L7200           19
-+pleb            SA1100_PLEB     PLEB            20
-+integrator      ARCH_INTEGRATOR     INTEGRATOR      21
-+h3600           SA1100_H3600        H3600           22
-+ixp1200         ARCH_IXP1200        IXP1200         23
-+p720t           ARCH_P720T      P720T           24
-+assabet         SA1100_ASSABET      ASSABET         25
-+victor          SA1100_VICTOR       VICTOR          26
-+lart            SA1100_LART     LART            27
-+ranger          SA1100_RANGER       RANGER          28
-+graphicsclient      SA1100_GRAPHICSCLIENT   GRAPHICSCLIENT      29
-+xp860           SA1100_XP860        XP860           30
-+cerf            SA1100_CERF     CERF            31
-+nanoengine      SA1100_NANOENGINE   NANOENGINE      32
-+fpic            SA1100_FPIC     FPIC            33
-+extenex1        SA1100_EXTENEX1     EXTENEX1        34
-+sherman         SA1100_SHERMAN      SHERMAN         35
-+accelent_sa     SA1100_ACCELENT     ACCELENT_SA     36
-+accelent_l7200      ARCH_L7200_ACCELENT ACCELENT_L7200      37
-+netport         SA1100_NETPORT      NETPORT         38
-+pangolin        SA1100_PANGOLIN     PANGOLIN        39
-+yopy            SA1100_YOPY     YOPY            40
-+coolidge        SA1100_COOLIDGE     COOLIDGE        41
-+huw_webpanel        SA1100_HUW_WEBPANEL HUW_WEBPANEL        42
-+spotme          ARCH_SPOTME     SPOTME          43
-+freebird        ARCH_FREEBIRD       FREEBIRD        44
-+ti925           ARCH_TI925      TI925           45
-+riscstation     ARCH_RISCSTATION    RISCSTATION     46
-+cavy            SA1100_CAVY     CAVY            47
-+jornada720      SA1100_JORNADA720   JORNADA720      48
-+omnimeter       SA1100_OMNIMETER    OMNIMETER       49
-+edb7211         ARCH_EDB7211        EDB7211         50
-+citygo          SA1100_CITYGO       CITYGO          51
-+pfs168          SA1100_PFS168       PFS168          52
-+spot            SA1100_SPOT     SPOT            53
-+flexanet        SA1100_FLEXANET     FLEXANET        54
-+webpal          ARCH_WEBPAL     WEBPAL          55
-+linpda          SA1100_LINPDA       LINPDA          56
-+anakin          ARCH_ANAKIN     ANAKIN          57
-+mvi         SA1100_MVI      MVI         58
-+jupiter         SA1100_JUPITER      JUPITER         59
-+psionw          ARCH_PSIONW     PSIONW          60
-+aln         SA1100_ALN      ALN         61
-+epxa            ARCH_CAMELOT        CAMELOT         62
-+gds2200         SA1100_GDS2200      GDS2200         63
-+netbook         SA1100_PSION_SERIES7    PSION_SERIES7       64
-+xfile           SA1100_XFILE        XFILE           65
-+accelent_ep9312     ARCH_ACCELENT_EP9312    ACCELENT_EP9312     66
-+ic200           ARCH_IC200      IC200           67
-+creditlart      SA1100_CREDITLART   CREDITLART      68
-+htm         SA1100_HTM      HTM         69
-+iq80310         ARCH_IQ80310        IQ80310         70
-+freebot         SA1100_FREEBOT      FREEBOT         71
-+entel           ARCH_ENTEL      ENTEL           72
-+enp3510         ARCH_ENP3510        ENP3510         73
-+trizeps         SA1100_TRIZEPS      TRIZEPS         74
-+nesa            SA1100_NESA     NESA            75
-+venus           ARCH_VENUS      VENUS           76
-+tardis          ARCH_TARDIS     TARDIS          77
-+mercury         ARCH_MERCURY        MERCURY         78
-+empeg           SA1100_EMPEG        EMPEG           79
-+adi_evb         ARCH_I80200FCC      I80200FCC       80
-+itt_cpb         SA1100_ITT_CPB      ITT_CPB         81
-+svc         SA1100_SVC      SVC         82
-+alpha2          SA1100_ALPHA2       ALPHA2          84
-+alpha1          SA1100_ALPHA1       ALPHA1          85
-+netarm          ARCH_NETARM     NETARM          86
-+simpad          SA1100_SIMPAD       SIMPAD          87
-+pda1            ARCH_PDA1       PDA1            88
-+lubbock         ARCH_LUBBOCK        LUBBOCK         89
-+aniko           ARCH_ANIKO      ANIKO           90
-+clep7212        ARCH_CLEP7212       CLEP7212        91
-+cs89712         ARCH_CS89712        CS89712         92
-+weararm         SA1100_WEARARM      WEARARM         93
-+possio_px       SA1100_POSSIO_PX    POSSIO_PX       94
-+sidearm         SA1100_SIDEARM      SIDEARM         95
-+stork           SA1100_STORK        STORK           96
-+shannon         SA1100_SHANNON      SHANNON         97
-+ace         ARCH_ACE        ACE         98
-+ballyarm        SA1100_BALLYARM     BALLYARM        99
-+simputer        SA1100_SIMPUTER     SIMPUTER        100
-+nexterm         SA1100_NEXTERM      NEXTERM         101
-+sa1100_elf      SA1100_SA1100_ELF   SA1100_ELF      102
-+gator           SA1100_GATOR        GATOR           103
-+granite         ARCH_GRANITE        GRANITE         104
-+consus          SA1100_CONSUS       CONSUS          105
-+aaed2000        ARCH_AAED2000       AAED2000        106
-+cdb89712        ARCH_CDB89712       CDB89712        107
-+graphicsmaster      SA1100_GRAPHICSMASTER   GRAPHICSMASTER      108
-+adsbitsy        SA1100_ADSBITSY     ADSBITSY        109
-+pxa_idp         ARCH_PXA_IDP        PXA_IDP         110
-+plce            ARCH_PLCE       PLCE            111
-+pt_system3      SA1100_PT_SYSTEM3   PT_SYSTEM3      112
-+murphy          ARCH_MEDALB     MEDALB          113
-+eagle           ARCH_EAGLE      EAGLE           114
-+dsc21           ARCH_DSC21      DSC21           115
-+dsc24           ARCH_DSC24      DSC24           116
-+ti5472          ARCH_TI5472     TI5472          117
-+autcpu12        ARCH_AUTCPU12       AUTCPU12        118
-+uengine         ARCH_UENGINE        UENGINE         119
-+bluestem        SA1100_BLUESTEM     BLUESTEM        120
-+xingu8          ARCH_XINGU8     XINGU8          121
-+bushstb         ARCH_BUSHSTB        BUSHSTB         122
-+epsilon1        SA1100_EPSILON1     EPSILON1        123
-+balloon         SA1100_BALLOON      BALLOON         124
-+puppy           ARCH_PUPPY      PUPPY           125
-+elroy           SA1100_ELROY        ELROY           126
-+gms720          ARCH_GMS720     GMS720          127
-+s24x            ARCH_S24X       S24X            128
-+jtel_clep7312       ARCH_JTEL_CLEP7312  JTEL_CLEP7312       129
-+cx821xx         ARCH_CX821XX        CX821XX         130
-+edb7312         ARCH_EDB7312        EDB7312         131
-+bsa1110         SA1100_BSA1110      BSA1110         132
-+powerpin        ARCH_POWERPIN       POWERPIN        133
-+openarm         ARCH_OPENARM        OPENARM         134
-+whitechapel     SA1100_WHITECHAPEL  WHITECHAPEL     135
-+h3100           SA1100_H3100        H3100           136
-+h3800           SA1100_H3800        H3800           137
-+blue_v1         ARCH_BLUE_V1        BLUE_V1         138
-+pxa_cerf        ARCH_PXA_CERF       PXA_CERF        139
-+arm7tevb        ARCH_ARM7TEVB       ARM7TEVB        140
-+d7400           SA1100_D7400        D7400           141
-+piranha         ARCH_PIRANHA        PIRANHA         142
-+sbcamelot       SA1100_SBCAMELOT    SBCAMELOT       143
-+kings           SA1100_KINGS        KINGS           144
-+smdk2400        ARCH_SMDK2400       SMDK2400        145
-+collie          SA1100_COLLIE       COLLIE          146
-+idr         ARCH_IDR        IDR         147
-+badge4          SA1100_BADGE4       BADGE4          148
-+webnet          ARCH_WEBNET     WEBNET          149
-+d7300           SA1100_D7300        D7300           150
-+cep         SA1100_CEP      CEP         151
-+fortunet        ARCH_FORTUNET       FORTUNET        152
-+vc547x          ARCH_VC547X     VC547X          153
-+filewalker      SA1100_FILEWALKER   FILEWALKER      154
-+netgateway      SA1100_NETGATEWAY   NETGATEWAY      155
-+symbol2800      SA1100_SYMBOL2800   SYMBOL2800      156
-+suns            SA1100_SUNS     SUNS            157
-+frodo           SA1100_FRODO        FRODO           158
-+ms301           SA1100_MACH_TYTE_MS301  MACH_TYTE_MS301     159
-+mx1ads          ARCH_MX1ADS     MX1ADS          160
-+h7201           ARCH_H7201      H7201           161
-+h7202           ARCH_H7202      H7202           162
-+amico           ARCH_AMICO      AMICO           163
-+iam         SA1100_IAM      IAM         164
-+tt530           SA1100_TT530        TT530           165
-+sam2400         ARCH_SAM2400        SAM2400         166
-+jornada56x      SA1100_JORNADA56X   JORNADA56X      167
-+active          SA1100_ACTIVE       ACTIVE          168
-+iq80321         ARCH_IQ80321        IQ80321         169
-+wid         SA1100_WID      WID         170
-+sabinal         ARCH_SABINAL        SABINAL         171
-+ixp425_matacumbe    ARCH_IXP425_MATACUMBE   IXP425_MATACUMBE    172
-+miniprint       SA1100_MINIPRINT    MINIPRINT       173
-+adm510x         ARCH_ADM510X        ADM510X         174
-+svs200          SA1100_SVS200       SVS200          175
-+atg_tcu         ARCH_ATG_TCU        ATG_TCU         176
-+jornada820      SA1100_JORNADA820   JORNADA820      177
-+s3c44b0         ARCH_S3C44B0        S3C44B0         178
-+margis2         ARCH_MARGIS2        MARGIS2         179
-+ks8695          ARCH_KS8695     KS8695          180
-+brh         ARCH_BRH        BRH         181
-+s3c2410         ARCH_S3C2410        S3C2410         182
-+possio_px30     ARCH_POSSIO_PX30    POSSIO_PX30     183
-+s3c2800         ARCH_S3C2800        S3C2800         184
-+fleetwood       SA1100_FLEETWOOD    FLEETWOOD       185
-+omaha           ARCH_OMAHA      OMAHA           186
-+ta7         ARCH_TA7        TA7         187
-+nova            SA1100_NOVA     NOVA            188
-+hmk         ARCH_HMK        HMK         189
-+karo            ARCH_KARO       KARO            190
-+fester          SA1100_FESTER       FESTER          191
-+gpi         ARCH_GPI        GPI         192
-+smdk2410        ARCH_SMDK2410       SMDK2410        193
-+i519            ARCH_I519       I519            194
-+nexio           SA1100_NEXIO        NEXIO           195
-+bitbox          SA1100_BITBOX       BITBOX          196
-+g200            SA1100_G200     G200            197
-+gill            SA1100_GILL     GILL            198
-+pxa_mercury     ARCH_PXA_MERCURY    PXA_MERCURY     199
-+ceiva           ARCH_CEIVA      CEIVA           200
-+fret            SA1100_FRET     FRET            201
-+emailphone      SA1100_EMAILPHONE   EMAILPHONE      202
-+h3900           ARCH_H3900      H3900           203
-+pxa1            ARCH_PXA1       PXA1            204
-+koan369         SA1100_KOAN369      KOAN369         205
-+cogent          ARCH_COGENT     COGENT          206
-+esl_simputer        ARCH_ESL_SIMPUTER   ESL_SIMPUTER        207
-+esl_simputer_clr    ARCH_ESL_SIMPUTER_CLR   ESL_SIMPUTER_CLR    208
-+esl_simputer_bw     ARCH_ESL_SIMPUTER_BW    ESL_SIMPUTER_BW     209
-+hhp_cradle      ARCH_HHP_CRADLE     HHP_CRADLE      210
-+he500           ARCH_HE500      HE500           211
-+inhandelf2      SA1100_INHANDELF2   INHANDELF2      212
-+inhandftip      SA1100_INHANDFTIP   INHANDFTIP      213
-+dnp1110         SA1100_DNP1110      DNP1110         214
-+pnp1110         SA1100_PNP1110      PNP1110         215
-+csb226          ARCH_CSB226     CSB226          216
-+arnold          SA1100_ARNOLD       ARNOLD          217
-+voiceblue       MACH_VOICEBLUE      VOICEBLUE       218
-+jz8028          ARCH_JZ8028     JZ8028          219
-+h5400           ARCH_H5400      H5400           220
-+forte           SA1100_FORTE        FORTE           221
-+acam            SA1100_ACAM     ACAM            222
-+abox            SA1100_ABOX     ABOX            223
-+atmel           ARCH_ATMEL      ATMEL           224
-+sitsang         ARCH_SITSANG        SITSANG         225
-+cpu1110lcdnet       SA1100_CPU1110LCDNET    CPU1110LCDNET       226
-+mpl_vcma9       ARCH_MPL_VCMA9      MPL_VCMA9       227
-+opus_a1         ARCH_OPUS_A1        OPUS_A1         228
-+daytona         ARCH_DAYTONA        DAYTONA         229
-+killbear        SA1100_KILLBEAR     KILLBEAR        230
-+yoho            ARCH_YOHO       YOHO            231
-+jasper          ARCH_JASPER     JASPER          232
-+dsc25           ARCH_DSC25      DSC25           233
-+omap_innovator      MACH_OMAP_INNOVATOR OMAP_INNOVATOR      234
-+mnci            ARCH_RAMSES     RAMSES          235
-+s28x            ARCH_S28X       S28X            236
-+mport3          ARCH_MPORT3     MPORT3          237
-+pxa_eagle250        ARCH_PXA_EAGLE250   PXA_EAGLE250        238
-+pdb         ARCH_PDB        PDB         239
-+blue_2g         SA1100_BLUE_2G      BLUE_2G         240
-+bluearch        SA1100_BLUEARCH     BLUEARCH        241
-+ixdp2400        ARCH_IXDP2400       IXDP2400        242
-+ixdp2800        ARCH_IXDP2800       IXDP2800        243
-+explorer        SA1100_EXPLORER     EXPLORER        244
-+ixdp425         ARCH_IXDP425        IXDP425         245
-+chimp           ARCH_CHIMP      CHIMP           246
-+stork_nest      ARCH_STORK_NEST     STORK_NEST      247
-+stork_egg       ARCH_STORK_EGG      STORK_EGG       248
-+wismo           SA1100_WISMO        WISMO           249
-+ezlinx          ARCH_EZLINX     EZLINX          250
-+at91rm9200      ARCH_AT91RM9200     AT91RM9200      251
-+adtech_orion        ARCH_ADTECH_ORION   ADTECH_ORION        252
-+neptune         ARCH_NEPTUNE        NEPTUNE         253
-+hackkit         SA1100_HACKKIT      HACKKIT         254
-+pxa_wins30      ARCH_PXA_WINS30     PXA_WINS30      255
-+lavinna         SA1100_LAVINNA      LAVINNA         256
-+pxa_uengine     ARCH_PXA_UENGINE    PXA_UENGINE     257
-+innokom         ARCH_INNOKOM        INNOKOM         258
-+bms         ARCH_BMS        BMS         259
-+ixcdp1100       ARCH_IXCDP1100      IXCDP1100       260
-+prpmc1100       ARCH_PRPMC1100      PRPMC1100       261
-+at91rm9200dk        ARCH_AT91RM9200DK   AT91RM9200DK        262
-+armstick        ARCH_ARMSTICK       ARMSTICK        263
-+armonie         ARCH_ARMONIE        ARMONIE         264
-+mport1          ARCH_MPORT1     MPORT1          265
-+s3c5410         ARCH_S3C5410        S3C5410         266
-+zcp320a         ARCH_ZCP320A        ZCP320A         267
-+i_box           ARCH_I_BOX      I_BOX           268
-+stlc1502        ARCH_STLC1502       STLC1502        269
-+siren           ARCH_SIREN      SIREN           270
-+greenlake       ARCH_GREENLAKE      GREENLAKE       271
-+argus           ARCH_ARGUS      ARGUS           272
-+combadge        SA1100_COMBADGE     COMBADGE        273
-+rokepxa         ARCH_ROKEPXA        ROKEPXA         274
-+cintegrator     ARCH_CINTEGRATOR    CINTEGRATOR     275
-+guidea07        ARCH_GUIDEA07       GUIDEA07        276
-+tat257          ARCH_TAT257     TAT257          277
-+igp2425         ARCH_IGP2425        IGP2425         278
-+bluegrama       ARCH_BLUEGRAMMA     BLUEGRAMMA      279
-+ipod            ARCH_IPOD       IPOD            280
-+adsbitsyx       ARCH_ADSBITSYX      ADSBITSYX       281
-+trizeps2        ARCH_TRIZEPS2       TRIZEPS2        282
-+viper           ARCH_VIPER      VIPER           283
-+adsbitsyplus        SA1100_ADSBITSYPLUS ADSBITSYPLUS        284
-+adsagc          SA1100_ADSAGC       ADSAGC          285
-+stp7312         ARCH_STP7312        STP7312         286
-+nx_phnx         MACH_NX_PHNX        NX_PHNX         287
-+wep_ep250       ARCH_WEP_EP250      WEP_EP250       288
-+inhandelf3      ARCH_INHANDELF3     INHANDELF3      289
-+adi_coyote      ARCH_ADI_COYOTE     ADI_COYOTE      290
-+iyonix          ARCH_IYONIX     IYONIX          291
-+damicam1        ARCH_DAMICAM_SA1110 DAMICAM_SA1110      292
-+meg03           ARCH_MEG03      MEG03           293
-+pxa_whitechapel     ARCH_PXA_WHITECHAPEL    PXA_WHITECHAPEL     294
-+nwsc            ARCH_NWSC       NWSC            295
-+nwlarm          ARCH_NWLARM     NWLARM          296
-+ixp425_mguard       ARCH_IXP425_MGUARD  IXP425_MGUARD       297
-+pxa_netdcu4     ARCH_PXA_NETDCU4    PXA_NETDCU4     298
-+ixdp2401        ARCH_IXDP2401       IXDP2401        299
-+ixdp2801        ARCH_IXDP2801       IXDP2801        300
-+zodiac          ARCH_ZODIAC     ZODIAC          301
-+armmodul        ARCH_ARMMODUL       ARMMODUL        302
-+ketop           SA1100_KETOP        KETOP           303
-+av7200          ARCH_AV7200     AV7200          304
-+arch_ti925      ARCH_ARCH_TI925     ARCH_TI925      305
-+acq200          ARCH_ACQ200     ACQ200          306
-+pt_dafit        SA1100_PT_DAFIT     PT_DAFIT        307
-+ihba            ARCH_IHBA       IHBA            308
-+quinque         ARCH_QUINQUE        QUINQUE         309
-+nimbraone       ARCH_NIMBRAONE      NIMBRAONE       310
-+nimbra29x       ARCH_NIMBRA29X      NIMBRA29X       311
-+nimbra210       ARCH_NIMBRA210      NIMBRA210       312
-+hhp_d95xx       ARCH_HHP_D95XX      HHP_D95XX       313
-+labarm          ARCH_LABARM     LABARM          314
-+m825xx          ARCH_M825XX     M825XX          315
-+m7100           SA1100_M7100        M7100           316
-+nipc2           ARCH_NIPC2      NIPC2           317
-+fu7202          ARCH_FU7202     FU7202          318
-+adsagx          ARCH_ADSAGX     ADSAGX          319
-+pxa_pooh        ARCH_PXA_POOH       PXA_POOH        320
-+bandon          ARCH_BANDON     BANDON          321
-+pcm7210         ARCH_PCM7210        PCM7210         322
-+nms9200         ARCH_NMS9200        NMS9200         323
-+logodl          ARCH_LOGODL     LOGODL          324
-+m7140           SA1100_M7140        M7140           325
-+korebot         ARCH_KOREBOT        KOREBOT         326
-+iq31244         ARCH_IQ31244        IQ31244         327
-+koan393         SA1100_KOAN393      KOAN393         328
-+inhandftip3     ARCH_INHANDFTIP3    INHANDFTIP3     329
-+gonzo           ARCH_GONZO      GONZO           330
-+bast            ARCH_BAST       BAST            331
-+scanpass        ARCH_SCANPASS       SCANPASS        332
-+ep7312_pooh     ARCH_EP7312_POOH    EP7312_POOH     333
-+ta7s            ARCH_TA7S       TA7S            334
-+ta7v            ARCH_TA7V       TA7V            335
-+icarus          SA1100_ICARUS       ICARUS          336
-+h1900           ARCH_H1900      H1900           337
-+gemini          SA1100_GEMINI       GEMINI          338
-+axim            ARCH_AXIM       AXIM            339
-+audiotron       ARCH_AUDIOTRON      AUDIOTRON       340
-+h2200           ARCH_H2200      H2200           341
-+loox600         ARCH_LOOX600        LOOX600         342
-+niop            ARCH_NIOP       NIOP            343
-+dm310           ARCH_DM310      DM310           344
-+seedpxa_c2      ARCH_SEEDPXA_C2     SEEDPXA_C2      345
-+ixp4xx_mguardpci    ARCH_IXP4XX_MGUARD_PCI  IXP4XX_MGUARD_PCI   346
-+h1940           ARCH_H1940      H1940           347
-+scorpio         ARCH_SCORPIO        SCORPIO         348
-+viva            ARCH_VIVA       VIVA            349
-+pxa_xcard       ARCH_PXA_XCARD      PXA_XCARD       350
-+csb335          ARCH_CSB335     CSB335          351
-+ixrd425         ARCH_IXRD425        IXRD425         352
-+iq80315         ARCH_IQ80315        IQ80315         353
-+nmp7312         ARCH_NMP7312        NMP7312         354
-+cx861xx         ARCH_CX861XX        CX861XX         355
-+enp2611         ARCH_ENP2611        ENP2611         356
-+xda         SA1100_XDA      XDA         357
-+csir_ims        ARCH_CSIR_IMS       CSIR_IMS        358
-+ixp421_dnaeeth      ARCH_IXP421_DNAEETH IXP421_DNAEETH      359
-+pocketserv9200      ARCH_POCKETSERV9200 POCKETSERV9200      360
-+toto            ARCH_TOTO       TOTO            361
-+s3c2440         ARCH_S3C2440        S3C2440         362
-+ks8695p         ARCH_KS8695P        KS8695P         363
-+se4000          ARCH_SE4000     SE4000          364
-+quadriceps      ARCH_QUADRICEPS     QUADRICEPS      365
-+bronco          ARCH_BRONCO     BRONCO          366
-+esl_wireless_tab    ARCH_ESL_WIRELESS_TAB   ESL_WIRELESS_TAB    367
-+esl_sofcomp     ARCH_ESL_SOFCOMP    ESL_SOFCOMP     368
-+s5c7375         ARCH_S5C7375        S5C7375         369
-+spearhead       ARCH_SPEARHEAD      SPEARHEAD       370
-+pantera         ARCH_PANTERA        PANTERA         371
-+prayoglite      ARCH_PRAYOGLITE     PRAYOGLITE      372
-+gumstix         ARCH_GUMSTIX        GUMSTIX         373
-+rcube           ARCH_RCUBE      RCUBE           374
-+rea_olv         ARCH_REA_OLV        REA_OLV         375
-+pxa_iphone      ARCH_PXA_IPHONE     PXA_IPHONE      376
-+s3c3410         ARCH_S3C3410        S3C3410         377
-+espd_4510b      ARCH_ESPD_4510B     ESPD_4510B      378
-+mp1x            ARCH_MP1X       MP1X            379
-+at91rm9200tb        ARCH_AT91RM9200TB   AT91RM9200TB        380
-+adsvgx          ARCH_ADSVGX     ADSVGX          381
-+omap_h2         MACH_OMAP_H2        OMAP_H2         382
-+pelee           ARCH_PELEE      PELEE           383
-+e740            MACH_E740       E740            384
-+iq80331         ARCH_IQ80331        IQ80331         385
-+versatile_pb        ARCH_VERSATILE_PB   VERSATILE_PB        387
-+kev7a400        MACH_KEV7A400       KEV7A400        388
-+lpd7a400        MACH_LPD7A400       LPD7A400        389
-+lpd7a404        MACH_LPD7A404       LPD7A404        390
-+fujitsu_camelot     ARCH_FUJITSU_CAMELOT    FUJITSU_CAMELOT     391
-+janus2m         ARCH_JANUS2M        JANUS2M         392
-+embtf           MACH_EMBTF      EMBTF           393
-+hpm         MACH_HPM        HPM         394
-+smdk2410tk      MACH_SMDK2410TK     SMDK2410TK      395
-+smdk2410aj      MACH_SMDK2410AJ     SMDK2410AJ      396
-+streetracer     MACH_STREETRACER    STREETRACER     397
-+eframe          MACH_EFRAME     EFRAME          398
-+csb337          MACH_CSB337     CSB337          399
-+pxa_lark        MACH_PXA_LARK       PXA_LARK        400
-+pxa_pnp2110     MACH_PNP2110        PNP2110         401
-+tcc72x          MACH_TCC72X     TCC72X          402
-+altair          MACH_ALTAIR     ALTAIR          403
-+kc3         MACH_KC3        KC3         404
-+sinteftd        MACH_SINTEFTD       SINTEFTD        405
-+mainstone       MACH_MAINSTONE      MAINSTONE       406
-+aday4x          MACH_ADAY4X     ADAY4X          407
-+lite300         MACH_LITE300        LITE300         408
-+s5c7376         MACH_S5C7376        S5C7376         409
-+mt02            MACH_MT02       MT02            410
-+mport3s         MACH_MPORT3S        MPORT3S         411
-+ra_alpha        MACH_RA_ALPHA       RA_ALPHA        412
-+xcep            MACH_XCEP       XCEP            413
-+arcom_vulcan        MACH_ARCOM_VULCAN   ARCOM_VULCAN        414
-+stargate        MACH_STARGATE       STARGATE        415
-+armadilloj      MACH_ARMADILLOJ     ARMADILLOJ      416
-+elroy_jack      MACH_ELROY_JACK     ELROY_JACK      417
-+backend         MACH_BACKEND        BACKEND         418
-+s5linbox        MACH_S5LINBOX       S5LINBOX        419
-+nomadik         MACH_NOMADIK        NOMADIK         420
-+ia_cpu_9200     MACH_IA_CPU_9200    IA_CPU_9200     421
-+at91_bja1       MACH_AT91_BJA1      AT91_BJA1       422
-+corgi           MACH_CORGI      CORGI           423
-+poodle          MACH_POODLE     POODLE          424
-+ten         MACH_TEN        TEN         425
-+roverp5p        MACH_ROVERP5P       ROVERP5P        426
-+sc2700          MACH_SC2700     SC2700          427
-+ex_eagle        MACH_EX_EAGLE       EX_EAGLE        428
-+nx_pxa12        MACH_NX_PXA12       NX_PXA12        429
-+nx_pxa5         MACH_NX_PXA5        NX_PXA5         430
-+blackboard2     MACH_BLACKBOARD2    BLACKBOARD2     431
-+i819            MACH_I819       I819            432
-+ixmb995e        MACH_IXMB995E       IXMB995E        433
-+skyrider        MACH_SKYRIDER       SKYRIDER        434
-+skyhawk         MACH_SKYHAWK        SKYHAWK         435
-+enterprise      MACH_ENTERPRISE     ENTERPRISE      436
-+dep2410         MACH_DEP2410        DEP2410         437
-+armcore         MACH_ARMCORE        ARMCORE         438
-+hobbit          MACH_HOBBIT     HOBBIT          439
-+h7210           MACH_H7210      H7210           440
-+pxa_netdcu5     MACH_PXA_NETDCU5    PXA_NETDCU5     441
-+acc         MACH_ACC        ACC         442
-+esl_sarva       MACH_ESL_SARVA      ESL_SARVA       443
-+xm250           MACH_XM250      XM250           444
-+t6tc1xb         MACH_T6TC1XB        T6TC1XB         445
-+ess710          MACH_ESS710     ESS710          446
-+mx31ads         MACH_MX31ADS        MX31ADS         447
-+himalaya        MACH_HIMALAYA       HIMALAYA        448
-+bolfenk         MACH_BOLFENK        BOLFENK         449
-+at91rm9200kr        MACH_AT91RM9200KR   AT91RM9200KR        450
-+edb9312         MACH_EDB9312        EDB9312         451
-+omap_generic        MACH_OMAP_GENERIC   OMAP_GENERIC        452
-+aximx3          MACH_AXIMX3     AXIMX3          453
-+eb67xdip        MACH_EB67XDIP       EB67XDIP        454
-+webtxs          MACH_WEBTXS     WEBTXS          455
-+hawk            MACH_HAWK       HAWK            456
-+ccat91sbc001        MACH_CCAT91SBC001   CCAT91SBC001        457
-+expresso        MACH_EXPRESSO       EXPRESSO        458
-+h4000           MACH_H4000      H4000           459
-+dino            MACH_DINO       DINO            460
-+ml675k          MACH_ML675K     ML675K          461
-+edb9301         MACH_EDB9301        EDB9301         462
-+edb9315         MACH_EDB9315        EDB9315         463
-+reciva_tt       MACH_RECIVA_TT      RECIVA_TT       464
-+cstcb01         MACH_CSTCB01        CSTCB01         465
-+cstcb1          MACH_CSTCB1     CSTCB1          466
-+shadwell        MACH_SHADWELL       SHADWELL        467
-+goepel263       MACH_GOEPEL263      GOEPEL263       468
-+acq100          MACH_ACQ100     ACQ100          469
-+mx1fs2          MACH_MX1FS2     MX1FS2          470
-+hiptop_g1       MACH_HIPTOP_G1      HIPTOP_G1       471
-+sparky          MACH_SPARKY     SPARKY          472
-+ns9750          MACH_NS9750     NS9750          473
-+phoenix         MACH_PHOENIX        PHOENIX         474
-+vr1000          MACH_VR1000     VR1000          475
-+deisterpxa      MACH_DEISTERPXA     DEISTERPXA      476
-+bcm1160         MACH_BCM1160        BCM1160         477
-+pcm022          MACH_PCM022     PCM022          478
-+adsgcx          MACH_ADSGCX     ADSGCX          479
-+dreadnaught     MACH_DREADNAUGHT    DREADNAUGHT     480
-+dm320           MACH_DM320      DM320           481
-+markov          MACH_MARKOV     MARKOV          482
-+cos7a400        MACH_COS7A400       COS7A400        483
-+milano          MACH_MILANO     MILANO          484
-+ue9328          MACH_UE9328     UE9328          485
-+uex255          MACH_UEX255     UEX255          486
-+ue2410          MACH_UE2410     UE2410          487
-+a620            MACH_A620       A620            488
-+ocelot          MACH_OCELOT     OCELOT          489
-+cheetah         MACH_CHEETAH        CHEETAH         490
-+omap_perseus2       MACH_OMAP_PERSEUS2  OMAP_PERSEUS2       491
-+zvue            MACH_ZVUE       ZVUE            492
-+roverp1         MACH_ROVERP1        ROVERP1         493
-+asidial2        MACH_ASIDIAL2       ASIDIAL2        494
-+s3c24a0         MACH_S3C24A0        S3C24A0         495
-+e800            MACH_E800       E800            496
-+e750            MACH_E750       E750            497
-+s3c5500         MACH_S3C5500        S3C5500         498
-+smdk5500        MACH_SMDK5500       SMDK5500        499
-+signalsync      MACH_SIGNALSYNC     SIGNALSYNC      500
-+nbc         MACH_NBC        NBC         501
-+kodiak          MACH_KODIAK     KODIAK          502
-+netbookpro      MACH_NETBOOKPRO     NETBOOKPRO      503
-+hw90200         MACH_HW90200        HW90200         504
-+condor          MACH_CONDOR     CONDOR          505
-+cup         MACH_CUP        CUP         506
-+kite            MACH_KITE       KITE            507
-+scb9328         MACH_SCB9328        SCB9328         508
-+omap_h3         MACH_OMAP_H3        OMAP_H3         509
-+omap_h4         MACH_OMAP_H4        OMAP_H4         510
-+n10         MACH_N10        N10         511
-+montejade       MACH_MONTAJADE      MONTAJADE       512
-+sg560           MACH_SG560      SG560           513
-+dp1000          MACH_DP1000     DP1000          514
-+omap_osk        MACH_OMAP_OSK       OMAP_OSK        515
-+rg100v3         MACH_RG100V3        RG100V3         516
-+mx2ads          MACH_MX2ADS     MX2ADS          517
-+pxa_kilo        MACH_PXA_KILO       PXA_KILO        518
-+ixp4xx_eagle        MACH_IXP4XX_EAGLE   IXP4XX_EAGLE        519
-+tosa            MACH_TOSA       TOSA            520
-+mb2520f         MACH_MB2520F        MB2520F         521
-+emc1000         MACH_EMC1000        EMC1000         522
-+tidsc25         MACH_TIDSC25        TIDSC25         523
-+akcpmxl         MACH_AKCPMXL        AKCPMXL         524
-+av3xx           MACH_AV3XX      AV3XX           525
-+avila           MACH_AVILA      AVILA           526
-+pxa_mpm10       MACH_PXA_MPM10      PXA_MPM10       527
-+pxa_kyanite     MACH_PXA_KYANITE    PXA_KYANITE     528
-+sgold           MACH_SGOLD      SGOLD           529
-+oscar           MACH_OSCAR      OSCAR           530
-+epxa4usb2       MACH_EPXA4USB2      EPXA4USB2       531
-+xsengine        MACH_XSENGINE       XSENGINE        532
-+ip600           MACH_IP600      IP600           533
-+mcan2           MACH_MCAN2      MCAN2           534
-+ddi_blueridge       MACH_DDI_BLUERIDGE  DDI_BLUERIDGE       535
-+skyminder       MACH_SKYMINDER      SKYMINDER       536
-+lpd79520        MACH_LPD79520       LPD79520        537
-+edb9302         MACH_EDB9302        EDB9302         538
-+hw90340         MACH_HW90340        HW90340         539
-+cip_box         MACH_CIP_BOX        CIP_BOX         540
-+ivpn            MACH_IVPN       IVPN            541
-+rsoc2           MACH_RSOC2      RSOC2           542
-+husky           MACH_HUSKY      HUSKY           543
-+boxer           MACH_BOXER      BOXER           544
-+shepherd        MACH_SHEPHERD       SHEPHERD        545
-+aml42800aa      MACH_AML42800AA     AML42800AA      546
-+lpc2294         MACH_LPC2294        LPC2294         548
-+switchgrass     MACH_SWITCHGRASS    SWITCHGRASS     549
-+ens_cmu         MACH_ENS_CMU        ENS_CMU         550
-+mm6_sdb         MACH_MM6_SDB        MM6_SDB         551
-+saturn          MACH_SATURN     SATURN          552
-+i30030evb       MACH_I30030EVB      I30030EVB       553
-+mxc27530evb     MACH_MXC27530EVB    MXC27530EVB     554
-+smdk2800        MACH_SMDK2800       SMDK2800        555
-+mtwilson        MACH_MTWILSON       MTWILSON        556
-+ziti            MACH_ZITI       ZITI            557
-+grandfather     MACH_GRANDFATHER    GRANDFATHER     558
-+tengine         MACH_TENGINE        TENGINE         559
-+s3c2460         MACH_S3C2460        S3C2460         560
-+pdm         MACH_PDM        PDM         561
-+h4700           MACH_H4700      H4700           562
-+h6300           MACH_H6300      H6300           563
-+rz1700          MACH_RZ1700     RZ1700          564
-+a716            MACH_A716       A716            565
-+estk2440a       MACH_ESTK2440A      ESTK2440A       566
-+atwixp425       MACH_ATWIXP425      ATWIXP425       567
-+csb336          MACH_CSB336     CSB336          568
-+rirm2           MACH_RIRM2      RIRM2           569
-+cx23518         MACH_CX23518        CX23518         570
-+cx2351x         MACH_CX2351X        CX2351X         571
-+computime       MACH_COMPUTIME      COMPUTIME       572
-+izarus          MACH_IZARUS     IZARUS          573
-+pxa_rts         MACH_RTS        RTS         574
-+se5100          MACH_SE5100     SE5100          575
-+s3c2510         MACH_S3C2510        S3C2510         576
-+csb437tl        MACH_CSB437TL       CSB437TL        577
-+slauson         MACH_SLAUSON        SLAUSON         578
-+pearlriver      MACH_PEARLRIVER     PEARLRIVER      579
-+tdc_p210        MACH_TDC_P210       TDC_P210        580
-+sg580           MACH_SG580      SG580           581
-+wrsbcarm7       MACH_WRSBCARM7      WRSBCARM7       582
-+ipd         MACH_IPD        IPD         583
-+pxa_dnp2110     MACH_PXA_DNP2110    PXA_DNP2110     584
-+xaeniax         MACH_XAENIAX        XAENIAX         585
-+somn4250        MACH_SOMN4250       SOMN4250        586
-+pleb2           MACH_PLEB2      PLEB2           587
-+cornwallis      MACH_CORNWALLIS     CORNWALLIS      588
-+gurney_drv      MACH_GURNEY_DRV     GURNEY_DRV      589
-+chaffee         MACH_CHAFFEE        CHAFFEE         590
-+rms101          MACH_RMS101     RMS101          591
-+rx3715          MACH_RX3715     RX3715          592
-+swift           MACH_SWIFT      SWIFT           593
-+roverp7         MACH_ROVERP7        ROVERP7         594
-+pr818s          MACH_PR818S     PR818S          595
-+trxpro          MACH_TRXPRO     TRXPRO          596
-+nslu2           MACH_NSLU2      NSLU2           597
-+e400            MACH_E400       E400            598
-+trab            MACH_TRAB       TRAB            599
-+cmc_pu2         MACH_CMC_PU2        CMC_PU2         600
-+fulcrum         MACH_FULCRUM        FULCRUM         601
-+netgate42x      MACH_NETGATE42X     NETGATE42X      602
-+str710          MACH_STR710     STR710          603
-+ixdpg425        MACH_IXDPG425       IXDPG425        604
-+tomtomgo        MACH_TOMTOMGO       TOMTOMGO        605
-+versatile_ab        MACH_VERSATILE_AB   VERSATILE_AB        606
-+edb9307         MACH_EDB9307        EDB9307         607
-+sg565           MACH_SG565      SG565           608
-+lpd79524        MACH_LPD79524       LPD79524        609
-+lpd79525        MACH_LPD79525       LPD79525        610
-+rms100          MACH_RMS100     RMS100          611
-+kb9200          MACH_KB9200     KB9200          612
-+sx1         MACH_SX1        SX1         613
-+hms39c7092      MACH_HMS39C7092     HMS39C7092      614
-+armadillo       MACH_ARMADILLO      ARMADILLO       615
-+ipcu            MACH_IPCU       IPCU            616
-+loox720         MACH_LOOX720        LOOX720         617
-+ixdp465         MACH_IXDP465        IXDP465         618
-+ixdp2351        MACH_IXDP2351       IXDP2351        619
-+adsvix          MACH_ADSVIX     ADSVIX          620
-+dm270           MACH_DM270      DM270           621
-+socltplus       MACH_SOCLTPLUS      SOCLTPLUS       622
-+ecia            MACH_ECIA       ECIA            623
-+cm4008          MACH_CM4008     CM4008          624
-+p2001           MACH_P2001      P2001           625
-+twister         MACH_TWISTER        TWISTER         626
-+mudshark        MACH_MUDSHARK       MUDSHARK        627
-+hb2         MACH_HB2        HB2         628
-+iq80332         MACH_IQ80332        IQ80332         629
-+sendt           MACH_SENDT      SENDT           630
-+mx2jazz         MACH_MX2JAZZ        MX2JAZZ         631
-+multiio         MACH_MULTIIO        MULTIIO         632
-+hrdisplay       MACH_HRDISPLAY      HRDISPLAY       633
-+mxc27530ads     MACH_MXC27530ADS    MXC27530ADS     634
-+trizeps3        MACH_TRIZEPS3       TRIZEPS3        635
-+zefeerdza       MACH_ZEFEERDZA      ZEFEERDZA       636
-+zefeerdzb       MACH_ZEFEERDZB      ZEFEERDZB       637
-+zefeerdzg       MACH_ZEFEERDZG      ZEFEERDZG       638
-+zefeerdzn       MACH_ZEFEERDZN      ZEFEERDZN       639
-+zefeerdzq       MACH_ZEFEERDZQ      ZEFEERDZQ       640
-+gtwx5715        MACH_GTWX5715       GTWX5715        641
-+astro_jack      MACH_ASTRO_JACK     ASTRO_JACK      643
-+tip03           MACH_TIP03      TIP03           644
-+a9200ec         MACH_A9200EC        A9200EC         645
-+pnx0105         MACH_PNX0105        PNX0105         646
-+adcpoecpu       MACH_ADCPOECPU      ADCPOECPU       647
-+csb637          MACH_CSB637     CSB637          648
-+mb9200          MACH_MB9200     MB9200          650
-+kulun           MACH_KULUN      KULUN           651
-+snapper         MACH_SNAPPER        SNAPPER         652
-+optima          MACH_OPTIMA     OPTIMA          653
-+dlhsbc          MACH_DLHSBC     DLHSBC          654
-+x30         MACH_X30        X30         655
-+n30         MACH_N30        N30         656
-+manga_ks8695        MACH_MANGA_KS8695   MANGA_KS8695        657
-+ajax            MACH_AJAX       AJAX            658
-+nec_mp900       MACH_NEC_MP900      NEC_MP900       659
-+vvtk1000        MACH_VVTK1000       VVTK1000        661
-+kafa            MACH_KAFA       KAFA            662
-+vvtk3000        MACH_VVTK3000       VVTK3000        663
-+pimx1           MACH_PIMX1      PIMX1           664
-+ollie           MACH_OLLIE      OLLIE           665
-+skymax          MACH_SKYMAX     SKYMAX          666
-+jazz            MACH_JAZZ       JAZZ            667
-+tel_t3          MACH_TEL_T3     TEL_T3          668
-+aisino_fcr255       MACH_AISINO_FCR255  AISINO_FCR255       669
-+btweb           MACH_BTWEB      BTWEB           670
-+dbg_lh79520     MACH_DBG_LH79520    DBG_LH79520     671
-+cm41xx          MACH_CM41XX     CM41XX          672
-+ts72xx          MACH_TS72XX     TS72XX          673
-+nggpxa          MACH_NGGPXA     NGGPXA          674
-+csb535          MACH_CSB535     CSB535          675
-+csb536          MACH_CSB536     CSB536          676
-+pxa_trakpod     MACH_PXA_TRAKPOD    PXA_TRAKPOD     677
-+praxis          MACH_PRAXIS     PRAXIS          678
-+lh75411         MACH_LH75411        LH75411         679
-+otom            MACH_OTOM       OTOM            680
-+nexcoder_2440       MACH_NEXCODER_2440  NEXCODER_2440       681
-+loox410         MACH_LOOX410        LOOX410         682
-+westlake        MACH_WESTLAKE       WESTLAKE        683
-+nsb         MACH_NSB        NSB         684
-+esl_sarva_stn       MACH_ESL_SARVA_STN  ESL_SARVA_STN       685
-+esl_sarva_tft       MACH_ESL_SARVA_TFT  ESL_SARVA_TFT       686
-+esl_sarva_iad       MACH_ESL_SARVA_IAD  ESL_SARVA_IAD       687
-+esl_sarva_acc       MACH_ESL_SARVA_ACC  ESL_SARVA_ACC       688
-+typhoon         MACH_TYPHOON        TYPHOON         689
-+cnav            MACH_CNAV       CNAV            690
-+a730            MACH_A730       A730            691
-+netstar         MACH_NETSTAR        NETSTAR         692
-+supercon        MACH_PHASEFALE_SUPERCON PHASEFALE_SUPERCON  693
-+shiva1100       MACH_SHIVA1100      SHIVA1100       694
-+etexsc          MACH_ETEXSC     ETEXSC          695
-+ixdpg465        MACH_IXDPG465       IXDPG465        696
-+a9m2410         MACH_A9M2410        A9M2410         697
-+a9m2440         MACH_A9M2440        A9M2440         698
-+a9m9750         MACH_A9M9750        A9M9750         699
-+a9m9360         MACH_A9M9360        A9M9360         700
-+unc90           MACH_UNC90      UNC90           701
-+eco920          MACH_ECO920     ECO920          702
-+satview         MACH_SATVIEW        SATVIEW         703
-+roadrunner      MACH_ROADRUNNER     ROADRUNNER      704
-+at91rm9200ek        MACH_AT91RM9200EK   AT91RM9200EK        705
-+gp32            MACH_GP32       GP32            706
-+gem         MACH_GEM        GEM         707
-+i858            MACH_I858       I858            708
-+hx2750          MACH_HX2750     HX2750          709
-+mxc91131evb     MACH_MXC91131EVB    MXC91131EVB     710
-+p700            MACH_P700       P700            711
-+cpe         MACH_CPE        CPE         712
-+spitz           MACH_SPITZ      SPITZ           713
-+nimbra340       MACH_NIMBRA340      NIMBRA340       714
-+lpc22xx         MACH_LPC22XX        LPC22XX         715
-+omap_comet3     MACH_COMET3     COMET3          716
-+omap_comet4     MACH_COMET4     COMET4          717
-+csb625          MACH_CSB625     CSB625          718
-+fortunet2       MACH_FORTUNET2      FORTUNET2       719
-+s5h2200         MACH_S5H2200        S5H2200         720
-+optorm920       MACH_OPTORM920      OPTORM920       721
-+adsbitsyxb      MACH_ADSBITSYXB     ADSBITSYXB      722
-+adssphere       MACH_ADSSPHERE      ADSSPHERE       723
-+adsportal       MACH_ADSPORTAL      ADSPORTAL       724
-+ln2410sbc       MACH_LN2410SBC      LN2410SBC       725
-+cb3rufc         MACH_CB3RUFC        CB3RUFC         726
-+mp2usb          MACH_MP2USB     MP2USB          727
-+ntnp425c        MACH_NTNP425C       NTNP425C        728
-+colibri         MACH_COLIBRI        COLIBRI         729
-+pcm7220         MACH_PCM7220        PCM7220         730
-+gateway7001     MACH_GATEWAY7001    GATEWAY7001     731
-+pcm027          MACH_PCM027     PCM027          732
-+cmpxa           MACH_CMPXA      CMPXA           733
-+anubis          MACH_ANUBIS     ANUBIS          734
-+ite8152         MACH_ITE8152        ITE8152         735
-+lpc3xxx         MACH_LPC3XXX        LPC3XXX         736
-+puppeteer       MACH_PUPPETEER      PUPPETEER       737
-+e570            MACH_E570       E570            739
-+x50         MACH_X50        X50         740
-+recon           MACH_RECON      RECON           741
-+xboardgp8       MACH_XBOARDGP8      XBOARDGP8       742
-+fpic2           MACH_FPIC2      FPIC2           743
-+akita           MACH_AKITA      AKITA           744
-+a81         MACH_A81        A81         745
-+svm_sc25x       MACH_SVM_SC25X      SVM_SC25X       746
-+vt020           MACH_VADATECH020    VADATECH020     747
-+tli         MACH_TLI        TLI         748
-+edb9315lc       MACH_EDB9315LC      EDB9315LC       749
-+passec          MACH_PASSEC     PASSEC          750
-+ds_tiger        MACH_DS_TIGER       DS_TIGER        751
-+e310            MACH_E310       E310            752
-+e330            MACH_E330       E330            753
-+rt3000          MACH_RT3000     RT3000          754
-+nokia770        MACH_NOKIA770       NOKIA770        755
-+pnx0106         MACH_PNX0106        PNX0106         756
-+hx21xx          MACH_HX21XX     HX21XX          757
-+faraday         MACH_FARADAY        FARADAY         758
-+sbc9312         MACH_SBC9312        SBC9312         759
-+batman          MACH_BATMAN     BATMAN          760
-+jpd201          MACH_JPD201     JPD201          761
-+mipsa           MACH_MIPSA      MIPSA           762
-+kacom           MACH_KACOM      KACOM           763
-+swarcocpu       MACH_SWARCOCPU      SWARCOCPU       764
-+swarcodsl       MACH_SWARCODSL      SWARCODSL       765
-+blueangel       MACH_BLUEANGEL      BLUEANGEL       766
-+hairygrama      MACH_HAIRYGRAMA     HAIRYGRAMA      767
-+banff           MACH_BANFF      BANFF           768
-+carmeva         MACH_CARMEVA        CARMEVA         769
-+sam255          MACH_SAM255     SAM255          770
-+ppm10           MACH_PPM10      PPM10           771
-+edb9315a        MACH_EDB9315A       EDB9315A        772
-+sunset          MACH_SUNSET     SUNSET          773
-+stargate2       MACH_STARGATE2      STARGATE2       774
-+intelmote2      MACH_INTELMOTE2     INTELMOTE2      775
-+trizeps4        MACH_TRIZEPS4       TRIZEPS4        776
-+mainstone2      MACH_MAINSTONE2     MAINSTONE2      777
-+ez_ixp42x       MACH_EZ_IXP42X      EZ_IXP42X       778
-+tapwave_zodiac      MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC      779
-+universalmeter      MACH_UNIVERSALMETER UNIVERSALMETER      780
-+hicoarm9        MACH_HICOARM9       HICOARM9        781
-+pnx4008         MACH_PNX4008        PNX4008         782
-+kws6000         MACH_KWS6000        KWS6000         783
-+portux920t      MACH_PORTUX920T     PORTUX920T      784
-+ez_x5           MACH_EZ_X5      EZ_X5           785
-+omap_rudolph        MACH_OMAP_RUDOLPH   OMAP_RUDOLPH        786
-+cpuat91         MACH_CPUAT91        CPUAT91         787
-+rea9200         MACH_REA9200        REA9200         788
-+acts_pune_sa1110    MACH_ACTS_PUNE_SA1110   ACTS_PUNE_SA1110    789
-+ixp425          MACH_IXP425     IXP425          790
-+i30030ads       MACH_I30030ADS      I30030ADS       791
-+perch           MACH_PERCH      PERCH           792
-+eis05r1         MACH_EIS05R1        EIS05R1         793
-+pepperpad       MACH_PEPPERPAD      PEPPERPAD       794
-+sb3010          MACH_SB3010     SB3010          795
-+rm9200          MACH_RM9200     RM9200          796
-+dma03           MACH_DMA03      DMA03           797
-+road_s101       MACH_ROAD_S101      ROAD_S101       798
-+iq81340sc       MACH_IQ81340SC      IQ81340SC       799
-+iq_nextgen_b        MACH_IQ_NEXTGEN_B   IQ_NEXTGEN_B        800
-+iq81340mc       MACH_IQ81340MC      IQ81340MC       801
-+iq_nextgen_d        MACH_IQ_NEXTGEN_D   IQ_NEXTGEN_D        802
-+iq_nextgen_e        MACH_IQ_NEXTGEN_E   IQ_NEXTGEN_E        803
-+mallow_at91     MACH_MALLOW_AT91    MALLOW_AT91     804
-+cybertracker_i      MACH_CYBERTRACKER_I CYBERTRACKER_I      805
-+gesbc931x       MACH_GESBC931X      GESBC931X       806
-+centipad        MACH_CENTIPAD       CENTIPAD        807
-+armsoc          MACH_ARMSOC     ARMSOC          808
-+se4200          MACH_SE4200     SE4200          809
-+ems197a         MACH_EMS197A        EMS197A         810
-+micro9          MACH_MICRO9     MICRO9          811
-+micro9l         MACH_MICRO9L        MICRO9L         812
-+uc5471dsp       MACH_UC5471DSP      UC5471DSP       813
-+sj5471eng       MACH_SJ5471ENG      SJ5471ENG       814
-+none            MACH_CMPXA26X       CMPXA26X        815
-+nc1         MACH_NC         NC          816
-+omap_palmte     MACH_OMAP_PALMTE    OMAP_PALMTE     817
-+ajax52x         MACH_AJAX52X        AJAX52X         818
-+siriustar       MACH_SIRIUSTAR      SIRIUSTAR       819
-+iodata_hdlg     MACH_IODATA_HDLG    IODATA_HDLG     820
-+at91rm9200utl       MACH_AT91RM9200UTL  AT91RM9200UTL       821
-+biosafe         MACH_BIOSAFE        BIOSAFE         822
-+mp1000          MACH_MP1000     MP1000          823
-+parsy           MACH_PARSY      PARSY           824
-+ccxp270         MACH_CCXP       CCXP            825
-+omap_gsample        MACH_OMAP_GSAMPLE   OMAP_GSAMPLE        826
-+realview_eb     MACH_REALVIEW_EB    REALVIEW_EB     827
-+samoa           MACH_SAMOA      SAMOA           828
-+palmt3          MACH_PALMT3     PALMT3          829
-+i878            MACH_I878       I878            830
-+borzoi          MACH_BORZOI     BORZOI          831
-+gecko           MACH_GECKO      GECKO           832
-+ds101           MACH_DS101      DS101           833
-+omap_palmtt2        MACH_OMAP_PALMTT2   OMAP_PALMTT2        834
-+palmld          MACH_PALMLD     PALMLD          835
-+cc9c            MACH_CC9C       CC9C            836
-+sbc1670         MACH_SBC1670        SBC1670         837
-+ixdp28x5        MACH_IXDP28X5       IXDP28X5        838
-+omap_palmtt     MACH_OMAP_PALMTT    OMAP_PALMTT     839
-+ml696k          MACH_ML696K     ML696K          840
-+arcom_zeus      MACH_ARCOM_ZEUS     ARCOM_ZEUS      841
-+osiris          MACH_OSIRIS     OSIRIS          842
-+maestro         MACH_MAESTRO        MAESTRO         843
-+palmte2         MACH_PALMTE2        PALMTE2         844
-+ixbbm           MACH_IXBBM      IXBBM           845
-+mx27ads         MACH_MX27ADS        MX27ADS         846
-+ax8004          MACH_AX8004     AX8004          847
-+at91sam9261ek       MACH_AT91SAM9261EK  AT91SAM9261EK       848
-+loft            MACH_LOFT       LOFT            849
-+magpie          MACH_MAGPIE     MAGPIE          850
-+mx21ads         MACH_MX21ADS        MX21ADS         851
-+mb87m3400       MACH_MB87M3400      MB87M3400       852
-+mguard_delta        MACH_MGUARD_DELTA   MGUARD_DELTA        853
-+davinci_dvdp        MACH_DAVINCI_DVDP   DAVINCI_DVDP        854
-+htcuniversal        MACH_HTCUNIVERSAL   HTCUNIVERSAL        855
-+tpad            MACH_TPAD       TPAD            856
-+roverp3         MACH_ROVERP3        ROVERP3         857
-+jornada928      MACH_JORNADA928     JORNADA928      858
-+mv88fxx81       MACH_MV88FXX81      MV88FXX81       859
-+stmp36xx        MACH_STMP36XX       STMP36XX        860
-+sxni79524       MACH_SXNI79524      SXNI79524       861
-+ams_delta       MACH_AMS_DELTA      AMS_DELTA       862
-+uranium         MACH_URANIUM        URANIUM         863
-+ucon            MACH_UCON       UCON            864
-+nas100d         MACH_NAS100D        NAS100D         865
-+l083            MACH_L083_1000      L083_1000       866
-+ezx         MACH_EZX        EZX         867
-+pnx5220         MACH_PNX5220        PNX5220         868
-+butte           MACH_BUTTE      BUTTE           869
-+srm2            MACH_SRM2       SRM2            870
-+dsbr            MACH_DSBR       DSBR            871
-+crystalball     MACH_CRYSTALBALL    CRYSTALBALL     872
-+tinypxa27x      MACH_TINYPXA27X     TINYPXA27X      873
-+herbie          MACH_HERBIE     HERBIE          874
-+magician        MACH_MAGICIAN       MAGICIAN        875
-+cm4002          MACH_CM4002     CM4002          876
-+b4          MACH_B4         B4          877
-+maui            MACH_MAUI       MAUI            878
-+cybertracker_g      MACH_CYBERTRACKER_G CYBERTRACKER_G      879
-+nxdkn           MACH_NXDKN      NXDKN           880
-+mio8390         MACH_MIO8390        MIO8390         881
-+omi_board       MACH_OMI_BOARD      OMI_BOARD       882
-+mx21civ         MACH_MX21CIV        MX21CIV         883
-+mahi_cdac       MACH_MAHI_CDAC      MAHI_CDAC       884
-+palmtx          MACH_PALMTX     PALMTX          885
-+s3c2413         MACH_S3C2413        S3C2413         887
-+samsys_ep0      MACH_SAMSYS_EP0     SAMSYS_EP0      888
-+wg302v1         MACH_WG302V1        WG302V1         889
-+wg302v2         MACH_WG302V2        WG302V2         890
-+eb42x           MACH_EB42X      EB42X           891
-+iq331es         MACH_IQ331ES        IQ331ES         892
-+cosydsp         MACH_COSYDSP        COSYDSP         893
-+uplat7d_proto       MACH_UPLAT7D        UPLAT7D         894
-+ptdavinci       MACH_PTDAVINCI      PTDAVINCI       895
-+mbus            MACH_MBUS       MBUS            896
-+nadia2vb        MACH_NADIA2VB       NADIA2VB        897
-+r1000           MACH_R1000      R1000           898
-+hw90250         MACH_HW90250        HW90250         899
-+omap_2430sdp        MACH_OMAP_2430SDP   OMAP_2430SDP        900
-+davinci_evm     MACH_DAVINCI_EVM    DAVINCI_EVM     901
-+omap_tornado        MACH_OMAP_TORNADO   OMAP_TORNADO        902
-+olocreek        MACH_OLOCREEK       OLOCREEK        903
-+palmz72         MACH_PALMZ72        PALMZ72         904
-+nxdb500         MACH_NXDB500        NXDB500         905
-+apf9328         MACH_APF9328        APF9328         906
-+omap_wipoq      MACH_OMAP_WIPOQ     OMAP_WIPOQ      907
-+omap_twip       MACH_OMAP_TWIP      OMAP_TWIP       908
-+treo650         MACH_TREO650        TREO650         909
-+acumen          MACH_ACUMEN     ACUMEN          910
-+xp100           MACH_XP100      XP100           911
-+fs2410          MACH_FS2410     FS2410          912
-+pxa270_cerf     MACH_PXA270_CERF    PXA270_CERF     913
-+sq2ftlpalm      MACH_SQ2FTLPALM     SQ2FTLPALM      914
-+bsemserver      MACH_BSEMSERVER     BSEMSERVER      915
-+netclient       MACH_NETCLIENT      NETCLIENT       916
-+palmt5          MACH_PALMT5     PALMT5          917
-+palmtc          MACH_PALMTC     PALMTC          918
-+omap_apollon        MACH_OMAP_APOLLON   OMAP_APOLLON        919
-+mxc30030evb     MACH_MXC30030EVB    MXC30030EVB     920
-+rea_cpu2        MACH_REA_2D     REA_2D          921
-+eti3e524        MACH_TI3E524        TI3E524         922
-+ateb9200        MACH_ATEB9200       ATEB9200        923
-+auckland        MACH_AUCKLAND       AUCKLAND        924
-+ak3220m         MACH_AK3320M        AK3320M         925
-+duramax         MACH_DURAMAX        DURAMAX         926
-+n35         MACH_N35        N35         927
-+pronghorn       MACH_PRONGHORN      PRONGHORN       928
-+fundy           MACH_FUNDY      FUNDY           929
-+logicpd_pxa270      MACH_LOGICPD_PXA270 LOGICPD_PXA270      930
-+cpu777          MACH_CPU777     CPU777          931
-+simicon9201     MACH_SIMICON9201    SIMICON9201     932
-+leap2_hpm       MACH_LEAP2_HPM      LEAP2_HPM       933
-+cm922txa10      MACH_CM922TXA10     CM922TXA10      934
-+sandgate        MACH_PXA        PXA         935
-+sandgate2       MACH_SANDGATE2      SANDGATE2       936
-+sandgate2g      MACH_SANDGATE2G     SANDGATE2G      937
-+sandgate2p      MACH_SANDGATE2P     SANDGATE2P      938
-+fred_jack       MACH_FRED_JACK      FRED_JACK       939
-+ttg_color1      MACH_TTG_COLOR1     TTG_COLOR1      940
-+nxeb500hmi      MACH_NXEB500HMI     NXEB500HMI      941
-+netdcu8         MACH_NETDCU8        NETDCU8         942
-+ng_fvx538       MACH_NG_FVX538      NG_FVX538       944
-+ng_fvs338       MACH_NG_FVS338      NG_FVS338       945
-+pnx4103         MACH_PNX4103        PNX4103         946
-+hesdb           MACH_HESDB      HESDB           947
-+xsilo           MACH_XSILO      XSILO           948
-+espresso        MACH_ESPRESSO       ESPRESSO        949
-+emlc            MACH_EMLC       EMLC            950
-+sisteron        MACH_SISTERON       SISTERON        951
-+rx1950          MACH_RX1950     RX1950          952
-+tsc_venus       MACH_TSC_VENUS      TSC_VENUS       953
-+ds101j          MACH_DS101J     DS101J          954
-+mxc30030ads     MACH_MXC30030ADS    MXC30030ADS     955
-+fujitsu_wimaxsoc    MACH_FUJITSU_WIMAXSOC   FUJITSU_WIMAXSOC    956
-+dualpcmodem     MACH_DUALPCMODEM    DUALPCMODEM     957
-+gesbc9312       MACH_GESBC9312      GESBC9312       958
-+htcapache       MACH_HTCAPACHE      HTCAPACHE       959
-+ixdp435         MACH_IXDP435        IXDP435         960
-+catprovt100     MACH_CATPROVT100    CATPROVT100     961
-+picotux1xx      MACH_PICOTUX1XX     PICOTUX1XX      962
-+picotux2xx      MACH_PICOTUX2XX     PICOTUX2XX      963
-+dsmg600         MACH_DSMG600        DSMG600         964
-+empc2           MACH_EMPC2      EMPC2           965
-+ventura         MACH_VENTURA        VENTURA         966
-+phidget_sbc     MACH_PHIDGET_SBC    PHIDGET_SBC     967
-+ij3k            MACH_IJ3K       IJ3K            968
-+pisgah          MACH_PISGAH     PISGAH          969
-+omap_fsample        MACH_OMAP_FSAMPLE   OMAP_FSAMPLE        970
-+sg720           MACH_SG720      SG720           971
-+redfox          MACH_REDFOX     REDFOX          972
-+mysh_ep9315_1       MACH_MYSH_EP9315_1  MYSH_EP9315_1       973
-+tpf106          MACH_TPF106     TPF106          974
-+at91rm9200kg        MACH_AT91RM9200KG   AT91RM9200KG        975
-+rcmt2           MACH_SLEDB      SLEDB           976
-+ontrack         MACH_ONTRACK        ONTRACK         977
-+pm1200          MACH_PM1200     PM1200          978
-+ess24562        MACH_ESS24XXX       ESS24XXX        979
-+coremp7         MACH_COREMP7        COREMP7         980
-+nexcoder_6446       MACH_NEXCODER_6446  NEXCODER_6446       981
-+stvc8380        MACH_STVC8380       STVC8380        982
-+teklynx         MACH_TEKLYNX        TEKLYNX         983
-+carbonado       MACH_CARBONADO      CARBONADO       984
-+sysmos_mp730        MACH_SYSMOS_MP730   SYSMOS_MP730        985
-+snapper_cl15        MACH_SNAPPER_CL15   SNAPPER_CL15        986
-+pgigim          MACH_PGIGIM     PGIGIM          987
-+ptx9160p2       MACH_PTX9160P2      PTX9160P2       988
-+dcore1          MACH_DCORE1     DCORE1          989
-+victorpxa       MACH_VICTORPXA      VICTORPXA       990
-+mx2dtb          MACH_MX2DTB     MX2DTB          991
-+pxa_irex_er0100     MACH_PXA_IREX_ER0100    PXA_IREX_ER0100     992
-+omap_palmz71        MACH_OMAP_PALMZ71   OMAP_PALMZ71        993
-+bartec_deg      MACH_BARTEC_DEG     BARTEC_DEG      994
-+hw50251         MACH_HW50251        HW50251         995
-+ibox            MACH_IBOX       IBOX            996
-+atlaslh7a404        MACH_ATLASLH7A404   ATLASLH7A404        997
-+pt2026          MACH_PT2026     PT2026          998
-+htcalpine       MACH_HTCALPINE      HTCALPINE       999
-+bartec_vtu      MACH_BARTEC_VTU     BARTEC_VTU      1000
-+vcoreii         MACH_VCOREII        VCOREII         1001
-+pdnb3           MACH_PDNB3      PDNB3           1002
-+htcbeetles      MACH_HTCBEETLES     HTCBEETLES      1003
-+s3c6400         MACH_S3C6400        S3C6400         1004
-+s3c2443         MACH_S3C2443        S3C2443         1005
-+omap_ldk        MACH_OMAP_LDK       OMAP_LDK        1006
-+smdk2460        MACH_SMDK2460       SMDK2460        1007
-+smdk2440        MACH_SMDK2440       SMDK2440        1008
-+smdk2412        MACH_SMDK2412       SMDK2412        1009
-+webbox          MACH_WEBBOX     WEBBOX          1010
-+cwwndp          MACH_CWWNDP     CWWNDP          1011
-+i839            MACH_DRAGON     DRAGON          1012
-+opendo_cpu_board    MACH_OPENDO_CPU_BOARD   OPENDO_CPU_BOARD    1013
-+ccm2200         MACH_CCM2200        CCM2200         1014
-+etwarm          MACH_ETWARM     ETWARM          1015
-+m93030          MACH_M93030     M93030          1016
-+cc7u            MACH_CC7U       CC7U            1017
-+mtt_ranger      MACH_MTT_RANGER     MTT_RANGER      1018
-+nexus           MACH_NEXUS      NEXUS           1019
-+desman          MACH_DESMAN     DESMAN          1020
-+bkde303         MACH_BKDE303        BKDE303         1021
-+smdk2413        MACH_SMDK2413       SMDK2413        1022
-+aml_m7200       MACH_AML_M7200      AML_M7200       1023
-+aml_m5900       MACH_AML_M5900      AML_M5900       1024
-+sg640           MACH_SG640      SG640           1025
-+edg79524        MACH_EDG79524       EDG79524        1026
-+ai2410          MACH_AI2410     AI2410          1027
-+ixp465          MACH_IXP465     IXP465          1028
-+balloon3        MACH_BALLOON3       BALLOON3        1029
-+heins           MACH_HEINS      HEINS           1030
-+mpluseva        MACH_MPLUSEVA       MPLUSEVA        1031
-+rt042           MACH_RT042      RT042           1032
-+cwiem           MACH_CWIEM      CWIEM           1033
-+cm_x270         MACH_CM_X270        CM_X270         1034
-+cm_x255         MACH_CM_X255        CM_X255         1035
-+esh_at91        MACH_ESH_AT91       ESH_AT91        1036
-+sandgate3       MACH_SANDGATE3      SANDGATE3       1037
-+primo           MACH_PRIMO      PRIMO           1038
-+gemstone        MACH_GEMSTONE       GEMSTONE        1039
-+pronghorn_metro     MACH_PRONGHORNMETRO PRONGHORNMETRO      1040
-+sidewinder      MACH_SIDEWINDER     SIDEWINDER      1041
-+picomod1        MACH_PICOMOD1       PICOMOD1        1042
-+sg590           MACH_SG590      SG590           1043
-+akai9307        MACH_AKAI9307       AKAI9307        1044
-+fontaine        MACH_FONTAINE       FONTAINE        1045
-+wombat          MACH_WOMBAT     WOMBAT          1046
-+acq300          MACH_ACQ300     ACQ300          1047
-+mod272          MACH_MOD_270        MOD_270         1048
-+vmc_vc0820      MACH_VC0820     VC0820          1049
-+ani_aim         MACH_ANI_AIM        ANI_AIM         1050
-+jellyfish       MACH_JELLYFISH      JELLYFISH       1051
-+amanita         MACH_AMANITA        AMANITA         1052
-+vlink           MACH_VLINK      VLINK           1053
-+dexflex         MACH_DEXFLEX        DEXFLEX         1054
-+eigen_ttq       MACH_EIGEN_TTQ      EIGEN_TTQ       1055
-+arcom_titan     MACH_ARCOM_TITAN    ARCOM_TITAN     1056
-+tabla           MACH_TABLA      TABLA           1057
-+mdirac3         MACH_MDIRAC3        MDIRAC3         1058
-+mrhfbp2         MACH_MRHFBP2        MRHFBP2         1059
-+at91rm9200rb        MACH_AT91RM9200RB   AT91RM9200RB        1060
-+ani_apm         MACH_ANI_APM        ANI_APM         1061
-+ella1           MACH_ELLA1      ELLA1           1062
-+inhand_pxa27x       MACH_INHAND_PXA27X  INHAND_PXA27X       1063
-+inhand_pxa25x       MACH_INHAND_PXA25X  INHAND_PXA25X       1064
-+empos_xm        MACH_EMPOS_XM       EMPOS_XM        1065
-+empos           MACH_EMPOS      EMPOS           1066
-+empos_tiny      MACH_EMPOS_TINY     EMPOS_TINY      1067
-+empos_sm        MACH_EMPOS_SM       EMPOS_SM        1068
-+egret           MACH_EGRET      EGRET           1069
-+ostrich         MACH_OSTRICH        OSTRICH         1070
-+n50         MACH_N50        N50         1071
-+ecbat91         MACH_ECBAT91        ECBAT91         1072
-+stareast        MACH_STAREAST       STAREAST        1073
-+dspg_dw         MACH_DSPG_DW        DSPG_DW         1074
-+onearm          MACH_ONEARM     ONEARM          1075
-+mrg110_6        MACH_MRG110_6       MRG110_6        1076
-+wrt300nv2       MACH_WRT300NV2      WRT300NV2       1077
-+xm_bulverde     MACH_XM_BULVERDE    XM_BULVERDE     1078
-+msm6100         MACH_MSM6100        MSM6100         1079
-+eti_b1          MACH_ETI_B1     ETI_B1          1080
-+za9l_series     MACH_ZILOG_ZA9L     ZILOG_ZA9L      1081
-+bit2440         MACH_BIT2440        BIT2440         1082
-+nbi         MACH_NBI        NBI         1083
-+smdk2443        MACH_SMDK2443       SMDK2443        1084
-+vdavinci        MACH_VDAVINCI       VDAVINCI        1085
-+atc6            MACH_ATC6       ATC6            1086
-+multmdw         MACH_MULTMDW        MULTMDW         1087
-+mba2440         MACH_MBA2440        MBA2440         1088
-+ecsd            MACH_ECSD       ECSD            1089
-+palmz31         MACH_PALMZ31        PALMZ31         1090
-+fsg         MACH_FSG        FSG         1091
-+razor101        MACH_RAZOR101       RAZOR101        1092
-+opera_tdm       MACH_OPERA_TDM      OPERA_TDM       1093
-+comcerto        MACH_COMCERTO       COMCERTO        1094
-+tb0319          MACH_TB0319     TB0319          1095
-+kws8000         MACH_KWS8000        KWS8000         1096
-+b2          MACH_B2         B2          1097
-+lcl54           MACH_LCL54      LCL54           1098
-+at91sam9260ek       MACH_AT91SAM9260EK  AT91SAM9260EK       1099
-+glantank        MACH_GLANTANK       GLANTANK        1100
-+n2100           MACH_N2100      N2100           1101
-+n4100           MACH_N4100      N4100           1102
-+rsc4            MACH_VERTICAL_RSC4  VERTICAL_RSC4       1103
-+sg8100          MACH_SG8100     SG8100          1104
-+im42xx          MACH_IM42XX     IM42XX          1105
-+ftxx            MACH_FTXX       FTXX            1106
-+lwfusion        MACH_LWFUSION       LWFUSION        1107
-+qt2410          MACH_QT2410     QT2410          1108
-+kixrp435        MACH_KIXRP435       KIXRP435        1109
-+ccw9c           MACH_CCW9C      CCW9C           1110
-+dabhs           MACH_DABHS      DABHS           1111
-+gzmx            MACH_GZMX       GZMX            1112
-+ipnw100ap       MACH_IPNW100AP      IPNW100AP       1113
-+cc9p9360dev     MACH_CC9P9360DEV    CC9P9360DEV     1114
-+cc9p9750dev     MACH_CC9P9750DEV    CC9P9750DEV     1115
-+cc9p9360val     MACH_CC9P9360VAL    CC9P9360VAL     1116
-+cc9p9750val     MACH_CC9P9750VAL    CC9P9750VAL     1117
-+nx70v           MACH_NX70V      NX70V           1118
-+at91rm9200df        MACH_AT91RM9200DF   AT91RM9200DF        1119
-+se_pilot2       MACH_SE_PILOT2      SE_PILOT2       1120
-+mtcn_t800       MACH_MTCN_T800      MTCN_T800       1121
-+vcmx212         MACH_VCMX212        VCMX212         1122
-+lynx            MACH_LYNX       LYNX            1123
-+at91sam9260id       MACH_AT91SAM9260ID  AT91SAM9260ID       1124
-+hw86052         MACH_HW86052        HW86052         1125
-+pilz_pmi3       MACH_PILZ_PMI3      PILZ_PMI3       1126
-+edb9302a        MACH_EDB9302A       EDB9302A        1127
-+edb9307a        MACH_EDB9307A       EDB9307A        1128
-+ct_dfs          MACH_CT_DFS     CT_DFS          1129
-+pilz_pmi4       MACH_PILZ_PMI4      PILZ_PMI4       1130
-+xceednp_ixp     MACH_XCEEDNP_IXP    XCEEDNP_IXP     1131
-+smdk2442b       MACH_SMDK2442B      SMDK2442B       1132
-+xnode           MACH_XNODE      XNODE           1133
-+aidx270         MACH_AIDX270        AIDX270         1134
-+rema            MACH_REMA       REMA            1135
-+bps1000         MACH_BPS1000        BPS1000         1136
-+hw90350         MACH_HW90350        HW90350         1137
-+omap_3430sdp        MACH_OMAP_3430SDP   OMAP_3430SDP        1138
-+bluetouch       MACH_BLUETOUCH      BLUETOUCH       1139
-+vstms           MACH_VSTMS      VSTMS           1140
-+xsbase270       MACH_XSBASE270      XSBASE270       1141
-+at91sam9260ek_cn    MACH_AT91SAM9260EK_CN   AT91SAM9260EK_CN    1142
-+adsturboxb      MACH_ADSTURBOXB     ADSTURBOXB      1143
-+oti4110         MACH_OTI4110        OTI4110         1144
-+hme_pxa         MACH_HME_PXA        HME_PXA         1145
-+deisterdca      MACH_DEISTERDCA     DEISTERDCA      1146
-+ces_ssem2       MACH_CES_SSEM2      CES_SSEM2       1147
-+ces_mtr         MACH_CES_MTR        CES_MTR         1148
-+tds_avng_sbc        MACH_TDS_AVNG_SBC   TDS_AVNG_SBC        1149
-+everest         MACH_EVEREST        EVEREST         1150
-+pnx4010         MACH_PNX4010        PNX4010         1151
-+oxnas           MACH_OXNAS      OXNAS           1152
-+fiori           MACH_FIORI      FIORI           1153
-+ml1200          MACH_ML1200     ML1200          1154
-+pecos           MACH_PECOS      PECOS           1155
-+nb2xxx          MACH_NB2XXX     NB2XXX          1156
-+hw6900          MACH_HW6900     HW6900          1157
-+cdcs_quoll      MACH_CDCS_QUOLL     CDCS_QUOLL      1158
-+quicksilver     MACH_QUICKSILVER    QUICKSILVER     1159
-+uplat926        MACH_UPLAT926       UPLAT926        1160
-+dep2410_dep2410     MACH_DEP2410_THOMAS DEP2410_THOMAS      1161
-+dtk2410         MACH_DTK2410        DTK2410         1162
-+chili           MACH_CHILI      CHILI           1163
-+demeter         MACH_DEMETER        DEMETER         1164
-+dionysus        MACH_DIONYSUS       DIONYSUS        1165
-+as352x          MACH_AS352X     AS352X          1166
-+service         MACH_SERVICE        SERVICE         1167
-+cs_e9301        MACH_CS_E9301       CS_E9301        1168
-+micro9m         MACH_MICRO9M        MICRO9M         1169
-+ia_mospck       MACH_IA_MOSPCK      IA_MOSPCK       1170
-+ql201b          MACH_QL201B     QL201B          1171
-+bbm         MACH_BBM        BBM         1174
-+exxx            MACH_EXXX       EXXX            1175
-+wma11b          MACH_WMA11B     WMA11B          1176
-+pelco_atlas     MACH_PELCO_ATLAS    PELCO_ATLAS     1177
-+g500            MACH_G500       G500            1178
-+bug         MACH_BUG        BUG         1179
-+mx33ads         MACH_MX33ADS        MX33ADS         1180
-+chub            MACH_CHUB       CHUB            1181
-+neo1973_gta01       MACH_NEO1973_GTA01  NEO1973_GTA01       1182
-+w90n740         MACH_W90N740        W90N740         1183
-+medallion_sa2410    MACH_MEDALLION_SA2410   MEDALLION_SA2410    1184
-+ia_cpu_9200_2       MACH_IA_CPU_9200_2  IA_CPU_9200_2       1185
-+dimmrm9200      MACH_DIMMRM9200     DIMMRM9200      1186
-+pm9261          MACH_PM9261     PM9261          1187
-+ml7304          MACH_ML7304     ML7304          1189
-+ucp250          MACH_UCP250     UCP250          1190
-+intboard        MACH_INTBOARD       INTBOARD        1191
-+gulfstream      MACH_GULFSTREAM     GULFSTREAM      1192
-+labquest        MACH_LABQUEST       LABQUEST        1193
-+vcmx313         MACH_VCMX313        VCMX313         1194
-+urg200          MACH_URG200     URG200          1195
-+cpux255lcdnet       MACH_CPUX255LCDNET  CPUX255LCDNET       1196
-+netdcu9         MACH_NETDCU9        NETDCU9         1197
-+netdcu10        MACH_NETDCU10       NETDCU10        1198
-+dspg_dga        MACH_DSPG_DGA       DSPG_DGA        1199
-+dspg_dvw        MACH_DSPG_DVW       DSPG_DVW        1200
-+solos           MACH_SOLOS      SOLOS           1201
-+at91sam9263ek       MACH_AT91SAM9263EK  AT91SAM9263EK       1202
-+osstbox         MACH_OSSTBOX        OSSTBOX         1203
-+kbat9261        MACH_KBAT9261       KBAT9261        1204
-+ct1100          MACH_CT1100     CT1100          1205
-+akcppxa         MACH_AKCPPXA        AKCPPXA         1206
-+ochaya1020      MACH_OCHAYA1020     OCHAYA1020      1207
-+hitrack         MACH_HITRACK        HITRACK         1208
-+syme1           MACH_SYME1      SYME1           1209
-+syhl1           MACH_SYHL1      SYHL1           1210
-+empca400        MACH_EMPCA400       EMPCA400        1211
-+em7210          MACH_EM7210     EM7210          1212
-+htchermes       MACH_HTCHERMES      HTCHERMES       1213
-+eti_c1          MACH_ETI_C1     ETI_C1          1214
-+ac100           MACH_AC100      AC100           1216
-+sneetch         MACH_SNEETCH        SNEETCH         1217
-+studentmate     MACH_STUDENTMATE    STUDENTMATE     1218
-+zir2410         MACH_ZIR2410        ZIR2410         1219
-+zir2413         MACH_ZIR2413        ZIR2413         1220
-+dlonip3         MACH_DLONIP3        DLONIP3         1221
-+instream        MACH_INSTREAM       INSTREAM        1222
-+ambarella       MACH_AMBARELLA      AMBARELLA       1223
-+nevis           MACH_NEVIS      NEVIS           1224
-+htc_trinity     MACH_HTC_TRINITY    HTC_TRINITY     1225
-+ql202b          MACH_QL202B     QL202B          1226
-+vpac270         MACH_VPAC270        VPAC270         1227
-+rd129           MACH_RD129      RD129           1228
-+htcwizard       MACH_HTCWIZARD      HTCWIZARD       1229
-+treo680         MACH_TREO680        TREO680         1230
-+tecon_tmezon        MACH_TECON_TMEZON   TECON_TMEZON        1231
-+zylonite        MACH_ZYLONITE       ZYLONITE        1233
-+gene1270        MACH_GENE1270       GENE1270        1234
-+zir2412         MACH_ZIR2412        ZIR2412         1235
-+mx31lite        MACH_MX31LITE       MX31LITE        1236
-+t700wx          MACH_T700WX     T700WX          1237
-+vf100           MACH_VF100      VF100           1238
-+nsb2            MACH_NSB2       NSB2            1239
-+nxhmi_bb        MACH_NXHMI_BB       NXHMI_BB        1240
-+nxhmi_re        MACH_NXHMI_RE       NXHMI_RE        1241
-+n4100pro        MACH_N4100PRO       N4100PRO        1242
-+sam9260         MACH_SAM9260        SAM9260         1243
-+omap_treo600        MACH_OMAP_TREO600   OMAP_TREO600        1244
-+indy2410        MACH_INDY2410       INDY2410        1245
-+nelt_a          MACH_NELT_A     NELT_A          1246
-+n311            MACH_N311       N311            1248
-+at91sam9260vgk      MACH_AT91SAM9260VGK AT91SAM9260VGK      1249
-+at91leppe       MACH_AT91LEPPE      AT91LEPPE       1250
-+at91lepccn      MACH_AT91LEPCCN     AT91LEPCCN      1251
-+apc7100         MACH_APC7100        APC7100         1252
-+stargazer       MACH_STARGAZER      STARGAZER       1253
-+sonata          MACH_SONATA     SONATA          1254
-+schmoogie       MACH_SCHMOOGIE      SCHMOOGIE       1255
-+aztool          MACH_AZTOOL     AZTOOL          1256
-+mioa701         MACH_MIOA701        MIOA701         1257
-+sxni9260        MACH_SXNI9260       SXNI9260        1258
-+mxc27520evb     MACH_MXC27520EVB    MXC27520EVB     1259
-+armadillo5x0        MACH_ARMADILLO5X0   ARMADILLO5X0        1260
-+mb9260          MACH_MB9260     MB9260          1261
-+mb9263          MACH_MB9263     MB9263          1262
-+ipac9302        MACH_IPAC9302       IPAC9302        1263
-+cc9p9360js      MACH_CC9P9360JS     CC9P9360JS      1264
-+gallium         MACH_GALLIUM        GALLIUM         1265
-+msc2410         MACH_MSC2410        MSC2410         1266
-+ghi270          MACH_GHI270     GHI270          1267
-+davinci_leonardo    MACH_DAVINCI_LEONARDO   DAVINCI_LEONARDO    1268
-+oiab            MACH_OIAB       OIAB            1269
-+smdk6400        MACH_SMDK6400       SMDK6400        1270
-+nokia_n800      MACH_NOKIA_N800     NOKIA_N800      1271
-+greenphone      MACH_GREENPHONE     GREENPHONE      1272
-+compex42x       MACH_COMPEXWP18     COMPEXWP18      1273
-+xmate           MACH_XMATE      XMATE           1274
-+energizer       MACH_ENERGIZER      ENERGIZER       1275
-+ime1            MACH_IME1       IME1            1276
-+sweda_tms       MACH_SWEDATMS       SWEDATMS        1277
-+ntnp435c        MACH_NTNP435C       NTNP435C        1278
-+spectro2        MACH_SPECTRO2       SPECTRO2        1279
-+h6039           MACH_H6039      H6039           1280
-+ep80219         MACH_EP80219        EP80219         1281
-+samoa_ii        MACH_SAMOA_II       SAMOA_II        1282
-+cwmxl           MACH_CWMXL      CWMXL           1283
-+as9200          MACH_AS9200     AS9200          1284
-+sfx1149         MACH_SFX1149        SFX1149         1285
-+navi010         MACH_NAVI010        NAVI010         1286
-+multmdp         MACH_MULTMDP        MULTMDP         1287
-+scb9520         MACH_SCB9520        SCB9520         1288
-+htcathena       MACH_HTCATHENA      HTCATHENA       1289
-+xp179           MACH_XP179      XP179           1290
-+h4300           MACH_H4300      H4300           1291
-+goramo_mlr      MACH_GORAMO_MLR     GORAMO_MLR      1292
-+mxc30020evb     MACH_MXC30020EVB    MXC30020EVB     1293
-+adsbitsyg5      MACH_ADSBITSYG5     ADSBITSYG5      1294
-+adsportalplus       MACH_ADSPORTALPLUS  ADSPORTALPLUS       1295
-+mmsp2plus       MACH_MMSP2PLUS      MMSP2PLUS       1296
-+em_x270         MACH_EM_X270        EM_X270         1297
-+tpp302          MACH_TPP302     TPP302          1298
-+tpp104          MACH_TPM104     TPM104          1299
-+tpm102          MACH_TPM102     TPM102          1300
-+tpm109          MACH_TPM109     TPM109          1301
-+fbxo1           MACH_FBXO1      FBXO1           1302
-+hxd8            MACH_HXD8       HXD8            1303
-+neo1973_gta02       MACH_NEO1973_GTA02  NEO1973_GTA02       1304
-+emtest          MACH_EMTEST     EMTEST          1305
-+ad6900          MACH_AD6900     AD6900          1306
-+europa          MACH_EUROPA     EUROPA          1307
-+metroconnect        MACH_METROCONNECT   METROCONNECT        1308
-+ez_s2410        MACH_EZ_S2410       EZ_S2410        1309
-+ez_s2440        MACH_EZ_S2440       EZ_S2440        1310
-+ez_ep9312       MACH_EZ_EP9312      EZ_EP9312       1311
-+ez_ep9315       MACH_EZ_EP9315      EZ_EP9315       1312
-+ez_x7           MACH_EZ_X7      EZ_X7           1313
-+godotdb         MACH_GODOTDB        GODOTDB         1314
-+mistral         MACH_MISTRAL        MISTRAL         1315
-+msm         MACH_MSM        MSM         1316
-+ct5910          MACH_CT5910     CT5910          1317
-+ct5912          MACH_CT5912     CT5912          1318
-+hynet_ine       MACH_HYNET_INE      HYNET_INE       1319
-+hynet_app       MACH_HYNET_APP      HYNET_APP       1320
-+msm7200         MACH_MSM7200        MSM7200         1321
-+msm7600         MACH_MSM7600        MSM7600         1322
-+ceb255          MACH_CEB255     CEB255          1323
-+ciel            MACH_CIEL       CIEL            1324
-+slm5650         MACH_SLM5650        SLM5650         1325
-+at91sam9rlek        MACH_AT91SAM9RLEK   AT91SAM9RLEK        1326
-+comtech_router      MACH_COMTECH_ROUTER COMTECH_ROUTER      1327
-+sbc2410x        MACH_SBC2410X       SBC2410X        1328
-+at4x0bd         MACH_AT4X0BD        AT4X0BD         1329
-+cbifr           MACH_CBIFR      CBIFR           1330
-+arcom_quantum       MACH_ARCOM_QUANTUM  ARCOM_QUANTUM       1331
-+matrix520       MACH_MATRIX520      MATRIX520       1332
-+matrix510       MACH_MATRIX510      MATRIX510       1333
-+matrix500       MACH_MATRIX500      MATRIX500       1334
-+m501            MACH_M501       M501            1335
-+aaeon1270       MACH_AAEON1270      AAEON1270       1336
-+matrix500ev     MACH_MATRIX500EV    MATRIX500EV     1337
-+pac500          MACH_PAC500     PAC500          1338
-+pnx8181         MACH_PNX8181        PNX8181         1339
-+colibri320      MACH_COLIBRI320     COLIBRI320      1340
-+aztoolbb        MACH_AZTOOLBB       AZTOOLBB        1341
-+aztoolg2        MACH_AZTOOLG2       AZTOOLG2        1342
-+dvlhost         MACH_DVLHOST        DVLHOST         1343
-+zir9200         MACH_ZIR9200        ZIR9200         1344
-+zir9260         MACH_ZIR9260        ZIR9260         1345
-+cocopah         MACH_COCOPAH        COCOPAH         1346
-+nds         MACH_NDS        NDS         1347
-+rosencrantz     MACH_ROSENCRANTZ    ROSENCRANTZ     1348
-+fttx_odsc       MACH_FTTX_ODSC      FTTX_ODSC       1349
-+classe_r6904        MACH_CLASSE_R6904   CLASSE_R6904        1350
-+cam60           MACH_CAM60      CAM60           1351
-+mxc30031ads     MACH_MXC30031ADS    MXC30031ADS     1352
-+datacall        MACH_DATACALL       DATACALL        1353
-+at91eb01        MACH_AT91EB01       AT91EB01        1354
-+rty         MACH_RTY        RTY         1355
-+dwl2100         MACH_DWL2100        DWL2100         1356
-+vinsi           MACH_VINSI      VINSI           1357
-+db88f5281       MACH_DB88F5281      DB88F5281       1358
-+csb726          MACH_CSB726     CSB726          1359
-+tik27           MACH_TIK27      TIK27           1360
-+mx_uc7420       MACH_MX_UC7420      MX_UC7420       1361
-+rirm3           MACH_RIRM3      RIRM3           1362
-+pelco_odyssey       MACH_PELCO_ODYSSEY  PELCO_ODYSSEY       1363
-+adx_abox        MACH_ADX_ABOX       ADX_ABOX        1365
-+adx_tpid        MACH_ADX_TPID       ADX_TPID        1366
-+minicheck       MACH_MINICHECK      MINICHECK       1367
-+idam            MACH_IDAM       IDAM            1368
-+mario_mx        MACH_MARIO_MX       MARIO_MX        1369
-+vi1888          MACH_VI1888     VI1888          1370
-+zr4230          MACH_ZR4230     ZR4230          1371
-+t1_ix_blue      MACH_T1_IX_BLUE     T1_IX_BLUE      1372
-+syhq2           MACH_SYHQ2      SYHQ2           1373
-+computime_r3        MACH_COMPUTIME_R3   COMPUTIME_R3        1374
-+oratis          MACH_ORATIS     ORATIS          1375
-+mikko           MACH_MIKKO      MIKKO           1376
-+holon           MACH_HOLON      HOLON           1377
-+olip8           MACH_OLIP8      OLIP8           1378
-+ghi270hg        MACH_GHI270HG       GHI270HG        1379
-+davinci_dm6467_evm  MACH_DAVINCI_DM6467_EVM DAVINCI_DM6467_EVM  1380
-+davinci_dm355_evm   MACH_DAVINCI_DM355_EVM  DAVINCI_DM355_EVM   1381
-+blackriver      MACH_BLACKRIVER     BLACKRIVER      1383
-+sandgate_wp     MACH_SANDGATEWP     SANDGATEWP      1384
-+cdotbwsg        MACH_CDOTBWSG       CDOTBWSG        1385
-+quark963        MACH_QUARK963       QUARK963        1386
-+csb735          MACH_CSB735     CSB735          1387
-+littleton       MACH_LITTLETON      LITTLETON       1388
-+mio_p550        MACH_MIO_P550       MIO_P550        1389
-+motion2440      MACH_MOTION2440     MOTION2440      1390
-+imm500          MACH_IMM500     IMM500          1391
-+homematic       MACH_HOMEMATIC      HOMEMATIC       1392
-+ermine          MACH_ERMINE     ERMINE          1393
-+kb9202b         MACH_KB9202B        KB9202B         1394
-+hs1xx           MACH_HS1XX      HS1XX           1395
-+studentmate2440     MACH_STUDENTMATE2440    STUDENTMATE2440     1396
-+arvoo_l1_z1     MACH_ARVOO_L1_Z1    ARVOO_L1_Z1     1397
-+dep2410k        MACH_DEP2410K       DEP2410K        1398
-+xxsvideo        MACH_XXSVIDEO       XXSVIDEO        1399
-+im4004          MACH_IM4004     IM4004          1400
-+ochaya1050      MACH_OCHAYA1050     OCHAYA1050      1401
-+lep9261         MACH_LEP9261        LEP9261         1402
-+svenmeb         MACH_SVENMEB        SVENMEB         1403
-+fortunet2ne     MACH_FORTUNET2NE    FORTUNET2NE     1404
-+nxhx            MACH_NXHX       NXHX            1406
-+realview_pb11mp     MACH_REALVIEW_PB11MP    REALVIEW_PB11MP     1407
-+ids500          MACH_IDS500     IDS500          1408
-+ors_n725        MACH_ORS_N725       ORS_N725        1409
-+hsdarm          MACH_HSDARM     HSDARM          1410
-+sha_pon003      MACH_SHA_PON003     SHA_PON003      1411
-+sha_pon004      MACH_SHA_PON004     SHA_PON004      1412
-+sha_pon007      MACH_SHA_PON007     SHA_PON007      1413
-+sha_pon011      MACH_SHA_PON011     SHA_PON011      1414
-+h6042           MACH_H6042      H6042           1415
-+h6043           MACH_H6043      H6043           1416
-+looxc550        MACH_LOOXC550       LOOXC550        1417
-+cnty_titan      MACH_CNTY_TITAN     CNTY_TITAN      1418
-+app3xx          MACH_APP3XX     APP3XX          1419
-+sideoatsgrama       MACH_SIDEOATSGRAMA  SIDEOATSGRAMA       1420
-+treo700p        MACH_TREO700P       TREO700P        1421
-+treo700w        MACH_TREO700W       TREO700W        1422
-+treo750         MACH_TREO750        TREO750         1423
-+treo755p        MACH_TREO755P       TREO755P        1424
-+ezreganut9200       MACH_EZREGANUT9200  EZREGANUT9200       1425
-+sarge           MACH_SARGE      SARGE           1426
-+a696            MACH_A696       A696            1427
-+turtle1916      MACH_TURTLE     TURTLE          1428
-+mx27_3ds        MACH_MX27_3DS       MX27_3DS        1430
-+bishop          MACH_BISHOP     BISHOP          1431
-+pxx         MACH_PXX        PXX         1432
-+redwood         MACH_REDWOOD        REDWOOD         1433
-+omap_2430dlp        MACH_OMAP_2430DLP   OMAP_2430DLP        1436
-+omap_2430osk        MACH_OMAP_2430OSK   OMAP_2430OSK        1437
-+sardine         MACH_SARDINE        SARDINE         1438
-+halibut         MACH_HALIBUT        HALIBUT         1439
-+trout           MACH_TROUT      TROUT           1440
-+goldfish        MACH_GOLDFISH       GOLDFISH        1441
-+gesbc2440       MACH_GESBC2440      GESBC2440       1442
-+nomad           MACH_NOMAD      NOMAD           1443
-+rosalind        MACH_ROSALIND       ROSALIND        1444
-+cc9p9215        MACH_CC9P9215       CC9P9215        1445
-+cc9p9210        MACH_CC9P9210       CC9P9210        1446
-+cc9p9215js      MACH_CC9P9215JS     CC9P9215JS      1447
-+cc9p9210js      MACH_CC9P9210JS     CC9P9210JS      1448
-+nasffe          MACH_NASFFE     NASFFE          1449
-+tn2x0bd         MACH_TN2X0BD        TN2X0BD         1450
-+gwmpxa          MACH_GWMPXA     GWMPXA          1451
-+exyplus         MACH_EXYPLUS        EXYPLUS         1452
-+jadoo21         MACH_JADOO21        JADOO21         1453
-+looxn560        MACH_LOOXN560       LOOXN560        1454
-+bonsai          MACH_BONSAI     BONSAI          1455
-+adsmilgato      MACH_ADSMILGATO     ADSMILGATO      1456
-+gba         MACH_GBA        GBA         1457
-+h6044           MACH_H6044      H6044           1458
-+app         MACH_APP        APP         1459
-+tct_hammer      MACH_TCT_HAMMER     TCT_HAMMER      1460
-+herald          MACH_HERALD     HERALD          1461
-+artemis         MACH_ARTEMIS        ARTEMIS         1462
-+htctitan        MACH_HTCTITAN       HTCTITAN        1463
-+qranium         MACH_QRANIUM        QRANIUM         1464
-+adx_wsc2        MACH_ADX_WSC2       ADX_WSC2        1465
-+adx_medcom      MACH_ADX_MEDCOM     ADX_MEDCOM      1466
-+bboard          MACH_BBOARD     BBOARD          1467
-+cambria         MACH_CAMBRIA        CAMBRIA         1468
-+mt7xxx          MACH_MT7XXX     MT7XXX          1469
-+matrix512       MACH_MATRIX512      MATRIX512       1470
-+matrix522       MACH_MATRIX522      MATRIX522       1471
-+ipac5010        MACH_IPAC5010       IPAC5010        1472
-+sakura          MACH_SAKURA     SAKURA          1473
-+grocx           MACH_GROCX      GROCX           1474
-+pm9263          MACH_PM9263     PM9263          1475
-+sim_one         MACH_SIM_ONE        SIM_ONE         1476
-+acq132          MACH_ACQ132     ACQ132          1477
-+datr            MACH_DATR       DATR            1478
-+actux1          MACH_ACTUX1     ACTUX1          1479
-+actux2          MACH_ACTUX2     ACTUX2          1480
-+actux3          MACH_ACTUX3     ACTUX3          1481
-+flexit          MACH_FLEXIT     FLEXIT          1482
-+bh2x0bd         MACH_BH2X0BD        BH2X0BD         1483
-+atb2002         MACH_ATB2002        ATB2002         1484
-+xenon           MACH_XENON      XENON           1485
-+fm607           MACH_FM607      FM607           1486
-+matrix514       MACH_MATRIX514      MATRIX514       1487
-+matrix524       MACH_MATRIX524      MATRIX524       1488
-+inpod           MACH_INPOD      INPOD           1489
-+jive            MACH_JIVE       JIVE            1490
-+tll_mx21        MACH_TLL_MX21       TLL_MX21        1491
-+sbc2800         MACH_SBC2800        SBC2800         1492
-+cc7ucamry       MACH_CC7UCAMRY      CC7UCAMRY       1493
-+ubisys_p9_sc15      MACH_UBISYS_P9_SC15 UBISYS_P9_SC15      1494
-+ubisys_p9_ssc2d10   MACH_UBISYS_P9_SSC2D10  UBISYS_P9_SSC2D10   1495
-+ubisys_p9_rcu3      MACH_UBISYS_P9_RCU3 UBISYS_P9_RCU3      1496
-+aml_m8000       MACH_AML_M8000      AML_M8000       1497
-+snapper_270     MACH_SNAPPER_270    SNAPPER_270     1498
-+omap_bbx        MACH_OMAP_BBX       OMAP_BBX        1499
-+ucn2410         MACH_UCN2410        UCN2410         1500
-+sam9_l9260      MACH_SAM9_L9260     SAM9_L9260      1501
-+eti_c2          MACH_ETI_C2     ETI_C2          1502
-+avalanche       MACH_AVALANCHE      AVALANCHE       1503
-+realview_pb1176     MACH_REALVIEW_PB1176    REALVIEW_PB1176     1504
-+dp1500          MACH_DP1500     DP1500          1505
-+apple_iphone        MACH_APPLE_IPHONE   APPLE_IPHONE        1506
-+yl9200          MACH_YL9200     YL9200          1507
-+rd88f5182       MACH_RD88F5182      RD88F5182       1508
-+kurobox_pro     MACH_KUROBOX_PRO    KUROBOX_PRO     1509
-+se_poet         MACH_SE_POET        SE_POET         1510
-+mx31_3ds        MACH_MX31_3DS       MX31_3DS        1511
-+r270            MACH_R270       R270            1512
-+armour21        MACH_ARMOUR21       ARMOUR21        1513
-+dt2         MACH_DT2        DT2         1514
-+vt4         MACH_VT4        VT4         1515
-+tyco320         MACH_TYCO320        TYCO320         1516
-+adma            MACH_ADMA       ADMA            1517
-+wp188           MACH_WP188      WP188           1518
-+corsica         MACH_CORSICA        CORSICA         1519
-+bigeye          MACH_BIGEYE     BIGEYE          1520
-+tll5000         MACH_TLL5000        TLL5000         1522
-+bebot           MACH_BEBOT      BEBOT           1523
-+qong            MACH_QONG       QONG            1524
-+tcompact        MACH_TCOMPACT       TCOMPACT        1525
-+puma5           MACH_PUMA5      PUMA5           1526
-+elara           MACH_ELARA      ELARA           1527
-+ellington       MACH_ELLINGTON      ELLINGTON       1528
-+xda_atom        MACH_XDA_ATOM       XDA_ATOM        1529
-+energizer2      MACH_ENERGIZER2     ENERGIZER2      1530
-+odin            MACH_ODIN       ODIN            1531
-+actux4          MACH_ACTUX4     ACTUX4          1532
-+esl_omap        MACH_ESL_OMAP       ESL_OMAP        1533
-+omap2evm        MACH_OMAP2EVM       OMAP2EVM        1534
-+omap3evm        MACH_OMAP3EVM       OMAP3EVM        1535
-+adx_pcu57       MACH_ADX_PCU57      ADX_PCU57       1536
-+monaco          MACH_MONACO     MONACO          1537
-+levante         MACH_LEVANTE        LEVANTE         1538
-+tmxipx425       MACH_TMXIPX425      TMXIPX425       1539
-+leep            MACH_LEEP       LEEP            1540
-+raad            MACH_RAAD       RAAD            1541
-+dns323          MACH_DNS323     DNS323          1542
-+ap1000          MACH_AP1000     AP1000          1543
-+a9sam6432       MACH_A9SAM6432      A9SAM6432       1544
-+shiny           MACH_SHINY      SHINY           1545
-+omap3_beagle        MACH_OMAP3_BEAGLE   OMAP3_BEAGLE        1546
-+csr_bdb2        MACH_CSR_BDB2       CSR_BDB2        1547
-+nokia_n810      MACH_NOKIA_N810     NOKIA_N810      1548
-+c270            MACH_C270       C270            1549
-+sentry          MACH_SENTRY     SENTRY          1550
-+pcm038          MACH_PCM038     PCM038          1551
-+anc300          MACH_ANC300     ANC300          1552
-+htckaiser       MACH_HTCKAISER      HTCKAISER       1553
-+sbat100         MACH_SBAT100        SBAT100         1554
-+modunorm        MACH_MODUNORM       MODUNORM        1555
-+pelos_twarm     MACH_PELOS_TWARM    PELOS_TWARM     1556
-+flank           MACH_FLANK      FLANK           1557
-+sirloin         MACH_SIRLOIN        SIRLOIN         1558
-+brisket         MACH_BRISKET        BRISKET         1559
-+chuck           MACH_CHUCK      CHUCK           1560
-+otter           MACH_OTTER      OTTER           1561
-+davinci_ldk     MACH_DAVINCI_LDK    DAVINCI_LDK     1562
-+phreedom        MACH_PHREEDOM       PHREEDOM        1563
-+sg310           MACH_SG310      SG310           1564
-+ts_x09          MACH_TS209      TS209           1565
-+at91cap9adk     MACH_AT91CAP9ADK    AT91CAP9ADK     1566
-+tion9315        MACH_TION9315       TION9315        1567
-+mast            MACH_MAST       MAST            1568
-+pfw         MACH_PFW        PFW         1569
-+yl_p2440        MACH_YL_P2440       YL_P2440        1570
-+zsbc32          MACH_ZSBC32     ZSBC32          1571
-+omap_pace2      MACH_OMAP_PACE2     OMAP_PACE2      1572
-+imx_pace2       MACH_IMX_PACE2      IMX_PACE2       1573
-+mx31moboard     MACH_MX31MOBOARD    MX31MOBOARD     1574
-+mx37_3ds        MACH_MX37_3DS       MX37_3DS        1575
-+rcc         MACH_RCC        RCC         1576
-+dmp         MACH_ARM9       ARM9            1577
-+vision_ep9307       MACH_VISION_EP9307  VISION_EP9307       1578
-+scly1000        MACH_SCLY1000       SCLY1000        1579
-+fontel_ep       MACH_FONTEL_EP      FONTEL_EP       1580
-+voiceblue3g     MACH_VOICEBLUE3G    VOICEBLUE3G     1581
-+tt9200          MACH_TT9200     TT9200          1582
-+digi2410        MACH_DIGI2410       DIGI2410        1583
-+terastation_pro2    MACH_TERASTATION_PRO2   TERASTATION_PRO2    1584
-+linkstation_pro     MACH_LINKSTATION_PRO    LINKSTATION_PRO     1585
-+motorola_a780       MACH_MOTOROLA_A780  MOTOROLA_A780       1587
-+motorola_e6     MACH_MOTOROLA_E6    MOTOROLA_E6     1588
-+motorola_e2     MACH_MOTOROLA_E2    MOTOROLA_E2     1589
-+motorola_e680       MACH_MOTOROLA_E680  MOTOROLA_E680       1590
-+ur2410          MACH_UR2410     UR2410          1591
-+tas9261         MACH_TAS9261        TAS9261         1592
-+davinci_hermes_hd   MACH_HERMES_HD      HERMES_HD       1593
-+davinci_perseo_hd   MACH_PERSEO_HD      PERSEO_HD       1594
-+stargazer2      MACH_STARGAZER2     STARGAZER2      1595
-+e350            MACH_E350       E350            1596
-+wpcm450         MACH_WPCM450        WPCM450         1597
-+cartesio        MACH_CARTESIO       CARTESIO        1598
-+toybox          MACH_TOYBOX     TOYBOX          1599
-+tx27            MACH_TX27       TX27            1600
-+ts409           MACH_TS409      TS409           1601
-+p300            MACH_P300       P300            1602
-+xdacomet        MACH_XDACOMET       XDACOMET        1603
-+dexflex2        MACH_DEXFLEX2       DEXFLEX2        1604
-+ow          MACH_OW         OW          1605
-+armebs3         MACH_ARMEBS3        ARMEBS3         1606
-+u3          MACH_U3         U3          1607
-+smdk2450        MACH_SMDK2450       SMDK2450        1608
-+rsi_ews         MACH_RSI_EWS        RSI_EWS         1609
-+tnb         MACH_TNB        TNB         1610
-+toepath         MACH_TOEPATH        TOEPATH         1611
-+kb9263          MACH_KB9263     KB9263          1612
-+mt7108          MACH_MT7108     MT7108          1613
-+smtr2440        MACH_SMTR2440       SMTR2440        1614
-+manao           MACH_MANAO      MANAO           1615
-+cm_x300         MACH_CM_X300        CM_X300         1616
-+gulfstream_kp       MACH_GULFSTREAM_KP  GULFSTREAM_KP       1617
-+lanreadyfn522       MACH_LANREADYFN522  LANREADYFN522       1618
-+arma37          MACH_ARMA37     ARMA37          1619
-+mendel          MACH_MENDEL     MENDEL          1620
-+pelco_iliad     MACH_PELCO_ILIAD    PELCO_ILIAD     1621
-+unit2p          MACH_UNIT2P     UNIT2P          1622
-+inc20otter      MACH_INC20OTTER     INC20OTTER      1623
-+at91sam9g20ek       MACH_AT91SAM9G20EK  AT91SAM9G20EK       1624
-+sc_ge2          MACH_STORCENTER     STORCENTER      1625
-+smdk6410        MACH_SMDK6410       SMDK6410        1626
-+u300            MACH_U300       U300            1627
-+u500            MACH_U500       U500            1628
-+ds9260          MACH_DS9260     DS9260          1629
-+riverrock       MACH_RIVERROCK      RIVERROCK       1630
-+scibath         MACH_SCIBATH        SCIBATH         1631
-+at91sam7se      MACH_AT91SAM7SE512EK    AT91SAM7SE512EK     1632
-+wrt350n_v2      MACH_WRT350N_V2     WRT350N_V2      1633
-+multimedia      MACH_MULTIMEDIA     MULTIMEDIA      1634
-+marvin          MACH_MARVIN     MARVIN          1635
-+x500            MACH_X500       X500            1636
-+awlug4lcu       MACH_AWLUG4LCU      AWLUG4LCU       1637
-+palermoc        MACH_PALERMOC       PALERMOC        1638
-+omap_ldp        MACH_OMAP_LDP       OMAP_LDP        1639
-+ip500           MACH_IP500      IP500           1640
-+ase2            MACH_ASE2       ASE2            1642
-+mx35evb         MACH_MX35EVB        MX35EVB         1643
-+aml_m8050       MACH_AML_M8050      AML_M8050       1644
-+mx35_3ds        MACH_MX35_3DS       MX35_3DS        1645
-+mars            MACH_MARS       MARS            1646
-+neuros_osd2     MACH_NEUROS_OSD2    NEUROS_OSD2     1647
-+badger          MACH_BADGER     BADGER          1648
-+trizeps4wl      MACH_TRIZEPS4WL     TRIZEPS4WL      1649
-+trizeps5        MACH_TRIZEPS5       TRIZEPS5        1650
-+marlin          MACH_MARLIN     MARLIN          1651
-+ts78xx          MACH_TS78XX     TS78XX          1652
-+hpipaq214       MACH_HPIPAQ214      HPIPAQ214       1653
-+at572d940dcm        MACH_AT572D940DCM   AT572D940DCM        1654
-+ne1board        MACH_NE1BOARD       NE1BOARD        1655
-+zante           MACH_ZANTE      ZANTE           1656
-+sffsdr          MACH_SFFSDR     SFFSDR          1657
-+tw2662          MACH_TW2662     TW2662          1658
-+vf10xx          MACH_VF10XX     VF10XX          1659
-+zoran43xx       MACH_ZORAN43XX      ZORAN43XX       1660
-+sonix926        MACH_SONIX926       SONIX926        1661
-+celestialsemi       MACH_CELESTIALSEMI  CELESTIALSEMI       1662
-+cc9m2443js      MACH_CC9M2443JS     CC9M2443JS      1663
-+tw5334          MACH_TW5334     TW5334          1664
-+omap_htcartemis     MACH_HTCARTEMIS     HTCARTEMIS      1665
-+nal_hlite       MACH_NAL_HLITE      NAL_HLITE       1666
-+htcvogue        MACH_HTCVOGUE       HTCVOGUE        1667
-+smartweb        MACH_SMARTWEB       SMARTWEB        1668
-+mv86xx          MACH_MV86XX     MV86XX          1669
-+mv87xx          MACH_MV87XX     MV87XX          1670
-+songyoungho     MACH_SONGYOUNGHO    SONGYOUNGHO     1671
-+younghotema     MACH_YOUNGHOTEMA    YOUNGHOTEMA     1672
-+pcm037          MACH_PCM037     PCM037          1673
-+mmvp            MACH_MMVP       MMVP            1674
-+mmap            MACH_MMAP       MMAP            1675
-+ptid2410        MACH_PTID2410       PTID2410        1676
-+james_926       MACH_JAMES_926      JAMES_926       1677
-+fm6000          MACH_FM6000     FM6000          1678
-+db88f6281_bp        MACH_DB88F6281_BP   DB88F6281_BP        1680
-+rd88f6192_nas       MACH_RD88F6192_NAS  RD88F6192_NAS       1681
-+rd88f6281       MACH_RD88F6281      RD88F6281       1682
-+db78x00_bp      MACH_DB78X00_BP     DB78X00_BP      1683
-+smdk2416        MACH_SMDK2416       SMDK2416        1685
-+oce_spider_si       MACH_OCE_SPIDER_SI  OCE_SPIDER_SI       1686
-+oce_spider_sk       MACH_OCE_SPIDER_SK  OCE_SPIDER_SK       1687
-+rovern6         MACH_ROVERN6        ROVERN6         1688
-+pelco_evolution     MACH_PELCO_EVOLUTION    PELCO_EVOLUTION     1689
-+wbd111          MACH_WBD111     WBD111          1690
-+elaracpe        MACH_ELARACPE       ELARACPE        1691
-+mabv3           MACH_MABV3      MABV3           1692
-+mv2120          MACH_MV2120     MV2120          1693
-+csb737          MACH_CSB737     CSB737          1695
-+mx51_3ds        MACH_MX51_3DS       MX51_3DS        1696
-+g900            MACH_G900       G900            1697
-+apf27           MACH_APF27      APF27           1698
-+ggus2000        MACH_GGUS2000       GGUS2000        1699
-+omap_2430_mimic     MACH_OMAP_2430_MIMIC    OMAP_2430_MIMIC     1700
-+imx27lite       MACH_IMX27LITE      IMX27LITE       1701
-+almex           MACH_ALMEX      ALMEX           1702
-+control         MACH_CONTROL        CONTROL         1703
-+mba2410         MACH_MBA2410        MBA2410         1704
-+volcano         MACH_VOLCANO        VOLCANO         1705
-+zenith          MACH_ZENITH     ZENITH          1706
-+muchip          MACH_MUCHIP     MUCHIP          1707
-+magellan        MACH_MAGELLAN       MAGELLAN        1708
-+usb_a9260       MACH_USB_A9260      USB_A9260       1709
-+usb_a9263       MACH_USB_A9263      USB_A9263       1710
-+qil_a9260       MACH_QIL_A9260      QIL_A9260       1711
-+cme9210         MACH_CME9210        CME9210         1712
-+hczh4           MACH_HCZH4      HCZH4           1713
-+spearbasic      MACH_SPEARBASIC     SPEARBASIC      1714
-+dep2440         MACH_DEP2440        DEP2440         1715
-+hdl_gxr         MACH_HDL_GXR        HDL_GXR         1716
-+hdl_gt          MACH_HDL_GT     HDL_GT          1717
-+hdl_4g          MACH_HDL_4G     HDL_4G          1718
-+s3c6000         MACH_S3C6000        S3C6000         1719
-+mmsp2_mdk       MACH_MMSP2_MDK      MMSP2_MDK       1720
-+mpx220          MACH_MPX220     MPX220          1721
-+kzm_arm11_01        MACH_KZM_ARM11_01   KZM_ARM11_01        1722
-+htc_polaris     MACH_HTC_POLARIS    HTC_POLARIS     1723
-+htc_kaiser      MACH_HTC_KAISER     HTC_KAISER      1724
-+lg_ks20         MACH_LG_KS20        LG_KS20         1725
-+hhgps           MACH_HHGPS      HHGPS           1726
-+nokia_n810_wimax    MACH_NOKIA_N810_WIMAX   NOKIA_N810_WIMAX    1727
-+insight         MACH_INSIGHT        INSIGHT         1728
-+sapphire        MACH_SAPPHIRE       SAPPHIRE        1729
-+csb637xo        MACH_CSB637XO       CSB637XO        1730
-+evisiong        MACH_EVISIONG       EVISIONG        1731
-+stmp37xx        MACH_STMP37XX       STMP37XX        1732
-+stmp378x        MACH_STMP378X       STMP378X        1733
-+tnt         MACH_TNT        TNT         1734
-+tbxt            MACH_TBXT       TBXT            1735
-+playmate        MACH_PLAYMATE       PLAYMATE        1736
-+pns10           MACH_PNS10      PNS10           1737
-+eznavi          MACH_EZNAVI     EZNAVI          1738
-+ps4000          MACH_PS4000     PS4000          1739
-+ezx_a780        MACH_EZX_A780       EZX_A780        1740
-+ezx_e680        MACH_EZX_E680       EZX_E680        1741
-+ezx_a1200       MACH_EZX_A1200      EZX_A1200       1742
-+ezx_e6          MACH_EZX_E6     EZX_E6          1743
-+ezx_e2          MACH_EZX_E2     EZX_E2          1744
-+ezx_a910        MACH_EZX_A910       EZX_A910        1745
-+cwmx31          MACH_CWMX31     CWMX31          1746
-+sl2312          MACH_SL2312     SL2312          1747
-+blenny          MACH_BLENNY     BLENNY          1748
-+ds107           MACH_DS107      DS107           1749
-+dsx07           MACH_DSX07      DSX07           1750
-+picocom1        MACH_PICOCOM1       PICOCOM1        1751
-+lynx_wolverine      MACH_LYNX_WOLVERINE LYNX_WOLVERINE      1752
-+ubisys_p9_sc19      MACH_UBISYS_P9_SC19 UBISYS_P9_SC19      1753
-+kratos_low      MACH_KRATOS_LOW     KRATOS_LOW      1754
-+m700            MACH_M700       M700            1755
-+edmini_v2       MACH_EDMINI_V2      EDMINI_V2       1756
-+zipit2          MACH_ZIPIT2     ZIPIT2          1757
-+hslfemtocell        MACH_HSLFEMTOCELL   HSLFEMTOCELL        1758
-+daintree_at91       MACH_DAINTREE_AT91  DAINTREE_AT91       1759
-+sg560usb        MACH_SG560USB       SG560USB        1760
-+omap3_pandora       MACH_OMAP3_PANDORA  OMAP3_PANDORA       1761
-+usr8200         MACH_USR8200        USR8200         1762
-+s1s65k          MACH_S1S65K     S1S65K          1763
-+s2s65a          MACH_S2S65A     S2S65A          1764
-+icore           MACH_ICORE      ICORE           1765
-+mss2            MACH_MSS2       MSS2            1766
-+belmont         MACH_BELMONT        BELMONT         1767
-+asusp525        MACH_ASUSP525       ASUSP525        1768
-+lb88rc8480      MACH_LB88RC8480     LB88RC8480      1769
-+hipxa           MACH_HIPXA      HIPXA           1770
-+mx25_3ds        MACH_MX25_3DS       MX25_3DS        1771
-+m800            MACH_M800       M800            1772
-+omap3530_lv_som     MACH_OMAP3530_LV_SOM    OMAP3530_LV_SOM     1773
-+prima_evb       MACH_PRIMA_EVB      PRIMA_EVB       1774
-+mx31bt1         MACH_MX31BT1        MX31BT1         1775
-+atlas4_evb      MACH_ATLAS4_EVB     ATLAS4_EVB      1776
-+mx31cicada      MACH_MX31CICADA     MX31CICADA      1777
-+mi424wr         MACH_MI424WR        MI424WR         1778
-+axs_ultrax      MACH_AXS_ULTRAX     AXS_ULTRAX      1779
-+at572d940deb        MACH_AT572D940DEB   AT572D940DEB        1780
-+davinci_da830_evm   MACH_DAVINCI_DA830_EVM  DAVINCI_DA830_EVM   1781
-+ep9302          MACH_EP9302     EP9302          1782
-+at572d940hfek       MACH_AT572D940HFEB  AT572D940HFEB       1783
-+cybook3         MACH_CYBOOK3        CYBOOK3         1784
-+wdg002          MACH_WDG002     WDG002          1785
-+sg560adsl       MACH_SG560ADSL      SG560ADSL       1786
-+nextio_n2800_ica    MACH_NEXTIO_N2800_ICA   NEXTIO_N2800_ICA    1787
-+dove_db         MACH_DOVE_DB        DOVE_DB         1788
-+marvell_newdb       MACH_MARVELL_NEWDB  MARVELL_NEWDB       1789
-+vandihud        MACH_VANDIHUD       VANDIHUD        1790
-+magx_e8         MACH_MAGX_E8        MAGX_E8         1791
-+magx_z6         MACH_MAGX_Z6        MAGX_Z6         1792
-+magx_v8         MACH_MAGX_V8        MAGX_V8         1793
-+magx_u9         MACH_MAGX_U9        MAGX_U9         1794
-+toughcf08       MACH_TOUGHCF08      TOUGHCF08       1795
-+zw4400          MACH_ZW4400     ZW4400          1796
-+marat91         MACH_MARAT91        MARAT91         1797
-+overo           MACH_OVERO      OVERO           1798
-+at2440evb       MACH_AT2440EVB      AT2440EVB       1799
-+neocore926      MACH_NEOCORE926     NEOCORE926      1800
-+wnr854t         MACH_WNR854T        WNR854T         1801
-+imx27           MACH_IMX27      IMX27           1802
-+moose_db        MACH_MOOSE_DB       MOOSE_DB        1803
-+fab4            MACH_FAB4       FAB4            1804
-+htcdiamond      MACH_HTCDIAMOND     HTCDIAMOND      1805
-+fiona           MACH_FIONA      FIONA           1806
-+mxc30030_x      MACH_MXC30030_X     MXC30030_X      1807
-+bmp1000         MACH_BMP1000        BMP1000         1808
-+logi9200        MACH_LOGI9200       LOGI9200        1809
-+tqma31          MACH_TQMA31     TQMA31          1810
-+ccw9p9215js     MACH_CCW9P9215JS    CCW9P9215JS     1811
-+rd88f5181l_ge       MACH_RD88F5181L_GE  RD88F5181L_GE       1812
-+sifmain         MACH_SIFMAIN        SIFMAIN         1813
-+sam9_l9261      MACH_SAM9_L9261     SAM9_L9261      1814
-+cc9m2443        MACH_CC9M2443       CC9M2443        1815
-+xaria300        MACH_XARIA300       XARIA300        1816
-+it9200          MACH_IT9200     IT9200          1817
-+rd88f5181l_fxo      MACH_RD88F5181L_FXO RD88F5181L_FXO      1818
-+kriss_sensor        MACH_KRISS_SENSOR   KRISS_SENSOR        1819
-+pilz_pmi5       MACH_PILZ_PMI5      PILZ_PMI5       1820
-+jade            MACH_JADE       JADE            1821
-+ks8695_softplc      MACH_KS8695_SOFTPLC KS8695_SOFTPLC      1822
-+gprisc3         MACH_GPRISC3        GPRISC3         1823
-+stamp9g20       MACH_STAMP9G20      STAMP9G20       1824
-+smdk6430        MACH_SMDK6430       SMDK6430        1825
-+smdkc100        MACH_SMDKC100       SMDKC100        1826
-+tavorevb        MACH_TAVOREVB       TAVOREVB        1827
-+saar            MACH_SAAR       SAAR            1828
-+deister_eyecam      MACH_DEISTER_EYECAM DEISTER_EYECAM      1829
-+at91sam9m10g45ek    MACH_AT91SAM9M10G45EK   AT91SAM9M10G45EK    1830
-+linkstation_produo  MACH_LINKSTATION_PRODUO LINKSTATION_PRODUO  1831
-+hit_b0          MACH_HIT_B0     HIT_B0          1832
-+adx_rmu         MACH_ADX_RMU        ADX_RMU         1833
-+xg_cpe_main     MACH_XG_CPE_MAIN    XG_CPE_MAIN     1834
-+edb9407a        MACH_EDB9407A       EDB9407A        1835
-+dtb9608         MACH_DTB9608        DTB9608         1836
-+em104v1         MACH_EM104V1        EM104V1         1837
-+demo            MACH_DEMO       DEMO            1838
-+logi9260        MACH_LOGI9260       LOGI9260        1839
-+mx31_exm32      MACH_MX31_EXM32     MX31_EXM32      1840
-+usb_a9g20       MACH_USB_A9G20      USB_A9G20       1841
-+picproje2008        MACH_PICPROJE2008   PICPROJE2008        1842
-+cs_e9315        MACH_CS_E9315       CS_E9315        1843
-+qil_a9g20       MACH_QIL_A9G20      QIL_A9G20       1844
-+sha_pon020      MACH_SHA_PON020     SHA_PON020      1845
-+nad         MACH_NAD        NAD         1846
-+sbc35_a9260     MACH_SBC35_A9260    SBC35_A9260     1847
-+sbc35_a9g20     MACH_SBC35_A9G20    SBC35_A9G20     1848
-+davinci_beginning   MACH_DAVINCI_BEGINNING  DAVINCI_BEGINNING   1849
-+uwc         MACH_UWC        UWC         1850
-+mxlads          MACH_MXLADS     MXLADS          1851
-+htcnike         MACH_HTCNIKE        HTCNIKE         1852
-+deister_pxa270      MACH_DEISTER_PXA270 DEISTER_PXA270      1853
-+cme9210js       MACH_CME9210JS      CME9210JS       1854
-+cc9p9360        MACH_CC9P9360       CC9P9360        1855
-+mocha           MACH_MOCHA      MOCHA           1856
-+wapd170ag       MACH_WAPD170AG      WAPD170AG       1857
-+linkstation_mini    MACH_LINKSTATION_MINI   LINKSTATION_MINI    1858
-+afeb9260        MACH_AFEB9260       AFEB9260        1859
-+w90x900         MACH_W90X900        W90X900         1860
-+w90x700         MACH_W90X700        W90X700         1861
-+kt300ip         MACH_KT300IP        KT300IP         1862
-+kt300ip_g20     MACH_KT300IP_G20    KT300IP_G20     1863
-+srcm            MACH_SRCM       SRCM            1864
-+wlnx_9260       MACH_WLNX_9260      WLNX_9260       1865
-+openmoko_gta03      MACH_OPENMOKO_GTA03 OPENMOKO_GTA03      1866
-+osprey2         MACH_OSPREY2        OSPREY2         1867
-+kbio9260        MACH_KBIO9260       KBIO9260        1868
-+ginza           MACH_GINZA      GINZA           1869
-+a636n           MACH_A636N      A636N           1870
-+imx27ipcam      MACH_IMX27IPCAM     IMX27IPCAM      1871
-+nemoc           MACH_NEMOC      NEMOC           1872
-+geneva          MACH_GENEVA     GENEVA          1873
-+htcpharos       MACH_HTCPHAROS      HTCPHAROS       1874
-+neonc           MACH_NEONC      NEONC           1875
-+nas7100         MACH_NAS7100        NAS7100         1876
-+teuphone        MACH_TEUPHONE       TEUPHONE        1877
-+annax_eth2      MACH_ANNAX_ETH2     ANNAX_ETH2      1878
-+csb733          MACH_CSB733     CSB733          1879
-+bk3         MACH_BK3        BK3         1880
-+omap_em32       MACH_OMAP_EM32      OMAP_EM32       1881
-+et9261cp        MACH_ET9261CP       ET9261CP        1882
-+jasperc         MACH_JASPERC        JASPERC         1883
-+issi_arm9       MACH_ISSI_ARM9      ISSI_ARM9       1884
-+ued         MACH_UED        UED         1885
-+esiblade        MACH_ESIBLADE       ESIBLADE        1886
-+eye02           MACH_EYE02      EYE02           1887
-+imx27kbd        MACH_IMX27KBD       IMX27KBD        1888
-+sst61vc010_fpga     MACH_SST61VC010_FPGA    SST61VC010_FPGA     1889
-+kixvp435        MACH_KIXVP435       KIXVP435        1890
-+kixnp435        MACH_KIXNP435       KIXNP435        1891
-+africa          MACH_AFRICA     AFRICA          1892
-+nh233           MACH_NH233      NH233           1893
-+rd88f6183ap_ge      MACH_RD88F6183AP_GE RD88F6183AP_GE      1894
-+bcm4760         MACH_BCM4760        BCM4760         1895
-+eddy_v2         MACH_EDDY_V2        EDDY_V2         1896
-+realview_pba8       MACH_REALVIEW_PBA8  REALVIEW_PBA8       1897
-+hid_a7          MACH_HID_A7     HID_A7          1898
-+hero            MACH_HERO       HERO            1899
-+omap_poseidon       MACH_OMAP_POSEIDON  OMAP_POSEIDON       1900
-+realview_pbx        MACH_REALVIEW_PBX   REALVIEW_PBX        1901
-+micro9s         MACH_MICRO9S        MICRO9S         1902
-+mako            MACH_MAKO       MAKO            1903
-+xdaflame        MACH_XDAFLAME       XDAFLAME        1904
-+phidget_sbc2        MACH_PHIDGET_SBC2   PHIDGET_SBC2        1905
-+limestone       MACH_LIMESTONE      LIMESTONE       1906
-+iprobe_c32      MACH_IPROBE_C32     IPROBE_C32      1907
-+rut100          MACH_RUT100     RUT100          1908
-+asusp535        MACH_ASUSP535       ASUSP535        1909
-+htcraphael      MACH_HTCRAPHAEL     HTCRAPHAEL      1910
-+sygdg1          MACH_SYGDG1     SYGDG1          1911
-+sygdg2          MACH_SYGDG2     SYGDG2          1912
-+seoul           MACH_SEOUL      SEOUL           1913
-+salerno         MACH_SALERNO        SALERNO         1914
-+ucn_s3c64xx     MACH_UCN_S3C64XX    UCN_S3C64XX     1915
-+msm7201a        MACH_MSM7201A       MSM7201A        1916
-+lpr1            MACH_LPR1       LPR1            1917
-+armadillo500fx      MACH_ARMADILLO500FX ARMADILLO500FX      1918
-+g3evm           MACH_G3EVM      G3EVM           1919
-+z3_dm355        MACH_Z3_DM355       Z3_DM355        1920
-+w90p910evb      MACH_W90P910EVB     W90P910EVB      1921
-+w90p920evb      MACH_W90P920EVB     W90P920EVB      1922
-+w90p950evb      MACH_W90P950EVB     W90P950EVB      1923
-+w90n960evb      MACH_W90N960EVB     W90N960EVB      1924
-+camhd           MACH_CAMHD      CAMHD           1925
-+mvc100          MACH_MVC100     MVC100          1926
-+electrum_200        MACH_ELECTRUM_200   ELECTRUM_200        1927
-+htcjade         MACH_HTCJADE        HTCJADE         1928
-+memphis         MACH_MEMPHIS        MEMPHIS         1929
-+imx27sbc        MACH_IMX27SBC       IMX27SBC        1930
-+lextar          MACH_LEXTAR     LEXTAR          1931
-+mv88f6281gtw_ge     MACH_MV88F6281GTW_GE    MV88F6281GTW_GE     1932
-+ncp         MACH_NCP        NCP         1933
-+z32an_series        MACH_Z32AN      Z32AN           1934
-+tmq_capd        MACH_TMQ_CAPD       TMQ_CAPD        1935
-+omap3_wl        MACH_OMAP3_WL       OMAP3_WL        1936
-+chumby          MACH_CHUMBY     CHUMBY          1937
-+atsarm9         MACH_ATSARM9        ATSARM9         1938
-+davinci_dm365_evm   MACH_DAVINCI_DM365_EVM  DAVINCI_DM365_EVM   1939
-+bahamas         MACH_BAHAMAS        BAHAMAS         1940
-+das         MACH_DAS        DAS         1941
-+minidas         MACH_MINIDAS        MINIDAS         1942
-+vk1000          MACH_VK1000     VK1000          1943
-+centro          MACH_CENTRO     CENTRO          1944
-+ctera_2bay      MACH_CTERA_2BAY     CTERA_2BAY      1945
-+edgeconnect     MACH_EDGECONNECT    EDGECONNECT     1946
-+nd27000         MACH_ND27000        ND27000         1947
-+cobra           MACH_GEMALTO_COBRA  GEMALTO_COBRA       1948
-+ingelabs_comet      MACH_INGELABS_COMET INGELABS_COMET      1949
-+pollux_wiz      MACH_POLLUX_WIZ     POLLUX_WIZ      1950
-+blackstone      MACH_BLACKSTONE     BLACKSTONE      1951
-+topaz           MACH_TOPAZ      TOPAZ           1952
-+aixle           MACH_AIXLE      AIXLE           1953
-+mw998           MACH_MW998      MW998           1954
-+nokia_rx51      MACH_NOKIA_RX51     NOKIA_RX51      1955
-+vsc5605ev       MACH_VSC5605EV      VSC5605EV       1956
-+nt98700dk       MACH_NT98700DK      NT98700DK       1957
-+icontact        MACH_ICONTACT       ICONTACT        1958
-+swarco_frcpu        MACH_SWARCO_FRCPU   SWARCO_FRCPU        1959
-+swarco_scpu     MACH_SWARCO_SCPU    SWARCO_SCPU     1960
-+bbox_p16        MACH_BBOX_P16       BBOX_P16        1961
-+bstd            MACH_BSTD       BSTD            1962
-+sbc2440ii       MACH_SBC2440II      SBC2440II       1963
-+pcm034          MACH_PCM034     PCM034          1964
-+neso            MACH_NESO       NESO            1965
-+wlnx_9g20       MACH_WLNX_9G20      WLNX_9G20       1966
-+omap_zoom2      MACH_OMAP_ZOOM2     OMAP_ZOOM2      1967
-+totemnova       MACH_TOTEMNOVA      TOTEMNOVA       1968
-+c5000           MACH_C5000      C5000           1969
-+unipo_at91sam9263   MACH_UNIPO_AT91SAM9263  UNIPO_AT91SAM9263   1970
-+ethernut5       MACH_ETHERNUT5      ETHERNUT5       1971
-+arm11           MACH_ARM11      ARM11           1972
-+cpuat9260       MACH_CPUAT9260      CPUAT9260       1973
-+cpupxa255       MACH_CPUPXA255      CPUPXA255       1974
-+eukrea_cpuimx27     MACH_CPUIMX27       CPUIMX27        1975
-+cheflux         MACH_CHEFLUX        CHEFLUX         1976
-+eb_cpux9k2      MACH_EB_CPUX9K2     EB_CPUX9K2      1977
-+opcotec         MACH_OPCOTEC        OPCOTEC         1978
-+yt          MACH_YT         YT          1979
-+motoq           MACH_MOTOQ      MOTOQ           1980
-+bsb1            MACH_BSB1       BSB1            1981
-+acs5k           MACH_ACS5K      ACS5K           1982
-+milan           MACH_MILAN      MILAN           1983
-+quartzv2        MACH_QUARTZV2       QUARTZV2        1984
-+rsvp            MACH_RSVP       RSVP            1985
-+rmp200          MACH_RMP200     RMP200          1986
-+snapper_9260        MACH_SNAPPER_9260   SNAPPER_9260        1987
-+dsm320          MACH_DSM320     DSM320          1988
-+adsgcm          MACH_ADSGCM     ADSGCM          1989
-+ase2_400        MACH_ASE2_400       ASE2_400        1990
-+pizza           MACH_PIZZA      PIZZA           1991
-+spot_ngpl       MACH_SPOT_NGPL      SPOT_NGPL       1992
-+armata          MACH_ARMATA     ARMATA          1993
-+exeda           MACH_EXEDA      EXEDA           1994
-+mx31sf005       MACH_MX31SF005      MX31SF005       1995
-+f5d8231_4_v2        MACH_F5D8231_4_V2   F5D8231_4_V2        1996
-+q2440           MACH_Q2440      Q2440           1997
-+qq2440          MACH_QQ2440     QQ2440          1998
-+mini2440        MACH_MINI2440       MINI2440        1999
-+colibri300      MACH_COLIBRI300     COLIBRI300      2000
-+jades           MACH_JADES      JADES           2001
-+spark           MACH_SPARK      SPARK           2002
-+benzina         MACH_BENZINA        BENZINA         2003
-+blaze           MACH_BLAZE      BLAZE           2004
-+linkstation_ls_hgl  MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL  2005
-+htckovsky       MACH_HTCVENUS       HTCVENUS        2006
-+sony_prs505     MACH_SONY_PRS505    SONY_PRS505     2007
-+hanlin_v3       MACH_HANLIN_V3      HANLIN_V3       2008
-+sapphira        MACH_SAPPHIRA       SAPPHIRA        2009
-+dack_sda_01     MACH_DACK_SDA_01    DACK_SDA_01     2010
-+armbox          MACH_ARMBOX     ARMBOX          2011
-+harris_rvp      MACH_HARRIS_RVP     HARRIS_RVP      2012
-+ribaldo         MACH_RIBALDO        RIBALDO         2013
-+agora           MACH_AGORA      AGORA           2014
-+omap3_mini      MACH_OMAP3_MINI     OMAP3_MINI      2015
-+a9sam6432_b     MACH_A9SAM6432_B    A9SAM6432_B     2016
-+usg2410         MACH_USG2410        USG2410         2017
-+pc72052_i10_revb    MACH_PC72052_I10_REVB   PC72052_I10_REVB    2018
-+mx35_exm32      MACH_MX35_EXM32     MX35_EXM32      2019
-+topas910        MACH_TOPAS910       TOPAS910        2020
-+hyena           MACH_HYENA      HYENA           2021
-+pospax          MACH_POSPAX     POSPAX          2022
-+hdl_gx          MACH_HDL_GX     HDL_GX          2023
-+ctera_4bay      MACH_CTERA_4BAY     CTERA_4BAY      2024
-+ctera_plug_c        MACH_CTERA_PLUG_C   CTERA_PLUG_C        2025
-+crwea_plug_i        MACH_CRWEA_PLUG_I   CRWEA_PLUG_I        2026
-+egauge2         MACH_EGAUGE2        EGAUGE2         2027
-+didj            MACH_DIDJ       DIDJ            2028
-+m_s3c2443       MACH_MEISTER        MEISTER         2029
-+htcblackstone       MACH_HTCBLACKSTONE  HTCBLACKSTONE       2030
-+cpuat9g20       MACH_CPUAT9G20      CPUAT9G20       2031
-+smdk6440        MACH_SMDK6440       SMDK6440        2032
-+omap_35xx_mvp       MACH_OMAP_35XX_MVP  OMAP_35XX_MVP       2033
-+ctera_plug_i        MACH_CTERA_PLUG_I   CTERA_PLUG_I        2034
-+pvg610_100      MACH_PVG610     PVG610          2035
-+hprw6815        MACH_HPRW6815       HPRW6815        2036
-+omap3_oswald        MACH_OMAP3_OSWALD   OMAP3_OSWALD        2037
-+nas4220b        MACH_NAS4220B       NAS4220B        2038
-+htcraphael_cdma     MACH_HTCRAPHAEL_CDMA    HTCRAPHAEL_CDMA     2039
-+htcdiamond_cdma     MACH_HTCDIAMOND_CDMA    HTCDIAMOND_CDMA     2040
-+scaler          MACH_SCALER     SCALER          2041
-+zylonite2       MACH_ZYLONITE2      ZYLONITE2       2042
-+aspenite        MACH_ASPENITE       ASPENITE        2043
-+teton           MACH_TETON      TETON           2044
-+ttc_dkb         MACH_TTC_DKB        TTC_DKB         2045
-+bishop2         MACH_BISHOP2        BISHOP2         2046
-+ippv5           MACH_IPPV5      IPPV5           2047
-+farm926         MACH_FARM926        FARM926         2048
-+mmccpu          MACH_MMCCPU     MMCCPU          2049
-+sgmsfl          MACH_SGMSFL     SGMSFL          2050
-+tt8000          MACH_TT8000     TT8000          2051
-+zrn4300lp       MACH_ZRN4300LP      ZRN4300LP       2052
-+mptc            MACH_MPTC       MPTC            2053
-+h6051           MACH_H6051      H6051           2054
-+pvg610_101      MACH_PVG610_101     PVG610_101      2055
-+stamp9261_pc_evb    MACH_STAMP9261_PC_EVB   STAMP9261_PC_EVB    2056
-+pelco_odysseus      MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS      2057
-+tny_a9260       MACH_TNY_A9260      TNY_A9260       2058
-+tny_a9g20       MACH_TNY_A9G20      TNY_A9G20       2059
-+aesop_mp2530f       MACH_AESOP_MP2530F  AESOP_MP2530F       2060
-+dx900           MACH_DX900      DX900           2061
-+cpodc2          MACH_CPODC2     CPODC2          2062
-+tilt_8925       MACH_TILT_8925      TILT_8925       2063
-+davinci_dm357_evm   MACH_DAVINCI_DM357_EVM  DAVINCI_DM357_EVM   2064
-+swordfish       MACH_SWORDFISH      SWORDFISH       2065
-+corvus          MACH_CORVUS     CORVUS          2066
-+taurus          MACH_TAURUS     TAURUS          2067
-+axm         MACH_AXM        AXM         2068
-+axc         MACH_AXC        AXC         2069
-+baby            MACH_BABY       BABY            2070
-+mp200           MACH_MP200      MP200           2071
-+pcm043          MACH_PCM043     PCM043          2072
-+hanlin_v3c      MACH_HANLIN_V3C     HANLIN_V3C      2073
-+kbk9g20         MACH_KBK9G20        KBK9G20         2074
-+adsturbog5      MACH_ADSTURBOG5     ADSTURBOG5      2075
-+avenger_lite1       MACH_AVENGER_LITE1  AVENGER_LITE1       2076
-+suc82x          MACH_SUC        SUC         2077
-+at91sam7s256        MACH_AT91SAM7S256   AT91SAM7S256        2078
-+mendoza         MACH_MENDOZA        MENDOZA         2079
-+kira            MACH_KIRA       KIRA            2080
-+mx1hbm          MACH_MX1HBM     MX1HBM          2081
-+quatro43xx      MACH_QUATRO43XX     QUATRO43XX      2082
-+quatro4230      MACH_QUATRO4230     QUATRO4230      2083
-+nsb400          MACH_NSB400     NSB400          2084
-+drp255          MACH_DRP255     DRP255          2085
-+thoth           MACH_THOTH      THOTH           2086
-+firestone       MACH_FIRESTONE      FIRESTONE       2087
-+asusp750        MACH_ASUSP750       ASUSP750        2088
-+ctera_dl        MACH_CTERA_DL       CTERA_DL        2089
-+socr            MACH_SOCR       SOCR            2090
-+htcoxygen       MACH_HTCOXYGEN      HTCOXYGEN       2091
-+heroc           MACH_HEROC      HEROC           2092
-+zeno6800        MACH_ZENO6800       ZENO6800        2093
-+sc2mcs          MACH_SC2MCS     SC2MCS          2094
-+gene100         MACH_GENE100        GENE100         2095
-+as353x          MACH_AS353X     AS353X          2096
-+sheevaplug      MACH_SHEEVAPLUG     SHEEVAPLUG      2097
-+at91sam9g20     MACH_AT91SAM9G20    AT91SAM9G20     2098
-+mv88f6192gtw_fe     MACH_MV88F6192GTW_FE    MV88F6192GTW_FE     2099
-+cc9200          MACH_CC9200     CC9200          2100
-+sm9200          MACH_SM9200     SM9200          2101
-+tp9200          MACH_TP9200     TP9200          2102
-+snapperdv       MACH_SNAPPERDV      SNAPPERDV       2103
-+avengers_lite       MACH_AVENGERS_LITE  AVENGERS_LITE       2104
-+avengers_lite1      MACH_AVENGERS_LITE1 AVENGERS_LITE1      2105
-+omap3axon       MACH_OMAP3AXON      OMAP3AXON       2106
-+ma8xx           MACH_MA8XX      MA8XX           2107
-+mp201ek         MACH_MP201EK        MP201EK         2108
-+davinci_tux     MACH_DAVINCI_TUX    DAVINCI_TUX     2109
-+mpa1600         MACH_MPA1600        MPA1600         2110
-+pelco_troy      MACH_PELCO_TROY     PELCO_TROY      2111
-+nsb667          MACH_NSB667     NSB667          2112
-+rovers5_4mpix       MACH_ROVERS5_4MPIX  ROVERS5_4MPIX       2113
-+twocom          MACH_TWOCOM     TWOCOM          2114
-+ubisys_p9_rcu3r2    MACH_UBISYS_P9_RCU3R2   UBISYS_P9_RCU3R2    2115
-+hero_espresso       MACH_HERO_ESPRESSO  HERO_ESPRESSO       2116
-+afeusb          MACH_AFEUSB     AFEUSB          2117
-+t830            MACH_T830       T830            2118
-+spd8020_cc      MACH_SPD8020_CC     SPD8020_CC      2119
-+om_3d7k         MACH_OM_3D7K        OM_3D7K         2120
-+picocom2        MACH_PICOCOM2       PICOCOM2        2121
-+uwg4mx27        MACH_UWG4MX27       UWG4MX27        2122
-+uwg4mx31        MACH_UWG4MX31       UWG4MX31        2123
-+cherry          MACH_CHERRY     CHERRY          2124
-+mx51_babbage        MACH_MX51_BABBAGE   MX51_BABBAGE        2125
-+s3c2440turkiye      MACH_S3C2440TURKIYE S3C2440TURKIYE      2126
-+tx37            MACH_TX37       TX37            2127
-+sbc2800_9g20        MACH_SBC2800_9G20   SBC2800_9G20        2128
-+benzglb         MACH_BENZGLB        BENZGLB         2129
-+benztd          MACH_BENZTD     BENZTD          2130
-+cartesio_plus       MACH_CARTESIO_PLUS  CARTESIO_PLUS       2131
-+solrad_g20      MACH_SOLRAD_G20     SOLRAD_G20      2132
-+mx27wallace     MACH_MX27WALLACE    MX27WALLACE     2133
-+fmzwebmodul     MACH_FMZWEBMODUL    FMZWEBMODUL     2134
-+rd78x00_masa        MACH_RD78X00_MASA   RD78X00_MASA        2135
-+smallogger      MACH_SMALLOGGER     SMALLOGGER      2136
-+ccw9p9215       MACH_CCW9P9215      CCW9P9215       2137
-+dm355_leopard       MACH_DM355_LEOPARD  DM355_LEOPARD       2138
-+ts219           MACH_TS219      TS219           2139
-+tny_a9263       MACH_TNY_A9263      TNY_A9263       2140
-+apollo          MACH_APOLLO     APOLLO          2141
-+at91cap9stk     MACH_AT91CAP9STK    AT91CAP9STK     2142
-+spc300          MACH_SPC300     SPC300          2143
-+eko         MACH_EKO        EKO         2144
-+ccw9m2443       MACH_CCW9M2443      CCW9M2443       2145
-+ccw9m2443js     MACH_CCW9M2443JS    CCW9M2443JS     2146
-+m2m_router_device   MACH_M2M_ROUTER_DEVICE  M2M_ROUTER_DEVICE   2147
-+str9104nas      MACH_STAR9104NAS    STAR9104NAS     2148
-+pca100          MACH_PCA100     PCA100          2149
-+z3_dm365_mod_01     MACH_Z3_DM365_MOD_01    Z3_DM365_MOD_01     2150
-+hipox           MACH_HIPOX      HIPOX           2151
-+omap3_piteds        MACH_OMAP3_PITEDS   OMAP3_PITEDS        2152
-+bm150r          MACH_BM150R     BM150R          2153
-+tbone           MACH_TBONE      TBONE           2154
-+merlin          MACH_MERLIN     MERLIN          2155
-+falcon          MACH_FALCON     FALCON          2156
-+davinci_da850_evm   MACH_DAVINCI_DA850_EVM  DAVINCI_DA850_EVM   2157
-+s5p6440         MACH_S5P6440        S5P6440         2158
-+at91sam9g10ek       MACH_AT91SAM9G10EK  AT91SAM9G10EK       2159
-+omap_4430sdp        MACH_OMAP_4430SDP   OMAP_4430SDP        2160
-+lpc313x         MACH_LPC313X        LPC313X         2161
-+magx_zn5        MACH_MAGX_ZN5       MAGX_ZN5        2162
-+magx_em30       MACH_MAGX_EM30      MAGX_EM30       2163
-+magx_ve66       MACH_MAGX_VE66      MAGX_VE66       2164
-+meesc           MACH_MEESC      MEESC           2165
-+otc570          MACH_OTC570     OTC570          2166
-+bcu2412         MACH_BCU2412        BCU2412         2167
-+beacon          MACH_BEACON     BEACON          2168
-+actia_tgw       MACH_ACTIA_TGW      ACTIA_TGW       2169
-+e4430           MACH_E4430      E4430           2170
-+ql300           MACH_QL300      QL300           2171
-+btmavb101       MACH_BTMAVB101      BTMAVB101       2172
-+btmawb101       MACH_BTMAWB101      BTMAWB101       2173
-+sq201           MACH_SQ201      SQ201           2174
-+quatro45xx      MACH_QUATRO45XX     QUATRO45XX      2175
-+openpad         MACH_OPENPAD        OPENPAD         2176
-+tx25            MACH_TX25       TX25            2177
-+omap3_torpedo       MACH_OMAP3_TORPEDO  OMAP3_TORPEDO       2178
-+htcraphael_k        MACH_HTCRAPHAEL_K   HTCRAPHAEL_K        2179
-+lal43           MACH_LAL43      LAL43           2181
-+htcraphael_cdma500  MACH_HTCRAPHAEL_CDMA500 HTCRAPHAEL_CDMA500  2182
-+anw6410         MACH_ANW6410        ANW6410         2183
-+htcprophet      MACH_HTCPROPHET     HTCPROPHET      2185
-+cfa_10022       MACH_CFA_10022      CFA_10022       2186
-+imx27_visstrim_m10  MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10  2187
-+px2imx27        MACH_PX2IMX27       PX2IMX27        2188
-+stm3210e_eval       MACH_STM3210E_EVAL  STM3210E_EVAL       2189
-+dvs10           MACH_DVS10      DVS10           2190
-+portuxg20       MACH_PORTUXG20      PORTUXG20       2191
-+arm_spv         MACH_ARM_SPV        ARM_SPV         2192
-+smdkc110        MACH_SMDKC110       SMDKC110        2193
-+cabespresso     MACH_CABESPRESSO    CABESPRESSO     2194
-+hmc800          MACH_HMC800     HMC800          2195
-+sholes          MACH_SHOLES     SHOLES          2196
-+btmxc31         MACH_BTMXC31        BTMXC31         2197
-+dt501           MACH_DT501      DT501           2198
-+ktx         MACH_KTX        KTX         2199
-+omap3517evm     MACH_OMAP3517EVM    OMAP3517EVM     2200
-+netspace_v2     MACH_NETSPACE_V2    NETSPACE_V2     2201
-+netspace_max_v2     MACH_NETSPACE_MAX_V2    NETSPACE_MAX_V2     2202
-+d2net_v2        MACH_D2NET_V2       D2NET_V2        2203
-+net2big_v2      MACH_NET2BIG_V2     NET2BIG_V2      2204
-+net4big_v2      MACH_NET4BIG_V2     NET4BIG_V2      2205
-+net5big_v2      MACH_NET5BIG_V2     NET5BIG_V2      2206
-+endb2443        MACH_ENDB2443       ENDB2443        2207
-+inetspace_v2        MACH_INETSPACE_V2   INETSPACE_V2        2208
-+tros            MACH_TROS       TROS            2209
-+pelco_homer     MACH_PELCO_HOMER    PELCO_HOMER     2210
-+ofsp8           MACH_OFSP8      OFSP8           2211
-+at91sam9g45ekes     MACH_AT91SAM9G45EKES    AT91SAM9G45EKES     2212
-+guf_cupid       MACH_GUF_CUPID      GUF_CUPID       2213
-+eab1r           MACH_EAB1R      EAB1R           2214
-+desirec         MACH_DESIREC        DESIREC         2215
-+cordoba         MACH_CORDOBA        CORDOBA         2216
-+irvine          MACH_IRVINE     IRVINE          2217
-+sff772          MACH_SFF772     SFF772          2218
-+pelco_milano        MACH_PELCO_MILANO   PELCO_MILANO        2219
-+pc7302          MACH_PC7302     PC7302          2220
-+bip6000         MACH_BIP6000        BIP6000         2221
-+silvermoon      MACH_SILVERMOON     SILVERMOON      2222
-+vc0830          MACH_VC0830     VC0830          2223
-+dt430           MACH_DT430      DT430           2224
-+ji42pf          MACH_JI42PF     JI42PF          2225
-+gnet_ksm        MACH_GNET_KSM       GNET_KSM        2226
-+gnet_sgm        MACH_GNET_SGM       GNET_SGM        2227
-+gnet_sgr        MACH_GNET_SGR       GNET_SGR        2228
-+omap3_icetekevm     MACH_OMAP3_ICETEKEVM    OMAP3_ICETEKEVM     2229
-+pnp         MACH_PNP        PNP         2230
-+ctera_2bay_k        MACH_CTERA_2BAY_K   CTERA_2BAY_K        2231
-+ctera_2bay_u        MACH_CTERA_2BAY_U   CTERA_2BAY_U        2232
-+sas_c           MACH_SAS_C      SAS_C           2233
-+vma2315         MACH_VMA2315        VMA2315         2234
-+vcs         MACH_VCS        VCS         2235
-+spear600        MACH_SPEAR600       SPEAR600        2236
-+spear300        MACH_SPEAR300       SPEAR300        2237
-+spear1300       MACH_SPEAR1300      SPEAR1300       2238
-+lilly1131       MACH_LILLY1131      LILLY1131       2239
-+arvoo_ax301     MACH_ARVOO_AX301    ARVOO_AX301     2240
-+mapphone        MACH_MAPPHONE       MAPPHONE        2241
-+legend          MACH_LEGEND     LEGEND          2242
-+salsa           MACH_SALSA      SALSA           2243
-+lounge          MACH_LOUNGE     LOUNGE          2244
-+vision          MACH_VISION     VISION          2245
-+vmb20           MACH_VMB20      VMB20           2246
-+hy2410          MACH_HY2410     HY2410          2247
-+hy9315          MACH_HY9315     HY9315          2248
-+bullwinkle      MACH_BULLWINKLE     BULLWINKLE      2249
-+arm_ultimator2      MACH_ARM_ULTIMATOR2 ARM_ULTIMATOR2      2250
-+vs_v210         MACH_VS_V210        VS_V210         2252
-+vs_v212         MACH_VS_V212        VS_V212         2253
-+hmt         MACH_HMT        HMT         2254
-+suen3           MACH_SUEN3      SUEN3           2255
-+vesper          MACH_VESPER     VESPER          2256
-+str9            MACH_STR9       STR9            2257
-+omap3_wl_ff     MACH_OMAP3_WL_FF    OMAP3_WL_FF     2258
-+simcom          MACH_SIMCOM     SIMCOM          2259
-+mcwebio         MACH_MCWEBIO        MCWEBIO         2260
-+omap3_phrazer       MACH_OMAP3_PHRAZER  OMAP3_PHRAZER       2261
-+darwin          MACH_DARWIN     DARWIN          2262
-+oratiscomu      MACH_ORATISCOMU     ORATISCOMU      2263
-+rtsbc20         MACH_RTSBC20        RTSBC20         2264
-+sgh_i780        MACH_I780       I780            2265
-+gemini324       MACH_GEMINI324      GEMINI324       2266
-+oratislan       MACH_ORATISLAN      ORATISLAN       2267
-+oratisalog      MACH_ORATISALOG     ORATISALOG      2268
-+oratismadi      MACH_ORATISMADI     ORATISMADI      2269
-+oratisot16      MACH_ORATISOT16     ORATISOT16      2270
-+oratisdesk      MACH_ORATISDESK     ORATISDESK      2271
-+vexpress        MACH_VEXPRESS       VEXPRESS        2272
-+sintexo         MACH_SINTEXO        SINTEXO         2273
-+cm3389          MACH_CM3389     CM3389          2274
-+omap3_cio       MACH_OMAP3_CIO      OMAP3_CIO       2275
-+sgh_i900        MACH_SGH_I900       SGH_I900        2276
-+bst100          MACH_BST100     BST100          2277
-+passion         MACH_PASSION        PASSION         2278
-+indesign_at91sam    MACH_INDESIGN_AT91SAM   INDESIGN_AT91SAM    2279
-+c4_badger       MACH_C4_BADGER      C4_BADGER       2280
-+c4_viper        MACH_C4_VIPER       C4_VIPER        2281
-+d2net           MACH_D2NET      D2NET           2282
-+bigdisk         MACH_BIGDISK        BIGDISK         2283
-+notalvision     MACH_NOTALVISION    NOTALVISION     2284
-+omap3_kboc      MACH_OMAP3_KBOC     OMAP3_KBOC      2285
-+cyclone         MACH_CYCLONE        CYCLONE         2286
-+ninja           MACH_NINJA      NINJA           2287
-+at91sam9g20ek_2mmc  MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC  2288
-+bcmring         MACH_BCMRING        BCMRING         2289
-+resol_dl2       MACH_RESOL_DL2      RESOL_DL2       2290
-+ifosw           MACH_IFOSW      IFOSW           2291
-+htcrhodium      MACH_HTCRHODIUM     HTCRHODIUM      2292
-+htctopaz        MACH_HTCTOPAZ       HTCTOPAZ        2293
-+matrix504       MACH_MATRIX504      MATRIX504       2294
-+mrfsa           MACH_MRFSA      MRFSA           2295
-+sc_p270         MACH_SC_P270        SC_P270         2296
-+atlas5_evb      MACH_ATLAS5_EVB     ATLAS5_EVB      2297
-+pelco_lobox     MACH_PELCO_LOBOX    PELCO_LOBOX     2298
-+dilax_pcu200        MACH_DILAX_PCU200   DILAX_PCU200        2299
-+leonardo        MACH_LEONARDO       LEONARDO        2300
-+zoran_approach7     MACH_ZORAN_APPROACH7    ZORAN_APPROACH7     2301
-+dp6xx           MACH_DP6XX      DP6XX           2302
-+bcm2153_vesper      MACH_BCM2153_VESPER BCM2153_VESPER      2303
-+mahimahi        MACH_MAHIMAHI       MAHIMAHI        2304
-+clickc          MACH_CLICKC     CLICKC          2305
-+zb_gateway      MACH_ZB_GATEWAY     ZB_GATEWAY      2306
-+tazcard         MACH_TAZCARD        TAZCARD         2307
-+tazdev          MACH_TAZDEV     TAZDEV          2308
-+annax_cb_arm        MACH_ANNAX_CB_ARM   ANNAX_CB_ARM        2309
-+annax_dm3       MACH_ANNAX_DM3      ANNAX_DM3       2310
-+cerebric        MACH_CEREBRIC       CEREBRIC        2311
-+orca            MACH_ORCA       ORCA            2312
-+pc9260          MACH_PC9260     PC9260          2313
-+ems285a         MACH_EMS285A        EMS285A         2314
-+gec2410         MACH_GEC2410        GEC2410         2315
-+gec2440         MACH_GEC2440        GEC2440         2316
-+mw903           MACH_ARCH_MW903     ARCH_MW903      2317
-+mw2440          MACH_MW2440     MW2440          2318
-+ecac2378        MACH_ECAC2378       ECAC2378        2319
-+tazkiosk        MACH_TAZKIOSK       TAZKIOSK        2320
-+whiterabbit_mch     MACH_WHITERABBIT_MCH    WHITERABBIT_MCH     2321
-+sbox9263        MACH_SBOX9263       SBOX9263        2322
-+oreo            MACH_OREO       OREO            2323
-+smdk6442        MACH_SMDK6442       SMDK6442        2324
-+openrd_base     MACH_OPENRD_BASE    OPENRD_BASE     2325
-+incredible      MACH_INCREDIBLE     INCREDIBLE      2326
-+incrediblec     MACH_INCREDIBLEC    INCREDIBLEC     2327
-+heroct          MACH_HEROCT     HEROCT          2328
-+mmnet1000       MACH_MMNET1000      MMNET1000       2329
-+devkit8000      MACH_DEVKIT8000     DEVKIT8000      2330
-+devkit9000      MACH_DEVKIT9000     DEVKIT9000      2331
-+mx31txtr        MACH_MX31TXTR       MX31TXTR        2332
-+u380            MACH_U380       U380            2333
-+oamp3_hualu     MACH_HUALU_BOARD    HUALU_BOARD     2334
-+npcmx50         MACH_NPCMX50        NPCMX50         2335
-+mx51_lange51        MACH_MX51_LANGE51   MX51_LANGE51        2336
-+mx51_lange52        MACH_MX51_LANGE52   MX51_LANGE52        2337
-+riom            MACH_RIOM       RIOM            2338
-+comcas          MACH_COMCAS     COMCAS          2339
-+wsi_mx27        MACH_WSI_MX27       WSI_MX27        2340
-+cm_t35          MACH_CM_T35     CM_T35          2341
-+net2big         MACH_NET2BIG        NET2BIG         2342
-+motorola_a1600      MACH_MOTOROLA_A1600 MOTOROLA_A1600      2343
-+igep0020        MACH_IGEP0020       IGEP0020        2344
-+igep0010        MACH_IGEP0010       IGEP0010        2345
-+mv6281gtwge2        MACH_MV6281GTWGE2   MV6281GTWGE2        2346
-+scat100         MACH_SCAT100        SCAT100         2347
-+sanmina         MACH_SANMINA        SANMINA         2348
-+momento         MACH_MOMENTO        MOMENTO         2349
-+nuc9xx          MACH_NUC9XX     NUC9XX          2350
-+nuc910evb       MACH_NUC910EVB      NUC910EVB       2351
-+nuc920evb       MACH_NUC920EVB      NUC920EVB       2352
-+nuc950evb       MACH_NUC950EVB      NUC950EVB       2353
-+nuc945evb       MACH_NUC945EVB      NUC945EVB       2354
-+nuc960evb       MACH_NUC960EVB      NUC960EVB       2355
-+nuc932evb       MACH_NUC932EVB      NUC932EVB       2356
-+nuc900          MACH_NUC900     NUC900          2357
-+sd1soc          MACH_SD1SOC     SD1SOC          2358
-+ln2440bc        MACH_LN2440BC       LN2440BC        2359
-+rsbc            MACH_RSBC       RSBC            2360
-+openrd_client       MACH_OPENRD_CLIENT  OPENRD_CLIENT       2361
-+hpipaq11x       MACH_HPIPAQ11X      HPIPAQ11X       2362
-+wayland         MACH_WAYLAND        WAYLAND         2363
-+acnbsx102       MACH_ACNBSX102      ACNBSX102       2364
-+hwat91          MACH_HWAT91     HWAT91          2365
-+at91sam9263cs       MACH_AT91SAM9263CS  AT91SAM9263CS       2366
-+csb732          MACH_CSB732     CSB732          2367
-+u8500           MACH_U8500      U8500           2368
-+huqiu           MACH_HUQIU      HUQIU           2369
-+mx51_kunlun     MACH_MX51_KUNLUN    MX51_KUNLUN     2370
-+pmt1g           MACH_PMT1G      PMT1G           2371
-+htcelf          MACH_HTCELF     HTCELF          2372
-+armadillo420        MACH_ARMADILLO420   ARMADILLO420        2373
-+armadillo440        MACH_ARMADILLO440   ARMADILLO440        2374
-+u_chip_dual_arm     MACH_U_CHIP_DUAL_ARM    U_CHIP_DUAL_ARM     2375
-+csr_bdb3        MACH_CSR_BDB3       CSR_BDB3        2376
-+dolby_cat1018       MACH_DOLBY_CAT1018  DOLBY_CAT1018       2377
-+hy9307          MACH_HY9307     HY9307          2378
-+aspire_easystore    MACH_A_ES       A_ES            2379
-+davinci_irif        MACH_DAVINCI_IRIF   DAVINCI_IRIF        2380
-+agama9263       MACH_AGAMA9263      AGAMA9263       2381
-+marvell_jasper      MACH_MARVELL_JASPER MARVELL_JASPER      2382
-+flint           MACH_FLINT      FLINT           2383
-+tavorevb3       MACH_TAVOREVB3      TAVOREVB3       2384
-+sch_m490        MACH_SCH_M490       SCH_M490        2386
-+rbl01           MACH_RBL01      RBL01           2387
-+omnifi          MACH_OMNIFI     OMNIFI          2388
-+otavalo         MACH_OTAVALO        OTAVALO         2389
-+siena           MACH_SIENNA     SIENNA          2390
-+htc_excalibur_s620  MACH_HTC_EXCALIBUR_S620 HTC_EXCALIBUR_S620  2391
-+htc_opal        MACH_HTC_OPAL       HTC_OPAL        2392
-+touchbook       MACH_TOUCHBOOK      TOUCHBOOK       2393
-+latte           MACH_LATTE      LATTE           2394
-+xa200           MACH_XA200      XA200           2395
-+nimrod          MACH_NIMROD     NIMROD          2396
-+cc9p9215_3g     MACH_CC9P9215_3G    CC9P9215_3G     2397
-+cc9p9215_3gjs       MACH_CC9P9215_3GJS  CC9P9215_3GJS       2398
-+tk71            MACH_TK71       TK71            2399
-+comham3525      MACH_COMHAM3525     COMHAM3525      2400
-+mx31erebus      MACH_MX31EREBUS     MX31EREBUS      2401
-+mcardmx27       MACH_MCARDMX27      MCARDMX27       2402
-+paradise        MACH_PARADISE       PARADISE        2403
-+tide            MACH_TIDE       TIDE            2404
-+wzl2440         MACH_WZL2440        WZL2440         2405
-+sdrdemo         MACH_SDRDEMO        SDRDEMO         2406
-+ethercan2       MACH_ETHERCAN2      ETHERCAN2       2407
-+ecmimg20        MACH_ECMIMG20       ECMIMG20        2408
-+omap_dragon     MACH_OMAP_DRAGON    OMAP_DRAGON     2409
-+halo            MACH_HALO       HALO            2410
-+huangshan       MACH_HUANGSHAN      HUANGSHAN       2411
-+vl_ma2sc        MACH_VL_MA2SC       VL_MA2SC        2412
-+raumfeld_rc     MACH_RAUMFELD_RC    RAUMFELD_RC     2413
-+raumfeld_connector  MACH_RAUMFELD_CONNECTOR RAUMFELD_CONNECTOR  2414
-+raumfeld_speaker    MACH_RAUMFELD_SPEAKER   RAUMFELD_SPEAKER    2415
-+multibus_master     MACH_MULTIBUS_MASTER    MULTIBUS_MASTER     2416
-+multibus_pbk        MACH_MULTIBUS_PBK   MULTIBUS_PBK        2417
-+tnetv107x       MACH_TNETV107X      TNETV107X       2418
-+snake           MACH_SNAKE      SNAKE           2419
-+cwmx27          MACH_CWMX27     CWMX27          2420
-+sch_m480        MACH_SCH_M480       SCH_M480        2421
-+platypus        MACH_PLATYPUS       PLATYPUS        2422
-+pss2            MACH_PSS2       PSS2            2423
-+davinci_apm150      MACH_DAVINCI_APM150 DAVINCI_APM150      2424
-+str9100         MACH_STR9100        STR9100         2425
-+net5big         MACH_NET5BIG        NET5BIG         2426
-+seabed9263      MACH_SEABED9263     SEABED9263      2427
-+mx51_m2id       MACH_MX51_M2ID      MX51_M2ID       2428
-+octvocplus_eb       MACH_OCTVOCPLUS_EB  OCTVOCPLUS_EB       2429
-+klk_firefox     MACH_KLK_FIREFOX    KLK_FIREFOX     2430
-+klk_wirma_module    MACH_KLK_WIRMA_MODULE   KLK_WIRMA_MODULE    2431
-+klk_wirma_mmi       MACH_KLK_WIRMA_MMI  KLK_WIRMA_MMI       2432
-+supersonic      MACH_SUPERSONIC     SUPERSONIC      2433
-+liberty         MACH_LIBERTY        LIBERTY         2434
-+mh355           MACH_MH355      MH355           2435
-+pc7802          MACH_PC7802     PC7802          2436
-+gnet_sgc        MACH_GNET_SGC       GNET_SGC        2437
-+einstein15      MACH_EINSTEIN15     EINSTEIN15      2438
-+cmpd            MACH_CMPD       CMPD            2439
-+davinci_hase1       MACH_DAVINCI_HASE1  DAVINCI_HASE1       2440
-+lgeincitephone      MACH_LGEINCITEPHONE LGEINCITEPHONE      2441
-+ea313x          MACH_EA313X     EA313X          2442
-+fwbd_39064      MACH_FWBD_39064     FWBD_39064      2443
-+fwbd_390128     MACH_FWBD_390128    FWBD_390128     2444
-+pelco_moe       MACH_PELCO_MOE      PELCO_MOE       2445
-+minimix27       MACH_MINIMIX27      MINIMIX27       2446
-+omap3_thunder       MACH_OMAP3_THUNDER  OMAP3_THUNDER       2447
-+passionc        MACH_PASSIONC       PASSIONC        2448
-+mx27amata       MACH_MX27AMATA      MX27AMATA       2449
-+bgat1           MACH_BGAT1      BGAT1           2450
-+buzz            MACH_BUZZ       BUZZ            2451
-+mb9g20          MACH_MB9G20     MB9G20          2452
-+yushan          MACH_YUSHAN     YUSHAN          2453
-+lizard          MACH_LIZARD     LIZARD          2454
-+omap3polycom        MACH_OMAP3POLYCOM   OMAP3POLYCOM        2455
-+smdkv210        MACH_SMDKV210       SMDKV210        2456
-+bravo           MACH_BRAVO      BRAVO           2457
-+siogentoo1      MACH_SIOGENTOO1     SIOGENTOO1      2458
-+siogentoo2      MACH_SIOGENTOO2     SIOGENTOO2      2459
-+sm3k            MACH_SM3K       SM3K            2460
-+acer_tempo_f900     MACH_ACER_TEMPO_F900    ACER_TEMPO_F900     2461
-+sst61vc010_dev      MACH_SST61VC010_DEV SST61VC010_DEV      2462
-+glittertind     MACH_GLITTERTIND    GLITTERTIND     2463
-+omap_zoom3      MACH_OMAP_ZOOM3     OMAP_ZOOM3      2464
-+omap_3630sdp        MACH_OMAP_3630SDP   OMAP_3630SDP        2465
-+cybook2440      MACH_CYBOOK2440     CYBOOK2440      2466
-+torino_s        MACH_TORINO_S       TORINO_S        2467
-+havana          MACH_HAVANA     HAVANA          2468
-+beaumont_11     MACH_BEAUMONT_11    BEAUMONT_11     2469
-+vanguard        MACH_VANGUARD       VANGUARD        2470
-+s5pc110_draco       MACH_S5PC110_DRACO  S5PC110_DRACO       2471
-+cartesio_two        MACH_CARTESIO_TWO   CARTESIO_TWO        2472
-+aster           MACH_ASTER      ASTER           2473
-+voguesv210      MACH_VOGUESV210     VOGUESV210      2474
-+acm500x         MACH_ACM500X        ACM500X         2475
-+km9260          MACH_KM9260     KM9260          2476
-+nideflexg1      MACH_NIDEFLEXG1     NIDEFLEXG1      2477
-+ctera_plug_io       MACH_CTERA_PLUG_IO  CTERA_PLUG_IO       2478
-+smartq7         MACH_SMARTQ7        SMARTQ7         2479
-+at91sam9g10ek2      MACH_AT91SAM9G10EK2 AT91SAM9G10EK2      2480
-+asusp527        MACH_ASUSP527       ASUSP527        2481
-+at91sam9g20mpm2     MACH_AT91SAM9G20MPM2    AT91SAM9G20MPM2     2482
-+topasa900       MACH_TOPASA900      TOPASA900       2483
-+electrum_100        MACH_ELECTRUM_100   ELECTRUM_100        2484
-+mx51grb         MACH_MX51GRB        MX51GRB         2485
-+xea300          MACH_XEA300     XEA300          2486
-+htcstartrek     MACH_HTCSTARTREK    HTCSTARTREK     2487
-+lima            MACH_LIMA       LIMA            2488
-+csb740          MACH_CSB740     CSB740          2489
-+usb_s8815       MACH_USB_S8815      USB_S8815       2490
-+watson_efm_plugin   MACH_WATSON_EFM_PLUGIN  WATSON_EFM_PLUGIN   2491
-+milkyway        MACH_MILKYWAY       MILKYWAY        2492
-+g4evm           MACH_G4EVM      G4EVM           2493
-+picomod6        MACH_PICOMOD6       PICOMOD6        2494
-+omapl138_hawkboard  MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD  2495
-+ip6000          MACH_IP6000     IP6000          2496
-+ip6010          MACH_IP6010     IP6010          2497
-+utm400          MACH_UTM400     UTM400          2498
-+omap3_zybex     MACH_OMAP3_ZYBEX    OMAP3_ZYBEX     2499
-+wireless_space      MACH_WIRELESS_SPACE WIRELESS_SPACE      2500
-+sx560           MACH_SX560      SX560           2501
-+ts41x           MACH_TS41X      TS41X           2502
-+elphel10373     MACH_ELPHEL10373    ELPHEL10373     2503
-+rhobot          MACH_RHOBOT     RHOBOT          2504
-+mx51_refresh        MACH_MX51_REFRESH   MX51_REFRESH        2505
-+ls9260          MACH_LS9260     LS9260          2506
-+shank           MACH_SHANK      SHANK           2507
-+qsd8x50_st1     MACH_QSD8X50_ST1    QSD8X50_ST1     2508
-+at91sam9m10ekes     MACH_AT91SAM9M10EKES    AT91SAM9M10EKES     2509
-+hiram           MACH_HIRAM      HIRAM           2510
-+phy3250         MACH_PHY3250        PHY3250         2511
-+ea3250          MACH_EA3250     EA3250          2512
-+fdi3250         MACH_FDI3250        FDI3250         2513
-+whitestone      MACH_WHITESTONE     WHITESTONE      2514
-+at91sam9263nit      MACH_AT91SAM9263NIT AT91SAM9263NIT      2515
-+ccmx51          MACH_CCMX51     CCMX51          2516
-+ccmx51js        MACH_CCMX51JS       CCMX51JS        2517
-+ccwmx51         MACH_CCWMX51        CCWMX51         2518
-+ccwmx51js       MACH_CCWMX51JS      CCWMX51JS       2519
-+mini6410        MACH_MINI6410       MINI6410        2520
-+tiny6410        MACH_TINY6410       TINY6410        2521
-+nano6410        MACH_NANO6410       NANO6410        2522
-+at572d940hfnldb     MACH_AT572D940HFNLDB    AT572D940HFNLDB     2523
-+htcleo          MACH_HTCLEO     HTCLEO          2524
-+avp13           MACH_AVP13      AVP13           2525
-+xxsvideod       MACH_XXSVIDEOD      XXSVIDEOD       2526
-+vpnext          MACH_VPNEXT     VPNEXT          2527
-+swarco_itc3     MACH_SWARCO_ITC3    SWARCO_ITC3     2528
-+tx51            MACH_TX51       TX51            2529
-+dolby_cat1021       MACH_DOLBY_CAT1021  DOLBY_CAT1021       2530
-+mx28evk         MACH_MX28EVK        MX28EVK         2531
-+phoenix260      MACH_PHOENIX260     PHOENIX260      2532
-+uvaca_stork     MACH_UVACA_STORK    UVACA_STORK     2533
-+smartq5         MACH_SMARTQ5        SMARTQ5         2534
-+all3078         MACH_ALL3078        ALL3078         2535
-+ctera_2bay_ds       MACH_CTERA_2BAY_DS  CTERA_2BAY_DS       2536
-+siogentoo3      MACH_SIOGENTOO3     SIOGENTOO3      2537
-+epb5000         MACH_EPB5000        EPB5000         2538
-+hy9263          MACH_HY9263     HY9263          2539
-+acer_tempo_m900     MACH_ACER_TEMPO_M900    ACER_TEMPO_M900     2540
-+acer_tempo_dx650    MACH_ACER_TEMPO_DX900   ACER_TEMPO_DX900    2541
-+acer_tempo_x960     MACH_ACER_TEMPO_X960    ACER_TEMPO_X960     2542
-+acer_eten_v900      MACH_ACER_ETEN_V900 ACER_ETEN_V900      2543
-+acer_eten_x900      MACH_ACER_ETEN_X900 ACER_ETEN_X900      2544
-+bonnell         MACH_BONNELL        BONNELL         2545
-+oht_mx27        MACH_OHT_MX27       OHT_MX27        2546
-+htcquartz       MACH_HTCQUARTZ      HTCQUARTZ       2547
-+davinci_dm6467tevm  MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM  2548
-+c3ax03          MACH_C3AX03     C3AX03          2549
-+mxt_td60        MACH_MXT_TD60       MXT_TD60        2550
-+esyx            MACH_ESYX       ESYX            2551
-+dove_db2        MACH_DOVE_DB2       DOVE_DB2        2552
-+bulldog         MACH_BULLDOG        BULLDOG         2553
-+derell_me2000       MACH_DERELL_ME2000  DERELL_ME2000       2554
-+bcmring_base        MACH_BCMRING_BASE   BCMRING_BASE        2555
-+bcmring_evm     MACH_BCMRING_EVM    BCMRING_EVM     2556
-+bcmring_evm_jazz    MACH_BCMRING_EVM_JAZZ   BCMRING_EVM_JAZZ    2557
-+bcmring_sp      MACH_BCMRING_SP     BCMRING_SP      2558
-+bcmring_sv      MACH_BCMRING_SV     BCMRING_SV      2559
-+bcmring_sv_jazz     MACH_BCMRING_SV_JAZZ    BCMRING_SV_JAZZ     2560
-+bcmring_tablet      MACH_BCMRING_TABLET BCMRING_TABLET      2561
-+bcmring_vp      MACH_BCMRING_VP     BCMRING_VP      2562
-+bcmring_evm_seikor  MACH_BCMRING_EVM_SEIKOR BCMRING_EVM_SEIKOR  2563
-+bcmring_sp_wqvga    MACH_BCMRING_SP_WQVGA   BCMRING_SP_WQVGA    2564
-+bcmring_custom      MACH_BCMRING_CUSTOM BCMRING_CUSTOM      2565
-+acer_s200       MACH_ACER_S200      ACER_S200       2566
-+bt270           MACH_BT270      BT270           2567
-+iseo            MACH_ISEO       ISEO            2568
-+cezanne         MACH_CEZANNE        CEZANNE         2569
-+lucca           MACH_LUCCA      LUCCA           2570
-+supersmart      MACH_SUPERSMART     SUPERSMART      2571
-+arm11_board     MACH_CS_MISANO      CS_MISANO       2572
-+magnolia2       MACH_MAGNOLIA2      MAGNOLIA2       2573
-+emxx            MACH_EMXX       EMXX            2574
-+outlaw          MACH_OUTLAW     OUTLAW          2575
-+riot_bei2       MACH_RIOT_BEI2      RIOT_BEI2       2576
-+riot_vox        MACH_RIOT_VOX       RIOT_VOX        2577
-+riot_x37        MACH_RIOT_X37       RIOT_X37        2578
-+mega25mx        MACH_MEGA25MX       MEGA25MX        2579
-+benzina2        MACH_BENZINA2       BENZINA2        2580
-+ignite          MACH_IGNITE     IGNITE          2581
-+foggia          MACH_FOGGIA     FOGGIA          2582
-+arezzo          MACH_AREZZO     AREZZO          2583
-+leica_skywalker     MACH_LEICA_SKYWALKER    LEICA_SKYWALKER     2584
-+jacinto2_jamr       MACH_JACINTO2_JAMR  JACINTO2_JAMR       2585
-+gts_nova        MACH_GTS_NOVA       GTS_NOVA        2586
-+p3600           MACH_P3600      P3600           2587
-+dlt2            MACH_DLT2       DLT2            2588
-+df3120          MACH_DF3120     DF3120          2589
-+ecucore_9g20        MACH_ECUCORE_9G20   ECUCORE_9G20        2590
-+nautel_lpc3240      MACH_NAUTEL_LPC3240 NAUTEL_LPC3240      2591
-+glacier         MACH_GLACIER        GLACIER         2592
-+phrazer_bulldog     MACH_PHRAZER_BULLDOG    PHRAZER_BULLDOG     2593
-+omap3_bulldog       MACH_OMAP3_BULLDOG  OMAP3_BULLDOG       2594
-+pca101          MACH_PCA101     PCA101          2595
-+buzzc           MACH_BUZZC      BUZZC           2596
-+sasie2          MACH_SASIE2     SASIE2          2597
-+davinci_cio     MACH_DAVINCI_CIO    DAVINCI_CIO     2598
-+smartmeter_dl       MACH_SMARTMETER_DL  SMARTMETER_DL       2599
-+wzl6410         MACH_WZL6410        WZL6410         2600
-+wzl6410m        MACH_WZL6410M       WZL6410M        2601
-+wzl6410f        MACH_WZL6410F       WZL6410F        2602
-+wzl6410i        MACH_WZL6410I       WZL6410I        2603
-+spacecom1       MACH_SPACECOM1      SPACECOM1       2604
-+pingu920        MACH_PINGU920       PINGU920        2605
-+bravoc          MACH_BRAVOC     BRAVOC          2606
-+cybo2440        MACH_CYBO2440       CYBO2440        2607
-+vdssw           MACH_VDSSW      VDSSW           2608
-+romulus         MACH_ROMULUS        ROMULUS         2609
-+omap_magic      MACH_OMAP_MAGIC     OMAP_MAGIC      2610
-+eltd100         MACH_ELTD100        ELTD100         2611
-+capc7117        MACH_CAPC7117       CAPC7117        2612
-+swan            MACH_SWAN       SWAN            2613
-+veu         MACH_VEU        VEU         2614
-+rm2         MACH_RM2        RM2         2615
-+tt2100          MACH_TT2100     TT2100          2616
-+venice          MACH_VENICE     VENICE          2617
-+pc7323          MACH_PC7323     PC7323          2618
-+masp            MACH_MASP       MASP            2619
-+fujitsu_tvstbsoc0   MACH_FUJITSU_TVSTBSOC   FUJITSU_TVSTBSOC    2620
-+fujitsu_tvstbsoc1   MACH_FUJITSU_TVSTBSOC1  FUJITSU_TVSTBSOC1   2621
-+lexikon         MACH_LEXIKON        LEXIKON         2622
-+mini2440v2      MACH_MINI2440V2     MINI2440V2      2623
-+icontrol        MACH_ICONTROL       ICONTROL        2624
-+sheevad         MACH_SHEEVAD        SHEEVAD         2625
-+qsd8x50a_st1_1      MACH_QSD8X50A_ST1_1 QSD8X50A_ST1_1      2626
-+qsd8x50a_st1_5      MACH_QSD8X50A_ST1_5 QSD8X50A_ST1_5      2627
-+bee         MACH_BEE        BEE         2628
-+mx23evk         MACH_MX23EVK        MX23EVK         2629
-+ap4evb          MACH_AP4EVB     AP4EVB          2630
-+stockholm       MACH_STOCKHOLM      STOCKHOLM       2631
-+lpc_h3131       MACH_LPC_H3131      LPC_H3131       2632
-+stingray        MACH_STINGRAY       STINGRAY        2633
-+kraken          MACH_KRAKEN     KRAKEN          2634
-+gw2388          MACH_GW2388     GW2388          2635
-+jadecpu         MACH_JADECPU        JADECPU         2636
-+carlisle        MACH_CARLISLE       CARLISLE        2637
-+lux_sf9         MACH_LUX_SFT9       LUX_SFT9        2638
-+nemid_tb        MACH_NEMID_TB       NEMID_TB        2639
-+terrier         MACH_TERRIER        TERRIER         2640
-+turbot          MACH_TURBOT     TURBOT          2641
-+sanddab         MACH_SANDDAB        SANDDAB         2642
-+mx35_cicada     MACH_MX35_CICADA    MX35_CICADA     2643
-+ghi2703d        MACH_GHI2703D       GHI2703D        2644
-+lux_sfx9        MACH_LUX_SFX9       LUX_SFX9        2645
-+lux_sf9g        MACH_LUX_SF9G       LUX_SF9G        2646
-+lux_edk9        MACH_LUX_EDK9       LUX_EDK9        2647
-+hw90240         MACH_HW90240        HW90240         2648
-+dm365_leopard       MACH_DM365_LEOPARD  DM365_LEOPARD       2649
-+mityomapl138        MACH_MITYOMAPL138   MITYOMAPL138        2650
-+scat110         MACH_SCAT110        SCAT110         2651
-+acer_a1         MACH_ACER_A1        ACER_A1         2652
-+cmcontrol       MACH_CMCONTROL      CMCONTROL       2653
-+pelco_lamar     MACH_PELCO_LAMAR    PELCO_LAMAR     2654
-+rfp43           MACH_RFP43      RFP43           2655
-+sk86r0301       MACH_SK86R0301      SK86R0301       2656
-+ctpxa           MACH_CTPXA      CTPXA           2657
-+epb_arm9_a      MACH_EPB_ARM9_A     EPB_ARM9_A      2658
-+guruplug        MACH_GURUPLUG       GURUPLUG        2659
-+spear310        MACH_SPEAR310       SPEAR310        2660
-+spear320        MACH_SPEAR320       SPEAR320        2661
-+robotx          MACH_ROBOTX     ROBOTX          2662
-+lsxhl           MACH_LSXHL      LSXHL           2663
-+smartlite       MACH_SMARTLITE      SMARTLITE       2664
-+cws2            MACH_CWS2       CWS2            2665
-+m619            MACH_M619       M619            2666
-+smartview       MACH_SMARTVIEW      SMARTVIEW       2667
-+lsa_salsa       MACH_LSA_SALSA      LSA_SALSA       2668
-+kizbox          MACH_KIZBOX     KIZBOX          2669
-+htccharmer      MACH_HTCCHARMER     HTCCHARMER      2670
-+guf_neso_lt     MACH_GUF_NESO_LT    GUF_NESO_LT     2671
-+pm9g45          MACH_PM9G45     PM9G45          2672
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-print-some-more-info-from-atmel_nand.c.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-print-some-more-info-from-atmel_nand.c.patch
new file mode 100644
index 0000000..f017ab3
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0002-print-some-more-info-from-atmel_nand.c.patch
@@ -0,0 +1,42 @@
+From aad3bcfce153c15b8e6fb983ee1d27be4c0977cf Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 2 Mar 2010 01:17:56 +0200
+Subject: [[PATCH 02/22] print some more info from atmel_nand.c
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ drivers/mtd/nand/atmel_nand.c |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
+index f6dad3d..c974a56 100644
+--- a/drivers/mtd/nand/atmel_nand.c
++++ b/drivers/mtd/nand/atmel_nand.c
+@@ -411,6 +411,8 @@ static int __init atmel_nand_probe(struct platform_device *pdev)
+ 		res = -EIO;
+ 		goto err_nand_ioremap;
+ 	}
++	printk(KERN_ERR "atmel_nand: nand chip  ioremap 0x%08x(Physical) to 0x%08x(virtual) length 0x%08x\n",
++		mem->start, host->io_base, mem->end - mem->start + 1);
+ 
+ 	mtd = &host->mtd;
+ 	nand_chip = &host->nand_chip;
+@@ -515,9 +517,12 @@ static int __init atmel_nand_probe(struct platform_device *pdev)
+ 		}
+ 	}
+ 
+-	printk(KERN_INFO "AT91 NAND: %i-bit, %s ECC\n",
++	printk(KERN_INFO "AT91 NAND: %i-bit, %s ECC, Sizes: %d page, %d erase block, %d oob \n",
+ 		(nand_chip->options & NAND_BUSWIDTH_16) ? 16 : 8,
+-		ecc_modes[nand_chip->ecc.mode]
++		ecc_modes[nand_chip->ecc.mode],
++		mtd->writesize,
++		mtd->erasesize,
++		mtd->oobsize
+ 	);
+ 
+ 	/* second phase scan */
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-add-newline-at-the-end-of-uncorrectable-error.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-add-newline-at-the-end-of-uncorrectable-error.patch
new file mode 100644
index 0000000..5084860
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-add-newline-at-the-end-of-uncorrectable-error.patch
@@ -0,0 +1,27 @@
+From 0a1acf72583729d1fcffe362278f87d248e2fcd5 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 2 Mar 2010 01:19:44 +0200
+Subject: [[PATCH 03/22] add newline at the end of uncorrectable error :
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ drivers/mtd/nand/nand_ecc.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/mtd/nand/nand_ecc.c b/drivers/mtd/nand/nand_ecc.c
+index 868147a..958bf49 100644
+--- a/drivers/mtd/nand/nand_ecc.c
++++ b/drivers/mtd/nand/nand_ecc.c
+@@ -492,7 +492,7 @@ int nand_correct_data(struct mtd_info *mtd, unsigned char *buf,
+ 	if ((bitsperbyte[b0] + bitsperbyte[b1] + bitsperbyte[b2]) == 1)
+ 		return 1;	/* error in ecc data; no action needed */
+ 
+-	printk(KERN_ERR "uncorrectable error : ");
++	printk(KERN_ERR "uncorrectable error : \n");
+ 	return -1;
+ }
+ EXPORT_SYMBOL(nand_correct_data);
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-print-some-more-info-from-atmel_nand.c.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-print-some-more-info-from-atmel_nand.c.patch
deleted file mode 100644
index 910a597..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0003-print-some-more-info-from-atmel_nand.c.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From ccbca3b163447d30352ddb94388693b320864bfc Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:17:56 +0200
-Subject: [PATCH] print some more info from atmel_nand.c
-
----
- drivers/mtd/nand/atmel_nand.c |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
-index f6dad3d..c974a56 100644
---- a/drivers/mtd/nand/atmel_nand.c
-+++ b/drivers/mtd/nand/atmel_nand.c
-@@ -411,6 +411,8 @@ static int __init atmel_nand_probe(struct platform_device *pdev)
- 		res = -EIO;
- 		goto err_nand_ioremap;
- 	}
-+	printk(KERN_ERR "atmel_nand: nand chip  ioremap 0x%08x(Physical) to 0x%08x(virtual) length 0x%08x\n",
-+		mem->start, host->io_base, mem->end - mem->start + 1);
- 
- 	mtd = &host->mtd;
- 	nand_chip = &host->nand_chip;
-@@ -515,9 +517,12 @@ static int __init atmel_nand_probe(struct platform_device *pdev)
- 		}
- 	}
- 
--	printk(KERN_INFO "AT91 NAND: %i-bit, %s ECC\n",
-+	printk(KERN_INFO "AT91 NAND: %i-bit, %s ECC, Sizes: %d page, %d erase block, %d oob \n",
- 		(nand_chip->options & NAND_BUSWIDTH_16) ? 16 : 8,
--		ecc_modes[nand_chip->ecc.mode]
-+		ecc_modes[nand_chip->ecc.mode],
-+		mtd->writesize,
-+		mtd->erasesize,
-+		mtd->oobsize
- 	);
- 
- 	/* second phase scan */
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-Add-CompactFlash-to-at91sam9g45-architecture.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-Add-CompactFlash-to-at91sam9g45-architecture.patch
new file mode 100644
index 0000000..dc0a90f
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-Add-CompactFlash-to-at91sam9g45-architecture.patch
@@ -0,0 +1,145 @@
+From 72b2a5ec84c688d9be0e398b2007d22aa360ab3c Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 2 Mar 2010 01:51:37 +0200
+Subject: [[PATCH 04/22] Add CompactFlash to at91sam9g45 architecture
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/at91sam9g45_devices.c |  106 ++++++++++++++++++++++++++++++
+ drivers/pcmcia/Kconfig                   |    2 +-
+ 2 files changed, 107 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
+index 3d9c66e..26d2b72 100644
+--- a/arch/arm/mach-at91/at91sam9g45_devices.c
++++ b/arch/arm/mach-at91/at91sam9g45_devices.c
+@@ -507,6 +507,112 @@ void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)
+ void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data) {}
+ #endif
+ 
++/* --------------------------------------------------------------------
++ *  Compact Flash (PCMCIA or IDE)
++ * --------------------------------------------------------------------
++ */
++
++#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
++	defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
++
++static struct at91_cf_data cf0_data;
++
++static struct resource cf0_resources[] = {
++	[0] = {
++		.start	= AT91_CHIPSELECT_4,
++		.end	= AT91_CHIPSELECT_4 + SZ_256M - 1,
++		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
++	}
++};
++
++static struct platform_device cf0_device = {
++	.id		= 0,
++	.dev		= {
++				.platform_data	= &cf0_data,
++	},
++	.resource	= cf0_resources,
++	.num_resources	= ARRAY_SIZE(cf0_resources),
++};
++
++static struct at91_cf_data cf1_data;
++
++static struct resource cf1_resources[] = {
++	[0] = {
++		.start	= AT91_CHIPSELECT_5,
++		.end	= AT91_CHIPSELECT_5 + SZ_256M - 1,
++		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
++	}
++};
++
++static struct platform_device cf1_device = {
++	.id		= 1,
++	.dev		= {
++				.platform_data	= &cf1_data,
++	},
++	.resource	= cf1_resources,
++	.num_resources	= ARRAY_SIZE(cf1_resources),
++};
++
++void __init at91_add_device_cf(struct at91_cf_data *data)
++{
++	unsigned long csa;
++	struct platform_device *pdev;
++
++	if (!data)
++		return;
++
++	/*
++	 * assign CS4 or CS5 to SMC with Compact Flash logic support,
++	 * we assume SMC timings are configured by board code,
++	 * except True IDE where timings are controlled by driver
++	 */
++	csa = at91_sys_read(AT91_MATRIX_EBICSA);
++	switch (data->chipselect) {
++	case 4:
++		at91_set_A_periph(AT91_PIN_PC10, 0); /* EBI0_NCS4/CFCS0 */
++		csa |= AT91_MATRIX_EBI_CS4A_SMC_CF0;
++		cf0_data = *data;
++		pdev = &cf0_device;
++		break;
++	case 5:
++		at91_set_A_periph(AT91_PIN_PC11, 0); /* EBI0_NCS5/CFCS1 */
++		csa |= AT91_MATRIX_EBI_CS5A_SMC_CF1;
++		cf1_data = *data;
++		pdev = &cf1_device;
++		break;
++	default:
++		printk(KERN_ERR "AT91 CF: bad chip-select requested (%u)\n",
++			data->chipselect);
++		return;
++	}
++	at91_sys_write(AT91_MATRIX_EBICSA, csa);
++
++	if (data->det_pin) {
++		at91_set_gpio_input(data->det_pin, 1);
++		at91_set_deglitch(data->det_pin, 1);
++	}
++
++	if (data->irq_pin) {
++		at91_set_gpio_input(data->irq_pin, 1);
++		at91_set_deglitch(data->irq_pin, 1);
++	}
++
++	if (data->vcc_pin)
++		/* initially off */
++		at91_set_gpio_output(data->vcc_pin, 0);
++
++	/* enable EBI controlled pins */
++	at91_set_A_periph(AT91_PIN_PC15, 0); /* NWAIT */
++	at91_set_A_periph(AT91_PIN_PC8, 0); /* CFCE1 */
++	at91_set_A_periph(AT91_PIN_PC9, 0); /* CFCE2 */
++	at91_set_A_periph(AT91_PIN_PC12, 0); /* CFNRW */
++
++	pdev->name = (data->flags & AT91_CF_TRUE_IDE) ? "at91_ide" : "at91_cf";
++	platform_device_register(pdev);
++}
++#else
++void __init at91_add_device_cf(struct at91_cf_data *data) {}
++#endif
+ 
+ /* --------------------------------------------------------------------
+  *  NAND / SmartMedia
+diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
+index e42d141..5790c67 100644
+--- a/drivers/pcmcia/Kconfig
++++ b/drivers/pcmcia/Kconfig
+@@ -270,7 +270,7 @@ config BFIN_CFPCMCIA
+ 
+ config AT91_CF
+ 	tristate "AT91 CompactFlash Controller"
+-	depends on PCMCIA && (ARCH_AT91RM9200 || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20)
++	depends on PCMCIA && (ARCH_AT91RM9200 || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45)
+ 	help
+ 	  Say Y here to support the CompactFlash controller on AT91 chips.
+ 	  Or choose M to compile the driver as a module named "at91_cf".
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-add-newline-at-the-end-of-uncorrectable-error.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-add-newline-at-the-end-of-uncorrectable-error.patch
deleted file mode 100644
index 397138f..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0004-add-newline-at-the-end-of-uncorrectable-error.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 9581bc758367d20b9d0eedc9e4c5c678ebd6ba36 Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:19:44 +0200
-Subject: [PATCH] add newline at the end of uncorrectable error :
-
----
- drivers/mtd/nand/nand_ecc.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/mtd/nand/nand_ecc.c b/drivers/mtd/nand/nand_ecc.c
-index 868147a..958bf49 100644
---- a/drivers/mtd/nand/nand_ecc.c
-+++ b/drivers/mtd/nand/nand_ecc.c
-@@ -492,7 +492,7 @@ int nand_correct_data(struct mtd_info *mtd, unsigned char *buf,
- 	if ((bitsperbyte[b0] + bitsperbyte[b1] + bitsperbyte[b2]) == 1)
- 		return 1;	/* error in ecc data; no action needed */
- 
--	printk(KERN_ERR "uncorrectable error : ");
-+	printk(KERN_ERR "uncorrectable error : \n");
- 	return -1;
- }
- EXPORT_SYMBOL(nand_correct_data);
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-Add-CompactFlash-to-at91sam9g45-architecture.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-Add-CompactFlash-to-at91sam9g45-architecture.patch
deleted file mode 100644
index e970520..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-Add-CompactFlash-to-at91sam9g45-architecture.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 2297a86fcf8d9e2ecceee3d0905a8f054d91e9a5 Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:51:37 +0200
-Subject: [PATCH] Add CompactFlash to at91sam9g45 architecture
-
----
- arch/arm/mach-at91/at91sam9g45_devices.c |  106 ++++++++++++++++++++++++++++++
- drivers/pcmcia/Kconfig                   |    2 +-
- 2 files changed, 107 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
-index 3d9c66e..26d2b72 100644
---- a/arch/arm/mach-at91/at91sam9g45_devices.c
-+++ b/arch/arm/mach-at91/at91sam9g45_devices.c
-@@ -507,6 +507,112 @@ void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)
- void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data) {}
- #endif
- 
-+/* --------------------------------------------------------------------
-+ *  Compact Flash (PCMCIA or IDE)
-+ * --------------------------------------------------------------------
-+ */
-+
-+#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
-+	defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
-+
-+static struct at91_cf_data cf0_data;
-+
-+static struct resource cf0_resources[] = {
-+	[0] = {
-+		.start	= AT91_CHIPSELECT_4,
-+		.end	= AT91_CHIPSELECT_4 + SZ_256M - 1,
-+		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
-+	}
-+};
-+
-+static struct platform_device cf0_device = {
-+	.id		= 0,
-+	.dev		= {
-+				.platform_data	= &cf0_data,
-+	},
-+	.resource	= cf0_resources,
-+	.num_resources	= ARRAY_SIZE(cf0_resources),
-+};
-+
-+static struct at91_cf_data cf1_data;
-+
-+static struct resource cf1_resources[] = {
-+	[0] = {
-+		.start	= AT91_CHIPSELECT_5,
-+		.end	= AT91_CHIPSELECT_5 + SZ_256M - 1,
-+		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
-+	}
-+};
-+
-+static struct platform_device cf1_device = {
-+	.id		= 1,
-+	.dev		= {
-+				.platform_data	= &cf1_data,
-+	},
-+	.resource	= cf1_resources,
-+	.num_resources	= ARRAY_SIZE(cf1_resources),
-+};
-+
-+void __init at91_add_device_cf(struct at91_cf_data *data)
-+{
-+	unsigned long csa;
-+	struct platform_device *pdev;
-+
-+	if (!data)
-+		return;
-+
-+	/*
-+	 * assign CS4 or CS5 to SMC with Compact Flash logic support,
-+	 * we assume SMC timings are configured by board code,
-+	 * except True IDE where timings are controlled by driver
-+	 */
-+	csa = at91_sys_read(AT91_MATRIX_EBICSA);
-+	switch (data->chipselect) {
-+	case 4:
-+		at91_set_A_periph(AT91_PIN_PC10, 0); /* EBI0_NCS4/CFCS0 */
-+		csa |= AT91_MATRIX_EBI_CS4A_SMC_CF0;
-+		cf0_data = *data;
-+		pdev = &cf0_device;
-+		break;
-+	case 5:
-+		at91_set_A_periph(AT91_PIN_PC11, 0); /* EBI0_NCS5/CFCS1 */
-+		csa |= AT91_MATRIX_EBI_CS5A_SMC_CF1;
-+		cf1_data = *data;
-+		pdev = &cf1_device;
-+		break;
-+	default:
-+		printk(KERN_ERR "AT91 CF: bad chip-select requested (%u)\n",
-+			data->chipselect);
-+		return;
-+	}
-+	at91_sys_write(AT91_MATRIX_EBICSA, csa);
-+
-+	if (data->det_pin) {
-+		at91_set_gpio_input(data->det_pin, 1);
-+		at91_set_deglitch(data->det_pin, 1);
-+	}
-+
-+	if (data->irq_pin) {
-+		at91_set_gpio_input(data->irq_pin, 1);
-+		at91_set_deglitch(data->irq_pin, 1);
-+	}
-+
-+	if (data->vcc_pin)
-+		/* initially off */
-+		at91_set_gpio_output(data->vcc_pin, 0);
-+
-+	/* enable EBI controlled pins */
-+	at91_set_A_periph(AT91_PIN_PC15, 0); /* NWAIT */
-+	at91_set_A_periph(AT91_PIN_PC8, 0); /* CFCE1 */
-+	at91_set_A_periph(AT91_PIN_PC9, 0); /* CFCE2 */
-+	at91_set_A_periph(AT91_PIN_PC12, 0); /* CFNRW */
-+
-+	pdev->name = (data->flags & AT91_CF_TRUE_IDE) ? "at91_ide" : "at91_cf";
-+	platform_device_register(pdev);
-+}
-+#else
-+void __init at91_add_device_cf(struct at91_cf_data *data) {}
-+#endif
- 
- /* --------------------------------------------------------------------
-  *  NAND / SmartMedia
-diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
-index e42d141..5790c67 100644
---- a/drivers/pcmcia/Kconfig
-+++ b/drivers/pcmcia/Kconfig
-@@ -270,7 +270,7 @@ config BFIN_CFPCMCIA
- 
- config AT91_CF
- 	tristate "AT91 CompactFlash Controller"
--	depends on PCMCIA && (ARCH_AT91RM9200 || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20)
-+	depends on PCMCIA && (ARCH_AT91RM9200 || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45)
- 	help
- 	  Say Y here to support the CompactFlash controller on AT91 chips.
- 	  Or choose M to compile the driver as a module named "at91_cf".
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch
new file mode 100644
index 0000000..547a90c
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0005-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch
@@ -0,0 +1,62 @@
+From 481c2a19d16f8d11b220a6d626a1e5c50ac8b08e Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 2 Mar 2010 01:54:36 +0200
+Subject: [[PATCH 05/22] pm9g45 system ram can be on CS1 or CS6
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/Makefile.boot              |   10 ++++++++++
+ arch/arm/mach-at91/include/mach/at91sam9g45.h |   17 +++++++++++++++++
+ 2 files changed, 27 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot
+index ced8bdc..d74f5ab 100644
+--- a/arch/arm/mach-at91/Makefile.boot
++++ b/arch/arm/mach-at91/Makefile.boot
+@@ -20,3 +20,13 @@ else
+ params_phys-y	:= 0x20000100
+ initrd_phys-y	:= 0x20410000
+ endif
++
++ifeq ($(CONFIG_PM9G45_SYSTEM_RAM_CS1),y)
++          zreladdr-y   := 0x20008000
++       params_phys-y   := 0x20000100
++       initrd_phys-y   := 0x20410000
++else ifeq ($(CONFIG_PM9G45_SYSTEM_RAM_CS6),y)
++          zreladdr-y   := 0x70008000
++       params_phys-y   := 0x70000100
++       initrd_phys-y   := 0x70410000
++endif
+diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h
+index a526869..324d876 100644
+--- a/arch/arm/mach-at91/include/mach/at91sam9g45.h
++++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h
+@@ -131,7 +131,24 @@
+ #define AT91SAM9G45_EHCI_BASE	0x00800000	/* USB Host controller (EHCI) */
+ #define AT91SAM9G45_VDEC_BASE	0x00900000	/* Video Decoder Controller */
+ 
++/*
++ * This one should have a better place, it is a board dependent.
++ */
++#if defined(CONFIG_MACH_AT91SAM9G45EKES)
++#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
++#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS1)
++#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_1
++#define CONFIG_DRAM_SIZE	SZ_128M
++#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6
++#define CONFIG_VRAM_SIZE	SZ_64M
++#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS6)
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
++#define CONFIG_DRAM_SIZE	SZ_64M
++#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_1
++#define CONFIG_VRAM_SIZE_	SZ_128M
++#else
++#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
++#endif
+ 
+ #define CONSISTENT_DMA_SIZE	SZ_4M
+ 
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-add-board-pm9g45.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-add-board-pm9g45.patch
new file mode 100644
index 0000000..3e838c4
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-add-board-pm9g45.patch
@@ -0,0 +1,1005 @@
+From b1cdc0481a5a228124de3b9319fd0a7c6ebb9e23 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 19 Oct 2010 17:19:20 +0300
+Subject: [[PATCH 06/22] add board pm9g45
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/Kconfig        |   73 +++-
+ arch/arm/mach-at91/Makefile       |    1 +
+ arch/arm/mach-at91/board-pm9g45.c |  874 +++++++++++++++++++++++++++++++++++++
+ 3 files changed, 946 insertions(+), 2 deletions(-)
+ create mode 100644 arch/arm/mach-at91/board-pm9g45.c
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index 04c6c4c..ab7e4e2 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -413,6 +413,75 @@ config MACH_AT91SAM9G45EKES
+ 	  "ES" at the end of the name means that this board is an
+ 	  Engineering Sample.
+ 
++config MACH_PM9G45
++       bool "Ronetix PM9G45 Evaluation Kit"
++       depends on ARCH_AT91SAM9G45
++       help
++         Select this if you are using Ronetix's PM9G45 board.
++         <http://ronetix.at/starter_kit_9g45.html>
++choice
++       prompt "System RAM base address"
++       depends on MACH_PM9G45
++       help
++         AT91SAM9G45 has two DDR2 controlers, one CS1 on 0x20000000
++         and CS6 on 0x70000000 memmory addresses. You can choose
++         the where th system RAM to be.
++
++config PM9G45_SYSTEM_RAM_CS1
++       bool "System RAM: CS1 on 0x20000000 with 128MB"
++       depends on MACH_PM9G45
++       help
++         CS1 will be used for system ram and CS6 for video memory.
++
++config PM9G45_SYSTEM_RAM_CS6
++       bool "System RAM: CS6 on 0x70000000"
++       depends on MACH_PM9G45
++       help
++         CS6 will be used for system ram and for video ram.
++
++endchoice
++
++config VRAM_SIZE
++       prompt "Video RAM size"
++       depends on (MACH_PM9G45 && PM9G45_SYSTEM_RAM_CS6)
++       hex
++       help
++         Determine the size of ram for video. It will be located at the end of CS6.
++       default 0x400000
++
++choice
++       prompt "LCD Display"
++
++config PM9G45_LCD_TX09D70
++       bool "3.5\", 320x240 Hitachi TX09D70"
++       depends on MACH_PM9G45
++
++config PM9G45_LCD_RA158
++       bool "4.3\", 800x480 Seiko RA158"
++       depends on MACH_PM9G45
++
++config PM9G45_LCD_TCG057VGLAC
++       bool "5.7\", 640x480 Kyocera TCG057VGLAC"
++       depends on MACH_PM9G45
++
++config PM9G45_LCD_GTTV57NN771E0
++       bool "5.7\", 640x480 Solomon GTTV57NN771E0"
++       depends on MACH_PM9G45
++
++config PM9G45_LCD_GLAA057VA01CW
++       bool "5.7\", 640x480 CPT CLAA057VA01CW"
++       depends on MACH_PM9G45
++
++config PM9G45_LCD_GATW70SN8H1E0
++       bool "7.0\", 800x480 Solomon GATW70SN8H1E0"
++       depends on MACH_PM9G45
++
++config PM9G45_LCD_CLAA080MB0ACW
++       bool "8.0\", 800x600 CPT CLAA080MB0ACW"
++       depends on MACH_PM9G45
++
++endchoice
++
+ endif
+ 
+ # ----------------------------------------------------------
+@@ -483,13 +552,13 @@ comment "AT91 Board Options"
+ 
+ config MTD_AT91_DATAFLASH_CARD
+ 	bool "Enable DataFlash Card support"
+-	depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926)
++	depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926 || MACH_PM9G45)
+ 	help
+ 	  Enable support for the DataFlash card.
+ 
+ config MTD_NAND_ATMEL_BUSWIDTH_16
+ 	bool "Enable 16-bit data bus interface to NAND flash"
+-	depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK || MACH_AT572D940HFEB)
++	depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_PM9G45)
+ 	help
+ 	  On AT91SAM926x boards both types of NAND flash can be present
+ 	  (8 and 16 bit data bus width).
+diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
+index 6ccaba5..11e1d5e 100644
+--- a/arch/arm/mach-at91/Makefile
++++ b/arch/arm/mach-at91/Makefile
+@@ -74,6 +74,7 @@ obj-$(CONFIG_MACH_SBC35_A9G20)	 += board-sbc35-a9g20.o
+ # AT91SAM9G45 board-specific support
+ obj-$(CONFIG_MACH_AT91SAM9G45EKES) += board-sam9m10g45ek.o
+ obj-$(CONFIG_MACH_AT91SAM9M10EKES) += board-sam9m10g45ek.o
++obj-$(CONFIG_MACH_PM9G45) += board-pm9g45.o
+ 
+ # AT91CAP9 board-specific support
+ obj-$(CONFIG_MACH_AT91CAP9ADK)	+= board-cap9adk.o
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+new file mode 100644
+index 0000000..aa64b39
+--- /dev/null
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -0,0 +1,874 @@
++/*
++ *  Board-specific setup code for the AT91SAM9M10G45 Evaluation Kit family
++ *
++ *  Covers: * AT91SAM9G45-EKES  board
++ *          * AT91SAM9M10G45-EK board
++ *
++ *  Copyright (C) 2009 Atmel Corporation.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ */
++/*
++ * Based on board-sam9m10g45ek.c
++ * filename: board-pm9g45.c
++ * date: 05.02.2010
++ */
++
++#include <linux/types.h>
++#include <linux/init.h>
++#include <linux/mm.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/ads7846.h>
++#include <linux/fb.h>
++#include <linux/gpio_keys.h>
++#include <linux/input.h>
++#include <linux/leds.h>
++#include <linux/clk.h>
++#include <linux/w1-gpio.h>
++#include <linux/atmel-mci.h>
++
++#include <mach/hardware.h>
++#include <video/atmel_lcdc.h>
++
++#include <asm/setup.h>
++#include <asm/mach-types.h>
++#include <asm/irq.h>
++
++#include <asm/mach/arch.h>
++#include <asm/mach/map.h>
++#include <asm/mach/irq.h>
++
++#include <mach/at91sam9g45_matrix.h>
++
++#include <mach/hardware.h>
++#include <mach/board.h>
++#include <mach/gpio.h>
++#include <mach/at91sam9_smc.h>
++#include <mach/at91_shdwc.h>
++
++#include "sam9_smc.h"
++#include "generic.h"
++
++static void __init pm9g45_map_io(void)
++{
++	/* Initialize processor: 12.000 MHz crystal */
++	at91sam9g45_initialize(12000000);
++
++	/* DGBU on ttyS0. (Rx & Tx only) */
++	at91_register_uart(0, 0, 0);
++
++	/* USART0 not connected on the -EK board */
++	/* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
++	at91_register_uart(AT91SAM9G45_ID_US1, 2,
++		ATMEL_UART_CTS | ATMEL_UART_RTS);
++
++	/* set serial console to ttyS0 (ie, DBGU) */
++	at91_set_serial_console(0);
++}
++
++static void __init pm9g45_init_irq(void)
++{
++	at91sam9g45_init_interrupts(NULL);
++}
++
++/*
++ * USB HS Host port (common to OHCI & EHCI)
++ */
++static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
++	.ports		= 2,
++	.vbus_pin	= { 0, 0},
++};
++
++/*
++ * USB HS Device port
++ */
++static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
++	.vbus_pin	= AT91_PIN_PD1,
++};
++
++/*
++ * ADS7846 Touchscreen
++ */
++#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
++	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
++static int ads7843_pendown_state(void)
++{
++	return !at91_get_gpio_value(AT91_PIN_PD18);	/* Touchscreen PENIRQ */
++}
++
++static struct ads7846_platform_data ads_info = {
++	.model			= 7843,
++	.x_min			= 150,
++	.x_max			= 3830,
++	.y_min			= 190,
++	.y_max			= 3830,
++	.settle_delay_usecs	= 2000,
++	.keep_vref_on		= 1,
++	.vref_delay_usecs	= 500,
++	.x_plate_ohms		= 607,
++	.y_plate_ohms		= 232,
++	.pressure_max		= 15000,
++	.debounce_max		= 1,
++	.debounce_rep		= 1, //0
++	.debounce_tol		= (50), //(~0)
++	.get_pendown_state	= ads7843_pendown_state,
++	.penirq_recheck_delay_usecs = 200,
++};
++
++static void __init pm9g45_add_device_ts(void)
++{
++	at91_set_gpio_input(AT91_PIN_PD18, 1);	/* External IRQ, with pullup */
++	at91_set_gpio_input(AT91_PIN_PE31, 1);	/* Touchscreen BUSY signal */
++}
++#else
++static void __init pm9g45_add_device_ts(void) {}
++#endif
++static struct at91_tsadcc_data pm9g45_tsadcc_data = {
++	.adc_clock		= 300000,
++	.pendet_debounce	= 0x0d,
++	.ts_sample_hold_time	= 0x0a,
++};
++
++/*
++ * SPI devices.
++ */
++static struct spi_board_info pm9g45_spi_devices[] = {
++#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
++	{	/* DataFlash card */
++		.modalias	= "mtd_dataflash",
++		.chip_select	= 0,
++		.max_speed_hz	= 15 * 1000 * 1000,
++		.bus_num	= 0,
++	},
++#endif
++#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
++	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
++	{
++		.modalias	= "ads7846",
++		.chip_select	= 0,
++		.max_speed_hz	= 125000 * 16,	/* max sample rate * clocks per sample */
++		.bus_num	= 1,
++		.platform_data	= &ads_info,
++		.irq		= AT91_PIN_PD18,
++	},
++#endif
++};
++
++/*
++ * MCI (SD/MMC)
++ */
++static struct mci_platform_data __initdata pm9g45_mci0_data = {
++	.slot[0] = {
++		.bus_width	= 4,
++		.detect_pin	= AT91_PIN_PD30,
++		.wp_pin		= AT91_PIN_PD29,
++		//	.vcc_pin	= ... not connected
++	}
++};
++
++/*
++ * MACB Ethernet device
++ */
++static struct at91_eth_data __initdata pm9g45_macb_data = {
++	.phy_irq_pin	= AT91_PIN_PD5,
++	.is_rmii	= 1,
++};
++
++/*
++ * NAND flash
++ */
++static struct mtd_partition __initdata pm9g45_nand_partition[] = {
++	{
++		.name	= "Partition 1",
++		.offset	= 0,
++		.size	= MTDPART_SIZ_FULL,
++	},
++
++};
++
++static struct mtd_partition * __init nand_partitions(int size,
++	int *num_partitions)
++{
++	*num_partitions = ARRAY_SIZE(pm9g45_nand_partition);
++	return pm9g45_nand_partition;
++}
++
++/* det_pin is not connected */
++static struct atmel_nand_data __initdata pm9g45_nand_data = {
++	.ale		= 21,
++	.cle		= 22,
++ //	.det_pin	= ... not connected
++	.rdy_pin	= AT91_PIN_PD3,
++//	.rdy_pin_active_low	= 0,
++	.enable_pin	= AT91_PIN_PC14,
++	.partition_info	= nand_partitions,
++#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16)
++	.bus_width_16	= 1,
++#else
++	.bus_width_16	= 0,
++#endif
++};
++
++static struct sam9_smc_config __initdata pm9g45_nand_smc_config = {
++	.ncs_read_setup		= 0,
++	.nrd_setup		= 1,
++	.ncs_write_setup	= 0,
++	.nwe_setup		= 1,
++
++	.ncs_read_pulse		= 2, /* 3*/
++	.nrd_pulse		= 3, /* 3 */
++	.ncs_write_pulse	= 3, /* 3 */
++	.nwe_pulse		= 4, /* 3*/
++
++	.read_cycle		= 4, /* 5*/
++	.write_cycle		= 7, /* 5*/
++
++	.mode			= AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
++				AT91_SMC_EXNWMODE_DISABLE,
++	.tdf_cycles		= 3, /* 2*/
++};
++
++static void __init pm9g45_add_device_nand(void)
++{
++	/* setup bus-width (8 or 16) */
++	if (pm9g45_nand_data.bus_width_16)
++		pm9g45_nand_smc_config.mode |= AT91_SMC_DBW_16;
++	else
++		pm9g45_nand_smc_config.mode |= AT91_SMC_DBW_8;
++
++	/* configure chip-select 3 (NAND) */
++	sam9_smc_configure(3, &pm9g45_nand_smc_config);
++
++	at91_add_device_nand(&pm9g45_nand_data);
++}
++
++/*
++ * LCD Controller
++ */
++#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
++
++#define AT91SAM9G45_DEFAULT_LCDCON2	(ATMEL_LCDC_MEMOR_LITTLE \
++					| ATMEL_LCDC_DISTYPE_TFT \
++					| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
++
++static void at91_lcdc_power_control(int on)
++{
++	at91_set_gpio_value(AT91_PIN_PE6, on);
++}
++
++static u64 lcdc_dmamask = 0xffffffffUL;
++static struct atmel_lcdfb_info lcdc_data;
++
++static struct resource lcdc_resources[] = {
++	[0] = {
++		.start	= AT91SAM9G45_LCDC_BASE,
++		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
++		.flags	= IORESOURCE_MEM,
++	},
++	[1] = {
++		.start	= CONFIG_VRAM_BASE,
++		.end	= CONFIG_VRAM_BASE + CONFIG_VRAM_SIZE - 1,
++		.flags	= IORESOURCE_MEM,
++	},
++	[2] = {
++		.start	= AT91SAM9G45_ID_LCDC,
++		.end	= AT91SAM9G45_ID_LCDC,
++		.flags	= IORESOURCE_IRQ,
++	},
++};
++
++static struct platform_device at91_lcdc_device = {
++	.name		= "atmel_lcdfb",
++	.id		= 0,
++	.dev		= {
++				.dma_mask		= &lcdc_dmamask,
++				.coherent_dma_mask	= 0xffffffffUL,
++				.platform_data		= &lcdc_data,
++	},
++	.resource	= lcdc_resources,
++	.num_resources	= ARRAY_SIZE(lcdc_resources),
++};
++
++static void __init pm9g45_add_device_lcdc(struct atmel_lcdfb_info *data)
++{
++	if (!data)
++		return;
++
++	at91_set_A_periph(AT91_PIN_PE0, 0);	/* LCDDPWR */
++	at91_set_A_periph(AT91_PIN_PE3, 0);	/* LCDVSYNC */
++	at91_set_A_periph(AT91_PIN_PE4, 0);	/* LCDHSYNC */
++	at91_set_A_periph(AT91_PIN_PE5, 0);	/* LCDDOTCK */
++
++	at91_set_A_periph(AT91_PIN_PE2, 0);	/* LCDCC */
++	/* at91_set_A_periph(AT91_PIN_PE7, 0); Not used */	/* LCDD0/LCDD2 */
++	/* at91_set_A_periph(AT91_PIN_PE8, 0); Not used */	/* LCDD1/LCDD3 */
++	at91_set_A_periph(AT91_PIN_PE9, 0);	/* LCDD2_R0 */
++	at91_set_A_periph(AT91_PIN_PE10, 0);	/* LCDD3_R1 */
++	at91_set_A_periph(AT91_PIN_PE11, 0);	/* LCDD4_R2 */
++	at91_set_A_periph(AT91_PIN_PE12, 0);	/* LCDD5_R3 */
++	at91_set_A_periph(AT91_PIN_PE13, 0);	/* LCDD6_R4 */
++	at91_set_A_periph(AT91_PIN_PE14, 0);	/* LCDD7_R5 */
++	/* at91_set_A_periph(AT91_PIN_PE15, 0); Not used */	/* LCDD8/LCDD12 */
++	/* at91_set_A_periph(AT91_PIN_PE16, 0); Not used */	/* LCDD9/LCDD13 */
++	at91_set_A_periph(AT91_PIN_PE17, 0);	/* LCDD10_G0 */
++	at91_set_A_periph(AT91_PIN_PE18, 0);	/* LCDD11_G1 */
++	at91_set_A_periph(AT91_PIN_PE19, 0);	/* LCDD12_G2 */
++	at91_set_A_periph(AT91_PIN_PE20, 0);	/* LCDD13_G3 */
++	at91_set_A_periph(AT91_PIN_PE21, 0);	/* LCDD14_G4 */
++	at91_set_A_periph(AT91_PIN_PE22, 0);	/* LCDD15_G5 */
++	/* at91_set_A_periph(AT91_PIN_PE23, 0); Not used */	/* LCDD8/LCDD12 */
++	/* at91_set_A_periph(AT91_PIN_PE24, 0); Not used */	/* LCDD9/LCDD13 */
++	at91_set_A_periph(AT91_PIN_PE25, 0);	/* LCDD18_B0 */
++	at91_set_A_periph(AT91_PIN_PE26, 0);	/* LCDD19_B1 */
++	at91_set_A_periph(AT91_PIN_PE27, 0);	/* LCDD20_B2 */
++	at91_set_A_periph(AT91_PIN_PE28, 0);	/* LCDD21_B3 */
++	at91_set_A_periph(AT91_PIN_PE29, 0);	/* LCDD22_B4 */
++	at91_set_A_periph(AT91_PIN_PE30, 0);	/* LCDD23_B5 */
++
++	lcdc_data = *data;
++	platform_device_register(&at91_lcdc_device);
++}
++
++#if defined(CONFIG_PM9G45_LCD_TX09D70)
++/* Hitachi TX09D70VM1CCA - 3.5", 320x240 */
++static struct fb_videomode at91_tft_vga_modes[] = {
++	{
++		.name			= "TX09D50VM1CCA @ 60",
++		.refresh		= 60,
++		.xres			= 240,
++		.yres			= 320,
++		.pixclock		= KHZ2PICOS(4965),
++		.left_margin		= 1,
++		.right_margin		= 33,
++		.upper_margin		= 1,
++		.lower_margin		= 0,
++		.hsync_len		= 5,
++		.vsync_len		= 1,
++		.sync			= FB_SYNC_HOR_HIGH_ACT |
++					FB_SYNC_VERT_HIGH_ACT,
++		.vmode			= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs at91fb_default_monspecs = {
++	.manufacturer	= "HIT",
++	.monitor	= "TX09D70VM1CCA",
++	.modedb		= at91_tft_vga_modes,
++	.modedb_len	= ARRAY_SIZE(at91_tft_vga_modes),
++	.hfmin		= 15000,
++	.hfmax		= 64000,
++	.vfmin		= 50,
++	.vfmax		= 150,
++};
++
++/* Driver datas */
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.lcdcon_is_backlight		= true,
++	.default_bpp			= 16,
++	.default_dmacon			= ATMEL_LCDC_DMAEN,
++	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs		= &at91fb_default_monspecs,
++	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
++	.guard_time			= 1,
++	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
++};
++
++#elif defined(CONFIG_PM9G45_LCD_RA158)
++/* Seiko RA158 - 4.3", 800x480, 350cd */
++static struct fb_videomode __initdata tft_modes[] = {
++	{
++		.name			= "800x480 @ 60",
++		.refresh		= 60,
++		.xres			= 800,
++		.yres			= 480,
++		.pixclock		= KHZ2PICOS(10000),
++		.left_margin		= 89,
++		.right_margin		= 164,
++		.upper_margin		= 23,
++		.lower_margin		= 10,
++		.hsync_len		= 10,
++		.vsync_len		= 10,
++		.sync			= 0,
++		.vmode			= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs __initdata tft_default_monspecs = {
++	.manufacturer		= "SEI",
++	.monitor		= "RA158Z",
++	.modedb			= tft_modes,
++	.modedb_len		= ARRAY_SIZE(tft_modes),
++	.hfmin			= 10000,
++	.hfmax			= 35000,
++	.vfmin			= 40,
++	.vfmax			= 90,
++	.dclkmax		= 35000000,
++};
++
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.default_bpp		= 24,
++	.default_dmacon		= ATMEL_LCDC_DMAEN,
++	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs	= &tft_default_monspecs,
++	.guard_time		= 2,
++};
++
++#elif defined(CONFIG_PM9G45_LCD_TCG057VGLAC)
++/* Kyocera TCG057VGLAC - 5.7", 640x480 */
++static struct fb_videomode at91_tft_vga_modes[] = {
++	{
++		.name		= "TCG057VGLAC @ 60",
++		.refresh	= 60,
++		.xres		= 640,
++		.yres		= 480,
++		.pixclock	= KHZ2PICOS(25000),
++		.hsync_len	= 5,
++		.left_margin	= 1,
++		.right_margin	= 33,
++		.vsync_len	= 1,
++		.upper_margin	= 4,
++		.lower_margin	= 0,
++		.sync		= 0,
++		.vmode		= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs at91fb_default_monspecs = {
++	.manufacturer	= "KYO",
++	.monitor	= "TCG057VGLAC",
++	.modedb		= at91_tft_vga_modes,
++	.modedb_len	= ARRAY_SIZE(at91_tft_vga_modes),
++	.hfmin		= 15000,
++	.hfmax		= 64000,
++	.vfmin		= 50,
++	.vfmax		= 150,
++};
++
++/* Driver datas */
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.lcdcon_is_backlight		= true,
++	.default_bpp			= 16,
++	.default_dmacon			= ATMEL_LCDC_DMAEN,
++	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs		= &at91fb_default_monspecs,
++	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
++	.guard_time			= 1,
++};
++
++#elif defined(CONFIG_PM9G45_LCD_GTTV57NN771E0)
++/* Solomon GTTV57NN771E0 - 5.7", 640x480 */
++static struct fb_videomode at91_tft_vga_modes[] = {
++	{
++		.name			= "GTTV57NN771E0 @ 60",
++		.refresh		= 60,
++		.xres			= 640,
++		.yres			= 480,
++		.pixclock		= KHZ2PICOS(50000),
++		.hsync_len		= 30,
++		.left_margin		= 114,
++		.right_margin		= 16,
++		.vsync_len		= 3,
++		.upper_margin		= 32,
++		.lower_margin		= 10,
++		.sync			= 0,
++		.vmode			= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs at91fb_default_monspecs = {
++	.manufacturer		= "SGD",
++	.monitor		= "GTTV57NN771E0",
++	.modedb			= at91_tft_vga_modes,
++	.modedb_len		= ARRAY_SIZE(at91_tft_vga_modes),
++	.hfmin			= 10000,
++	.hfmax			= 40000,
++	.vfmin			= 40,
++	.vfmax			= 90,
++};
++
++/* Driver datas */
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.lcdcon_is_backlight		= true,
++	.default_bpp			= 16,
++	.default_dmacon			= ATMEL_LCDC_DMAEN,
++	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs		= &at91fb_default_monspecs,
++	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
++	.guard_time			= 1,
++	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
++};
++
++#elif defined(CONFIG_PM9G45_LCD_GLAA057VA01CW)
++/* CPT CLAA057VA01CW - 5.7", 640x480, 220cd */
++static struct fb_videomode __initdata tft_modes[] = {
++	{
++		.name		= "640x480 @ 60",
++		.refresh	= 60,
++		.xres		= 640,
++		.yres		= 480,
++		.pixclock	= KHZ2PICOS(25000),
++		.left_margin	= 45,
++		.right_margin	= 114,
++		.upper_margin	= 33,
++		.lower_margin	= 11,
++		.hsync_len	= 1,
++		.vsync_len	= 1,
++		.sync		= 0,
++		.vmode		= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs __initdata tft_default_monspecs = {
++	.manufacturer		= "CPT",
++	.monitor		= "CLAA057VA01CW",
++	.modedb			= tft_modes,
++	.modedb_len		= ARRAY_SIZE(tft_modes),
++	.hfmin			= 10000,
++	.hfmax			= 22350,
++	.vfmin			= 40,
++	.vfmax			= 90,
++	.dclkmax		= 30000000,
++};
++
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.default_bpp		= 16,
++	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
++	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs	= &tft_default_monspecs,
++	.guard_time		= 2,
++};
++
++#elif defined(CONFIG_PM9G45_LCD_GATW70SN8H1E0)
++/* Solomon GATW70 - 7.0", 800x480, 350cd */
++static struct fb_videomode __initdata tft_modes[] = {
++	{
++		.name			= "800x480 @ 60",
++		.refresh		= 60,
++		.xres			= 800,
++		.yres			= 480,
++		.pixclock		= KHZ2PICOS(25000),
++		.left_margin		= 40,
++		.right_margin		= 40,
++		.upper_margin		= 29,
++		.lower_margin		= 13,
++		.hsync_len		= 48,
++		.vsync_len		= 3,
++		.sync			= 0,
++		.vmode			= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs __initdata tft_default_monspecs = {
++	.manufacturer		= "SGD",
++	.monitor		= "GATW70",
++	.modedb			= tft_modes,
++	.modedb_len		= ARRAY_SIZE(tft_modes),
++	.hfmin			= 10000,
++	.hfmax			= 35000,
++	.vfmin			= 40,
++	.vfmax			= 90,
++	.dclkmax		= 35000000,
++};
++
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.default_bpp		= 24,
++	.default_dmacon		= ATMEL_LCDC_DMAEN,
++	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs	= &tft_default_monspecs,
++	.guard_time		= 2,
++};
++
++#elif defined(CONFIG_PM9G45_LCD_CLAA080MB0ACW)
++/* CPT CLAA080 - 8.0", 800x600, 250cd */
++static struct fb_videomode __initdata tft_modes[] = {
++	{
++		.name			= "800x600 @ 60",
++		.refresh		= 60,
++		.xres			= 800,
++		.yres			= 600,
++		.pixclock		= KHZ2PICOS(25000),
++		.left_margin		= 0,
++		.right_margin		= 216,
++		.upper_margin		= 0,
++		.lower_margin		= 28,
++		.hsync_len		= 0,
++		.vsync_len		= 0,
++		.sync			= 0,
++		.vmode			= FB_VMODE_NONINTERLACED,
++	},
++};
++
++static struct fb_monspecs __initdata tft_default_monspecs = {
++	.manufacturer		= "CPT",
++	.monitor		= "CLAA080",
++	.modedb			= tft_modes,
++	.modedb_len		= ARRAY_SIZE(tft_modes),
++	.hfmin			= 10000,
++	.hfmax			= 40000,
++	.vfmin			= 40,
++	.vfmax			= 90,
++	.dclkmax		= 40000000,
++};
++
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.default_bpp		= 24,
++	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
++	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
++	.default_monspecs	= &tft_default_monspecs,
++	.guard_time		= 2,
++};
++
++#else
++#error "Undefined LCD display!"
++#endif
++
++#else
++static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data;
++#endif
++
++/*
++ * GPIO Buttons
++ */
++#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
++static struct gpio_keys_button pm9g45_buttons[] = {
++	{	/* SW3 */
++		.code		= KEY_UP,
++		.gpio		= AT91_PIN_PE8,
++		.active_low	= 1,
++		.desc		= "SW3",
++		.wakeup		= 1,
++		.type		= EV_KEY,
++	},
++	{	/* SW4 */
++		.code		= KEY_RIGHT,
++		.gpio		= AT91_PIN_PE7,
++		.active_low	= 1,
++		.desc		= "SW4",
++		.wakeup		= 1,
++		.type		= EV_KEY,
++	}
++};
++
++static struct gpio_keys_platform_data pm9g45_button_data = {
++	.buttons	= pm9g45_buttons,
++	.nbuttons	= ARRAY_SIZE(pm9g45_buttons),
++};
++
++static struct platform_device pm9g45_button_device = {
++	.name		= "gpio-keys",
++	.id		= -1,
++	.num_resources	= 0,
++	.dev		= {
++		.platform_data	= &pm9g45_button_data,
++	}
++};
++
++static void __init pm9g45_add_device_buttons(void)
++{
++	int i;
++
++	printk("at91: pm9g45 registering GPIO buttons\n");
++	platform_device_register(&pm9g45_button_device);
++
++	for (i = 0; i < pm9g45_button_data.nbuttons; i ++) {
++		gpio_to_irq(pm9g45_buttons[i].gpio);
++		at91_set_gpio_input(pm9g45_buttons[i].gpio, 1);
++		at91_set_deglitch(pm9g45_buttons[i].gpio, 1);
++	}
++
++}
++#else
++static void __init pm9g45_add_device_buttons(void) {}
++#endif
++
++/*
++ * AC97
++ */
++static struct ac97c_platform_data pm9g45_ac97_data = {
++	.reset_pin = 0,
++};
++
++/*
++ * LEDs ... these could all be PWM-driven, for variable brightness
++ */
++static struct gpio_led pm9g45_leds[] = {
++	{	/* "right" led, green, userled2 (could be driven by pwm2) */
++		.name			= "led0",
++		.gpio			= AT91_PIN_PD0,
++		.active_low		= 1,
++		.default_trigger	= "nand-disk",
++	},
++	{	/* "power" led, yellow (could be driven by pwm0) */
++		.name			= "led1",
++		.gpio			= AT91_PIN_PD31,
++		.active_low		= 1,
++		.default_trigger	= "heartbeat",
++	}
++};
++
++#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
++struct w1_gpio_platform_data pm9g45_w1_platdata = {
++	.pin		= AT91_PIN_PA31,
++	.is_open_drain	= 0,
++};
++
++static struct platform_device pm9g45_w1_device = {
++	.name		= "w1-gpio",
++	.id		= 0,
++	.dev		= {
++		.platform_data	= &pm9g45_w1_platdata,
++	},
++};
++#endif
++
++#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
++    defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
++static struct at91_cf_data pm9g45_cf_data = {
++	.det_pin	= AT91_PIN_PD13,
++	.rst_pin	= AT91_PIN_PD14,
++	.irq_pin	= AT91_PIN_PE1,
++	// .vcc_pin	= ... always powered
++	.chipselect	= 4,
++};
++
++static struct resource pm9g45_cf_resources[] = {
++	[0] = {
++		.start	= AT91_CHIPSELECT_4,
++		.end	= AT91_CHIPSELECT_4 + (0x10000000 - 1),
++		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
++	},
++};
++
++static struct platform_device pm9g45_cf_device = {
++	.name		= "at91_cf",
++	.id		= -1,
++	.dev		= {
++		.platform_data	= &pm9g45_cf_data,
++	},
++	.resource	= pm9g45_cf_resources,
++	.num_resources	= ARRAY_SIZE(pm9g45_cf_resources),
++};
++
++#define CF_NWE_SETUP	(9 << 0)
++#define CF_NCS_WR_SETUP	(2 << 8)
++#define CF_NRD_SETUP	(9 << 16)
++#define CF_NCS_RD_SETUP	(2 << 24)
++
++#define CF_NWE_PULSE	(17 << 0)
++#define CF_NCS_WR_PULSE	(27 << 8)
++#define CF_NRD_PULSE	(17 << 16)
++#define CF_NCS_RD_PULSE	(27 << 24)
++
++#define CF_NWE_CYCLE	(40 << 0)
++#define CF_NRD_CYCLE	(40 << 16)
++
++#define CF_TDF		(1 << 16)
++
++static void __init pm9g45_add_device_cf(void) {
++struct at91_cf_data *data = & pm9g45_cf_data;
++unsigned int csa;
++
++	// Setup Compact flash, first enable the address range of
++	// CS4 in HMATRIX user interface
++	csa = at91_sys_read(AT91_MATRIX_EBICSA);
++	at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS4A_SMC_CF0);
++
++	/* Configure SMC CS4 */
++	at91_sys_write(AT91_SMC_SETUP(4),
++				(CF_NWE_SETUP |
++				CF_NCS_WR_SETUP |
++				CF_NRD_SETUP |
++				CF_NCS_RD_SETUP));
++
++	at91_sys_write(AT91_SMC_PULSE(4), (CF_NWE_PULSE |
++					CF_NCS_WR_PULSE |
++					CF_NRD_PULSE |
++					CF_NCS_RD_PULSE));
++	at91_sys_write(AT91_SMC_CYCLE(4), (CF_NWE_CYCLE | CF_NRD_CYCLE));
++	// 16 bit
++	at91_sys_write (AT91_SMC_MODE(4), (AT91_SMC_READMODE |
++					AT91_SMC_WRITEMODE |
++					AT91_SMC_EXNWMODE_DISABLE |
++					AT91_SMC_DBW_16 |
++					CF_TDF));
++
++	/* input/irq */
++	if (data->irq_pin) {
++		at91_set_gpio_input(data->irq_pin, 0);
++		at91_set_deglitch(data->irq_pin, 1);
++	}
++	at91_set_gpio_input(data->det_pin, 0);
++	at91_set_deglitch(data->det_pin, 1);
++
++	/* outputs, initially off */
++	if (data->vcc_pin)
++		at91_set_gpio_output(data->vcc_pin, 0);
++	if (data->rst_pin)
++		at91_set_gpio_output(data->rst_pin, 0);
++
++	/* force poweron defaults for these pins ... */
++	at91_set_A_periph(AT91_PIN_PC15, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC12, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC10, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC8, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC9, 0);	/* */
++
++	platform_device_register(&pm9g45_cf_device);
++}
++#else
++void __init pm9g45_add_device_cf(void) {}
++#endif
++
++static void __init pm9g45_board_init(void)
++{
++	/* Serial */
++	at91_add_device_serial();
++	/* USB HS Host */
++	at91_add_device_usbh_ohci(&pm9g45_usbh_hs_data);
++	at91_add_device_usbh_ehci(&pm9g45_usbh_hs_data);
++	/* USB HS Device */
++	//at91_add_device_usba(&pm9g45_usba_udc_data);
++	/* SPI */
++	at91_add_device_spi(pm9g45_spi_devices, ARRAY_SIZE(pm9g45_spi_devices));
++	/* Touchscreen */
++	pm9g45_add_device_ts();
++	/* at91_add_device_tsadcc(&pm9g45_tsadcc_data); Not used for now */
++	/* MMC */
++	at91_add_device_mci(0, &pm9g45_mci0_data);
++	/* Ethernet */
++	at91_add_device_eth(&pm9g45_macb_data);
++	/* NAND */
++	pm9g45_add_device_nand();
++	/* I2C */
++	/* No I2C used in pm9g45 */
++	/* LCD Controller */
++	pm9g45_add_device_lcdc(&pm9g45_lcdc_data);
++	/* Push Buttons */
++	pm9g45_add_device_buttons();
++	/* AC97 */
++	at91_add_device_ac97(&pm9g45_ac97_data);
++#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
++	platform_device_register(&pm9g45_w1_device);
++#endif
++	/* Compact flash */
++	pm9g45_add_device_cf();
++	/* LEDs */
++	at91_gpio_leds(pm9g45_leds, ARRAY_SIZE(pm9g45_leds));
++}
++
++MACHINE_START(PM9G45, "Ronetix PM9G45")
++	/* Maintainer: Atmel */
++	.phys_io	= AT91_BASE_SYS,
++	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
++	.boot_params	= AT91_SDRAM_BASE + 0x100,
++	.timer		= &at91sam926x_timer,
++	.map_io		= pm9g45_map_io,
++	.init_irq	= pm9g45_init_irq,
++	.init_machine	= pm9g45_board_init,
++MACHINE_END
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch
deleted file mode 100644
index 164b6a9..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0006-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 3a12beee72e77d6cc5657a1f448483e893b401d9 Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:54:36 +0200
-Subject: [PATCH] pm9g45 system ram can be on CS1 or CS6
-
----
- arch/arm/mach-at91/Makefile.boot              |   10 ++++++++++
- arch/arm/mach-at91/include/mach/at91sam9g45.h |   17 +++++++++++++++++
- 2 files changed, 27 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot
-index 3462b81..549c529 100644
---- a/arch/arm/mach-at91/Makefile.boot
-+++ b/arch/arm/mach-at91/Makefile.boot
-@@ -16,3 +16,13 @@ else
- params_phys-y	:= 0x20000100
- initrd_phys-y	:= 0x20410000
- endif
-+
-+ifeq ($(CONFIG_PM9G45_SYSTEM_RAM_CS1),y)
-+          zreladdr-y   := 0x20008000
-+       params_phys-y   := 0x20000100
-+       initrd_phys-y   := 0x20410000
-+else ifeq ($(CONFIG_PM9G45_SYSTEM_RAM_CS6),y)
-+          zreladdr-y   := 0x70008000
-+       params_phys-y   := 0x70000100
-+       initrd_phys-y   := 0x70410000
-+endif
-diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h
-index a526869..324d876 100644
---- a/arch/arm/mach-at91/include/mach/at91sam9g45.h
-+++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h
-@@ -131,7 +131,24 @@
- #define AT91SAM9G45_EHCI_BASE	0x00800000	/* USB Host controller (EHCI) */
- #define AT91SAM9G45_VDEC_BASE	0x00900000	/* Video Decoder Controller */
- 
-+/*
-+ * This one should have a better place, it is a board dependent.
-+ */
-+#if defined(CONFIG_MACH_AT91SAM9G45EKES)
-+#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
-+#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS1)
-+#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_1
-+#define CONFIG_DRAM_SIZE	SZ_128M
-+#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6
-+#define CONFIG_VRAM_SIZE	SZ_64M
-+#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS6)
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
-+#define CONFIG_DRAM_SIZE	SZ_64M
-+#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_1
-+#define CONFIG_VRAM_SIZE_	SZ_128M
-+#else
-+#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
-+#endif
- 
- #define CONSISTENT_DMA_SIZE	SZ_4M
- 
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-add-pm9g45-board.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-add-pm9g45-board.patch
deleted file mode 100644
index 5534b16..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-add-pm9g45-board.patch
+++ /dev/null
@@ -1,1004 +0,0 @@
-From 08b8ed8e5b8964c58daa5335831683f99228bf6a Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:55:54 +0200
-Subject: [PATCH] add pm9g45 board
-
----
- arch/arm/mach-at91/Kconfig        |   73 +++-
- arch/arm/mach-at91/Makefile       |    1 +
- arch/arm/mach-at91/board-pm9g45.c |  875 +++++++++++++++++++++++++++++++++++++
- 3 files changed, 947 insertions(+), 2 deletions(-)
- create mode 100644 arch/arm/mach-at91/board-pm9g45.c
-
-diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
-index 359b0bc..bebad5b 100644
---- a/arch/arm/mach-at91/Kconfig
-+++ b/arch/arm/mach-at91/Kconfig
-@@ -407,6 +407,75 @@ config MACH_AT91SAM9G45EKES
- 	  "ES" at the end of the name means that this board is an
- 	  Engineering Sample.
- 
-+config MACH_PM9G45
-+       bool "Ronetix PM9G45 Evaluation Kit"
-+       depends on ARCH_AT91SAM9G45
-+       help
-+         Select this if you are using Ronetix's PM9G45 board.
-+         <http://ronetix.at/starter_kit_9g45.html>
-+choice
-+       prompt "System RAM base address"
-+       depends on MACH_PM9G45
-+       help
-+         AT91SAM9G45 has two DDR2 controlers, one CS1 on 0x20000000
-+         and CS6 on 0x70000000 memmory addresses. You can choose
-+         the where th system RAM to be.
-+
-+config PM9G45_SYSTEM_RAM_CS1
-+       bool "System RAM: CS1 on 0x20000000 with 128MB"
-+       depends on MACH_PM9G45
-+       help
-+         CS1 will be used for system ram and CS6 for video memory.
-+
-+config PM9G45_SYSTEM_RAM_CS6
-+       bool "System RAM: CS6 on 0x70000000"
-+       depends on MACH_PM9G45
-+       help
-+         CS6 will be used for system ram and for video ram.
-+
-+endchoice
-+
-+config VRAM_SIZE
-+       prompt "Video RAM size"
-+       depends on (MACH_PM9G45 && PM9G45_SYSTEM_RAM_CS6)
-+       hex
-+       help
-+         Determine the size of ram for video. It will be located at the end of CS6.
-+       default 0x400000
-+
-+choice
-+       prompt "LCD Display"
-+
-+config PM9G45_LCD_TX09D70
-+       bool "3.5\", 320x240 Hitachi TX09D70"
-+       depends on MACH_PM9G45
-+
-+config PM9G45_LCD_RA158
-+       bool "4.3\", 800x480 Seiko RA158"
-+       depends on MACH_PM9G45
-+
-+config PM9G45_LCD_TCG057VGLAC
-+       bool "5.7\", 640x480 Kyocera TCG057VGLAC"
-+       depends on MACH_PM9G45
-+
-+config PM9G45_LCD_GTTV57NN771E0
-+       bool "5.7\", 640x480 Solomon GTTV57NN771E0"
-+       depends on MACH_PM9G45
-+
-+config PM9G45_LCD_GLAA057VA01CW
-+       bool "5.7\", 640x480 CPT CLAA057VA01CW"
-+       depends on MACH_PM9G45
-+
-+config PM9G45_LCD_GATW70SN8H1E0
-+       bool "7.0\", 800x480 Solomon GATW70SN8H1E0"
-+       depends on MACH_PM9G45
-+
-+config PM9G45_LCD_CLAA080MB0ACW
-+       bool "8.0\", 800x600 CPT CLAA080MB0ACW"
-+       depends on MACH_PM9G45
-+
-+endchoice
-+
- endif
- 
- # ----------------------------------------------------------
-@@ -461,13 +530,13 @@ comment "AT91 Board Options"
- 
- config MTD_AT91_DATAFLASH_CARD
- 	bool "Enable DataFlash Card support"
--	depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926)
-+	depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926 || MACH_PM9G45)
- 	help
- 	  Enable support for the DataFlash card.
- 
- config MTD_NAND_ATMEL_BUSWIDTH_16
- 	bool "Enable 16-bit data bus interface to NAND flash"
--	depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK || MACH_AT572D940HFEB)
-+	depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_PM9G45)
- 	help
- 	  On AT91SAM926x boards both types of NAND flash can be present
- 	  (8 and 16 bit data bus width).
-diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
-index 761098e..ea24437 100644
---- a/arch/arm/mach-at91/Makefile
-+++ b/arch/arm/mach-at91/Makefile
-@@ -72,6 +72,7 @@ obj-$(CONFIG_MACH_SBC35_A9G20)	 += board-sbc35-a9g20.o
- 
- # AT91SAM9G45 board-specific support
- obj-$(CONFIG_MACH_AT91SAM9G45EKES) += board-sam9m10g45ek.o
-+obj-$(CONFIG_MACH_PM9G45) += board-pm9g45.o
- 
- # AT91CAP9 board-specific support
- obj-$(CONFIG_MACH_AT91CAP9ADK)	+= board-cap9adk.o
-diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
-new file mode 100644
-index 0000000..63e5ee1
---- /dev/null
-+++ b/arch/arm/mach-at91/board-pm9g45.c
-@@ -0,0 +1,875 @@
-+/*
-+ *  Board-specific setup code for the AT91SAM9M10G45 Evaluation Kit family
-+ *
-+ *  Covers: * AT91SAM9G45-EKES  board
-+ *          * AT91SAM9M10G45-EK board
-+ *
-+ *  Copyright (C) 2009 Atmel Corporation.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ */
-+/*
-+ * Based on board-sam9m10g45ek.c 
-+ * filename: board-pm9g45.c
-+ * date: 05.02.2010
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/init.h>
-+#include <linux/mm.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <linux/spi/spi.h>
-+#include <linux/spi/ads7846.h>
-+#include <linux/fb.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
-+#include <linux/leds.h>
-+#include <linux/clk.h>
-+#include <linux/w1-gpio.h>
-+#include <linux/atmel-mci.h>
-+
-+#include <mach/hardware.h>
-+#include <video/atmel_lcdc.h>
-+
-+#include <asm/setup.h>
-+#include <asm/mach-types.h>
-+#include <asm/irq.h>
-+
-+#include <asm/mach/arch.h>
-+#include <asm/mach/map.h>
-+#include <asm/mach/irq.h>
-+
-+#include <mach/at91sam9g45_matrix.h>
-+
-+#include <mach/hardware.h>
-+#include <mach/board.h>
-+#include <mach/gpio.h>
-+#include <mach/at91sam9_smc.h>
-+#include <mach/at91_shdwc.h>
-+
-+#include "sam9_smc.h"
-+#include "generic.h"
-+
-+static void __init pm9g45_map_io(void)
-+{
-+	/* Initialize processor: 12.000 MHz crystal */
-+	at91sam9g45_initialize(12000000);
-+
-+	/* DGBU on ttyS0. (Rx & Tx only) */
-+	at91_register_uart(0, 0, 0);
-+
-+	/* USART0 not connected on the -EK board */
-+	/* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
-+	at91_register_uart(AT91SAM9G45_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
-+
-+	/* set serial console to ttyS0 (ie, DBGU) */
-+	at91_set_serial_console(0);
-+}
-+
-+static void __init pm9g45_init_irq(void)
-+{
-+	at91sam9g45_init_interrupts(NULL);
-+}
-+
-+
-+/*
-+ * USB HS Host port (common to OHCI & EHCI)
-+ */
-+static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
-+	.ports		= 2, 
-+	.vbus_pin	= { 0, 0},
-+};
-+
-+
-+/*
-+ * USB HS Device port
-+ */
-+static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
-+	.vbus_pin	= AT91_PIN_PD1,
-+};
-+
-+/*
-+ * ADS7846 Touchscreen
-+ */
-+#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
-+static int ads7843_pendown_state(void)
-+{
-+	return !at91_get_gpio_value(AT91_PIN_PD18);	/* Touchscreen PENIRQ */
-+}
-+
-+static struct ads7846_platform_data ads_info = {
-+	.model			= 7843,
-+	.x_min			= 150,
-+	.x_max			= 3830,
-+	.y_min			= 190,
-+	.y_max			= 3830,
-+	.settle_delay_usecs = 2000,
-+	.keep_vref_on	= 1,
-+	.vref_delay_usecs	= 500,
-+	.x_plate_ohms		= 607,
-+	.y_plate_ohms		= 232,
-+	.pressure_max		= 15000,
-+	.debounce_max		= 1,
-+	.debounce_rep		= 1, //0
-+	.debounce_tol		= (50), //(~0)
-+	.get_pendown_state	= ads7843_pendown_state,
-+	.penirq_recheck_delay_usecs = 200,
-+};
-+
-+static void __init pm9g45_add_device_ts(void)
-+{
-+	at91_set_gpio_input(AT91_PIN_PD18, 1);	/* External IRQ, with pullup */
-+	at91_set_gpio_input(AT91_PIN_PE31, 1);	/* Touchscreen BUSY signal */
-+}
-+#else
-+static void __init pm9g45_add_device_ts(void) {}
-+#endif
-+static struct at91_tsadcc_data pm9g45_tsadcc_data = {
-+	.adc_clock		= 300000,
-+	.pendet_debounce	= 0x0d,
-+	.ts_sample_hold_time	= 0x0a,
-+};
-+
-+/*
-+ * SPI devices.
-+ */
-+static struct spi_board_info pm9g45_spi_devices[] = {
-+#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
-+	{	/* DataFlash card */
-+		.modalias	= "mtd_dataflash",
-+		.chip_select	= 0,
-+		.max_speed_hz	= 15 * 1000 * 1000,
-+		.bus_num	= 0,
-+	},
-+#endif
-+#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
-+	{
-+		.modalias	= "ads7846",
-+		.chip_select	= 0,
-+		.max_speed_hz	= 125000 * 16,	/* max sample rate * clocks per sample */
-+		.bus_num	= 1,
-+		.platform_data	= &ads_info,
-+		.irq		= AT91_PIN_PD18, 
-+	},
-+#endif
-+};
-+
-+/*
-+ * MCI (SD/MMC)
-+ */
-+static struct mci_platform_data __initdata pm9g45_mci0_data = {
-+	.slot[0] = {
-+		.bus_width	= 4,
-+		.detect_pin	= AT91_PIN_PD30,
-+		.wp_pin		= AT91_PIN_PD29,
-+		//	.vcc_pin	= ... not connected
-+	}
-+};
-+
-+/*
-+ * MACB Ethernet device
-+ */
-+static struct at91_eth_data __initdata pm9g45_macb_data = {
-+	.phy_irq_pin	= AT91_PIN_PD5,
-+	.is_rmii	= 1,
-+};
-+
-+
-+/*
-+ * NAND flash
-+ */
-+static struct mtd_partition __initdata pm9g45_nand_partition[] = {
-+	{
-+		.name	= "Partition 1",
-+		.offset	= 0,
-+ 		.size	= MTDPART_SIZ_FULL,
-+	},
-+
-+};
-+
-+static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
-+{
-+	*num_partitions = ARRAY_SIZE(pm9g45_nand_partition);
-+	return pm9g45_nand_partition;
-+}
-+
-+/* det_pin is not connected */
-+static struct atmel_nand_data __initdata pm9g45_nand_data = {
-+	.ale		= 21,
-+	.cle		= 22,
-+ //	.det_pin	= ... not connected
-+	.rdy_pin	= AT91_PIN_PD3,
-+//	.rdy_pin_active_low	= 0,
-+	.enable_pin	= AT91_PIN_PC14,
-+	.partition_info	= nand_partitions,
-+#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16)
-+	.bus_width_16	= 1,
-+#else
-+	.bus_width_16	= 0,
-+#endif
-+};
-+
-+static struct sam9_smc_config __initdata pm9g45_nand_smc_config = {
-+	.ncs_read_setup		= 0,
-+	.nrd_setup		= 1,
-+	.ncs_write_setup	= 0,
-+	.nwe_setup		= 1,
-+
-+	.ncs_read_pulse		= 2, /* 3*/
-+	.nrd_pulse		= 3, /* 3 */
-+	.ncs_write_pulse	= 3, /* 3 */
-+	.nwe_pulse		= 4, /* 3*/
-+
-+	.read_cycle		= 4, /* 5*/
-+	.write_cycle		= 7, /* 5*/
-+
-+	.mode			= AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE,
-+	.tdf_cycles		= 3, /* 2*/
-+};
-+
-+static void __init pm9g45_add_device_nand(void)
-+{
-+	/* setup bus-width (8 or 16) */
-+	if (pm9g45_nand_data.bus_width_16)
-+		pm9g45_nand_smc_config.mode |= AT91_SMC_DBW_16;
-+	else
-+		pm9g45_nand_smc_config.mode |= AT91_SMC_DBW_8;
-+
-+	/* configure chip-select 3 (NAND) */
-+	sam9_smc_configure(3, &pm9g45_nand_smc_config);
-+
-+	at91_add_device_nand(&pm9g45_nand_data);
-+}
-+
-+
-+/*
-+ * LCD Controller
-+ */
-+#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
-+
-+#define AT91SAM9G45_DEFAULT_LCDCON2 	(ATMEL_LCDC_MEMOR_LITTLE \
-+					| ATMEL_LCDC_DISTYPE_TFT \
-+					| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
-+
-+static void at91_lcdc_power_control(int on)
-+{
-+	at91_set_gpio_value(AT91_PIN_PE6, on);
-+}
-+
-+static u64 lcdc_dmamask = 0xffffffffUL;
-+static struct atmel_lcdfb_info lcdc_data;
-+
-+static struct resource lcdc_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_LCDC_BASE,
-+		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= CONFIG_VRAM_BASE,
-+		.end	= CONFIG_VRAM_BASE + CONFIG_VRAM_SIZE - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[2] = {
-+		.start	= AT91SAM9G45_ID_LCDC,
-+		.end	= AT91SAM9G45_ID_LCDC,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91_lcdc_device = {
-+	.name		= "atmel_lcdfb",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &lcdc_dmamask,
-+				.coherent_dma_mask	= 0xffffffffUL,
-+				.platform_data		= &lcdc_data,
-+	},
-+	.resource	= lcdc_resources,
-+	.num_resources	= ARRAY_SIZE(lcdc_resources),
-+};
-+
-+static void __init pm9g45_add_device_lcdc(struct atmel_lcdfb_info *data)
-+{
-+	if (!data)
-+		return;
-+
-+	at91_set_A_periph(AT91_PIN_PE0, 0);	/* LCDDPWR */
-+	at91_set_A_periph(AT91_PIN_PE3, 0);	/* LCDVSYNC */
-+	at91_set_A_periph(AT91_PIN_PE4, 0);	/* LCDHSYNC */
-+	at91_set_A_periph(AT91_PIN_PE5, 0);	/* LCDDOTCK */
-+
-+	at91_set_A_periph(AT91_PIN_PE2, 0);	/* LCDCC */
-+	/* at91_set_A_periph(AT91_PIN_PE7, 0); Not used */	/* LCDD0/LCDD2 */
-+	/* at91_set_A_periph(AT91_PIN_PE8, 0); Not used */	/* LCDD1/LCDD3 */
-+	at91_set_A_periph(AT91_PIN_PE9, 0);	/* LCDD2_R0 */
-+	at91_set_A_periph(AT91_PIN_PE10, 0);	/* LCDD3_R1 */
-+	at91_set_A_periph(AT91_PIN_PE11, 0);	/* LCDD4_R2 */
-+	at91_set_A_periph(AT91_PIN_PE12, 0);	/* LCDD5_R3 */
-+	at91_set_A_periph(AT91_PIN_PE13, 0);	/* LCDD6_R4 */
-+	at91_set_A_periph(AT91_PIN_PE14, 0);	/* LCDD7_R5 */
-+	/* at91_set_A_periph(AT91_PIN_PE15, 0); Not used */	/* LCDD8/LCDD12 */
-+	/* at91_set_A_periph(AT91_PIN_PE16, 0); Not used */	/* LCDD9/LCDD13 */
-+	at91_set_A_periph(AT91_PIN_PE17, 0);	/* LCDD10_G0 */
-+	at91_set_A_periph(AT91_PIN_PE18, 0);	/* LCDD11_G1 */
-+	at91_set_A_periph(AT91_PIN_PE19, 0);	/* LCDD12_G2 */
-+	at91_set_A_periph(AT91_PIN_PE20, 0);	/* LCDD13_G3 */
-+	at91_set_A_periph(AT91_PIN_PE21, 0);	/* LCDD14_G4 */
-+	at91_set_A_periph(AT91_PIN_PE22, 0);	/* LCDD15_G5 */
-+	/* at91_set_A_periph(AT91_PIN_PE23, 0); Not used */	/* LCDD8/LCDD12 */
-+	/* at91_set_A_periph(AT91_PIN_PE24, 0); Not used */	/* LCDD9/LCDD13 */
-+	at91_set_A_periph(AT91_PIN_PE25, 0);	/* LCDD18_B0 */
-+	at91_set_A_periph(AT91_PIN_PE26, 0);	/* LCDD19_B1 */
-+	at91_set_A_periph(AT91_PIN_PE27, 0);	/* LCDD20_B2 */
-+	at91_set_A_periph(AT91_PIN_PE28, 0);	/* LCDD21_B3 */
-+	at91_set_A_periph(AT91_PIN_PE29, 0);	/* LCDD22_B4 */
-+	at91_set_A_periph(AT91_PIN_PE30, 0);	/* LCDD23_B5 */
-+
-+	lcdc_data = *data;
-+	platform_device_register(&at91_lcdc_device);
-+}
-+
-+#if defined(CONFIG_PM9G45_LCD_TX09D70)
-+/* Hitachi TX09D70VM1CCA - 3.5", 320x240 */
-+static struct fb_videomode at91_tft_vga_modes[] = {
-+	{
-+		.name			= "TX09D50VM1CCA @ 60",
-+		.refresh		= 60,
-+		.xres			= 240,		
-+		.yres			= 320,
-+		.pixclock		= KHZ2PICOS(4965),
-+		.left_margin	= 1,		
-+		.right_margin	= 33,
-+		.upper_margin	= 1,		
-+		.lower_margin	= 0,
-+		.hsync_len		= 5,		
-+		.vsync_len		= 1,
-+		.sync			= FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-+		.vmode			= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs at91fb_default_monspecs = {
-+	.manufacturer	= "HIT",
-+	.monitor	= "TX09D70VM1CCA",
-+	.modedb		= at91_tft_vga_modes,
-+	.modedb_len	= ARRAY_SIZE(at91_tft_vga_modes),
-+	.hfmin		= 15000,
-+	.hfmax		= 64000,
-+	.vfmin		= 50,
-+	.vfmax		= 150,
-+};
-+
-+/* Driver datas */
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.lcdcon_is_backlight	= true,
-+	.default_bpp			= 16,
-+	.default_dmacon			= ATMEL_LCDC_DMAEN,
-+	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs		= &at91fb_default_monspecs,
-+	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
-+	.guard_time			= 1,
-+	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
-+};
-+
-+#elif defined(CONFIG_PM9G45_LCD_RA158)
-+/* Seiko RA158 - 4.3", 800x480, 350cd */
-+static struct fb_videomode __initdata tft_modes[] = {
-+	{
-+		.name			= "800x480 @ 60",
-+		.refresh		= 60,
-+		.xres			= 800,		
-+		.yres			= 480,
-+		.pixclock		= KHZ2PICOS(10000),
-+		.left_margin	= 89,		
-+		.right_margin	= 164,
-+		.upper_margin	= 23,		
-+		.lower_margin	= 10,
-+		.hsync_len		= 10,		
-+		.vsync_len		= 10,
-+		.sync			= 0,
-+		.vmode			= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs __initdata tft_default_monspecs = {
-+	.manufacturer	= "SEI",
-+	.monitor		= "RA158Z",
-+	.modedb			= tft_modes,
-+	.modedb_len		= ARRAY_SIZE(tft_modes),
-+	.hfmin			= 10000,
-+	.hfmax			= 35000,
-+	.vfmin			= 40,
-+	.vfmax			= 90,
-+	.dclkmax		= 35000000,
-+};
-+
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.default_bpp		= 24,
-+	.default_dmacon		= ATMEL_LCDC_DMAEN,
-+	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs	= &tft_default_monspecs,
-+	.guard_time			= 2,
-+};
-+
-+
-+#elif defined(CONFIG_PM9G45_LCD_TCG057VGLAC)
-+/* Kyocera TCG057VGLAC - 5.7", 640x480 */
-+static struct fb_videomode at91_tft_vga_modes[] = {
-+	{
-+		.name		= "TCG057VGLAC @ 60",
-+		.refresh	= 60,
-+		.xres		= 640,
-+		.yres		= 480,
-+		.pixclock	= KHZ2PICOS(25000),
-+		.hsync_len	= 5,
-+		.left_margin	= 1,
-+		.right_margin	= 33,
-+		.vsync_len	= 1,
-+		.upper_margin	= 4,
-+		.lower_margin	= 0,
-+		.sync		= 0,
-+		.vmode		= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs at91fb_default_monspecs = {
-+	.manufacturer	= "KYO",
-+	.monitor	= "TCG057VGLAC",
-+	.modedb		= at91_tft_vga_modes,
-+	.modedb_len	= ARRAY_SIZE(at91_tft_vga_modes),
-+	.hfmin		= 15000,
-+	.hfmax		= 64000,
-+	.vfmin		= 50,
-+	.vfmax		= 150,
-+};
-+
-+/* Driver datas */
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.lcdcon_is_backlight		= true,
-+	.default_bpp			= 16,
-+	.default_dmacon			= ATMEL_LCDC_DMAEN,
-+	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs		= &at91fb_default_monspecs,
-+	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
-+	.guard_time			= 1,
-+};
-+
-+#elif defined(CONFIG_PM9G45_LCD_GTTV57NN771E0)
-+/* Solomon GTTV57NN771E0 - 5.7", 640x480 */
-+static struct fb_videomode at91_tft_vga_modes[] = {
-+	{
-+		.name			= "GTTV57NN771E0 @ 60",
-+		.refresh		= 60,
-+		.xres			= 640,
-+		.yres			= 480,
-+		.pixclock		= KHZ2PICOS(50000),
-+		.hsync_len		= 30,
-+		.left_margin	= 114,
-+		.right_margin	= 16,
-+		.vsync_len		= 3,
-+		.upper_margin	= 32,
-+		.lower_margin	= 10,
-+		.sync			= 0,
-+		.vmode			= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs at91fb_default_monspecs = {
-+	.manufacturer	= "SGD",
-+	.monitor		= "GTTV57NN771E0",
-+	.modedb			= at91_tft_vga_modes,
-+	.modedb_len		= ARRAY_SIZE(at91_tft_vga_modes),
-+	.hfmin			= 10000,
-+	.hfmax			= 40000,
-+	.vfmin			= 40,
-+	.vfmax			= 90,
-+};
-+
-+/* Driver datas */
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.lcdcon_is_backlight		= true,
-+	.default_bpp			= 16,
-+	.default_dmacon			= ATMEL_LCDC_DMAEN,
-+	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs		= &at91fb_default_monspecs,
-+	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
-+	.guard_time			= 1,
-+	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
-+};
-+
-+#elif defined(CONFIG_PM9G45_LCD_GLAA057VA01CW)
-+/* CPT CLAA057VA01CW - 5.7", 640x480, 220cd */
-+static struct fb_videomode __initdata tft_modes[] = {
-+	{
-+		.name		= "640x480 @ 60",
-+		.refresh	= 60,
-+		.xres		= 640,		
-+		.yres		= 480,
-+		.pixclock	= KHZ2PICOS(25000),
-+		.left_margin	= 45,		
-+		.right_margin	= 114,
-+		.upper_margin	= 33,		
-+		.lower_margin	= 11,
-+		.hsync_len	= 1,		
-+		.vsync_len	= 1,
-+		.sync		= 0,
-+		.vmode		= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs __initdata tft_default_monspecs = {
-+	.manufacturer	= "CPT",
-+	.monitor		= "CLAA057VA01CW",
-+	.modedb			= tft_modes,
-+	.modedb_len		= ARRAY_SIZE(tft_modes),
-+	.hfmin			= 10000,
-+	.hfmax			= 22350,
-+	.vfmin			= 40,
-+	.vfmax			= 90,
-+	.dclkmax		= 30000000,
-+};
-+
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.default_bpp		= 16,
-+	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-+	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs	= &tft_default_monspecs,
-+	.guard_time			= 2,
-+};
-+
-+
-+#elif defined(CONFIG_PM9G45_LCD_GATW70SN8H1E0)
-+/* Solomon GATW70 - 7.0", 800x480, 350cd */
-+static struct fb_videomode __initdata tft_modes[] = {
-+	{
-+		.name			= "800x480 @ 60",
-+		.refresh		= 60,
-+		.xres			= 800,		
-+		.yres			= 480,
-+		.pixclock		= KHZ2PICOS(25000),
-+		.left_margin	= 40,		
-+		.right_margin	= 40,
-+		.upper_margin	= 29,		
-+		.lower_margin	= 13,
-+		.hsync_len		= 48,		
-+		.vsync_len		= 3,
-+		.sync			= 0,
-+		.vmode			= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs __initdata tft_default_monspecs = {
-+	.manufacturer	= "SGD",
-+	.monitor		= "GATW70",
-+	.modedb			= tft_modes,
-+	.modedb_len		= ARRAY_SIZE(tft_modes),
-+	.hfmin			= 10000,
-+	.hfmax			= 35000,
-+	.vfmin			= 40,
-+	.vfmax			= 90,
-+	.dclkmax		= 35000000,
-+};
-+
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.default_bpp		= 24,
-+	.default_dmacon		= ATMEL_LCDC_DMAEN,
-+	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs	= &tft_default_monspecs,
-+	.guard_time			= 2,
-+};
-+
-+#elif defined(CONFIG_PM9G45_LCD_CLAA080MB0ACW)
-+/* CPT CLAA080 - 8.0", 800x600, 250cd */
-+static struct fb_videomode __initdata tft_modes[] = {
-+	{
-+		.name			= "800x600 @ 60",
-+		.refresh		= 60,
-+		.xres			= 800,		
-+		.yres			= 600,
-+		.pixclock		= KHZ2PICOS(25000),
-+		.left_margin	= 0,		
-+		.right_margin	= 216,
-+		.upper_margin	= 0,		
-+		.lower_margin	= 28,
-+		.hsync_len		= 0,		
-+		.vsync_len		= 0,
-+		.sync			= 0,
-+		.vmode			= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs __initdata tft_default_monspecs = {
-+	.manufacturer	= "CPT",
-+	.monitor		= "CLAA080",
-+	.modedb			= tft_modes,
-+	.modedb_len		= ARRAY_SIZE(tft_modes),
-+	.hfmin			= 10000,
-+	.hfmax			= 40000,
-+	.vfmin			= 40,
-+	.vfmax			= 90,
-+	.dclkmax		= 40000000,
-+};
-+
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
-+	.default_bpp		= 24,
-+	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-+	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs	= &tft_default_monspecs,
-+	.guard_time			= 2,
-+};
-+
-+#else
-+#error "Undefined LCD display!"
-+#endif
-+
-+#else
-+static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data;
-+#endif
-+
-+/*
-+ * GPIO Buttons
-+ */
-+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
-+static struct gpio_keys_button pm9g45_buttons[] = {
-+	{	/* SW3 */
-+		.code		= KEY_UP,
-+		.gpio		= AT91_PIN_PE8,
-+		.active_low	= 1,
-+		.desc		= "SW3",
-+		.wakeup		= 1,
-+		.type		= EV_KEY,
-+	},
-+	{	/* SW4 */
-+		.code		= KEY_RIGHT,
-+		.gpio		= AT91_PIN_PE7,
-+		.active_low	= 1,
-+		.desc		= "SW4",
-+		.wakeup		= 1,
-+		.type		= EV_KEY,
-+	}
-+};
-+
-+static struct gpio_keys_platform_data pm9g45_button_data = {
-+	.buttons	= pm9g45_buttons,
-+	.nbuttons	= ARRAY_SIZE(pm9g45_buttons),
-+};
-+
-+static struct platform_device pm9g45_button_device = {
-+	.name		= "gpio-keys",
-+	.id		= -1,
-+	.num_resources	= 0,
-+	.dev		= {
-+	.platform_data	= &pm9g45_button_data,
-+	}
-+};
-+
-+static void __init pm9g45_add_device_buttons(void)
-+{
-+	int i;
-+
-+	printk("at91: pm9g45 registering GPIO buttons\n");
-+	platform_device_register(&pm9g45_button_device);
-+
-+	for (i = 0; i < pm9g45_button_data.nbuttons; i ++) {
-+	gpio_to_irq(pm9g45_buttons[i].gpio);
-+		at91_set_gpio_input(pm9g45_buttons[i].gpio, 1);
-+		at91_set_deglitch(pm9g45_buttons[i].gpio, 1);
-+	}
-+
-+}
-+#else
-+static void __init pm9g45_add_device_buttons(void) {}
-+#endif
-+
-+/*
-+ * AC97
-+ */
-+static struct ac97c_platform_data pm9g45_ac97_data = {
-+ 	.reset_pin	= 0,
-+};
-+
-+
-+/*
-+ * LEDs ... these could all be PWM-driven, for variable brightness
-+ */
-+static struct gpio_led pm9g45_leds[] = {
-+	{	/* "right" led, green, userled2 (could be driven by pwm2) */
-+		.name			= "led0",
-+		.gpio			= AT91_PIN_PD0,
-+		.active_low		= 1,
-+		.default_trigger	= "nand-disk",
-+	},
-+	{	/* "power" led, yellow (could be driven by pwm0) */
-+		.name			= "led1",
-+		.gpio			= AT91_PIN_PD31,
-+		.active_low		= 1,
-+		.default_trigger	= "heartbeat",
-+	}
-+};
-+
-+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
-+struct w1_gpio_platform_data pm9g45_w1_platdata = {
-+	.pin		= AT91_PIN_PA31,
-+	.is_open_drain	= 0,
-+};
-+
-+static struct platform_device pm9g45_w1_device = {
-+	.name		= "w1-gpio",
-+	.id		= 0,
-+	.dev		= {
-+		.platform_data 	= &pm9g45_w1_platdata,
-+	},
-+};
-+#endif
-+
-+#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
-+    defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
-+static struct at91_cf_data pm9g45_cf_data = {
-+	.det_pin	= AT91_PIN_PD13,
-+	.rst_pin	= AT91_PIN_PD14,
-+	.irq_pin	= AT91_PIN_PE1,
-+	// .vcc_pin	= ... always powered
-+	.chipselect	= 4,
-+};
-+
-+static struct resource pm9g45_cf_resources[] = {
-+	[0] = {
-+		.start	= AT91_CHIPSELECT_4,
-+		.end	= AT91_CHIPSELECT_4 + (0x10000000 - 1),
-+		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
-+	},
-+};
-+
-+static struct platform_device pm9g45_cf_device = {
-+	.name		= "at91_cf",
-+	.id		= -1,
-+	.dev		= {
-+		.platform_data	= &pm9g45_cf_data,
-+	},
-+	.resource	= pm9g45_cf_resources,
-+	.num_resources	= ARRAY_SIZE(pm9g45_cf_resources),
-+};
-+
-+#define CF_NWE_SETUP	(9 << 0)
-+#define CF_NCS_WR_SETUP	(2 << 8)
-+#define CF_NRD_SETUP	(9 << 16)
-+#define CF_NCS_RD_SETUP	(2 << 24)
-+
-+#define CF_NWE_PULSE 	(17 << 0)
-+#define CF_NCS_WR_PULSE	(27 << 8)
-+#define CF_NRD_PULSE	(17 << 16)
-+#define CF_NCS_RD_PULSE	(27 << 24)
-+
-+#define CF_NWE_CYCLE 	(40 << 0)
-+#define CF_NRD_CYCLE	(40 << 16)
-+
-+#define CF_TDF		(1 << 16)
-+
-+static void __init pm9g45_add_device_cf(void) {
-+struct at91_cf_data *data = & pm9g45_cf_data;
-+unsigned int csa;
-+
-+	// Setup Compact flash, first enable the address range of
-+	// CS4 in HMATRIX user interface
-+	csa = at91_sys_read(AT91_MATRIX_EBICSA);
-+	at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS4A_SMC_CF0);
-+
-+	/* Configure SMC CS4 */
-+	at91_sys_write(AT91_SMC_SETUP(4),
-+				(CF_NWE_SETUP |
-+				CF_NCS_WR_SETUP |
-+				CF_NRD_SETUP |
-+				CF_NCS_RD_SETUP));
-+
-+	at91_sys_write(AT91_SMC_PULSE(4), (CF_NWE_PULSE |
-+					CF_NCS_WR_PULSE |
-+					CF_NRD_PULSE |
-+					CF_NCS_RD_PULSE));
-+	at91_sys_write(AT91_SMC_CYCLE(4), (CF_NWE_CYCLE | CF_NRD_CYCLE));
-+	// 16 bit
-+	at91_sys_write (AT91_SMC_MODE(4), (AT91_SMC_READMODE |
-+					AT91_SMC_WRITEMODE |
-+					AT91_SMC_EXNWMODE_DISABLE |
-+					AT91_SMC_DBW_16 |
-+					CF_TDF));
-+
-+	/* input/irq */
-+	if (data->irq_pin) {
-+		at91_set_gpio_input(data->irq_pin, 0);
-+		at91_set_deglitch(data->irq_pin, 1);
-+	}
-+	at91_set_gpio_input(data->det_pin, 0);
-+	at91_set_deglitch(data->det_pin, 1);
-+
-+	/* outputs, initially off */
-+	if (data->vcc_pin)
-+		at91_set_gpio_output(data->vcc_pin, 0);
-+	if (data->rst_pin)
-+		at91_set_gpio_output(data->rst_pin, 0);
-+
-+	/* force poweron defaults for these pins ... */
-+	at91_set_A_periph(AT91_PIN_PC15, 0);	/* */
-+	at91_set_A_periph(AT91_PIN_PC12, 0);	/* */
-+	at91_set_A_periph(AT91_PIN_PC10, 0);	/* */
-+	at91_set_A_periph(AT91_PIN_PC8, 0);	/* */
-+	at91_set_A_periph(AT91_PIN_PC9, 0);	/* */
-+
-+	platform_device_register(&pm9g45_cf_device);
-+}
-+#else
-+void __init pm9g45_add_device_cf(void) {}
-+#endif
-+
-+static void __init pm9g45_board_init(void)
-+{
-+	/* Serial */
-+	at91_add_device_serial();
-+	/* USB HS Host */
-+	at91_add_device_usbh_ohci(&pm9g45_usbh_hs_data);
-+	at91_add_device_usbh_ehci(&pm9g45_usbh_hs_data);
-+	/* USB HS Device */
-+	//at91_add_device_usba(&pm9g45_usba_udc_data);
-+	/* SPI */
-+	at91_add_device_spi(pm9g45_spi_devices, ARRAY_SIZE(pm9g45_spi_devices));
-+ 	/* Touchscreen */
-+	pm9g45_add_device_ts();
-+	/* at91_add_device_tsadcc(&pm9g45_tsadcc_data); Not used for now */
-+ 	/* MMC */
-+	at91_add_device_mci(0, &pm9g45_mci0_data);
-+	/* Ethernet */
-+	at91_add_device_eth(&pm9g45_macb_data);
-+	/* NAND */
-+	pm9g45_add_device_nand();
-+	/* I2C */
-+	/* No I2C used in pm9g45 */	
-+	/* LCD Controller */
-+	pm9g45_add_device_lcdc(&pm9g45_lcdc_data);
-+	/* Push Buttons */
-+	pm9g45_add_device_buttons();
-+	/* AC97 */
-+	at91_add_device_ac97(&pm9g45_ac97_data);
-+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
-+	platform_device_register(&pm9g45_w1_device);
-+#endif
-+ 	/* Compact flash */
-+	pm9g45_add_device_cf();
-+	/* LEDs */
-+	at91_gpio_leds(pm9g45_leds, ARRAY_SIZE(pm9g45_leds));
-+}
-+
-+MACHINE_START(PM9G45, "Ronetix PM9G45")
-+	/* Maintainer: Atmel */
-+	.phys_io	= AT91_BASE_SYS,
-+	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
-+	.boot_params	= AT91_SDRAM_BASE + 0x100,
-+	.timer		= &at91sam926x_timer,
-+	.map_io		= pm9g45_map_io,
-+	.init_irq	= pm9g45_init_irq,
-+	.init_machine	= pm9g45_board_init,
-+MACHINE_END
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-pm9g45-default-configuration-files.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-pm9g45-default-configuration-files.patch
new file mode 100644
index 0000000..80b53fa
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0007-pm9g45-default-configuration-files.patch
@@ -0,0 +1,3360 @@
+From b631cd2acba827ec2852f68ca11ce95b7da19fbc Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 2 Mar 2010 01:56:44 +0200
+Subject: [[PATCH 07/22] pm9g45: default configuration files
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/configs/pm9g45_defconfig    | 1674 ++++++++++++++++++++++++++++++++++
+ arch/arm/configs/pm9g45cs6_defconfig | 1657 +++++++++++++++++++++++++++++++++
+ 2 files changed, 3331 insertions(+), 0 deletions(-)
+ create mode 100644 arch/arm/configs/pm9g45_defconfig
+ create mode 100644 arch/arm/configs/pm9g45cs6_defconfig
+
+diff --git a/arch/arm/configs/pm9g45_defconfig b/arch/arm/configs/pm9g45_defconfig
+new file mode 100644
+index 0000000..a57f0f5
+--- /dev/null
++++ b/arch/arm/configs/pm9g45_defconfig
+@@ -0,0 +1,1674 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.30.10
++# Fri Feb 19 20:39:36 2010
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++CONFIG_GENERIC_TIME=y
++CONFIG_GENERIC_CLOCKEVENTS=y
++CONFIG_MMU=y
++# CONFIG_NO_IOPORT is not set
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_HAVE_LATENCYTOP_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++# CONFIG_LOCALVERSION_AUTO is not set
++# CONFIG_SWAP is not set
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++
++#
++# RCU Subsystem
++#
++# CONFIG_CLASSIC_RCU is not set
++CONFIG_TREE_RCU=y
++# CONFIG_PREEMPT_RCU is not set
++# CONFIG_RCU_TRACE is not set
++CONFIG_RCU_FANOUT=32
++# CONFIG_RCU_FANOUT_EXACT is not set
++# CONFIG_TREE_RCU_TRACE is not set
++# CONFIG_PREEMPT_RCU_TRACE is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=14
++# CONFIG_GROUP_SCHED is not set
++# CONFIG_CGROUPS is not set
++CONFIG_SYSFS_DEPRECATED=y
++CONFIG_SYSFS_DEPRECATED_V2=y
++# CONFIG_RELAY is not set
++CONFIG_NAMESPACES=y
++# CONFIG_UTS_NS is not set
++# CONFIG_IPC_NS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_NET_NS is not set
++# CONFIG_BLK_DEV_INITRD is not set
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++CONFIG_ANON_INODES=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_STRIP_ASM_SYMS=y
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_AIO=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_COMPAT_BRK=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++# CONFIG_KPROBES is not set
++CONFIG_HAVE_KPROBES=y
++CONFIG_HAVE_KRETPROBES=y
++CONFIG_HAVE_CLK=y
++# CONFIG_SLOW_WORK is not set
++CONFIG_HAVE_GENERIC_DMA_COHERENT=y
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++# CONFIG_MODULE_FORCE_LOAD is not set
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_BSG is not set
++# CONFIG_BLK_DEV_INTEGRITY is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++# CONFIG_IOSCHED_DEADLINE is not set
++# CONFIG_IOSCHED_CFQ is not set
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++# CONFIG_FREEZER is not set
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++CONFIG_ARCH_AT91=y
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_GEMINI is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KIRKWOOD is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_LOKI is not set
++# CONFIG_ARCH_MV78XX0 is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_ORION5X is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_MMP is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++# CONFIG_ARCH_S3C2410 is not set
++# CONFIG_ARCH_S3C64XX is not set
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_MSM is not set
++# CONFIG_ARCH_W90X900 is not set
++
++#
++# Atmel AT91 System-on-Chip
++#
++# CONFIG_ARCH_AT91RM9200 is not set
++# CONFIG_ARCH_AT91SAM9260 is not set
++# CONFIG_ARCH_AT91SAM9261 is not set
++# CONFIG_ARCH_AT91SAM9G10 is not set
++# CONFIG_ARCH_AT91SAM9263 is not set
++# CONFIG_ARCH_AT91SAM9RL is not set
++# CONFIG_ARCH_AT91SAM9G20 is not set
++CONFIG_ARCH_AT91SAM9G45=y
++# CONFIG_ARCH_AT91CAP9 is not set
++# CONFIG_ARCH_AT572D940HF is not set
++# CONFIG_ARCH_AT91X40 is not set
++CONFIG_AT91_PMC_UNIT=y
++
++#
++# AT91SAM9G45 Board Type
++#
++# CONFIG_MACH_AT91SAM9G45EKES is not set
++CONFIG_MACH_PM9G45=y
++CONFIG_PM9G45_SYSTEM_RAM_CS1=y
++# CONFIG_PM9G45_SYSTEM_RAM_CS6 is not set
++CONFIG_PM9G45_LCD_TX09D70=y
++# CONFIG_PM9G45_LCD_RA158 is not set
++# CONFIG_PM9G45_LCD_TCG057VGLAC is not set
++# CONFIG_PM9G45_LCD_GTTV57NN771E0 is not set
++# CONFIG_PM9G45_LCD_GLAA057VA01CW is not set
++# CONFIG_PM9G45_LCD_GATW70SN8H1E0 is not set
++# CONFIG_PM9G45_LCD_CLAA080MB0ACW is not set
++
++#
++# AT91 Board Options
++#
++CONFIG_MTD_AT91_DATAFLASH_CARD=y
++# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
++
++#
++# AT91 Feature Selections
++#
++CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
++CONFIG_AT91_TIMER_HZ=100
++CONFIG_AT91_EARLY_DBGU=y
++# CONFIG_AT91_EARLY_USART0 is not set
++# CONFIG_AT91_EARLY_USART1 is not set
++# CONFIG_AT91_EARLY_USART2 is not set
++# CONFIG_AT91_EARLY_USART3 is not set
++# CONFIG_AT91_EARLY_USART4 is not set
++# CONFIG_AT91_EARLY_USART5 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_PABRT_NOIFAR=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++CONFIG_PCCARD=y
++CONFIG_PCMCIA_DEBUG=y
++CONFIG_PCMCIA=y
++# CONFIG_PCMCIA_LOAD_CIS is not set
++# CONFIG_PCMCIA_IOCTL is not set
++
++#
++# PC-card bridges
++#
++CONFIG_AT91_CF=y
++
++#
++# Kernel Features
++#
++# CONFIG_NO_HZ is not set
++# CONFIG_HIGH_RES_TIMERS is not set
++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
++CONFIG_VMSPLIT_3G=y
++# CONFIG_VMSPLIT_2G is not set
++# CONFIG_VMSPLIT_1G is not set
++CONFIG_PAGE_OFFSET=0xC0000000
++# CONFIG_PREEMPT is not set
++CONFIG_HZ=100
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
++# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
++# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
++# CONFIG_HIGHMEM is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++CONFIG_PAGEFLAGS_EXTENDED=y
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_PHYS_ADDR_T_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=0
++CONFIG_VIRT_TO_BUS=y
++CONFIG_UNEVICTABLE_LRU=y
++CONFIG_HAVE_MLOCK=y
++CONFIG_HAVE_MLOCKED_PAGE_BIT=y
++CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
++CONFIG_LEDS=y
++CONFIG_LEDS_CPU=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE=""
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# CPU Power Management
++#
++# CONFIG_CPU_IDLE is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
++CONFIG_HAVE_AOUT=y
++# CONFIG_BINFMT_AOUT is not set
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++# CONFIG_PACKET_MMAP is not set
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++CONFIG_IP_MULTICAST=y
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_IP_MROUTE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_NET_DSA is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_PHONET is not set
++# CONFIG_NET_SCHED is not set
++# CONFIG_DCB is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_CAN is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++# CONFIG_WIRELESS is not set
++# CONFIG_WIMAX is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++CONFIG_FIRMWARE_IN_KERNEL=y
++CONFIG_EXTRA_FIRMWARE=""
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_TESTS is not set
++# CONFIG_MTD_REDBOOT_PARTS is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++# CONFIG_MTD_AR7_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++# CONFIG_MTD_CFI is not set
++# CONFIG_MTD_JEDECPROBE is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_RAM is not set
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++CONFIG_MTD_DATAFLASH=y
++CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
++# CONFIG_MTD_DATAFLASH_OTP is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++# CONFIG_MTD_NAND_GPIO is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++CONFIG_MTD_NAND_ATMEL=y
++CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
++# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
++# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# LPDDR flash memory drivers
++#
++# CONFIG_MTD_LPDDR is not set
++
++#
++# UBI - Unsorted block images
++#
++CONFIG_MTD_UBI=y
++CONFIG_MTD_UBI_WL_THRESHOLD=4096
++CONFIG_MTD_UBI_BEB_RESERVE=1
++# CONFIG_MTD_UBI_GLUEBI is not set
++
++#
++# UBI debugging options
++#
++# CONFIG_MTD_UBI_DEBUG is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=4
++CONFIG_BLK_DEV_RAM_SIZE=8192
++# CONFIG_BLK_DEV_XIP is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_ATMEL_PWM is not set
++CONFIG_ATMEL_TCLIB=y
++CONFIG_ATMEL_TCB_CLKSRC=y
++CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
++CONFIG_ATMEL_SSC=y
++# CONFIG_ENCLOSURE_SERVICES is not set
++# CONFIG_C2PORT is not set
++
++#
++# EEPROM support
++#
++# CONFIG_EEPROM_AT25 is not set
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_HAVE_IDE=y
++CONFIG_IDE=y
++
++#
++# Please see Documentation/ide/ide.txt for help/info on IDE drives
++#
++CONFIG_IDE_XFER_MODE=y
++CONFIG_IDE_TIMINGS=y
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_IDE_GD=y
++CONFIG_IDE_GD_ATA=y
++# CONFIG_IDE_GD_ATAPI is not set
++CONFIG_BLK_DEV_IDECS=y
++# CONFIG_BLK_DEV_IDECD is not set
++# CONFIG_BLK_DEV_IDETAPE is not set
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++# CONFIG_BLK_DEV_PLATFORM is not set
++CONFIG_BLK_DEV_IDE_AT91=y
++# CONFIG_BLK_DEV_IDEDMA is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++# CONFIG_CHR_DEV_SG is not set
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++CONFIG_SCSI_MULTI_LUN=y
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++# CONFIG_SCSI_LOWLEVEL is not set
++# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
++# CONFIG_SCSI_DH is not set
++# CONFIG_SCSI_OSD_INITIATOR is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++CONFIG_COMPAT_NET_DEV_OPS=y
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++CONFIG_PHYLIB=y
++
++#
++# MII PHY device drivers
++#
++# CONFIG_MARVELL_PHY is not set
++# CONFIG_DAVICOM_PHY is not set
++# CONFIG_QSEMI_PHY is not set
++# CONFIG_LXT_PHY is not set
++# CONFIG_CICADA_PHY is not set
++# CONFIG_VITESSE_PHY is not set
++# CONFIG_SMSC_PHY is not set
++# CONFIG_BROADCOM_PHY is not set
++# CONFIG_ICPLUS_PHY is not set
++# CONFIG_REALTEK_PHY is not set
++CONFIG_NATIONAL_PHY=y
++# CONFIG_STE10XP is not set
++# CONFIG_LSI_ET1011C_PHY is not set
++# CONFIG_FIXED_PHY is not set
++# CONFIG_MDIO_BITBANG is not set
++CONFIG_NET_ETHERNET=y
++# CONFIG_MII is not set
++CONFIG_MACB=y
++# CONFIG_AX88796 is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++# CONFIG_ENC28J60 is not set
++# CONFIG_ETHOC is not set
++# CONFIG_SMC911X is not set
++# CONFIG_SMSC911X is not set
++# CONFIG_DNET is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
++# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
++# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
++# CONFIG_B44 is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# Enable WiMAX (Networking options) to see the WiMAX drivers
++#
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_NET_PCMCIA is not set
++# CONFIG_WAN is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
++CONFIG_INPUT_JOYDEV=y
++CONFIG_INPUT_EVDEV=y
++CONFIG_INPUT_EVBUG=y
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_ELANTECH is not set
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_BCM5974 is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++CONFIG_TOUCHSCREEN_ADS7846=y
++# CONFIG_TOUCHSCREEN_AD7877 is not set
++# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
++# CONFIG_TOUCHSCREEN_AD7879 is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_INEXIO is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_ATMEL_TSADCC is not set
++# CONFIG_TOUCHSCREEN_WM97XX is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++# CONFIG_SERIO_SERPORT is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_CONSOLE_TRANSLATIONS=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_DEVKMEM=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_ATMEL=y
++CONFIG_SERIAL_ATMEL_CONSOLE=y
++CONFIG_SERIAL_ATMEL_PDC=y
++# CONFIG_SERIAL_ATMEL_TTYAT is not set
++# CONFIG_SERIAL_MAX3100 is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=4
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_HW_RANDOM_TIMERIOMEM is not set
++# CONFIG_R3964 is not set
++
++#
++# PCMCIA character devices
++#
++# CONFIG_SYNCLINK_CS is not set
++# CONFIG_CARDMAN_4000 is not set
++# CONFIG_CARDMAN_4040 is not set
++# CONFIG_IPWIRELESS is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++# CONFIG_I2C is not set
++CONFIG_SPI=y
++CONFIG_SPI_DEBUG=y
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_ATMEL=y
++# CONFIG_SPI_BITBANG is not set
++# CONFIG_SPI_GPIO is not set
++
++#
++# SPI Protocol Masters
++#
++CONFIG_SPI_SPIDEV=y
++# CONFIG_SPI_TLE62X0 is not set
++CONFIG_ARCH_REQUIRE_GPIOLIB=y
++CONFIG_GPIOLIB=y
++# CONFIG_DEBUG_GPIO is not set
++# CONFIG_GPIO_SYSFS is not set
++
++#
++# Memory mapped GPIO expanders:
++#
++
++#
++# I2C GPIO expanders:
++#
++
++#
++# PCI GPIO expanders:
++#
++
++#
++# SPI GPIO expanders:
++#
++# CONFIG_GPIO_MAX7301 is not set
++# CONFIG_GPIO_MCP23S08 is not set
++CONFIG_W1=y
++
++#
++# 1-wire Bus Masters
++#
++# CONFIG_W1_MASTER_DS2490 is not set
++# CONFIG_W1_MASTER_DS1WM is not set
++CONFIG_W1_MASTER_GPIO=y
++
++#
++# 1-wire Slaves
++#
++# CONFIG_W1_SLAVE_THERM is not set
++# CONFIG_W1_SLAVE_SMEM is not set
++# CONFIG_W1_SLAVE_DS2431 is not set
++# CONFIG_W1_SLAVE_DS2433 is not set
++# CONFIG_W1_SLAVE_DS2760 is not set
++# CONFIG_W1_SLAVE_BQ27000 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_THERMAL is not set
++# CONFIG_THERMAL_HWMON is not set
++# CONFIG_WATCHDOG is not set
++CONFIG_SSB_POSSIBLE=y
++
++#
++# Sonics Silicon Backplane
++#
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_CORE is not set
++# CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
++# CONFIG_HTC_EGPIO is not set
++# CONFIG_HTC_PASIC3 is not set
++# CONFIG_UCB1400_CORE is not set
++# CONFIG_MFD_TMIO is not set
++# CONFIG_MFD_T7L66XB is not set
++# CONFIG_MFD_TC6387XB is not set
++# CONFIG_MFD_TC6393XB is not set
++
++#
++# Multimedia devices
++#
++
++#
++# Multimedia core support
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_VIDEO_MEDIA is not set
++
++#
++# Multimedia drivers
++#
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++CONFIG_VIDEO_OUTPUT_CONTROL=y
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_BOOT_VESA_SUPPORT is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_FOREIGN_ENDIAN is not set
++# CONFIG_FB_SYS_FOPS is not set
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_S1D15605 is not set
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_ATMEL=y
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_FB_METRONOME is not set
++# CONFIG_FB_MB862XX is not set
++# CONFIG_FB_BROADSHEET is not set
++CONFIG_BACKLIGHT_LCD_SUPPORT=y
++CONFIG_LCD_CLASS_DEVICE=y
++# CONFIG_LCD_LTV350QV is not set
++# CONFIG_LCD_ILI9320 is not set
++# CONFIG_LCD_TDO24M is not set
++# CONFIG_LCD_VGG2432A4 is not set
++CONFIG_LCD_PLATFORM=y
++CONFIG_BACKLIGHT_CLASS_DEVICE=y
++CONFIG_BACKLIGHT_ATMEL_LCDC=y
++# CONFIG_BACKLIGHT_GENERIC is not set
++
++#
++# Display device support
++#
++CONFIG_DISPLAY_SUPPORT=y
++
++#
++# Display hardware drivers
++#
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++CONFIG_FONTS=y
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++# CONFIG_FONT_6x11 is not set
++# CONFIG_FONT_7x14 is not set
++# CONFIG_FONT_PEARL_8x8 is not set
++# CONFIG_FONT_ACORN_8x8 is not set
++# CONFIG_FONT_MINI_4x6 is not set
++# CONFIG_FONT_SUN8x16 is not set
++# CONFIG_FONT_SUN12x22 is not set
++# CONFIG_FONT_10x18 is not set
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++CONFIG_LOGO_LINUX_CLUT224=y
++CONFIG_SOUND=y
++# CONFIG_SOUND_OSS_CORE is not set
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++# CONFIG_SND_SEQUENCER is not set
++# CONFIG_SND_MIXER_OSS is not set
++# CONFIG_SND_PCM_OSS is not set
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++CONFIG_SND_VMASTER=y
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DRIVERS is not set
++# CONFIG_SND_ARM is not set
++
++#
++# Atmel devices (AVR32 and AT91)
++#
++CONFIG_SND_ATMEL_AC97C=y
++# CONFIG_SND_SPI is not set
++# CONFIG_SND_USB is not set
++# CONFIG_SND_PCMCIA is not set
++# CONFIG_SND_SOC is not set
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++CONFIG_HID_DEBUG=y
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_HID_PID is not set
++# CONFIG_USB_HIDDEV is not set
++
++#
++# Special HID drivers
++#
++CONFIG_HID_A4TECH=y
++CONFIG_HID_APPLE=y
++CONFIG_HID_BELKIN=y
++CONFIG_HID_CHERRY=y
++CONFIG_HID_CHICONY=y
++CONFIG_HID_CYPRESS=y
++# CONFIG_DRAGONRISE_FF is not set
++CONFIG_HID_EZKEY=y
++CONFIG_HID_KYE=y
++CONFIG_HID_GYRATION=y
++CONFIG_HID_KENSINGTON=y
++CONFIG_HID_LOGITECH=y
++# CONFIG_LOGITECH_FF is not set
++# CONFIG_LOGIRUMBLEPAD2_FF is not set
++CONFIG_HID_MICROSOFT=y
++CONFIG_HID_MONTEREY=y
++CONFIG_HID_NTRIG=y
++CONFIG_HID_PANTHERLORD=y
++# CONFIG_PANTHERLORD_FF is not set
++CONFIG_HID_PETALYNX=y
++CONFIG_HID_SAMSUNG=y
++CONFIG_HID_SONY=y
++CONFIG_HID_SUNPLUS=y
++# CONFIG_GREENASIA_FF is not set
++CONFIG_HID_TOPSEED=y
++# CONFIG_THRUSTMASTER_FF is not set
++# CONFIG_ZEROPLUS_FF is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++CONFIG_USB_ARCH_HAS_EHCI=y
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++# CONFIG_USB_DEVICE_CLASS is not set
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++# CONFIG_USB_MON is not set
++# CONFIG_USB_WUSB is not set
++# CONFIG_USB_WUSB_CBAF is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_C67X00_HCD is not set
++CONFIG_USB_EHCI_HCD=y
++# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
++# CONFIG_USB_EHCI_TT_NEWSCHED is not set
++# CONFIG_USB_OXU210HP_HCD is not set
++# CONFIG_USB_ISP116X_HCD is not set
++# CONFIG_USB_ISP1760_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++# CONFIG_USB_HWA_HCD is not set
++# CONFIG_USB_MUSB_HDRC is not set
++# CONFIG_USB_GADGET_MUSB_HDRC is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++# CONFIG_USB_WDM is not set
++# CONFIG_USB_TMC is not set
++
++#
++# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
++#
++
++#
++# also be needed; see USB_STORAGE Help for more info
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++
++#
++# USB port drivers
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_SEVSEG is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_SISUSBVGA is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++# CONFIG_USB_ISIGHTFW is not set
++# CONFIG_USB_VST is not set
++CONFIG_USB_GADGET=y
++# CONFIG_USB_GADGET_DEBUG is not set
++# CONFIG_USB_GADGET_DEBUG_FILES is not set
++# CONFIG_USB_GADGET_DEBUG_FS is not set
++CONFIG_USB_GADGET_VBUS_DRAW=2
++CONFIG_USB_GADGET_SELECTED=y
++# CONFIG_USB_GADGET_AT91 is not set
++CONFIG_USB_GADGET_ATMEL_USBA=y
++CONFIG_USB_ATMEL_USBA=y
++# CONFIG_USB_GADGET_FSL_USB2 is not set
++# CONFIG_USB_GADGET_LH7A40X is not set
++# CONFIG_USB_GADGET_OMAP is not set
++# CONFIG_USB_GADGET_PXA25X is not set
++# CONFIG_USB_GADGET_PXA27X is not set
++# CONFIG_USB_GADGET_S3C2410 is not set
++# CONFIG_USB_GADGET_IMX is not set
++# CONFIG_USB_GADGET_M66592 is not set
++# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_FSL_QE is not set
++# CONFIG_USB_GADGET_CI13XXX is not set
++# CONFIG_USB_GADGET_NET2280 is not set
++# CONFIG_USB_GADGET_GOKU is not set
++# CONFIG_USB_GADGET_DUMMY_HCD is not set
++CONFIG_USB_GADGET_DUALSPEED=y
++# CONFIG_USB_ZERO is not set
++# CONFIG_USB_ETH is not set
++# CONFIG_USB_GADGETFS is not set
++# CONFIG_USB_FILE_STORAGE is not set
++CONFIG_USB_G_SERIAL=y
++# CONFIG_USB_MIDI_GADGET is not set
++# CONFIG_USB_G_PRINTER is not set
++# CONFIG_USB_CDC_COMPOSITE is not set
++
++#
++# OTG and related infrastructure
++#
++# CONFIG_USB_GPIO_VBUS is not set
++# CONFIG_NOP_USB_XCEIV is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD/SDIO Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++# CONFIG_MMC_TEST is not set
++
++#
++# MMC/SD/SDIO Host Controller Drivers
++#
++# CONFIG_MMC_SDHCI is not set
++# CONFIG_MMC_AT91 is not set
++CONFIG_MMC_ATMELMCI=y
++CONFIG_MMC_ATMELMCI_DMA=y
++# CONFIG_MMC_SPI is not set
++# CONFIG_MEMSTICK is not set
++# CONFIG_ACCESSIBILITY is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=y
++
++#
++# LED drivers
++#
++CONFIG_LEDS_GPIO=y
++CONFIG_LEDS_GPIO_PLATFORM=y
++# CONFIG_LEDS_DAC124S085 is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=y
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=y
++# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
++CONFIG_LEDS_TRIGGER_GPIO=y
++# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
++
++#
++# iptables trigger is under Netfilter config (LED target)
++#
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_M41T94 is not set
++# CONFIG_RTC_DRV_DS1305 is not set
++# CONFIG_RTC_DRV_DS1390 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++# CONFIG_RTC_DRV_R9701 is not set
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_DS3234 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1286 is not set
++# CONFIG_RTC_DRV_DS1511 is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T35 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_BQ4802 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_AT91SAM9=y
++CONFIG_RTC_DRV_AT91SAM9_RTT=0
++CONFIG_RTC_DRV_AT91SAM9_GPBR=0
++CONFIG_DMADEVICES=y
++
++#
++# DMA Devices
++#
++CONFIG_AT_HDMAC=y
++CONFIG_DMA_ENGINE=y
++
++#
++# DMA Clients
++#
++# CONFIG_NET_DMA is not set
++# CONFIG_ASYNC_TX_DMA is not set
++# CONFIG_DMATEST is not set
++# CONFIG_AUXDISPLAY is not set
++# CONFIG_REGULATOR is not set
++# CONFIG_UIO is not set
++# CONFIG_STAGING is not set
++
++#
++# File systems
++#
++# CONFIG_EXT2_FS is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_EXT4_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_BTRFS_FS is not set
++CONFIG_FILE_LOCKING=y
++CONFIG_DNOTIFY=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# Caches
++#
++# CONFIG_FSCACHE is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++# CONFIG_MSDOS_FS is not set
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_PROC_PAGE_MONITOR=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++CONFIG_MISC_FILESYSTEMS=y
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++CONFIG_JFFS2_SUMMARY=y
++# CONFIG_JFFS2_FS_XATTR is not set
++CONFIG_JFFS2_COMPRESSION_OPTIONS=y
++CONFIG_JFFS2_ZLIB=y
++CONFIG_JFFS2_LZO=y
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_JFFS2_CMODE_NONE is not set
++CONFIG_JFFS2_CMODE_PRIORITY=y
++# CONFIG_JFFS2_CMODE_SIZE is not set
++# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
++# CONFIG_UBIFS_FS is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_SQUASHFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_OMFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++# CONFIG_NILFS2_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++CONFIG_NFS_V3=y
++# CONFIG_NFS_V3_ACL is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFSD is not set
++CONFIG_LOCKD=y
++CONFIG_LOCKD_V4=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++CONFIG_NLS_CODEPAGE_850=y
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++
++#
++# Kernel hacking
++#
++CONFIG_PRINTK_TIME=y
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_FRAME_WARN=1024
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++CONFIG_DEBUG_FS=y
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
++CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
++CONFIG_DETECT_HUNG_TASK=y
++# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
++CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++CONFIG_TIMER_STATS=y
++# CONFIG_DEBUG_OBJECTS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_MUTEXES is not set
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_WRITECOUNT is not set
++CONFIG_DEBUG_MEMORY_INIT=y
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++# CONFIG_DEBUG_NOTIFIERS is not set
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_RCU_CPU_STALL_DETECTOR is not set
++# CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_LATENCYTOP is not set
++# CONFIG_SYSCTL_SYSCALL_CHECK is not set
++# CONFIG_PAGE_POISONING is not set
++CONFIG_HAVE_FUNCTION_TRACER=y
++CONFIG_TRACING_SUPPORT=y
++
++#
++# Tracers
++#
++# CONFIG_FUNCTION_TRACER is not set
++# CONFIG_IRQSOFF_TRACER is not set
++# CONFIG_SCHED_TRACER is not set
++# CONFIG_CONTEXT_SWITCH_TRACER is not set
++# CONFIG_EVENT_TRACER is not set
++# CONFIG_BOOT_TRACER is not set
++# CONFIG_TRACE_BRANCH_PROFILING is not set
++# CONFIG_STACK_TRACER is not set
++# CONFIG_KMEMTRACE is not set
++# CONFIG_WORKQUEUE_TRACER is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_DYNAMIC_DEBUG is not set
++# CONFIG_SAMPLES is not set
++CONFIG_HAVE_ARCH_KGDB=y
++# CONFIG_KGDB is not set
++CONFIG_ARM_UNWIND=y
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++# CONFIG_DEBUG_STACK_USAGE is not set
++# CONFIG_DEBUG_LL is not set
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITYFS is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++CONFIG_CRYPTO=y
++
++#
++# Crypto core or helper
++#
++# CONFIG_CRYPTO_FIPS is not set
++CONFIG_CRYPTO_ALGAPI=y
++CONFIG_CRYPTO_ALGAPI2=y
++CONFIG_CRYPTO_AEAD2=y
++CONFIG_CRYPTO_BLKCIPHER=y
++CONFIG_CRYPTO_BLKCIPHER2=y
++CONFIG_CRYPTO_HASH2=y
++CONFIG_CRYPTO_RNG2=y
++CONFIG_CRYPTO_PCOMP=y
++CONFIG_CRYPTO_MANAGER=y
++CONFIG_CRYPTO_MANAGER2=y
++# CONFIG_CRYPTO_GF128MUL is not set
++# CONFIG_CRYPTO_NULL is not set
++CONFIG_CRYPTO_WORKQUEUE=y
++# CONFIG_CRYPTO_CRYPTD is not set
++# CONFIG_CRYPTO_AUTHENC is not set
++# CONFIG_CRYPTO_TEST is not set
++
++#
++# Authenticated Encryption with Associated Data
++#
++# CONFIG_CRYPTO_CCM is not set
++# CONFIG_CRYPTO_GCM is not set
++# CONFIG_CRYPTO_SEQIV is not set
++
++#
++# Block modes
++#
++# CONFIG_CRYPTO_CBC is not set
++# CONFIG_CRYPTO_CTR is not set
++# CONFIG_CRYPTO_CTS is not set
++CONFIG_CRYPTO_ECB=y
++# CONFIG_CRYPTO_LRW is not set
++# CONFIG_CRYPTO_PCBC is not set
++# CONFIG_CRYPTO_XTS is not set
++
++#
++# Hash modes
++#
++# CONFIG_CRYPTO_HMAC is not set
++# CONFIG_CRYPTO_XCBC is not set
++
++#
++# Digest
++#
++# CONFIG_CRYPTO_CRC32C is not set
++# CONFIG_CRYPTO_MD4 is not set
++# CONFIG_CRYPTO_MD5 is not set
++# CONFIG_CRYPTO_MICHAEL_MIC is not set
++# CONFIG_CRYPTO_RMD128 is not set
++# CONFIG_CRYPTO_RMD160 is not set
++# CONFIG_CRYPTO_RMD256 is not set
++# CONFIG_CRYPTO_RMD320 is not set
++# CONFIG_CRYPTO_SHA1 is not set
++# CONFIG_CRYPTO_SHA256 is not set
++# CONFIG_CRYPTO_SHA512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
++# CONFIG_CRYPTO_WP512 is not set
++
++#
++# Ciphers
++#
++CONFIG_CRYPTO_AES=y
++# CONFIG_CRYPTO_ANUBIS is not set
++CONFIG_CRYPTO_ARC4=y
++# CONFIG_CRYPTO_BLOWFISH is not set
++# CONFIG_CRYPTO_CAMELLIA is not set
++# CONFIG_CRYPTO_CAST5 is not set
++# CONFIG_CRYPTO_CAST6 is not set
++# CONFIG_CRYPTO_DES is not set
++# CONFIG_CRYPTO_FCRYPT is not set
++# CONFIG_CRYPTO_KHAZAD is not set
++# CONFIG_CRYPTO_SALSA20 is not set
++# CONFIG_CRYPTO_SEED is not set
++# CONFIG_CRYPTO_SERPENT is not set
++# CONFIG_CRYPTO_TEA is not set
++# CONFIG_CRYPTO_TWOFISH is not set
++
++#
++# Compression
++#
++CONFIG_CRYPTO_DEFLATE=y
++CONFIG_CRYPTO_ZLIB=y
++CONFIG_CRYPTO_LZO=y
++
++#
++# Random Number Generation
++#
++# CONFIG_CRYPTO_ANSI_CPRNG is not set
++# CONFIG_CRYPTO_HW is not set
++# CONFIG_BINARY_PRINTF is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++CONFIG_GENERIC_FIND_LAST_BIT=y
++# CONFIG_CRC_CCITT is not set
++CONFIG_CRC16=y
++# CONFIG_CRC_T10DIF is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_IOPORT=y
++CONFIG_HAS_DMA=y
++CONFIG_NLATTR=y
+diff --git a/arch/arm/configs/pm9g45cs6_defconfig b/arch/arm/configs/pm9g45cs6_defconfig
+new file mode 100644
+index 0000000..724bd99
+--- /dev/null
++++ b/arch/arm/configs/pm9g45cs6_defconfig
+@@ -0,0 +1,1657 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.30.10
++# Sun Feb 28 13:56:37 2010
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++CONFIG_GENERIC_GPIO=y
++CONFIG_GENERIC_TIME=y
++CONFIG_GENERIC_CLOCKEVENTS=y
++CONFIG_MMU=y
++# CONFIG_NO_IOPORT is not set
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_HAVE_LATENCYTOP_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++# CONFIG_LOCALVERSION_AUTO is not set
++# CONFIG_SWAP is not set
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++
++#
++# RCU Subsystem
++#
++# CONFIG_CLASSIC_RCU is not set
++CONFIG_TREE_RCU=y
++# CONFIG_PREEMPT_RCU is not set
++# CONFIG_RCU_TRACE is not set
++CONFIG_RCU_FANOUT=32
++# CONFIG_RCU_FANOUT_EXACT is not set
++# CONFIG_TREE_RCU_TRACE is not set
++# CONFIG_PREEMPT_RCU_TRACE is not set
++# CONFIG_IKCONFIG is not set
++CONFIG_LOG_BUF_SHIFT=14
++# CONFIG_GROUP_SCHED is not set
++# CONFIG_CGROUPS is not set
++CONFIG_SYSFS_DEPRECATED=y
++CONFIG_SYSFS_DEPRECATED_V2=y
++# CONFIG_RELAY is not set
++CONFIG_NAMESPACES=y
++# CONFIG_UTS_NS is not set
++# CONFIG_IPC_NS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_NET_NS is not set
++# CONFIG_BLK_DEV_INITRD is not set
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++CONFIG_ANON_INODES=y
++# CONFIG_EMBEDDED is not set
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_STRIP_ASM_SYMS=y
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_AIO=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_COMPAT_BRK=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++# CONFIG_PROFILING is not set
++# CONFIG_MARKERS is not set
++CONFIG_HAVE_OPROFILE=y
++# CONFIG_KPROBES is not set
++CONFIG_HAVE_KPROBES=y
++CONFIG_HAVE_KRETPROBES=y
++CONFIG_HAVE_CLK=y
++# CONFIG_SLOW_WORK is not set
++CONFIG_HAVE_GENERIC_DMA_COHERENT=y
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++# CONFIG_MODULE_FORCE_LOAD is not set
++CONFIG_MODULE_UNLOAD=y
++# CONFIG_MODULE_FORCE_UNLOAD is not set
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_BSG is not set
++# CONFIG_BLK_DEV_INTEGRITY is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++# CONFIG_IOSCHED_DEADLINE is not set
++# CONFIG_IOSCHED_CFQ is not set
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++# CONFIG_FREEZER is not set
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++CONFIG_ARCH_AT91=y
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_GEMINI is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KIRKWOOD is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_LOKI is not set
++# CONFIG_ARCH_MV78XX0 is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_ORION5X is not set
++# CONFIG_ARCH_PNX4008 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_MMP is not set
++# CONFIG_ARCH_RPC is not set
++# CONFIG_ARCH_SA1100 is not set
++# CONFIG_ARCH_S3C2410 is not set
++# CONFIG_ARCH_S3C64XX is not set
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_DAVINCI is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_MSM is not set
++# CONFIG_ARCH_W90X900 is not set
++
++#
++# Atmel AT91 System-on-Chip
++#
++# CONFIG_ARCH_AT91RM9200 is not set
++# CONFIG_ARCH_AT91SAM9260 is not set
++# CONFIG_ARCH_AT91SAM9261 is not set
++# CONFIG_ARCH_AT91SAM9G10 is not set
++# CONFIG_ARCH_AT91SAM9263 is not set
++# CONFIG_ARCH_AT91SAM9RL is not set
++# CONFIG_ARCH_AT91SAM9G20 is not set
++CONFIG_ARCH_AT91SAM9G45=y
++# CONFIG_ARCH_AT91CAP9 is not set
++# CONFIG_ARCH_AT572D940HF is not set
++# CONFIG_ARCH_AT91X40 is not set
++CONFIG_AT91_PMC_UNIT=y
++
++#
++# AT91SAM9G45 Board Type
++#
++# CONFIG_MACH_AT91SAM9G45EKES is not set
++CONFIG_MACH_PM9G45=y
++# CONFIG_PM9G45_SYSTEM_RAM_CS1 is not set
++CONFIG_PM9G45_SYSTEM_RAM_CS6=y
++CONFIG_VRAM_SIZE=0x8000000
++CONFIG_PM9G45_LCD_TX09D70=y
++# CONFIG_PM9G45_LCD_RA158 is not set
++# CONFIG_PM9G45_LCD_TCG057VGLAC is not set
++# CONFIG_PM9G45_LCD_GTTV57NN771E0 is not set
++# CONFIG_PM9G45_LCD_GLAA057VA01CW is not set
++# CONFIG_PM9G45_LCD_GATW70SN8H1E0 is not set
++# CONFIG_PM9G45_LCD_CLAA080MB0ACW is not set
++
++#
++# AT91 Board Options
++#
++CONFIG_MTD_AT91_DATAFLASH_CARD=y
++# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
++
++#
++# AT91 Feature Selections
++#
++CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
++CONFIG_AT91_TIMER_HZ=100
++CONFIG_AT91_EARLY_DBGU=y
++# CONFIG_AT91_EARLY_USART0 is not set
++# CONFIG_AT91_EARLY_USART1 is not set
++# CONFIG_AT91_EARLY_USART2 is not set
++# CONFIG_AT91_EARLY_USART3 is not set
++# CONFIG_AT91_EARLY_USART4 is not set
++# CONFIG_AT91_EARLY_USART5 is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_ARM926T=y
++CONFIG_CPU_32v5=y
++CONFIG_CPU_ABRT_EV5TJ=y
++CONFIG_CPU_PABRT_NOIFAR=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_COPY_V4WB=y
++CONFIG_CPU_TLB_V4WBI=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
++
++#
++# Processor Features
++#
++CONFIG_ARM_THUMB=y
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
++# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
++# CONFIG_OUTER_CACHE is not set
++
++#
++# Bus support
++#
++# CONFIG_PCI_SYSCALL is not set
++# CONFIG_ARCH_SUPPORTS_MSI is not set
++CONFIG_PCCARD=y
++CONFIG_PCMCIA_DEBUG=y
++CONFIG_PCMCIA=y
++# CONFIG_PCMCIA_LOAD_CIS is not set
++# CONFIG_PCMCIA_IOCTL is not set
++
++#
++# PC-card bridges
++#
++CONFIG_AT91_CF=y
++
++#
++# Kernel Features
++#
++# CONFIG_NO_HZ is not set
++# CONFIG_HIGH_RES_TIMERS is not set
++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
++CONFIG_VMSPLIT_3G=y
++# CONFIG_VMSPLIT_2G is not set
++# CONFIG_VMSPLIT_1G is not set
++CONFIG_PAGE_OFFSET=0xC0000000
++# CONFIG_PREEMPT is not set
++CONFIG_HZ=100
++CONFIG_AEABI=y
++CONFIG_OABI_COMPAT=y
++# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
++# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
++# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
++# CONFIG_HIGHMEM is not set
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++CONFIG_PAGEFLAGS_EXTENDED=y
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_PHYS_ADDR_T_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=0
++CONFIG_VIRT_TO_BUS=y
++CONFIG_UNEVICTABLE_LRU=y
++CONFIG_HAVE_MLOCK=y
++CONFIG_HAVE_MLOCKED_PAGE_BIT=y
++CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
++CONFIG_LEDS=y
++CONFIG_LEDS_CPU=y
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="mem=64M fbcon=rotate:3 root=/dev/mtdblock4 rw mtdparts=atmel_nand:128k(bootstrap)ro,256k(uboot)ro,1664k(env),2M(linux),-(root) rootfstype=jffs2"
++# CONFIG_XIP_KERNEL is not set
++# CONFIG_KEXEC is not set
++
++#
++# CPU Power Management
++#
++# CONFIG_CPU_IDLE is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++# CONFIG_VFP is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
++CONFIG_HAVE_AOUT=y
++# CONFIG_BINFMT_AOUT is not set
++# CONFIG_BINFMT_MISC is not set
++
++#
++# Power management options
++#
++# CONFIG_PM is not set
++CONFIG_ARCH_SUSPEND_POSSIBLE=y
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++# CONFIG_PACKET_MMAP is not set
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++CONFIG_IP_MULTICAST=y
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_IP_MROUTE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IPV6 is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_NET_DSA is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++# CONFIG_PHONET is not set
++# CONFIG_NET_SCHED is not set
++# CONFIG_DCB is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_CAN is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++# CONFIG_WIRELESS is not set
++# CONFIG_WIMAX is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=y
++CONFIG_FIRMWARE_IN_KERNEL=y
++CONFIG_EXTRA_FIRMWARE=""
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++# CONFIG_MTD_CONCAT is not set
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_TESTS is not set
++# CONFIG_MTD_REDBOOT_PARTS is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++# CONFIG_MTD_AR7_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLKDEVS=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
++# CONFIG_MTD_OOPS is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++# CONFIG_MTD_CFI is not set
++# CONFIG_MTD_JEDECPROBE is not set
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++CONFIG_MTD_CFI_I2=y
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_RAM is not set
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PLATRAM is not set
++
++#
++# Self-contained MTD device drivers
++#
++CONFIG_MTD_DATAFLASH=y
++CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
++# CONFIG_MTD_DATAFLASH_OTP is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++CONFIG_MTD_NAND=y
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++# CONFIG_MTD_NAND_GPIO is not set
++CONFIG_MTD_NAND_IDS=y
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++CONFIG_MTD_NAND_ATMEL=y
++CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
++# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
++# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
++# CONFIG_MTD_NAND_NANDSIM is not set
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
++# CONFIG_MTD_ONENAND is not set
++
++#
++# LPDDR flash memory drivers
++#
++# CONFIG_MTD_LPDDR is not set
++
++#
++# UBI - Unsorted block images
++#
++CONFIG_MTD_UBI=y
++CONFIG_MTD_UBI_WL_THRESHOLD=4096
++CONFIG_MTD_UBI_BEB_RESERVE=1
++# CONFIG_MTD_UBI_GLUEBI is not set
++
++#
++# UBI debugging options
++#
++# CONFIG_MTD_UBI_DEBUG is not set
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
++# CONFIG_BLK_DEV_RAM is not set
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_ATMEL_PWM is not set
++CONFIG_ATMEL_TCLIB=y
++CONFIG_ATMEL_TCB_CLKSRC=y
++CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
++CONFIG_ATMEL_SSC=y
++# CONFIG_ENCLOSURE_SERVICES is not set
++# CONFIG_C2PORT is not set
++
++#
++# EEPROM support
++#
++# CONFIG_EEPROM_AT25 is not set
++# CONFIG_EEPROM_93CX6 is not set
++CONFIG_HAVE_IDE=y
++CONFIG_IDE=y
++
++#
++# Please see Documentation/ide/ide.txt for help/info on IDE drives
++#
++CONFIG_IDE_XFER_MODE=y
++CONFIG_IDE_TIMINGS=y
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_IDE_GD=y
++CONFIG_IDE_GD_ATA=y
++# CONFIG_IDE_GD_ATAPI is not set
++CONFIG_BLK_DEV_IDECS=y
++# CONFIG_BLK_DEV_IDECD is not set
++# CONFIG_BLK_DEV_IDETAPE is not set
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++# CONFIG_BLK_DEV_PLATFORM is not set
++CONFIG_BLK_DEV_IDE_AT91=y
++# CONFIG_BLK_DEV_IDEDMA is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++CONFIG_SCSI=y
++CONFIG_SCSI_DMA=y
++# CONFIG_SCSI_TGT is not set
++# CONFIG_SCSI_NETLINK is not set
++CONFIG_SCSI_PROC_FS=y
++
++#
++# SCSI support type (disk, tape, CD-ROM)
++#
++CONFIG_BLK_DEV_SD=y
++# CONFIG_CHR_DEV_ST is not set
++# CONFIG_CHR_DEV_OSST is not set
++# CONFIG_BLK_DEV_SR is not set
++# CONFIG_CHR_DEV_SG is not set
++# CONFIG_CHR_DEV_SCH is not set
++
++#
++# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
++#
++CONFIG_SCSI_MULTI_LUN=y
++# CONFIG_SCSI_CONSTANTS is not set
++# CONFIG_SCSI_LOGGING is not set
++# CONFIG_SCSI_SCAN_ASYNC is not set
++CONFIG_SCSI_WAIT_SCAN=m
++
++#
++# SCSI Transports
++#
++# CONFIG_SCSI_SPI_ATTRS is not set
++# CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
++# CONFIG_SCSI_SAS_LIBSAS is not set
++# CONFIG_SCSI_SRP_ATTRS is not set
++# CONFIG_SCSI_LOWLEVEL is not set
++# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
++# CONFIG_SCSI_DH is not set
++# CONFIG_SCSI_OSD_INITIATOR is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++CONFIG_NETDEVICES=y
++CONFIG_COMPAT_NET_DEV_OPS=y
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_VETH is not set
++CONFIG_PHYLIB=y
++
++#
++# MII PHY device drivers
++#
++# CONFIG_MARVELL_PHY is not set
++# CONFIG_DAVICOM_PHY is not set
++# CONFIG_QSEMI_PHY is not set
++# CONFIG_LXT_PHY is not set
++# CONFIG_CICADA_PHY is not set
++# CONFIG_VITESSE_PHY is not set
++# CONFIG_SMSC_PHY is not set
++# CONFIG_BROADCOM_PHY is not set
++# CONFIG_ICPLUS_PHY is not set
++# CONFIG_REALTEK_PHY is not set
++CONFIG_NATIONAL_PHY=y
++# CONFIG_STE10XP is not set
++# CONFIG_LSI_ET1011C_PHY is not set
++# CONFIG_FIXED_PHY is not set
++# CONFIG_MDIO_BITBANG is not set
++CONFIG_NET_ETHERNET=y
++# CONFIG_MII is not set
++CONFIG_MACB=y
++# CONFIG_AX88796 is not set
++# CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
++# CONFIG_ENC28J60 is not set
++# CONFIG_ETHOC is not set
++# CONFIG_SMC911X is not set
++# CONFIG_SMSC911X is not set
++# CONFIG_DNET is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
++# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
++# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
++# CONFIG_B44 is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# Enable WiMAX (Networking options) to see the WiMAX drivers
++#
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_NET_PCMCIA is not set
++# CONFIG_WAN is not set
++# CONFIG_PPP is not set
++# CONFIG_SLIP is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
++CONFIG_INPUT_JOYDEV=y
++CONFIG_INPUT_EVDEV=y
++CONFIG_INPUT_EVBUG=y
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_GPIO is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_ELANTECH is not set
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_BCM5974 is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TABLET is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++CONFIG_TOUCHSCREEN_ADS7846=y
++# CONFIG_TOUCHSCREEN_AD7877 is not set
++# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
++# CONFIG_TOUCHSCREEN_AD7879 is not set
++# CONFIG_TOUCHSCREEN_FUJITSU is not set
++# CONFIG_TOUCHSCREEN_GUNZE is not set
++# CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
++# CONFIG_TOUCHSCREEN_MTOUCH is not set
++# CONFIG_TOUCHSCREEN_INEXIO is not set
++# CONFIG_TOUCHSCREEN_MK712 is not set
++# CONFIG_TOUCHSCREEN_PENMOUNT is not set
++# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
++# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
++# CONFIG_TOUCHSCREEN_ATMEL_TSADCC is not set
++# CONFIG_TOUCHSCREEN_WM97XX is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
++# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++# CONFIG_SERIO_SERPORT is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_CONSOLE_TRANSLATIONS=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_DEVKMEM=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_ATMEL=y
++CONFIG_SERIAL_ATMEL_CONSOLE=y
++CONFIG_SERIAL_ATMEL_PDC=y
++# CONFIG_SERIAL_ATMEL_TTYAT is not set
++# CONFIG_SERIAL_MAX3100 is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=4
++# CONFIG_IPMI_HANDLER is not set
++CONFIG_HW_RANDOM=y
++# CONFIG_HW_RANDOM_TIMERIOMEM is not set
++# CONFIG_R3964 is not set
++
++#
++# PCMCIA character devices
++#
++# CONFIG_SYNCLINK_CS is not set
++# CONFIG_CARDMAN_4000 is not set
++# CONFIG_CARDMAN_4040 is not set
++# CONFIG_IPWIRELESS is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++# CONFIG_I2C is not set
++CONFIG_SPI=y
++CONFIG_SPI_DEBUG=y
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++CONFIG_SPI_ATMEL=y
++# CONFIG_SPI_BITBANG is not set
++# CONFIG_SPI_GPIO is not set
++
++#
++# SPI Protocol Masters
++#
++CONFIG_SPI_SPIDEV=y
++# CONFIG_SPI_TLE62X0 is not set
++CONFIG_ARCH_REQUIRE_GPIOLIB=y
++CONFIG_GPIOLIB=y
++# CONFIG_DEBUG_GPIO is not set
++# CONFIG_GPIO_SYSFS is not set
++
++#
++# Memory mapped GPIO expanders:
++#
++
++#
++# I2C GPIO expanders:
++#
++
++#
++# PCI GPIO expanders:
++#
++
++#
++# SPI GPIO expanders:
++#
++# CONFIG_GPIO_MAX7301 is not set
++# CONFIG_GPIO_MCP23S08 is not set
++CONFIG_W1=y
++
++#
++# 1-wire Bus Masters
++#
++# CONFIG_W1_MASTER_DS2490 is not set
++# CONFIG_W1_MASTER_DS1WM is not set
++CONFIG_W1_MASTER_GPIO=y
++
++#
++# 1-wire Slaves
++#
++# CONFIG_W1_SLAVE_THERM is not set
++# CONFIG_W1_SLAVE_SMEM is not set
++# CONFIG_W1_SLAVE_DS2431 is not set
++# CONFIG_W1_SLAVE_DS2433 is not set
++# CONFIG_W1_SLAVE_DS2760 is not set
++# CONFIG_W1_SLAVE_BQ27000 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++# CONFIG_THERMAL is not set
++# CONFIG_THERMAL_HWMON is not set
++# CONFIG_WATCHDOG is not set
++CONFIG_SSB_POSSIBLE=y
++
++#
++# Sonics Silicon Backplane
++#
++# CONFIG_SSB is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_CORE is not set
++# CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
++# CONFIG_HTC_EGPIO is not set
++# CONFIG_HTC_PASIC3 is not set
++# CONFIG_UCB1400_CORE is not set
++# CONFIG_MFD_TMIO is not set
++# CONFIG_MFD_T7L66XB is not set
++# CONFIG_MFD_TC6387XB is not set
++# CONFIG_MFD_TC6393XB is not set
++
++#
++# Multimedia devices
++#
++
++#
++# Multimedia core support
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_VIDEO_MEDIA is not set
++
++#
++# Multimedia drivers
++#
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_VGASTATE is not set
++CONFIG_VIDEO_OUTPUT_CONTROL=y
++CONFIG_FB=y
++# CONFIG_FIRMWARE_EDID is not set
++# CONFIG_FB_DDC is not set
++# CONFIG_FB_BOOT_VESA_SUPPORT is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
++# CONFIG_FB_SYS_FILLRECT is not set
++# CONFIG_FB_SYS_COPYAREA is not set
++# CONFIG_FB_SYS_IMAGEBLIT is not set
++# CONFIG_FB_FOREIGN_ENDIAN is not set
++# CONFIG_FB_SYS_FOPS is not set
++# CONFIG_FB_SVGALIB is not set
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++
++#
++# Frame buffer hardware drivers
++#
++# CONFIG_FB_S1D15605 is not set
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_ATMEL=y
++# CONFIG_FB_VIRTUAL is not set
++# CONFIG_FB_METRONOME is not set
++# CONFIG_FB_MB862XX is not set
++# CONFIG_FB_BROADSHEET is not set
++CONFIG_BACKLIGHT_LCD_SUPPORT=y
++CONFIG_LCD_CLASS_DEVICE=y
++# CONFIG_LCD_LTV350QV is not set
++# CONFIG_LCD_ILI9320 is not set
++# CONFIG_LCD_TDO24M is not set
++# CONFIG_LCD_VGG2432A4 is not set
++CONFIG_LCD_PLATFORM=y
++CONFIG_BACKLIGHT_CLASS_DEVICE=y
++CONFIG_BACKLIGHT_ATMEL_LCDC=y
++# CONFIG_BACKLIGHT_GENERIC is not set
++
++#
++# Display device support
++#
++# CONFIG_DISPLAY_SUPPORT is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE is not set
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++CONFIG_LOGO_LINUX_CLUT224=y
++CONFIG_SOUND=y
++CONFIG_SOUND_OSS_CORE=y
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++# CONFIG_SND_SEQUENCER is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++CONFIG_SND_VMASTER=y
++CONFIG_SND_AC97_CODEC=y
++# CONFIG_SND_DRIVERS is not set
++# CONFIG_SND_ARM is not set
++
++#
++# Atmel devices (AVR32 and AT91)
++#
++CONFIG_SND_ATMEL_AC97C=y
++# CONFIG_SND_SPI is not set
++# CONFIG_SND_USB is not set
++# CONFIG_SND_PCMCIA is not set
++# CONFIG_SND_SOC is not set
++# CONFIG_SOUND_PRIME is not set
++CONFIG_AC97_BUS=y
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++CONFIG_HID_DEBUG=y
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_HID_PID is not set
++# CONFIG_USB_HIDDEV is not set
++
++#
++# Special HID drivers
++#
++CONFIG_HID_A4TECH=y
++CONFIG_HID_APPLE=y
++CONFIG_HID_BELKIN=y
++CONFIG_HID_CHERRY=y
++CONFIG_HID_CHICONY=y
++CONFIG_HID_CYPRESS=y
++# CONFIG_DRAGONRISE_FF is not set
++CONFIG_HID_EZKEY=y
++CONFIG_HID_KYE=y
++CONFIG_HID_GYRATION=y
++CONFIG_HID_KENSINGTON=y
++CONFIG_HID_LOGITECH=y
++# CONFIG_LOGITECH_FF is not set
++# CONFIG_LOGIRUMBLEPAD2_FF is not set
++CONFIG_HID_MICROSOFT=y
++CONFIG_HID_MONTEREY=y
++CONFIG_HID_NTRIG=y
++CONFIG_HID_PANTHERLORD=y
++# CONFIG_PANTHERLORD_FF is not set
++CONFIG_HID_PETALYNX=y
++CONFIG_HID_SAMSUNG=y
++CONFIG_HID_SONY=y
++CONFIG_HID_SUNPLUS=y
++# CONFIG_GREENASIA_FF is not set
++CONFIG_HID_TOPSEED=y
++# CONFIG_THRUSTMASTER_FF is not set
++# CONFIG_ZEROPLUS_FF is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++CONFIG_USB_ARCH_HAS_EHCI=y
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++# CONFIG_USB_DEVICE_CLASS is not set
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++# CONFIG_USB_MON is not set
++# CONFIG_USB_WUSB is not set
++# CONFIG_USB_WUSB_CBAF is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_C67X00_HCD is not set
++CONFIG_USB_EHCI_HCD=y
++# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
++# CONFIG_USB_EHCI_TT_NEWSCHED is not set
++# CONFIG_USB_OXU210HP_HCD is not set
++# CONFIG_USB_ISP116X_HCD is not set
++# CONFIG_USB_ISP1760_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++# CONFIG_USB_HWA_HCD is not set
++# CONFIG_USB_MUSB_HDRC is not set
++# CONFIG_USB_GADGET_MUSB_HDRC is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++# CONFIG_USB_WDM is not set
++# CONFIG_USB_TMC is not set
++
++#
++# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
++#
++
++#
++# also be needed; see USB_STORAGE Help for more info
++#
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++
++#
++# USB port drivers
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_SEVSEG is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_SISUSBVGA is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++# CONFIG_USB_ISIGHTFW is not set
++# CONFIG_USB_VST is not set
++CONFIG_USB_GADGET=y
++# CONFIG_USB_GADGET_DEBUG is not set
++# CONFIG_USB_GADGET_DEBUG_FILES is not set
++# CONFIG_USB_GADGET_DEBUG_FS is not set
++CONFIG_USB_GADGET_VBUS_DRAW=2
++CONFIG_USB_GADGET_SELECTED=y
++# CONFIG_USB_GADGET_AT91 is not set
++CONFIG_USB_GADGET_ATMEL_USBA=y
++CONFIG_USB_ATMEL_USBA=y
++# CONFIG_USB_GADGET_FSL_USB2 is not set
++# CONFIG_USB_GADGET_LH7A40X is not set
++# CONFIG_USB_GADGET_OMAP is not set
++# CONFIG_USB_GADGET_PXA25X is not set
++# CONFIG_USB_GADGET_PXA27X is not set
++# CONFIG_USB_GADGET_S3C2410 is not set
++# CONFIG_USB_GADGET_IMX is not set
++# CONFIG_USB_GADGET_M66592 is not set
++# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_FSL_QE is not set
++# CONFIG_USB_GADGET_CI13XXX is not set
++# CONFIG_USB_GADGET_NET2280 is not set
++# CONFIG_USB_GADGET_GOKU is not set
++# CONFIG_USB_GADGET_DUMMY_HCD is not set
++CONFIG_USB_GADGET_DUALSPEED=y
++# CONFIG_USB_ZERO is not set
++# CONFIG_USB_ETH is not set
++# CONFIG_USB_GADGETFS is not set
++# CONFIG_USB_FILE_STORAGE is not set
++CONFIG_USB_G_SERIAL=y
++# CONFIG_USB_MIDI_GADGET is not set
++# CONFIG_USB_G_PRINTER is not set
++# CONFIG_USB_CDC_COMPOSITE is not set
++
++#
++# OTG and related infrastructure
++#
++# CONFIG_USB_GPIO_VBUS is not set
++# CONFIG_NOP_USB_XCEIV is not set
++CONFIG_MMC=y
++# CONFIG_MMC_DEBUG is not set
++# CONFIG_MMC_UNSAFE_RESUME is not set
++
++#
++# MMC/SD/SDIO Card Drivers
++#
++CONFIG_MMC_BLOCK=y
++CONFIG_MMC_BLOCK_BOUNCE=y
++# CONFIG_SDIO_UART is not set
++# CONFIG_MMC_TEST is not set
++
++#
++# MMC/SD/SDIO Host Controller Drivers
++#
++# CONFIG_MMC_SDHCI is not set
++# CONFIG_MMC_AT91 is not set
++CONFIG_MMC_ATMELMCI=y
++CONFIG_MMC_ATMELMCI_DMA=y
++# CONFIG_MMC_SPI is not set
++# CONFIG_MEMSTICK is not set
++# CONFIG_ACCESSIBILITY is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=y
++
++#
++# LED drivers
++#
++CONFIG_LEDS_GPIO=y
++CONFIG_LEDS_GPIO_PLATFORM=y
++# CONFIG_LEDS_DAC124S085 is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=y
++# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
++CONFIG_LEDS_TRIGGER_HEARTBEAT=y
++# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
++CONFIG_LEDS_TRIGGER_GPIO=y
++# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
++
++#
++# iptables trigger is under Netfilter config (LED target)
++#
++CONFIG_RTC_LIB=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_HCTOSYS=y
++CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
++# CONFIG_RTC_DEBUG is not set
++
++#
++# RTC interfaces
++#
++CONFIG_RTC_INTF_SYSFS=y
++CONFIG_RTC_INTF_PROC=y
++CONFIG_RTC_INTF_DEV=y
++# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
++# CONFIG_RTC_DRV_TEST is not set
++
++#
++# SPI RTC drivers
++#
++# CONFIG_RTC_DRV_M41T94 is not set
++# CONFIG_RTC_DRV_DS1305 is not set
++# CONFIG_RTC_DRV_DS1390 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++# CONFIG_RTC_DRV_R9701 is not set
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_DS3234 is not set
++
++#
++# Platform RTC drivers
++#
++# CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1286 is not set
++# CONFIG_RTC_DRV_DS1511 is not set
++# CONFIG_RTC_DRV_DS1553 is not set
++# CONFIG_RTC_DRV_DS1742 is not set
++# CONFIG_RTC_DRV_STK17TA8 is not set
++# CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T35 is not set
++# CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_BQ4802 is not set
++# CONFIG_RTC_DRV_V3020 is not set
++
++#
++# on-CPU RTC drivers
++#
++CONFIG_RTC_DRV_AT91SAM9=y
++CONFIG_RTC_DRV_AT91SAM9_RTT=0
++CONFIG_RTC_DRV_AT91SAM9_GPBR=0
++CONFIG_DMADEVICES=y
++
++#
++# DMA Devices
++#
++CONFIG_AT_HDMAC=y
++CONFIG_DMA_ENGINE=y
++
++#
++# DMA Clients
++#
++# CONFIG_NET_DMA is not set
++# CONFIG_ASYNC_TX_DMA is not set
++# CONFIG_DMATEST is not set
++# CONFIG_AUXDISPLAY is not set
++# CONFIG_REGULATOR is not set
++# CONFIG_UIO is not set
++# CONFIG_STAGING is not set
++
++#
++# File systems
++#
++# CONFIG_EXT2_FS is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_EXT4_FS is not set
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_BTRFS_FS is not set
++CONFIG_FILE_LOCKING=y
++CONFIG_DNOTIFY=y
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# Caches
++#
++# CONFIG_FSCACHE is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++# CONFIG_MSDOS_FS is not set
++CONFIG_VFAT_FS=y
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_PROC_PAGE_MONITOR=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++# CONFIG_CONFIGFS_FS is not set
++CONFIG_MISC_FILESYSTEMS=y
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
++CONFIG_JFFS2_SUMMARY=y
++# CONFIG_JFFS2_FS_XATTR is not set
++CONFIG_JFFS2_COMPRESSION_OPTIONS=y
++CONFIG_JFFS2_ZLIB=y
++CONFIG_JFFS2_LZO=y
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++# CONFIG_JFFS2_CMODE_NONE is not set
++CONFIG_JFFS2_CMODE_PRIORITY=y
++# CONFIG_JFFS2_CMODE_SIZE is not set
++# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
++# CONFIG_UBIFS_FS is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_SQUASHFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_OMFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++# CONFIG_NILFS2_FS is not set
++CONFIG_NETWORK_FILESYSTEMS=y
++CONFIG_NFS_FS=y
++CONFIG_NFS_V3=y
++# CONFIG_NFS_V3_ACL is not set
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFSD is not set
++CONFIG_LOCKD=y
++CONFIG_LOCKD_V4=y
++CONFIG_NFS_COMMON=y
++CONFIG_SUNRPC=y
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++CONFIG_NLS_CODEPAGE_850=y
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
++
++#
++# Kernel hacking
++#
++CONFIG_PRINTK_TIME=y
++CONFIG_ENABLE_WARN_DEPRECATED=y
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_FRAME_WARN=1024
++# CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++CONFIG_DEBUG_FS=y
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
++CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
++CONFIG_DETECT_HUNG_TASK=y
++# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
++CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++CONFIG_TIMER_STATS=y
++# CONFIG_DEBUG_OBJECTS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_MUTEXES is not set
++# CONFIG_DEBUG_LOCK_ALLOC is not set
++# CONFIG_PROVE_LOCKING is not set
++# CONFIG_LOCK_STAT is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_WRITECOUNT is not set
++CONFIG_DEBUG_MEMORY_INIT=y
++# CONFIG_DEBUG_LIST is not set
++# CONFIG_DEBUG_SG is not set
++# CONFIG_DEBUG_NOTIFIERS is not set
++# CONFIG_BOOT_PRINTK_DELAY is not set
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_RCU_CPU_STALL_DETECTOR is not set
++# CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_LATENCYTOP is not set
++# CONFIG_SYSCTL_SYSCALL_CHECK is not set
++# CONFIG_PAGE_POISONING is not set
++CONFIG_HAVE_FUNCTION_TRACER=y
++CONFIG_TRACING_SUPPORT=y
++
++#
++# Tracers
++#
++# CONFIG_FUNCTION_TRACER is not set
++# CONFIG_IRQSOFF_TRACER is not set
++# CONFIG_SCHED_TRACER is not set
++# CONFIG_CONTEXT_SWITCH_TRACER is not set
++# CONFIG_EVENT_TRACER is not set
++# CONFIG_BOOT_TRACER is not set
++# CONFIG_TRACE_BRANCH_PROFILING is not set
++# CONFIG_STACK_TRACER is not set
++# CONFIG_KMEMTRACE is not set
++# CONFIG_WORKQUEUE_TRACER is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_DYNAMIC_DEBUG is not set
++# CONFIG_SAMPLES is not set
++CONFIG_HAVE_ARCH_KGDB=y
++# CONFIG_KGDB is not set
++CONFIG_ARM_UNWIND=y
++CONFIG_DEBUG_USER=y
++# CONFIG_DEBUG_ERRORS is not set
++# CONFIG_DEBUG_STACK_USAGE is not set
++# CONFIG_DEBUG_LL is not set
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++# CONFIG_SECURITYFS is not set
++# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++CONFIG_CRYPTO=y
++
++#
++# Crypto core or helper
++#
++# CONFIG_CRYPTO_FIPS is not set
++CONFIG_CRYPTO_ALGAPI=y
++CONFIG_CRYPTO_ALGAPI2=y
++CONFIG_CRYPTO_AEAD2=y
++CONFIG_CRYPTO_BLKCIPHER=y
++CONFIG_CRYPTO_BLKCIPHER2=y
++CONFIG_CRYPTO_HASH2=y
++CONFIG_CRYPTO_RNG2=y
++CONFIG_CRYPTO_PCOMP=y
++CONFIG_CRYPTO_MANAGER=y
++CONFIG_CRYPTO_MANAGER2=y
++# CONFIG_CRYPTO_GF128MUL is not set
++# CONFIG_CRYPTO_NULL is not set
++CONFIG_CRYPTO_WORKQUEUE=y
++# CONFIG_CRYPTO_CRYPTD is not set
++# CONFIG_CRYPTO_AUTHENC is not set
++# CONFIG_CRYPTO_TEST is not set
++
++#
++# Authenticated Encryption with Associated Data
++#
++# CONFIG_CRYPTO_CCM is not set
++# CONFIG_CRYPTO_GCM is not set
++# CONFIG_CRYPTO_SEQIV is not set
++
++#
++# Block modes
++#
++# CONFIG_CRYPTO_CBC is not set
++# CONFIG_CRYPTO_CTR is not set
++# CONFIG_CRYPTO_CTS is not set
++CONFIG_CRYPTO_ECB=y
++# CONFIG_CRYPTO_LRW is not set
++# CONFIG_CRYPTO_PCBC is not set
++# CONFIG_CRYPTO_XTS is not set
++
++#
++# Hash modes
++#
++# CONFIG_CRYPTO_HMAC is not set
++# CONFIG_CRYPTO_XCBC is not set
++
++#
++# Digest
++#
++# CONFIG_CRYPTO_CRC32C is not set
++# CONFIG_CRYPTO_MD4 is not set
++# CONFIG_CRYPTO_MD5 is not set
++# CONFIG_CRYPTO_MICHAEL_MIC is not set
++# CONFIG_CRYPTO_RMD128 is not set
++# CONFIG_CRYPTO_RMD160 is not set
++# CONFIG_CRYPTO_RMD256 is not set
++# CONFIG_CRYPTO_RMD320 is not set
++# CONFIG_CRYPTO_SHA1 is not set
++# CONFIG_CRYPTO_SHA256 is not set
++# CONFIG_CRYPTO_SHA512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
++# CONFIG_CRYPTO_WP512 is not set
++
++#
++# Ciphers
++#
++CONFIG_CRYPTO_AES=y
++# CONFIG_CRYPTO_ANUBIS is not set
++CONFIG_CRYPTO_ARC4=y
++# CONFIG_CRYPTO_BLOWFISH is not set
++# CONFIG_CRYPTO_CAMELLIA is not set
++# CONFIG_CRYPTO_CAST5 is not set
++# CONFIG_CRYPTO_CAST6 is not set
++# CONFIG_CRYPTO_DES is not set
++# CONFIG_CRYPTO_FCRYPT is not set
++# CONFIG_CRYPTO_KHAZAD is not set
++# CONFIG_CRYPTO_SALSA20 is not set
++# CONFIG_CRYPTO_SEED is not set
++# CONFIG_CRYPTO_SERPENT is not set
++# CONFIG_CRYPTO_TEA is not set
++# CONFIG_CRYPTO_TWOFISH is not set
++
++#
++# Compression
++#
++CONFIG_CRYPTO_DEFLATE=y
++CONFIG_CRYPTO_ZLIB=y
++CONFIG_CRYPTO_LZO=y
++
++#
++# Random Number Generation
++#
++# CONFIG_CRYPTO_ANSI_CPRNG is not set
++# CONFIG_CRYPTO_HW is not set
++# CONFIG_BINARY_PRINTF is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++CONFIG_GENERIC_FIND_LAST_BIT=y
++# CONFIG_CRC_CCITT is not set
++CONFIG_CRC16=y
++# CONFIG_CRC_T10DIF is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_IOPORT=y
++CONFIG_HAS_DMA=y
++CONFIG_NLATTR=y
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-add-float-flags-in-Makefile.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-add-float-flags-in-Makefile.patch
new file mode 100644
index 0000000..13a25e1
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-add-float-flags-in-Makefile.patch
@@ -0,0 +1,29 @@
+From e749e6ecd4948a3efc966716b64e66b0efca0da2 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 20 Apr 2010 16:06:20 +0300
+Subject: [[PATCH 08/22] add float flags in Makefile
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ Makefile |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 03373bb..fe3209e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -336,8 +336,8 @@ MODFLAGS	= -DMODULE
+ CFLAGS_MODULE   = $(MODFLAGS)
+ AFLAGS_MODULE   = $(MODFLAGS)
+ LDFLAGS_MODULE  =
+-CFLAGS_KERNEL	=
+-AFLAGS_KERNEL	=
++CFLAGS_KERNEL	= -mfloat-abi=soft -mfpu=vfp
++AFLAGS_KERNEL	= -mfloat-abi=soft -mfpu=vfp
+ 
+ 
+ # Use LINUXINCLUDE when you must reference the include/ directory.
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-pm9g45-default-configuration-files.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-pm9g45-default-configuration-files.patch
deleted file mode 100644
index d78fac0..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0008-pm9g45-default-configuration-files.patch
+++ /dev/null
@@ -1,3358 +0,0 @@
-From 9b8372b14153874ca6d22c21cbd0e9e6ae1c6c72 Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 2 Mar 2010 01:56:44 +0200
-Subject: [PATCH] pm9g45: default configuration files
-
----
- arch/arm/configs/pm9g45_defconfig    | 1674 ++++++++++++++++++++++++++++++++++
- arch/arm/configs/pm9g45cs6_defconfig | 1657 +++++++++++++++++++++++++++++++++
- 2 files changed, 3331 insertions(+), 0 deletions(-)
- create mode 100644 arch/arm/configs/pm9g45_defconfig
- create mode 100644 arch/arm/configs/pm9g45cs6_defconfig
-
-diff --git a/arch/arm/configs/pm9g45_defconfig b/arch/arm/configs/pm9g45_defconfig
-new file mode 100644
-index 0000000..a57f0f5
---- /dev/null
-+++ b/arch/arm/configs/pm9g45_defconfig
-@@ -0,0 +1,1674 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.30.10
-+# Fri Feb 19 20:39:36 2010
-+#
-+CONFIG_ARM=y
-+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-+CONFIG_GENERIC_GPIO=y
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+CONFIG_MMU=y
-+# CONFIG_NO_IOPORT is not set
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+
-+#
-+# General setup
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_SYSVIPC_SYSCTL=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+# CONFIG_CLASSIC_RCU is not set
-+CONFIG_TREE_RCU=y
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_RCU_TRACE is not set
-+CONFIG_RCU_FANOUT=32
-+# CONFIG_RCU_FANOUT_EXACT is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
-+# CONFIG_CGROUPS is not set
-+CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
-+# CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_ALL is not set
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+CONFIG_SHMEM=y
-+CONFIG_AIO=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
-+CONFIG_SLAB=y
-+# CONFIG_SLUB is not set
-+# CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+# CONFIG_FREEZER is not set
-+
-+#
-+# System Type
-+#
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+CONFIG_ARCH_AT91=y
-+# CONFIG_ARCH_CLPS711X is not set
-+# CONFIG_ARCH_EBSA110 is not set
-+# CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
-+# CONFIG_ARCH_FOOTBRIDGE is not set
-+# CONFIG_ARCH_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP13XX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X is not set
-+# CONFIG_ARCH_IXP23XX is not set
-+# CONFIG_ARCH_IXP2000 is not set
-+# CONFIG_ARCH_IXP4XX is not set
-+# CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
-+# CONFIG_ARCH_KS8695 is not set
-+# CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
-+# CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
-+# CONFIG_ARCH_PNX4008 is not set
-+# CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
-+# CONFIG_ARCH_RPC is not set
-+# CONFIG_ARCH_SA1100 is not set
-+# CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
-+# CONFIG_ARCH_SHARK is not set
-+# CONFIG_ARCH_LH7A40X is not set
-+# CONFIG_ARCH_DAVINCI is not set
-+# CONFIG_ARCH_OMAP is not set
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
-+
-+#
-+# Atmel AT91 System-on-Chip
-+#
-+# CONFIG_ARCH_AT91RM9200 is not set
-+# CONFIG_ARCH_AT91SAM9260 is not set
-+# CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
-+# CONFIG_ARCH_AT91SAM9263 is not set
-+# CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+CONFIG_ARCH_AT91SAM9G45=y
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
-+# CONFIG_ARCH_AT91X40 is not set
-+CONFIG_AT91_PMC_UNIT=y
-+
-+#
-+# AT91SAM9G45 Board Type
-+#
-+# CONFIG_MACH_AT91SAM9G45EKES is not set
-+CONFIG_MACH_PM9G45=y
-+CONFIG_PM9G45_SYSTEM_RAM_CS1=y
-+# CONFIG_PM9G45_SYSTEM_RAM_CS6 is not set
-+CONFIG_PM9G45_LCD_TX09D70=y
-+# CONFIG_PM9G45_LCD_RA158 is not set
-+# CONFIG_PM9G45_LCD_TCG057VGLAC is not set
-+# CONFIG_PM9G45_LCD_GTTV57NN771E0 is not set
-+# CONFIG_PM9G45_LCD_GLAA057VA01CW is not set
-+# CONFIG_PM9G45_LCD_GATW70SN8H1E0 is not set
-+# CONFIG_PM9G45_LCD_CLAA080MB0ACW is not set
-+
-+#
-+# AT91 Board Options
-+#
-+CONFIG_MTD_AT91_DATAFLASH_CARD=y
-+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
-+
-+#
-+# AT91 Feature Selections
-+#
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
-+
-+#
-+# Processor Type
-+#
-+CONFIG_CPU_32=y
-+CONFIG_CPU_ARM926T=y
-+CONFIG_CPU_32v5=y
-+CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
-+CONFIG_CPU_CACHE_VIVT=y
-+CONFIG_CPU_COPY_V4WB=y
-+CONFIG_CPU_TLB_V4WBI=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-+
-+#
-+# Processor Features
-+#
-+CONFIG_ARM_THUMB=y
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-+# CONFIG_OUTER_CACHE is not set
-+
-+#
-+# Bus support
-+#
-+# CONFIG_PCI_SYSCALL is not set
-+# CONFIG_ARCH_SUPPORTS_MSI is not set
-+CONFIG_PCCARD=y
-+CONFIG_PCMCIA_DEBUG=y
-+CONFIG_PCMCIA=y
-+# CONFIG_PCMCIA_LOAD_CIS is not set
-+# CONFIG_PCMCIA_IOCTL is not set
-+
-+#
-+# PC-card bridges
-+#
-+CONFIG_AT91_CF=y
-+
-+#
-+# Kernel Features
-+#
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
-+# CONFIG_PREEMPT is not set
-+CONFIG_HZ=100
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
-+CONFIG_ALIGNMENT_TRAP=y
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZBOOT_ROM_TEXT=0x0
-+CONFIG_ZBOOT_ROM_BSS=0x0
-+CONFIG_CMDLINE=""
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC is not set
-+
-+#
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
-+# Floating point emulation
-+#
-+
-+#
-+# At least one emulation must be selected
-+#
-+CONFIG_FPE_NWFPE=y
-+# CONFIG_FPE_NWFPE_XP is not set
-+# CONFIG_FPE_FASTFPE is not set
-+# CONFIG_VFP is not set
-+
-+#
-+# Userspace binary formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
-+# CONFIG_BINFMT_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options
-+#
-+# CONFIG_PM is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_AF_RXRPC is not set
-+# CONFIG_WIRELESS is not set
-+# CONFIG_WIMAX is not set
-+# CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_DEBUG_DRIVER is not set
-+# CONFIG_DEBUG_DEVRES is not set
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_CONNECTOR is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_DATAFLASH=y
-+CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
-+# CONFIG_MTD_DATAFLASH_OTP is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+CONFIG_MTD_UBI=y
-+CONFIG_MTD_UBI_WL_THRESHOLD=4096
-+CONFIG_MTD_UBI_BEB_RESERVE=1
-+# CONFIG_MTD_UBI_GLUEBI is not set
-+
-+#
-+# UBI debugging options
-+#
-+# CONFIG_MTD_UBI_DEBUG is not set
-+# CONFIG_PARPORT is not set
-+CONFIG_BLK_DEV=y
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=4
-+CONFIG_BLK_DEV_RAM_SIZE=8192
-+# CONFIG_BLK_DEV_XIP is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+CONFIG_MISC_DEVICES=y
-+# CONFIG_ATMEL_PWM is not set
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
-+# CONFIG_EEPROM_93CX6 is not set
-+CONFIG_HAVE_IDE=y
-+CONFIG_IDE=y
-+
-+#
-+# Please see Documentation/ide/ide.txt for help/info on IDE drives
-+#
-+CONFIG_IDE_XFER_MODE=y
-+CONFIG_IDE_TIMINGS=y
-+# CONFIG_BLK_DEV_IDE_SATA is not set
-+CONFIG_IDE_GD=y
-+CONFIG_IDE_GD_ATA=y
-+# CONFIG_IDE_GD_ATAPI is not set
-+CONFIG_BLK_DEV_IDECS=y
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+CONFIG_IDE_PROC_FS=y
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+# CONFIG_BLK_DEV_PLATFORM is not set
-+CONFIG_BLK_DEV_IDE_AT91=y
-+# CONFIG_BLK_DEV_IDEDMA is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+# CONFIG_SCSI_SCAN_ASYNC is not set
-+CONFIG_SCSI_WAIT_SCAN=m
-+
-+#
-+# SCSI Transports
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_LIBSAS is not set
-+# CONFIG_SCSI_SRP_ATTRS is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+CONFIG_NETDEVICES=y
-+CONFIG_COMPAT_NET_DEV_OPS=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+# CONFIG_DAVICOM_PHY is not set
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+CONFIG_NATIONAL_PHY=y
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_MII is not set
-+CONFIG_MACB=y
-+# CONFIG_AX88796 is not set
-+# CONFIG_SMC91X is not set
-+# CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
-+# CONFIG_IBM_NEW_EMAC_ZMII is not set
-+# CONFIG_IBM_NEW_EMAC_RGMII is not set
-+# CONFIG_IBM_NEW_EMAC_TAH is not set
-+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-+# CONFIG_B44 is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+# CONFIG_WLAN_80211 is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_NET_PCMCIA is not set
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+# CONFIG_INPUT_POLLDEV is not set
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
-+CONFIG_INPUT_JOYDEV=y
-+CONFIG_INPUT_EVDEV=y
-+CONFIG_INPUT_EVBUG=y
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+CONFIG_KEYBOARD_ATKBD=y
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+# CONFIG_KEYBOARD_GPIO is not set
-+CONFIG_INPUT_MOUSE=y
-+CONFIG_MOUSE_PS2=y
-+CONFIG_MOUSE_PS2_ALPS=y
-+CONFIG_MOUSE_PS2_LOGIPS2PP=y
-+CONFIG_MOUSE_PS2_SYNAPTICS=y
-+CONFIG_MOUSE_PS2_TRACKPOINT=y
-+# CONFIG_MOUSE_PS2_ELANTECH is not set
-+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-+# CONFIG_MOUSE_SERIAL is not set
-+# CONFIG_MOUSE_APPLETOUCH is not set
-+# CONFIG_MOUSE_BCM5974 is not set
-+# CONFIG_MOUSE_VSXXXAA is not set
-+# CONFIG_MOUSE_GPIO is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+CONFIG_INPUT_TOUCHSCREEN=y
-+CONFIG_TOUCHSCREEN_ADS7846=y
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
-+# CONFIG_TOUCHSCREEN_FUJITSU is not set
-+# CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
-+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-+# CONFIG_TOUCHSCREEN_ATMEL_TSADCC is not set
-+# CONFIG_TOUCHSCREEN_WM97XX is not set
-+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+# CONFIG_SERIO_SERPORT is not set
-+CONFIG_SERIO_LIBPS2=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_ATMEL=y
-+CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
-+# CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=4
-+# CONFIG_IPMI_HANDLER is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+# CONFIG_R3964 is not set
-+
-+#
-+# PCMCIA character devices
-+#
-+# CONFIG_SYNCLINK_CS is not set
-+# CONFIG_CARDMAN_4000 is not set
-+# CONFIG_CARDMAN_4040 is not set
-+# CONFIG_IPWIRELESS is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_DEBUG=y
-+CONFIG_SPI_MASTER=y
-+
-+#
-+# SPI Master Controller Drivers
-+#
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
-+
-+#
-+# SPI Protocol Masters
-+#
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_DEBUG_GPIO is not set
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+CONFIG_W1=y
-+
-+#
-+# 1-wire Bus Masters
-+#
-+# CONFIG_W1_MASTER_DS2490 is not set
-+# CONFIG_W1_MASTER_DS1WM is not set
-+CONFIG_W1_MASTER_GPIO=y
-+
-+#
-+# 1-wire Slaves
-+#
-+# CONFIG_W1_SLAVE_THERM is not set
-+# CONFIG_W1_SLAVE_SMEM is not set
-+# CONFIG_W1_SLAVE_DS2431 is not set
-+# CONFIG_W1_SLAVE_DS2433 is not set
-+# CONFIG_W1_SLAVE_DS2760 is not set
-+# CONFIG_W1_SLAVE_BQ27000 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_UCB1400_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+
-+#
-+# Multimedia devices
-+#
-+
-+#
-+# Multimedia core support
-+#
-+# CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_VGASTATE is not set
-+CONFIG_VIDEO_OUTPUT_CONTROL=y
-+CONFIG_FB=y
-+# CONFIG_FIRMWARE_EDID is not set
-+# CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-+CONFIG_FB_CFB_FILLRECT=y
-+CONFIG_FB_CFB_COPYAREA=y
-+CONFIG_FB_CFB_IMAGEBLIT=y
-+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-+# CONFIG_FB_SYS_FILLRECT is not set
-+# CONFIG_FB_SYS_COPYAREA is not set
-+# CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
-+# CONFIG_FB_SYS_FOPS is not set
-+# CONFIG_FB_SVGALIB is not set
-+# CONFIG_FB_MACMODES is not set
-+# CONFIG_FB_BACKLIGHT is not set
-+# CONFIG_FB_MODE_HELPERS is not set
-+# CONFIG_FB_TILEBLITTING is not set
-+
-+#
-+# Frame buffer hardware drivers
-+#
-+# CONFIG_FB_S1D15605 is not set
-+# CONFIG_FB_S1D13XXX is not set
-+CONFIG_FB_ATMEL=y
-+# CONFIG_FB_VIRTUAL is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+CONFIG_LCD_CLASS_DEVICE=y
-+# CONFIG_LCD_LTV350QV is not set
-+# CONFIG_LCD_ILI9320 is not set
-+# CONFIG_LCD_TDO24M is not set
-+# CONFIG_LCD_VGG2432A4 is not set
-+CONFIG_LCD_PLATFORM=y
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_GENERIC is not set
-+
-+#
-+# Display device support
-+#
-+CONFIG_DISPLAY_SUPPORT=y
-+
-+#
-+# Display hardware drivers
-+#
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+CONFIG_FRAMEBUFFER_CONSOLE=y
-+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-+CONFIG_FONTS=y
-+CONFIG_FONT_8x8=y
-+CONFIG_FONT_8x16=y
-+# CONFIG_FONT_6x11 is not set
-+# CONFIG_FONT_7x14 is not set
-+# CONFIG_FONT_PEARL_8x8 is not set
-+# CONFIG_FONT_ACORN_8x8 is not set
-+# CONFIG_FONT_MINI_4x6 is not set
-+# CONFIG_FONT_SUN8x16 is not set
-+# CONFIG_FONT_SUN12x22 is not set
-+# CONFIG_FONT_10x18 is not set
-+CONFIG_LOGO=y
-+# CONFIG_LOGO_LINUX_MONO is not set
-+# CONFIG_LOGO_LINUX_VGA16 is not set
-+CONFIG_LOGO_LINUX_CLUT224=y
-+CONFIG_SOUND=y
-+# CONFIG_SOUND_OSS_CORE is not set
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+# CONFIG_SND_SEQUENCER is not set
-+# CONFIG_SND_MIXER_OSS is not set
-+# CONFIG_SND_PCM_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+CONFIG_SND_SUPPORT_OLD_API=y
-+CONFIG_SND_VERBOSE_PROCFS=y
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+CONFIG_SND_VMASTER=y
-+CONFIG_SND_AC97_CODEC=y
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+CONFIG_SND_ATMEL_AC97C=y
-+# CONFIG_SND_SPI is not set
-+# CONFIG_SND_USB is not set
-+# CONFIG_SND_PCMCIA is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_AC97_BUS=y
-+CONFIG_HID_SUPPORT=y
-+CONFIG_HID=y
-+CONFIG_HID_DEBUG=y
-+# CONFIG_HIDRAW is not set
-+
-+#
-+# USB Input Devices
-+#
-+CONFIG_USB_HID=y
-+# CONFIG_HID_PID is not set
-+# CONFIG_USB_HIDDEV is not set
-+
-+#
-+# Special HID drivers
-+#
-+CONFIG_HID_A4TECH=y
-+CONFIG_HID_APPLE=y
-+CONFIG_HID_BELKIN=y
-+CONFIG_HID_CHERRY=y
-+CONFIG_HID_CHICONY=y
-+CONFIG_HID_CYPRESS=y
-+# CONFIG_DRAGONRISE_FF is not set
-+CONFIG_HID_EZKEY=y
-+CONFIG_HID_KYE=y
-+CONFIG_HID_GYRATION=y
-+CONFIG_HID_KENSINGTON=y
-+CONFIG_HID_LOGITECH=y
-+# CONFIG_LOGITECH_FF is not set
-+# CONFIG_LOGIRUMBLEPAD2_FF is not set
-+CONFIG_HID_MICROSOFT=y
-+CONFIG_HID_MONTEREY=y
-+CONFIG_HID_NTRIG=y
-+CONFIG_HID_PANTHERLORD=y
-+# CONFIG_PANTHERLORD_FF is not set
-+CONFIG_HID_PETALYNX=y
-+CONFIG_HID_SAMSUNG=y
-+CONFIG_HID_SONY=y
-+CONFIG_HID_SUNPLUS=y
-+# CONFIG_GREENASIA_FF is not set
-+CONFIG_HID_TOPSEED=y
-+# CONFIG_THRUSTMASTER_FF is not set
-+# CONFIG_ZEROPLUS_FF is not set
-+CONFIG_USB_SUPPORT=y
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+CONFIG_USB_ARCH_HAS_EHCI=y
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_C67X00_HCD is not set
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
-+
-+#
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-+#
-+
-+#
-+# also be needed; see USB_STORAGE Help for more info
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
-+# CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_ADUTUX is not set
-+# CONFIG_USB_SEVSEG is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_BERRY_CHARGE is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYPRESS_CY7C63 is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_FTDI_ELAN is not set
-+# CONFIG_USB_APPLEDISPLAY is not set
-+# CONFIG_USB_SISUSBVGA is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TRANCEVIBRATOR is not set
-+# CONFIG_USB_IOWARRIOR is not set
-+# CONFIG_USB_TEST is not set
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG is not set
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+# CONFIG_USB_GADGET_DEBUG_FS is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+# CONFIG_USB_GADGET_AT91 is not set
-+CONFIG_USB_GADGET_ATMEL_USBA=y
-+CONFIG_USB_ATMEL_USBA=y
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+CONFIG_USB_GADGET_DUALSPEED=y
-+# CONFIG_USB_ZERO is not set
-+# CONFIG_USB_ETH is not set
-+# CONFIG_USB_GADGETFS is not set
-+# CONFIG_USB_FILE_STORAGE is not set
-+CONFIG_USB_G_SERIAL=y
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+# CONFIG_USB_CDC_COMPOSITE is not set
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-+# CONFIG_SDIO_UART is not set
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+# CONFIG_MMC_AT91 is not set
-+CONFIG_MMC_ATMELMCI=y
-+CONFIG_MMC_ATMELMCI_DMA=y
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+# CONFIG_RTC_DRV_TEST is not set
-+
-+#
-+# SPI RTC drivers
-+#
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
-+
-+#
-+# Platform RTC drivers
-+#
-+# CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
-+# CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
-+# on-CPU RTC drivers
-+#
-+CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+CONFIG_DMADEVICES=y
-+
-+#
-+# DMA Devices
-+#
-+CONFIG_AT_HDMAC=y
-+CONFIG_DMA_ENGINE=y
-+
-+#
-+# DMA Clients
-+#
-+# CONFIG_NET_DMA is not set
-+# CONFIG_ASYNC_TX_DMA is not set
-+# CONFIG_DMATEST is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_EXT2_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+# CONFIG_XFS_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_FILE_LOCKING=y
-+CONFIG_DNOTIFY=y
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+# CONFIG_MSDOS_FS is not set
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+CONFIG_MISC_FILESYSTEMS=y
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-+CONFIG_JFFS2_ZLIB=y
-+CONFIG_JFFS2_LZO=y
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+# CONFIG_JFFS2_CMODE_NONE is not set
-+CONFIG_JFFS2_CMODE_PRIORITY=y
-+# CONFIG_JFFS2_CMODE_SIZE is not set
-+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-+# CONFIG_UBIFS_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_SQUASHFS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+CONFIG_NLS_CODEPAGE_850=y
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+# CONFIG_DLM is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_PRINTK_TIME=y
-+CONFIG_ENABLE_WARN_DEPRECATED=y
-+CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+CONFIG_DEBUG_FS=y
-+# CONFIG_HEADERS_CHECK is not set
-+CONFIG_DEBUG_KERNEL=y
-+# CONFIG_DEBUG_SHIRQ is not set
-+CONFIG_DETECT_SOFTLOCKUP=y
-+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-+CONFIG_DETECT_HUNG_TASK=y
-+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-+CONFIG_SCHED_DEBUG=y
-+# CONFIG_SCHEDSTATS is not set
-+CONFIG_TIMER_STATS=y
-+# CONFIG_DEBUG_OBJECTS is not set
-+# CONFIG_DEBUG_SLAB is not set
-+# CONFIG_DEBUG_RT_MUTEXES is not set
-+# CONFIG_RT_MUTEX_TESTER is not set
-+# CONFIG_DEBUG_SPINLOCK is not set
-+# CONFIG_DEBUG_MUTEXES is not set
-+# CONFIG_DEBUG_LOCK_ALLOC is not set
-+# CONFIG_PROVE_LOCKING is not set
-+# CONFIG_LOCK_STAT is not set
-+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-+# CONFIG_DEBUG_KOBJECT is not set
-+CONFIG_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_INFO=y
-+# CONFIG_DEBUG_VM is not set
-+# CONFIG_DEBUG_WRITECOUNT is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_DEBUG_LIST is not set
-+# CONFIG_DEBUG_SG is not set
-+# CONFIG_DEBUG_NOTIFIERS is not set
-+# CONFIG_BOOT_PRINTK_DELAY is not set
-+# CONFIG_RCU_TORTURE_TEST is not set
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_BACKTRACE_SELF_TEST is not set
-+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-+# CONFIG_FAULT_INJECTION is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+# CONFIG_PAGE_POISONING is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_DYNAMIC_DEBUG is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+# CONFIG_KGDB is not set
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
-+# CONFIG_DEBUG_ERRORS is not set
-+# CONFIG_DEBUG_STACK_USAGE is not set
-+# CONFIG_DEBUG_LL is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+CONFIG_CRYPTO_DEFLATE=y
-+CONFIG_CRYPTO_ZLIB=y
-+CONFIG_CRYPTO_LZO=y
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
-+# CONFIG_CRC_CCITT is not set
-+CONFIG_CRC16=y
-+# CONFIG_CRC_T10DIF is not set
-+# CONFIG_CRC_ITU_T is not set
-+CONFIG_CRC32=y
-+# CONFIG_CRC7 is not set
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_LZO_COMPRESS=y
-+CONFIG_LZO_DECOMPRESS=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-diff --git a/arch/arm/configs/pm9g45cs6_defconfig b/arch/arm/configs/pm9g45cs6_defconfig
-new file mode 100644
-index 0000000..724bd99
---- /dev/null
-+++ b/arch/arm/configs/pm9g45cs6_defconfig
-@@ -0,0 +1,1657 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.30.10
-+# Sun Feb 28 13:56:37 2010
-+#
-+CONFIG_ARM=y
-+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-+CONFIG_GENERIC_GPIO=y
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+CONFIG_MMU=y
-+# CONFIG_NO_IOPORT is not set
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+
-+#
-+# General setup
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_SYSVIPC_SYSCTL=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+# CONFIG_CLASSIC_RCU is not set
-+CONFIG_TREE_RCU=y
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_RCU_TRACE is not set
-+CONFIG_RCU_FANOUT=32
-+# CONFIG_RCU_FANOUT_EXACT is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
-+# CONFIG_CGROUPS is not set
-+CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
-+# CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_ALL is not set
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+CONFIG_SHMEM=y
-+CONFIG_AIO=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
-+CONFIG_SLAB=y
-+# CONFIG_SLUB is not set
-+# CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+# CONFIG_FREEZER is not set
-+
-+#
-+# System Type
-+#
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+CONFIG_ARCH_AT91=y
-+# CONFIG_ARCH_CLPS711X is not set
-+# CONFIG_ARCH_EBSA110 is not set
-+# CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
-+# CONFIG_ARCH_FOOTBRIDGE is not set
-+# CONFIG_ARCH_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP13XX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X is not set
-+# CONFIG_ARCH_IXP23XX is not set
-+# CONFIG_ARCH_IXP2000 is not set
-+# CONFIG_ARCH_IXP4XX is not set
-+# CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
-+# CONFIG_ARCH_KS8695 is not set
-+# CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
-+# CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
-+# CONFIG_ARCH_PNX4008 is not set
-+# CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
-+# CONFIG_ARCH_RPC is not set
-+# CONFIG_ARCH_SA1100 is not set
-+# CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
-+# CONFIG_ARCH_SHARK is not set
-+# CONFIG_ARCH_LH7A40X is not set
-+# CONFIG_ARCH_DAVINCI is not set
-+# CONFIG_ARCH_OMAP is not set
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
-+
-+#
-+# Atmel AT91 System-on-Chip
-+#
-+# CONFIG_ARCH_AT91RM9200 is not set
-+# CONFIG_ARCH_AT91SAM9260 is not set
-+# CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
-+# CONFIG_ARCH_AT91SAM9263 is not set
-+# CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+CONFIG_ARCH_AT91SAM9G45=y
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
-+# CONFIG_ARCH_AT91X40 is not set
-+CONFIG_AT91_PMC_UNIT=y
-+
-+#
-+# AT91SAM9G45 Board Type
-+#
-+# CONFIG_MACH_AT91SAM9G45EKES is not set
-+CONFIG_MACH_PM9G45=y
-+# CONFIG_PM9G45_SYSTEM_RAM_CS1 is not set
-+CONFIG_PM9G45_SYSTEM_RAM_CS6=y
-+CONFIG_VRAM_SIZE=0x8000000
-+CONFIG_PM9G45_LCD_TX09D70=y
-+# CONFIG_PM9G45_LCD_RA158 is not set
-+# CONFIG_PM9G45_LCD_TCG057VGLAC is not set
-+# CONFIG_PM9G45_LCD_GTTV57NN771E0 is not set
-+# CONFIG_PM9G45_LCD_GLAA057VA01CW is not set
-+# CONFIG_PM9G45_LCD_GATW70SN8H1E0 is not set
-+# CONFIG_PM9G45_LCD_CLAA080MB0ACW is not set
-+
-+#
-+# AT91 Board Options
-+#
-+CONFIG_MTD_AT91_DATAFLASH_CARD=y
-+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
-+
-+#
-+# AT91 Feature Selections
-+#
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
-+
-+#
-+# Processor Type
-+#
-+CONFIG_CPU_32=y
-+CONFIG_CPU_ARM926T=y
-+CONFIG_CPU_32v5=y
-+CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
-+CONFIG_CPU_CACHE_VIVT=y
-+CONFIG_CPU_COPY_V4WB=y
-+CONFIG_CPU_TLB_V4WBI=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-+
-+#
-+# Processor Features
-+#
-+CONFIG_ARM_THUMB=y
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-+# CONFIG_OUTER_CACHE is not set
-+
-+#
-+# Bus support
-+#
-+# CONFIG_PCI_SYSCALL is not set
-+# CONFIG_ARCH_SUPPORTS_MSI is not set
-+CONFIG_PCCARD=y
-+CONFIG_PCMCIA_DEBUG=y
-+CONFIG_PCMCIA=y
-+# CONFIG_PCMCIA_LOAD_CIS is not set
-+# CONFIG_PCMCIA_IOCTL is not set
-+
-+#
-+# PC-card bridges
-+#
-+CONFIG_AT91_CF=y
-+
-+#
-+# Kernel Features
-+#
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
-+# CONFIG_PREEMPT is not set
-+CONFIG_HZ=100
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
-+CONFIG_ALIGNMENT_TRAP=y
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZBOOT_ROM_TEXT=0x0
-+CONFIG_ZBOOT_ROM_BSS=0x0
-+CONFIG_CMDLINE="mem=64M fbcon=rotate:3 root=/dev/mtdblock4 rw mtdparts=atmel_nand:128k(bootstrap)ro,256k(uboot)ro,1664k(env),2M(linux),-(root) rootfstype=jffs2"
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC is not set
-+
-+#
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
-+# Floating point emulation
-+#
-+
-+#
-+# At least one emulation must be selected
-+#
-+CONFIG_FPE_NWFPE=y
-+# CONFIG_FPE_NWFPE_XP is not set
-+# CONFIG_FPE_FASTFPE is not set
-+# CONFIG_VFP is not set
-+
-+#
-+# Userspace binary formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
-+# CONFIG_BINFMT_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options
-+#
-+# CONFIG_PM is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_AF_RXRPC is not set
-+# CONFIG_WIRELESS is not set
-+# CONFIG_WIMAX is not set
-+# CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_DEBUG_DRIVER is not set
-+# CONFIG_DEBUG_DEVRES is not set
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_CONNECTOR is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_DATAFLASH=y
-+CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
-+# CONFIG_MTD_DATAFLASH_OTP is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+CONFIG_MTD_UBI=y
-+CONFIG_MTD_UBI_WL_THRESHOLD=4096
-+CONFIG_MTD_UBI_BEB_RESERVE=1
-+# CONFIG_MTD_UBI_GLUEBI is not set
-+
-+#
-+# UBI debugging options
-+#
-+# CONFIG_MTD_UBI_DEBUG is not set
-+# CONFIG_PARPORT is not set
-+CONFIG_BLK_DEV=y
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_UB is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+CONFIG_MISC_DEVICES=y
-+# CONFIG_ATMEL_PWM is not set
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
-+# CONFIG_EEPROM_93CX6 is not set
-+CONFIG_HAVE_IDE=y
-+CONFIG_IDE=y
-+
-+#
-+# Please see Documentation/ide/ide.txt for help/info on IDE drives
-+#
-+CONFIG_IDE_XFER_MODE=y
-+CONFIG_IDE_TIMINGS=y
-+# CONFIG_BLK_DEV_IDE_SATA is not set
-+CONFIG_IDE_GD=y
-+CONFIG_IDE_GD_ATA=y
-+# CONFIG_IDE_GD_ATAPI is not set
-+CONFIG_BLK_DEV_IDECS=y
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+CONFIG_IDE_PROC_FS=y
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+# CONFIG_BLK_DEV_PLATFORM is not set
-+CONFIG_BLK_DEV_IDE_AT91=y
-+# CONFIG_BLK_DEV_IDEDMA is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+# CONFIG_SCSI_SCAN_ASYNC is not set
-+CONFIG_SCSI_WAIT_SCAN=m
-+
-+#
-+# SCSI Transports
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_LIBSAS is not set
-+# CONFIG_SCSI_SRP_ATTRS is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+CONFIG_NETDEVICES=y
-+CONFIG_COMPAT_NET_DEV_OPS=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+# CONFIG_DAVICOM_PHY is not set
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+CONFIG_NATIONAL_PHY=y
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_MII is not set
-+CONFIG_MACB=y
-+# CONFIG_AX88796 is not set
-+# CONFIG_SMC91X is not set
-+# CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
-+# CONFIG_IBM_NEW_EMAC_ZMII is not set
-+# CONFIG_IBM_NEW_EMAC_RGMII is not set
-+# CONFIG_IBM_NEW_EMAC_TAH is not set
-+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-+# CONFIG_B44 is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+# CONFIG_WLAN_80211 is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_NET_PCMCIA is not set
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+# CONFIG_INPUT_POLLDEV is not set
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
-+CONFIG_INPUT_JOYDEV=y
-+CONFIG_INPUT_EVDEV=y
-+CONFIG_INPUT_EVBUG=y
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+CONFIG_KEYBOARD_ATKBD=y
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+# CONFIG_KEYBOARD_GPIO is not set
-+CONFIG_INPUT_MOUSE=y
-+CONFIG_MOUSE_PS2=y
-+CONFIG_MOUSE_PS2_ALPS=y
-+CONFIG_MOUSE_PS2_LOGIPS2PP=y
-+CONFIG_MOUSE_PS2_SYNAPTICS=y
-+CONFIG_MOUSE_PS2_TRACKPOINT=y
-+# CONFIG_MOUSE_PS2_ELANTECH is not set
-+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-+# CONFIG_MOUSE_SERIAL is not set
-+# CONFIG_MOUSE_APPLETOUCH is not set
-+# CONFIG_MOUSE_BCM5974 is not set
-+# CONFIG_MOUSE_VSXXXAA is not set
-+# CONFIG_MOUSE_GPIO is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+CONFIG_INPUT_TOUCHSCREEN=y
-+CONFIG_TOUCHSCREEN_ADS7846=y
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
-+# CONFIG_TOUCHSCREEN_FUJITSU is not set
-+# CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
-+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-+# CONFIG_TOUCHSCREEN_ATMEL_TSADCC is not set
-+# CONFIG_TOUCHSCREEN_WM97XX is not set
-+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+# CONFIG_SERIO_SERPORT is not set
-+CONFIG_SERIO_LIBPS2=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_ATMEL=y
-+CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
-+# CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=4
-+# CONFIG_IPMI_HANDLER is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+# CONFIG_R3964 is not set
-+
-+#
-+# PCMCIA character devices
-+#
-+# CONFIG_SYNCLINK_CS is not set
-+# CONFIG_CARDMAN_4000 is not set
-+# CONFIG_CARDMAN_4040 is not set
-+# CONFIG_IPWIRELESS is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_DEBUG=y
-+CONFIG_SPI_MASTER=y
-+
-+#
-+# SPI Master Controller Drivers
-+#
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
-+
-+#
-+# SPI Protocol Masters
-+#
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_DEBUG_GPIO is not set
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+CONFIG_W1=y
-+
-+#
-+# 1-wire Bus Masters
-+#
-+# CONFIG_W1_MASTER_DS2490 is not set
-+# CONFIG_W1_MASTER_DS1WM is not set
-+CONFIG_W1_MASTER_GPIO=y
-+
-+#
-+# 1-wire Slaves
-+#
-+# CONFIG_W1_SLAVE_THERM is not set
-+# CONFIG_W1_SLAVE_SMEM is not set
-+# CONFIG_W1_SLAVE_DS2431 is not set
-+# CONFIG_W1_SLAVE_DS2433 is not set
-+# CONFIG_W1_SLAVE_DS2760 is not set
-+# CONFIG_W1_SLAVE_BQ27000 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_UCB1400_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+
-+#
-+# Multimedia devices
-+#
-+
-+#
-+# Multimedia core support
-+#
-+# CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_VGASTATE is not set
-+CONFIG_VIDEO_OUTPUT_CONTROL=y
-+CONFIG_FB=y
-+# CONFIG_FIRMWARE_EDID is not set
-+# CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-+CONFIG_FB_CFB_FILLRECT=y
-+CONFIG_FB_CFB_COPYAREA=y
-+CONFIG_FB_CFB_IMAGEBLIT=y
-+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-+# CONFIG_FB_SYS_FILLRECT is not set
-+# CONFIG_FB_SYS_COPYAREA is not set
-+# CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
-+# CONFIG_FB_SYS_FOPS is not set
-+# CONFIG_FB_SVGALIB is not set
-+# CONFIG_FB_MACMODES is not set
-+# CONFIG_FB_BACKLIGHT is not set
-+# CONFIG_FB_MODE_HELPERS is not set
-+# CONFIG_FB_TILEBLITTING is not set
-+
-+#
-+# Frame buffer hardware drivers
-+#
-+# CONFIG_FB_S1D15605 is not set
-+# CONFIG_FB_S1D13XXX is not set
-+CONFIG_FB_ATMEL=y
-+# CONFIG_FB_VIRTUAL is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+CONFIG_LCD_CLASS_DEVICE=y
-+# CONFIG_LCD_LTV350QV is not set
-+# CONFIG_LCD_ILI9320 is not set
-+# CONFIG_LCD_TDO24M is not set
-+# CONFIG_LCD_VGG2432A4 is not set
-+CONFIG_LCD_PLATFORM=y
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_GENERIC is not set
-+
-+#
-+# Display device support
-+#
-+# CONFIG_DISPLAY_SUPPORT is not set
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+# CONFIG_FRAMEBUFFER_CONSOLE is not set
-+CONFIG_LOGO=y
-+# CONFIG_LOGO_LINUX_MONO is not set
-+# CONFIG_LOGO_LINUX_VGA16 is not set
-+CONFIG_LOGO_LINUX_CLUT224=y
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+# CONFIG_SND_SEQUENCER is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+CONFIG_SND_SUPPORT_OLD_API=y
-+CONFIG_SND_VERBOSE_PROCFS=y
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+CONFIG_SND_VMASTER=y
-+CONFIG_SND_AC97_CODEC=y
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+CONFIG_SND_ATMEL_AC97C=y
-+# CONFIG_SND_SPI is not set
-+# CONFIG_SND_USB is not set
-+# CONFIG_SND_PCMCIA is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_AC97_BUS=y
-+CONFIG_HID_SUPPORT=y
-+CONFIG_HID=y
-+CONFIG_HID_DEBUG=y
-+# CONFIG_HIDRAW is not set
-+
-+#
-+# USB Input Devices
-+#
-+CONFIG_USB_HID=y
-+# CONFIG_HID_PID is not set
-+# CONFIG_USB_HIDDEV is not set
-+
-+#
-+# Special HID drivers
-+#
-+CONFIG_HID_A4TECH=y
-+CONFIG_HID_APPLE=y
-+CONFIG_HID_BELKIN=y
-+CONFIG_HID_CHERRY=y
-+CONFIG_HID_CHICONY=y
-+CONFIG_HID_CYPRESS=y
-+# CONFIG_DRAGONRISE_FF is not set
-+CONFIG_HID_EZKEY=y
-+CONFIG_HID_KYE=y
-+CONFIG_HID_GYRATION=y
-+CONFIG_HID_KENSINGTON=y
-+CONFIG_HID_LOGITECH=y
-+# CONFIG_LOGITECH_FF is not set
-+# CONFIG_LOGIRUMBLEPAD2_FF is not set
-+CONFIG_HID_MICROSOFT=y
-+CONFIG_HID_MONTEREY=y
-+CONFIG_HID_NTRIG=y
-+CONFIG_HID_PANTHERLORD=y
-+# CONFIG_PANTHERLORD_FF is not set
-+CONFIG_HID_PETALYNX=y
-+CONFIG_HID_SAMSUNG=y
-+CONFIG_HID_SONY=y
-+CONFIG_HID_SUNPLUS=y
-+# CONFIG_GREENASIA_FF is not set
-+CONFIG_HID_TOPSEED=y
-+# CONFIG_THRUSTMASTER_FF is not set
-+# CONFIG_ZEROPLUS_FF is not set
-+CONFIG_USB_SUPPORT=y
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+CONFIG_USB_ARCH_HAS_EHCI=y
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_C67X00_HCD is not set
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
-+
-+#
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-+#
-+
-+#
-+# also be needed; see USB_STORAGE Help for more info
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
-+# CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_ADUTUX is not set
-+# CONFIG_USB_SEVSEG is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_BERRY_CHARGE is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYPRESS_CY7C63 is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_FTDI_ELAN is not set
-+# CONFIG_USB_APPLEDISPLAY is not set
-+# CONFIG_USB_SISUSBVGA is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TRANCEVIBRATOR is not set
-+# CONFIG_USB_IOWARRIOR is not set
-+# CONFIG_USB_TEST is not set
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG is not set
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+# CONFIG_USB_GADGET_DEBUG_FS is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+# CONFIG_USB_GADGET_AT91 is not set
-+CONFIG_USB_GADGET_ATMEL_USBA=y
-+CONFIG_USB_ATMEL_USBA=y
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+CONFIG_USB_GADGET_DUALSPEED=y
-+# CONFIG_USB_ZERO is not set
-+# CONFIG_USB_ETH is not set
-+# CONFIG_USB_GADGETFS is not set
-+# CONFIG_USB_FILE_STORAGE is not set
-+CONFIG_USB_G_SERIAL=y
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+# CONFIG_USB_CDC_COMPOSITE is not set
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-+# CONFIG_SDIO_UART is not set
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+# CONFIG_MMC_AT91 is not set
-+CONFIG_MMC_ATMELMCI=y
-+CONFIG_MMC_ATMELMCI_DMA=y
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+# CONFIG_RTC_DRV_TEST is not set
-+
-+#
-+# SPI RTC drivers
-+#
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
-+
-+#
-+# Platform RTC drivers
-+#
-+# CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
-+# CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
-+# on-CPU RTC drivers
-+#
-+CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+CONFIG_DMADEVICES=y
-+
-+#
-+# DMA Devices
-+#
-+CONFIG_AT_HDMAC=y
-+CONFIG_DMA_ENGINE=y
-+
-+#
-+# DMA Clients
-+#
-+# CONFIG_NET_DMA is not set
-+# CONFIG_ASYNC_TX_DMA is not set
-+# CONFIG_DMATEST is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_EXT2_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+# CONFIG_XFS_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_FILE_LOCKING=y
-+CONFIG_DNOTIFY=y
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+# CONFIG_MSDOS_FS is not set
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+CONFIG_MISC_FILESYSTEMS=y
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-+CONFIG_JFFS2_ZLIB=y
-+CONFIG_JFFS2_LZO=y
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+# CONFIG_JFFS2_CMODE_NONE is not set
-+CONFIG_JFFS2_CMODE_PRIORITY=y
-+# CONFIG_JFFS2_CMODE_SIZE is not set
-+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-+# CONFIG_UBIFS_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_SQUASHFS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+CONFIG_NLS_CODEPAGE_850=y
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+# CONFIG_DLM is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_PRINTK_TIME=y
-+CONFIG_ENABLE_WARN_DEPRECATED=y
-+CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+CONFIG_DEBUG_FS=y
-+# CONFIG_HEADERS_CHECK is not set
-+CONFIG_DEBUG_KERNEL=y
-+# CONFIG_DEBUG_SHIRQ is not set
-+CONFIG_DETECT_SOFTLOCKUP=y
-+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-+CONFIG_DETECT_HUNG_TASK=y
-+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-+CONFIG_SCHED_DEBUG=y
-+# CONFIG_SCHEDSTATS is not set
-+CONFIG_TIMER_STATS=y
-+# CONFIG_DEBUG_OBJECTS is not set
-+# CONFIG_DEBUG_SLAB is not set
-+# CONFIG_DEBUG_RT_MUTEXES is not set
-+# CONFIG_RT_MUTEX_TESTER is not set
-+# CONFIG_DEBUG_SPINLOCK is not set
-+# CONFIG_DEBUG_MUTEXES is not set
-+# CONFIG_DEBUG_LOCK_ALLOC is not set
-+# CONFIG_PROVE_LOCKING is not set
-+# CONFIG_LOCK_STAT is not set
-+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-+# CONFIG_DEBUG_KOBJECT is not set
-+CONFIG_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_INFO=y
-+# CONFIG_DEBUG_VM is not set
-+# CONFIG_DEBUG_WRITECOUNT is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_DEBUG_LIST is not set
-+# CONFIG_DEBUG_SG is not set
-+# CONFIG_DEBUG_NOTIFIERS is not set
-+# CONFIG_BOOT_PRINTK_DELAY is not set
-+# CONFIG_RCU_TORTURE_TEST is not set
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_BACKTRACE_SELF_TEST is not set
-+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-+# CONFIG_FAULT_INJECTION is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+# CONFIG_PAGE_POISONING is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_DYNAMIC_DEBUG is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+# CONFIG_KGDB is not set
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
-+# CONFIG_DEBUG_ERRORS is not set
-+# CONFIG_DEBUG_STACK_USAGE is not set
-+# CONFIG_DEBUG_LL is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+CONFIG_CRYPTO_DEFLATE=y
-+CONFIG_CRYPTO_ZLIB=y
-+CONFIG_CRYPTO_LZO=y
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
-+# CONFIG_CRC_CCITT is not set
-+CONFIG_CRC16=y
-+# CONFIG_CRC_T10DIF is not set
-+# CONFIG_CRC_ITU_T is not set
-+CONFIG_CRC32=y
-+# CONFIG_CRC7 is not set
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_LZO_COMPRESS=y
-+CONFIG_LZO_DECOMPRESS=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-add-float-flags-in-Makefile.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-add-float-flags-in-Makefile.patch
deleted file mode 100644
index 8ed9be3..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-add-float-flags-in-Makefile.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 2c11c12dcc449228a9996b194220c51bf0bd4156 Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Tue, 20 Apr 2010 16:06:20 +0300
-Subject: [PATCH] add float flags in Makefile
-
----
- Makefile |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b92ad41..171e1d1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -336,8 +336,8 @@ MODFLAGS	= -DMODULE
- CFLAGS_MODULE   = $(MODFLAGS)
- AFLAGS_MODULE   = $(MODFLAGS)
- LDFLAGS_MODULE  =
--CFLAGS_KERNEL	=
--AFLAGS_KERNEL	=
-+CFLAGS_KERNEL	= -mfloat-abi=soft -mfpu=vfp
-+AFLAGS_KERNEL	= -mfloat-abi=soft -mfpu=vfp
- 
- 
- # Use LINUXINCLUDE when you must reference the include/ directory.
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-conditional-compile-if-DEDICATED_VRAM.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-conditional-compile-if-DEDICATED_VRAM.patch
new file mode 100644
index 0000000..b717a88
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0009-conditional-compile-if-DEDICATED_VRAM.patch
@@ -0,0 +1,73 @@
+From ca30d75c61c9e37673815ccc325262b1f085f840 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 19 Oct 2010 16:39:22 +0300
+Subject: [[PATCH 09/22] conditional compile if DEDICATED_VRAM
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c             |   13 +++++++++++++
+ arch/arm/mach-at91/include/mach/at91sam9g45.h |    8 +++++---
+ 2 files changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index aa64b39..23c892e 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -271,12 +271,22 @@ static struct resource lcdc_resources[] = {
+ 		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
+ 		.flags	= IORESOURCE_MEM,
+ 	},
++#if CONFIG_PM9G45_DEDICATED_VRAM
++/*
++ * atmel_lcdfb_probe() checks if record 1 is IORESOURCE_MEM
++ * if not then allocates spave in system ram
++ */
+ 	[1] = {
+ 		.start	= CONFIG_VRAM_BASE,
+ 		.end	= CONFIG_VRAM_BASE + CONFIG_VRAM_SIZE - 1,
+ 		.flags	= IORESOURCE_MEM,
+ 	},
++#endif
++#if CONFIG_PM9G45_DEDICATED_VRAM
+ 	[2] = {
++#else
++	[1] = {
++#endif
+ 		.start	= AT91SAM9G45_ID_LCDC,
+ 		.end	= AT91SAM9G45_ID_LCDC,
+ 		.flags	= IORESOURCE_IRQ,
+@@ -350,8 +360,11 @@ static struct fb_videomode at91_tft_vga_modes[] = {
+ 		.lower_margin		= 0,
+ 		.hsync_len		= 5,
+ 		.vsync_len		= 1,
++		/*
+ 		.sync			= FB_SYNC_HOR_HIGH_ACT |
+ 					FB_SYNC_VERT_HIGH_ACT,
++		*/
++		.sync			= 0,
+ 		.vmode			= FB_VMODE_NONINTERLACED,
+ 	},
+ };
+diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h
+index 324d876..826c764 100644
+--- a/arch/arm/mach-at91/include/mach/at91sam9g45.h
++++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h
+@@ -143,9 +143,11 @@
+ #define CONFIG_VRAM_SIZE	SZ_64M
+ #elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS6)
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
+-#define CONFIG_DRAM_SIZE	SZ_64M
+-#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_1
+-#define CONFIG_VRAM_SIZE_	SZ_128M
++/*
++#if CONFIG_PM9G45_DEDICATED_VRAM
++#define CONFIG_DRAM_SIZE	SZ_64M - CONFIG_VRAM_SIZE
++#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6 + CONFIG_DRAM_SIZE
++*/
+ #else
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
+ #endif
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-add-pm9g45-board-version-1.2-and-adjust-memory-selec.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-add-pm9g45-board-version-1.2-and-adjust-memory-selec.patch
new file mode 100644
index 0000000..b53e8e4
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-add-pm9g45-board-version-1.2-and-adjust-memory-selec.patch
@@ -0,0 +1,139 @@
+From 60efa735a6e9dc13119183d968e320e41e5b6654 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 19 Oct 2010 17:33:48 +0300
+Subject: [[PATCH 10/22] add pm9g45 board version 1.2, and adjust memory
+ selection
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/Kconfig                    |   36 ++++++++++++++++++++++---
+ arch/arm/mach-at91/board-pm9g45.c             |    4 +--
+ arch/arm/mach-at91/include/mach/at91sam9g45.h |   15 +++++++---
+ 3 files changed, 43 insertions(+), 12 deletions(-)
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index ab7e4e2..f9fd9dc 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -420,8 +420,30 @@ config MACH_PM9G45
+          Select this if you are using Ronetix's PM9G45 board.
+          <http://ronetix.at/starter_kit_9g45.html>
+ choice
+-       prompt "System RAM base address"
++       prompt "PM9G45 board version"
+        depends on MACH_PM9G45
++       default MACH_PM9G45_V1_2
++       help
++         The version is writted out on the board.
++
++config MACH_PM9G45_V1_1
++       bool "v1.1"
++       depends on MACH_PM9G45
++       help
++         Has two RAM memories on CS1 and CS6.
++
++config MACH_PM9G45_V1_2
++       bool "v1.2"
++       depends on MACH_PM9G45
++       select AUTO_VRAM_SIZE
++       help
++         Has one RAM memory on CS6.
++
++endchoice
++
++choice
++       prompt "System RAM base address"
++       depends on (MACH_PM9G45 && MACH_PM9G45_V1_1)
+        help
+          AT91SAM9G45 has two DDR2 controlers, one CS1 on 0x20000000
+          and CS6 on 0x70000000 memmory addresses. You can choose
+@@ -429,21 +451,27 @@ choice
+ 
+ config PM9G45_SYSTEM_RAM_CS1
+        bool "System RAM: CS1 on 0x20000000 with 128MB"
+-       depends on MACH_PM9G45
+        help
+          CS1 will be used for system ram and CS6 for video memory.
+ 
+ config PM9G45_SYSTEM_RAM_CS6
+        bool "System RAM: CS6 on 0x70000000"
+-       depends on MACH_PM9G45
+        help
+          CS6 will be used for system ram and for video ram.
+ 
+ endchoice
+ 
++config AUTO_VRAM_SIZE
++       bool "Reserve video memory automatic"
++       depends on PM9G45_SYSTEM_RAM_CS6
++       default n if PM9G45_SYSTEM_RAM_CS1
++       help
++         The automatic reservasion is based on the screen resolution
++         and bits per pixel. Manualy reserver memory VRAM_SIZE for video.
++
+ config VRAM_SIZE
+        prompt "Video RAM size"
+-       depends on (MACH_PM9G45 && PM9G45_SYSTEM_RAM_CS6)
++       depends on (MACH_PM9G45_V1_1 && PM9G45_SYSTEM_RAM_CS6 && AUTO_VRAM_SIZE=n)
+        hex
+        help
+          Determine the size of ram for video. It will be located at the end of CS6.
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index 23c892e..b368d66 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -271,7 +271,7 @@ static struct resource lcdc_resources[] = {
+ 		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
+ 		.flags	= IORESOURCE_MEM,
+ 	},
+-#if CONFIG_PM9G45_DEDICATED_VRAM
++#ifndef CONFIG_AUTO_VRAM_SIZE
+ /*
+  * atmel_lcdfb_probe() checks if record 1 is IORESOURCE_MEM
+  * if not then allocates spave in system ram
+@@ -281,8 +281,6 @@ static struct resource lcdc_resources[] = {
+ 		.end	= CONFIG_VRAM_BASE + CONFIG_VRAM_SIZE - 1,
+ 		.flags	= IORESOURCE_MEM,
+ 	},
+-#endif
+-#if CONFIG_PM9G45_DEDICATED_VRAM
+ 	[2] = {
+ #else
+ 	[1] = {
+diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h
+index 826c764..a818792 100644
+--- a/arch/arm/mach-at91/include/mach/at91sam9g45.h
++++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h
+@@ -136,18 +136,23 @@
+  */
+ #if defined(CONFIG_MACH_AT91SAM9G45EKES)
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
+-#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS1)
++#elif defined(CONFIG_MACH_PM9G45_V1_1) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS1)
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_1
+ #define CONFIG_DRAM_SIZE	SZ_128M
+ #define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6
+ #define CONFIG_VRAM_SIZE	SZ_64M
+-#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS6)
++#elif 	defined(CONFIG_MACH_PM9G45_V1_1) && \
++	defined(CONFIG_PM9G45_SYSTEM_RAM_CS6) && \
++	defined(CONFIG_AUTO_VRAM_SIZE)
++#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
++#elif 	defined(CONFIG_MACH_PM9G45_V1_1) && \
++	defined(CONFIG_PM9G45_SYSTEM_RAM_CS6) && \
++	CONFIG_AUTO_VRAM_SIZE == y
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
+-/*
+-#if CONFIG_PM9G45_DEDICATED_VRAM
+ #define CONFIG_DRAM_SIZE	SZ_64M - CONFIG_VRAM_SIZE
+ #define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6 + CONFIG_DRAM_SIZE
+-*/
++#elif 	defined(CONFIG_MACH_PM9G45_V1_2)
++#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
+ #else
+ #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
+ #endif
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-conditional-compile-if-DEDICATED_VRAM.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-conditional-compile-if-DEDICATED_VRAM.patch
deleted file mode 100644
index d398436..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0010-conditional-compile-if-DEDICATED_VRAM.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 4b46d47b680a721057519c68f0ab8f291d39858e Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Wed, 12 May 2010 23:48:59 +0300
-Subject: [PATCH] conditional compile if DEDICATED_VRAM
-
----
- arch/arm/mach-at91/board-pm9g45.c             |   13 +++++++++++++
- arch/arm/mach-at91/include/mach/at91sam9g45.h |    8 +++++---
- 2 files changed, 18 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
-index 63e5ee1..fa142cf 100644
---- a/arch/arm/mach-at91/board-pm9g45.c
-+++ b/arch/arm/mach-at91/board-pm9g45.c
-@@ -270,12 +270,22 @@ static struct resource lcdc_resources[] = {
- 		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
- 		.flags	= IORESOURCE_MEM,
- 	},
-+#if CONFIG_PM9G45_DEDICATED_VRAM
-+/*
-+ * atmel_lcdfb_probe() checks if record 1 is IORESOURCE_MEM
-+ * if not then allocates spave in system ram
-+ */
- 	[1] = {
- 		.start	= CONFIG_VRAM_BASE,
- 		.end	= CONFIG_VRAM_BASE + CONFIG_VRAM_SIZE - 1,
- 		.flags	= IORESOURCE_MEM,
- 	},
-+#endif
-+#if CONFIG_PM9G45_DEDICATED_VRAM
- 	[2] = {
-+#else
-+	[1] = {
-+#endif		
- 		.start	= AT91SAM9G45_ID_LCDC,
- 		.end	= AT91SAM9G45_ID_LCDC,
- 		.flags	= IORESOURCE_IRQ,
-@@ -349,7 +359,10 @@ static struct fb_videomode at91_tft_vga_modes[] = {
- 		.lower_margin	= 0,
- 		.hsync_len		= 5,		
- 		.vsync_len		= 1,
-+		/*
- 		.sync			= FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-+		*/
-+		.sync			= 0,
- 		.vmode			= FB_VMODE_NONINTERLACED,
- 	},
- };
-diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h
-index 324d876..826c764 100644
---- a/arch/arm/mach-at91/include/mach/at91sam9g45.h
-+++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h
-@@ -143,9 +143,11 @@
- #define CONFIG_VRAM_SIZE	SZ_64M
- #elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS6)
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
--#define CONFIG_DRAM_SIZE	SZ_64M
--#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_1
--#define CONFIG_VRAM_SIZE_	SZ_128M
-+/*
-+#if CONFIG_PM9G45_DEDICATED_VRAM
-+#define CONFIG_DRAM_SIZE	SZ_64M - CONFIG_VRAM_SIZE
-+#define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6 + CONFIG_DRAM_SIZE
-+*/
- #else
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
- #endif
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-add-pm9g45-board-version-1.2-and-adjust-memory-sele.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-add-pm9g45-board-version-1.2-and-adjust-memory-sele.patch
deleted file mode 100644
index 6de675e..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-add-pm9g45-board-version-1.2-and-adjust-memory-sele.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 7abad9133c1bf66732a339126003f191926a202c Mon Sep 17 00:00:00 2001
-From: Asen Dimov <dimov at ronetix.at>
-Date: Fri, 27 Aug 2010 13:46:28 +0300
-Subject: [PATCH] add pm9g45 board version 1.2, and adjust memory selection
-
-
-Signed-off-by: Asen Dimov <dimov at ronetix.at>
----
- arch/arm/mach-at91/Kconfig                    |   36 ++++++++++++++++++++++---
- arch/arm/mach-at91/board-pm9g45.c             |    4 +--
- arch/arm/mach-at91/include/mach/at91sam9g45.h |   15 +++++++---
- 3 files changed, 43 insertions(+), 12 deletions(-)
-
-diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
-index bebad5b..25e6c6b 100644
---- a/arch/arm/mach-at91/Kconfig
-+++ b/arch/arm/mach-at91/Kconfig
-@@ -414,8 +414,30 @@ config MACH_PM9G45
-          Select this if you are using Ronetix's PM9G45 board.
-          <http://ronetix.at/starter_kit_9g45.html>
- choice
--       prompt "System RAM base address"
-+       prompt "PM9G45 board version"
-        depends on MACH_PM9G45
-+       default MACH_PM9G45_V1_2
-+       help
-+         The version is writted out on the board.
-+
-+config MACH_PM9G45_V1_1
-+       bool "v1.1"
-+       depends on MACH_PM9G45
-+       help
-+         Has two RAM memories on CS1 and CS6.
-+
-+config MACH_PM9G45_V1_2
-+       bool "v1.2"
-+       depends on MACH_PM9G45
-+       select AUTO_VRAM_SIZE
-+       help
-+         Has one RAM memory on CS6.
-+
-+endchoice
-+
-+choice
-+       prompt "System RAM base address"
-+       depends on (MACH_PM9G45 && MACH_PM9G45_V1_1)
-        help
-          AT91SAM9G45 has two DDR2 controlers, one CS1 on 0x20000000
-          and CS6 on 0x70000000 memmory addresses. You can choose
-@@ -423,21 +445,27 @@ choice
- 
- config PM9G45_SYSTEM_RAM_CS1
-        bool "System RAM: CS1 on 0x20000000 with 128MB"
--       depends on MACH_PM9G45
-        help
-          CS1 will be used for system ram and CS6 for video memory.
- 
- config PM9G45_SYSTEM_RAM_CS6
-        bool "System RAM: CS6 on 0x70000000"
--       depends on MACH_PM9G45
-        help
-          CS6 will be used for system ram and for video ram.
- 
- endchoice
- 
-+config AUTO_VRAM_SIZE
-+       bool "Reserve video memory automatic"
-+       depends on PM9G45_SYSTEM_RAM_CS6
-+       default n if PM9G45_SYSTEM_RAM_CS1
-+       help
-+         The automatic reservasion is based on the screen resolution
-+         and bits per pixel. Manualy reserver memory VRAM_SIZE for video.
-+
- config VRAM_SIZE
-        prompt "Video RAM size"
--       depends on (MACH_PM9G45 && PM9G45_SYSTEM_RAM_CS6)
-+       depends on (MACH_PM9G45_V1_1 && PM9G45_SYSTEM_RAM_CS6 && AUTO_VRAM_SIZE=n)
-        hex
-        help
-          Determine the size of ram for video. It will be located at the end of CS6.
-diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
-index fa142cf..2671445 100644
---- a/arch/arm/mach-at91/board-pm9g45.c
-+++ b/arch/arm/mach-at91/board-pm9g45.c
-@@ -270,7 +270,7 @@ static struct resource lcdc_resources[] = {
- 		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
- 		.flags	= IORESOURCE_MEM,
- 	},
--#if CONFIG_PM9G45_DEDICATED_VRAM
-+#ifndef CONFIG_AUTO_VRAM_SIZE
- /*
-  * atmel_lcdfb_probe() checks if record 1 is IORESOURCE_MEM
-  * if not then allocates spave in system ram
-@@ -280,8 +280,6 @@ static struct resource lcdc_resources[] = {
- 		.end	= CONFIG_VRAM_BASE + CONFIG_VRAM_SIZE - 1,
- 		.flags	= IORESOURCE_MEM,
- 	},
--#endif
--#if CONFIG_PM9G45_DEDICATED_VRAM
- 	[2] = {
- #else
- 	[1] = {
-diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h
-index 826c764..446e6d9 100644
---- a/arch/arm/mach-at91/include/mach/at91sam9g45.h
-+++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h
-@@ -136,18 +136,23 @@
-  */
- #if defined(CONFIG_MACH_AT91SAM9G45EKES)
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
--#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS1)
-+#elif defined(CONFIG_MACH_PM9G45_V1_1) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS1)
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_1
- #define CONFIG_DRAM_SIZE	SZ_128M
- #define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6
- #define CONFIG_VRAM_SIZE	SZ_64M
--#elif defined(CONFIG_MACH_PM9G45) && defined(CONFIG_PM9G45_SYSTEM_RAM_CS6)
-+#elif 	defined(CONFIG_MACH_PM9G45_V1_1) && \
-+	defined(CONFIG_PM9G45_SYSTEM_RAM_CS6) && \
-+	defined(CONFIG_AUTO_VRAM_SIZE) 
-+#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
-+#elif 	defined(CONFIG_MACH_PM9G45_V1_1) && \
-+	defined(CONFIG_PM9G45_SYSTEM_RAM_CS6) && \
-+	CONFIG_AUTO_VRAM_SIZE == y 
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
--/*
--#if CONFIG_PM9G45_DEDICATED_VRAM
- #define CONFIG_DRAM_SIZE	SZ_64M - CONFIG_VRAM_SIZE
- #define CONFIG_VRAM_BASE	AT91_CHIPSELECT_6 + CONFIG_DRAM_SIZE
--*/
-+#elif 	defined(CONFIG_MACH_PM9G45_V1_2) 
-+#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
- #else
- #define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
- #endif
--- 
-1.5.5.6
-
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-enable-USB-Device-with-On-the-go-ability.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-enable-USB-Device-with-On-the-go-ability.patch
new file mode 100644
index 0000000..2a6efcd
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0011-enable-USB-Device-with-On-the-go-ability.patch
@@ -0,0 +1,44 @@
+From 5d368d914bce79214f0ce859667aa0a4b83d6695 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 19 Oct 2010 17:40:29 +0300
+Subject: [[PATCH 11/22] enable USB Device with On-the-go ability
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index b368d66..8a0135b 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -52,6 +52,8 @@
+ #include <mach/at91sam9_smc.h>
+ #include <mach/at91_shdwc.h>
+ 
++#include <linux/usb/gpio_vbus.h>
++
+ #include "sam9_smc.h"
+ #include "generic.h"
+ 
+@@ -90,6 +92,7 @@ static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
+  */
+ static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
+ 	.vbus_pin	= AT91_PIN_PD1,
++	/*.pullup_pin	= 0,*/		/* pull-up driven by UDC */
+ };
+ 
+ /*
+@@ -844,7 +847,7 @@ static void __init pm9g45_board_init(void)
+ 	at91_add_device_usbh_ohci(&pm9g45_usbh_hs_data);
+ 	at91_add_device_usbh_ehci(&pm9g45_usbh_hs_data);
+ 	/* USB HS Device */
+-	//at91_add_device_usba(&pm9g45_usba_udc_data);
++	at91_add_device_usba(&pm9g45_usba_udc_data);
+ 	/* SPI */
+ 	at91_add_device_spi(pm9g45_spi_devices, ARRAY_SIZE(pm9g45_spi_devices));
+ 	/* Touchscreen */
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0012-one-more-update-of-mach-types.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0012-one-more-update-of-mach-types.patch
new file mode 100644
index 0000000..597c153
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0012-one-more-update-of-mach-types.patch
@@ -0,0 +1,907 @@
+From 4c9ef45d169ae62208895e6512cd38300a58dbb4 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 16 Nov 2010 13:48:44 +0200
+Subject: [[PATCH 12/22] one more update of mach-types
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/tools/mach-types |  786 ++++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 772 insertions(+), 14 deletions(-)
+
+diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
+index 2ca61ca..4522ae1 100644
+--- a/arch/arm/tools/mach-types
++++ b/arch/arm/tools/mach-types
+@@ -12,7 +12,7 @@
+ #
+ #   http://www.arm.linux.org.uk/developer/machines/?action=new
+ #
+-# Last update: Sat Sep 12 12:00:16 2009
++# Last update: Fri Nov 12 10:05:30 2010
+ #
+ # machine_is_xxx	CONFIG_xxxx		MACH_TYPE_xxx		number
+ #
+@@ -928,7 +928,7 @@ palmt5			MACH_PALMT5		PALMT5			917
+ palmtc			MACH_PALMTC		PALMTC			918
+ omap_apollon		MACH_OMAP_APOLLON	OMAP_APOLLON		919
+ mxc30030evb		MACH_MXC30030EVB	MXC30030EVB		920
+-rea_2d			MACH_REA_2D		REA_2D			921
++rea_cpu2		MACH_REA_2D		REA_2D			921
+ eti3e524		MACH_TI3E524		TI3E524			922
+ ateb9200		MACH_ATEB9200		ATEB9200		923
+ auckland		MACH_AUCKLAND		AUCKLAND		924
+@@ -1319,7 +1319,7 @@ mistral			MACH_MISTRAL		MISTRAL			1315
+ msm			MACH_MSM		MSM			1316
+ ct5910			MACH_CT5910		CT5910			1317
+ ct5912			MACH_CT5912		CT5912			1318
+-hynet_ine		MACH_HYNET_INE		HYNET_INE		1319
++argonst_foundation	MACH_HYNET_INE		HYNET_INE		1319
+ hynet_app		MACH_HYNET_APP		HYNET_APP		1320
+ msm7200			MACH_MSM7200		MSM7200			1321
+ msm7600			MACH_MSM7600		MSM7600			1322
+@@ -1638,7 +1638,7 @@ mx35evb			MACH_MX35EVB		MX35EVB			1643
+ aml_m8050		MACH_AML_M8050		AML_M8050		1644
+ mx35_3ds		MACH_MX35_3DS		MX35_3DS		1645
+ mars			MACH_MARS		MARS			1646
+-ntosd_644xa		MACH_NTOSD_644XA	NTOSD_644XA		1647
++neuros_osd2		MACH_NEUROS_OSD2	NEUROS_OSD2		1647
+ badger			MACH_BADGER		BADGER			1648
+ trizeps4wl		MACH_TRIZEPS4WL		TRIZEPS4WL		1649
+ trizeps5		MACH_TRIZEPS5		TRIZEPS5		1650
+@@ -1654,7 +1654,7 @@ vf10xx			MACH_VF10XX		VF10XX			1659
+ zoran43xx		MACH_ZORAN43XX		ZORAN43XX		1660
+ sonix926		MACH_SONIX926		SONIX926		1661
+ celestialsemi		MACH_CELESTIALSEMI	CELESTIALSEMI		1662
+-cc9m2443		MACH_CC9M2443		CC9M2443		1663
++cc9m2443js		MACH_CC9M2443JS		CC9M2443JS		1663
+ tw5334			MACH_TW5334		TW5334			1664
+ omap_htcartemis		MACH_HTCARTEMIS		HTCARTEMIS		1665
+ nal_hlite		MACH_NAL_HLITE		NAL_HLITE		1666
+@@ -1776,7 +1776,8 @@ cybook3			MACH_CYBOOK3		CYBOOK3			1784
+ wdg002			MACH_WDG002		WDG002			1785
+ sg560adsl		MACH_SG560ADSL		SG560ADSL		1786
+ nextio_n2800_ica	MACH_NEXTIO_N2800_ICA	NEXTIO_N2800_ICA	1787
+-marvell_newdb		MACH_MARVELL_NEWDB	MARVELL_NEWDB		1789
++dove_db			MACH_DOVE_DB		DOVE_DB			1788
++dove_avng		MACH_MARVELL_NEWDB	MARVELL_NEWDB		1789
+ vandihud		MACH_VANDIHUD		VANDIHUD		1790
+ magx_e8			MACH_MAGX_E8		MAGX_E8			1791
+ magx_z6			MACH_MAGX_Z6		MAGX_Z6			1792
+@@ -1802,7 +1803,7 @@ ccw9p9215js		MACH_CCW9P9215JS	CCW9P9215JS		1811
+ rd88f5181l_ge		MACH_RD88F5181L_GE	RD88F5181L_GE		1812
+ sifmain			MACH_SIFMAIN		SIFMAIN			1813
+ sam9_l9261		MACH_SAM9_L9261		SAM9_L9261		1814
+-cc9m2443js		MACH_CC9M2443JS		CC9M2443JS		1815
++cc9m2443		MACH_CC9M2443		CC9M2443		1815
+ xaria300		MACH_XARIA300		XARIA300		1816
+ it9200			MACH_IT9200		IT9200			1817
+ rd88f5181l_fxo		MACH_RD88F5181L_FXO	RD88F5181L_FXO		1818
+@@ -1876,7 +1877,7 @@ ued			MACH_UED		UED			1885
+ esiblade		MACH_ESIBLADE		ESIBLADE		1886
+ eye02			MACH_EYE02		EYE02			1887
+ imx27kbd		MACH_IMX27KBD		IMX27KBD		1888
+-sst61vc010_fpga		MACH_SST61VC010_FPGA	SST61VC010_FPGA		1889
++p87_fpga		MACH_SST61VC010_FPGA	SST61VC010_FPGA		1889
+ kixvp435		MACH_KIXVP435		KIXVP435		1890
+ kixnp435		MACH_KIXNP435		KIXNP435		1891
+ africa			MACH_AFRICA		AFRICA			1892
+@@ -1993,7 +1994,7 @@ spark			MACH_SPARK		SPARK			2002
+ benzina			MACH_BENZINA		BENZINA			2003
+ blaze			MACH_BLAZE		BLAZE			2004
+ linkstation_ls_hgl	MACH_LINKSTATION_LS_HGL	LINKSTATION_LS_HGL	2005
+-htckovsky		MACH_HTCVENUS		HTCVENUS		2006
++htckovsky		MACH_HTCKOVSKY		HTCKOVSKY		2006
+ sony_prs505		MACH_SONY_PRS505	SONY_PRS505		2007
+ hanlin_v3		MACH_HANLIN_V3		HANLIN_V3		2008
+ sapphira		MACH_SAPPHIRA		SAPPHIRA		2009
+@@ -2256,7 +2257,7 @@ oratisalog		MACH_ORATISALOG		ORATISALOG		2268
+ oratismadi		MACH_ORATISMADI		ORATISMADI		2269
+ oratisot16		MACH_ORATISOT16		ORATISOT16		2270
+ oratisdesk		MACH_ORATISDESK		ORATISDESK		2271
+-v2_ca9			MACH_V2P_CA9		V2P_CA9			2272
++vexpress		MACH_VEXPRESS		VEXPRESS		2272
+ sintexo			MACH_SINTEXO		SINTEXO			2273
+ cm3389			MACH_CM3389		CM3389			2274
+ omap3_cio		MACH_OMAP3_CIO		OMAP3_CIO		2275
+@@ -2307,7 +2308,7 @@ ecac2378		MACH_ECAC2378		ECAC2378		2319
+ tazkiosk		MACH_TAZKIOSK		TAZKIOSK		2320
+ whiterabbit_mch		MACH_WHITERABBIT_MCH	WHITERABBIT_MCH		2321
+ sbox9263		MACH_SBOX9263		SBOX9263		2322
+-oreo			MACH_OREO		OREO			2323
++oreo_camera		MACH_OREO		OREO			2323
+ smdk6442		MACH_SMDK6442		SMDK6442		2324
+ openrd_base		MACH_OPENRD_BASE	OPENRD_BASE		2325
+ incredible		MACH_INCREDIBLE		INCREDIBLE		2326
+@@ -2320,7 +2321,7 @@ mx31txtr		MACH_MX31TXTR		MX31TXTR		2332
+ u380			MACH_U380		U380			2333
+ oamp3_hualu		MACH_HUALU_BOARD	HUALU_BOARD		2334
+ npcmx50			MACH_NPCMX50		NPCMX50			2335
+-mx51_lange51		MACH_MX51_LANGE51	MX51_LANGE51		2336
++mx51_efikamx		MACH_MX51_EFIKAMX	MX51_EFIKAMX		2336
+ mx51_lange52		MACH_MX51_LANGE52	MX51_LANGE52		2337
+ riom			MACH_RIOM		RIOM			2338
+ comcas			MACH_COMCAS		COMCAS			2339
+@@ -2354,7 +2355,7 @@ at91sam9263cs		MACH_AT91SAM9263CS	AT91SAM9263CS		2366
+ csb732			MACH_CSB732		CSB732			2367
+ u8500			MACH_U8500		U8500			2368
+ huqiu			MACH_HUQIU		HUQIU			2369
+-mx51_kunlun		MACH_MX51_KUNLUN	MX51_KUNLUN		2370
++mx51_efikasb		MACH_MX51_EFIKASB	MX51_EFIKASB		2370
+ pmt1g			MACH_PMT1G		PMT1G			2371
+ htcelf			MACH_HTCELF		HTCELF			2372
+ armadillo420		MACH_ARMADILLO420	ARMADILLO420		2373
+@@ -2373,7 +2374,7 @@ sch_m490		MACH_SCH_M490		SCH_M490		2386
+ rbl01			MACH_RBL01		RBL01			2387
+ omnifi			MACH_OMNIFI		OMNIFI			2388
+ otavalo			MACH_OTAVALO		OTAVALO			2389
+-sienna			MACH_SIENNA		SIENNA			2390
++siena			MACH_SIENNA		SIENNA			2390
+ htc_excalibur_s620	MACH_HTC_EXCALIBUR_S620	HTC_EXCALIBUR_S620	2391
+ htc_opal		MACH_HTC_OPAL		HTC_OPAL		2392
+ touchbook		MACH_TOUCHBOOK		TOUCHBOOK		2393
+@@ -2409,4 +2410,761 @@ platypus		MACH_PLATYPUS		PLATYPUS		2422
+ pss2			MACH_PSS2		PSS2			2423
+ davinci_apm150		MACH_DAVINCI_APM150	DAVINCI_APM150		2424
+ str9100			MACH_STR9100		STR9100			2425
++net5big			MACH_NET5BIG		NET5BIG			2426
++seabed9263		MACH_SEABED9263		SEABED9263		2427
++mx51_m2id		MACH_MX51_M2ID		MX51_M2ID		2428
++octvocplus_eb		MACH_OCTVOCPLUS_EB	OCTVOCPLUS_EB		2429
++klk_firefox		MACH_KLK_FIREFOX	KLK_FIREFOX		2430
++klk_wirma_module	MACH_KLK_WIRMA_MODULE	KLK_WIRMA_MODULE	2431
++klk_wirma_mmi		MACH_KLK_WIRMA_MMI	KLK_WIRMA_MMI		2432
++supersonic		MACH_SUPERSONIC		SUPERSONIC		2433
++liberty			MACH_LIBERTY		LIBERTY			2434
++mh355			MACH_MH355		MH355			2435
++pc7802			MACH_PC7802		PC7802			2436
++gnet_sgc		MACH_GNET_SGC		GNET_SGC		2437
++einstein15		MACH_EINSTEIN15		EINSTEIN15		2438
++cmpd			MACH_CMPD		CMPD			2439
++davinci_hase1		MACH_DAVINCI_HASE1	DAVINCI_HASE1		2440
++lgeincitephone		MACH_LGEINCITEPHONE	LGEINCITEPHONE		2441
++ea313x			MACH_EA313X		EA313X			2442
++fwbd_39064		MACH_FWBD_39064		FWBD_39064		2443
++fwbd_390128		MACH_FWBD_390128	FWBD_390128		2444
++pelco_moe		MACH_PELCO_MOE		PELCO_MOE		2445
++minimix27		MACH_MINIMIX27		MINIMIX27		2446
++omap3_thunder		MACH_OMAP3_THUNDER	OMAP3_THUNDER		2447
++passionc		MACH_PASSIONC		PASSIONC		2448
++mx27amata		MACH_MX27AMATA		MX27AMATA		2449
++bgat1			MACH_BGAT1		BGAT1			2450
++buzz			MACH_BUZZ		BUZZ			2451
++mb9g20			MACH_MB9G20		MB9G20			2452
++yushan			MACH_YUSHAN		YUSHAN			2453
++lizard			MACH_LIZARD		LIZARD			2454
++omap3polycom		MACH_OMAP3POLYCOM	OMAP3POLYCOM		2455
++smdkv210		MACH_SMDKV210		SMDKV210		2456
++bravo			MACH_BRAVO		BRAVO			2457
++siogentoo1		MACH_SIOGENTOO1		SIOGENTOO1		2458
++siogentoo2		MACH_SIOGENTOO2		SIOGENTOO2		2459
++sm3k			MACH_SM3K		SM3K			2460
++acer_tempo_f900		MACH_ACER_TEMPO_F900	ACER_TEMPO_F900		2461
++p87_dev			MACH_SST61VC010_DEV	SST61VC010_DEV		2462
++glittertind		MACH_GLITTERTIND	GLITTERTIND		2463
++omap_zoom3		MACH_OMAP_ZOOM3		OMAP_ZOOM3		2464
++omap_3630sdp		MACH_OMAP_3630SDP	OMAP_3630SDP		2465
++cybook2440		MACH_CYBOOK2440		CYBOOK2440		2466
++torino_s		MACH_TORINO_S		TORINO_S		2467
++havana			MACH_HAVANA		HAVANA			2468
++beaumont_11		MACH_BEAUMONT_11	BEAUMONT_11		2469
++vanguard		MACH_VANGUARD		VANGUARD		2470
++s5pc110_draco		MACH_S5PC110_DRACO	S5PC110_DRACO		2471
++cartesio_two		MACH_CARTESIO_TWO	CARTESIO_TWO		2472
++aster			MACH_ASTER		ASTER			2473
++voguesv210		MACH_VOGUESV210		VOGUESV210		2474
++acm500x			MACH_ACM500X		ACM500X			2475
++km9260			MACH_KM9260		KM9260			2476
++nideflexg1		MACH_NIDEFLEXG1		NIDEFLEXG1		2477
++ctera_plug_io		MACH_CTERA_PLUG_IO	CTERA_PLUG_IO		2478
++smartq7			MACH_SMARTQ7		SMARTQ7			2479
++at91sam9g10ek2		MACH_AT91SAM9G10EK2	AT91SAM9G10EK2		2480
++asusp527		MACH_ASUSP527		ASUSP527		2481
++at91sam9g20mpm2		MACH_AT91SAM9G20MPM2	AT91SAM9G20MPM2		2482
++topasa900		MACH_TOPASA900		TOPASA900		2483
++electrum_100		MACH_ELECTRUM_100	ELECTRUM_100		2484
++mx51grb			MACH_MX51GRB		MX51GRB			2485
++xea300			MACH_XEA300		XEA300			2486
++htcstartrek		MACH_HTCSTARTREK	HTCSTARTREK		2487
++lima			MACH_LIMA		LIMA			2488
++csb740			MACH_CSB740		CSB740			2489
++usb_s8815		MACH_USB_S8815		USB_S8815		2490
++watson_efm_plugin	MACH_WATSON_EFM_PLUGIN	WATSON_EFM_PLUGIN	2491
++milkyway		MACH_MILKYWAY		MILKYWAY		2492
++g4evm			MACH_G4EVM		G4EVM			2493
++picomod6		MACH_PICOMOD6		PICOMOD6		2494
++omapl138_hawkboard	MACH_OMAPL138_HAWKBOARD	OMAPL138_HAWKBOARD	2495
++ip6000			MACH_IP6000		IP6000			2496
++ip6010			MACH_IP6010		IP6010			2497
++utm400			MACH_UTM400		UTM400			2498
++omap3_zybex		MACH_OMAP3_ZYBEX	OMAP3_ZYBEX		2499
++wireless_space		MACH_WIRELESS_SPACE	WIRELESS_SPACE		2500
++sx560			MACH_SX560		SX560			2501
++ts41x			MACH_TS41X		TS41X			2502
++elphel10373		MACH_ELPHEL10373	ELPHEL10373		2503
++rhobot			MACH_RHOBOT		RHOBOT			2504
++mx51_refresh		MACH_MX51_REFRESH	MX51_REFRESH		2505
++ls9260			MACH_LS9260		LS9260			2506
++shank			MACH_SHANK		SHANK			2507
++qsd8x50_st1		MACH_QSD8X50_ST1	QSD8X50_ST1		2508
+ at91sam9m10ekes		MACH_AT91SAM9M10EKES	AT91SAM9M10EKES		2509
++hiram			MACH_HIRAM		HIRAM			2510
++phy3250			MACH_PHY3250		PHY3250			2511
++ea3250			MACH_EA3250		EA3250			2512
++fdi3250			MACH_FDI3250		FDI3250			2513
++htcwhitestone		MACH_WHITESTONE		WHITESTONE		2514
++at91sam9263nit		MACH_AT91SAM9263NIT	AT91SAM9263NIT		2515
++ccmx51			MACH_CCMX51		CCMX51			2516
++ccmx51js		MACH_CCMX51JS		CCMX51JS		2517
++ccwmx51			MACH_CCWMX51		CCWMX51			2518
++ccwmx51js		MACH_CCWMX51JS		CCWMX51JS		2519
++mini6410		MACH_MINI6410		MINI6410		2520
++tiny6410		MACH_TINY6410		TINY6410		2521
++nano6410		MACH_NANO6410		NANO6410		2522
++at572d940hfnldb		MACH_AT572D940HFNLDB	AT572D940HFNLDB		2523
++htcleo			MACH_HTCLEO		HTCLEO			2524
++avp13			MACH_AVP13		AVP13			2525
++xxsvideod		MACH_XXSVIDEOD		XXSVIDEOD		2526
++vpnext			MACH_VPNEXT		VPNEXT			2527
++swarco_itc3		MACH_SWARCO_ITC3	SWARCO_ITC3		2528
++tx51			MACH_TX51		TX51			2529
++dolby_cat1021		MACH_DOLBY_CAT1021	DOLBY_CAT1021		2530
++mx28evk			MACH_MX28EVK		MX28EVK			2531
++phoenix260		MACH_PHOENIX260		PHOENIX260		2532
++uvaca_stork		MACH_UVACA_STORK	UVACA_STORK		2533
++smartq5			MACH_SMARTQ5		SMARTQ5			2534
++all3078			MACH_ALL3078		ALL3078			2535
++ctera_2bay_ds		MACH_CTERA_2BAY_DS	CTERA_2BAY_DS		2536
++siogentoo3		MACH_SIOGENTOO3		SIOGENTOO3		2537
++epb5000			MACH_EPB5000		EPB5000			2538
++hy9263			MACH_HY9263		HY9263			2539
++acer_tempo_m900		MACH_ACER_TEMPO_M900	ACER_TEMPO_M900		2540
++acer_tempo_dx650	MACH_ACER_TEMPO_DX900	ACER_TEMPO_DX900	2541
++acer_tempo_x960		MACH_ACER_TEMPO_X960	ACER_TEMPO_X960		2542
++acer_eten_v900		MACH_ACER_ETEN_V900	ACER_ETEN_V900		2543
++acer_eten_x900		MACH_ACER_ETEN_X900	ACER_ETEN_X900		2544
++bonnell			MACH_BONNELL		BONNELL			2545
++oht_mx27		MACH_OHT_MX27		OHT_MX27		2546
++htcquartz		MACH_HTCQUARTZ		HTCQUARTZ		2547
++davinci_dm6467tevm	MACH_DAVINCI_DM6467TEVM	DAVINCI_DM6467TEVM	2548
++c3ax03			MACH_C3AX03		C3AX03			2549
++mxt_td60		MACH_MXT_TD60		MXT_TD60		2550
++esyx			MACH_ESYX		ESYX			2551
++dove_db2		MACH_DOVE_DB2		DOVE_DB2		2552
++bulldog			MACH_BULLDOG		BULLDOG			2553
++derell_me2000		MACH_DERELL_ME2000	DERELL_ME2000		2554
++bcmring_base		MACH_BCMRING_BASE	BCMRING_BASE		2555
++bcmring_evm		MACH_BCMRING_EVM	BCMRING_EVM		2556
++bcmring_evm_jazz	MACH_BCMRING_EVM_JAZZ	BCMRING_EVM_JAZZ	2557
++bcmring_sp		MACH_BCMRING_SP		BCMRING_SP		2558
++bcmring_sv		MACH_BCMRING_SV		BCMRING_SV		2559
++bcmring_sv_jazz		MACH_BCMRING_SV_JAZZ	BCMRING_SV_JAZZ		2560
++bcmring_tablet		MACH_BCMRING_TABLET	BCMRING_TABLET		2561
++bcmring_vp		MACH_BCMRING_VP		BCMRING_VP		2562
++bcmring_evm_seikor	MACH_BCMRING_EVM_SEIKOR	BCMRING_EVM_SEIKOR	2563
++bcmring_sp_wqvga	MACH_BCMRING_SP_WQVGA	BCMRING_SP_WQVGA	2564
++bcmring_custom		MACH_BCMRING_CUSTOM	BCMRING_CUSTOM		2565
++acer_s200		MACH_ACER_S200		ACER_S200		2566
++bt270			MACH_BT270		BT270			2567
++iseo			MACH_ISEO		ISEO			2568
++cezanne			MACH_CEZANNE		CEZANNE			2569
++lucca			MACH_LUCCA		LUCCA			2570
++supersmart		MACH_SUPERSMART		SUPERSMART		2571
++arm11_board		MACH_CS_MISANO		CS_MISANO		2572
++magnolia2		MACH_MAGNOLIA2		MAGNOLIA2		2573
++emxx			MACH_EMXX		EMXX			2574
++outlaw			MACH_OUTLAW		OUTLAW			2575
++riot_bei2		MACH_RIOT_BEI2		RIOT_BEI2		2576
++riot_gx2		MACH_RIOT_VOX		RIOT_VOX		2577
++riot_x37		MACH_RIOT_X37		RIOT_X37		2578
++mega25mx		MACH_MEGA25MX		MEGA25MX		2579
++benzina2		MACH_BENZINA2		BENZINA2		2580
++ignite			MACH_IGNITE		IGNITE			2581
++foggia			MACH_FOGGIA		FOGGIA			2582
++arezzo			MACH_AREZZO		AREZZO			2583
++leica_skywalker		MACH_LEICA_SKYWALKER	LEICA_SKYWALKER		2584
++jacinto2_jamr		MACH_JACINTO2_JAMR	JACINTO2_JAMR		2585
++gts_nova		MACH_GTS_NOVA		GTS_NOVA		2586
++p3600			MACH_P3600		P3600			2587
++dlt2			MACH_DLT2		DLT2			2588
++df3120			MACH_DF3120		DF3120			2589
++ecucore_9g20		MACH_ECUCORE_9G20	ECUCORE_9G20		2590
++nautel_lpc3240		MACH_NAUTEL_LPC3240	NAUTEL_LPC3240		2591
++glacier			MACH_GLACIER		GLACIER			2592
++phrazer_bulldog		MACH_PHRAZER_BULLDOG	PHRAZER_BULLDOG		2593
++omap3_bulldog		MACH_OMAP3_BULLDOG	OMAP3_BULLDOG		2594
++pca101			MACH_PCA101		PCA101			2595
++buzzc			MACH_BUZZC		BUZZC			2596
++sasie2			MACH_SASIE2		SASIE2			2597
++davinci_dm6467_cio	MACH_DAVINCI_CIO	DAVINCI_CIO		2598
++smartmeter_dl		MACH_SMARTMETER_DL	SMARTMETER_DL		2599
++wzl6410			MACH_WZL6410		WZL6410			2600
++wzl6410m		MACH_WZL6410M		WZL6410M		2601
++wzl6410f		MACH_WZL6410F		WZL6410F		2602
++wzl6410i		MACH_WZL6410I		WZL6410I		2603
++spacecom1		MACH_SPACECOM1		SPACECOM1		2604
++pingu920		MACH_PINGU920		PINGU920		2605
++bravoc			MACH_BRAVOC		BRAVOC			2606
++mydev			MACH_CYBO2440		CYBO2440		2607
++vdssw			MACH_VDSSW		VDSSW			2608
++romulus			MACH_ROMULUS		ROMULUS			2609
++omap_magic		MACH_OMAP_MAGIC		OMAP_MAGIC		2610
++eltd100			MACH_ELTD100		ELTD100			2611
++capc7117		MACH_CAPC7117		CAPC7117		2612
++swan			MACH_SWAN		SWAN			2613
++veu			MACH_VEU		VEU			2614
++rm2			MACH_RM2		RM2			2615
++tt2100			MACH_TT2100		TT2100			2616
++venice			MACH_VENICE		VENICE			2617
++pc7323			MACH_PC7323		PC7323			2618
++masp			MACH_MASP		MASP			2619
++fujitsu_tvstbsoc0	MACH_FUJITSU_TVSTBSOC	FUJITSU_TVSTBSOC	2620
++fujitsu_tvstbsoc1	MACH_FUJITSU_TVSTBSOC1	FUJITSU_TVSTBSOC1	2621
++lexikon			MACH_LEXIKON		LEXIKON			2622
++mini2440v2		MACH_MINI2440V2		MINI2440V2		2623
++icontrol		MACH_ICONTROL		ICONTROL		2624
++gplugd			MACH_SHEEVAD		SHEEVAD			2625
++qsd8x50a_st1_1		MACH_QSD8X50A_ST1_1	QSD8X50A_ST1_1		2626
++qsd8x50a_st1_5		MACH_QSD8X50A_ST1_5	QSD8X50A_ST1_5		2627
++bee			MACH_BEE		BEE			2628
++mx23evk			MACH_MX23EVK		MX23EVK			2629
++ap4evb			MACH_AP4EVB		AP4EVB			2630
++stockholm		MACH_STOCKHOLM		STOCKHOLM		2631
++lpc_h3131		MACH_LPC_H3131		LPC_H3131		2632
++stingray		MACH_STINGRAY		STINGRAY		2633
++kraken			MACH_KRAKEN		KRAKEN			2634
++gw2388			MACH_GW2388		GW2388			2635
++jadecpu			MACH_JADECPU		JADECPU			2636
++carlisle		MACH_CARLISLE		CARLISLE		2637
++lux_sf9			MACH_LUX_SF9		LUX_SF9			2638
++nemid_tb		MACH_NEMID_TB		NEMID_TB		2639
++terrier			MACH_TERRIER		TERRIER			2640
++turbot			MACH_TURBOT		TURBOT			2641
++sanddab			MACH_SANDDAB		SANDDAB			2642
++mx35_cicada		MACH_MX35_CICADA	MX35_CICADA		2643
++ghi2703d		MACH_GHI2703D		GHI2703D		2644
++lux_sfx9		MACH_LUX_SFX9		LUX_SFX9		2645
++lux_sf9g		MACH_LUX_SF9G		LUX_SF9G		2646
++lux_edk9		MACH_LUX_EDK9		LUX_EDK9		2647
++hw90240			MACH_HW90240		HW90240			2648
++dm365_leopard		MACH_DM365_LEOPARD	DM365_LEOPARD		2649
++mityomapl138		MACH_MITYOMAPL138	MITYOMAPL138		2650
++scat110			MACH_SCAT110		SCAT110			2651
++acer_a1			MACH_ACER_A1		ACER_A1			2652
++cmcontrol		MACH_CMCONTROL		CMCONTROL		2653
++pelco_lamar		MACH_PELCO_LAMAR	PELCO_LAMAR		2654
++rfp43			MACH_RFP43		RFP43			2655
++sk86r0301		MACH_SK86R0301		SK86R0301		2656
++ctpxa			MACH_CTPXA		CTPXA			2657
++epb_arm9_a		MACH_EPB_ARM9_A		EPB_ARM9_A		2658
++guruplug		MACH_GURUPLUG		GURUPLUG		2659
++spear310		MACH_SPEAR310		SPEAR310		2660
++spear320		MACH_SPEAR320		SPEAR320		2661
++robotx			MACH_ROBOTX		ROBOTX			2662
++lsxhl			MACH_LSXHL		LSXHL			2663
++smartlite		MACH_SMARTLITE		SMARTLITE		2664
++cws2			MACH_CWS2		CWS2			2665
++m619			MACH_M619		M619			2666
++smartview		MACH_SMARTVIEW		SMARTVIEW		2667
++lsa_salsa		MACH_LSA_SALSA		LSA_SALSA		2668
++kizbox			MACH_KIZBOX		KIZBOX			2669
++htccharmer		MACH_HTCCHARMER		HTCCHARMER		2670
++guf_neso_lt		MACH_GUF_NESO_LT	GUF_NESO_LT		2671
++pm9g45			MACH_PM9G45		PM9G45			2672
++htcpanther		MACH_HTCPANTHER		HTCPANTHER		2673
++htcpanther_cdma		MACH_HTCPANTHER_CDMA	HTCPANTHER_CDMA		2674
++reb01			MACH_REB01		REB01			2675
++aquila			MACH_AQUILA		AQUILA			2676
++spark_sls_hw2		MACH_SPARK_SLS_HW2	SPARK_SLS_HW2		2677
++sheeva_esata		MACH_ESATA_SHEEVAPLUG	ESATA_SHEEVAPLUG	2678
++msm7x30_surf		MACH_MSM7X30_SURF	MSM7X30_SURF		2679
++micro2440		MACH_MICRO2440		MICRO2440		2680
++am2440			MACH_AM2440		AM2440			2681
++tq2440			MACH_TQ2440		TQ2440			2682
++lpc2478oem		MACH_LPC2478OEM		LPC2478OEM		2683
++ak880x			MACH_AK880X		AK880X			2684
++cobra3530		MACH_COBRA3530		COBRA3530		2685
++pmppb			MACH_PMPPB		PMPPB			2686
++u6715			MACH_U6715		U6715			2687
++axar1500_sender		MACH_AXAR1500_SENDER	AXAR1500_SENDER		2688
++g30_dvb			MACH_G30_DVB		G30_DVB			2689
++vc088x			MACH_VC088X		VC088X			2690
++mioa702			MACH_MIOA702		MIOA702			2691
++hpmin			MACH_HPMIN		HPMIN			2692
++ak880xak		MACH_AK880XAK		AK880XAK		2693
++arm926tomap850		MACH_ARM926TOMAP850	ARM926TOMAP850		2694
++lkevm			MACH_LKEVM		LKEVM			2695
++mw6410			MACH_MW6410		MW6410			2696
++terastation_wxl		MACH_TERASTATION_WXL	TERASTATION_WXL		2697
++cpu8000e		MACH_CPU8000E		CPU8000E		2698
++catania_s		MACH_CATANIA		CATANIA			2699
++tokyo			MACH_TOKYO		TOKYO			2700
++msm7201a_surf		MACH_MSM7201A_SURF	MSM7201A_SURF		2701
++msm7201a_ffa		MACH_MSM7201A_FFA	MSM7201A_FFA		2702
++msm7x25_surf		MACH_MSM7X25_SURF	MSM7X25_SURF		2703
++msm7x25_ffa		MACH_MSM7X25_FFA	MSM7X25_FFA		2704
++msm7x27_surf		MACH_MSM7X27_SURF	MSM7X27_SURF		2705
++msm7x27_ffa		MACH_MSM7X27_FFA	MSM7X27_FFA		2706
++msm7x30_ffa		MACH_MSM7X30_FFA	MSM7X30_FFA		2707
++qsd8x50_surf		MACH_QSD8X50_SURF	QSD8X50_SURF		2708
++qsd8x50_comet		MACH_QSD8X50_COMET	QSD8X50_COMET		2709
++qsd8x50_ffa		MACH_QSD8X50_FFA	QSD8X50_FFA		2710
++qsd8x50a_surf		MACH_QSD8X50A_SURF	QSD8X50A_SURF		2711
++qsd8x50a_ffa		MACH_QSD8X50A_FFA	QSD8X50A_FFA		2712
++adx_xgcp10		MACH_ADX_XGCP10		ADX_XGCP10		2713
++mcgwumts2a		MACH_MCGWUMTS2A		MCGWUMTS2A		2714
++mobikt			MACH_MOBIKT		MOBIKT			2715
++mx53_evk		MACH_MX53_EVK		MX53_EVK		2716
++igep0030		MACH_IGEP0030		IGEP0030		2717
++axell_h40_h50_ctrl	MACH_AXELL_H40_H50_CTRL	AXELL_H40_H50_CTRL	2718
++dtcommod		MACH_DTCOMMOD		DTCOMMOD		2719
++gould			MACH_GOULD		GOULD			2720
++siberia			MACH_SIBERIA		SIBERIA			2721
++sbc3530			MACH_SBC3530		SBC3530			2722
++qarm			MACH_QARM		QARM			2723
++mips			MACH_MIPS		MIPS			2724
++mx27grb			MACH_MX27GRB		MX27GRB			2725
++sbc8100			MACH_SBC8100		SBC8100			2726
++saarb			MACH_SAARB		SAARB			2727
++omap3mini		MACH_OMAP3MINI		OMAP3MINI		2728
++cnmbook7se		MACH_CNMBOOK7SE		CNMBOOK7SE		2729
++catan			MACH_CATAN		CATAN			2730
++harmony			MACH_HARMONY		HARMONY			2731
++tonga			MACH_TONGA		TONGA			2732
++cybook_orizon		MACH_CYBOOK_ORIZON	CYBOOK_ORIZON		2733
++htcrhodiumcdma		MACH_HTCRHODIUMCDMA	HTCRHODIUMCDMA		2734
++epc_g45			MACH_EPC_G45		EPC_G45			2735
++epc_lpc3250		MACH_EPC_LPC3250	EPC_LPC3250		2736
++mxc91341evb		MACH_MXC91341EVB	MXC91341EVB		2737
++rtw1000			MACH_RTW1000		RTW1000			2738
++bobcat			MACH_BOBCAT		BOBCAT			2739
++trizeps6		MACH_TRIZEPS6		TRIZEPS6		2740
++msm7x30_fluid		MACH_MSM7X30_FLUID	MSM7X30_FLUID		2741
++nedap9263		MACH_NEDAP9263		NEDAP9263		2742
++netgear_ms2110		MACH_NETGEAR_MS2110	NETGEAR_MS2110		2743
++bmx			MACH_BMX		BMX			2744
++netstream		MACH_NETSTREAM		NETSTREAM		2745
++vpnext_rcu		MACH_VPNEXT_RCU		VPNEXT_RCU		2746
++vpnext_mpu		MACH_VPNEXT_MPU		VPNEXT_MPU		2747
++bcmring_tablet_v1	MACH_BCMRING_TABLET_V1	BCMRING_TABLET_V1	2748
++sgarm10			MACH_SGARM10		SGARM10			2749
++cm_t3517		MACH_CM_T3517		CM_T3517		2750
++omap3_cps		MACH_OMAP3_CPS		OMAP3_CPS		2751
++axar1500_receiver	MACH_AXAR1500_RECEIVER	AXAR1500_RECEIVER	2752
++wbd222			MACH_WBD222		WBD222			2753
++mt65xx			MACH_MT65XX		MT65XX			2754
++msm8x60_surf		MACH_MSM8X60_SURF	MSM8X60_SURF		2755
++msm8x60_sim		MACH_MSM8X60_SIM	MSM8X60_SIM		2756
++vmc300			MACH_VMC300		VMC300			2757
++tcc8000_sdk		MACH_TCC8000_SDK	TCC8000_SDK		2758
++nanos			MACH_NANOS		NANOS			2759
++stamp9g10		MACH_STAMP9G10		STAMP9G10		2760
++stamp9g45		MACH_STAMP9G45		STAMP9G45		2761
++h6053			MACH_H6053		H6053			2762
++smint01			MACH_SMINT01		SMINT01			2763
++prtlvt2			MACH_PRTLVT2		PRTLVT2			2764
++ap420			MACH_AP420		AP420			2765
++htcclio			MACH_HTCSHIFT		HTCSHIFT		2766
++davinci_dm365_fc	MACH_DAVINCI_DM365_FC	DAVINCI_DM365_FC	2767
++msm8x55_surf		MACH_MSM8X55_SURF	MSM8X55_SURF		2768
++msm8x55_ffa		MACH_MSM8X55_FFA	MSM8X55_FFA		2769
++esl_vamana		MACH_ESL_VAMANA		ESL_VAMANA		2770
++sbc35			MACH_SBC35		SBC35			2771
++mpx6446			MACH_MPX6446		MPX6446			2772
++oreo_controller		MACH_OREO_CONTROLLER	OREO_CONTROLLER		2773
++kopin_models		MACH_KOPIN_MODELS	KOPIN_MODELS		2774
++ttc_vision2		MACH_TTC_VISION2	TTC_VISION2		2775
++cns3420vb		MACH_CNS3420VB		CNS3420VB		2776
++lpc_evo			MACH_LPC2		LPC2			2777
++olympus			MACH_OLYMPUS		OLYMPUS			2778
++vortex			MACH_VORTEX		VORTEX			2779
++s5pc200			MACH_S5PC200		S5PC200			2780
++ecucore_9263		MACH_ECUCORE_9263	ECUCORE_9263		2781
++smdkc200		MACH_SMDKC200		SMDKC200		2782
++emsiso_sx27		MACH_EMSISO_SX27	EMSISO_SX27		2783
++apx_som9g45_ek		MACH_APX_SOM9G45_EK	APX_SOM9G45_EK		2784
++songshan		MACH_SONGSHAN		SONGSHAN		2785
++tianshan		MACH_TIANSHAN		TIANSHAN		2786
++vpx500			MACH_VPX500		VPX500			2787
++am3517sam		MACH_AM3517SAM		AM3517SAM		2788
++skat91_sim508		MACH_SKAT91_SIM508	SKAT91_SIM508		2789
++skat91_s3e		MACH_SKAT91_S3E		SKAT91_S3E		2790
++omap4_panda		MACH_OMAP4_PANDA	OMAP4_PANDA		2791
++df7220			MACH_DF7220		DF7220			2792
++nemini			MACH_NEMINI		NEMINI			2793
++t8200			MACH_T8200		T8200			2794
++apf51			MACH_APF51		APF51			2795
++dr_rc_unit		MACH_DR_RC_UNIT		DR_RC_UNIT		2796
++bordeaux		MACH_BORDEAUX		BORDEAUX		2797
++catania_b		MACH_CATANIA_B		CATANIA_B		2798
++mx51_ocean		MACH_MX51_OCEAN		MX51_OCEAN		2799
++ti8168evm		MACH_TI8168EVM		TI8168EVM		2800
++neocoreomap		MACH_NEOCOREOMAP	NEOCOREOMAP		2801
++withings_wbp		MACH_WITHINGS_WBP	WITHINGS_WBP		2802
++dbps			MACH_DBPS		DBPS			2803
++at91sam9261		MACH_SBC9261		SBC9261			2804
++pcbfp0001		MACH_PCBFP0001		PCBFP0001		2805
++speedy			MACH_SPEEDY		SPEEDY			2806
++chrysaor		MACH_CHRYSAOR		CHRYSAOR		2807
++tango			MACH_TANGO		TANGO			2808
++synology_dsx11		MACH_SYNOLOGY_DSX11	SYNOLOGY_DSX11		2809
++hanlin_v3ext		MACH_HANLIN_V3EXT	HANLIN_V3EXT		2810
++hanlin_v5		MACH_HANLIN_V5		HANLIN_V5		2811
++hanlin_v3plus		MACH_HANLIN_V3PLUS	HANLIN_V3PLUS		2812
++iriver_story		MACH_IRIVER_STORY	IRIVER_STORY		2813
++irex_iliad		MACH_IREX_ILIAD		IREX_ILIAD		2814
++irex_dr1000		MACH_IREX_DR1000	IREX_DR1000		2815
++teton_bga		MACH_TETON_BGA		TETON_BGA		2816
++snapper9g45		MACH_SNAPPER9G45	SNAPPER9G45		2817
++tam3517			MACH_TAM3517		TAM3517			2818
++pdc100			MACH_PDC100		PDC100			2819
++eukrea_cpuimx25sd	MACH_EUKREA_CPUIMX25	EUKREA_CPUIMX25		2820
++eukrea_cpuimx35sd	MACH_EUKREA_CPUIMX35	EUKREA_CPUIMX35		2821
++eukrea_cpuimx51sd	MACH_EUKREA_CPUIMX51SD	EUKREA_CPUIMX51SD	2822
++eukrea_cpuimx51		MACH_EUKREA_CPUIMX51	EUKREA_CPUIMX51		2823
++p565			MACH_P565		P565			2824
++acer_a4			MACH_ACER_A4		ACER_A4			2825
++davinci_dm368_bip	MACH_DAVINCI_DM368_BIP	DAVINCI_DM368_BIP	2826
++eshare			MACH_ESHARE		ESHARE			2827
++omapl138_europa		MACH_HW_OMAPL138_EUROPA	HW_OMAPL138_EUROPA	2828
++wlbargn			MACH_WLBARGN		WLBARGN			2829
++bm170			MACH_BM170		BM170			2830
++netspace_mini_v2	MACH_NETSPACE_MINI_V2	NETSPACE_MINI_V2	2831
++netspace_plug_v2	MACH_NETSPACE_PLUG_V2	NETSPACE_PLUG_V2	2832
++siemens_l1		MACH_SIEMENS_L1		SIEMENS_L1		2833
++elv_lcu1		MACH_ELV_LCU1		ELV_LCU1		2834
++mcu1			MACH_MCU1		MCU1			2835
++omap3_tao3530		MACH_OMAP3_TAO3530	OMAP3_TAO3530		2836
++omap3_pcutouch		MACH_OMAP3_PCUTOUCH	OMAP3_PCUTOUCH		2837
++smdkc210		MACH_SMDKC210		SMDKC210		2838
++omap3_braillo		MACH_OMAP3_BRAILLO	OMAP3_BRAILLO		2839
++spyplug			MACH_SPYPLUG		SPYPLUG			2840
++ginger			MACH_GINGER		GINGER			2841
++tny_t3530		MACH_TNY_T3530		TNY_T3530		2842
++pca102			MACH_PCA102		PCA102			2843
++spade			MACH_SPADE		SPADE			2844
++mxc25_topaz		MACH_MXC25_TOPAZ	MXC25_TOPAZ		2845
++t5325			MACH_T5325		T5325			2846
++gw2361			MACH_GW2361		GW2361			2847
++elog			MACH_ELOG		ELOG			2848
++income			MACH_INCOME		INCOME			2849
++bcm589x			MACH_BCM589X		BCM589X			2850
++etna			MACH_ETNA		ETNA			2851
++hawks			MACH_HAWKS		HAWKS			2852
++meson			MACH_MESON		MESON			2853
++xsbase255		MACH_XSBASE255		XSBASE255		2854
++pvm2030			MACH_PVM2030		PVM2030			2855
++mioa502			MACH_MIOA502		MIOA502			2856
++vvbox_sdorig2		MACH_VVBOX_SDORIG2	VVBOX_SDORIG2		2857
++vvbox_sdlite2		MACH_VVBOX_SDLITE2	VVBOX_SDLITE2		2858
++vvbox_sdpro4		MACH_VVBOX_SDPRO4	VVBOX_SDPRO4		2859
++htc_spv_m700		MACH_HTC_SPV_M700	HTC_SPV_M700		2860
++mx257sx			MACH_MX257SX		MX257SX			2861
++goni			MACH_GONI		GONI			2862
++msm8x55_svlte_ffa	MACH_MSM8X55_SVLTE_FFA	MSM8X55_SVLTE_FFA	2863
++msm8x55_svlte_surf	MACH_MSM8X55_SVLTE_SURF	MSM8X55_SVLTE_SURF	2864
++quickstep		MACH_QUICKSTEP		QUICKSTEP		2865
++dmw96			MACH_DMW96		DMW96			2866
++hammerhead		MACH_HAMMERHEAD		HAMMERHEAD		2867
++trident			MACH_TRIDENT		TRIDENT			2868
++lightning		MACH_LIGHTNING		LIGHTNING		2869
++iconnect		MACH_ICONNECT		ICONNECT		2870
++autobot			MACH_AUTOBOT		AUTOBOT			2871
++coconut			MACH_COCONUT		COCONUT			2872
++durian			MACH_DURIAN		DURIAN			2873
++cayenne			MACH_CAYENNE		CAYENNE			2874
++fuji			MACH_FUJI		FUJI			2875
++synology_6282		MACH_SYNOLOGY_6282	SYNOLOGY_6282		2876
++em1sy			MACH_EM1SY		EM1SY			2877
++m502			MACH_M502		M502			2878
++matrix518		MACH_MATRIX518		MATRIX518		2879
++tiny_gurnard		MACH_TINY_GURNARD	TINY_GURNARD		2880
++spear1310		MACH_SPEAR1310		SPEAR1310		2881
++bv07			MACH_BV07		BV07			2882
++mxt_td61		MACH_MXT_TD61		MXT_TD61		2883
++openrd_ultimate		MACH_OPENRD_ULTIMATE	OPENRD_ULTIMATE		2884
++devixp			MACH_DEVIXP		DEVIXP			2885
++miccpt			MACH_MICCPT		MICCPT			2886
++mic256			MACH_MIC256		MIC256			2887
++as1167			MACH_AS1167		AS1167			2888
++omap3_ibiza		MACH_OMAP3_IBIZA	OMAP3_IBIZA		2889
++u5500			MACH_U5500		U5500			2890
++davinci_picto		MACH_DAVINCI_PICTO	DAVINCI_PICTO		2891
++mecha			MACH_MECHA		MECHA			2892
++bubba3			MACH_BUBBA3		BUBBA3			2893
++pupitre			MACH_PUPITRE		PUPITRE			2894
++tegra_harmony		MACH_TEGRA_HARMONY	TEGRA_HARMONY		2895
++tegra_vogue		MACH_TEGRA_VOGUE	TEGRA_VOGUE		2896
++tegra_e1165		MACH_TEGRA_E1165	TEGRA_E1165		2897
++simplenet		MACH_SIMPLENET		SIMPLENET		2898
++ec4350tbm		MACH_EC4350TBM		EC4350TBM		2899
++pec_tc			MACH_PEC_TC		PEC_TC			2900
++pec_hc2			MACH_PEC_HC2		PEC_HC2			2901
++esl_mobilis_a		MACH_ESL_MOBILIS_A	ESL_MOBILIS_A		2902
++esl_mobilis_b		MACH_ESL_MOBILIS_B	ESL_MOBILIS_B		2903
++esl_wave_a		MACH_ESL_WAVE_A		ESL_WAVE_A		2904
++esl_wave_b		MACH_ESL_WAVE_B		ESL_WAVE_B		2905
++unisense_mmm		MACH_UNISENSE_MMM	UNISENSE_MMM		2906
++blueshark		MACH_BLUESHARK		BLUESHARK		2907
++e10			MACH_E10		E10			2908
++app3k_robin		MACH_APP3K_ROBIN	APP3K_ROBIN		2909
++pov15hd			MACH_POV15HD		POV15HD			2910
++stella			MACH_STELLA		STELLA			2911
++htc_iolite		MACH_MACH_HTC_IOLITE	MACH_HTC_IOLITE		2912
++linkstation_lschl	MACH_LINKSTATION_LSCHL	LINKSTATION_LSCHL	2913
++netwalker		MACH_NETWALKER		NETWALKER		2914
++acsx106			MACH_ACSX106		ACSX106			2915
++atlas5_c1		MACH_ATLAS5_C1		ATLAS5_C1		2916
++nsb3ast			MACH_NSB3AST		NSB3AST			2917
++gnet_slc		MACH_GNET_SLC		GNET_SLC		2918
++af4000			MACH_AF4000		AF4000			2919
++ark9431			MACH_ARK9431		ARK9431			2920
++fs_s5pc100		MACH_FS_S5PC100		FS_S5PC100		2921
++omap3505nova8		MACH_OMAP3505NOVA8	OMAP3505NOVA8		2922
++omap3621_edp1		MACH_OMAP3621_EDP1	OMAP3621_EDP1		2923
++oratisaes		MACH_ORATISAES		ORATISAES		2924
++smdkv310		MACH_SMDKV310		SMDKV310		2925
++siemens_l0		MACH_SIEMENS_L0		SIEMENS_L0		2926
++ventana			MACH_VENTANA		VENTANA			2927
++wm8505_7in_netbook	MACH_WM8505_7IN_NETBOOK	WM8505_7IN_NETBOOK	2928
++ec4350sdb		MACH_EC4350SDB		EC4350SDB		2929
++mimas			MACH_MIMAS		MIMAS			2930
++titan			MACH_TITAN		TITAN			2931
++craneboard		MACH_CRANEBOARD		CRANEBOARD		2932
++es2440			MACH_ES2440		ES2440			2933
++najay_a9263		MACH_NAJAY_A9263	NAJAY_A9263		2934
++htctornado		MACH_HTCTORNADO		HTCTORNADO		2935
++dimm_mx257		MACH_DIMM_MX257		DIMM_MX257		2936
++jigen301		MACH_JIGEN		JIGEN			2937
++smdk6450		MACH_SMDK6450		SMDK6450		2938
++meno_qng		MACH_MENO_QNG		MENO_QNG		2939
++ns2416			MACH_NS2416		NS2416			2940
++rpc353			MACH_RPC353		RPC353			2941
++tq6410			MACH_TQ6410		TQ6410			2942
++sky6410			MACH_SKY6410		SKY6410			2943
++dynasty			MACH_DYNASTY		DYNASTY			2944
++vivo			MACH_VIVO		VIVO			2945
++bury_bl7582		MACH_BURY_BL7582	BURY_BL7582		2946
++bury_bps5270		MACH_BURY_BPS5270	BURY_BPS5270		2947
++basi			MACH_BASI		BASI			2948
++tn200			MACH_TN200		TN200			2949
++c2mmi			MACH_C2MMI		C2MMI			2950
++meson_6236m		MACH_MESON_6236M	MESON_6236M		2951
++meson_8626m		MACH_MESON_8626M	MESON_8626M		2952
++tube			MACH_TUBE		TUBE			2953
++messina			MACH_MESSINA		MESSINA			2954
++mx50_arm2		MACH_MX50_ARM2		MX50_ARM2		2955
++cetus9263		MACH_CETUS9263		CETUS9263		2956
++brownstone		MACH_BROWNSTONE		BROWNSTONE		2957
++vmx25			MACH_VMX25		VMX25			2958
++vmx51			MACH_VMX51		VMX51			2959
++abacus			MACH_ABACUS		ABACUS			2960
++cm4745			MACH_CM4745		CM4745			2961
++oratislink		MACH_ORATISLINK		ORATISLINK		2962
++davinci_dm365_dvr	MACH_DAVINCI_DM365_DVR	DAVINCI_DM365_DVR	2963
++netviz			MACH_NETVIZ		NETVIZ			2964
++flexibity		MACH_FLEXIBITY		FLEXIBITY		2965
++wlan_computer		MACH_WLAN_COMPUTER	WLAN_COMPUTER		2966
++lpc24xx			MACH_LPC24XX		LPC24XX			2967
++spica			MACH_SPICA		SPICA			2968
++gpsdisplay		MACH_GPSDISPLAY		GPSDISPLAY		2969
++bipnet			MACH_BIPNET		BIPNET			2970
++overo_ctu_inertial	MACH_OVERO_CTU_INERTIAL	OVERO_CTU_INERTIAL	2971
++davinci_dm355_mmm	MACH_DAVINCI_DM355_MMM	DAVINCI_DM355_MMM	2972
++pc9260_v2		MACH_PC9260_V2		PC9260_V2		2973
++ptx7545			MACH_PTX7545		PTX7545			2974
++tm_efdc			MACH_TM_EFDC		TM_EFDC			2975
++remove_me		MACH_WALDO1		WALDO1			2976
++omap3_waldo1		MACH_OMAP3_WALDO1	OMAP3_WALDO1		2977
++flyer			MACH_FLYER		FLYER			2978
++tornado3240		MACH_TORNADO3240	TORNADO3240		2979
++soli_01			MACH_SOLI_01		SOLI_01			2980
++omapl138_europalc	MACH_OMAPL138_EUROPALC	OMAPL138_EUROPALC	2981
++helios_v1		MACH_HELIOS_V1		HELIOS_V1		2982
++netspace_lite_v2	MACH_NETSPACE_LITE_V2	NETSPACE_LITE_V2	2983
++ssc			MACH_SSC		SSC			2984
++premierwave_en		MACH_PREMIERWAVE_EN	PREMIERWAVE_EN		2985
++wasabi			MACH_WASABI		WASABI			2986
++vivo_w			MACH_VIVOW		VIVOW			2987
++mx50_rdp		MACH_MX50_RDP		MX50_RDP		2988
++universal_c210		MACH_UNIVERSAL_C210	UNIVERSAL_C210		2989
++real6410		MACH_REAL6410		REAL6410		2990
++spx_sakura		MACH_SPX_SAKURA		SPX_SAKURA		2991
++ij3k_2440		MACH_IJ3K_2440		IJ3K_2440		2992
++omap3_bc10		MACH_OMAP3_BC10		OMAP3_BC10		2993
++thebe			MACH_THEBE		THEBE			2994
++rv082			MACH_RV082		RV082			2995
++armlguest		MACH_ARMLGUEST		ARMLGUEST		2996
++tjinc1000		MACH_TJINC1000		TJINC1000		2997
++dockstar		MACH_DOCKSTAR		DOCKSTAR		2998
++ax8008			MACH_AX8008		AX8008			2999
++gnet_sgce		MACH_GNET_SGCE		GNET_SGCE		3000
++pxwnas_500_1000		MACH_PXWNAS_500_1000	PXWNAS_500_1000		3001
++ea20			MACH_EA20		EA20			3002
++awm2			MACH_AWM2		AWM2			3003
++ti8148evm		MACH_TI8148EVM		TI8148EVM		3004
++tegra_seaboard		MACH_TEGRA_SEABOARD	TEGRA_SEABOARD		3005
++linkstation_chlv2	MACH_LINKSTATION_CHLV2	LINKSTATION_CHLV2	3006
++tera_pro2_rack		MACH_TERA_PRO2_RACK	TERA_PRO2_RACK		3007
++rubys			MACH_RUBYS		RUBYS			3008
++aquarius		MACH_AQUARIUS		AQUARIUS		3009
++mx53_ard		MACH_MX53_ARD		MX53_ARD		3010
++mx53_smd		MACH_MX53_SMD		MX53_SMD		3011
++lswxl			MACH_LSWXL		LSWXL			3012
++dove_avng_v3		MACH_DOVE_AVNG_V3	DOVE_AVNG_V3		3013
++sdi_ess_9263		MACH_SDI_ESS_9263	SDI_ESS_9263		3014
++jocpu550		MACH_JOCPU550		JOCPU550		3015
++msm8x60_rumi3		MACH_MSM8X60_RUMI3	MSM8X60_RUMI3		3016
++msm8x60_ffa		MACH_MSM8X60_FFA	MSM8X60_FFA		3017
++yanomami		MACH_YANOMAMI		YANOMAMI		3018
++gta04			MACH_GTA04		GTA04			3019
++cm_a510			MACH_CM_A510		CM_A510			3020
++omap3_rfs200		MACH_OMAP3_RFS200	OMAP3_RFS200		3021
++kx33xx			MACH_KX33XX		KX33XX			3022
++ptx7510			MACH_PTX7510		PTX7510			3023
++top9000			MACH_TOP9000		TOP9000			3024
++teenote			MACH_TEENOTE		TEENOTE			3025
++ts3			MACH_TS3		TS3			3026
++a0			MACH_A0			A0			3027
++fsm9xxx_surf		MACH_FSM9XXX_SURF	FSM9XXX_SURF		3028
++fsm9xxx_ffa		MACH_FSM9XXX_FFA	FSM9XXX_FFA		3029
++frrhwcdma60w		MACH_FRRHWCDMA60W	FRRHWCDMA60W		3030
++remus			MACH_REMUS		REMUS			3031
++at91cap7xdk		MACH_AT91CAP7XDK	AT91CAP7XDK		3032
++at91cap7stk		MACH_AT91CAP7STK	AT91CAP7STK		3033
++kt_sbc_sam9_1		MACH_KT_SBC_SAM9_1	KT_SBC_SAM9_1		3034
++at91sam9263router	MACH_ORATISROUTER	ORATISROUTER		3035
++armada_xp_db		MACH_ARMADA_XP_DB	ARMADA_XP_DB		3036
++spdm			MACH_SPDM		SPDM			3037
++gtib			MACH_GTIB		GTIB			3038
++dgm3240			MACH_DGM3240		DGM3240			3039
++iv_atlas_i_lpe		MACH_ATLAS_I_LPE	ATLAS_I_LPE		3040
++htcmega			MACH_HTCMEGA		HTCMEGA			3041
++tricorder		MACH_TRICORDER		TRICORDER		3042
++tx28			MACH_TX28		TX28			3043
++bstbrd			MACH_BSTBRD		BSTBRD			3044
++pwb3090			MACH_PWB3090		PWB3090			3045
++idea6410		MACH_IDEA6410		IDEA6410		3046
++qbc9263			MACH_QBC9263		QBC9263			3047
++borabora		MACH_BORABORA		BORABORA		3048
++valdez			MACH_VALDEZ		VALDEZ			3049
++ls9g20			MACH_LS9G20		LS9G20			3050
++mios_v1			MACH_MIOS_V1		MIOS_V1			3051
++s5pc110_crespo		MACH_S5PC110_CRESPO	S5PC110_CRESPO		3052
++controltek9g20		MACH_CONTROLTEK9G20	CONTROLTEK9G20		3053
++tin307			MACH_TIN307		TIN307			3054
++tin510			MACH_TIN510		TIN510			3055
++ep3505			MACH_EP3517		EP3517			3056
++bluecheese		MACH_BLUECHEESE		BLUECHEESE		3057
++tem3x30			MACH_TEM3X30		TEM3X30			3058
++harvest_desoto		MACH_HARVEST_DESOTO	HARVEST_DESOTO		3059
++msm8x60_qrdc		MACH_MSM8X60_QRDC	MSM8X60_QRDC		3060
++spear900		MACH_SPEAR900		SPEAR900		3061
++pcontrol_g20		MACH_PCONTROL_G20	PCONTROL_G20		3062
++rdstor			MACH_RDSTOR		RDSTOR			3063
++usdloader		MACH_USDLOADER		USDLOADER		3064
++tsoploader		MACH_TSOPLOADER		TSOPLOADER		3065
++kronos			MACH_KRONOS		KRONOS			3066
++ffcore			MACH_FFCORE		FFCORE			3067
++mone			MACH_MONE		MONE			3068
++unit2s			MACH_UNIT2S		UNIT2S			3069
++acer_a5			MACH_ACER_A5		ACER_A5			3070
++etherpro_isp		MACH_ETHERPRO_ISP	ETHERPRO_ISP		3071
++stretchs7000		MACH_STRETCHS7000	STRETCHS7000		3072
++p87_smartsim		MACH_P87_SMARTSIM	P87_SMARTSIM		3073
++tulip			MACH_TULIP		TULIP			3074
++sunflower		MACH_SUNFLOWER		SUNFLOWER		3075
++rib			MACH_RIB		RIB			3076
++clod			MACH_CLOD		CLOD			3077
++rump			MACH_RUMP		RUMP			3078
++tenderloin		MACH_TENDERLOIN		TENDERLOIN		3079
++shortloin		MACH_SHORTLOIN		SHORTLOIN		3080
++roml1			MACH_CRESPO		CRESPO			3081
++antares			MACH_ANTARES		ANTARES			3082
++wb40n			MACH_WB40N		WB40N			3083
++herring			MACH_HERRING		HERRING			3084
++naxy400			MACH_NAXY400		NAXY400			3085
++naxy1200		MACH_NAXY1200		NAXY1200		3086
++vpr200			MACH_VPR200		VPR200			3087
++bug20			MACH_BUG20		BUG20			3088
++goflexnet		MACH_GOFLEXNET		GOFLEXNET		3089
++torbreck		MACH_TORBRECK		TORBRECK		3090
++saarb_mg1		MACH_SAARB_MG1		SAARB_MG1		3091
++callisto		MACH_CALLISTO		CALLISTO		3092
++multhsu			MACH_MULTHSU		MULTHSU			3093
++saluda			MACH_SALUDA		SALUDA			3094
++pemp_omap3_apollo	MACH_PEMP_OMAP3_APOLLO	PEMP_OMAP3_APOLLO	3095
++vc0718			MACH_VC0718		VC0718			3096
++mvblx			MACH_MVBLX		MVBLX			3097
++inhand_apeiron		MACH_INHAND_APEIRON	INHAND_APEIRON		3098
++inhand_fury		MACH_INHAND_FURY	INHAND_FURY		3099
++inhand_siren		MACH_INHAND_SIREN	INHAND_SIREN		3100
++hdnvp			MACH_HDNVP		HDNVP			3101
++softwinner		MACH_SOFTWINNER		SOFTWINNER		3102
++prima2_evb		MACH_PRIMA2_EVB		PRIMA2_EVB		3103
++nas6210			MACH_NAS6210		NAS6210			3104
++unisdev			MACH_UNISDEV		UNISDEV			3105
++sbca11			MACH_SBCA11		SBCA11			3106
++saga			MACH_SAGA		SAGA			3107
++ns_k330			MACH_NS_K330		NS_K330			3108
++tanna			MACH_TANNA		TANNA			3109
++imate8502		MACH_IMATE8502		IMATE8502		3110
++aspen			MACH_ASPEN		ASPEN			3111
++daintree_cwac		MACH_DAINTREE_CWAC	DAINTREE_CWAC		3112
++zmx25			MACH_ZMX25		ZMX25			3113
++maple1			MACH_MAPLE1		MAPLE1			3114
++qsd8x72_surf		MACH_QSD8X72_SURF	QSD8X72_SURF		3115
++qsd8x72_ffa		MACH_QSD8X72_FFA	QSD8X72_FFA		3116
++abilene			MACH_ABILENE		ABILENE			3117
++eigen_ttr		MACH_EIGEN_TTR		EIGEN_TTR		3118
++iomega_ix2_200		MACH_IOMEGA_IX2_200	IOMEGA_IX2_200		3119
++coretec_vcx7400		MACH_CORETEC_VCX7400	CORETEC_VCX7400		3120
++santiago		MACH_SANTIAGO		SANTIAGO		3121
++mx257sol		MACH_MX257SOL		MX257SOL		3122
++strasbourg		MACH_STRASBOURG		STRASBOURG		3123
++msm8x60_fluid		MACH_MSM8X60_FLUID	MSM8X60_FLUID		3124
++smartqv5		MACH_SMARTQV5		SMARTQV5		3125
++smartqv3		MACH_SMARTQV3		SMARTQV3		3126
++smartqv7		MACH_SMARTQV7		SMARTQV7		3127
++tegra_paz00		MACH_PAZ00		PAZ00			3128
++acmenetusfoxg20		MACH_ACMENETUSFOXG20	ACMENETUSFOXG20		3129
++htc_willow		MACH_HTCWILLOW		HTCWILLOW		3130
++fwbd_0404		MACH_FWBD_0404		FWBD_0404		3131
++hdgu			MACH_HDGU		HDGU			3132
++pyramid			MACH_PYRAMID		PYRAMID			3133
++epiphan			MACH_EPIPHAN		EPIPHAN			3134
++omap_bender		MACH_OMAP_BENDER	OMAP_BENDER		3135
++gurnard			MACH_GURNARD		GURNARD			3136
++gtl_it5100		MACH_GTL_IT5100		GTL_IT5100		3137
++bcm2708			MACH_BCM2708		BCM2708			3138
++mx51_ggc		MACH_MX51_GGC		MX51_GGC		3139
++sharespace		MACH_SHARESPACE		SHARESPACE		3140
++haba_knx_explorer	MACH_HABA_KNX_EXPLORER	HABA_KNX_EXPLORER	3141
++simtec_kirkmod		MACH_SIMTEC_KIRKMOD	SIMTEC_KIRKMOD		3142
++crux			MACH_CRUX		CRUX			3143
++mx51_bravo		MACH_MX51_BRAVO		MX51_BRAVO		3144
++charon			MACH_CHARON		CHARON			3145
++picocom3		MACH_PICOCOM3		PICOCOM3		3146
++picocom4		MACH_PICOCOM4		PICOCOM4		3147
++serrano			MACH_SERRANO		SERRANO			3148
++doubleshot		MACH_DOUBLESHOT		DOUBLESHOT		3149
++evsy			MACH_EVSY		EVSY			3150
++huashan			MACH_HUASHAN		HUASHAN			3151
++lausanne		MACH_LAUSANNE		LAUSANNE		3152
++emerald			MACH_EMERALD		EMERALD			3153
++tqma35			MACH_TQMA35		TQMA35			3154
++marvel			MACH_MARVEL		MARVEL			3155
++manuae			MACH_MANUAE		MANUAE			3156
++chacha			MACH_CHACHA		CHACHA			3157
++lemon			MACH_LEMON		LEMON			3158
++csc			MACH_CSC		CSC			3159
++gira_knxip_router	MACH_GIRA_KNXIP_ROUTER	GIRA_KNXIP_ROUTER	3160
++t20			MACH_T20		T20			3161
++hdmini			MACH_HDMINI		HDMINI			3162
++sciphone_g2		MACH_SCIPHONE_G2	SCIPHONE_G2		3163
++express			MACH_EXPRESS		EXPRESS			3164
++express_kt		MACH_EXPRESS_KT		EXPRESS_KT		3165
++maximasp		MACH_MAXIMASP		MAXIMASP		3166
++nitrogen_imx51		MACH_NITROGEN_IMX51	NITROGEN_IMX51		3167
++nitrogen_imx53		MACH_NITROGEN_IMX53	NITROGEN_IMX53		3168
++sunfire			MACH_SUNFIRE		SUNFIRE			3169
++arowana			MACH_AROWANA		AROWANA			3170
++tegra_daytona		MACH_TEGRA_DAYTONA	TEGRA_DAYTONA		3171
++tegra_swordfish		MACH_TEGRA_SWORDFISH	TEGRA_SWORDFISH		3172
++edison			MACH_EDISON		EDISON			3173
++svp8500v1		MACH_SVP8500V1		SVP8500V1		3174
++svp8500v2		MACH_SVP8500V2		SVP8500V2		3175
++svp5500			MACH_SVP5500		SVP5500			3176
++b5500			MACH_B5500		B5500			3177
++s5500			MACH_S5500		S5500			3178
++icon			MACH_ICON		ICON			3179
++elephant		MACH_ELEPHANT		ELEPHANT		3180
++msm8x60_fusion		MACH_MSM8X60_FUSION	MSM8X60_FUSION		3181
++shooter			MACH_SHOOTER		SHOOTER			3182
++spade_lte		MACH_SPADE_LTE		SPADE_LTE		3183
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0013-sam9g45-UHSDP-add-debug-info.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0013-sam9g45-UHSDP-add-debug-info.patch
new file mode 100644
index 0000000..65a5be9
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0013-sam9g45-UHSDP-add-debug-info.patch
@@ -0,0 +1,130 @@
+From b74219276331e2da3b323c51b378fd2566d62a85 Mon Sep 17 00:00:00 2001
+From: Asen Dimov <dimov at ronetix.at>
+Date: Tue, 8 Feb 2011 11:44:07 +0200
+Subject: [[PATCH 13/22] sam9g45 UHSDP: add debug info
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c   |    7 +++++++
+ drivers/usb/gadget/atmel_usba_udc.c |   30 +++++++++++++++++++++++++++++-
+ 2 files changed, 36 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index 8a0135b..f809ddb 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -51,6 +51,7 @@
+ #include <mach/gpio.h>
+ #include <mach/at91sam9_smc.h>
+ #include <mach/at91_shdwc.h>
++#include <mach/at91_pmc.h>
+ 
+ #include <linux/usb/gpio_vbus.h>
+ 
+@@ -848,6 +849,12 @@ static void __init pm9g45_board_init(void)
+ 	at91_add_device_usbh_ehci(&pm9g45_usbh_hs_data);
+ 	/* USB HS Device */
+ 	at91_add_device_usba(&pm9g45_usba_udc_data);
++
++	/* Export UPLLCLK to PCK1 */
++	at91_sys_write (AT91_PMC_PCKR(1), 0x03 );
++	at91_sys_write (AT91_PMC_SCER, AT91_PMC_PCK1 );
++	at91_set_B_periph(AT91_PIN_PB31, 0);
++
+ 	/* SPI */
+ 	at91_add_device_spi(pm9g45_spi_devices, ARRAY_SIZE(pm9g45_spi_devices));
+ 	/* Touchscreen */
+diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
+index d6ef3d5..b6d7eef 100644
+--- a/drivers/usb/gadget/atmel_usba_udc.c
++++ b/drivers/usb/gadget/atmel_usba_udc.c
+@@ -1753,27 +1753,45 @@ static irqreturn_t usba_vbus_irq(int irq, void *devid)
+ {
+ 	struct usba_udc *udc = devid;
+ 	int vbus;
++	unsigned int val;
+ 
++	printk(KERN_DEBUG "USB device IRQ happening ... \n");
+ 	/* debounce */
+ 	udelay(10);
+ 
+ 	spin_lock(&udc->lock);
+ 
+ 	/* May happen if Vbus pin toggles during probe() */
+-	if (!udc->driver)
++	if (!udc->driver) {
++		printk(KERN_DEBUG "Vbus pin toggles during probe()\n");
+ 		goto out;
++	}
+ 
+ 	vbus = gpio_get_value(udc->vbus_pin);
+ 	if (vbus != udc->vbus_prev) {
+ 		if (vbus) {
++			printk(KERN_DEBUG "Vbus pin is high\n");
+ 			toggle_bias(1);
++			val = usba_readl(udc, CTRL);
++			printk(KERN_DEBUG "USBa reg. CTRL: 0x%x\n", val);
+ 			usba_writel(udc, CTRL, USBA_ENABLE_MASK);
++			val = usba_readl(udc, CTRL);
++			printk(KERN_DEBUG "USBa reg. CTRL: 0x%x\n", val);
++			val = usba_readl(udc, INT_ENB);
++			printk(KERN_DEBUG "USBa reg. INT_ENB: 0x%x\n", val);
+ 			usba_writel(udc, INT_ENB, USBA_END_OF_RESET);
++			val = usba_readl(udc, INT_ENB);
++			printk(KERN_DEBUG "USBa reg. INT_ENB: 0x%x\n", val);
+ 		} else {
++			printk(KERN_DEBUG "Vbus pin is low\n");
+ 			udc->gadget.speed = USB_SPEED_UNKNOWN;
+ 			reset_all_endpoints(udc);
+ 			toggle_bias(0);
++			val = usba_readl(udc, CTRL);
++			printk(KERN_DEBUG "USBa reg. CTRL: 0x%x\n", val);
+ 			usba_writel(udc, CTRL, USBA_DISABLE_MASK);
++			val = usba_readl(udc, CTRL);
++			printk(KERN_DEBUG "USBa reg. CTRL: 0x%x\n", val);
+ 			if (udc->driver->disconnect) {
+ 				spin_unlock(&udc->lock);
+ 				udc->driver->disconnect(&udc->gadget);
+@@ -1781,6 +1799,8 @@ static irqreturn_t usba_vbus_irq(int irq, void *devid)
+ 			}
+ 		}
+ 		udc->vbus_prev = vbus;
++	} else {
++		printk(KERN_DEBUG "Vbus pin has the prevous value\n");
+ 	}
+ 
+ out:
+@@ -1888,6 +1908,7 @@ static int __init usba_udc_probe(struct platform_device *pdev)
+ 	struct clk *pclk, *hclk;
+ 	struct usba_udc *udc = &the_udc;
+ 	int irq, ret, i;
++	unsigned int val;
+ 
+ 	regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
+ 	fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
+@@ -1938,7 +1959,11 @@ static int __init usba_udc_probe(struct platform_device *pdev)
+ 	/* Make sure we start from a clean slate */
+ 	clk_enable(pclk);
+ 	toggle_bias(0);
++	val = usba_readl(udc, CTRL);
++	dev_info(&pdev->dev, "Make sure we start from a clean slate: USBa reg. CTRL: 0x%x\n", val);
+ 	usba_writel(udc, CTRL, USBA_DISABLE_MASK);
++	val = usba_readl(udc, CTRL);
++	dev_info(&pdev->dev, "Make sure we start from a clean slate: USBa reg. CTRL: 0x%x\n", val);
+ 	clk_disable(pclk);
+ 
+ 	usba_ep = kzalloc(sizeof(struct usba_ep) * pdata->num_ep,
+@@ -2013,6 +2038,9 @@ static int __init usba_udc_probe(struct platform_device *pdev)
+ 			} else {
+ 				disable_irq(gpio_to_irq(udc->vbus_pin));
+ 			}
++		} else {
++			dev_warn(&udc->pdev->dev,
++			"can not get requested vbus_pin!\n");
+ 		}
+ 	}
+ 
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0014-A-mix-of-changes-FIXME-to-choose-a-base-board-each-b.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0014-A-mix-of-changes-FIXME-to-choose-a-base-board-each-b.patch
new file mode 100644
index 0000000..4863f3e
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0014-A-mix-of-changes-FIXME-to-choose-a-base-board-each-b.patch
@@ -0,0 +1,830 @@
+From 80c16000673e3ec95963d9a55429b1b3de6b73a8 Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Thu, 5 May 2011 13:50:17 +0300
+Subject: [[PATCH 14/22] A mix of changes: (FIXME:) - to choose a base board -
+ each base board in separate file - add sound of
+ BB9G45 - add BB9G45 settings - touch a SSC
+ DAI(FIXME:)
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/Kconfig               |   22 +++
+ arch/arm/mach-at91/board-pm9g45.c        |  250 +++++-------------------------
+ arch/arm/mach-at91/include/mach/bb9263.h |  218 ++++++++++++++++++++++++++
+ arch/arm/mach-at91/include/mach/bb9g45.h |  102 ++++++++++++
+ sound/soc/atmel/Kconfig                  |    2 +-
+ sound/soc/atmel/atmel_ssc_dai.c          |   14 ++-
+ sound/soc/atmel/sam9g20_wm8731.c         |    8 +-
+ 7 files changed, 396 insertions(+), 220 deletions(-)
+ create mode 100644 arch/arm/mach-at91/include/mach/bb9263.h
+ create mode 100644 arch/arm/mach-at91/include/mach/bb9g45.h
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index f9fd9dc..04cbbe3 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -419,6 +419,28 @@ config MACH_PM9G45
+        help
+          Select this if you are using Ronetix's PM9G45 board.
+          <http://ronetix.at/starter_kit_9g45.html>
++
++choice
++       prompt "PM9G45 on Base Board"
++       depends on MACH_PM9G45
++       default MACH_BB9G45_V1_0
++       help
++         The version is writted out on the board.
++
++config MACH_BB9G45_V1_0
++       bool "BB9G45 v1.0"
++       depends on MACH_PM9G45
++       help
++         BB9G45 as a base board.
++
++config MACH_BB9263_V1_1
++       bool "BB9263 v1.1"
++       depends on MACH_PM9G45
++       help
++         BB9263 as a base board.
++         
++endchoice
++
+ choice
+        prompt "PM9G45 board version"
+        depends on MACH_PM9G45
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index f809ddb..16ac014 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -58,6 +58,15 @@
+ #include "sam9_smc.h"
+ #include "generic.h"
+ 
++#if defined(CONFIG_MACH_BB9G45_V1_0)
++#include <mach/bb9g45.h>
++#elif defined(CONFIG_MACH_BB9263_V1_1)
++#include <mach/bb9263.h>
++#else
++#error "No Base Board choosen for PM9G45."
++#endif
++
++
+ static void __init pm9g45_map_io(void)
+ {
+ 	/* Initialize processor: 12.000 MHz crystal */
+@@ -81,65 +90,6 @@ static void __init pm9g45_init_irq(void)
+ }
+ 
+ /*
+- * USB HS Host port (common to OHCI & EHCI)
+- */
+-static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
+-	.ports		= 2,
+-	.vbus_pin	= { 0, 0},
+-};
+-
+-/*
+- * USB HS Device port
+- */
+-static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
+-	.vbus_pin	= AT91_PIN_PD1,
+-	/*.pullup_pin	= 0,*/		/* pull-up driven by UDC */
+-};
+-
+-/*
+- * ADS7846 Touchscreen
+- */
+-#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
+-	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
+-static int ads7843_pendown_state(void)
+-{
+-	return !at91_get_gpio_value(AT91_PIN_PD18);	/* Touchscreen PENIRQ */
+-}
+-
+-static struct ads7846_platform_data ads_info = {
+-	.model			= 7843,
+-	.x_min			= 150,
+-	.x_max			= 3830,
+-	.y_min			= 190,
+-	.y_max			= 3830,
+-	.settle_delay_usecs	= 2000,
+-	.keep_vref_on		= 1,
+-	.vref_delay_usecs	= 500,
+-	.x_plate_ohms		= 607,
+-	.y_plate_ohms		= 232,
+-	.pressure_max		= 15000,
+-	.debounce_max		= 1,
+-	.debounce_rep		= 1, //0
+-	.debounce_tol		= (50), //(~0)
+-	.get_pendown_state	= ads7843_pendown_state,
+-	.penirq_recheck_delay_usecs = 200,
+-};
+-
+-static void __init pm9g45_add_device_ts(void)
+-{
+-	at91_set_gpio_input(AT91_PIN_PD18, 1);	/* External IRQ, with pullup */
+-	at91_set_gpio_input(AT91_PIN_PE31, 1);	/* Touchscreen BUSY signal */
+-}
+-#else
+-static void __init pm9g45_add_device_ts(void) {}
+-#endif
+-static struct at91_tsadcc_data pm9g45_tsadcc_data = {
+-	.adc_clock		= 300000,
+-	.pendet_debounce	= 0x0d,
+-	.ts_sample_hold_time	= 0x0a,
+-};
+-
+-/*
+  * SPI devices.
+  */
+ static struct spi_board_info pm9g45_spi_devices[] = {
+@@ -151,8 +101,9 @@ static struct spi_board_info pm9g45_spi_devices[] = {
+ 		.bus_num	= 0,
+ 	},
+ #endif
+-#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
+-	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
++#if (defined(CONFIG_TOUCHSCREEN_ADS7846) || \
++	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)) && \
++	defined(CONFIG_MACH_BB9263_V1_1)
+ 	{
+ 		.modalias	= "ads7846",
+ 		.chip_select	= 0,
+@@ -165,18 +116,6 @@ static struct spi_board_info pm9g45_spi_devices[] = {
+ };
+ 
+ /*
+- * MCI (SD/MMC)
+- */
+-static struct mci_platform_data __initdata pm9g45_mci0_data = {
+-	.slot[0] = {
+-		.bus_width	= 4,
+-		.detect_pin	= AT91_PIN_PD30,
+-		.wp_pin		= AT91_PIN_PD29,
+-		//	.vcc_pin	= ... not connected
+-	}
+-};
+-
+-/*
+  * MACB Ethernet device
+  */
+ static struct at91_eth_data __initdata pm9g45_macb_data = {
+@@ -651,25 +590,6 @@ static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data;
+  * GPIO Buttons
+  */
+ #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+-static struct gpio_keys_button pm9g45_buttons[] = {
+-	{	/* SW3 */
+-		.code		= KEY_UP,
+-		.gpio		= AT91_PIN_PE8,
+-		.active_low	= 1,
+-		.desc		= "SW3",
+-		.wakeup		= 1,
+-		.type		= EV_KEY,
+-	},
+-	{	/* SW4 */
+-		.code		= KEY_RIGHT,
+-		.gpio		= AT91_PIN_PE7,
+-		.active_low	= 1,
+-		.desc		= "SW4",
+-		.wakeup		= 1,
+-		.type		= EV_KEY,
+-	}
+-};
+-
+ static struct gpio_keys_platform_data pm9g45_button_data = {
+ 	.buttons	= pm9g45_buttons,
+ 	.nbuttons	= ARRAY_SIZE(pm9g45_buttons),
+@@ -710,22 +630,8 @@ static struct ac97c_platform_data pm9g45_ac97_data = {
+ };
+ 
+ /*
+- * LEDs ... these could all be PWM-driven, for variable brightness
++ *  1-Wire
+  */
+-static struct gpio_led pm9g45_leds[] = {
+-	{	/* "right" led, green, userled2 (could be driven by pwm2) */
+-		.name			= "led0",
+-		.gpio			= AT91_PIN_PD0,
+-		.active_low		= 1,
+-		.default_trigger	= "nand-disk",
+-	},
+-	{	/* "power" led, yellow (could be driven by pwm0) */
+-		.name			= "led1",
+-		.gpio			= AT91_PIN_PD31,
+-		.active_low		= 1,
+-		.default_trigger	= "heartbeat",
+-	}
+-};
+ 
+ #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
+ struct w1_gpio_platform_data pm9g45_w1_platdata = {
+@@ -742,104 +648,6 @@ static struct platform_device pm9g45_w1_device = {
+ };
+ #endif
+ 
+-#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
+-    defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
+-static struct at91_cf_data pm9g45_cf_data = {
+-	.det_pin	= AT91_PIN_PD13,
+-	.rst_pin	= AT91_PIN_PD14,
+-	.irq_pin	= AT91_PIN_PE1,
+-	// .vcc_pin	= ... always powered
+-	.chipselect	= 4,
+-};
+-
+-static struct resource pm9g45_cf_resources[] = {
+-	[0] = {
+-		.start	= AT91_CHIPSELECT_4,
+-		.end	= AT91_CHIPSELECT_4 + (0x10000000 - 1),
+-		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
+-	},
+-};
+-
+-static struct platform_device pm9g45_cf_device = {
+-	.name		= "at91_cf",
+-	.id		= -1,
+-	.dev		= {
+-		.platform_data	= &pm9g45_cf_data,
+-	},
+-	.resource	= pm9g45_cf_resources,
+-	.num_resources	= ARRAY_SIZE(pm9g45_cf_resources),
+-};
+-
+-#define CF_NWE_SETUP	(9 << 0)
+-#define CF_NCS_WR_SETUP	(2 << 8)
+-#define CF_NRD_SETUP	(9 << 16)
+-#define CF_NCS_RD_SETUP	(2 << 24)
+-
+-#define CF_NWE_PULSE	(17 << 0)
+-#define CF_NCS_WR_PULSE	(27 << 8)
+-#define CF_NRD_PULSE	(17 << 16)
+-#define CF_NCS_RD_PULSE	(27 << 24)
+-
+-#define CF_NWE_CYCLE	(40 << 0)
+-#define CF_NRD_CYCLE	(40 << 16)
+-
+-#define CF_TDF		(1 << 16)
+-
+-static void __init pm9g45_add_device_cf(void) {
+-struct at91_cf_data *data = & pm9g45_cf_data;
+-unsigned int csa;
+-
+-	// Setup Compact flash, first enable the address range of
+-	// CS4 in HMATRIX user interface
+-	csa = at91_sys_read(AT91_MATRIX_EBICSA);
+-	at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS4A_SMC_CF0);
+-
+-	/* Configure SMC CS4 */
+-	at91_sys_write(AT91_SMC_SETUP(4),
+-				(CF_NWE_SETUP |
+-				CF_NCS_WR_SETUP |
+-				CF_NRD_SETUP |
+-				CF_NCS_RD_SETUP));
+-
+-	at91_sys_write(AT91_SMC_PULSE(4), (CF_NWE_PULSE |
+-					CF_NCS_WR_PULSE |
+-					CF_NRD_PULSE |
+-					CF_NCS_RD_PULSE));
+-	at91_sys_write(AT91_SMC_CYCLE(4), (CF_NWE_CYCLE | CF_NRD_CYCLE));
+-	// 16 bit
+-	at91_sys_write (AT91_SMC_MODE(4), (AT91_SMC_READMODE |
+-					AT91_SMC_WRITEMODE |
+-					AT91_SMC_EXNWMODE_DISABLE |
+-					AT91_SMC_DBW_16 |
+-					CF_TDF));
+-
+-	/* input/irq */
+-	if (data->irq_pin) {
+-		at91_set_gpio_input(data->irq_pin, 0);
+-		at91_set_deglitch(data->irq_pin, 1);
+-	}
+-	at91_set_gpio_input(data->det_pin, 0);
+-	at91_set_deglitch(data->det_pin, 1);
+-
+-	/* outputs, initially off */
+-	if (data->vcc_pin)
+-		at91_set_gpio_output(data->vcc_pin, 0);
+-	if (data->rst_pin)
+-		at91_set_gpio_output(data->rst_pin, 0);
+-
+-	/* force poweron defaults for these pins ... */
+-	at91_set_A_periph(AT91_PIN_PC15, 0);	/* */
+-	at91_set_A_periph(AT91_PIN_PC12, 0);	/* */
+-	at91_set_A_periph(AT91_PIN_PC10, 0);	/* */
+-	at91_set_A_periph(AT91_PIN_PC8, 0);	/* */
+-	at91_set_A_periph(AT91_PIN_PC9, 0);	/* */
+-
+-	platform_device_register(&pm9g45_cf_device);
+-}
+-#else
+-void __init pm9g45_add_device_cf(void) {}
+-#endif
+-
+ static void __init pm9g45_board_init(void)
+ {
+ 	/* Serial */
+@@ -850,16 +658,16 @@ static void __init pm9g45_board_init(void)
+ 	/* USB HS Device */
+ 	at91_add_device_usba(&pm9g45_usba_udc_data);
+ 
+-	/* Export UPLLCLK to PCK1 */
+-	at91_sys_write (AT91_PMC_PCKR(1), 0x03 );
+-	at91_sys_write (AT91_PMC_SCER, AT91_PMC_PCK1 );
+-	at91_set_B_periph(AT91_PIN_PB31, 0);
+-
+ 	/* SPI */
+ 	at91_add_device_spi(pm9g45_spi_devices, ARRAY_SIZE(pm9g45_spi_devices));
++
+ 	/* Touchscreen */
++#if defined(CONFIG_MACH_BB9G45_V1_0)
++	at91_add_device_tsadcc(&pm9g45_tsadcc_data);
++#elif defined(CONFIG_MACH_BB9263_V1_1)
+ 	pm9g45_add_device_ts();
+-	/* at91_add_device_tsadcc(&pm9g45_tsadcc_data); Not used for now */
++#endif
++
+ 	/* MMC */
+ 	at91_add_device_mci(0, &pm9g45_mci0_data);
+ 	/* Ethernet */
+@@ -867,13 +675,31 @@ static void __init pm9g45_board_init(void)
+ 	/* NAND */
+ 	pm9g45_add_device_nand();
+ 	/* I2C */
+-	/* No I2C used in pm9g45 */
++#if defined(CONFIG_MACH_BB9G45_V1_0)
++	at91_add_device_i2c( 0, ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
++#elif defined(CONFIG_MACH_BB9263_V1_1)
++	/* No I2C used in bb9263 */
++#endif
+ 	/* LCD Controller */
+ 	pm9g45_add_device_lcdc(&pm9g45_lcdc_data);
+ 	/* Push Buttons */
+ 	pm9g45_add_device_buttons();
++
++	/* Sound */
++#if defined(CONFIG_MACH_BB9263_V1_1)
+ 	/* AC97 */
+ 	at91_add_device_ac97(&pm9g45_ac97_data);
++#endif
++#if defined(CONFIG_MACH_BB9G45_V1_0)
++	/* PCK0 provides MCLK to the WM8731 */
++	//at91_sys_write (AT91_PMC_PCKR(0), 0x01 );
++	//at91_sys_write (AT91_PMC_SCER, AT91_PMC_PCK0 );
++	at91_set_A_periph(AT91_PIN_PD26, 0);
++	/* SSC (for WM8731) */
++	at91_add_device_ssc(AT91SAM9G45_ID_SSC1, ATMEL_SSC_TX | ATMEL_SSC_RX);
++//?	at91_add_device_ssc(AT91SAM9G45_ID_SSC1, ATMEL_SSC_RX);
++#endif
++
+ #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
+ 	platform_device_register(&pm9g45_w1_device);
+ #endif
+diff --git a/arch/arm/mach-at91/include/mach/bb9263.h b/arch/arm/mach-at91/include/mach/bb9263.h
+new file mode 100644
+index 0000000..633b917
+--- /dev/null
++++ b/arch/arm/mach-at91/include/mach/bb9263.h
+@@ -0,0 +1,218 @@
++/*
++ * Put some Notes/descriptions here!
++ * CopyRight
++ */
++
++#ifndef BB9263_H
++#define BB9263_H
++
++/*
++ * USB HS Host port (common to OHCI & EHCI)
++ */
++static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
++	.ports		= 2,
++	.vbus_pin	= { 0, 0},
++};
++
++/*
++ * USB HS Device port
++ */
++static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
++	.vbus_pin	= AT91_PIN_PD1,
++	/*.pullup_pin	= 0,*/		/* pull-up driven by UDC */
++};
++
++/*
++ * ADS7846 Touchscreen
++ */
++#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
++	defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
++static int ads7843_pendown_state(void)
++{
++	return !at91_get_gpio_value(AT91_PIN_PD18);	/* Touchscreen PENIRQ */
++}
++
++static struct ads7846_platform_data ads_info = {
++	.model			= 7843,
++	.x_min			= 150,
++	.x_max			= 3830,
++	.y_min			= 190,
++	.y_max			= 3830,
++	.settle_delay_usecs	= 2000,
++	.keep_vref_on		= 1,
++	.vref_delay_usecs	= 500,
++	.x_plate_ohms		= 607,
++	.y_plate_ohms		= 232,
++	.pressure_max		= 15000,
++	.debounce_max		= 1,
++	.debounce_rep		= 1, //0
++	.debounce_tol		= (50), //(~0)
++	.get_pendown_state	= ads7843_pendown_state,
++	.penirq_recheck_delay_usecs = 200,
++};
++
++static void __init pm9g45_add_device_ts(void)
++{
++	at91_set_gpio_input(AT91_PIN_PD18, 1);	/* External IRQ, with pullup */
++	at91_set_gpio_input(AT91_PIN_PE31, 1);	/* Touchscreen BUSY signal */
++}
++#else
++static void __init pm9g45_add_device_ts(void) {}
++#endif
++
++/*
++ * MCI (SD/MMC)
++ */
++static struct mci_platform_data __initdata pm9g45_mci0_data = {
++	.slot[0] = {
++	.bus_width	= 4,
++	.detect_pin	= AT91_PIN_PD6,
++	.wp_pin		= -1,
++	//	.vcc_pin	= ... not connected
++	}
++};
++
++/*
++ * GPIO Buttons
++ */
++#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
++static struct gpio_keys_button pm9g45_buttons[] = {
++	{	/* SW3 */
++		.code		= KEY_UP,
++		.gpio		= AT91_PIN_PE8,
++		.active_low	= 1,
++		.desc		= "SW3",
++		.wakeup		= 1,
++		.type		= EV_KEY,
++	},
++	{	/* SW4 */
++		.code		= KEY_RIGHT,
++		.gpio		= AT91_PIN_PE7,
++		.active_low	= 1,
++		.desc		= "SW4",
++		.wakeup		= 1,
++		.type		= EV_KEY,
++	}
++};
++#endif
++
++/*
++ * LEDs ... these could all be PWM-driven, for variable brightness
++ */
++static struct gpio_led pm9g45_leds[] = {
++	{	/* "right" led, green, userled2 (could be driven by pwm2) */
++		.name			= "led0",
++		.gpio			= AT91_PIN_PD0,
++		.active_low		= 1,
++		.default_trigger	= "nand-disk",
++	},
++	{	/* "power" led, yellow (could be driven by pwm0) */
++		.name			= "led1",
++		.gpio			= AT91_PIN_PD31,
++		.active_low		= 1,
++		.default_trigger	= "heartbeat",
++	}
++};
++
++/*
++ * CompactFlash
++ */
++#if defined(CONFIG_AT91_CF) || defined(CONFIG_AT91_CF_MODULE) || \
++    defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE)
++static struct at91_cf_data pm9g45_cf_data = {
++	.det_pin	= AT91_PIN_PD13,
++	.rst_pin	= AT91_PIN_PD14,
++	.irq_pin	= AT91_PIN_PE1,
++	// .vcc_pin	= ... always powered
++	.chipselect	= 4,
++};
++
++static struct resource pm9g45_cf_resources[] = {
++	[0] = {
++		.start	= AT91_CHIPSELECT_4,
++		.end	= AT91_CHIPSELECT_4 + (0x10000000 - 1),
++		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8AND16BIT,
++	},
++};
++
++static struct platform_device pm9g45_cf_device = {
++	.name		= "at91_cf",
++	.id		= -1,
++	.dev		= {
++		.platform_data	= &pm9g45_cf_data,
++	},
++	.resource	= pm9g45_cf_resources,
++	.num_resources	= ARRAY_SIZE(pm9g45_cf_resources),
++};
++
++#define CF_NWE_SETUP	(9 << 0)
++#define CF_NCS_WR_SETUP	(2 << 8)
++#define CF_NRD_SETUP	(9 << 16)
++#define CF_NCS_RD_SETUP	(2 << 24)
++
++#define CF_NWE_PULSE	(17 << 0)
++#define CF_NCS_WR_PULSE	(27 << 8)
++#define CF_NRD_PULSE	(17 << 16)
++#define CF_NCS_RD_PULSE	(27 << 24)
++
++#define CF_NWE_CYCLE	(40 << 0)
++#define CF_NRD_CYCLE	(40 << 16)
++
++#define CF_TDF		(1 << 16)
++
++static void __init pm9g45_add_device_cf(void) {
++struct at91_cf_data *data = & pm9g45_cf_data;
++unsigned int csa;
++
++	// Setup Compact flash, first enable the address range of
++	// CS4 in HMATRIX user interface
++	csa = at91_sys_read(AT91_MATRIX_EBICSA);
++	at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS4A_SMC_CF0);
++
++	/* Configure SMC CS4 */
++	at91_sys_write(AT91_SMC_SETUP(4),
++				(CF_NWE_SETUP |
++				CF_NCS_WR_SETUP |
++				CF_NRD_SETUP |
++				CF_NCS_RD_SETUP));
++
++	at91_sys_write(AT91_SMC_PULSE(4), (CF_NWE_PULSE |
++					CF_NCS_WR_PULSE |
++					CF_NRD_PULSE |
++					CF_NCS_RD_PULSE));
++	at91_sys_write(AT91_SMC_CYCLE(4), (CF_NWE_CYCLE | CF_NRD_CYCLE));
++	// 16 bit
++	at91_sys_write (AT91_SMC_MODE(4), (AT91_SMC_READMODE |
++					AT91_SMC_WRITEMODE |
++					AT91_SMC_EXNWMODE_DISABLE |
++					AT91_SMC_DBW_16 |
++					CF_TDF));
++
++	/* input/irq */
++	if (data->irq_pin) {
++		at91_set_gpio_input(data->irq_pin, 0);
++		at91_set_deglitch(data->irq_pin, 1);
++	}
++	at91_set_gpio_input(data->det_pin, 0);
++	at91_set_deglitch(data->det_pin, 1);
++
++	/* outputs, initially off */
++	if (data->vcc_pin)
++		at91_set_gpio_output(data->vcc_pin, 0);
++	if (data->rst_pin)
++		at91_set_gpio_output(data->rst_pin, 0);
++
++	/* force poweron defaults for these pins ... */
++	at91_set_A_periph(AT91_PIN_PC15, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC12, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC10, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC8, 0);	/* */
++	at91_set_A_periph(AT91_PIN_PC9, 0);	/* */
++
++	platform_device_register(&pm9g45_cf_device);
++}
++#else
++void __init pm9g45_add_device_cf(void) {}
++#endif
++
++#endif
+diff --git a/arch/arm/mach-at91/include/mach/bb9g45.h b/arch/arm/mach-at91/include/mach/bb9g45.h
+new file mode 100644
+index 0000000..2ebc9b2
+--- /dev/null
++++ b/arch/arm/mach-at91/include/mach/bb9g45.h
+@@ -0,0 +1,102 @@
++/*
++ * Put some Notes/descriptions here!
++ * CopyRight
++ */
++
++#ifndef BB9G45_H
++#define BB9G45_H
++
++/*
++ * USB HS Host port (common to OHCI & EHCI)
++ */
++static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
++	.ports		= 2,
++	.vbus_pin	= { AT91_PIN_PD0, AT91_PIN_PD8},
++};
++
++/*
++ * USB HS Device port
++ */
++static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
++	.vbus_pin	= AT91_PIN_PD7,
++	/*.pullup_pin	= 0,*/		/* pull-up driven by UDC */
++};
++
++
++static struct at91_tsadcc_data pm9g45_tsadcc_data = {
++	.adc_clock		= 300000,
++	.pendet_debounce	= 0x0d,
++	.ts_sample_hold_time	= 0x0a,
++};
++
++/*
++ * MCI (SD/MMC)
++ */
++static struct mci_platform_data __initdata pm9g45_mci0_data = {
++	.slot[0] = {
++		.bus_width	= 4,
++		.detect_pin	= AT91_PIN_PD30,
++		.wp_pin		= AT91_PIN_PD29,
++		//	.vcc_pin	= ... not connected
++	}
++};
++
++/*
++ * LEDs ... these could all be PWM-driven, for variable brightness
++ */
++static struct gpio_led pm9g45_leds[] = {
++	{	/* "right" led, green, userled2 (could be driven by pwm2) */
++		.name			= "led0",
++		.gpio			= AT91_PIN_PD30,
++		.active_low		= 1,
++		.default_trigger	= "nand-disk",
++	},
++	{	/* "power" led, yellow (could be driven by pwm0) */
++		.name			= "led1",
++		.gpio			= AT91_PIN_PD31,
++		.active_low		= 1,
++		.default_trigger	= "heartbeat",
++	}
++};
++
++/*
++ * GPIO Buttons
++ */
++#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
++static struct gpio_keys_button pm9g45_buttons[] = {
++	{	/* SW3 */
++		.code		= KEY_UP,
++		.gpio		= AT91_PIN_PC8,
++		.active_low	= 1,
++		.desc		= "SW3",
++		.wakeup		= 1,
++		.type		= EV_KEY,
++	},
++	{	/* SW4 */
++		.code		= KEY_RIGHT,
++		.gpio		= AT91_PIN_PC6,
++		.active_low	= 1,
++		.desc		= "SW4",
++		.wakeup		= 1,
++		.type		= EV_KEY,
++	}
++};
++#endif
++
++/*
++ * I2C
++ */
++static struct i2c_board_info __initdata ek_i2c_devices[] = {
++	{
++		I2C_BOARD_INFO("wm8731", 0x1b),
++	},
++};
++
++
++/*
++ * CompactFlash
++ */
++void __init pm9g45_add_device_cf(void) {}
++
++
++#endif
+diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
+index e720d5e..804167a 100644
+--- a/sound/soc/atmel/Kconfig
++++ b/sound/soc/atmel/Kconfig
+@@ -16,7 +16,7 @@ config SND_ATMEL_SOC_SSC
+ 
+ config SND_AT91_SOC_SAM9G20_WM8731
+ 	tristate "SoC Audio support for WM8731-based At91sam9g20 evaluation board"
+-	depends on ATMEL_SSC && ARCH_AT91SAM9G20 && SND_ATMEL_SOC
++	depends on ATMEL_SSC && (ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45) && SND_ATMEL_SOC
+ 	select SND_ATMEL_SOC_SSC
+ 	select SND_SOC_WM8731
+ 	help
+diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c
+index 7e78e02..ccb8191 100644
+--- a/sound/soc/atmel/atmel_ssc_dai.c
++++ b/sound/soc/atmel/atmel_ssc_dai.c
+@@ -50,6 +50,8 @@
+ 
+ #if defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9G20)
+ #define NUM_SSC_DEVICES		1
++#elif  defined(CONFIG_ARCH_AT91SAM9G45)
++#define NUM_SSC_DEVICES		2
+ #else
+ #define NUM_SSC_DEVICES		3
+ #endif
+@@ -107,7 +109,7 @@ static struct atmel_pcm_dma_params ssc_dma_params[NUM_SSC_DEVICES][2] = {
+ 	.pdc		= &pdc_rx_reg,
+ 	.mask		= &ssc_rx_mask,
+ 	} },
+-#if NUM_SSC_DEVICES == 3
++#if NUM_SSC_DEVICES >= 2
+ 	{{
+ 	.name		= "SSC1 PCM out",
+ 	.pdc		= &pdc_tx_reg,
+@@ -118,6 +120,8 @@ static struct atmel_pcm_dma_params ssc_dma_params[NUM_SSC_DEVICES][2] = {
+ 	.pdc		= &pdc_rx_reg,
+ 	.mask		= &ssc_rx_mask,
+ 	} },
++#endif
++#if NUM_SSC_DEVICES == 3
+ 	{{
+ 	.name		= "SSC2 PCM out",
+ 	.pdc		= &pdc_tx_reg,
+@@ -139,13 +143,15 @@ static struct atmel_ssc_info ssc_info[NUM_SSC_DEVICES] = {
+ 	.dir_mask	= SSC_DIR_MASK_UNUSED,
+ 	.initialized	= 0,
+ 	},
+-#if NUM_SSC_DEVICES == 3
++#if NUM_SSC_DEVICES >= 2
+ 	{
+ 	.name		= "ssc1",
+ 	.lock		= __SPIN_LOCK_UNLOCKED(ssc_info[1].lock),
+ 	.dir_mask	= SSC_DIR_MASK_UNUSED,
+ 	.initialized	= 0,
+ 	},
++#endif
++#if NUM_SSC_DEVICES == 3
+ 	{
+ 	.name		= "ssc2",
+ 	.lock		= __SPIN_LOCK_UNLOCKED(ssc_info[2].lock),
+@@ -724,7 +730,7 @@ struct snd_soc_dai atmel_ssc_dai[NUM_SSC_DEVICES] = {
+ 		.ops = &atmel_ssc_dai_ops,
+ 		.private_data = &ssc_info[0],
+ 	},
+-#if NUM_SSC_DEVICES == 3
++#if NUM_SSC_DEVICES >= 2
+ 	{	.name = "atmel-ssc1",
+ 		.id = 1,
+ 		.suspend = atmel_ssc_suspend,
+@@ -742,6 +748,8 @@ struct snd_soc_dai atmel_ssc_dai[NUM_SSC_DEVICES] = {
+ 		.ops = &atmel_ssc_dai_ops,
+ 		.private_data = &ssc_info[1],
+ 	},
++#endif
++#if NUM_SSC_DEVICES == 3
+ 	{	.name = "atmel-ssc2",
+ 		.id = 2,
+ 		.suspend = atmel_ssc_suspend,
+diff --git a/sound/soc/atmel/sam9g20_wm8731.c b/sound/soc/atmel/sam9g20_wm8731.c
+index 36851dc..976d2ba 100644
+--- a/sound/soc/atmel/sam9g20_wm8731.c
++++ b/sound/soc/atmel/sam9g20_wm8731.c
+@@ -207,7 +207,7 @@ static int __init at91sam9g20ek_init(void)
+ 	struct clk *pllb;
+ 	int ret;
+ 
+-	if (!(machine_is_at91sam9g20ek() || machine_is_at91sam9g20ek_2mmc()))
++	if (!(machine_is_at91sam9g20ek() || machine_is_at91sam9g20ek_2mmc() || machine_is_pm9g45()))
+ 		return -ENODEV;
+ 
+ 	/*
+@@ -226,7 +226,7 @@ static int __init at91sam9g20ek_init(void)
+ 		ret = PTR_ERR(mclk);
+ 		goto err_mclk;
+ 	}
+-	ret = clk_set_parent(mclk, pllb);
++	ret = 0; //clk_set_parent(mclk, pllb); /* FIX: */
+ 	clk_put(pllb);
+ 	if (ret != 0) {
+ 		printk(KERN_ERR "ASoC: Failed to set MCLK parent\n");
+@@ -238,9 +238,9 @@ static int __init at91sam9g20ek_init(void)
+ 	/*
+ 	 * Request SSC device
+ 	 */
+-	ssc = ssc_request(0);
++	ssc = ssc_request(1);
+ 	if (IS_ERR(ssc)) {
+-		printk(KERN_ERR "ASoC: Failed to request SSC 0\n");
++		printk(KERN_ERR "ASoC: Failed to request SSC 1\n");
+ 		ret = PTR_ERR(ssc);
+ 		ssc = NULL;
+ 		goto err_ssc;
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0015-Selects-CompactFlash-only-on-BB9263-v1.1-add-a-FIX-m.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0015-Selects-CompactFlash-only-on-BB9263-v1.1-add-a-FIX-m.patch
new file mode 100644
index 0000000..b13f03e
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0015-Selects-CompactFlash-only-on-BB9263-v1.1-add-a-FIX-m.patch
@@ -0,0 +1,38 @@
+From f51023c8d8950fe1ca40a5c964a850393d4b988d Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Mon, 9 May 2011 19:21:07 +0300
+Subject: [[PATCH 15/22] * Selects CompactFlash only on BB9263 v1.1 * add a
+ FIX message for LCD power enable
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index 16ac014..5e39e5b 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -200,6 +200,7 @@ static void __init pm9g45_add_device_nand(void)
+ 					| ATMEL_LCDC_DISTYPE_TFT \
+ 					| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
+ 
++/* FIXME: what is this for? And AT91_PIN_PE6 is WRONG. */
+ static void at91_lcdc_power_control(int on)
+ {
+ 	at91_set_gpio_value(AT91_PIN_PE6, on);
+@@ -703,8 +704,11 @@ static void __init pm9g45_board_init(void)
+ #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
+ 	platform_device_register(&pm9g45_w1_device);
+ #endif
++
++#if defined(CONFIG_MACH_BB9263_V1_1)
+ 	/* Compact flash */
+ 	pm9g45_add_device_cf();
++#endif
+ 	/* LEDs */
+ 	at91_gpio_leds(pm9g45_leds, ARRAY_SIZE(pm9g45_leds));
+ }
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0016-enable-GAT.-LCD-backlight-capabilities.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0016-enable-GAT.-LCD-backlight-capabilities.patch
new file mode 100644
index 0000000..627bf3c
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0016-enable-GAT.-LCD-backlight-capabilities.patch
@@ -0,0 +1,25 @@
+From 8a51d9581b9d81f765a435427fd37464020ad997 Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Tue, 10 May 2011 15:18:33 +0300
+Subject: [[PATCH 16/22] enable GAT... LCD backlight capabilities.
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index 5e39e5b..ef1305e 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -532,6 +532,7 @@ static struct fb_monspecs __initdata tft_default_monspecs = {
+ };
+ 
+ static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
++	.lcdcon_is_backlight		= true,
+ 	.default_bpp		= 24,
+ 	.default_dmacon		= ATMEL_LCDC_DMAEN,
+ 	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0017-pm9g45-change-GAT.-color-depth-and-wiring-mode.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0017-pm9g45-change-GAT.-color-depth-and-wiring-mode.patch
new file mode 100644
index 0000000..7d0fe50
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0017-pm9g45-change-GAT.-color-depth-and-wiring-mode.patch
@@ -0,0 +1,32 @@
+From 0835df1cb0f83efbb01d911578f06b192ae15c4e Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Wed, 25 May 2011 16:51:39 +0300
+Subject: [[PATCH 17/22] pm9g45: change GAT... color depth and wiring mode
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index ef1305e..0eaacde 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -533,11 +533,12 @@ static struct fb_monspecs __initdata tft_default_monspecs = {
+ 
+ static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
+ 	.lcdcon_is_backlight		= true,
+-	.default_bpp		= 24,
++	.default_bpp		= 16,
+ 	.default_dmacon		= ATMEL_LCDC_DMAEN,
+ 	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
+ 	.default_monspecs	= &tft_default_monspecs,
+ 	.guard_time		= 2,
++	.lcd_wiring_mode	= ATMEL_LCDC_WIRING_RGB,
+ };
+ 
+ #elif defined(CONFIG_PM9G45_LCD_CLAA080MB0ACW)
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0018-RGB_BGR-fixes-of-LCD-on-bb9g45.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0018-RGB_BGR-fixes-of-LCD-on-bb9g45.patch
new file mode 100644
index 0000000..8681ab4
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0018-RGB_BGR-fixes-of-LCD-on-bb9g45.patch
@@ -0,0 +1,57 @@
+From 3866c70db12c08f25e6bc4a95bcc8043474a0fcf Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Fri, 27 May 2011 18:42:54 +0300
+Subject: [[PATCH 18/22] RGB_BGR fixes of LCD on bb9g45
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c |    2 +-
+ drivers/video/atmel_lcdfb.c       |    5 +++++
+ include/video/atmel_lcdc.h        |    1 +
+ 3 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index 0eaacde..e312dc5 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -538,7 +538,7 @@ static struct atmel_lcdfb_info __initdata pm9g45_lcdc_data = {
+ 	.default_lcdcon2	= AT91SAM9G45_DEFAULT_LCDCON2,
+ 	.default_monspecs	= &tft_default_monspecs,
+ 	.guard_time		= 2,
+-	.lcd_wiring_mode	= ATMEL_LCDC_WIRING_RGB,
++	.lcd_wiring_mode	= ATMEL_LCDC_WIRING_BGR565,
+ };
+ 
+ #elif defined(CONFIG_PM9G45_LCD_CLAA080MB0ACW)
+diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
+index 935fb45..848fdfa 100644
+--- a/drivers/video/atmel_lcdfb.c
++++ b/drivers/video/atmel_lcdfb.c
+@@ -414,6 +414,11 @@ static int atmel_lcdfb_check_var(struct fb_var_screeninfo *var,
+ 			var->red.offset = 10;
+ 			var->blue.offset = 0;
+ 			var->green.length = 5;
++		} else if (sinfo->lcd_wiring_mode == ATMEL_LCDC_WIRING_BGR565) {
++			/* BGR:565 mode */
++			var->red.offset = 0;
++			var->blue.offset = 11;
++			var->green.length = 6;
+ 		} else {
+ 			/* BGR:555 mode */
+ 			var->red.offset = 0;
+diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h
+index 0c864db..cf8bc2f 100644
+--- a/include/video/atmel_lcdc.h
++++ b/include/video/atmel_lcdc.h
+@@ -31,6 +31,7 @@
+ #define ATMEL_LCDC_WIRING_BGR	0
+ #define ATMEL_LCDC_WIRING_RGB	1
+ #define ATMEL_LCDC_WIRING_RGB555	2
++#define ATMEL_LCDC_WIRING_BGR565	3
+ 
+ 
+  /* LCD Controller info data structure, stored in device platform_data */
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0019-bb9g45-sound-now-works.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0019-bb9g45-sound-now-works.patch
new file mode 100644
index 0000000..abc6b31
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0019-bb9g45-sound-now-works.patch
@@ -0,0 +1,36 @@
+From 304aab3bad5cfd4455f87bb282f622c18d1bd948 Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Fri, 27 May 2011 20:30:30 +0300
+Subject: [[PATCH 19/22] bb9g45: sound now works
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/board-pm9g45.c |    9 ++++-----
+ 1 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index e312dc5..d229f7d 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -694,13 +694,12 @@ static void __init pm9g45_board_init(void)
+ 	at91_add_device_ac97(&pm9g45_ac97_data);
+ #endif
+ #if defined(CONFIG_MACH_BB9G45_V1_0)
+-	/* PCK0 provides MCLK to the WM8731 */
+-	//at91_sys_write (AT91_PMC_PCKR(0), 0x01 );
+-	//at91_sys_write (AT91_PMC_SCER, AT91_PMC_PCK0 );
+-	at91_set_A_periph(AT91_PIN_PD26, 0);
+ 	/* SSC (for WM8731) */
++	/* PCK0 provides MCLK to the WM8731, clock have to be 12Mhz */
++	at91_sys_write (AT91_PMC_PCKR(0), 0x01 );
++	at91_sys_write (AT91_PMC_SCER, AT91_PMC_PCK0 );
++	at91_set_A_periph(AT91_PIN_PD26, 0);
+ 	at91_add_device_ssc(AT91SAM9G45_ID_SSC1, ATMEL_SSC_TX | ATMEL_SSC_RX);
+-//?	at91_add_device_ssc(AT91SAM9G45_ID_SSC1, ATMEL_SSC_RX);
+ #endif
+ 
+ #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0020-input-atmel_tsadcc-introduce-changes-needed-for-at91.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0020-input-atmel_tsadcc-introduce-changes-needed-for-at91.patch
new file mode 100644
index 0000000..0c82fbd
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0020-input-atmel_tsadcc-introduce-changes-needed-for-at91.patch
@@ -0,0 +1,179 @@
+From e218a9d78a56465d1d22901560f9ebc49c8002b9 Mon Sep 17 00:00:00 2001
+From: nferre <nferre at 50fbe906-d41e-0410-8a96-31537896a350>
+Date: Tue, 1 Jun 2010 13:58:44 +0000
+Subject: [[PATCH 20/22] input: atmel_tsadcc: introduce changes needed for
+ at91sam9m10g45ek board
+
+Introduce filter function in touchscreen driver.
+
+git-svn-id: svn://rfolxts01.rfo.atmel.com/at91_sandbox/linux-2.6.x/branches/linux-2.6.30-at91@15229 50fbe906-d41e-0410-8a96-31537896a350
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ drivers/input/touchscreen/atmel_tsadcc.c |   86 ++++++++++++++++++++++++++++--
+ 1 files changed, 82 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/input/touchscreen/atmel_tsadcc.c b/drivers/input/touchscreen/atmel_tsadcc.c
+index 27ac912..0648b88 100644
+--- a/drivers/input/touchscreen/atmel_tsadcc.c
++++ b/drivers/input/touchscreen/atmel_tsadcc.c
+@@ -95,6 +95,7 @@
+ #define PRESCALER_VAL(x)	((x) >> 8)
+ 
+ #define ADC_DEFAULT_CLOCK	100000
++#define COUNT_MAX		20
+ 
+ struct atmel_tsadcc {
+ 	struct input_dev	*input;
+@@ -107,10 +108,47 @@ struct atmel_tsadcc {
+ };
+ 
+ static void __iomem		*tsc_base;
++static unsigned int		trigger_period;
+ 
+ #define atmel_tsadcc_read(reg)		__raw_readl(tsc_base + (reg))
+ #define atmel_tsadcc_write(reg, val)	__raw_writel((val), tsc_base + (reg))
+ 
++static unsigned int do_filter(unsigned int val[], int count, int needed) {
++	int i, j;
++	int max_delta, max_delta_index;
++	unsigned int average;
++
++	for (i = count; i > needed; i--) {
++		average = 0;
++		for (j = 0; j < i; j++)
++			average += val[j];
++		average /= i;
++
++		max_delta = 0;
++		max_delta_index = -1;
++		for (j = 0; j < i; j++) {
++			if (abs(val[j] - average) > max_delta) {
++				max_delta = abs(val[j] - average);
++				max_delta_index = j;
++			}
++		}
++
++		if (max_delta_index < 0)
++			return average;
++
++		if (max_delta_index < i - 1)
++			for (j = 0; j < i - max_delta_index; j++)
++				val[max_delta_index + j] = val[max_delta_index + j + 1];
++	}
++
++	average = 0;
++	for (i = 0; i < needed; i++)
++		average += val[i];
++	average /= needed;
++
++	return average;
++}
++
+ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
+ {
+ 	struct atmel_tsadcc	*ts_dev = (struct atmel_tsadcc *)dev;
+@@ -118,6 +156,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
+ 
+ 	unsigned int status;
+ 	unsigned int reg;
++	static int count = 0;
+ 
+ 	status = atmel_tsadcc_read(ATMEL_TSADCC_SR);
+ 	status &= atmel_tsadcc_read(ATMEL_TSADCC_IMR);
+@@ -147,11 +186,13 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
+ 		atmel_tsadcc_write(ATMEL_TSADCC_IER,
+ 				   ATMEL_TSADCC_EOC(3) | ATMEL_TSADCC_NOCNT);
+ 		atmel_tsadcc_write(ATMEL_TSADCC_TRGR,
+-				   ATMEL_TSADCC_TRGMOD_PERIOD | (0x0FFF << 16));
++				   ATMEL_TSADCC_TRGMOD_PERIOD | (trigger_period << 16));
++
++		count = 0;
+ 
+ 	} else if (status & ATMEL_TSADCC_EOC(3)) {
+ 		/* Conversion finished */
+-
++#if defined(CONFIG_MACH_AT91SAM9G45EKES) || defined(CONFIG_MACH_AT91SAM9M10EKES)
+ 		if (ts_dev->bufferedmeasure) {
+ 			/* Last measurement is always discarded, since it can
+ 			 * be erroneous.
+@@ -163,6 +204,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
+ 			input_sync(input_dev);
+ 		} else
+ 			ts_dev->bufferedmeasure = 1;
++#endif
+ 
+ 		/* Now make new measurement */
+ 		ts_dev->prev_absx = atmel_tsadcc_read(ATMEL_TSADCC_CDR3) << 10;
+@@ -170,8 +212,31 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
+ 
+ 		ts_dev->prev_absy = atmel_tsadcc_read(ATMEL_TSADCC_CDR1) << 10;
+ 		ts_dev->prev_absy /= atmel_tsadcc_read(ATMEL_TSADCC_CDR0);
+-	}
+ 
++#if defined(CONFIG_MACH_AT91SAM9M10G45EK)
++		{
++		static unsigned int point_buffer_x[COUNT_MAX];
++		static unsigned int point_buffer_y[COUNT_MAX];
++
++		if (count < COUNT_MAX) {
++			point_buffer_x[count] = ts_dev->prev_absx;
++			point_buffer_y[count] = ts_dev->prev_absy;
++			count++;
++		} else {
++			unsigned int x, y;
++
++			count = 0;
++			x = do_filter(point_buffer_x, COUNT_MAX, COUNT_MAX * 3 / 4);
++			y = do_filter(point_buffer_y, COUNT_MAX, COUNT_MAX * 3 / 4);
++			input_report_abs(input_dev, ABS_X, x);
++			input_report_abs(input_dev, ABS_Y, y);
++			input_report_key(input_dev, BTN_TOUCH, 1);
++			input_report_abs(input_dev, ABS_PRESSURE, 7500);
++			input_sync(input_dev);
++		}
++		}
++#endif
++	}
+ 	return IRQ_HANDLED;
+ }
+ 
+@@ -188,6 +253,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
+ 	int		err = 0;
+ 	unsigned int	prsc;
+ 	unsigned int	reg;
++	unsigned int	startup_time;
+ 
+ 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ 	if (!res) {
+@@ -276,6 +342,18 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
+ 
+ 	prsc = (prsc / (2 * pdata->adc_clock)) - 1;
+ 
++#if defined(CONFIG_MACH_AT91SAM9M10G45EK)
++	trigger_period = pdata->adc_clock / (200 * COUNT_MAX) -1;
++	if (trigger_period < 1)
++		trigger_period = 1;
++	startup_time = (60 * pdata->adc_clock) / (8 * 1000000) - 1;
++	if (startup_time < 1)
++		startup_time = 1;
++#else
++	trigger_period =  0x0FFF;
++	startup_time = 0x26;
++#endif
++
+ 	/* saturate if this value is too high */
+ 	if (cpu_is_at91sam9rl()) {
+ 		if (prsc > PRESCALER_VAL(ATMEL_TSADCC_PRESCAL))
+@@ -291,7 +369,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
+ 		((0x00 << 5) & ATMEL_TSADCC_SLEEP)	|	/* Normal Mode */
+ 		((0x01 << 6) & ATMEL_TSADCC_PENDET)	|	/* Enable Pen Detect */
+ 		(prsc << 8)				|
+-		((0x26 << 16) & ATMEL_TSADCC_STARTUP)	|
++		((startup_time << 16) & ATMEL_TSADCC_STARTUP)	|
+ 		((pdata->pendet_debounce << 28) & ATMEL_TSADCC_PENDBC);
+ 
+ 	atmel_tsadcc_write(ATMEL_TSADCC_CR, ATMEL_TSADCC_SWRST);
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0021-make-touchscreen-on-EB9G45-works.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0021-make-touchscreen-on-EB9G45-works.patch
new file mode 100644
index 0000000..51e1b3f
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0021-make-touchscreen-on-EB9G45-works.patch
@@ -0,0 +1,62 @@
+From a90c7b6e30ada0bd7ac65552b682f811af198cb7 Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Fri, 10 Jun 2011 11:39:49 +0300
+Subject: [[PATCH 21/22] make touchscreen on EB9G45 works
+
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/include/mach/bb9g45.h |    2 +-
+ drivers/input/touchscreen/atmel_tsadcc.c |    9 ++++++---
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-at91/include/mach/bb9g45.h b/arch/arm/mach-at91/include/mach/bb9g45.h
+index 2ebc9b2..b9085e7 100644
+--- a/arch/arm/mach-at91/include/mach/bb9g45.h
++++ b/arch/arm/mach-at91/include/mach/bb9g45.h
+@@ -26,7 +26,7 @@ static struct usba_platform_data __initdata pm9g45_usba_udc_data = {
+ static struct at91_tsadcc_data pm9g45_tsadcc_data = {
+ 	.adc_clock		= 300000,
+ 	.pendet_debounce	= 0x0d,
+-	.ts_sample_hold_time	= 0x0a,
++	.ts_sample_hold_time	= 0x01, /* 0x0a */
+ };
+ 
+ /*
+diff --git a/drivers/input/touchscreen/atmel_tsadcc.c b/drivers/input/touchscreen/atmel_tsadcc.c
+index 0648b88..35c553e 100644
+--- a/drivers/input/touchscreen/atmel_tsadcc.c
++++ b/drivers/input/touchscreen/atmel_tsadcc.c
+@@ -213,7 +213,7 @@ static irqreturn_t atmel_tsadcc_interrupt(int irq, void *dev)
+ 		ts_dev->prev_absy = atmel_tsadcc_read(ATMEL_TSADCC_CDR1) << 10;
+ 		ts_dev->prev_absy /= atmel_tsadcc_read(ATMEL_TSADCC_CDR0);
+ 
+-#if defined(CONFIG_MACH_AT91SAM9M10G45EK)
++#if defined(CONFIG_MACH_AT91SAM9M10G45EK) || defined(CONFIG_MACH_PM9G45)
+ 		{
+ 		static unsigned int point_buffer_x[COUNT_MAX];
+ 		static unsigned int point_buffer_y[COUNT_MAX];
+@@ -322,8 +322,8 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
+ 	input_dev->dev.parent = &pdev->dev;
+ 
+ 	__set_bit(EV_ABS, input_dev->evbit);
+-	input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0);
+-	input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0);
++	input_set_abs_params(input_dev, ABS_X, 35, 988, 0, 0);
++	input_set_abs_params(input_dev, ABS_Y, 83, 966, 0, 0);
+ 	input_set_abs_params(input_dev, ABS_PRESSURE, 0, 15000, 0, 0);
+ 
+ 	input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
+@@ -349,6 +349,9 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
+ 	startup_time = (60 * pdata->adc_clock) / (8 * 1000000) - 1;
+ 	if (startup_time < 1)
+ 		startup_time = 1;
++#elif defined(CONFIG_MACH_PM9G45)
++	trigger_period = 0x0FF; /* with these values PM9G45 and BB9G45 it works good. */
++	startup_time = 0x26;
+ #else
+ 	trigger_period =  0x0FFF;
+ 	startup_time = 0x26;
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/0022-bb9g45-USB-connector-J3-to-act-as-device.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0022-bb9g45-USB-connector-J3-to-act-as-device.patch
new file mode 100644
index 0000000..79f6ca3
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/0022-bb9g45-USB-connector-J3-to-act-as-device.patch
@@ -0,0 +1,112 @@
+From d46292912c2978da9d8760155da0a03e7428c289 Mon Sep 17 00:00:00 2001
+From: Asen Chavdarov Dimov <dimov at ronetix.at>
+Date: Wed, 15 Jun 2011 15:31:39 +0300
+Subject: [[PATCH 22/22] bb9g45: USB connector J3 to act as device
+
+AT91 USB OTG is not yet avilable, so the port will act ase a
+device by defalut.
+
+Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
+---
+ arch/arm/mach-at91/Kconfig               |   28 +++++++++++++++++++++++++++-
+ arch/arm/mach-at91/board-pm9g45.c        |    2 ++
+ arch/arm/mach-at91/include/mach/bb9g45.h |   12 +++++++++++-
+ 3 files changed, 40 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index 04cbbe3..63d8d88 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -425,7 +425,7 @@ choice
+        depends on MACH_PM9G45
+        default MACH_BB9G45_V1_0
+        help
+-         The version is writted out on the board.
++         The version is printed on the board.
+ 
+ config MACH_BB9G45_V1_0
+        bool "BB9G45 v1.0"
+@@ -442,6 +442,32 @@ config MACH_BB9263_V1_1
+ endchoice
+ 
+ choice
++       prompt "BB9G45 USB microAB connector function"
++       depends on MACH_BB9G45_V1_0
++       default MACH_BB9G45_USB_DEVICE
++       help
++         With the OTG functionality the power of the connector
++         must be off. AT91 OTG is not yet functional/ready, so the
++         J3 port can be used as host or device chosen from here.
++
++config MACH_BB9G45_USB_OTG
++       bool "USB OTG(not yet implemented)"
++       help
++         J3 connector is USB OTG(not yet implemented)
++
++config MACH_BB9G45_USB_HOST
++       bool "USB host"
++       help
++         J3 connector is USB host
++         
++config MACH_BB9G45_USB_DEVICE
++       bool "USB device"
++       help
++         J3 connector is USB device 
++
++endchoice
++
++choice
+        prompt "PM9G45 board version"
+        depends on MACH_PM9G45
+        default MACH_PM9G45_V1_2
+diff --git a/arch/arm/mach-at91/board-pm9g45.c b/arch/arm/mach-at91/board-pm9g45.c
+index d229f7d..341797f 100644
+--- a/arch/arm/mach-at91/board-pm9g45.c
++++ b/arch/arm/mach-at91/board-pm9g45.c
+@@ -658,8 +658,10 @@ static void __init pm9g45_board_init(void)
+ 	/* USB HS Host */
+ 	at91_add_device_usbh_ohci(&pm9g45_usbh_hs_data);
+ 	at91_add_device_usbh_ehci(&pm9g45_usbh_hs_data);
++#if defined(CONFIG_MACH_BB9G45_USB_DEVICE)
+ 	/* USB HS Device */
+ 	at91_add_device_usba(&pm9g45_usba_udc_data);
++#endif
+ 
+ 	/* SPI */
+ 	at91_add_device_spi(pm9g45_spi_devices, ARRAY_SIZE(pm9g45_spi_devices));
+diff --git a/arch/arm/mach-at91/include/mach/bb9g45.h b/arch/arm/mach-at91/include/mach/bb9g45.h
+index b9085e7..49b03ef 100644
+--- a/arch/arm/mach-at91/include/mach/bb9g45.h
++++ b/arch/arm/mach-at91/include/mach/bb9g45.h
+@@ -1,6 +1,6 @@
+ /*
+  * Put some Notes/descriptions here!
+- * CopyRight
++ * Copyright
+  */
+ 
+ #ifndef BB9G45_H
+@@ -8,10 +8,20 @@
+ 
+ /*
+  * USB HS Host port (common to OHCI & EHCI)
++ * With the OTG functionality the power of the connector
++ * must be off. AT91 OTG is not yet functional/ready, so the
++ * J3 port can be used as host or device chosen from here.
+  */
+ static struct at91_usbh_data __initdata pm9g45_usbh_hs_data = {
++#if defined(CONFIG_MACH_BB9G45_USB_OTG) /* FIXME: AT91 OTG is not ready YET */
++#error "AT91 OTG is not ready yet ."
++#elif defined(CONFIG_MACH_BB9G45_USB_HOST)
+ 	.ports		= 2,
+ 	.vbus_pin	= { AT91_PIN_PD0, AT91_PIN_PD8},
++#else /* act as USB device CONFIG_MACH_BB9G45_USB_DEVICE */
++	.ports		= 1,
++	.vbus_pin	= { AT91_PIN_PD0 },
++#endif
+ };
+ 
+ /*
+-- 
+1.7.4.4
+
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/2.6.30-at91-exp.patch b/recipes/linux/linux-2.6.30/ronetix-pm9g45/2.6.30-at91-exp.patch
deleted file mode 100644
index 8f6b9f5..0000000
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/2.6.30-at91-exp.patch
+++ /dev/null
@@ -1,33460 +0,0 @@
-From 460964e13607480ec141bd72fc76c5af52989175 Mon Sep 17 00:00:00 2001
-From: nferre <nferre at 50fbe906-d41e-0410-8a96-31537896a350>
-Date: Wed, 14 Oct 2009 13:31:17 +0000
-Subject: [PATCH] at91: dm9000 initialization update
-
-Add information in dm9000 mac/phy chip initialization:
-- irq resource details
-- platform data details
-
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-
-git-svn-id: svn://rfolxts01.rfo.atmel.com/at91_sandbox/linux-2.6.x/branches/linux-2.6.30-at91@11572 50fbe906-d41e-0410-8a96-31537896a350
----
- arch/arm/mach-at91/board-sam9261ek.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-Index: linux-2.6.30/arch/arm/mach-at91/board-sam9261ek.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/board-sam9261ek.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/board-sam9261ek.c	2011-02-01 16:40:30.145073648 +0100
-@@ -93,11 +93,12 @@
- 		.start	= AT91_PIN_PC11,
- 		.end	= AT91_PIN_PC11,
- 		.flags	= IORESOURCE_IRQ
-+			| IORESOURCE_IRQ_LOWEDGE | IORESOURCE_IRQ_HIGHEDGE,
- 	}
- };
- 
- static struct dm9000_plat_data dm9000_platdata = {
--	.flags		= DM9000_PLATF_16BITONLY,
-+	.flags		= DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM,
- };
- 
- static struct platform_device dm9000_device = {
-@@ -287,7 +288,11 @@
-  */
- static struct at73c213_board_info at73c213_data = {
- 	.ssc_id		= 1,
-+#if defined(CONFIG_MACH_AT91SAM9261EK)
- 	.shortname	= "AT91SAM9261-EK external DAC",
-+#else
-+	.shortname	= "AT91SAM9G10-EK external DAC",
-+#endif
- };
- 
- #if defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
-@@ -414,6 +419,9 @@
- 	.default_monspecs		= &at91fb_default_stn_monspecs,
- 	.atmel_lcdfb_power_control	= at91_lcdc_stn_power_control,
- 	.guard_time			= 1,
-+#if defined(CONFIG_MACH_AT91SAM9G10EK)
-+	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
-+#endif
- };
- 
- #else
-@@ -467,6 +475,9 @@
- 	.default_monspecs		= &at91fb_default_tft_monspecs,
- 	.atmel_lcdfb_power_control	= at91_lcdc_tft_power_control,
- 	.guard_time			= 1,
-+#if defined(CONFIG_MACH_AT91SAM9G10EK)
-+	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
-+#endif
- };
- #endif
- 
-@@ -603,7 +614,11 @@
- 				| AT91_SHDW_RTTWKEN);
- }
- 
-+#if defined(CONFIG_MACH_AT91SAM9261EK)
- MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK")
-+#else
-+MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
-+#endif
- 	/* Maintainer: Atmel */
- 	.phys_io	= AT91_BASE_SYS,
- 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
-Index: linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/board-sam9g20ek.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek.c	2011-02-01 16:40:30.193007582 +0100
-@@ -37,6 +37,8 @@
- 
- #include <mach/board.h>
- #include <mach/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
- #include <mach/at91sam9_smc.h>
- 
- #include "sam9_smc.h"
-@@ -193,11 +195,12 @@
- 
- /*
-  * MCI (SD/MMC)
-- * det_pin, wp_pin and vcc_pin are not connected
-+ * wp_pin and vcc_pin are not connected
-  */
- static struct at91_mmc_data __initdata ek_mmc_data = {
- 	.slot_b		= 1,
- 	.wire4		= 1,
-+	.det_pin	= AT91_PIN_PC9,
- };
- 
- 
-@@ -218,6 +221,65 @@
- 	}
- };
- 
-+/*
-+ * GPIO Buttons
-+ */
-+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
-+static struct gpio_keys_button ek_buttons[] = {
-+	{
-+		.gpio		= AT91_PIN_PA30,
-+		.code		= BTN_3,
-+		.desc		= "Button 3",
-+		.active_low	= 1,
-+		.wakeup		= 1,
-+	},
-+	{
-+		.gpio		= AT91_PIN_PA31,
-+		.code		= BTN_4,
-+		.desc		= "Button 4",
-+		.active_low	= 1,
-+		.wakeup		= 1,
-+	}
-+};
-+
-+static struct gpio_keys_platform_data ek_button_data = {
-+	.buttons	= ek_buttons,
-+	.nbuttons	= ARRAY_SIZE(ek_buttons),
-+};
-+
-+static struct platform_device ek_button_device = {
-+	.name		= "gpio-keys",
-+	.id		= -1,
-+	.num_resources	= 0,
-+	.dev		= {
-+		.platform_data	= &ek_button_data,
-+	}
-+};
-+
-+static void __init ek_add_device_buttons(void)
-+{
-+	at91_set_gpio_input(AT91_PIN_PA30, 1);	/* btn3 */
-+	at91_set_deglitch(AT91_PIN_PA30, 1);
-+	at91_set_gpio_input(AT91_PIN_PA31, 1);	/* btn4 */
-+	at91_set_deglitch(AT91_PIN_PA31, 1);
-+
-+	platform_device_register(&ek_button_device);
-+}
-+#else
-+static void __init ek_add_device_buttons(void) {}
-+#endif
-+
-+/*
-+ * I2C
-+ */
-+static struct i2c_board_info __initdata ek_i2c_devices[] = {
-+	{
-+		I2C_BOARD_INFO("24c512", 0x50),
-+		I2C_BOARD_INFO("wm8731", 0x1b),
-+	},
-+};
-+
-+
- static void __init ek_board_init(void)
- {
- 	/* Serial */
-@@ -235,9 +297,11 @@
- 	/* MMC */
- 	at91_add_device_mmc(0, &ek_mmc_data);
- 	/* I2C */
--	at91_add_device_i2c(NULL, 0);
-+	at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
- 	/* LEDs */
- 	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
-+	/* Push Buttons */
-+	ek_add_device_buttons();
- 	/* PCK0 provides MCLK to the WM8731 */
- 	at91_set_B_periph(AT91_PIN_PC1, 0);
- 	/* SSC (for WM8731) */
-Index: linux-2.6.30/arch/arm/mach-at91/board-sam9rlek.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/board-sam9rlek.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/board-sam9rlek.c	2011-02-01 16:40:30.165043750 +0100
-@@ -15,6 +15,8 @@
- #include <linux/spi/spi.h>
- #include <linux/fb.h>
- #include <linux/clk.h>
-+#include <linux/input.h>
-+#include <linux/gpio_keys.h>
- 
- #include <video/atmel_lcdc.h>
- 
-@@ -186,19 +188,21 @@
- static void at91_lcdc_power_control(int on)
- {
- 	if (on)
--		at91_set_gpio_value(AT91_PIN_PA30, 0);	/* power up */
-+		at91_set_gpio_value(AT91_PIN_PC1, 0);	/* power up */
- 	else
--		at91_set_gpio_value(AT91_PIN_PA30, 1);	/* power down */
-+		at91_set_gpio_value(AT91_PIN_PC1, 1);	/* power down */
- }
- 
- /* Driver datas */
- static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
-+	.lcdcon_is_backlight            = true,
- 	.default_bpp			= 16,
- 	.default_dmacon			= ATMEL_LCDC_DMAEN,
- 	.default_lcdcon2		= AT91SAM9RL_DEFAULT_LCDCON2,
- 	.default_monspecs		= &at91fb_default_monspecs,
- 	.atmel_lcdfb_power_control	= at91_lcdc_power_control,
- 	.guard_time			= 1,
-+	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
- };
- 
- #else
-@@ -206,6 +210,97 @@
- #endif
- 
- 
-+/*
-+ * AC97
-+ * reset_pin is not connected: NRST
-+ */
-+static struct ac97c_platform_data ek_ac97_data = {
-+};
-+
-+
-+/*
-+ * LEDs
-+ */
-+static struct gpio_led ek_leds[] = {
-+	{	/* "bottom" led, green, userled1 to be defined */
-+		.name			= "ds1",
-+		.gpio			= AT91_PIN_PD15,
-+		.active_low		= 1,
-+		.default_trigger	= "none",
-+	},
-+	{	/* "bottom" led, green, userled2 to be defined */
-+		.name			= "ds2",
-+		.gpio			= AT91_PIN_PD16,
-+		.active_low		= 1,
-+		.default_trigger	= "none",
-+	},
-+	{	/* "power" led, yellow */
-+		.name			= "ds3",
-+		.gpio			= AT91_PIN_PD14,
-+		.default_trigger	= "heartbeat",
-+	}
-+};
-+
-+
-+/*
-+ * Touchscreen
-+ */
-+static struct at91_tsadcc_data ek_tsadcc_data = {
-+	.adc_clock		= 1000000,
-+	.pendet_debounce	= 0x0f,
-+	.ts_sample_hold_time	= 0x03,
-+};
-+
-+
-+/*
-+ * GPIO Buttons
-+ */
-+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
-+static struct gpio_keys_button ek_buttons[] = {
-+	{
-+		.gpio		= AT91_PIN_PB0,
-+		.code		= BTN_2,
-+		.desc		= "Right Click",
-+		.active_low	= 1,
-+		.wakeup		= 1,
-+	},
-+	{
-+		.gpio		= AT91_PIN_PB1,
-+		.code		= BTN_1,
-+		.desc		= "Left Click",
-+		.active_low	= 1,
-+		.wakeup		= 1,
-+	}
-+};
-+
-+static struct gpio_keys_platform_data ek_button_data = {
-+	.buttons	= ek_buttons,
-+	.nbuttons	= ARRAY_SIZE(ek_buttons),
-+};
-+
-+static struct platform_device ek_button_device = {
-+	.name		= "gpio-keys",
-+	.id		= -1,
-+	.num_resources	= 0,
-+	.dev		= {
-+		.platform_data	= &ek_button_data,
-+	}
-+};
-+
-+static void __init ek_add_device_buttons(void)
-+{
-+	at91_set_gpio_input(AT91_PIN_PB1, 1);	/* btn1 */
-+	at91_set_deglitch(AT91_PIN_PB1, 1);
-+	at91_set_gpio_input(AT91_PIN_PB0, 1);	/* btn2 */
-+	at91_set_deglitch(AT91_PIN_PB0, 1);
-+
-+	platform_device_register(&ek_button_device);
-+}
-+#else
-+static void __init ek_add_device_buttons(void) {}
-+#endif
-+
-+
- static void __init ek_board_init(void)
- {
- 	/* Serial */
-@@ -222,8 +317,14 @@
- 	at91_add_device_mmc(0, &ek_mmc_data);
- 	/* LCD Controller */
- 	at91_add_device_lcdc(&ek_lcdc_data);
-+	/* AC97 */
-+	at91_add_device_ac97(&ek_ac97_data);
- 	/* Touch Screen Controller */
--	at91_add_device_tsadcc();
-+	at91_add_device_tsadcc(&ek_tsadcc_data);
-+	/* LEDs */
-+	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
-+	/* Push Buttons */
-+	ek_add_device_buttons();
- 	/* shutdown controller, wakeup button (5 msec low) */
- 	at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW
- 				| AT91_SHDW_RTTWKEN);
-Index: linux-2.6.30/arch/avr32/mach-at32ap/include/mach/cpu.h
-===================================================================
---- linux-2.6.30.orig/arch/avr32/mach-at32ap/include/mach/cpu.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/avr32/mach-at32ap/include/mach/cpu.h	2011-02-01 16:40:30.165043750 +0100
-@@ -31,5 +31,8 @@
- #define cpu_is_at91sam9263()	(0)
- #define cpu_is_at91sam9rl()	(0)
- #define cpu_is_at91cap9()	(0)
-+#define cpu_is_at91sam9g10()	(0)
-+#define cpu_is_at91sam9g45()	(0)
-+#define cpu_is_at91sam9g45es()	(0)
- 
- #endif /* __ASM_ARCH_CPU_H */
-Index: linux-2.6.30/arch/arm/mach-at91/clock.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/clock.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/clock.c	2011-02-01 16:40:30.141043034 +0100
-@@ -44,6 +44,30 @@
- #define clk_is_sys(x)		((x)->type & CLK_TYPE_SYSTEM)
- 
- 
-+/*
-+ * Chips have some kind of clocks : group them by functionality
-+ */
-+#define cpu_has_utmi()		(  cpu_is_at91cap9() \
-+				|| cpu_is_at91sam9rl() \
-+				|| cpu_is_at91sam9g45())
-+
-+#define cpu_has_800M_plla()	(  cpu_is_at91sam9g20() \
-+				|| cpu_is_at91sam9g45())
-+
-+#define cpu_has_300M_plla()	(cpu_is_at91sam9g10())
-+
-+#define cpu_has_pllb()		(!(cpu_is_at91sam9rl() \
-+				|| cpu_is_at91sam9g45()))
-+
-+#define cpu_has_upll()		(cpu_is_at91sam9g45())
-+
-+/* USB host HS & FS */
-+#define cpu_has_uhp()		(!cpu_is_at91sam9rl())
-+
-+/* USB device FS only */
-+#define cpu_has_udpfs()		(!(cpu_is_at91sam9rl() \
-+				|| cpu_is_at91sam9g45()))
-+
- static LIST_HEAD(clocks);
- static DEFINE_SPINLOCK(clk_lock);
- 
-@@ -115,6 +139,13 @@
- {
- 	unsigned int uckr = at91_sys_read(AT91_CKGR_UCKR);
- 
-+	if (cpu_is_at91sam9g45()) {
-+		if (is_on)
-+			uckr |= AT91_PMC_BIASEN;
-+		else
-+			uckr &= ~AT91_PMC_BIASEN;
-+	}
-+
- 	if (is_on) {
- 		is_on = AT91_PMC_LOCKU;
- 		at91_sys_write(AT91_CKGR_UCKR, uckr | clk->pmc_mask);
-@@ -141,7 +172,7 @@
- };
- static struct clk uhpck = {
- 	.name		= "uhpck",
--	.parent		= &pllb,
-+	/*.parent		= ... we choose parent at runtime */
- 	.mode		= pmc_sys_mode,
- };
- 
-@@ -174,7 +205,11 @@
- 		case AT91_PMC_CSS_PLLA:
- 			return &plla;
- 		case AT91_PMC_CSS_PLLB:
--			return &pllb;
-+			if (cpu_has_upll())
-+				/* CSS_PLLB == CSS_UPLL */
-+				return &utmi_clk;
-+			else if (cpu_has_pllb())
-+				return &pllb;
- 	}
- 
- 	return NULL;
-@@ -305,6 +340,7 @@
- 	unsigned long	flags;
- 	unsigned	prescale;
- 	unsigned long	actual;
-+	unsigned long	prev = ULONG_MAX;
- 
- 	if (!clk_is_programmable(clk))
- 		return -EINVAL;
-@@ -312,8 +348,16 @@
- 
- 	actual = clk->parent->rate_hz;
- 	for (prescale = 0; prescale < 7; prescale++) {
--		if (actual && actual <= rate)
-+		if (actual > rate)
-+			prev = actual;
-+
-+		if (actual && actual <= rate) {
-+			if ((prev - rate) < (rate - actual)) {
-+				actual = prev;
-+				prescale--;
-+			}
- 			break;
-+		}
- 		actual >>= 1;
- 	}
- 
-@@ -340,7 +384,7 @@
- 			u32	pckr;
- 
- 			pckr = at91_sys_read(AT91_PMC_PCKR(clk->id));
--			pckr &= AT91_PMC_CSS_PLLB;	/* clock selection */
-+			pckr &= AT91_PMC_CSS;	/* clock selection */
- 			pckr |= prescale << 2;
- 			at91_sys_write(AT91_PMC_PCKR(clk->id), pckr);
- 			clk->rate_hz = actual;
-@@ -368,6 +412,10 @@
- 		return -EBUSY;
- 	if (!clk_is_primary(parent) || !clk_is_programmable(clk))
- 		return -EINVAL;
-+
-+	if (cpu_is_at91sam9rl() && parent->id == AT91_PMC_CSS_PLLB)
-+		return -EINVAL;
-+
- 	spin_lock_irqsave(&clk_lock, flags);
- 
- 	clk->rate_hz = parent->rate_hz;
-@@ -379,7 +427,7 @@
- }
- EXPORT_SYMBOL(clk_set_parent);
- 
--/* establish PCK0..PCK4 parentage and rate */
-+/* establish PCK0..PCKN parentage and rate */
- static void __init init_programmable_clock(struct clk *clk)
- {
- 	struct clk	*parent;
-@@ -407,11 +455,13 @@
- 	seq_printf(s, "MOR  = %8x\n", at91_sys_read(AT91_CKGR_MOR));
- 	seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR));
- 	seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR));
--	if (!cpu_is_at91sam9rl())
-+	if (cpu_has_pllb())
- 		seq_printf(s, "PLLB = %8x\n", at91_sys_read(AT91_CKGR_PLLBR));
--	if (cpu_is_at91cap9() || cpu_is_at91sam9rl())
-+	if (cpu_has_utmi())
- 		seq_printf(s, "UCKR = %8x\n", uckr = at91_sys_read(AT91_CKGR_UCKR));
- 	seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR));
-+	if (cpu_has_upll())
-+		seq_printf(s, "USB  = %8x\n", at91_sys_read(AT91_PMC_USB));
- 	seq_printf(s, "SR   = %8x\n", sr = at91_sys_read(AT91_PMC_SR));
- 
- 	seq_printf(s, "\n");
-@@ -572,20 +622,67 @@
- 	&clk32k,
- 	&main_clk,
- 	&plla,
--	&pllb,
--
--	/* PLLB children (USB) */
--	&udpck,
--	&uhpck,
- 
- 	/* MCK */
- 	&mck
- };
- 
-+/* PLLB generated USB full speed clock init */
-+static void __init at91_pllb_usbfs_clock_init(unsigned long main_clock)
-+{
-+	/*
-+	 * USB clock init:  choose 48 MHz PLLB value,
-+	 * disable 48MHz clock during usb peripheral suspend.
-+	 *
-+	 * REVISIT:  assumes MCK doesn't derive from PLLB!
-+	 */
-+	uhpck.parent = &pllb;
-+
-+	at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2) | AT91_PMC_USB96M;
-+	pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init);
-+	if (cpu_is_at91rm9200()) {
-+		uhpck.pmc_mask = AT91RM9200_PMC_UHP;
-+		udpck.pmc_mask = AT91RM9200_PMC_UDP;
-+		at91_sys_write(AT91_PMC_SCER, AT91RM9200_PMC_MCKUDP);
-+	} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() ||
-+		   cpu_is_at91sam9263() || cpu_is_at91sam9g20() ||
-+		   cpu_is_at572d940hf() || cpu_is_at91sam9g10()) {
-+		uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
-+		udpck.pmc_mask = AT91SAM926x_PMC_UDP;
-+	} else if (cpu_is_at91cap9()) {
-+		uhpck.pmc_mask = AT91CAP9_PMC_UHP;
-+	}
-+	at91_sys_write(AT91_CKGR_PLLBR, 0);
-+
-+	udpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
-+	uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
-+}
-+
-+/* UPLL generated USB full speed clock init */
-+static void __init at91_upll_usbfs_clock_init(unsigned long main_clock)
-+{
-+	/*
-+	 * USB clock init: choose 480 MHz from UPLL,
-+	 */
-+	unsigned int usbr = AT91_PMC_USBS_UPLL;
-+
-+	/* Setup divider by 10 to reach 48 MHz */
-+	usbr |= ((10 - 1) << 8) & AT91_PMC_OHCIUSBDIV;
-+
-+	at91_sys_write(AT91_PMC_USB, usbr);
-+
-+	/* Now set uhpck values */
-+	uhpck.parent = &utmi_clk;
-+	uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
-+	uhpck.rate_hz = utmi_clk.parent->rate_hz;
-+	uhpck.rate_hz /= 1 + ((at91_sys_read(AT91_PMC_USB) & AT91_PMC_OHCIUSBDIV) >> 8);
-+}
-+
- int __init at91_clock_init(unsigned long main_clock)
- {
- 	unsigned tmp, freq, mckr;
- 	int i;
-+	int pll_overclock = false;
- 
- 	/*
- 	 * When the bootloader initialized the main oscillator correctly,
-@@ -603,43 +700,50 @@
- 
- 	/* report if PLLA is more than mildly overclocked */
- 	plla.rate_hz = at91_pll_rate(&plla, main_clock, at91_sys_read(AT91_CKGR_PLLAR));
--	if ((!cpu_is_at91sam9g20() && plla.rate_hz > 209000000)
--	   || (cpu_is_at91sam9g20() && plla.rate_hz > 800000000))
-+	if (cpu_has_300M_plla()) {
-+		if (plla.rate_hz > 300000000)
-+			pll_overclock = true;
-+	} else if (cpu_has_800M_plla()) {
-+		if (plla.rate_hz > 800000000)
-+			pll_overclock = true;
-+	} else {
-+		if (plla.rate_hz > 209000000)
-+			pll_overclock = true;
-+	}
-+	if (pll_overclock)
- 		pr_info("Clocks: PLLA overclocked, %ld MHz\n", plla.rate_hz / 1000000);
- 
--	/*
--	 * USB clock init:  choose 48 MHz PLLB value,
--	 * disable 48MHz clock during usb peripheral suspend.
--	 *
--	 * REVISIT:  assumes MCK doesn't derive from PLLB!
--	 */
--	at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2) | AT91_PMC_USB96M;
--	pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init);
--	if (cpu_is_at91rm9200()) {
--		uhpck.pmc_mask = AT91RM9200_PMC_UHP;
--		udpck.pmc_mask = AT91RM9200_PMC_UDP;
--		at91_sys_write(AT91_PMC_SCER, AT91RM9200_PMC_MCKUDP);
--	} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263() || cpu_is_at91sam9g20() || cpu_is_at572d940hf()) {
--		uhpck.pmc_mask = AT91SAM926x_PMC_UHP;
--		udpck.pmc_mask = AT91SAM926x_PMC_UDP;
--	} else if (cpu_is_at91cap9()) {
--		uhpck.pmc_mask = AT91CAP9_PMC_UHP;
-+	if (cpu_is_at91sam9g45()) {
-+		mckr = at91_sys_read(AT91_PMC_MCKR);
-+		plla.rate_hz /= (1 << ((mckr & AT91_PMC_PLLADIV2) >> 12));	/* plla divisor by 2 */
-+	}
-+
-+	if (cpu_has_upll() && !cpu_has_pllb()) {
-+		/* setup UTMI clock as the fourth primary clock
-+		 * (instead of pllb) */
-+		utmi_clk.type |= CLK_TYPE_PRIMARY;
-+		utmi_clk.id = 3;
- 	}
--	at91_sys_write(AT91_CKGR_PLLBR, 0);
- 
--	udpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
--	uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
- 
- 	/*
- 	 * USB HS clock init
- 	 */
--	if (cpu_is_at91cap9() || cpu_is_at91sam9rl()) {
-+	if (cpu_has_utmi())
- 		/*
- 		 * multiplier is hard-wired to 40
- 		 * (obtain the USB High Speed 480 MHz when input is 12 MHz)
- 		 */
- 		utmi_clk.rate_hz = 40 * utmi_clk.parent->rate_hz;
--	}
-+
-+	/*
-+	 * USB FS clock init
-+	 */
-+	if (cpu_has_pllb())
-+		at91_pllb_usbfs_clock_init(main_clock);
-+	if (cpu_has_upll())
-+		/* assumes that we choose UPLL for USB and not PLLA */
-+		at91_upll_usbfs_clock_init(main_clock);
- 
- 	/*
- 	 * MCK and CPU derive from one of those primary clocks.
-@@ -649,21 +753,34 @@
- 	mck.parent = at91_css_to_clk(mckr & AT91_PMC_CSS);
- 	freq = mck.parent->rate_hz;
- 	freq /= (1 << ((mckr & AT91_PMC_PRES) >> 2));				/* prescale */
--	if (cpu_is_at91rm9200())
-+	if (cpu_is_at91rm9200()) {
- 		mck.rate_hz = freq / (1 + ((mckr & AT91_PMC_MDIV) >> 8));	/* mdiv */
--	else if (cpu_is_at91sam9g20()) {
-+	} else if (cpu_is_at91sam9g20()) {
- 		mck.rate_hz = (mckr & AT91_PMC_MDIV) ?
- 			freq / ((mckr & AT91_PMC_MDIV) >> 7) : freq;	/* mdiv ; (x >> 7) = ((x >> 8) * 2) */
- 		if (mckr & AT91_PMC_PDIV)
- 			freq /= 2;		/* processor clock division */
--	} else
--		mck.rate_hz = freq / (1 << ((mckr & AT91_PMC_MDIV) >> 8));	/* mdiv */
-+	} else if (cpu_is_at91sam9g45()) {
-+		mck.rate_hz = (mckr & AT91_PMC_MDIV) == AT91SAM9_PMC_MDIV_3 ?
-+			freq / 3 : freq / (1 << ((mckr & AT91_PMC_MDIV) >> 8));	/* mdiv */
-+	} else {
-+		mck.rate_hz = freq / (1 << ((mckr & AT91_PMC_MDIV) >> 8));      /* mdiv */
-+	}
- 
- 	/* Register the PMC's standard clocks */
- 	for (i = 0; i < ARRAY_SIZE(standard_pmc_clocks); i++)
- 		list_add_tail(&standard_pmc_clocks[i]->node, &clocks);
- 
--	if (cpu_is_at91cap9() || cpu_is_at91sam9rl())
-+	if (cpu_has_pllb())
-+		list_add_tail(&pllb.node, &clocks);
-+
-+	if (cpu_has_uhp())
-+		list_add_tail(&uhpck.node, &clocks);
-+
-+	if (cpu_has_udpfs())
-+		list_add_tail(&udpck.node, &clocks);
-+
-+	if (cpu_has_utmi())
- 		list_add_tail(&utmi_clk.node, &clocks);
- 
- 	/* MCK and CPU clock are "always on" */
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/at91_pmc.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/include/mach/at91_pmc.h	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/at91_pmc.h	2011-02-01 16:40:30.133004041 +0100
-@@ -23,7 +23,7 @@
- #define		AT91_PMC_PCK		(1 <<  0)		/* Processor Clock */
- #define		AT91RM9200_PMC_UDP	(1 <<  1)		/* USB Devcice Port Clock [AT91RM9200 only] */
- #define		AT91RM9200_PMC_MCKUDP	(1 <<  2)		/* USB Device Port Master Clock Automatic Disable on Suspend [AT91RM9200 only] */
--#define		AT91CAP9_PMC_DDR	(1 <<  2)		/* DDR Clock [AT91CAP9 revC only] */
-+#define		AT91CAP9_PMC_DDR	(1 <<  2)		/* DDR Clock [CAP9 revC & some SAM9 only] */
- #define		AT91RM9200_PMC_UHP	(1 <<  4)		/* USB Host Port Clock [AT91RM9200 only] */
- #define		AT91SAM926x_PMC_UHP	(1 <<  6)		/* USB Host Port Clock [AT91SAM926x only] */
- #define		AT91CAP9_PMC_UHP	(1 <<  6)		/* USB Host Port Clock [AT91CAP9 only] */
-@@ -40,11 +40,11 @@
- #define	AT91_PMC_PCDR		(AT91_PMC + 0x14)	/* Peripheral Clock Disable Register */
- #define	AT91_PMC_PCSR		(AT91_PMC + 0x18)	/* Peripheral Clock Status Register */
- 
--#define	AT91_CKGR_UCKR		(AT91_PMC + 0x1C)	/* UTMI Clock Register [SAM9RL, CAP9] */
-+#define	AT91_CKGR_UCKR		(AT91_PMC + 0x1C)	/* UTMI Clock Register [some SAM9, CAP9] */
- #define		AT91_PMC_UPLLEN		(1   << 16)		/* UTMI PLL Enable */
- #define		AT91_PMC_UPLLCOUNT	(0xf << 20)		/* UTMI PLL Start-up Time */
- #define		AT91_PMC_BIASEN		(1   << 24)		/* UTMI BIAS Enable */
--#define		AT91_PMC_BIASCOUNT	(0xf << 28)		/* UTMI PLL Start-up Time */
-+#define		AT91_PMC_BIASCOUNT	(0xf << 28)		/* UTMI BIAS Start-up Time */
- 
- #define	AT91_CKGR_MOR		(AT91_PMC + 0x20)	/* Main Oscillator Register [not on SAM9RL] */
- #define		AT91_PMC_MOSCEN		(1    << 0)		/* Main Oscillator Enable */
-@@ -73,6 +73,7 @@
- #define			AT91_PMC_CSS_MAIN		(1 << 0)
- #define			AT91_PMC_CSS_PLLA		(2 << 0)
- #define			AT91_PMC_CSS_PLLB		(3 << 0)
-+#define			AT91_PMC_CSS_UPLL		(3 << 0)	/* [some SAM9 only] */
- #define		AT91_PMC_PRES		(7 <<  2)		/* Master Clock Prescaler */
- #define			AT91_PMC_PRES_1			(0 << 2)
- #define			AT91_PMC_PRES_2			(1 << 2)
-@@ -89,12 +90,25 @@
- #define			AT91SAM9_PMC_MDIV_1		(0 << 8)	/* [SAM9,CAP9 only] */
- #define			AT91SAM9_PMC_MDIV_2		(1 << 8)
- #define			AT91SAM9_PMC_MDIV_4		(2 << 8)
--#define			AT91SAM9_PMC_MDIV_6		(3 << 8)
-+#define			AT91SAM9_PMC_MDIV_6		(3 << 8)	/* [some SAM9 only] */
-+#define			AT91SAM9_PMC_MDIV_3		(3 << 8)	/* [some SAM9 only] */
- #define		AT91_PMC_PDIV		(1 << 12)		/* Processor Clock Division [some SAM9 only] */
- #define			AT91_PMC_PDIV_1			(0 << 12)
- #define			AT91_PMC_PDIV_2			(1 << 12)
--
--#define	AT91_PMC_PCKR(n)	(AT91_PMC + 0x40 + ((n) * 4))	/* Programmable Clock 0-4 Registers */
-+#define		AT91_PMC_PLLADIV2	(1 << 12)		/* PLLA divisor by 2 [some SAM9 only] */
-+#define			AT91_PMC_PLLADIV2_OFF		(0 << 12)
-+#define			AT91_PMC_PLLADIV2_ON		(1 << 12)
-+
-+#define	AT91_PMC_USB		(AT91_PMC + 0x38)	/* USB Clock Register [some SAM9 only] */
-+#define		AT91_PMC_USBS		(0x1 <<  0)		/* USB OHCI Input clock selection */
-+#define			AT91_PMC_USBS_PLLA		(0 << 0)
-+#define			AT91_PMC_USBS_UPLL		(1 << 0)
-+#define		AT91_PMC_OHCIUSBDIV	(0xF <<  8)		/* Divider for USB OHCI Clock */
-+
-+#define	AT91_PMC_PCKR(n)	(AT91_PMC + 0x40 + ((n) * 4))	/* Programmable Clock 0-N Registers */
-+#define		AT91_PMC_CSSMCK		(0x1 <<  8)		/* CSS or Master Clock Selection */
-+#define			AT91_PMC_CSSMCK_CSS		(0 << 8)
-+#define			AT91_PMC_CSSMCK_MCK		(1 << 8)
- 
- #define	AT91_PMC_IER		(AT91_PMC + 0x60)	/* Interrupt Enable Register */
- #define	AT91_PMC_IDR		(AT91_PMC + 0x64)	/* Interrupt Disable Register */
-@@ -103,7 +117,7 @@
- #define		AT91_PMC_LOCKA		(1 <<  1)		/* PLLA Lock */
- #define		AT91_PMC_LOCKB		(1 <<  2)		/* PLLB Lock */
- #define		AT91_PMC_MCKRDY		(1 <<  3)		/* Master Clock */
--#define		AT91_PMC_LOCKU		(1 <<  6)		/* UPLL Lock [AT91CAP9 only] */
-+#define		AT91_PMC_LOCKU		(1 <<  6)		/* UPLL Lock [some SAM9, AT91CAP9 only] */
- #define		AT91_PMC_OSCSEL		(1 <<  7)		/* Slow Clock Oscillator [AT91CAP9 revC only] */
- #define		AT91_PMC_PCK0RDY	(1 <<  8)		/* Programmable Clock 0 */
- #define		AT91_PMC_PCK1RDY	(1 <<  9)		/* Programmable Clock 1 */
-Index: linux-2.6.30/drivers/serial/atmel_serial.c
-===================================================================
---- linux-2.6.30.orig/drivers/serial/atmel_serial.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/serial/atmel_serial.c	2011-02-01 16:40:30.133004041 +0100
-@@ -1104,11 +1104,13 @@
- 	/* update the per-port timeout */
- 	uart_update_timeout(port, termios->c_cflag, baud);
- 
--	/* save/disable interrupts and drain transmitter */
-+	/*
-+	 * save/disable interrupts. The tty layer will ensure that the
-+	 * transmitter is empty if requested by the caller, so there's
-+	 * no need to wait for it here.
-+	 */
- 	imr = UART_GET_IMR(port);
- 	UART_PUT_IDR(port, -1);
--	while (!(UART_GET_CSR(port) & ATMEL_US_TXEMPTY))
--		cpu_relax();
- 
- 	/* disable receiver and transmitter */
- 	UART_PUT_CR(port, ATMEL_US_TXDIS | ATMEL_US_RXDIS);
-Index: linux-2.6.30/drivers/usb/gadget/atmel_usba_udc.c
-===================================================================
---- linux-2.6.30.orig/drivers/usb/gadget/atmel_usba_udc.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/usb/gadget/atmel_usba_udc.c	2011-02-01 16:40:30.137041993 +0100
-@@ -326,13 +326,7 @@
- 	return 1;
- }
- 
--#if defined(CONFIG_AVR32)
--
--static void toggle_bias(int is_on)
--{
--}
--
--#elif defined(CONFIG_ARCH_AT91)
-+#if defined(CONFIG_ARCH_AT91SAM9RL)
- 
- #include <mach/at91_pmc.h>
- 
-@@ -346,7 +340,13 @@
- 		at91_sys_write(AT91_CKGR_UCKR, uckr & ~(AT91_PMC_BIASEN));
- }
- 
--#endif /* CONFIG_ARCH_AT91 */
-+#else
-+
-+static void toggle_bias(int is_on)
-+{
-+}
-+
-+#endif /* CONFIG_ARCH_AT91SAM9RL */
- 
- static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
- {
-Index: linux-2.6.30/drivers/net/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/net/Kconfig	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/net/Kconfig	2011-02-01 16:40:30.141043034 +0100
-@@ -219,7 +219,7 @@
- 
- config MACB
- 	tristate "Atmel MACB support"
--	depends on AVR32 || ARCH_AT91SAM9260 || ARCH_AT91SAM9263 || ARCH_AT91SAM9G20 || ARCH_AT91CAP9 || ARCH_AT572D940HF
-+	depends on AVR32 || ARCH_AT91SAM9260 || ARCH_AT91SAM9263 || ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45 || ARCH_AT91CAP9 || ARCH_AT572D940HF
- 	select PHYLIB
- 	help
- 	  The Atmel MACB ethernet interface is found on many AT32 and AT91
-@@ -228,6 +228,12 @@
- 	  To compile this driver as a module, choose M here: the module
- 	  will be called macb.
- 
-+config MACB_TX_SRAM
-+	bool "Atmel MACB TX buffers in internal SRAM"
-+	depends on NET_ETHERNET && MACB && (ARCH_AT91SAM9260 || ARCH_AT91SAM9263)
-+	help
-+		Use internal SRAM for TX buffers.
-+
- source "drivers/net/arm/Kconfig"
- 
- config AX88796
-Index: linux-2.6.30/drivers/net/macb.c
-===================================================================
---- linux-2.6.30.orig/drivers/net/macb.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/net/macb.c	2011-02-01 16:40:30.169008345 +0100
-@@ -33,9 +33,21 @@
- /* Make the IP header word-aligned (the ethernet header is 14 bytes) */
- #define RX_OFFSET		2
- 
--#define TX_RING_SIZE		128
-+#if defined(CONFIG_ARCH_AT91) && defined(CONFIG_MACB_TX_SRAM)
-+	#if defined(CONFIG_ARCH_AT91SAM9260)
-+		#define TX_RING_SIZE       2
-+	#elif defined(CONFIG_ARCH_AT91SAM9263)
-+		#define TX_RING_SIZE       32
-+	#endif
-+	#define TX_BUFFER_SIZE       1536
-+	#define TX_RING_BYTES        (sizeof(struct dma_desc) * TX_RING_SIZE)
-+	#define TX_DMA_SIZE      ((TX_RING_BYTES) + (TX_RING_SIZE) * (TX_BUFFER_SIZE))
-+#else
-+	#define TX_RING_SIZE     128
-+	#define TX_RING_BYTES        (sizeof(struct dma_desc) * TX_RING_SIZE)
-+#endif
-+
- #define DEF_TX_RING_PENDING	(TX_RING_SIZE - 1)
--#define TX_RING_BYTES		(sizeof(struct dma_desc) * TX_RING_SIZE)
- 
- #define TX_RING_GAP(bp)						\
- 	(TX_RING_SIZE - (bp)->tx_pending)
-@@ -378,8 +390,10 @@
- 
- 		dev_dbg(&bp->pdev->dev, "skb %u (data %p) TX complete\n",
- 			tail, skb->data);
-+#if !defined(CONFIG_MACB_TX_SRAM)
- 		dma_unmap_single(&bp->pdev->dev, rp->mapping, skb->len,
- 				 DMA_TO_DEVICE);
-+#endif
- 		bp->stats.tx_packets++;
- 		bp->stats.tx_bytes += skb->len;
- 		rp->skb = NULL;
-@@ -635,8 +649,13 @@
- 
- 	entry = bp->tx_head;
- 	dev_dbg(&bp->pdev->dev, "Allocated ring entry %u\n", entry);
-+#if defined(CONFIG_ARCH_AT91) && defined(CONFIG_MACB_TX_SRAM)
-+	mapping = bp->tx_ring[entry].addr;
-+	memcpy(bp->tx_buffers + entry * TX_BUFFER_SIZE, skb->data, len);
-+#else
- 	mapping = dma_map_single(&bp->pdev->dev, skb->data,
- 				 len, DMA_TO_DEVICE);
-+#endif
- 	bp->tx_skb[entry].skb = skb;
- 	bp->tx_skb[entry].mapping = mapping;
- 	dev_dbg(&bp->pdev->dev, "Mapped skb data %p to DMA addr %08lx\n",
-@@ -647,7 +666,9 @@
- 	if (entry == (TX_RING_SIZE - 1))
- 		ctrl |= MACB_BIT(TX_WRAP);
- 
-+#if !defined(CONFIG_MACB_TX_SRAM)
- 	bp->tx_ring[entry].addr = mapping;
-+#endif
- 	bp->tx_ring[entry].ctrl = ctrl;
- 	wmb();
- 
-@@ -678,8 +699,12 @@
- 		bp->rx_ring = NULL;
- 	}
- 	if (bp->tx_ring) {
-+#if defined(CONFIG_ARCH_AT91) && defined(CONFIG_MACB_TX_SRAM)
-+		iounmap((void *)bp->tx_ring);
-+#else
- 		dma_free_coherent(&bp->pdev->dev, TX_RING_BYTES,
- 				  bp->tx_ring, bp->tx_ring_dma);
-+#endif
- 		bp->tx_ring = NULL;
- 	}
- 	if (bp->rx_buffers) {
-@@ -688,6 +713,11 @@
- 				  bp->rx_buffers, bp->rx_buffers_dma);
- 		bp->rx_buffers = NULL;
- 	}
-+
-+#if defined(CONFIG_ARCH_AT91) && defined(CONFIG_MACB_TX_SRAM)
-+	if (bp->tx_ring_dma)
-+		release_mem_region(bp->tx_ring_dma, TX_DMA_SIZE);
-+#endif
- }
- 
- static int macb_alloc_consistent(struct macb *bp)
-@@ -708,14 +738,45 @@
- 		"Allocated RX ring of %d bytes at %08lx (mapped %p)\n",
- 		size, (unsigned long)bp->rx_ring_dma, bp->rx_ring);
- 
-+#if defined(CONFIG_ARCH_AT91) && defined(CONFIG_MACB_TX_SRAM)
-+#if  defined(CONFIG_ARCH_AT91SAM9260)
-+	if (!cpu_is_at91sam9xe()
-+	&& request_mem_region(AT91SAM9260_SRAM0_BASE, TX_DMA_SIZE, "macb")) {
-+		bp->tx_ring_dma = AT91SAM9260_SRAM0_BASE;
-+	} else {
-+		if (request_mem_region(AT91SAM9260_SRAM1_BASE, TX_DMA_SIZE, "macb")) {
-+			bp->tx_ring_dma = AT91SAM9260_SRAM1_BASE;
-+		} else {
-+			printk(KERN_WARNING "Cannot request SRAM memory for TX ring, already used\n");
-+			return -EBUSY;
-+		}
-+	}
-+#elif defined(CONFIG_ARCH_AT91SAM9263)
-+	if (request_mem_region(AT91SAM9263_SRAM0_BASE, TX_DMA_SIZE, "macb")) {
-+		bp->tx_ring_dma = AT91SAM9263_SRAM0_BASE;
-+	} else {
-+		printk(KERN_WARNING "Cannot request SRAM memory for TX ring, already used\n");
-+		return -EBUSY;
-+	}
-+#endif
-+
-+	bp->tx_ring = ioremap(bp->tx_ring_dma, TX_DMA_SIZE);
-+	if (!bp->tx_ring)
-+		return -ENOMEM;
-+
-+	bp->tx_buffers_dma = bp->tx_ring_dma + TX_RING_BYTES;
-+	bp->tx_buffers = (char *) bp->tx_ring + TX_RING_BYTES;
-+#else
- 	size = TX_RING_BYTES;
- 	bp->tx_ring = dma_alloc_coherent(&bp->pdev->dev, size,
- 					 &bp->tx_ring_dma, GFP_KERNEL);
- 	if (!bp->tx_ring)
- 		goto out_err;
-+
- 	dev_dbg(&bp->pdev->dev,
- 		"Allocated TX ring of %d bytes at %08lx (mapped %p)\n",
- 		size, (unsigned long)bp->tx_ring_dma, bp->tx_ring);
-+#endif
- 
- 	size = RX_RING_SIZE * RX_BUFFER_SIZE;
- 	bp->rx_buffers = dma_alloc_coherent(&bp->pdev->dev, size,
-@@ -746,10 +807,18 @@
- 	}
- 	bp->rx_ring[RX_RING_SIZE - 1].addr |= MACB_BIT(RX_WRAP);
- 
-+#if defined(CONFIG_ARCH_AT91) && defined(CONFIG_MACB_TX_SRAM)
-+	for (i = 0; i < TX_RING_SIZE; i++) {
-+		bp->tx_ring[i].addr = bp->tx_buffers_dma + i * TX_BUFFER_SIZE;
-+		bp->tx_ring[i].ctrl = MACB_BIT(TX_USED);
-+	}
-+#else
- 	for (i = 0; i < TX_RING_SIZE; i++) {
- 		bp->tx_ring[i].addr = 0;
- 		bp->tx_ring[i].ctrl = MACB_BIT(TX_USED);
- 	}
-+#endif
-+
- 	bp->tx_ring[TX_RING_SIZE - 1].ctrl |= MACB_BIT(TX_WRAP);
- 
- 	bp->rx_tail = bp->tx_head = bp->tx_tail = 0;
-Index: linux-2.6.30/drivers/net/macb.h
-===================================================================
---- linux-2.6.30.orig/drivers/net/macb.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/net/macb.h	2011-02-01 16:40:30.137041993 +0100
-@@ -369,8 +369,13 @@
- 	struct dma_desc		*tx_ring;
- 	struct ring_info	*tx_skb;
- 
-+#if defined(CONFIG_ARCH_AT91)
-+	void            *tx_buffers;
-+#endif
-+
- 	spinlock_t		lock;
- 	struct platform_device	*pdev;
-+	struct clk      *macb_clk;
- 	struct clk		*pclk;
- 	struct clk		*hclk;
- 	struct net_device	*dev;
-@@ -382,6 +387,10 @@
- 	dma_addr_t		tx_ring_dma;
- 	dma_addr_t		rx_buffers_dma;
- 
-+#if defined(CONFIG_ARCH_AT91)
-+	dma_addr_t      tx_buffers_dma;
-+#endif
-+
- 	unsigned int		rx_pending, tx_pending;
- 
- 	struct mii_bus		*mii_bus;
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/at91sam9g45.h
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/at91sam9g45.h	2011-02-01 16:40:30.141043034 +0100
-@@ -0,0 +1,155 @@
-+/*
-+ * Chip-specific header file for the AT91SAM9G45 family
-+ *
-+ *  Copyright (C) 2008-2009 Atmel Corporation.
-+ *
-+ * Common definitions.
-+ * Based on AT91SAM9G45 preliminary datasheet.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ */
-+
-+#ifndef AT91SAM9G45_H
-+#define AT91SAM9G45_H
-+
-+/*
-+ * Peripheral identifiers/interrupts.
-+ */
-+#define AT91_ID_FIQ		0	/* Advanced Interrupt Controller (FIQ) */
-+#define AT91_ID_SYS		1	/* System Controller Interrupt */
-+#define AT91SAM9G45_ID_PIOA	2	/* Parallel I/O Controller A */
-+#define AT91SAM9G45_ID_PIOB	3	/* Parallel I/O Controller B */
-+#define AT91SAM9G45_ID_PIOC	4	/* Parallel I/O Controller C */
-+#define AT91SAM9G45_ID_PIODE	5	/* Parallel I/O Controller D and E */
-+#define AT91SAM9G45_ID_TRNG	6	/* True Random Number Generator */
-+#define AT91SAM9G45_ID_US0	7	/* USART 0 */
-+#define AT91SAM9G45_ID_US1	8	/* USART 1 */
-+#define AT91SAM9G45_ID_US2	9	/* USART 2 */
-+#define AT91SAM9G45_ID_US3	10	/* USART 3 */
-+#define AT91SAM9G45_ID_MCI0	11	/* High Speed Multimedia Card Interface 0 */
-+#define AT91SAM9G45_ID_TWI0	12	/* Two-Wire Interface 0 */
-+#define AT91SAM9G45_ID_TWI1	13	/* Two-Wire Interface 1 */
-+#define AT91SAM9G45_ID_SPI0	14	/* Serial Peripheral Interface 0 */
-+#define AT91SAM9G45_ID_SPI1	15	/* Serial Peripheral Interface 1 */
-+#define AT91SAM9G45_ID_SSC0	16	/* Synchronous Serial Controller 0 */
-+#define AT91SAM9G45_ID_SSC1	17	/* Synchronous Serial Controller 1 */
-+#define AT91SAM9G45_ID_TCB	18	/* Timer Counter 0, 1, 2, 3, 4 and 5 */
-+#define AT91SAM9G45_ID_PWMC	19	/* Pulse Width Modulation Controller */
-+#define AT91SAM9G45_ID_TSC	20	/* Touch Screen ADC Controller */
-+#define AT91SAM9G45_ID_DMA	21	/* DMA Controller */
-+#define AT91SAM9G45_ID_UHPHS	22	/* USB Host High Speed */
-+#define AT91SAM9G45_ID_LCDC	23	/* LCD Controller */
-+#define AT91SAM9G45_ID_AC97C	24	/* AC97 Controller */
-+#define AT91SAM9G45_ID_EMAC	25	/* Ethernet MAC */
-+#define AT91SAM9G45_ID_ISI	26	/* Image Sensor Interface */
-+#define AT91SAM9G45_ID_UDPHS	27	/* USB Device High Speed */
-+#define AT91SAM9G45_ID_AESTDESSHA 28	/* AES + T-DES + SHA */
-+#define AT91SAM9G45_ID_MCI1	29	/* High Speed Multimedia Card Interface 1 */
-+#define AT91SAM9G45_ID_VDEC	30	/* Video Decoder */
-+#define AT91SAM9G45_ID_IRQ0	31	/* Advanced Interrupt Controller */
-+
-+/*
-+ * User Peripheral physical base addresses.
-+ */
-+#define AT91SAM9G45_BASE_UDPHS		0xfff78000
-+#define AT91SAM9G45_BASE_TCB0		0xfff7c000
-+#define AT91SAM9G45_BASE_TC0		0xfff7c000
-+#define AT91SAM9G45_BASE_TC1		0xfff7c040
-+#define AT91SAM9G45_BASE_TC2		0xfff7c080
-+#define AT91SAM9G45_BASE_MCI0		0xfff80000
-+#define AT91SAM9G45_BASE_TWI0		0xfff84000
-+#define AT91SAM9G45_BASE_TWI1		0xfff88000
-+#define AT91SAM9G45_BASE_US0		0xfff8c000
-+#define AT91SAM9G45_BASE_US1		0xfff90000
-+#define AT91SAM9G45_BASE_US2		0xfff94000
-+#define AT91SAM9G45_BASE_US3		0xfff98000
-+#define AT91SAM9G45_BASE_SSC0		0xfff9c000
-+#define AT91SAM9G45_BASE_SSC1		0xfffa0000
-+#define AT91SAM9G45_BASE_SPI0		0xfffa4000
-+#define AT91SAM9G45_BASE_SPI1		0xfffa8000
-+#define AT91SAM9G45_BASE_AC97C		0xfffac000
-+#define AT91SAM9G45_BASE_TSC		0xfffb0000
-+#define AT91SAM9G45_BASE_ISI		0xfffb4000
-+#define AT91SAM9G45_BASE_PWMC		0xfffb8000
-+#define AT91SAM9G45_BASE_EMAC		0xfffbc000
-+#define AT91SAM9G45_BASE_AES		0xfffc0000
-+#define AT91SAM9G45_BASE_TDES		0xfffc4000
-+#define AT91SAM9G45_BASE_SHA		0xfffc8000
-+#define AT91SAM9G45_BASE_TRNG		0xfffcc000
-+#define AT91SAM9G45_BASE_MCI1		0xfffd0000
-+#define AT91SAM9G45_BASE_TCB1		0xfffd4000
-+#define AT91SAM9G45_BASE_TC3		0xfffd4000
-+#define AT91SAM9G45_BASE_TC4		0xfffd4040
-+#define AT91SAM9G45_BASE_TC5		0xfffd4080
-+#define AT91_BASE_SYS			0xffffe200
-+
-+/*
-+ * System Peripherals (offset from AT91_BASE_SYS)
-+ */
-+#define AT91_ECC	(0xffffe200 - AT91_BASE_SYS)
-+#define AT91_DDRSDRC1	(0xffffe400 - AT91_BASE_SYS)
-+#define AT91_DDRSDRC0	(0xffffe600 - AT91_BASE_SYS)
-+#define AT91_SMC	(0xffffe800 - AT91_BASE_SYS)
-+#define AT91_MATRIX	(0xffffea00 - AT91_BASE_SYS)
-+#define AT91_DMA	(0xffffec00 - AT91_BASE_SYS)
-+#define AT91_DBGU	(0xffffee00 - AT91_BASE_SYS)
-+#define AT91_AIC	(0xfffff000 - AT91_BASE_SYS)
-+#define AT91_PIOA	(0xfffff200 - AT91_BASE_SYS)
-+#define AT91_PIOB	(0xfffff400 - AT91_BASE_SYS)
-+#define AT91_PIOC	(0xfffff600 - AT91_BASE_SYS)
-+#define AT91_PIOD	(0xfffff800 - AT91_BASE_SYS)
-+#define AT91_PIOE	(0xfffffa00 - AT91_BASE_SYS)
-+#define AT91_PMC	(0xfffffc00 - AT91_BASE_SYS)
-+#define AT91_RSTC	(0xfffffd00 - AT91_BASE_SYS)
-+#define AT91_SHDWC	(0xfffffd10 - AT91_BASE_SYS)
-+#define AT91_RTT	(0xfffffd20 - AT91_BASE_SYS)
-+#define AT91_PIT	(0xfffffd30 - AT91_BASE_SYS)
-+#define AT91_WDT	(0xfffffd40 - AT91_BASE_SYS)
-+#define AT91_GPBR	(0xfffffd60 - AT91_BASE_SYS)
-+#define AT91_RTC	(0xfffffdb0 - AT91_BASE_SYS)
-+
-+#define AT91_USART0	AT91SAM9G45_BASE_US0
-+#define AT91_USART1	AT91SAM9G45_BASE_US1
-+#define AT91_USART2	AT91SAM9G45_BASE_US2
-+#define AT91_USART3	AT91SAM9G45_BASE_US3
-+
-+/*
-+ * Internal Memory.
-+ */
-+#define AT91SAM9G45_SRAM_BASE	0x00300000	/* Internal SRAM base address */
-+#define AT91SAM9G45_SRAM_SIZE	SZ_64K		/* Internal SRAM size (64Kb) */
-+
-+#define AT91SAM9G45_ROM_BASE	0x00400000	/* Internal ROM base address */
-+#define AT91SAM9G45_ROM_SIZE	SZ_64K		/* Internal ROM size (64Kb) */
-+
-+#define AT91SAM9G45_LCDC_BASE	0x00500000	/* LCD Controller */
-+#define AT91SAM9G45_UDPHS_FIFO	0x00600000	/* USB Device HS controller */
-+#define AT91SAM9G45_OHCI_BASE	0x00700000	/* USB Host controller (OHCI) */
-+#define AT91SAM9G45_EHCI_BASE	0x00800000	/* USB Host controller (EHCI) */
-+#define AT91SAM9G45_VDEC_BASE	0x00900000	/* Video Decoder Controller */
-+
-+#define CONFIG_DRAM_BASE	AT91_CHIPSELECT_6
-+
-+#define CONSISTENT_DMA_SIZE	SZ_4M
-+
-+/*
-+ * DMA peripheral identifiers
-+ * for hardware handshaking interface
-+ */
-+#define AT_DMA_ID_MCI0		 0
-+#define AT_DMA_ID_SPI0_TX	 1
-+#define AT_DMA_ID_SPI0_RX	 2
-+#define AT_DMA_ID_SPI1_TX	 3
-+#define AT_DMA_ID_SPI1_RX	 4
-+#define AT_DMA_ID_SSC0_TX	 5
-+#define AT_DMA_ID_SSC0_RX	 6
-+#define AT_DMA_ID_SSC1_TX	 7
-+#define AT_DMA_ID_SSC1_RX	 8
-+#define AT_DMA_ID_AC97_TX	 9
-+#define AT_DMA_ID_AC97_RX	10
-+#define AT_DMA_ID_MCI1		13
-+
-+#endif
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/at91sam9g45_matrix.h	2011-02-01 16:40:30.137041993 +0100
-@@ -0,0 +1,153 @@
-+/*
-+ * Matrix-centric header file for the AT91SAM9G45 family
-+ *
-+ *  Copyright (C) 2008-2009 Atmel Corporation.
-+ *
-+ * Memory Controllers (MATRIX, EBI) - System peripherals registers.
-+ * Based on AT91SAM9G45 preliminary datasheet.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ */
-+
-+#ifndef AT91SAM9G45_MATRIX_H
-+#define AT91SAM9G45_MATRIX_H
-+
-+#define AT91_MATRIX_MCFG0	(AT91_MATRIX + 0x00)	/* Master Configuration Register 0 */
-+#define AT91_MATRIX_MCFG1	(AT91_MATRIX + 0x04)	/* Master Configuration Register 1 */
-+#define AT91_MATRIX_MCFG2	(AT91_MATRIX + 0x08)	/* Master Configuration Register 2 */
-+#define AT91_MATRIX_MCFG3	(AT91_MATRIX + 0x0C)	/* Master Configuration Register 3 */
-+#define AT91_MATRIX_MCFG4	(AT91_MATRIX + 0x10)	/* Master Configuration Register 4 */
-+#define AT91_MATRIX_MCFG5	(AT91_MATRIX + 0x14)	/* Master Configuration Register 5 */
-+#define AT91_MATRIX_MCFG6	(AT91_MATRIX + 0x18)	/* Master Configuration Register 6 */
-+#define AT91_MATRIX_MCFG7	(AT91_MATRIX + 0x1C)	/* Master Configuration Register 7 */
-+#define AT91_MATRIX_MCFG8	(AT91_MATRIX + 0x20)	/* Master Configuration Register 8 */
-+#define AT91_MATRIX_MCFG9	(AT91_MATRIX + 0x24)	/* Master Configuration Register 9 */
-+#define AT91_MATRIX_MCFG10	(AT91_MATRIX + 0x28)	/* Master Configuration Register 10 */
-+#define AT91_MATRIX_MCFG11	(AT91_MATRIX + 0x2C)	/* Master Configuration Register 11 */
-+#define		AT91_MATRIX_ULBT	(7 << 0)	/* Undefined Length Burst Type */
-+#define			AT91_MATRIX_ULBT_INFINITE	(0 << 0)
-+#define			AT91_MATRIX_ULBT_SINGLE		(1 << 0)
-+#define			AT91_MATRIX_ULBT_FOUR		(2 << 0)
-+#define			AT91_MATRIX_ULBT_EIGHT		(3 << 0)
-+#define			AT91_MATRIX_ULBT_SIXTEEN	(4 << 0)
-+#define			AT91_MATRIX_ULBT_THIRTYTWO	(5 << 0)
-+#define			AT91_MATRIX_ULBT_SIXTYFOUR	(6 << 0)
-+#define			AT91_MATRIX_ULBT_128		(7 << 0)
-+
-+#define AT91_MATRIX_SCFG0	(AT91_MATRIX + 0x40)	/* Slave Configuration Register 0 */
-+#define AT91_MATRIX_SCFG1	(AT91_MATRIX + 0x44)	/* Slave Configuration Register 1 */
-+#define AT91_MATRIX_SCFG2	(AT91_MATRIX + 0x48)	/* Slave Configuration Register 2 */
-+#define AT91_MATRIX_SCFG3	(AT91_MATRIX + 0x4C)	/* Slave Configuration Register 3 */
-+#define AT91_MATRIX_SCFG4	(AT91_MATRIX + 0x50)	/* Slave Configuration Register 4 */
-+#define AT91_MATRIX_SCFG5	(AT91_MATRIX + 0x54)	/* Slave Configuration Register 5 */
-+#define AT91_MATRIX_SCFG6	(AT91_MATRIX + 0x58)	/* Slave Configuration Register 6 */
-+#define AT91_MATRIX_SCFG7	(AT91_MATRIX + 0x5C)	/* Slave Configuration Register 7 */
-+#define		AT91_MATRIX_SLOT_CYCLE		(0x1ff << 0)	/* Maximum Number of Allowed Cycles for a Burst */
-+#define		AT91_MATRIX_DEFMSTR_TYPE	(3    << 16)	/* Default Master Type */
-+#define			AT91_MATRIX_DEFMSTR_TYPE_NONE	(0 << 16)
-+#define			AT91_MATRIX_DEFMSTR_TYPE_LAST	(1 << 16)
-+#define			AT91_MATRIX_DEFMSTR_TYPE_FIXED	(2 << 16)
-+#define		AT91_MATRIX_FIXED_DEFMSTR	(0xf  << 18)	/* Fixed Index of Default Master */
-+
-+#define AT91_MATRIX_PRAS0	(AT91_MATRIX + 0x80)	/* Priority Register A for Slave 0 */
-+#define AT91_MATRIX_PRBS0	(AT91_MATRIX + 0x84)	/* Priority Register B for Slave 0 */
-+#define AT91_MATRIX_PRAS1	(AT91_MATRIX + 0x88)	/* Priority Register A for Slave 1 */
-+#define AT91_MATRIX_PRBS1	(AT91_MATRIX + 0x8C)	/* Priority Register B for Slave 1 */
-+#define AT91_MATRIX_PRAS2	(AT91_MATRIX + 0x90)	/* Priority Register A for Slave 2 */
-+#define AT91_MATRIX_PRBS2	(AT91_MATRIX + 0x94)	/* Priority Register B for Slave 2 */
-+#define AT91_MATRIX_PRAS3	(AT91_MATRIX + 0x98)	/* Priority Register A for Slave 3 */
-+#define AT91_MATRIX_PRBS3	(AT91_MATRIX + 0x9C)	/* Priority Register B for Slave 3 */
-+#define AT91_MATRIX_PRAS4	(AT91_MATRIX + 0xA0)	/* Priority Register A for Slave 4 */
-+#define AT91_MATRIX_PRBS4	(AT91_MATRIX + 0xA4)	/* Priority Register B for Slave 4 */
-+#define AT91_MATRIX_PRAS5	(AT91_MATRIX + 0xA8)	/* Priority Register A for Slave 5 */
-+#define AT91_MATRIX_PRBS5	(AT91_MATRIX + 0xAC)	/* Priority Register B for Slave 5 */
-+#define AT91_MATRIX_PRAS6	(AT91_MATRIX + 0xB0)	/* Priority Register A for Slave 6 */
-+#define AT91_MATRIX_PRBS6	(AT91_MATRIX + 0xB4)	/* Priority Register B for Slave 6 */
-+#define AT91_MATRIX_PRAS7	(AT91_MATRIX + 0xB8)	/* Priority Register A for Slave 7 */
-+#define AT91_MATRIX_PRBS7	(AT91_MATRIX + 0xBC)	/* Priority Register B for Slave 7 */
-+#define		AT91_MATRIX_M0PR		(3 << 0)	/* Master 0 Priority */
-+#define		AT91_MATRIX_M1PR		(3 << 4)	/* Master 1 Priority */
-+#define		AT91_MATRIX_M2PR		(3 << 8)	/* Master 2 Priority */
-+#define		AT91_MATRIX_M3PR		(3 << 12)	/* Master 3 Priority */
-+#define		AT91_MATRIX_M4PR		(3 << 16)	/* Master 4 Priority */
-+#define		AT91_MATRIX_M5PR		(3 << 20)	/* Master 5 Priority */
-+#define		AT91_MATRIX_M6PR		(3 << 24)	/* Master 6 Priority */
-+#define		AT91_MATRIX_M7PR		(3 << 28)	/* Master 7 Priority */
-+#define		AT91_MATRIX_M8PR		(3 << 0)	/* Master 8 Priority (in Register B) */
-+#define		AT91_MATRIX_M9PR		(3 << 4)	/* Master 9 Priority (in Register B) */
-+#define		AT91_MATRIX_M10PR		(3 << 8)	/* Master 10 Priority (in Register B) */
-+#define		AT91_MATRIX_M11PR		(3 << 12)	/* Master 11 Priority (in Register B) */
-+
-+#define AT91_MATRIX_MRCR	(AT91_MATRIX + 0x100)	/* Master Remap Control Register */
-+#define		AT91_MATRIX_RCB0		(1 << 0)	/* Remap Command for AHB Master 0 (ARM926EJ-S Instruction Master) */
-+#define		AT91_MATRIX_RCB1		(1 << 1)	/* Remap Command for AHB Master 1 (ARM926EJ-S Data Master) */
-+#define		AT91_MATRIX_RCB2		(1 << 2)
-+#define		AT91_MATRIX_RCB3		(1 << 3)
-+#define		AT91_MATRIX_RCB4		(1 << 4)
-+#define		AT91_MATRIX_RCB5		(1 << 5)
-+#define		AT91_MATRIX_RCB6		(1 << 6)
-+#define		AT91_MATRIX_RCB7		(1 << 7)
-+#define		AT91_MATRIX_RCB8		(1 << 8)
-+#define		AT91_MATRIX_RCB9		(1 << 9)
-+#define		AT91_MATRIX_RCB10		(1 << 10)
-+#define		AT91_MATRIX_RCB11		(1 << 11)
-+
-+#define AT91_MATRIX_TCMR	(AT91_MATRIX + 0x110)	/* TCM Configuration Register */
-+#define		AT91_MATRIX_ITCM_SIZE		(0xf << 0)	/* Size of ITCM enabled memory block */
-+#define			AT91_MATRIX_ITCM_0		(0 << 0)
-+#define			AT91_MATRIX_ITCM_32		(6 << 0)
-+#define		AT91_MATRIX_DTCM_SIZE		(0xf << 4)	/* Size of DTCM enabled memory block */
-+#define			AT91_MATRIX_DTCM_0		(0 << 4)
-+#define			AT91_MATRIX_DTCM_32		(6 << 4)
-+#define			AT91_MATRIX_DTCM_64		(7 << 4)
-+#define		AT91_MATRIX_TCM_NWS		(0x1 << 11)	/* Wait state TCM register */
-+#define			AT91_MATRIX_TCM_NO_WS		(0x0 << 11)
-+#define			AT91_MATRIX_TCM_ONE_WS		(0x1 << 11)
-+
-+#define AT91_MATRIX_VIDEO	(AT91_MATRIX + 0x118)	/* Video Mode Configuration Register */
-+#define		AT91C_VDEC_SEL			(0x1 <<  0) /* Video Mode Selection */
-+#define			AT91C_VDEC_SEL_OFF		(0 << 0)
-+#define			AT91C_VDEC_SEL_ON		(1 << 0)
-+
-+#define AT91_MATRIX_EBICSA	(AT91_MATRIX + 0x128)	/* EBI Chip Select Assignment Register */
-+#define		AT91_MATRIX_EBI_CS1A		(1 << 1)	/* Chip Select 1 Assignment */
-+#define			AT91_MATRIX_EBI_CS1A_SMC		(0 << 1)
-+#define			AT91_MATRIX_EBI_CS1A_SDRAMC		(1 << 1)
-+#define		AT91_MATRIX_EBI_CS3A		(1 << 3)	/* Chip Select 3 Assignment */
-+#define			AT91_MATRIX_EBI_CS3A_SMC		(0 << 3)
-+#define			AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA	(1 << 3)
-+#define		AT91_MATRIX_EBI_CS4A		(1 << 4)	/* Chip Select 4 Assignment */
-+#define			AT91_MATRIX_EBI_CS4A_SMC		(0 << 4)
-+#define			AT91_MATRIX_EBI_CS4A_SMC_CF0		(1 << 4)
-+#define		AT91_MATRIX_EBI_CS5A		(1 << 5)	/* Chip Select 5 Assignment */
-+#define			AT91_MATRIX_EBI_CS5A_SMC		(0 << 5)
-+#define			AT91_MATRIX_EBI_CS5A_SMC_CF1		(1 << 5)
-+#define		AT91_MATRIX_EBI_DBPUC		(1 << 8)	/* Data Bus Pull-up Configuration */
-+#define			AT91_MATRIX_EBI_DBPU_ON			(0 << 8)
-+#define			AT91_MATRIX_EBI_DBPU_OFF		(1 << 8)
-+#define		AT91_MATRIX_EBI_VDDIOMSEL	(1 << 16)	/* Memory voltage selection */
-+#define			AT91_MATRIX_EBI_VDDIOMSEL_1_8V		(0 << 16)
-+#define			AT91_MATRIX_EBI_VDDIOMSEL_3_3V		(1 << 16)
-+#define		AT91_MATRIX_EBI_EBI_IOSR	(1 << 17)	/* EBI I/O slew rate selection */
-+#define			AT91_MATRIX_EBI_EBI_IOSR_REDUCED	(0 << 17)
-+#define			AT91_MATRIX_EBI_EBI_IOSR_NORMAL		(1 << 17)
-+#define		AT91_MATRIX_EBI_DDR_IOSR	(1 << 18)	/* DDR2 dedicated port I/O slew rate selection */
-+#define			AT91_MATRIX_EBI_DDR_IOSR_REDUCED	(0 << 18)
-+#define			AT91_MATRIX_EBI_DDR_IOSR_NORMAL		(1 << 18)
-+
-+#define AT91_MATRIX_WPMR	(AT91_MATRIX + 0x1E4)	/* Write Protect Mode Register */
-+#define		AT91_MATRIX_WPMR_WPEN		(1 << 0)	/* Write Protect ENable */
-+#define			AT91_MATRIX_WPMR_WP_WPDIS		(0 << 0)
-+#define			AT91_MATRIX_WPMR_WP_WPEN		(1 << 0)
-+#define		AT91_MATRIX_WPMR_WPKEY		(0xFFFFFF << 8)	/* Write Protect KEY */
-+
-+#define AT91_MATRIX_WPSR	(AT91_MATRIX + 0x1E8)	/* Write Protect Status Register */
-+#define		AT91_MATRIX_WPSR_WPVS		(1 << 0)	/* Write Protect Violation Status */
-+#define			AT91_MATRIX_WPSR_NO_WPV		(0 << 0)
-+#define			AT91_MATRIX_WPSR_WPV		(1 << 0)
-+#define		AT91_MATRIX_WPSR_WPVSRC		(0xFFFF << 8)	/* Write Protect Violation Source */
-+
-+#endif
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/cpu.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/include/mach/cpu.h	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/cpu.h	2011-02-01 16:40:30.165043750 +0100
-@@ -21,8 +21,12 @@
- #define ARCH_ID_AT91SAM9260	0x019803a0
- #define ARCH_ID_AT91SAM9261	0x019703a0
- #define ARCH_ID_AT91SAM9263	0x019607a0
-+#define ARCH_ID_AT91SAM9G10	0x819903a0
- #define ARCH_ID_AT91SAM9G20	0x019905a0
- #define ARCH_ID_AT91SAM9RL64	0x019b03a0
-+#define ARCH_ID_AT91SAM9G45	0x819b05a0
-+#define ARCH_ID_AT91SAM9G45MRL	0x819b05a2	/* aka 9G45-ES2 & non ES lots */
-+#define ARCH_ID_AT91SAM9G45ES	0x819b05a1	/* 9G45-ES (Engineering Sample) */
- #define ARCH_ID_AT91CAP9	0x039A03A0
- 
- #define ARCH_ID_AT91SAM9XE128	0x329973a0
-@@ -41,6 +45,20 @@
- 	return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION);
- }
- 
-+static inline unsigned long at91_cpu_fully_identify(void)
-+{
-+	return at91_sys_read(AT91_DBGU_CIDR);
-+}
-+
-+#define ARCH_EXID_AT91SAM9M11	0x00000001
-+#define ARCH_EXID_AT91SAM9M10	0x00000002
-+#define ARCH_EXID_AT91SAM9G45	0x00000004
-+
-+static inline unsigned long at91_exid_identify(void)
-+{
-+	return at91_sys_read(AT91_DBGU_EXID);
-+}
-+
- 
- #define ARCH_FAMILY_AT91X92	0x09200000
- #define ARCH_FAMILY_AT91SAM9	0x01900000
-@@ -89,6 +107,12 @@
- #define cpu_is_at91sam9261()	(0)
- #endif
- 
-+#ifdef CONFIG_ARCH_AT91SAM9G10
-+#define cpu_is_at91sam9g10()	(at91_cpu_identify() == ARCH_ID_AT91SAM9G10)
-+#else
-+#define cpu_is_at91sam9g10()	(0)
-+#endif
-+
- #ifdef CONFIG_ARCH_AT91SAM9263
- #define cpu_is_at91sam9263()	(at91_cpu_identify() == ARCH_ID_AT91SAM9263)
- #else
-@@ -101,6 +125,14 @@
- #define cpu_is_at91sam9rl()	(0)
- #endif
- 
-+#ifdef CONFIG_ARCH_AT91SAM9G45
-+#define cpu_is_at91sam9g45()	(at91_cpu_identify() == ARCH_ID_AT91SAM9G45)
-+#define cpu_is_at91sam9g45es()	(at91_cpu_fully_identify() == ARCH_ID_AT91SAM9G45ES)
-+#else
-+#define cpu_is_at91sam9g45()	(0)
-+#define cpu_is_at91sam9g45es()	(0)
-+#endif
-+
- #ifdef CONFIG_ARCH_AT91CAP9
- #define cpu_is_at91cap9()	(at91_cpu_identify() == ARCH_ID_AT91CAP9)
- #define cpu_is_at91cap9_revB()	(at91cap9_rev_identify() == ARCH_REVISION_CAP9_B)
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/hardware.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/include/mach/hardware.h	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/hardware.h	2011-02-01 16:40:30.145073648 +0100
-@@ -20,12 +20,14 @@
- #include <mach/at91rm9200.h>
- #elif defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9G20)
- #include <mach/at91sam9260.h>
--#elif defined(CONFIG_ARCH_AT91SAM9261)
-+#elif defined(CONFIG_ARCH_AT91SAM9261) || defined(CONFIG_ARCH_AT91SAM9G10)
- #include <mach/at91sam9261.h>
- #elif defined(CONFIG_ARCH_AT91SAM9263)
- #include <mach/at91sam9263.h>
- #elif defined(CONFIG_ARCH_AT91SAM9RL)
- #include <mach/at91sam9rl.h>
-+#elif defined(CONFIG_ARCH_AT91SAM9G45)
-+#include <mach/at91sam9g45.h>
- #elif defined(CONFIG_ARCH_AT91CAP9)
- #include <mach/at91cap9.h>
- #elif defined(CONFIG_ARCH_AT91X40)
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/timex.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/include/mach/timex.h	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/timex.h	2011-02-01 16:40:30.145073648 +0100
-@@ -42,6 +42,11 @@
- #define AT91SAM9_MASTER_CLOCK	99300000
- #define CLOCK_TICK_RATE		(AT91SAM9_MASTER_CLOCK/16)
- 
-+#elif defined(CONFIG_ARCH_AT91SAM9G10)
-+
-+#define AT91SAM9_MASTER_CLOCK	133000000
-+#define CLOCK_TICK_RATE		(AT91SAM9_MASTER_CLOCK/16)
-+
- #elif defined(CONFIG_ARCH_AT91SAM9263)
- 
- #if defined(CONFIG_MACH_USB_A9263)
-@@ -66,6 +71,11 @@
- #endif
- #define CLOCK_TICK_RATE		(AT91SAM9_MASTER_CLOCK/16)
- 
-+#elif defined(CONFIG_ARCH_AT91SAM9G45)
-+
-+#define AT91SAM9_MASTER_CLOCK	133333333
-+#define CLOCK_TICK_RATE		(AT91SAM9_MASTER_CLOCK/16)
-+
- #elif defined(CONFIG_ARCH_AT91CAP9)
- 
- #define AT91CAP9_MASTER_CLOCK	100000000
-Index: linux-2.6.30/arch/arm/mach-at91/Kconfig
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/Kconfig	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/Kconfig	2011-02-01 16:40:30.169008345 +0100
-@@ -23,6 +23,12 @@
- 	select GENERIC_TIME
- 	select GENERIC_CLOCKEVENTS
- 
-+config ARCH_AT91SAM9G10
-+	bool "AT91SAM9G10"
-+	select CPU_ARM926T
-+	select GENERIC_TIME
-+	select GENERIC_CLOCKEVENTS
-+
- config ARCH_AT91SAM9263
- 	bool "AT91SAM9263"
- 	select CPU_ARM926T
-@@ -41,6 +47,12 @@
- 	select GENERIC_TIME
- 	select GENERIC_CLOCKEVENTS
- 
-+config ARCH_AT91SAM9G45
-+	bool "AT91SAM9G45"
-+	select CPU_ARM926T
-+	select GENERIC_TIME
-+	select GENERIC_CLOCKEVENTS
-+
- config ARCH_AT91CAP9
- 	bool "AT91CAP9"
- 	select CPU_ARM926T
-@@ -268,6 +280,21 @@
- 
- # ----------------------------------------------------------
- 
-+if ARCH_AT91SAM9G10
-+
-+comment "AT91SAM9G10 Board Type"
-+
-+config MACH_AT91SAM9G10EK
-+	bool "Atmel AT91SAM9G10-EK Evaluation Kit"
-+	depends on ARCH_AT91SAM9G10
-+	help
-+	  Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
-+	  <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
-+
-+endif
-+
-+# ----------------------------------------------------------
-+
- if ARCH_AT91SAM9263
- 
- comment "AT91SAM9263 Board Type"
-@@ -332,7 +359,16 @@
- 	bool "Atmel AT91SAM9G20-EK Evaluation Kit"
- 	depends on ARCH_AT91SAM9G20
- 	help
--	  Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit.
-+	  Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
-+	  that embeds only one SD/MMC slot.
-+
-+config MACH_AT91SAM9G20EK_2MMC
-+	bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
-+	depends on ARCH_AT91SAM9G20
-+	help
-+	  Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
-+	  with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
-+	  onwards.
- 
- config MACH_USB_A9G20
- 	bool "CALAO USB-A9G20"
-@@ -359,6 +395,22 @@
- 
- # ----------------------------------------------------------
- 
-+if ARCH_AT91SAM9G45
-+
-+comment "AT91SAM9G45 Board Type"
-+
-+config MACH_AT91SAM9G45EKES
-+	bool "Atmel AT91SAM9G45-EKES Evaluation Kit"
-+	depends on ARCH_AT91SAM9G45
-+	help
-+	  Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit.
-+	  "ES" at the end of the name means that this board is an
-+	  Engineering Sample.
-+
-+endif
-+
-+# ----------------------------------------------------------
-+
- if ARCH_AT91CAP9
- 
- comment "AT91CAP9 Board Type"
-@@ -409,13 +461,13 @@
- 
- config MTD_AT91_DATAFLASH_CARD
- 	bool "Enable DataFlash Card support"
--	depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926)
-+	depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926)
- 	help
- 	  Enable support for the DataFlash card.
- 
- config MTD_NAND_ATMEL_BUSWIDTH_16
- 	bool "Enable 16-bit data bus interface to NAND flash"
--	depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91CAP9ADK || MACH_AT572D940HFEB)
-+	depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK || MACH_AT572D940HFEB)
- 	help
- 	  On AT91SAM926x boards both types of NAND flash can be present
- 	  (8 and 16 bit data bus width).
-@@ -477,7 +529,7 @@
- 
- config AT91_EARLY_USART3
- 	bool "USART3"
--	depends on (ARCH_AT91RM9200 || ARCH_AT91SAM9RL || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20)
-+	depends on (ARCH_AT91RM9200 || ARCH_AT91SAM9RL || ARCH_AT91SAM9260 || ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45)
- 
- config AT91_EARLY_USART4
- 	bool "USART4"
-Index: linux-2.6.30/arch/arm/mach-at91/Makefile
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/Makefile	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/Makefile	2011-02-01 16:40:30.152108635 +0100
-@@ -13,9 +13,11 @@
- obj-$(CONFIG_ARCH_AT91RM9200)	+= at91rm9200.o at91rm9200_time.o at91rm9200_devices.o
- obj-$(CONFIG_ARCH_AT91SAM9260)	+= at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT91SAM9261)	+= at91sam9261.o at91sam926x_time.o at91sam9261_devices.o sam9_smc.o
-+obj-$(CONFIG_ARCH_AT91SAM9G10)	+= at91sam9261.o at91sam926x_time.o at91sam9261_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT91SAM9263)	+= at91sam9263.o at91sam926x_time.o at91sam9263_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT91SAM9RL)	+= at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT91SAM9G20)	+= at91sam9260.o at91sam926x_time.o at91sam9260_devices.o  sam9_smc.o
-+ obj-$(CONFIG_ARCH_AT91SAM9G45)	+= at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT91CAP9)	+= at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT572D940HF)  += at572d940hf.o at91sam926x_time.o at572d940hf_devices.o sam9_smc.o
- obj-$(CONFIG_ARCH_AT91X40)	+= at91x40.o at91x40_time.o
-@@ -49,6 +51,7 @@
- 
- # AT91SAM9261 board-specific support
- obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o
-+obj-$(CONFIG_MACH_AT91SAM9G10EK) += board-sam9261ek.o
- 
- # AT91SAM9263 board-specific support
- obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o
-@@ -62,10 +65,14 @@
- 
- # AT91SAM9G20 board-specific support
- obj-$(CONFIG_MACH_AT91SAM9G20EK) += board-sam9g20ek.o
-+obj-$(CONFIG_MACH_AT91SAM9G20EK_2MMC) += board-sam9g20ek-2slot-mmc.o
- obj-$(CONFIG_MACH_USB_A9G20)	 += board-usb-a9g20.o
- obj-$(CONFIG_MACH_QIL_A9G20)	 += board-qil-a9g20.o
- obj-$(CONFIG_MACH_SBC35_A9G20)	 += board-sbc35-a9g20.o
- 
-+# AT91SAM9G45 board-specific support
-+obj-$(CONFIG_MACH_AT91SAM9G45EKES) += board-sam9m10g45ek.o
-+
- # AT91CAP9 board-specific support
- obj-$(CONFIG_MACH_AT91CAP9ADK)	+= board-cap9adk.o
- 
-Index: linux-2.6.30/arch/arm/mach-at91/Makefile.boot
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/Makefile.boot	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/mach-at91/Makefile.boot	2011-02-01 16:40:30.137041993 +0100
-@@ -7,6 +7,10 @@
-    zreladdr-y	:= 0x70008000
- params_phys-y	:= 0x70000100
- initrd_phys-y	:= 0x70410000
-+else ifeq ($(CONFIG_ARCH_AT91SAM9G45),y)
-+   zreladdr-y	:= 0x70008000
-+params_phys-y	:= 0x70000100
-+initrd_phys-y	:= 0x70410000
- else
-    zreladdr-y	:= 0x20008000
- params_phys-y	:= 0x20000100
-Index: linux-2.6.30/arch/arm/mach-at91/at91sam9g45.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/at91sam9g45.c	2011-02-01 16:40:30.137041993 +0100
-@@ -0,0 +1,360 @@
-+/*
-+ *  Chip-specific setup code for the AT91SAM9G45 family
-+ *
-+ *  Copyright (C) 2009 Atmel Corporation.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/pm.h>
-+
-+#include <asm/irq.h>
-+#include <asm/mach/arch.h>
-+#include <asm/mach/map.h>
-+#include <mach/at91sam9g45.h>
-+#include <mach/at91_pmc.h>
-+#include <mach/at91_rstc.h>
-+#include <mach/at91_shdwc.h>
-+
-+#include "generic.h"
-+#include "clock.h"
-+
-+static struct map_desc at91sam9g45_io_desc[] __initdata = {
-+	{
-+		.virtual	= AT91_VA_BASE_SYS,
-+		.pfn		= __phys_to_pfn(AT91_BASE_SYS),
-+		.length		= SZ_16K,
-+		.type		= MT_DEVICE,
-+	}, {
-+		.virtual	= AT91_IO_VIRT_BASE - AT91SAM9G45_SRAM_SIZE,
-+		.pfn		= __phys_to_pfn(AT91SAM9G45_SRAM_BASE),
-+		.length		= AT91SAM9G45_SRAM_SIZE,
-+		.type		= MT_DEVICE,
-+	}
-+};
-+
-+/* --------------------------------------------------------------------
-+ *  Clocks
-+ * -------------------------------------------------------------------- */
-+
-+/*
-+ * The peripheral clocks.
-+ */
-+static struct clk pioA_clk = {
-+	.name		= "pioA_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_PIOA,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk pioB_clk = {
-+	.name		= "pioB_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_PIOB,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk pioC_clk = {
-+	.name		= "pioC_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_PIOC,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk pioDE_clk = {
-+	.name		= "pioDE_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_PIODE,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk usart0_clk = {
-+	.name		= "usart0_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_US0,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk usart1_clk = {
-+	.name		= "usart1_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_US1,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk usart2_clk = {
-+	.name		= "usart2_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_US2,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk usart3_clk = {
-+	.name		= "usart3_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_US3,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk mmc0_clk = {
-+	.name		= "mci0_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_MCI0,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk twi0_clk = {
-+	.name		= "twi0_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_TWI0,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk twi1_clk = {
-+	.name		= "twi1_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_TWI1,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk spi0_clk = {
-+	.name		= "spi0_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_SPI0,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk spi1_clk = {
-+	.name		= "spi1_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_SPI1,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk ssc0_clk = {
-+	.name		= "ssc0_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_SSC0,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk ssc1_clk = {
-+	.name		= "ssc1_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_SSC1,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk tcb_clk = {
-+	.name		= "tcb_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_TCB,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk pwm_clk = {
-+	.name		= "pwm_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_PWMC,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk tsc_clk = {
-+	.name		= "tsc_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_TSC,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk dma_clk = {
-+	.name		= "dma_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_DMA,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk uhphs_clk = {
-+	.name		= "uhphs_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_UHPHS,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk lcdc_clk = {
-+	.name		= "lcdc_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_LCDC,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk ac97_clk = {
-+	.name		= "ac97_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_AC97C,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk macb_clk = {
-+	.name		= "macb_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_EMAC,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk isi_clk = {
-+	.name		= "isi_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_ISI,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk udphs_clk = {
-+	.name		= "udphs_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_UDPHS,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+static struct clk mmc1_clk = {
-+	.name		= "mci1_clk",
-+	.pmc_mask	= 1 << AT91SAM9G45_ID_MCI1,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+};
-+
-+/* One additional fake clock for ohci */
-+static struct clk ohci_clk = {
-+	.name		= "ohci_clk",
-+	.pmc_mask	= 0,
-+	.type		= CLK_TYPE_PERIPHERAL,
-+	.parent		= &uhphs_clk,
-+};
-+
-+static struct clk *periph_clocks[] __initdata = {
-+	&pioA_clk,
-+	&pioB_clk,
-+	&pioC_clk,
-+	&pioDE_clk,
-+	&usart0_clk,
-+	&usart1_clk,
-+	&usart2_clk,
-+	&usart3_clk,
-+	&mmc0_clk,
-+	&twi0_clk,
-+	&twi1_clk,
-+	&spi0_clk,
-+	&spi1_clk,
-+	&ssc0_clk,
-+	&ssc1_clk,
-+	&tcb_clk,
-+	&pwm_clk,
-+	&tsc_clk,
-+	&dma_clk,
-+	&uhphs_clk,
-+	&lcdc_clk,
-+	&ac97_clk,
-+	&macb_clk,
-+	&isi_clk,
-+	&udphs_clk,
-+	&mmc1_clk,
-+	// irq0
-+	&ohci_clk,
-+};
-+
-+/*
-+ * The two programmable clocks.
-+ * You must configure pin multiplexing to bring these signals out.
-+ */
-+static struct clk pck0 = {
-+	.name		= "pck0",
-+	.pmc_mask	= AT91_PMC_PCK0,
-+	.type		= CLK_TYPE_PROGRAMMABLE,
-+	.id		= 0,
-+};
-+static struct clk pck1 = {
-+	.name		= "pck1",
-+	.pmc_mask	= AT91_PMC_PCK1,
-+	.type		= CLK_TYPE_PROGRAMMABLE,
-+	.id		= 1,
-+};
-+
-+static void __init at91sam9g45_register_clocks(void)
-+{
-+	int i;
-+
-+	for (i = 0; i < ARRAY_SIZE(periph_clocks); i++)
-+		clk_register(periph_clocks[i]);
-+
-+	clk_register(&pck0);
-+	clk_register(&pck1);
-+}
-+
-+/* --------------------------------------------------------------------
-+ *  GPIO
-+ * -------------------------------------------------------------------- */
-+
-+static struct at91_gpio_bank at91sam9g45_gpio[] = {
-+	{
-+		.id		= AT91SAM9G45_ID_PIOA,
-+		.offset		= AT91_PIOA,
-+		.clock		= &pioA_clk,
-+	}, {
-+		.id		= AT91SAM9G45_ID_PIOB,
-+		.offset		= AT91_PIOB,
-+		.clock		= &pioB_clk,
-+	}, {
-+		.id		= AT91SAM9G45_ID_PIOC,
-+		.offset		= AT91_PIOC,
-+		.clock		= &pioC_clk,
-+	}, {
-+		.id		= AT91SAM9G45_ID_PIODE,
-+		.offset		= AT91_PIOD,
-+		.clock		= &pioDE_clk,
-+	}, {
-+		.id		= AT91SAM9G45_ID_PIODE,
-+		.offset		= AT91_PIOE,
-+		.clock		= &pioDE_clk,
-+	}
-+};
-+
-+static void at91sam9g45_reset(void)
-+{
-+	at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
-+}
-+
-+static void at91sam9g45_poweroff(void)
-+{
-+	at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
-+}
-+
-+
-+/* --------------------------------------------------------------------
-+ *  AT91SAM9G45 processor initialization
-+ * -------------------------------------------------------------------- */
-+
-+void __init at91sam9g45_initialize(unsigned long main_clock)
-+{
-+	/* Map peripherals */
-+	iotable_init(at91sam9g45_io_desc, ARRAY_SIZE(at91sam9g45_io_desc));
-+
-+	at91_arch_reset = at91sam9g45_reset;
-+	pm_power_off = at91sam9g45_poweroff;
-+	at91_extern_irq = (1 << AT91SAM9G45_ID_IRQ0);
-+
-+	/* Init clock subsystem */
-+	at91_clock_init(main_clock);
-+
-+	/* Register the processor-specific clocks */
-+	at91sam9g45_register_clocks();
-+
-+	/* Register GPIO subsystem */
-+	at91_gpio_init(at91sam9g45_gpio, 5);
-+}
-+
-+/* --------------------------------------------------------------------
-+ *  Interrupt initialization
-+ * -------------------------------------------------------------------- */
-+
-+/*
-+ * The default interrupt priority levels (0 = lowest, 7 = highest).
-+ */
-+static unsigned int at91sam9g45_default_irq_priority[NR_AIC_IRQS] __initdata = {
-+	7,	/* Advanced Interrupt Controller (FIQ) */
-+	7,	/* System Peripherals */
-+	1,	/* Parallel IO Controller A */
-+	1,	/* Parallel IO Controller B */
-+	1,	/* Parallel IO Controller C */
-+	1,	/* Parallel IO Controller D and E */
-+	0,
-+	5,	/* USART 0 */
-+	5,	/* USART 1 */
-+	5,	/* USART 2 */
-+	5,	/* USART 3 */
-+	0,	/* Multimedia Card Interface 0 */
-+	6,	/* Two-Wire Interface 0 */
-+	6,	/* Two-Wire Interface 1 */
-+	5,	/* Serial Peripheral Interface 0 */
-+	5,	/* Serial Peripheral Interface 1 */
-+	4,	/* Serial Synchronous Controller 0 */
-+	4,	/* Serial Synchronous Controller 1 */
-+	0,	/* Timer Counter 0, 1, 2, 3, 4 and 5 */
-+	0,	/* Pulse Width Modulation Controller */
-+	0,	/* Touch Screen Controller */
-+	0,	/* DMA Controller */
-+	2,	/* USB Host High Speed port */
-+	3,	/* LDC Controller */
-+	5,	/* AC97 Controller */
-+	3,	/* Ethernet */
-+	0,	/* Image Sensor Interface */
-+	2,	/* USB Device High speed port */
-+	0,
-+	0,	/* Multimedia Card Interface 1 */
-+	0,
-+	0,	/* Advanced Interrupt Controller (IRQ0) */
-+};
-+
-+void __init at91sam9g45_init_interrupts(unsigned int priority[NR_AIC_IRQS])
-+{
-+	if (!priority)
-+		priority = at91sam9g45_default_irq_priority;
-+
-+	/* Initialize the AIC interrupt controller */
-+	at91_aic_init(priority);
-+
-+	/* Enable GPIO interrupts */
-+	at91_gpio_irq_setup();
-+}
-Index: linux-2.6.30/arch/arm/mach-at91/at91sam9g45_devices.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/at91sam9g45_devices.c	2011-02-01 16:40:30.165043750 +0100
-@@ -0,0 +1,1600 @@
-+/*
-+ *  On-Chip devices setup code for the AT91SAM9G45 family
-+ *
-+ *  Copyright (C) 2009 Atmel Corporation.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ */
-+#include <asm/mach/arch.h>
-+#include <asm/mach/map.h>
-+
-+#include <linux/dma-mapping.h>
-+#include <linux/platform_device.h>
-+#include <linux/i2c-gpio.h>
-+#include <linux/atmel-mci.h>
-+
-+#include <linux/fb.h>
-+#include <video/atmel_lcdc.h>
-+
-+#include <mach/board.h>
-+#include <mach/gpio.h>
-+#include <mach/at91sam9g45.h>
-+#include <mach/at91sam9g45_matrix.h>
-+#include <mach/at91sam9_smc.h>
-+#include <mach/at_hdmac.h>
-+
-+#include "generic.h"
-+
-+
-+/* --------------------------------------------------------------------
-+ *  HDMAC - AHB DMA Controller
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_AT_HDMAC) || defined(CONFIG_AT_HDMAC_MODULE)
-+static u64 hdmac_dmamask = DMA_BIT_MASK(32);
-+
-+static struct at_dma_platform_data atdma_pdata = {
-+	.nr_channels	= 8,
-+};
-+
-+static struct resource hdmac_resources[] = {
-+	[0] = {
-+		.start	= AT91_BASE_SYS + AT91_DMA,
-+		.end	= AT91_BASE_SYS + AT91_DMA + SZ_512 - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[2] = {
-+		.start	= AT91SAM9G45_ID_DMA,
-+		.end	= AT91SAM9G45_ID_DMA,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at_hdmac_device = {
-+	.name		= "at_hdmac",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &hdmac_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &atdma_pdata,
-+	},
-+	.resource	= hdmac_resources,
-+	.num_resources	= ARRAY_SIZE(hdmac_resources),
-+};
-+
-+void __init at91_add_device_hdmac(void)
-+{
-+	dma_cap_set(DMA_MEMCPY, atdma_pdata.cap_mask);
-+	dma_cap_set(DMA_SLAVE, atdma_pdata.cap_mask);
-+	platform_device_register(&at_hdmac_device);
-+}
-+#else
-+void __init at91_add_device_hdmac(void) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  USB Host (OHCI)
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
-+static u64 ohci_dmamask = DMA_BIT_MASK(32);
-+static struct at91_usbh_data usbh_ohci_data;
-+
-+static struct resource usbh_ohci_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_OHCI_BASE,
-+		.end	= AT91SAM9G45_OHCI_BASE + SZ_1M - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_UHPHS,
-+		.end	= AT91SAM9G45_ID_UHPHS,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91_usbh_ohci_device = {
-+	.name		= "at91_ohci",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &ohci_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &usbh_ohci_data,
-+	},
-+	.resource	= usbh_ohci_resources,
-+	.num_resources	= ARRAY_SIZE(usbh_ohci_resources),
-+};
-+
-+void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data)
-+{
-+	int i;
-+
-+	if (!data)
-+		return;
-+
-+	/* Enable VBus control for UHP ports */
-+	for (i = 0; i < data->ports; i++) {
-+		if (data->vbus_pin[i])
-+			at91_set_gpio_output(data->vbus_pin[i], 0);
-+	}
-+
-+	usbh_ohci_data = *data;
-+	platform_device_register(&at91_usbh_ohci_device);
-+}
-+#else
-+void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  USB Host HS (EHCI)
-+ *  Needs an OHCI host for low and full speed management
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_EHCI_HCD_MODULE)
-+static u64 ehci_dmamask = DMA_BIT_MASK(32);
-+static struct at91_usbh_data usbh_ehci_data;
-+
-+static struct resource usbh_ehci_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_EHCI_BASE,
-+		.end	= AT91SAM9G45_EHCI_BASE + SZ_1M - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_UHPHS,
-+		.end	= AT91SAM9G45_ID_UHPHS,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91_usbh_ehci_device = {
-+	.name		= "atmel-ehci",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &ehci_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &usbh_ehci_data,
-+	},
-+	.resource	= usbh_ehci_resources,
-+	.num_resources	= ARRAY_SIZE(usbh_ehci_resources),
-+};
-+
-+void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data)
-+{
-+	int i;
-+
-+	if (!data)
-+		return;
-+
-+	/* Enable VBus control for UHP ports */
-+	for (i = 0; i < data->ports; i++) {
-+		if (data->vbus_pin[i])
-+			at91_set_gpio_output(data->vbus_pin[i], 0);
-+	}
-+
-+	usbh_ehci_data = *data;
-+	at91_clock_associate("uhphs_clk", &at91_usbh_ehci_device.dev, "ehci_clk");
-+	platform_device_register(&at91_usbh_ehci_device);
-+}
-+#else
-+void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  USB HS Device (Gadget)
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE)
-+static struct resource usba_udc_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_UDPHS_FIFO,
-+		.end	= AT91SAM9G45_UDPHS_FIFO + SZ_512K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_BASE_UDPHS,
-+		.end	= AT91SAM9G45_BASE_UDPHS + SZ_1K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[2] = {
-+		.start	= AT91SAM9G45_ID_UDPHS,
-+		.end	= AT91SAM9G45_ID_UDPHS,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+#define EP(nam, idx, maxpkt, maxbk, dma, isoc)			\
-+	[idx] = {						\
-+		.name		= nam,				\
-+		.index		= idx,				\
-+		.fifo_size	= maxpkt,			\
-+		.nr_banks	= maxbk,			\
-+		.can_dma	= dma,				\
-+		.can_isoc	= isoc,				\
-+	}
-+
-+static struct usba_ep_data usba_udc_ep[] __initdata = {
-+	EP("ep0", 0, 64, 1, 0, 0),
-+	EP("ep1", 1, 1024, 2, 1, 1),
-+	EP("ep2", 2, 1024, 2, 1, 1),
-+	EP("ep3", 3, 1024, 3, 1, 0),
-+	EP("ep4", 4, 1024, 3, 1, 0),
-+	EP("ep5", 5, 1024, 3, 1, 1),
-+	EP("ep6", 6, 1024, 3, 1, 1),
-+};
-+
-+#undef EP
-+
-+/*
-+ * pdata doesn't have room for any endpoints, so we need to
-+ * append room for the ones we need right after it.
-+ */
-+static struct {
-+	struct usba_platform_data pdata;
-+	struct usba_ep_data ep[7];
-+} usba_udc_data;
-+
-+static struct platform_device at91_usba_udc_device = {
-+	.name		= "atmel_usba_udc",
-+	.id		= -1,
-+	.dev		= {
-+				.platform_data	= &usba_udc_data.pdata,
-+	},
-+	.resource	= usba_udc_resources,
-+	.num_resources	= ARRAY_SIZE(usba_udc_resources),
-+};
-+
-+void __init at91_add_device_usba(struct usba_platform_data *data)
-+{
-+	usba_udc_data.pdata.vbus_pin = -EINVAL;
-+	usba_udc_data.pdata.num_ep = ARRAY_SIZE(usba_udc_ep);
-+	memcpy(usba_udc_data.ep, usba_udc_ep, sizeof(usba_udc_ep));;
-+
-+	if (data && data->vbus_pin > 0) {
-+		at91_set_gpio_input(data->vbus_pin, 0);
-+		at91_set_deglitch(data->vbus_pin, 1);
-+		usba_udc_data.pdata.vbus_pin = data->vbus_pin;
-+	}
-+
-+	/* Pullup pin is handled internally by USB device peripheral */
-+
-+	/* Clocks */
-+	at91_clock_associate("utmi_clk", &at91_usba_udc_device.dev, "hclk");
-+	at91_clock_associate("udphs_clk", &at91_usba_udc_device.dev, "pclk");
-+
-+	platform_device_register(&at91_usba_udc_device);
-+}
-+#else
-+void __init at91_add_device_usba(struct usba_platform_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  Ethernet
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
-+static u64 eth_dmamask = DMA_BIT_MASK(32);
-+static struct at91_eth_data eth_data;
-+
-+static struct resource eth_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_EMAC,
-+		.end	= AT91SAM9G45_BASE_EMAC + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_EMAC,
-+		.end	= AT91SAM9G45_ID_EMAC,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_eth_device = {
-+	.name		= "macb",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &eth_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &eth_data,
-+	},
-+	.resource	= eth_resources,
-+	.num_resources	= ARRAY_SIZE(eth_resources),
-+};
-+
-+void __init at91_add_device_eth(struct at91_eth_data *data)
-+{
-+	if (!data)
-+		return;
-+
-+	if (data->phy_irq_pin) {
-+		at91_set_gpio_input(data->phy_irq_pin, 0);
-+		at91_set_deglitch(data->phy_irq_pin, 1);
-+	}
-+
-+	/* Pins used for MII and RMII */
-+	at91_set_A_periph(AT91_PIN_PA17, 0);	/* ETXCK_EREFCK */
-+	at91_set_A_periph(AT91_PIN_PA15, 0);	/* ERXDV */
-+	at91_set_A_periph(AT91_PIN_PA12, 0);	/* ERX0 */
-+	at91_set_A_periph(AT91_PIN_PA13, 0);	/* ERX1 */
-+	at91_set_A_periph(AT91_PIN_PA16, 0);	/* ERXER */
-+	at91_set_A_periph(AT91_PIN_PA14, 0);	/* ETXEN */
-+	at91_set_A_periph(AT91_PIN_PA10, 0);	/* ETX0 */
-+	at91_set_A_periph(AT91_PIN_PA11, 0);	/* ETX1 */
-+	at91_set_A_periph(AT91_PIN_PA19, 0);	/* EMDIO */
-+	at91_set_A_periph(AT91_PIN_PA18, 0);	/* EMDC */
-+
-+	if (!data->is_rmii) {
-+		at91_set_B_periph(AT91_PIN_PA29, 0);	/* ECRS */
-+		at91_set_B_periph(AT91_PIN_PA30, 0);	/* ECOL */
-+		at91_set_B_periph(AT91_PIN_PA8,  0);	/* ERX2 */
-+		at91_set_B_periph(AT91_PIN_PA9,  0);	/* ERX3 */
-+		at91_set_B_periph(AT91_PIN_PA28, 0);	/* ERXCK */
-+		at91_set_B_periph(AT91_PIN_PA6,  0);	/* ETX2 */
-+		at91_set_B_periph(AT91_PIN_PA7,  0);	/* ETX3 */
-+		at91_set_B_periph(AT91_PIN_PA27, 0);	/* ETXER */
-+	}
-+
-+	eth_data = *data;
-+	platform_device_register(&at91sam9g45_eth_device);
-+}
-+#else
-+void __init at91_add_device_eth(struct at91_eth_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  MMC / SD
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE)
-+static u64 mmc_dmamask = DMA_BIT_MASK(32);
-+static struct mci_platform_data mmc0_data, mmc1_data;
-+
-+static struct resource mmc0_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_MCI0,
-+		.end	= AT91SAM9G45_BASE_MCI0 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_MCI0,
-+		.end	= AT91SAM9G45_ID_MCI0,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_mmc0_device = {
-+	.name		= "atmel_mci",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &mmc_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &mmc0_data,
-+	},
-+	.resource	= mmc0_resources,
-+	.num_resources	= ARRAY_SIZE(mmc0_resources),
-+};
-+
-+static struct resource mmc1_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_MCI1,
-+		.end	= AT91SAM9G45_BASE_MCI1 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_MCI1,
-+		.end	= AT91SAM9G45_ID_MCI1,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_mmc1_device = {
-+	.name		= "atmel_mci",
-+	.id		= 1,
-+	.dev		= {
-+				.dma_mask		= &mmc_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &mmc1_data,
-+	},
-+	.resource	= mmc1_resources,
-+	.num_resources	= ARRAY_SIZE(mmc1_resources),
-+};
-+
-+/* Consider only one slot : slot 0 */
-+void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)
-+{
-+	struct at_dma_slave	*atslave;
-+
-+	if (!data)
-+		return;
-+
-+	/* Must have at least one usable slot */
-+	if (!data->slot[0].bus_width)
-+		return;
-+
-+#if defined(CONFIG_AT_HDMAC) || defined(CONFIG_AT_HDMAC_MODULE)
-+	atslave = kzalloc(sizeof(struct at_dma_slave), GFP_KERNEL);
-+
-+	/* DMA slave channel configuration */
-+	atslave->dma_dev = &at_hdmac_device.dev;
-+	atslave->reg_width = DW_DMA_SLAVE_WIDTH_32BIT;
-+	atslave->cfg = ATC_FIFOCFG_HALFFIFO
-+			| ATC_SRC_H2SEL_HW | ATC_DST_H2SEL_HW;
-+	atslave->ctrla = ATC_SCSIZE_16 | ATC_DCSIZE_16;
-+	if (mmc_id == 0)	/* MCI0 */
-+		atslave->cfg |= ATC_SRC_PER(AT_DMA_ID_MCI0)
-+			      | ATC_DST_PER(AT_DMA_ID_MCI0);
-+
-+	else			/* MCI1 */
-+		atslave->cfg |= ATC_SRC_PER(AT_DMA_ID_MCI1)
-+			      | ATC_DST_PER(AT_DMA_ID_MCI1);
-+
-+	data->dma_slave = atslave;
-+#endif
-+
-+
-+	/* input/irq */
-+	if (data->slot[0].detect_pin) {
-+		at91_set_gpio_input(data->slot[0].detect_pin, 1);
-+		at91_set_deglitch(data->slot[0].detect_pin, 1);
-+	}
-+	if (data->slot[0].wp_pin)
-+		at91_set_gpio_input(data->slot[0].wp_pin, 1);
-+
-+	if (mmc_id == 0) {		/* MCI0 */
-+
-+		/* CLK */
-+		at91_set_A_periph(AT91_PIN_PA0, 0);
-+
-+		/* CMD */
-+		at91_set_A_periph(AT91_PIN_PA1, 1);
-+
-+		/* DAT0, maybe DAT1..DAT3 and maybe DAT4..DAT7 */
-+		at91_set_A_periph(AT91_PIN_PA2, 1);
-+		if (data->slot[0].bus_width == 4) {
-+			at91_set_A_periph(AT91_PIN_PA3, 1);
-+			at91_set_A_periph(AT91_PIN_PA4, 1);
-+			at91_set_A_periph(AT91_PIN_PA5, 1);
-+			if (data->slot[0].bus_width == 8) {
-+				at91_set_A_periph(AT91_PIN_PA6, 1);
-+				at91_set_A_periph(AT91_PIN_PA7, 1);
-+				at91_set_A_periph(AT91_PIN_PA8, 1);
-+				at91_set_A_periph(AT91_PIN_PA9, 1);
-+			}
-+		}
-+
-+		mmc0_data = *data;
-+		at91_clock_associate("mci0_clk", &at91sam9g45_mmc0_device.dev, "mci_clk");
-+		platform_device_register(&at91sam9g45_mmc0_device);
-+
-+	} else {			/* MCI1 */
-+
-+		/* CLK */
-+		at91_set_A_periph(AT91_PIN_PA31, 0);
-+
-+		/* CMD */
-+		at91_set_A_periph(AT91_PIN_PA22, 1);
-+
-+		/* DAT0, maybe DAT1..DAT3 and maybe DAT4..DAT7 */
-+		at91_set_A_periph(AT91_PIN_PA23, 1);
-+		if (data->slot[0].bus_width == 4) {
-+			at91_set_A_periph(AT91_PIN_PA24, 1);
-+			at91_set_A_periph(AT91_PIN_PA25, 1);
-+			at91_set_A_periph(AT91_PIN_PA26, 1);
-+			if (data->slot[0].bus_width == 8) {
-+				at91_set_A_periph(AT91_PIN_PA27, 1);
-+				at91_set_A_periph(AT91_PIN_PA28, 1);
-+				at91_set_A_periph(AT91_PIN_PA29, 1);
-+				at91_set_A_periph(AT91_PIN_PA30, 1);
-+			}
-+		}
-+
-+		mmc1_data = *data;
-+		at91_clock_associate("mci1_clk", &at91sam9g45_mmc1_device.dev, "mci_clk");
-+		platform_device_register(&at91sam9g45_mmc1_device);
-+
-+	}
-+}
-+#else
-+void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  NAND / SmartMedia
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_MTD_NAND_ATMEL) || defined(CONFIG_MTD_NAND_ATMEL_MODULE)
-+static struct atmel_nand_data nand_data;
-+
-+#define NAND_BASE	AT91_CHIPSELECT_3
-+
-+static struct resource nand_resources[] = {
-+	[0] = {
-+		.start	= NAND_BASE,
-+		.end	= NAND_BASE + SZ_256M - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91_BASE_SYS + AT91_ECC,
-+		.end	= AT91_BASE_SYS + AT91_ECC + SZ_512 - 1,
-+		.flags	= IORESOURCE_MEM,
-+	}
-+};
-+
-+static struct platform_device at91sam9g45_nand_device = {
-+	.name		= "atmel_nand",
-+	.id		= -1,
-+	.dev		= {
-+				.platform_data	= &nand_data,
-+	},
-+	.resource	= nand_resources,
-+	.num_resources	= ARRAY_SIZE(nand_resources),
-+};
-+
-+void __init at91_add_device_nand(struct atmel_nand_data *data)
-+{
-+	unsigned long csa;
-+
-+	if (!data)
-+		return;
-+
-+	csa = at91_sys_read(AT91_MATRIX_EBICSA);
-+	at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA);
-+
-+	/* enable pin */
-+	if (data->enable_pin)
-+		at91_set_gpio_output(data->enable_pin, 1);
-+
-+	/* ready/busy pin */
-+	if (data->rdy_pin)
-+		at91_set_gpio_input(data->rdy_pin, 1);
-+
-+	/* card detect pin */
-+	if (data->det_pin)
-+		at91_set_gpio_input(data->det_pin, 1);
-+
-+	nand_data = *data;
-+	platform_device_register(&at91sam9g45_nand_device);
-+}
-+#else
-+void __init at91_add_device_nand(struct atmel_nand_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  TWI (i2c)
-+ * -------------------------------------------------------------------- */
-+
-+/*
-+ * Prefer the GPIO code since the TWI controller isn't robust
-+ * (gets overruns and underruns under load) and can only issue
-+ * repeated STARTs in one scenario (the driver doesn't yet handle them).
-+ */
-+#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
-+static struct i2c_gpio_platform_data pdata_i2c0 = {
-+	.sda_pin		= AT91_PIN_PA20,
-+	.sda_is_open_drain	= 1,
-+	.scl_pin		= AT91_PIN_PA21,
-+	.scl_is_open_drain	= 1,
-+	.udelay			= 2,		/* ~100 kHz */
-+};
-+
-+static struct platform_device at91sam9g45_twi0_device = {
-+	.name			= "i2c-gpio",
-+	.id			= 0,
-+	.dev.platform_data	= &pdata_i2c0,
-+};
-+
-+static struct i2c_gpio_platform_data pdata_i2c1 = {
-+	.sda_pin		= AT91_PIN_PB10,
-+	.sda_is_open_drain	= 1,
-+	.scl_pin		= AT91_PIN_PB11,
-+	.scl_is_open_drain	= 1,
-+	.udelay			= 2,		/* ~100 kHz */
-+};
-+
-+static struct platform_device at91sam9g45_twi1_device = {
-+	.name			= "i2c-gpio",
-+	.id			= 1,
-+	.dev.platform_data	= &pdata_i2c1,
-+};
-+
-+void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices)
-+{
-+	i2c_register_board_info(i2c_id, devices, nr_devices);
-+
-+	if (i2c_id == 0) {
-+		at91_set_GPIO_periph(AT91_PIN_PA20, 1);		/* TWD (SDA) */
-+		at91_set_multi_drive(AT91_PIN_PA20, 1);
-+
-+		at91_set_GPIO_periph(AT91_PIN_PA21, 1);		/* TWCK (SCL) */
-+		at91_set_multi_drive(AT91_PIN_PA21, 1);
-+
-+		platform_device_register(&at91sam9g45_twi0_device);
-+	} else {
-+		at91_set_GPIO_periph(AT91_PIN_PB10, 1);		/* TWD (SDA) */
-+		at91_set_multi_drive(AT91_PIN_PB10, 1);
-+
-+		at91_set_GPIO_periph(AT91_PIN_PB11, 1);		/* TWCK (SCL) */
-+		at91_set_multi_drive(AT91_PIN_PB11, 1);
-+
-+		platform_device_register(&at91sam9g45_twi1_device);
-+	}
-+}
-+
-+#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
-+static struct resource twi0_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_TWI0,
-+		.end	= AT91SAM9G45_BASE_TWI0 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_TWI0,
-+		.end	= AT91SAM9G45_ID_TWI0,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_twi0_device = {
-+	.name		= "at91_i2c",
-+	.id		= 0,
-+	.resource	= twi0_resources,
-+	.num_resources	= ARRAY_SIZE(twi0_resources),
-+};
-+
-+static struct resource twi1_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_TWI1,
-+		.end	= AT91SAM9G45_BASE_TWI1 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_TWI1,
-+		.end	= AT91SAM9G45_ID_TWI1,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_twi1_device = {
-+	.name		= "at91_i2c",
-+	.id		= 1,
-+	.resource	= twi1_resources,
-+	.num_resources	= ARRAY_SIZE(twi1_resources),
-+};
-+
-+void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices)
-+{
-+	i2c_register_board_info(i2c_id, devices, nr_devices);
-+
-+	/* pins used for TWI interface */
-+	if (i2c_id == 0) {
-+		at91_set_A_periph(AT91_PIN_PA20, 0);		/* TWD */
-+		at91_set_multi_drive(AT91_PIN_PA20, 1);
-+
-+		at91_set_A_periph(AT91_PIN_PA21, 0);		/* TWCK */
-+		at91_set_multi_drive(AT91_PIN_PA21, 1);
-+
-+		platform_device_register(&at91sam9g45_twi0_device);
-+	} else {
-+		at91_set_A_periph(AT91_PIN_PB10, 0);		/* TWD */
-+		at91_set_multi_drive(AT91_PIN_PB10, 1);
-+
-+		at91_set_A_periph(AT91_PIN_PB11, 0);		/* TWCK */
-+		at91_set_multi_drive(AT91_PIN_PB11, 1);
-+
-+		platform_device_register(&at91sam9g45_twi1_device);
-+	}
-+}
-+#else
-+void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  SPI
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_SPI_ATMEL) || defined(CONFIG_SPI_ATMEL_MODULE)
-+static u64 spi_dmamask = DMA_BIT_MASK(32);
-+
-+static struct resource spi0_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_SPI0,
-+		.end	= AT91SAM9G45_BASE_SPI0 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_SPI0,
-+		.end	= AT91SAM9G45_ID_SPI0,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_spi0_device = {
-+	.name		= "atmel_spi",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &spi_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+	},
-+	.resource	= spi0_resources,
-+	.num_resources	= ARRAY_SIZE(spi0_resources),
-+};
-+
-+static const unsigned spi0_standard_cs[4] = { AT91_PIN_PB3, AT91_PIN_PB18, AT91_PIN_PB19, AT91_PIN_PD27 };
-+
-+static struct resource spi1_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_SPI1,
-+		.end	= AT91SAM9G45_BASE_SPI1 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_SPI1,
-+		.end	= AT91SAM9G45_ID_SPI1,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_spi1_device = {
-+	.name		= "atmel_spi",
-+	.id		= 1,
-+	.dev		= {
-+				.dma_mask		= &spi_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+	},
-+	.resource	= spi1_resources,
-+	.num_resources	= ARRAY_SIZE(spi1_resources),
-+};
-+
-+static const unsigned spi1_standard_cs[4] = { AT91_PIN_PB17, AT91_PIN_PD28, AT91_PIN_PD18, AT91_PIN_PD19 };
-+
-+void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
-+{
-+	int i;
-+	unsigned long cs_pin;
-+	short enable_spi0 = 0;
-+	short enable_spi1 = 0;
-+
-+	/* Choose SPI chip-selects */
-+	for (i = 0; i < nr_devices; i++) {
-+		if (devices[i].controller_data)
-+			cs_pin = (unsigned long) devices[i].controller_data;
-+		else if (devices[i].bus_num == 0)
-+			cs_pin = spi0_standard_cs[devices[i].chip_select];
-+		else
-+			cs_pin = spi1_standard_cs[devices[i].chip_select];
-+
-+		if (devices[i].bus_num == 0)
-+			enable_spi0 = 1;
-+		else
-+			enable_spi1 = 1;
-+
-+		/* enable chip-select pin */
-+		at91_set_gpio_output(cs_pin, 1);
-+
-+		/* pass chip-select pin to driver */
-+		devices[i].controller_data = (void *) cs_pin;
-+	}
-+
-+	spi_register_board_info(devices, nr_devices);
-+
-+	/* Configure SPI bus(es) */
-+	if (enable_spi0) {
-+		at91_set_A_periph(AT91_PIN_PB0, 0);	/* SPI0_MISO */
-+		at91_set_A_periph(AT91_PIN_PB1, 0);	/* SPI0_MOSI */
-+		at91_set_A_periph(AT91_PIN_PB2, 0);	/* SPI0_SPCK */
-+
-+		at91_clock_associate("spi0_clk", &at91sam9g45_spi0_device.dev, "spi_clk");
-+		platform_device_register(&at91sam9g45_spi0_device);
-+	}
-+	if (enable_spi1) {
-+		at91_set_A_periph(AT91_PIN_PB14, 0);	/* SPI1_MISO */
-+		at91_set_A_periph(AT91_PIN_PB15, 0);	/* SPI1_MOSI */
-+		at91_set_A_periph(AT91_PIN_PB16, 0);	/* SPI1_SPCK */
-+
-+		at91_clock_associate("spi1_clk", &at91sam9g45_spi1_device.dev, "spi_clk");
-+		platform_device_register(&at91sam9g45_spi1_device);
-+	}
-+}
-+#else
-+void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  AC97
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_SND_ATMEL_AC97C) || defined(CONFIG_SND_ATMEL_AC97C_MODULE)
-+static u64 ac97_dmamask = DMA_BIT_MASK(32);
-+static struct ac97c_platform_data ac97_data;
-+
-+static struct resource ac97_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_AC97C,
-+		.end	= AT91SAM9G45_BASE_AC97C + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_AC97C,
-+		.end	= AT91SAM9G45_ID_AC97C,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_ac97_device = {
-+	.name		= "atmel_ac97c",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &ac97_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &ac97_data,
-+	},
-+	.resource	= ac97_resources,
-+	.num_resources	= ARRAY_SIZE(ac97_resources),
-+};
-+
-+void __init at91_add_device_ac97(struct ac97c_platform_data *data)
-+{
-+	if (!data)
-+		return;
-+
-+	at91_set_A_periph(AT91_PIN_PD8, 0);	/* AC97FS */
-+	at91_set_A_periph(AT91_PIN_PD9, 0);	/* AC97CK */
-+	at91_set_A_periph(AT91_PIN_PD7, 0);	/* AC97TX */
-+	at91_set_A_periph(AT91_PIN_PD6, 0);	/* AC97RX */
-+
-+	/* reset */
-+	if (data->reset_pin)
-+		at91_set_gpio_output(data->reset_pin, 0);
-+
-+	ac97_data = *data;
-+	platform_device_register(&at91sam9g45_ac97_device);
-+}
-+#else
-+void __init at91_add_device_ac97(struct ac97c_platform_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  LCD Controller
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
-+static u64 lcdc_dmamask = DMA_BIT_MASK(32);
-+static struct atmel_lcdfb_info lcdc_data;
-+
-+static struct resource lcdc_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_LCDC_BASE,
-+		.end	= AT91SAM9G45_LCDC_BASE + SZ_4K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_LCDC,
-+		.end	= AT91SAM9G45_ID_LCDC,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91_lcdc_device = {
-+	.name		= "atmel_lcdfb",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &lcdc_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &lcdc_data,
-+	},
-+	.resource	= lcdc_resources,
-+	.num_resources	= ARRAY_SIZE(lcdc_resources),
-+};
-+
-+void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data)
-+{
-+	if (!data)
-+		return;
-+
-+	at91_set_A_periph(AT91_PIN_PE0, 0);	/* LCDDPWR */
-+
-+	at91_set_A_periph(AT91_PIN_PE2, 0);	/* LCDCC */
-+	at91_set_A_periph(AT91_PIN_PE3, 0);	/* LCDVSYNC */
-+	at91_set_A_periph(AT91_PIN_PE4, 0);	/* LCDHSYNC */
-+	at91_set_A_periph(AT91_PIN_PE5, 0);	/* LCDDOTCK */
-+	at91_set_A_periph(AT91_PIN_PE6, 0);	/* LCDDEN */
-+	at91_set_A_periph(AT91_PIN_PE7, 0);	/* LCDD0 */
-+	at91_set_A_periph(AT91_PIN_PE8, 0);	/* LCDD1 */
-+	at91_set_A_periph(AT91_PIN_PE9, 0);	/* LCDD2 */
-+	at91_set_A_periph(AT91_PIN_PE10, 0);	/* LCDD3 */
-+	at91_set_A_periph(AT91_PIN_PE11, 0);	/* LCDD4 */
-+	at91_set_A_periph(AT91_PIN_PE12, 0);	/* LCDD5 */
-+	at91_set_A_periph(AT91_PIN_PE13, 0);	/* LCDD6 */
-+	at91_set_A_periph(AT91_PIN_PE14, 0);	/* LCDD7 */
-+	at91_set_A_periph(AT91_PIN_PE15, 0);	/* LCDD8 */
-+	at91_set_A_periph(AT91_PIN_PE16, 0);	/* LCDD9 */
-+	at91_set_A_periph(AT91_PIN_PE17, 0);	/* LCDD10 */
-+	at91_set_A_periph(AT91_PIN_PE18, 0);	/* LCDD11 */
-+	at91_set_A_periph(AT91_PIN_PE19, 0);	/* LCDD12 */
-+	at91_set_A_periph(AT91_PIN_PE20, 0);	/* LCDD13 */
-+	at91_set_A_periph(AT91_PIN_PE21, 0);	/* LCDD14 */
-+	at91_set_A_periph(AT91_PIN_PE22, 0);	/* LCDD15 */
-+	at91_set_A_periph(AT91_PIN_PE23, 0);	/* LCDD16 */
-+	at91_set_A_periph(AT91_PIN_PE24, 0);	/* LCDD17 */
-+	at91_set_A_periph(AT91_PIN_PE25, 0);	/* LCDD18 */
-+	at91_set_A_periph(AT91_PIN_PE26, 0);	/* LCDD19 */
-+	at91_set_A_periph(AT91_PIN_PE27, 0);	/* LCDD20 */
-+	at91_set_A_periph(AT91_PIN_PE28, 0);	/* LCDD21 */
-+	at91_set_A_periph(AT91_PIN_PE29, 0);	/* LCDD22 */
-+	at91_set_A_periph(AT91_PIN_PE30, 0);	/* LCDD23 */
-+
-+	lcdc_data = *data;
-+	platform_device_register(&at91_lcdc_device);
-+}
-+#else
-+void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  Timer/Counter block
-+ * -------------------------------------------------------------------- */
-+
-+#ifdef CONFIG_ATMEL_TCLIB
-+static struct resource tcb0_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_TCB0,
-+		.end	= AT91SAM9G45_BASE_TCB0 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_TCB,
-+		.end	= AT91SAM9G45_ID_TCB,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_tcb0_device = {
-+	.name		= "atmel_tcb",
-+	.id		= 0,
-+	.resource	= tcb0_resources,
-+	.num_resources	= ARRAY_SIZE(tcb0_resources),
-+};
-+
-+/* TCB1 begins with TC3 */
-+static struct resource tcb1_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_TCB1,
-+		.end	= AT91SAM9G45_BASE_TCB1 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_TCB,
-+		.end	= AT91SAM9G45_ID_TCB,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_tcb1_device = {
-+	.name		= "atmel_tcb",
-+	.id		= 1,
-+	.resource	= tcb1_resources,
-+	.num_resources	= ARRAY_SIZE(tcb1_resources),
-+};
-+
-+static void __init at91_add_device_tc(void)
-+{
-+	/* this chip has one clock and irq for all six TC channels */
-+	at91_clock_associate("tcb_clk", &at91sam9g45_tcb0_device.dev, "t0_clk");
-+	platform_device_register(&at91sam9g45_tcb0_device);
-+	at91_clock_associate("tcb_clk", &at91sam9g45_tcb1_device.dev, "t0_clk");
-+	platform_device_register(&at91sam9g45_tcb1_device);
-+}
-+#else
-+static void __init at91_add_device_tc(void) { }
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  RTC
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_RTC_DRV_AT91RM9200) || defined(CONFIG_RTC_DRV_AT91RM9200_MODULE)
-+static struct platform_device at91sam9g45_rtc_device = {
-+	.name		= "at91_rtc",
-+	.id		= -1,
-+	.num_resources	= 0,
-+};
-+
-+static void __init at91_add_device_rtc(void)
-+{
-+	platform_device_register(&at91sam9g45_rtc_device);
-+}
-+#else
-+static void __init at91_add_device_rtc(void) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  Touchscreen
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_TOUCHSCREEN_ATMEL_TSADCC) || defined(CONFIG_TOUCHSCREEN_ATMEL_TSADCC_MODULE)
-+static u64 tsadcc_dmamask = DMA_BIT_MASK(32);
-+static struct at91_tsadcc_data tsadcc_data;
-+
-+static struct resource tsadcc_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_TSC,
-+		.end	= AT91SAM9G45_BASE_TSC + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_TSC,
-+		.end	= AT91SAM9G45_ID_TSC,
-+		.flags	= IORESOURCE_IRQ,
-+	}
-+};
-+
-+static struct platform_device at91sam9g45_tsadcc_device = {
-+	.name		= "atmel_tsadcc",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &tsadcc_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &tsadcc_data,
-+	},
-+	.resource	= tsadcc_resources,
-+	.num_resources	= ARRAY_SIZE(tsadcc_resources),
-+};
-+
-+void __init at91_add_device_tsadcc(struct at91_tsadcc_data *data)
-+{
-+	if (!data)
-+		return;
-+
-+	at91_set_gpio_input(AT91_PIN_PD20, 0);	/* AD0_XR */
-+	at91_set_gpio_input(AT91_PIN_PD21, 0);	/* AD1_XL */
-+	at91_set_gpio_input(AT91_PIN_PD22, 0);	/* AD2_YT */
-+	at91_set_gpio_input(AT91_PIN_PD23, 0);	/* AD3_TB */
-+
-+	tsadcc_data = *data;
-+	platform_device_register(&at91sam9g45_tsadcc_device);
-+}
-+#else
-+void __init at91_add_device_tsadcc(struct at91_tsadcc_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  RTT
-+ * -------------------------------------------------------------------- */
-+
-+static struct resource rtt_resources[] = {
-+	{
-+		.start	= AT91_BASE_SYS + AT91_RTT,
-+		.end	= AT91_BASE_SYS + AT91_RTT + SZ_16 - 1,
-+		.flags	= IORESOURCE_MEM,
-+	}
-+};
-+
-+static struct platform_device at91sam9g45_rtt_device = {
-+	.name		= "at91_rtt",
-+	.id		= 0,
-+	.resource	= rtt_resources,
-+	.num_resources	= ARRAY_SIZE(rtt_resources),
-+};
-+
-+static void __init at91_add_device_rtt(void)
-+{
-+	platform_device_register(&at91sam9g45_rtt_device);
-+}
-+
-+
-+/* --------------------------------------------------------------------
-+ *  Watchdog
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE)
-+static struct platform_device at91sam9g45_wdt_device = {
-+	.name		= "at91_wdt",
-+	.id		= -1,
-+	.num_resources	= 0,
-+};
-+
-+static void __init at91_add_device_watchdog(void)
-+{
-+	platform_device_register(&at91sam9g45_wdt_device);
-+}
-+#else
-+static void __init at91_add_device_watchdog(void) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  PWM
-+ * --------------------------------------------------------------------*/
-+
-+#if defined(CONFIG_ATMEL_PWM) || defined(CONFIG_ATMEL_PWM_MODULE)
-+static u32 pwm_mask;
-+
-+static struct resource pwm_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_PWMC,
-+		.end	= AT91SAM9G45_BASE_PWMC + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_PWMC,
-+		.end	= AT91SAM9G45_ID_PWMC,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_pwm0_device = {
-+	.name	= "atmel_pwm",
-+	.id	= -1,
-+	.dev	= {
-+		.platform_data		= &pwm_mask,
-+	},
-+	.resource	= pwm_resources,
-+	.num_resources	= ARRAY_SIZE(pwm_resources),
-+};
-+
-+void __init at91_add_device_pwm(u32 mask)
-+{
-+	if (mask & (1 << AT91_PWM0))
-+		at91_set_B_periph(AT91_PIN_PD24, 1);	/* enable PWM0 */
-+
-+	if (mask & (1 << AT91_PWM1))
-+		at91_set_B_periph(AT91_PIN_PD31, 1);	/* enable PWM1 */
-+
-+	if (mask & (1 << AT91_PWM2))
-+		at91_set_B_periph(AT91_PIN_PD26, 1);	/* enable PWM2 */
-+
-+	if (mask & (1 << AT91_PWM3))
-+		at91_set_B_periph(AT91_PIN_PD0, 1);	/* enable PWM3 */
-+
-+	pwm_mask = mask;
-+
-+	platform_device_register(&at91sam9g45_pwm0_device);
-+}
-+#else
-+void __init at91_add_device_pwm(u32 mask) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  SSC -- Synchronous Serial Controller
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_ATMEL_SSC) || defined(CONFIG_ATMEL_SSC_MODULE)
-+static u64 ssc0_dmamask = DMA_BIT_MASK(32);
-+
-+static struct resource ssc0_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_SSC0,
-+		.end	= AT91SAM9G45_BASE_SSC0 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_SSC0,
-+		.end	= AT91SAM9G45_ID_SSC0,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_ssc0_device = {
-+	.name	= "ssc",
-+	.id	= 0,
-+	.dev	= {
-+		.dma_mask		= &ssc0_dmamask,
-+		.coherent_dma_mask	= DMA_BIT_MASK(32),
-+	},
-+	.resource	= ssc0_resources,
-+	.num_resources	= ARRAY_SIZE(ssc0_resources),
-+};
-+
-+static inline void configure_ssc0_pins(unsigned pins)
-+{
-+	if (pins & ATMEL_SSC_TF)
-+		at91_set_A_periph(AT91_PIN_PD1, 1);
-+	if (pins & ATMEL_SSC_TK)
-+		at91_set_A_periph(AT91_PIN_PD0, 1);
-+	if (pins & ATMEL_SSC_TD)
-+		at91_set_A_periph(AT91_PIN_PD2, 1);
-+	if (pins & ATMEL_SSC_RD)
-+		at91_set_A_periph(AT91_PIN_PD3, 1);
-+	if (pins & ATMEL_SSC_RK)
-+		at91_set_A_periph(AT91_PIN_PD4, 1);
-+	if (pins & ATMEL_SSC_RF)
-+		at91_set_A_periph(AT91_PIN_PD5, 1);
-+}
-+
-+static u64 ssc1_dmamask = DMA_BIT_MASK(32);
-+
-+static struct resource ssc1_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_SSC1,
-+		.end	= AT91SAM9G45_BASE_SSC1 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_SSC1,
-+		.end	= AT91SAM9G45_ID_SSC1,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9g45_ssc1_device = {
-+	.name	= "ssc",
-+	.id	= 1,
-+	.dev	= {
-+		.dma_mask		= &ssc1_dmamask,
-+		.coherent_dma_mask	= DMA_BIT_MASK(32),
-+	},
-+	.resource	= ssc1_resources,
-+	.num_resources	= ARRAY_SIZE(ssc1_resources),
-+};
-+
-+static inline void configure_ssc1_pins(unsigned pins)
-+{
-+	if (pins & ATMEL_SSC_TF)
-+		at91_set_A_periph(AT91_PIN_PD14, 1);
-+	if (pins & ATMEL_SSC_TK)
-+		at91_set_A_periph(AT91_PIN_PD12, 1);
-+	if (pins & ATMEL_SSC_TD)
-+		at91_set_A_periph(AT91_PIN_PD10, 1);
-+	if (pins & ATMEL_SSC_RD)
-+		at91_set_A_periph(AT91_PIN_PD11, 1);
-+	if (pins & ATMEL_SSC_RK)
-+		at91_set_A_periph(AT91_PIN_PD13, 1);
-+	if (pins & ATMEL_SSC_RF)
-+		at91_set_A_periph(AT91_PIN_PD15, 1);
-+}
-+
-+/*
-+ * SSC controllers are accessed through library code, instead of any
-+ * kind of all-singing/all-dancing driver.  For example one could be
-+ * used by a particular I2S audio codec's driver, while another one
-+ * on the same system might be used by a custom data capture driver.
-+ */
-+void __init at91_add_device_ssc(unsigned id, unsigned pins)
-+{
-+	struct platform_device *pdev;
-+
-+	/*
-+	 * NOTE: caller is responsible for passing information matching
-+	 * "pins" to whatever will be using each particular controller.
-+	 */
-+	switch (id) {
-+	case AT91SAM9G45_ID_SSC0:
-+		pdev = &at91sam9g45_ssc0_device;
-+		configure_ssc0_pins(pins);
-+		at91_clock_associate("ssc0_clk", &pdev->dev, "pclk");
-+		break;
-+	case AT91SAM9G45_ID_SSC1:
-+		pdev = &at91sam9g45_ssc1_device;
-+		configure_ssc1_pins(pins);
-+		at91_clock_associate("ssc1_clk", &pdev->dev, "pclk");
-+		break;
-+	default:
-+		return;
-+	}
-+
-+	platform_device_register(pdev);
-+}
-+
-+#else
-+void __init at91_add_device_ssc(unsigned id, unsigned pins) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-+ *  UART
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_SERIAL_ATMEL)
-+static struct resource dbgu_resources[] = {
-+	[0] = {
-+		.start	= AT91_VA_BASE_SYS + AT91_DBGU,
-+		.end	= AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91_ID_SYS,
-+		.end	= AT91_ID_SYS,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct atmel_uart_data dbgu_data = {
-+	.use_dma_tx	= 0,
-+	.use_dma_rx	= 0,
-+	.regs		= (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU),
-+};
-+
-+static u64 dbgu_dmamask = DMA_BIT_MASK(32);
-+
-+static struct platform_device at91sam9g45_dbgu_device = {
-+	.name		= "atmel_usart",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &dbgu_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &dbgu_data,
-+	},
-+	.resource	= dbgu_resources,
-+	.num_resources	= ARRAY_SIZE(dbgu_resources),
-+};
-+
-+static inline void configure_dbgu_pins(void)
-+{
-+	at91_set_A_periph(AT91_PIN_PB12, 0);		/* DRXD */
-+	at91_set_A_periph(AT91_PIN_PB13, 1);		/* DTXD */
-+}
-+
-+static struct resource uart0_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_US0,
-+		.end	= AT91SAM9G45_BASE_US0 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_US0,
-+		.end	= AT91SAM9G45_ID_US0,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct atmel_uart_data uart0_data = {
-+	.use_dma_tx	= 1,
-+	.use_dma_rx	= 1,
-+};
-+
-+static u64 uart0_dmamask = DMA_BIT_MASK(32);
-+
-+static struct platform_device at91sam9g45_uart0_device = {
-+	.name		= "atmel_usart",
-+	.id		= 1,
-+	.dev		= {
-+				.dma_mask		= &uart0_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &uart0_data,
-+	},
-+	.resource	= uart0_resources,
-+	.num_resources	= ARRAY_SIZE(uart0_resources),
-+};
-+
-+static inline void configure_usart0_pins(unsigned pins)
-+{
-+	at91_set_A_periph(AT91_PIN_PB19, 1);		/* TXD0 */
-+	at91_set_A_periph(AT91_PIN_PB18, 0);		/* RXD0 */
-+
-+	if (pins & ATMEL_UART_RTS)
-+		at91_set_B_periph(AT91_PIN_PB17, 0);	/* RTS0 */
-+	if (pins & ATMEL_UART_CTS)
-+		at91_set_B_periph(AT91_PIN_PB15, 0);	/* CTS0 */
-+}
-+
-+static struct resource uart1_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_US1,
-+		.end	= AT91SAM9G45_BASE_US1 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_US1,
-+		.end	= AT91SAM9G45_ID_US1,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct atmel_uart_data uart1_data = {
-+	.use_dma_tx	= 1,
-+	.use_dma_rx	= 1,
-+};
-+
-+static u64 uart1_dmamask = DMA_BIT_MASK(32);
-+
-+static struct platform_device at91sam9g45_uart1_device = {
-+	.name		= "atmel_usart",
-+	.id		= 2,
-+	.dev		= {
-+				.dma_mask		= &uart1_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &uart1_data,
-+	},
-+	.resource	= uart1_resources,
-+	.num_resources	= ARRAY_SIZE(uart1_resources),
-+};
-+
-+static inline void configure_usart1_pins(unsigned pins)
-+{
-+	at91_set_A_periph(AT91_PIN_PB4, 1);		/* TXD1 */
-+	at91_set_A_periph(AT91_PIN_PB5, 0);		/* RXD1 */
-+
-+	if (pins & ATMEL_UART_RTS)
-+		at91_set_A_periph(AT91_PIN_PD16, 0);	/* RTS1 */
-+	if (pins & ATMEL_UART_CTS)
-+		at91_set_A_periph(AT91_PIN_PD17, 0);	/* CTS1 */
-+}
-+
-+static struct resource uart2_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_US2,
-+		.end	= AT91SAM9G45_BASE_US2 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_US2,
-+		.end	= AT91SAM9G45_ID_US2,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct atmel_uart_data uart2_data = {
-+	.use_dma_tx	= 1,
-+	.use_dma_rx	= 1,
-+};
-+
-+static u64 uart2_dmamask = DMA_BIT_MASK(32);
-+
-+static struct platform_device at91sam9g45_uart2_device = {
-+	.name		= "atmel_usart",
-+	.id		= 3,
-+	.dev		= {
-+				.dma_mask		= &uart2_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &uart2_data,
-+	},
-+	.resource	= uart2_resources,
-+	.num_resources	= ARRAY_SIZE(uart2_resources),
-+};
-+
-+static inline void configure_usart2_pins(unsigned pins)
-+{
-+	at91_set_A_periph(AT91_PIN_PB6, 1);		/* TXD2 */
-+	at91_set_A_periph(AT91_PIN_PB7, 0);		/* RXD2 */
-+
-+	if (pins & ATMEL_UART_RTS)
-+		at91_set_B_periph(AT91_PIN_PC9, 0);	/* RTS2 */
-+	if (pins & ATMEL_UART_CTS)
-+		at91_set_B_periph(AT91_PIN_PC11, 0);	/* CTS2 */
-+}
-+
-+static struct resource uart3_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9G45_BASE_US3,
-+		.end	= AT91SAM9G45_BASE_US3 + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9G45_ID_US3,
-+		.end	= AT91SAM9G45_ID_US3,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct atmel_uart_data uart3_data = {
-+	.use_dma_tx	= 1,
-+	.use_dma_rx	= 1,
-+};
-+
-+static u64 uart3_dmamask = DMA_BIT_MASK(32);
-+
-+static struct platform_device at91sam9g45_uart3_device = {
-+	.name		= "atmel_usart",
-+	.id		= 4,
-+	.dev		= {
-+				.dma_mask		= &uart3_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &uart3_data,
-+	},
-+	.resource	= uart3_resources,
-+	.num_resources	= ARRAY_SIZE(uart3_resources),
-+};
-+
-+static inline void configure_usart3_pins(unsigned pins)
-+{
-+	at91_set_A_periph(AT91_PIN_PB8, 1);		/* TXD3 */
-+	at91_set_A_periph(AT91_PIN_PB9, 0);		/* RXD3 */
-+
-+	if (pins & ATMEL_UART_RTS)
-+		at91_set_B_periph(AT91_PIN_PA23, 0);	/* RTS3 */
-+	if (pins & ATMEL_UART_CTS)
-+		at91_set_B_periph(AT91_PIN_PA24, 0);	/* CTS3 */
-+}
-+
-+static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART];	/* the UARTs to use */
-+struct platform_device *atmel_default_console_device;	/* the serial console device */
-+
-+void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
-+{
-+	struct platform_device *pdev;
-+
-+	switch (id) {
-+		case 0:		/* DBGU */
-+			pdev = &at91sam9g45_dbgu_device;
-+			configure_dbgu_pins();
-+			at91_clock_associate("mck", &pdev->dev, "usart");
-+			break;
-+		case AT91SAM9G45_ID_US0:
-+			pdev = &at91sam9g45_uart0_device;
-+			configure_usart0_pins(pins);
-+			at91_clock_associate("usart0_clk", &pdev->dev, "usart");
-+			break;
-+		case AT91SAM9G45_ID_US1:
-+			pdev = &at91sam9g45_uart1_device;
-+			configure_usart1_pins(pins);
-+			at91_clock_associate("usart1_clk", &pdev->dev, "usart");
-+			break;
-+		case AT91SAM9G45_ID_US2:
-+			pdev = &at91sam9g45_uart2_device;
-+			configure_usart2_pins(pins);
-+			at91_clock_associate("usart2_clk", &pdev->dev, "usart");
-+			break;
-+		case AT91SAM9G45_ID_US3:
-+			pdev = &at91sam9g45_uart3_device;
-+			configure_usart3_pins(pins);
-+			at91_clock_associate("usart3_clk", &pdev->dev, "usart");
-+			break;
-+		default:
-+			return;
-+	}
-+	pdev->id = portnr;		/* update to mapped ID */
-+
-+	if (portnr < ATMEL_MAX_UART)
-+		at91_uarts[portnr] = pdev;
-+}
-+
-+void __init at91_set_serial_console(unsigned portnr)
-+{
-+	if (portnr < ATMEL_MAX_UART)
-+		atmel_default_console_device = at91_uarts[portnr];
-+}
-+
-+void __init at91_add_device_serial(void)
-+{
-+	int i;
-+
-+	for (i = 0; i < ATMEL_MAX_UART; i++) {
-+		if (at91_uarts[i])
-+			platform_device_register(at91_uarts[i]);
-+	}
-+
-+	if (!atmel_default_console_device)
-+		printk(KERN_INFO "AT91: No default serial console defined.\n");
-+}
-+#else
-+void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
-+void __init at91_set_serial_console(unsigned portnr) {}
-+void __init at91_add_device_serial(void) {}
-+#endif
-+
-+
-+/* -------------------------------------------------------------------- */
-+/*
-+ * These devices are always present and don't need any board-specific
-+ * setup.
-+ */
-+static int __init at91_add_standard_devices(void)
-+{
-+	at91_add_device_hdmac();
-+	at91_add_device_rtc();
-+	at91_add_device_rtt();
-+	at91_add_device_watchdog();
-+	at91_add_device_tc();
-+	return 0;
-+}
-+
-+arch_initcall(at91_add_standard_devices);
-Index: linux-2.6.30/arch/arm/mach-at91/board-sam9m10g45ek.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/board-sam9m10g45ek.c	2011-02-01 16:40:30.165043750 +0100
-@@ -0,0 +1,436 @@
-+/*
-+ *  Board-specific setup code for the AT91SAM9M10G45 Evaluation Kit family
-+ *
-+ *  Covers: * AT91SAM9G45-EKES  board
-+ *          * AT91SAM9M10G45-EK board
-+ *
-+ *  Copyright (C) 2009 Atmel Corporation.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/init.h>
-+#include <linux/mm.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <linux/spi/spi.h>
-+#include <linux/fb.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
-+#include <linux/leds.h>
-+#include <linux/clk.h>
-+#include <linux/atmel-mci.h>
-+
-+#include <mach/hardware.h>
-+#include <video/atmel_lcdc.h>
-+
-+#include <asm/setup.h>
-+#include <asm/mach-types.h>
-+#include <asm/irq.h>
-+
-+#include <asm/mach/arch.h>
-+#include <asm/mach/map.h>
-+#include <asm/mach/irq.h>
-+
-+#include <mach/hardware.h>
-+#include <mach/board.h>
-+#include <mach/gpio.h>
-+#include <mach/at91sam9_smc.h>
-+#include <mach/at91_shdwc.h>
-+
-+#include "sam9_smc.h"
-+#include "generic.h"
-+
-+
-+static void __init ek_map_io(void)
-+{
-+	/* Initialize processor: 12.000 MHz crystal */
-+	at91sam9g45_initialize(12000000);
-+
-+	/* DGBU on ttyS0. (Rx & Tx only) */
-+	at91_register_uart(0, 0, 0);
-+
-+	/* USART0 not connected on the -EK board */
-+	/* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
-+	at91_register_uart(AT91SAM9G45_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
-+
-+	/* set serial console to ttyS0 (ie, DBGU) */
-+	at91_set_serial_console(0);
-+}
-+
-+static void __init ek_init_irq(void)
-+{
-+	at91sam9g45_init_interrupts(NULL);
-+}
-+
-+
-+/*
-+ * USB HS Host port (common to OHCI & EHCI)
-+ */
-+static struct at91_usbh_data __initdata ek_usbh_hs_data = {
-+	.ports		= 2,
-+	.vbus_pin	= {AT91_PIN_PD1, AT91_PIN_PD3},
-+};
-+
-+
-+/*
-+ * USB HS Device port
-+ */
-+static struct usba_platform_data __initdata ek_usba_udc_data = {
-+	.vbus_pin	= AT91_PIN_PB19,
-+};
-+
-+
-+/*
-+ * SPI devices.
-+ */
-+static struct spi_board_info ek_spi_devices[] = {
-+	{	/* DataFlash chip */
-+		.modalias	= "mtd_dataflash",
-+		.chip_select	= 0,
-+		.max_speed_hz	= 15 * 1000 * 1000,
-+		.bus_num	= 0,
-+	},
-+};
-+
-+
-+/*
-+ * MCI (SD/MMC)
-+ */
-+static struct mci_platform_data __initdata mci0_data = {
-+	.slot[0] = {
-+		.bus_width	= 4,
-+		.detect_pin	= AT91_PIN_PD10,
-+		.wp_pin		= -1,
-+	},
-+};
-+
-+static struct mci_platform_data __initdata mci1_data = {
-+	.slot[0] = {
-+		.bus_width	= 4,
-+		.detect_pin	= AT91_PIN_PD11,
-+		.wp_pin		= AT91_PIN_PD29,
-+	},
-+};
-+
-+
-+/*
-+ * MACB Ethernet device
-+ */
-+static struct at91_eth_data __initdata ek_macb_data = {
-+	.phy_irq_pin	= AT91_PIN_PD5,
-+	.is_rmii	= 1,
-+};
-+
-+
-+/*
-+ * NAND flash
-+ */
-+static struct mtd_partition __initdata ek_nand_partition[] = {
-+	{
-+		.name	= "Partition 1",
-+		.offset	= 0,
-+		.size	= SZ_64M,
-+	},
-+	{
-+		.name	= "Partition 2",
-+		.offset	= MTDPART_OFS_NXTBLK,
-+		.size	= MTDPART_SIZ_FULL,
-+	},
-+};
-+
-+static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
-+{
-+	*num_partitions = ARRAY_SIZE(ek_nand_partition);
-+	return ek_nand_partition;
-+}
-+
-+/* det_pin is not connected */
-+static struct atmel_nand_data __initdata ek_nand_data = {
-+	.ale		= 21,
-+	.cle		= 22,
-+	.rdy_pin	= AT91_PIN_PC8,
-+	.enable_pin	= AT91_PIN_PC14,
-+	.partition_info	= nand_partitions,
-+#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16)
-+	.bus_width_16	= 1,
-+#else
-+	.bus_width_16	= 0,
-+#endif
-+};
-+
-+static struct sam9_smc_config __initdata ek_nand_smc_config = {
-+	.ncs_read_setup		= 0,
-+	.nrd_setup		= 2,
-+	.ncs_write_setup	= 0,
-+	.nwe_setup		= 2,
-+
-+	.ncs_read_pulse		= 4,
-+	.nrd_pulse		= 4,
-+	.ncs_write_pulse	= 4,
-+	.nwe_pulse		= 4,
-+
-+	.read_cycle		= 7,
-+	.write_cycle		= 7,
-+
-+	.mode			= AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE,
-+	.tdf_cycles		= 3,
-+};
-+
-+static void __init ek_add_device_nand(void)
-+{
-+	/* setup bus-width (8 or 16) */
-+	if (ek_nand_data.bus_width_16)
-+		ek_nand_smc_config.mode |= AT91_SMC_DBW_16;
-+	else
-+		ek_nand_smc_config.mode |= AT91_SMC_DBW_8;
-+
-+	/* configure chip-select 3 (NAND) */
-+	sam9_smc_configure(3, &ek_nand_smc_config);
-+
-+	at91_add_device_nand(&ek_nand_data);
-+}
-+
-+
-+/*
-+ * LCD Controller
-+ */
-+#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
-+static struct fb_videomode at91_tft_vga_modes[] = {
-+	{
-+		.name           = "LG",
-+		.refresh	= 60,
-+		.xres		= 480,		.yres		= 272,
-+		.pixclock	= KHZ2PICOS(9000),
-+
-+		.left_margin	= 1,		.right_margin	= 1,
-+		.upper_margin	= 40,		.lower_margin	= 1,
-+		.hsync_len	= 45,		.vsync_len	= 1,
-+
-+		.sync		= 0,
-+		.vmode		= FB_VMODE_NONINTERLACED,
-+	},
-+};
-+
-+static struct fb_monspecs at91fb_default_monspecs = {
-+	.manufacturer	= "LG",
-+	.monitor        = "LB043WQ1",
-+
-+	.modedb		= at91_tft_vga_modes,
-+	.modedb_len	= ARRAY_SIZE(at91_tft_vga_modes),
-+	.hfmin		= 15000,
-+	.hfmax		= 17640,
-+	.vfmin		= 57,
-+	.vfmax		= 67,
-+};
-+
-+#define AT91SAM9G45_DEFAULT_LCDCON2 	(ATMEL_LCDC_MEMOR_LITTLE \
-+					| ATMEL_LCDC_DISTYPE_TFT \
-+					| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
-+
-+/* Driver datas */
-+static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
-+	.lcdcon_is_backlight		= true,
-+	.default_bpp			= 32,
-+	.default_dmacon			= ATMEL_LCDC_DMAEN,
-+	.default_lcdcon2		= AT91SAM9G45_DEFAULT_LCDCON2,
-+	.default_monspecs		= &at91fb_default_monspecs,
-+	.guard_time			= 9,
-+	.lcd_wiring_mode		= ATMEL_LCDC_WIRING_RGB,
-+};
-+
-+#else
-+static struct atmel_lcdfb_info __initdata ek_lcdc_data;
-+#endif
-+
-+
-+/*
-+ * Touchscreen
-+ */
-+static struct at91_tsadcc_data ek_tsadcc_data = {
-+	.adc_clock		= 300000,
-+	.pendet_debounce	= 0x0d,
-+	.ts_sample_hold_time	= 0x0a,
-+};
-+
-+
-+/*
-+ * GPIO Buttons
-+ */
-+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
-+static struct gpio_keys_button ek_buttons[] = {
-+	{	/* BP1, "leftclic" */
-+		.code		= BTN_LEFT,
-+		.gpio		= AT91_PIN_PB6,
-+		.active_low	= 1,
-+		.desc		= "left_click",
-+		.wakeup		= 1,
-+	},
-+	{	/* BP2, "rightclic" */
-+		.code		= BTN_RIGHT,
-+		.gpio		= AT91_PIN_PB7,
-+		.active_low	= 1,
-+		.desc		= "right_click",
-+		.wakeup		= 1,
-+	},
-+		/* BP3, "joystick" */
-+	{
-+		.code		= KEY_LEFT,
-+		.gpio		= AT91_PIN_PB14,
-+		.active_low	= 1,
-+		.desc		= "Joystick Left",
-+	},
-+	{
-+		.code		= KEY_RIGHT,
-+		.gpio		= AT91_PIN_PB15,
-+		.active_low	= 1,
-+		.desc		= "Joystick Right",
-+	},
-+	{
-+		.code		= KEY_UP,
-+		.gpio		= AT91_PIN_PB16,
-+		.active_low	= 1,
-+		.desc		= "Joystick Up",
-+	},
-+	{
-+		.code		= KEY_DOWN,
-+		.gpio		= AT91_PIN_PB17,
-+		.active_low	= 1,
-+		.desc		= "Joystick Down",
-+	},
-+	{
-+		.code		= KEY_ENTER,
-+		.gpio		= AT91_PIN_PB18,
-+		.active_low	= 1,
-+		.desc		= "Joystick Press",
-+	},
-+};
-+
-+static struct gpio_keys_platform_data ek_button_data = {
-+	.buttons	= ek_buttons,
-+	.nbuttons	= ARRAY_SIZE(ek_buttons),
-+};
-+
-+static struct platform_device ek_button_device = {
-+	.name		= "gpio-keys",
-+	.id		= -1,
-+	.num_resources	= 0,
-+	.dev		= {
-+		.platform_data	= &ek_button_data,
-+	}
-+};
-+
-+static void __init ek_add_device_buttons(void)
-+{
-+	int i;
-+
-+	for (i = 0; i < ARRAY_SIZE(ek_buttons); i++) {
-+		at91_set_GPIO_periph(ek_buttons[i].gpio, 1);
-+		at91_set_deglitch(ek_buttons[i].gpio, 1);
-+	}
-+
-+	platform_device_register(&ek_button_device);
-+}
-+#else
-+static void __init ek_add_device_buttons(void) {}
-+#endif
-+
-+
-+/*
-+ * AC97
-+ * reset_pin is not connected: NRST
-+ */
-+static struct ac97c_platform_data ek_ac97_data = {
-+};
-+
-+
-+/*
-+ * LEDs ... these could all be PWM-driven, for variable brightness
-+ */
-+static struct gpio_led ek_leds[] = {
-+	{	/* "top" led, red, powerled */
-+		.name			= "d8",
-+		.gpio			= AT91_PIN_PD30,
-+		.default_trigger	= "heartbeat",
-+	},
-+	{	/* "left" led, green, userled2, pwm3 */
-+		.name			= "d6",
-+		.gpio			= AT91_PIN_PD0,
-+		.active_low		= 1,
-+		.default_trigger	= "nand-disk",
-+	},
-+#if !(defined(CONFIG_LEDS_ATMEL_PWM) || defined(CONFIG_LEDS_ATMEL_PWM_MODULE))
-+	{	/* "right" led, green, userled1, pwm1 */
-+		.name			= "d7",
-+		.gpio			= AT91_PIN_PD31,
-+		.active_low		= 1,
-+		.default_trigger	= "mmc0",
-+	},
-+#endif
-+};
-+
-+
-+/*
-+ * PWM Leds
-+ */
-+static struct gpio_led ek_pwm_led[] = {
-+#if defined(CONFIG_LEDS_ATMEL_PWM) || defined(CONFIG_LEDS_ATMEL_PWM_MODULE)
-+	{	/* "right" led, green, userled1, pwm1 */
-+		.name			= "d7",
-+		.gpio			= 1,	/* is PWM channel number */
-+		.active_low		= 1,
-+		.default_trigger	= "none",
-+	},
-+#endif
-+};
-+
-+
-+
-+static void __init ek_board_init(void)
-+{
-+	/* Serial */
-+	at91_add_device_serial();
-+	/* USB HS Host */
-+	at91_add_device_usbh_ohci(&ek_usbh_hs_data);
-+	at91_add_device_usbh_ehci(&ek_usbh_hs_data);
-+	/* USB HS Device */
-+	at91_add_device_usba(&ek_usba_udc_data);
-+	/* SPI */
-+	at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
-+	/* MMC */
-+	at91_add_device_mci(0, &mci0_data);
-+	at91_add_device_mci(1, &mci1_data);
-+	/* Ethernet */
-+	at91_add_device_eth(&ek_macb_data);
-+	/* NAND */
-+	ek_add_device_nand();
-+	/* I2C */
-+	at91_add_device_i2c(0, NULL, 0);
-+	/* LCD Controller */
-+	at91_add_device_lcdc(&ek_lcdc_data);
-+	/* Touch Screen */
-+	at91_add_device_tsadcc(&ek_tsadcc_data);
-+	/* Push Buttons */
-+	ek_add_device_buttons();
-+	/* AC97 */
-+	at91_add_device_ac97(&ek_ac97_data);
-+	/* LEDs */
-+	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
-+	at91_pwm_leds(ek_pwm_led, ARRAY_SIZE(ek_pwm_led));
-+}
-+
-+MACHINE_START(AT91SAM9G45EKES, "Atmel AT91SAM9G45-EKES")
-+	/* Maintainer: Atmel */
-+	.phys_io	= AT91_BASE_SYS,
-+	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
-+	.boot_params	= AT91_SDRAM_BASE + 0x100,
-+	.timer		= &at91sam926x_timer,
-+	.map_io		= ek_map_io,
-+	.init_irq	= ek_init_irq,
-+	.init_machine	= ek_board_init,
-+MACHINE_END
-Index: linux-2.6.30/arch/arm/mach-at91/generic.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/generic.h	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/generic.h	2011-02-01 16:40:30.141043034 +0100
-@@ -14,6 +14,7 @@
- extern void __init at91sam9261_initialize(unsigned long main_clock);
- extern void __init at91sam9263_initialize(unsigned long main_clock);
- extern void __init at91sam9rl_initialize(unsigned long main_clock);
-+extern void __init at91sam9g45_initialize(unsigned long main_clock);
- extern void __init at91x40_initialize(unsigned long main_clock);
- extern void __init at91cap9_initialize(unsigned long main_clock);
- extern void __init at572d940hf_initialize(unsigned long main_clock);
-@@ -24,6 +25,7 @@
- extern void __init at91sam9261_init_interrupts(unsigned int priority[]);
- extern void __init at91sam9263_init_interrupts(unsigned int priority[]);
- extern void __init at91sam9rl_init_interrupts(unsigned int priority[]);
-+extern void __init at91sam9g45_init_interrupts(unsigned int priority[]);
- extern void __init at91x40_init_interrupts(unsigned int priority[]);
- extern void __init at91cap9_init_interrupts(unsigned int priority[]);
- extern void __init at572d940hf_init_interrupts(unsigned int priority[]);
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/board.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/include/mach/board.h	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/board.h	2011-02-01 16:40:30.165043750 +0100
-@@ -37,6 +37,8 @@
- #include <linux/leds.h>
- #include <linux/spi/spi.h>
- #include <linux/usb/atmel_usba_udc.h>
-+#include <linux/atmel-mci.h>
-+#include <sound/atmel-ac97c.h>
- 
-  /* USB Device */
- struct at91_udc_data {
-@@ -63,6 +65,7 @@
- extern void __init at91_add_device_cf(struct at91_cf_data *data);
- 
-  /* MMC / SD */
-+  /* at91_mci platform config */
- struct at91_mmc_data {
- 	u8		det_pin;	/* card detect IRQ */
- 	unsigned	slot_b:1;	/* uses Slot B */
-@@ -72,6 +75,9 @@
- };
- extern void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data);
- 
-+  /* atmel-mci platform config */
-+extern void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data);
-+
-  /* Ethernet (EMAC & MACB) */
- struct at91_eth_data {
- 	u32		phy_mask;
-@@ -80,7 +86,8 @@
- };
- extern void __init at91_add_device_eth(struct at91_eth_data *data);
- 
--#if defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9263) || defined(CONFIG_ARCH_AT91SAM9G20) || defined(CONFIG_ARCH_AT91CAP9) || defined(CONFIG_ARCH_AT572D940HF)
-+#if defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9263) || defined(CONFIG_ARCH_AT91SAM9G20) || defined(CONFIG_ARCH_AT91CAP9) \
-+	|| defined(CONFIG_ARCH_AT91SAM9G45) || defined(CONFIG_ARCH_AT572D940HF)
- #define eth_platform_data	at91_eth_data
- #endif
- 
-@@ -90,6 +97,8 @@
- 	u8		vbus_pin[2];	/* port power-control pin */
- };
- extern void __init at91_add_device_usbh(struct at91_usbh_data *data);
-+extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data);
-+extern void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data);
- 
-  /* NAND / SmartMedia */
- struct atmel_nand_data {
-@@ -105,7 +114,11 @@
- extern void __init at91_add_device_nand(struct atmel_nand_data *data);
- 
-  /* I2C*/
-+#if defined(CONFIG_ARCH_AT91SAM9G45)
-+extern void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices);
-+#else
- extern void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices);
-+#endif
- 
-  /* SPI */
- extern void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices);
-@@ -168,16 +181,18 @@
- extern void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data);
- 
-  /* AC97 */
--struct atmel_ac97_data {
--	u8		reset_pin;	/* reset */
--};
--extern void __init at91_add_device_ac97(struct atmel_ac97_data *data);
-+extern void __init at91_add_device_ac97(struct ac97c_platform_data *data);
- 
-  /* ISI */
- extern void __init at91_add_device_isi(void);
- 
-  /* Touchscreen Controller */
--extern void __init at91_add_device_tsadcc(void);
-+struct at91_tsadcc_data {
-+	unsigned int    adc_clock;
-+	u8		pendet_debounce;
-+	u8		ts_sample_hold_time;
-+};
-+extern void __init at91_add_device_tsadcc(struct at91_tsadcc_data *data);
- 
-  /* LEDs */
- extern void __init at91_init_leds(u8 cpu_led, u8 timer_led);
-Index: linux-2.6.30/drivers/video/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/video/Kconfig	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/video/Kconfig	2011-02-01 16:40:30.145073648 +0100
-@@ -944,7 +944,7 @@
- 
- config FB_ATMEL
- 	tristate "AT91/AT32 LCD Controller support"
--	depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 || AVR32)
-+	depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9G10 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45 || ARCH_AT91CAP9 || AVR32)
- 	select FB_CFB_FILLRECT
- 	select FB_CFB_COPYAREA
- 	select FB_CFB_IMAGEBLIT
-@@ -960,7 +960,7 @@
- 
- config FB_ATMEL_STN
- 	bool "Use a STN display with AT91/AT32 LCD Controller"
--	depends on FB_ATMEL && MACH_AT91SAM9261EK
-+	depends on FB_ATMEL && (MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK)
- 	default n
- 	help
- 	  Say Y if you want to connect a STN LCD display to the AT91/AT32 LCD
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/at91sam9261.h
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/include/mach/at91sam9261.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/at91sam9261.h	2011-02-01 16:40:30.141043034 +0100
-@@ -95,6 +95,9 @@
- #define AT91SAM9261_SRAM_BASE	0x00300000	/* Internal SRAM base address */
- #define AT91SAM9261_SRAM_SIZE	0x00028000	/* Internal SRAM size (160Kb) */
- 
-+#define AT91SAM9G10_SRAM_BASE	AT91SAM9261_SRAM_BASE	/* Internal SRAM base address */
-+#define AT91SAM9G10_SRAM_SIZE	0x00004000	/* Internal SRAM size (16Kb) */
-+
- #define AT91SAM9261_ROM_BASE	0x00400000	/* Internal ROM base address */
- #define AT91SAM9261_ROM_SIZE	SZ_32K		/* Internal ROM size (32Kb) */
- 
-Index: linux-2.6.30/arch/arm/mach-at91/at91sam9261.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/at91sam9261.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/mach-at91/at91sam9261.c	2011-02-01 16:40:30.145073648 +0100
-@@ -16,6 +16,7 @@
- #include <asm/irq.h>
- #include <asm/mach/arch.h>
- #include <asm/mach/map.h>
-+#include <mach/cpu.h>
- #include <mach/at91sam9261.h>
- #include <mach/at91_pmc.h>
- #include <mach/at91_rstc.h>
-@@ -30,7 +31,11 @@
- 		.pfn		= __phys_to_pfn(AT91_BASE_SYS),
- 		.length		= SZ_16K,
- 		.type		= MT_DEVICE,
--	}, {
-+	},
-+};
-+
-+static struct map_desc at91sam9261_sram_desc[] __initdata = {
-+	{
- 		.virtual	= AT91_IO_VIRT_BASE - AT91SAM9261_SRAM_SIZE,
- 		.pfn		= __phys_to_pfn(AT91SAM9261_SRAM_BASE),
- 		.length		= AT91SAM9261_SRAM_SIZE,
-@@ -38,6 +43,15 @@
- 	},
- };
- 
-+static struct map_desc at91sam9g10_sram_desc[] __initdata = {
-+	{
-+		.virtual	= AT91_IO_VIRT_BASE - AT91SAM9G10_SRAM_SIZE,
-+		.pfn		= __phys_to_pfn(AT91SAM9G10_SRAM_BASE),
-+		.length		= AT91SAM9G10_SRAM_SIZE,
-+		.type		= MT_DEVICE,
-+	},
-+};
-+
- /* --------------------------------------------------------------------
-  *  Clocks
-  * -------------------------------------------------------------------- */
-@@ -263,6 +277,12 @@
- 	/* Map peripherals */
- 	iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));
- 
-+	if (cpu_is_at91sam9g10())
-+		iotable_init(at91sam9g10_sram_desc, ARRAY_SIZE(at91sam9g10_sram_desc));
-+	else
-+		iotable_init(at91sam9261_sram_desc, ARRAY_SIZE(at91sam9261_sram_desc));
-+
-+
- 	at91_arch_reset = at91sam9261_reset;
- 	pm_power_off = at91sam9261_poweroff;
- 	at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
-Index: linux-2.6.30/arch/arm/mach-at91/pm.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/pm.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/pm.c	2011-02-01 16:40:30.165043750 +0100
-@@ -40,9 +40,11 @@
- #define sdram_selfrefresh_enable()	at91_sys_write(AT91_SDRAMC_SRR, 1)
- #define sdram_selfrefresh_disable()	do {} while (0)
- 
--#elif defined(CONFIG_ARCH_AT91CAP9)
-+#elif defined(CONFIG_ARCH_AT91CAP9) || defined(CONFIG_ARCH_AT91SAM9G45)
- #include <mach/at91cap9_ddrsdr.h>
--
-+#if defined(CONFIG_ARCH_AT91SAM9G45)
-+#define AT91_DDRSDRC	AT91_DDRSDRC1
-+#endif
- static u32 saved_lpr;
- 
- static inline void sdram_selfrefresh_enable(void)
-@@ -202,7 +204,8 @@
- 			pr_err("AT91: PM - Suspend-to-RAM with USB still active\n");
- 			return 0;
- 		}
--	} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263() || cpu_is_at91sam9g20()) {
-+	} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263()
-+			|| cpu_is_at91sam9g20() || cpu_is_at91sam9g10()) {
- 		if ((scsr & (AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP)) != 0) {
- 			pr_err("AT91: PM - Suspend-to-RAM with USB still active\n");
- 			return 0;
-Index: linux-2.6.30/drivers/video/atmel_lcdfb.c
-===================================================================
---- linux-2.6.30.orig/drivers/video/atmel_lcdfb.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/video/atmel_lcdfb.c	2011-02-01 16:40:30.165043750 +0100
-@@ -182,7 +182,8 @@
- {
- 	unsigned long value;
- 
--	if (!(cpu_is_at91sam9261() || cpu_is_at32ap7000()))
-+	if (!(cpu_is_at91sam9261() || cpu_is_at91sam9g10()
-+		|| cpu_is_at32ap7000()))
- 		return xres;
- 
- 	value = xres;
-@@ -480,6 +481,7 @@
- 	unsigned long value;
- 	unsigned long clk_value_khz;
- 	unsigned long bits_per_line;
-+	unsigned long pix_factor = 2;
- 
- 	might_sleep();
- 
-@@ -512,20 +514,24 @@
- 	/* Now, the LCDC core... */
- 
- 	/* Set pixel clock */
-+	if (cpu_is_at91sam9g45() && !cpu_is_at91sam9g45es())
-+		pix_factor = 1;
-+
- 	clk_value_khz = clk_get_rate(sinfo->lcdc_clk) / 1000;
- 
- 	value = DIV_ROUND_UP(clk_value_khz, PICOS2KHZ(info->var.pixclock));
- 
--	if (value < 2) {
-+	if (value < pix_factor) {
- 		dev_notice(info->device, "Bypassing pixel clock divider\n");
- 		lcdc_writel(sinfo, ATMEL_LCDC_LCDCON1, ATMEL_LCDC_BYPASS);
- 	} else {
--		value = (value / 2) - 1;
-+		value = (value / pix_factor) - 1;
- 		dev_dbg(info->device, "  * programming CLKVAL = 0x%08lx\n",
- 				value);
- 		lcdc_writel(sinfo, ATMEL_LCDC_LCDCON1,
- 				value << ATMEL_LCDC_CLKVAL_OFFSET);
--		info->var.pixclock = KHZ2PICOS(clk_value_khz / (2 * (value + 1)));
-+		info->var.pixclock =
-+			KHZ2PICOS(clk_value_khz / (pix_factor * (value + 1)));
- 		dev_dbg(info->device, "  updated pixclk:     %lu KHz\n",
- 					PICOS2KHZ(info->var.pixclock));
- 	}
-@@ -821,7 +827,8 @@
- 	info->fix = atmel_lcdfb_fix;
- 
- 	/* Enable LCDC Clocks */
--	if (cpu_is_at91sam9261() || cpu_is_at32ap7000()) {
-+	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()
-+	 || cpu_is_at32ap7000()) {
- 		sinfo->bus_clk = clk_get(dev, "hck1");
- 		if (IS_ERR(sinfo->bus_clk)) {
- 			ret = PTR_ERR(sinfo->bus_clk);
-Index: linux-2.6.30/drivers/video/backlight/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/video/backlight/Kconfig	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/video/backlight/Kconfig	2011-02-01 16:40:30.149044200 +0100
-@@ -110,7 +110,7 @@
- config BACKLIGHT_ATMEL_LCDC
- 	bool "Atmel LCDC Contrast-as-Backlight control"
- 	depends on BACKLIGHT_CLASS_DEVICE && FB_ATMEL
--	default y if MACH_SAM9261EK || MACH_SAM9263EK
-+	default y if MACH_SAM9261EK || MACH_SAM9G10EK || MACH_SAM9263EK
- 	help
- 	  This provides a backlight control internal to the Atmel LCDC
- 	  driver.  If the LCD "contrast control" on your board is wired
-Index: linux-2.6.30/drivers/usb/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/usb/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/usb/Kconfig	2011-02-01 16:40:30.149044200 +0100
-@@ -57,6 +57,7 @@
- 	default y if PPC_83xx
- 	default y if SOC_AU1200
- 	default y if ARCH_IXP4XX
-+	default y if ARCH_AT91SAM9G45
- 	default PCI
- 
- # ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
-Index: linux-2.6.30/drivers/usb/host/ehci-atmel.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/drivers/usb/host/ehci-atmel.c	2011-02-01 16:40:30.149044200 +0100
-@@ -0,0 +1,230 @@
-+/*
-+ * Driver for EHCI UHP on Atmel chips
-+ *
-+ *  Copyright (C) 2009 Atmel Corporation,
-+ *                     Nicolas Ferre <nicolas.ferre at atmel.com>
-+ *
-+ *  Based on various ehci-*.c drivers
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License.  See the file COPYING in the main directory of this archive for
-+ * more details.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/platform_device.h>
-+
-+/* interface and function clocks */
-+static struct clk *iclk, *fclk;
-+static int clocked;
-+
-+/*-------------------------------------------------------------------------*/
-+
-+static void atmel_start_clock(void)
-+{
-+	clk_enable(iclk);
-+	clk_enable(fclk);
-+	clocked = 1;
-+}
-+
-+static void atmel_stop_clock(void)
-+{
-+	clk_disable(fclk);
-+	clk_disable(iclk);
-+	clocked = 0;
-+}
-+
-+static void atmel_start_ehci(struct platform_device *pdev)
-+{
-+	dev_dbg(&pdev->dev, "start\n");
-+	atmel_start_clock();
-+}
-+
-+static void atmel_stop_ehci(struct platform_device *pdev)
-+{
-+	dev_dbg(&pdev->dev, "stop\n");
-+	atmel_stop_clock();
-+}
-+
-+/*-------------------------------------------------------------------------*/
-+
-+static int ehci_atmel_setup(struct usb_hcd *hcd)
-+{
-+	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
-+	int retval = 0;
-+
-+	/* registers start at offset 0x0 */
-+	ehci->caps = hcd->regs;
-+	ehci->regs = hcd->regs +
-+		HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));
-+	dbg_hcs_params(ehci, "reset");
-+	dbg_hcc_params(ehci, "reset");
-+
-+	/* cache this readonly data; minimize chip reads */
-+	ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params);
-+
-+	retval = ehci_halt(ehci);
-+	if (retval)
-+		return retval;
-+
-+	/* data structure init */
-+	retval = ehci_init(hcd);
-+	if (retval)
-+		return retval;
-+
-+	ehci->sbrn = 0x20;
-+
-+	ehci_reset(ehci);
-+	ehci_port_power(ehci, 0);
-+
-+	return retval;
-+}
-+
-+static const struct hc_driver ehci_atmel_hc_driver = {
-+	.description		= hcd_name,
-+	.product_desc		= "Atmel EHCI UHP HS",
-+	.hcd_priv_size		= sizeof(struct ehci_hcd),
-+
-+	/* generic hardware linkage */
-+	.irq			= ehci_irq,
-+	.flags			= HCD_MEMORY | HCD_USB2,
-+
-+	/* basic lifecycle operations */
-+	.reset			= ehci_atmel_setup,
-+	.start			= ehci_run,
-+	.stop			= ehci_stop,
-+	.shutdown		= ehci_shutdown,
-+
-+	/* managing i/o requests and associated device resources */
-+	.urb_enqueue		= ehci_urb_enqueue,
-+	.urb_dequeue		= ehci_urb_dequeue,
-+	.endpoint_disable	= ehci_endpoint_disable,
-+
-+	/* scheduling support */
-+	.get_frame_number	= ehci_get_frame,
-+
-+	/* root hub support */
-+	.hub_status_data	= ehci_hub_status_data,
-+	.hub_control		= ehci_hub_control,
-+	.bus_suspend		= ehci_bus_suspend,
-+	.bus_resume		= ehci_bus_resume,
-+	.relinquish_port	= ehci_relinquish_port,
-+	.port_handed_over	= ehci_port_handed_over,
-+};
-+
-+static int __init ehci_atmel_drv_probe(struct platform_device *pdev)
-+{
-+	struct usb_hcd *hcd;
-+	const struct hc_driver *driver = &ehci_atmel_hc_driver;
-+	struct resource *res;
-+	int irq;
-+	int retval;
-+
-+	if (usb_disabled())
-+		return -ENODEV;
-+
-+	pr_debug("Initializing Atmel-SoC USB Host Controller\n");
-+
-+	irq = platform_get_irq(pdev, 0);
-+	if (irq <= 0) {
-+		dev_err(&pdev->dev,
-+			"Found HC with no IRQ. Check %s setup!\n",
-+			dev_name(&pdev->dev));
-+		retval = -ENODEV;
-+		goto fail_create_hcd;
-+	}
-+
-+	hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev));
-+	if (!hcd) {
-+		retval = -ENOMEM;
-+		goto fail_create_hcd;
-+	}
-+
-+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!res) {
-+		dev_err(&pdev->dev,
-+			"Found HC with no register addr. Check %s setup!\n",
-+			dev_name(&pdev->dev));
-+		retval = -ENODEV;
-+		goto fail_request_resource;
-+	}
-+	hcd->rsrc_start = res->start;
-+	hcd->rsrc_len = res->end - res->start + 1;
-+
-+	if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len,
-+				driver->description)) {
-+		dev_dbg(&pdev->dev, "controller already in use\n");
-+		retval = -EBUSY;
-+		goto fail_request_resource;
-+	}
-+
-+	hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len);
-+	if (hcd->regs == NULL) {
-+		dev_dbg(&pdev->dev, "error mapping memory\n");
-+		retval = -EFAULT;
-+		goto fail_ioremap;
-+	}
-+
-+	iclk = clk_get(&pdev->dev, "ehci_clk");
-+	if (IS_ERR(iclk)) {
-+		dev_err(&pdev->dev, "Error getting interface clock\n");
-+		retval = -ENOENT;
-+		goto fail_get_iclk;
-+	}
-+	fclk = clk_get(&pdev->dev, "uhpck");
-+	if (IS_ERR(fclk)) {
-+		dev_err(&pdev->dev, "Error getting function clock\n");
-+		retval = -ENOENT;
-+		goto fail_get_fclk;
-+	}
-+
-+	atmel_start_ehci(pdev);
-+
-+	retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
-+	if (retval)
-+		goto fail_add_hcd;
-+
-+	return retval;
-+
-+fail_add_hcd:
-+	atmel_stop_ehci(pdev);
-+	clk_put(fclk);
-+fail_get_fclk:
-+	clk_put(iclk);
-+fail_get_iclk:
-+	iounmap(hcd->regs);
-+fail_ioremap:
-+	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
-+fail_request_resource:
-+	usb_put_hcd(hcd);
-+fail_create_hcd:
-+	dev_err(&pdev->dev, "init %s fail, %d\n",
-+		dev_name(&pdev->dev), retval);
-+
-+	return retval;
-+}
-+
-+static int __exit ehci_atmel_drv_remove(struct platform_device *pdev)
-+{
-+	struct usb_hcd *hcd = platform_get_drvdata(pdev);
-+
-+	ehci_shutdown(hcd);
-+	usb_remove_hcd(hcd);
-+	iounmap(hcd->regs);
-+	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
-+	usb_put_hcd(hcd);
-+
-+	atmel_stop_ehci(pdev);
-+	clk_put(fclk);
-+	clk_put(iclk);
-+	fclk = iclk = NULL;
-+
-+	return 0;
-+}
-+
-+static struct platform_driver ehci_atmel_driver = {
-+	.probe		= ehci_atmel_drv_probe,
-+	.remove		= __exit_p(ehci_atmel_drv_remove),
-+	.shutdown	= usb_hcd_platform_shutdown,
-+	.driver.name	= "atmel-ehci",
-+};
-Index: linux-2.6.30/drivers/usb/host/ehci-hcd.c
-===================================================================
---- linux-2.6.30.orig/drivers/usb/host/ehci-hcd.c	2011-02-01 16:39:20.000000000 +0100
-+++ linux-2.6.30/drivers/usb/host/ehci-hcd.c	2011-02-01 16:40:30.149044200 +0100
-@@ -1075,6 +1075,11 @@
- #define	PLATFORM_DRIVER		ixp4xx_ehci_driver
- #endif
- 
-+#ifdef CONFIG_ARCH_AT91
-+#include "ehci-atmel.c"
-+#define	PLATFORM_DRIVER		ehci_atmel_driver
-+#endif
-+
- #if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
-     !defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER)
- #error "missing bus glue for ehci-hcd"
-Index: linux-2.6.30/drivers/usb/gadget/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/usb/gadget/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/usb/gadget/Kconfig	2011-02-01 16:40:30.149044200 +0100
-@@ -124,7 +124,7 @@
- 
- config USB_GADGET_AT91
- 	boolean "Atmel AT91 USB Device Port"
--	depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9
-+	depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9 && !ARCH_AT91SAM9G45
- 	select USB_GADGET_SELECTED
- 	help
- 	   Many Atmel AT91 processors (such as the AT91RM2000) have a
-@@ -143,7 +143,7 @@
- config USB_GADGET_ATMEL_USBA
- 	boolean "Atmel USBA"
- 	select USB_GADGET_DUALSPEED
--	depends on AVR32 || ARCH_AT91CAP9 || ARCH_AT91SAM9RL
-+	depends on AVR32 || ARCH_AT91CAP9 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
- 	help
- 	  USBA is the integrated high-speed USB Device controller on
- 	  the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
-Index: linux-2.6.30/drivers/usb/host/ohci-at91.c
-===================================================================
---- linux-2.6.30.orig/drivers/usb/host/ohci-at91.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/usb/host/ohci-at91.c	2011-02-01 16:40:30.149044200 +0100
-@@ -35,7 +35,7 @@
- 
- static void at91_start_clock(void)
- {
--	if (cpu_is_at91sam9261())
-+	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
- 		clk_enable(hclk);
- 	clk_enable(iclk);
- 	clk_enable(fclk);
-@@ -46,7 +46,7 @@
- {
- 	clk_disable(fclk);
- 	clk_disable(iclk);
--	if (cpu_is_at91sam9261())
-+	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
- 		clk_disable(hclk);
- 	clocked = 0;
- }
-@@ -142,20 +142,20 @@
- 
- 	iclk = clk_get(&pdev->dev, "ohci_clk");
- 	fclk = clk_get(&pdev->dev, "uhpck");
--	if (cpu_is_at91sam9261())
-+	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
- 		hclk = clk_get(&pdev->dev, "hck0");
- 
- 	at91_start_hc(pdev);
- 	ohci_hcd_init(hcd_to_ohci(hcd));
- 
--	retval = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_DISABLED);
-+	retval = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_SHARED);
- 	if (retval == 0)
- 		return retval;
- 
- 	/* Error handling */
- 	at91_stop_hc(pdev);
- 
--	if (cpu_is_at91sam9261())
-+	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
- 		clk_put(hclk);
- 	clk_put(fclk);
- 	clk_put(iclk);
-@@ -192,7 +192,7 @@
- 	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
- 	usb_put_hcd(hcd);
- 
--	if (cpu_is_at91sam9261())
-+	if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
- 		clk_put(hclk);
- 	clk_put(fclk);
- 	clk_put(iclk);
-Index: linux-2.6.30/drivers/usb/gadget/at91_udc.c
-===================================================================
---- linux-2.6.30.orig/drivers/usb/gadget/at91_udc.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/usb/gadget/at91_udc.c	2011-02-01 16:40:30.149044200 +0100
-@@ -892,7 +892,7 @@
- 
- 			txvc |= AT91_UDP_TXVC_PUON;
- 			at91_udp_write(udc, AT91_UDP_TXVC, txvc);
--		} else if (cpu_is_at91sam9261()) {
-+		} else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
- 			u32	usbpucr;
- 
- 			usbpucr = at91_sys_read(AT91_MATRIX_USBPUCR);
-@@ -910,7 +910,7 @@
- 
- 			txvc &= ~AT91_UDP_TXVC_PUON;
- 			at91_udp_write(udc, AT91_UDP_TXVC, txvc);
--		} else if (cpu_is_at91sam9261()) {
-+		} else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
- 			u32	usbpucr;
- 
- 			usbpucr = at91_sys_read(AT91_MATRIX_USBPUCR);
-@@ -1692,7 +1692,7 @@
- 		udc->ep[3].maxpacket = 64;
- 		udc->ep[4].maxpacket = 512;
- 		udc->ep[5].maxpacket = 512;
--	} else if (cpu_is_at91sam9261()) {
-+	} else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
- 		udc->ep[3].maxpacket = 64;
- 	} else if (cpu_is_at91sam9263()) {
- 		udc->ep[0].maxpacket = 64;
-Index: linux-2.6.30/arch/arm/mach-at91/include/mach/at_hdmac.h
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/include/mach/at_hdmac.h	2011-02-01 16:40:30.152108635 +0100
-@@ -0,0 +1,102 @@
-+/*
-+ * Header file for the Atmel AHB DMA Controller driver
-+ *
-+ * Copyright (C) 2008 Atmel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ */
-+#ifndef AT_HDMAC_H
-+#define AT_HDMAC_H
-+
-+#include <linux/dmaengine.h>
-+
-+/**
-+ * struct at_dma_platform_data - Controller configuration parameters
-+ * @nr_channels: Number of channels supported by hardware (max 8)
-+ * @cap_mask: dma_capability flags supported by the platform
-+ */
-+struct at_dma_platform_data {
-+	unsigned int	nr_channels;
-+	dma_cap_mask_t  cap_mask;
-+};
-+
-+/**
-+ * enum at_dma_slave_width - DMA slave register access width.
-+ * @AT_DMA_SLAVE_WIDTH_8BIT: Do 8-bit slave register accesses
-+ * @AT_DMA_SLAVE_WIDTH_16BIT: Do 16-bit slave register accesses
-+ * @AT_DMA_SLAVE_WIDTH_32BIT: Do 32-bit slave register accesses
-+ */
-+enum at_dma_slave_width {
-+	AT_DMA_SLAVE_WIDTH_8BIT = 0,
-+	AT_DMA_SLAVE_WIDTH_16BIT,
-+	AT_DMA_SLAVE_WIDTH_32BIT,
-+};
-+
-+/**
-+ * struct at_dma_slave - Controller-specific information about a slave
-+ * @dma_dev: required DMA master device
-+ * @tx_reg: physical address of data register used for
-+ *	memory-to-peripheral transfers
-+ * @rx_reg: physical address of data register used for
-+ *	peripheral-to-memory transfers
-+ * @reg_width: peripheral register width
-+ * @cfg: Platform-specific initializer for the CFG register
-+ * @ctrla: Platform-specific initializer for the CTRLA register
-+ */
-+struct at_dma_slave {
-+	struct device		*dma_dev;
-+	dma_addr_t		tx_reg;
-+	dma_addr_t		rx_reg;
-+	enum at_dma_slave_width	reg_width;
-+	u32			cfg;
-+	u32			ctrla;
-+};
-+
-+
-+/* Platform-configurable bits in CFG */
-+#define	ATC_SRC_PER(h)		(0xFU & (h))	/* Channel src rq associated with periph handshaking ifc h */
-+#define	ATC_DST_PER(h)		((0xFU & (h)) <<  4)	/* Channel dst rq associated with periph handshaking ifc h */
-+#define	ATC_SRC_REP		(0x1 <<  8)	/* Source Replay Mod */
-+#define	ATC_SRC_H2SEL		(0x1 <<  9)	/* Source Handshaking Mod */
-+#define		ATC_SRC_H2SEL_SW	(0x0 <<  9)
-+#define		ATC_SRC_H2SEL_HW	(0x1 <<  9)
-+#define	ATC_DST_REP		(0x1 << 12)	/* Destination Replay Mod */
-+#define	ATC_DST_H2SEL		(0x1 << 13)	/* Destination Handshaking Mod */
-+#define		ATC_DST_H2SEL_SW	(0x0 << 13)
-+#define		ATC_DST_H2SEL_HW	(0x1 << 13)
-+#define	ATC_SOD			(0x1 << 16)	/* Stop On Done */
-+#define	ATC_LOCK_IF		(0x1 << 20)	/* Interface Lock */
-+#define	ATC_LOCK_B		(0x1 << 21)	/* AHB Bus Lock */
-+#define	ATC_LOCK_IF_L		(0x1 << 22)	/* Master Interface Arbiter Lock */
-+#define		ATC_LOCK_IF_L_CHUNK	(0x0 << 22)
-+#define		ATC_LOCK_IF_L_BUFFER	(0x1 << 22)
-+#define	ATC_AHB_PROT_MASK	(0x7 << 24)	/* AHB Protection */
-+#define	ATC_FIFOCFG_MASK	(0x3 << 28)	/* FIFO Request Configuration */
-+#define		ATC_FIFOCFG_LARGESTBURST	(0x0 << 28)
-+#define		ATC_FIFOCFG_HALFFIFO		(0x1 << 28)
-+#define		ATC_FIFOCFG_ENOUGHSPACE		(0x2 << 28)
-+
-+/* Platform-configurable bits in CTRLA */
-+#define	ATC_SCSIZE_MASK		(0x7 << 16)	/* Source Chunk Transfer Size */
-+#define		ATC_SCSIZE_1		(0x0 << 16)
-+#define		ATC_SCSIZE_4		(0x1 << 16)
-+#define		ATC_SCSIZE_8		(0x2 << 16)
-+#define		ATC_SCSIZE_16		(0x3 << 16)
-+#define		ATC_SCSIZE_32		(0x4 << 16)
-+#define		ATC_SCSIZE_64		(0x5 << 16)
-+#define		ATC_SCSIZE_128		(0x6 << 16)
-+#define		ATC_SCSIZE_256		(0x7 << 16)
-+#define	ATC_DCSIZE_MASK		(0x7 << 20)	/* Destination Chunk Transfer Size */
-+#define		ATC_DCSIZE_1		(0x0 << 20)
-+#define		ATC_DCSIZE_4		(0x1 << 20)
-+#define		ATC_DCSIZE_8		(0x2 << 20)
-+#define		ATC_DCSIZE_16		(0x3 << 20)
-+#define		ATC_DCSIZE_32		(0x4 << 20)
-+#define		ATC_DCSIZE_64		(0x5 << 20)
-+#define		ATC_DCSIZE_128		(0x6 << 20)
-+#define		ATC_DCSIZE_256		(0x7 << 20)
-+
-+#endif /* AT_HDMAC_H */
-Index: linux-2.6.30/drivers/dma/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/dma/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/dma/Kconfig	2011-02-01 16:40:30.152108635 +0100
-@@ -46,6 +46,14 @@
- 	  Support the Synopsys DesignWare AHB DMA controller.  This
- 	  can be integrated in chips such as the Atmel AT32ap7000.
- 
-+config AT_HDMAC
-+	tristate "Atmel AHB DMA support"
-+	depends on ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
-+	select DMA_ENGINE
-+	help
-+	  Support the Atmel AHB DMA controller.  This can be integrated in
-+	  chips such as the Atmel AT91SAM9RL.
-+
- config FSL_DMA
- 	tristate "Freescale Elo and Elo Plus DMA support"
- 	depends on FSL_SOC
-Index: linux-2.6.30/drivers/dma/Makefile
-===================================================================
---- linux-2.6.30.orig/drivers/dma/Makefile	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/dma/Makefile	2011-02-01 16:40:30.152108635 +0100
-@@ -7,4 +7,5 @@
- obj-$(CONFIG_FSL_DMA) += fsldma.o
- obj-$(CONFIG_MV_XOR) += mv_xor.o
- obj-$(CONFIG_DW_DMAC) += dw_dmac.o
-+obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
- obj-$(CONFIG_MX3_IPU) += ipu/
-Index: linux-2.6.30/drivers/dma/at_hdmac.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/drivers/dma/at_hdmac.c	2011-02-01 16:40:30.161007816 +0100
-@@ -0,0 +1,1214 @@
-+/*
-+ * Driver for the Atmel AHB DMA Controller (aka HDMA or DMAC on AT91 systems)
-+ *
-+ * Copyright (C) 2008 Atmel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ *
-+ * This supports the Atmel AHB DMA Controller,
-+ *
-+ * The driver has currently been tested with the Atmel AT91SAM9RL
-+ * and AT91SAM9G45 series.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/dmaengine.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/dmapool.h>
-+#include <linux/interrupt.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+
-+#include "at_hdmac_regs.h"
-+
-+/*
-+ * Glossary
-+ * --------
-+ *
-+ * at_hdmac		: Name of the ATmel AHB DMA Controller
-+ * at_dma_ / atdma	: ATmel DMA controller entity related
-+ * atc_	/ atchan	: ATmel DMA Channel entity related
-+ */
-+
-+#define	ATC_DEFAULT_CFG		(ATC_FIFOCFG_HALFFIFO)
-+#define	ATC_DEFAULT_CTRLA	(0)
-+#define	ATC_DEFAULT_CTRLB	(ATC_SIF(0)	\
-+				|ATC_DIF(1))
-+
-+/*
-+ * Initial number of descriptors to allocate for each channel. This could
-+ * be increased during dma usage.
-+ */
-+static unsigned int init_nr_desc_per_channel = 64;
-+module_param(init_nr_desc_per_channel, uint, 0644);
-+MODULE_PARM_DESC(init_nr_desc_per_channel,
-+		 "initial descriptors per channel (default: 64)");
-+
-+
-+/* prototypes */
-+static dma_cookie_t atc_tx_submit(struct dma_async_tx_descriptor *tx);
-+
-+
-+/*----------------------------------------------------------------------*/
-+
-+static struct at_desc *atc_first_active(struct at_dma_chan *atchan)
-+{
-+	return list_first_entry(&atchan->active_list,
-+				struct at_desc, desc_node);
-+}
-+
-+static struct at_desc *atc_first_queued(struct at_dma_chan *atchan)
-+{
-+	return list_first_entry(&atchan->queue,
-+				struct at_desc, desc_node);
-+}
-+
-+/**
-+ * atc_alloc_descriptor - allocate and return an initilized descriptor
-+ * @chan: the channel to allocate descriptors for
-+ * @gfp_flags: GFP allocation flags
-+ *
-+ * Note: The ack-bit is positioned in the descriptor flag at creation time
-+ *       to make initial allocation more convenient. This bit will be cleared
-+ *       and control will be given to client at usage time (during
-+ *       preparation functions).
-+ */
-+static struct at_desc *atc_alloc_descriptor(struct dma_chan *chan,
-+					    gfp_t gfp_flags)
-+{
-+	struct at_desc	*desc = NULL;
-+	struct at_dma	*atdma = to_at_dma(chan->device);
-+	dma_addr_t phys;
-+
-+	desc = dma_pool_alloc(atdma->dma_desc_pool, gfp_flags, &phys);
-+	if (desc) {
-+		memset(desc, 0, sizeof(struct at_desc));
-+		dma_async_tx_descriptor_init(&desc->txd, chan);
-+		/* txd.flags will be overwritten in prep functions */
-+		desc->txd.flags = DMA_CTRL_ACK;
-+		desc->txd.tx_submit = atc_tx_submit;
-+		desc->txd.phys = phys;
-+	}
-+
-+	return desc;
-+}
-+
-+/**
-+ * atc_desc_get - get a unsused descriptor from free_list
-+ * @atchan: channel we want a new descriptor for
-+ */
-+static struct at_desc *atc_desc_get(struct at_dma_chan *atchan)
-+{
-+	struct at_desc *desc, *_desc;
-+	struct at_desc *ret = NULL;
-+	unsigned int i = 0;
-+	LIST_HEAD(tmp_list);
-+
-+	spin_lock_bh(&atchan->lock);
-+	list_for_each_entry_safe(desc, _desc, &atchan->free_list, desc_node) {
-+		i++;
-+		if (async_tx_test_ack(&desc->txd)) {
-+			list_del(&desc->desc_node);
-+			ret = desc;
-+			break;
-+		}
-+		dev_dbg(chan2dev(&atchan->chan_common),
-+				"desc %p not ACKed\n", desc);
-+	}
-+	spin_unlock_bh(&atchan->lock);
-+	dev_vdbg(chan2dev(&atchan->chan_common),
-+		"scanned %u descriptors on freelist\n", i);
-+
-+	/* no more descriptor available in initial pool: create one more */
-+	if (!ret) {
-+		ret = atc_alloc_descriptor(&atchan->chan_common, GFP_ATOMIC);
-+		if (ret) {
-+			spin_lock_bh(&atchan->lock);
-+			atchan->descs_allocated++;
-+			spin_unlock_bh(&atchan->lock);
-+		} else {
-+			dev_err(chan2dev(&atchan->chan_common),
-+					"not enough descriptors available\n");
-+		}
-+	}
-+
-+	return ret;
-+}
-+
-+/**
-+ * atc_desc_put - move a descriptor, including any children, to the free list
-+ * @atchan: channel we work on
-+ * @desc: descriptor, at the head of a chain, to move to free list
-+ */
-+static void atc_desc_put(struct at_dma_chan *atchan, struct at_desc *desc)
-+{
-+	if (desc) {
-+		struct at_desc *child;
-+
-+		spin_lock_bh(&atchan->lock);
-+		list_for_each_entry(child, &desc->txd.tx_list, desc_node)
-+			dev_vdbg(chan2dev(&atchan->chan_common),
-+					"moving child desc %p to freelist\n",
-+					child);
-+		list_splice_init(&desc->txd.tx_list, &atchan->free_list);
-+		dev_vdbg(chan2dev(&atchan->chan_common),
-+			 "moving desc %p to freelist\n", desc);
-+		list_add(&desc->desc_node, &atchan->free_list);
-+		spin_unlock_bh(&atchan->lock);
-+	}
-+}
-+
-+/**
-+ * atc_assign_cookie - compute and assign new cookie
-+ * @atchan: channel we work on
-+ * @desc: descriptor to asign cookie for
-+ *
-+ * Called with atchan->lock held and bh disabled
-+ */
-+static dma_cookie_t
-+atc_assign_cookie(struct at_dma_chan *atchan, struct at_desc *desc)
-+{
-+	dma_cookie_t cookie = atchan->chan_common.cookie;
-+
-+	if (++cookie < 0)
-+		cookie = 1;
-+
-+	atchan->chan_common.cookie = cookie;
-+	desc->txd.cookie = cookie;
-+
-+	return cookie;
-+}
-+
-+/**
-+ * atc_dostart - starts the DMA engine for real
-+ * @atchan: the channel we want to start
-+ * @first: first descriptor in the list we want to begin with
-+ *
-+ * Called with atchan->lock held and bh disabled
-+ */
-+static void atc_dostart(struct at_dma_chan *atchan, struct at_desc *first)
-+{
-+	struct at_dma	*atdma = to_at_dma(atchan->chan_common.device);
-+
-+	/* ASSERT:  channel is idle */
-+	if (atc_chan_is_enabled(atchan)) {
-+		dev_err(chan2dev(&atchan->chan_common),
-+			"BUG: Attempted to start non-idle channel\n");
-+		dev_err(chan2dev(&atchan->chan_common),
-+			"  channel: s0x%x d0x%x ctrl0x%x:0x%x l0x%x\n",
-+			channel_readl(atchan, SADDR),
-+			channel_readl(atchan, DADDR),
-+			channel_readl(atchan, CTRLA),
-+			channel_readl(atchan, CTRLB),
-+			channel_readl(atchan, DSCR));
-+
-+		/* The tasklet will hopefully advance the queue... */
-+		return;
-+	}
-+
-+	vdbg_dump_regs(atchan);
-+
-+	/* clear any pending interrupt */
-+	while (dma_readl(atdma, EBCISR))
-+		cpu_relax();
-+
-+	channel_writel(atchan, SADDR, 0);
-+	channel_writel(atchan, DADDR, 0);
-+	channel_writel(atchan, CTRLA, 0);
-+	channel_writel(atchan, CTRLB, 0);
-+	channel_writel(atchan, DSCR, first->txd.phys);
-+	dma_writel(atdma, CHER, atchan->mask);
-+
-+	vdbg_dump_regs(atchan);
-+}
-+
-+/**
-+ * atc_chain_complete - finish work for one transaction chain
-+ * @atchan: channel we work on
-+ * @desc: descriptor at the head of the chain we want do complete
-+ *
-+ * Called with atchan->lock held and bh disabled */
-+static void
-+atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
-+{
-+	dma_async_tx_callback		callback;
-+	void				*param;
-+	struct dma_async_tx_descriptor	*txd = &desc->txd;
-+
-+	dev_vdbg(chan2dev(&atchan->chan_common),
-+		"descriptor %u complete\n", txd->cookie);
-+
-+	atchan->completed_cookie = txd->cookie;
-+	callback = txd->callback;
-+	param = txd->callback_param;
-+
-+	/* move children to free_list */
-+	list_splice_init(&txd->tx_list, &atchan->free_list);
-+	/* move myself to free_list */
-+	list_move(&desc->desc_node, &atchan->free_list);
-+
-+	/* unmap dma addresses */
-+	if (!atchan->chan_common.private) {
-+		struct device *parent = chan2parent(&atchan->chan_common);
-+		if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
-+			if (txd->flags & DMA_COMPL_DEST_UNMAP_SINGLE)
-+				dma_unmap_single(parent,
-+						desc->lli.daddr,
-+						desc->len, DMA_FROM_DEVICE);
-+			else
-+				dma_unmap_page(parent,
-+						desc->lli.daddr,
-+						desc->len, DMA_FROM_DEVICE);
-+		}
-+		if (!(txd->flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
-+			if (txd->flags & DMA_COMPL_SRC_UNMAP_SINGLE)
-+				dma_unmap_single(parent,
-+						desc->lli.saddr,
-+						desc->len, DMA_TO_DEVICE);
-+			else
-+				dma_unmap_page(parent,
-+						desc->lli.saddr,
-+						desc->len, DMA_TO_DEVICE);
-+		}
-+	}
-+
-+	/*
-+	 * The API requires that no submissions are done from a
-+	 * callback, so we don't need to drop the lock here
-+	 */
-+	if (callback)
-+		callback(param);
-+
-+	dma_run_dependencies(txd);
-+}
-+
-+/**
-+ * atc_complete_all - finish work for all transactions
-+ * @atchan: channel to complete transactions for
-+ *
-+ * Eventually submit queued descriptors if any
-+ *
-+ * Assume channel is idle while calling this function
-+ * Called with atchan->lock held and bh disabled
-+ */
-+static void atc_complete_all(struct at_dma_chan *atchan)
-+{
-+	struct at_desc *desc, *_desc;
-+	LIST_HEAD(list);
-+
-+	dev_vdbg(chan2dev(&atchan->chan_common), "complete all\n");
-+
-+	BUG_ON(atc_chan_is_enabled(atchan));
-+
-+	/*
-+	 * Submit queued descriptors ASAP, i.e. before we go through
-+	 * the completed ones.
-+	 */
-+	if (!list_empty(&atchan->queue))
-+		atc_dostart(atchan, atc_first_queued(atchan));
-+	/* empty active_list now it is completed */
-+	list_splice_init(&atchan->active_list, &list);
-+	/* empty queue list by moving descriptors (if any) to active_list */
-+	list_splice_init(&atchan->queue, &atchan->active_list);
-+
-+	list_for_each_entry_safe(desc, _desc, &list, desc_node)
-+		atc_chain_complete(atchan, desc);
-+}
-+
-+/**
-+ * atc_cleanup_descriptors - cleanup up finished descriptors in active_list
-+ * @atchan: channel to be cleaned up
-+ *
-+ * Called with atchan->lock held and bh disabled
-+ */
-+static void atc_cleanup_descriptors(struct at_dma_chan *atchan)
-+{
-+	struct at_desc	*desc, *_desc;
-+	struct at_desc	*child;
-+
-+	dev_vdbg(chan2dev(&atchan->chan_common), "cleanup descriptors\n");
-+
-+	list_for_each_entry_safe(desc, _desc, &atchan->active_list, desc_node) {
-+		if (!(desc->lli.ctrla & ATC_DONE))
-+			/* This one is currently in progress */
-+			return;
-+
-+		list_for_each_entry(child, &desc->txd.tx_list, desc_node)
-+			if (!(child->lli.ctrla & ATC_DONE))
-+				/* Currently in progress */
-+				return;
-+
-+		/*
-+		 * No descriptors so far seem to be in progress, i.e.
-+		 * this chain must be done.
-+		 */
-+		atc_chain_complete(atchan, desc);
-+	}
-+}
-+
-+/**
-+ * atc_advance_work - at the end of a transaction, move forward
-+ * @atchan: channel where the transaction ended
-+ *
-+ * Called with atchan->lock held and bh disabled
-+ */
-+static void atc_advance_work(struct at_dma_chan *atchan)
-+{
-+	dev_vdbg(chan2dev(&atchan->chan_common), "advance_work\n");
-+
-+	if (list_empty(&atchan->active_list) ||
-+	    list_is_singular(&atchan->active_list)) {
-+		atc_complete_all(atchan);
-+	} else {
-+		atc_chain_complete(atchan, atc_first_active(atchan));
-+		/* advance work */
-+		atc_dostart(atchan, atc_first_active(atchan));
-+	}
-+}
-+
-+
-+/**
-+ * atc_handle_error - handle errors reported by DMA controller
-+ * @atchan: channel where error occurs
-+ *
-+ * Called with atchan->lock held and bh disabled
-+ */
-+static void atc_handle_error(struct at_dma_chan *atchan)
-+{
-+	struct at_desc *bad_desc;
-+	struct at_desc *child;
-+
-+	/*
-+	 * The descriptor currently at the head of the active list is
-+	 * broked. Since we don't have any way to report errors, we'll
-+	 * just have to scream loudly and try to carry on.
-+	 */
-+	bad_desc = atc_first_active(atchan);
-+	list_del_init(&bad_desc->desc_node);
-+
-+	/* As we are stopped, take advantage to push queued descriptors
-+	 * in active_list */
-+	list_splice_init(&atchan->queue, atchan->active_list.prev);
-+
-+	/* Try to restart the controller */
-+	if (!list_empty(&atchan->active_list))
-+		atc_dostart(atchan, atc_first_active(atchan));
-+
-+	/*
-+	 * KERN_CRITICAL may seem harsh, but since this only happens
-+	 * when someone submits a bad physical address in a
-+	 * descriptor, we should consider ourselves lucky that the
-+	 * controller flagged an error instead of scribbling over
-+	 * random memory locations.
-+	 */
-+	dev_crit(chan2dev(&atchan->chan_common),
-+			"Bad descriptor submitted for DMA!\n");
-+	dev_crit(chan2dev(&atchan->chan_common),
-+			"  cookie: %d\n", bad_desc->txd.cookie);
-+	atc_dump_lli(atchan, &bad_desc->lli);
-+	list_for_each_entry(child, &bad_desc->txd.tx_list, desc_node)
-+		atc_dump_lli(atchan, &child->lli);
-+
-+	/* Pretend the descriptor completed successfully */
-+	atc_chain_complete(atchan, bad_desc);
-+}
-+
-+
-+/*--  IRQ & Tasklet  ---------------------------------------------------*/
-+
-+static void atc_tasklet(unsigned long data)
-+{
-+	struct at_dma_chan *atchan = (struct at_dma_chan *)data;
-+
-+	/* Channel cannot be enabled here */
-+	if (atc_chan_is_enabled(atchan)) {
-+		dev_err(chan2dev(&atchan->chan_common),
-+			"BUG: channel enabled in tasklet\n");
-+		return;
-+	}
-+
-+	spin_lock(&atchan->lock);
-+	if (test_and_clear_bit(0, &atchan->error_status))
-+		atc_handle_error(atchan);
-+	else
-+		atc_advance_work(atchan);
-+
-+	spin_unlock(&atchan->lock);
-+}
-+
-+static irqreturn_t at_dma_interrupt(int irq, void *dev_id)
-+{
-+	struct at_dma		*atdma = (struct at_dma *)dev_id;
-+	struct at_dma_chan	*atchan;
-+	int			i;
-+	u32			status, pending, imr;
-+	int			ret = IRQ_NONE;
-+
-+	do {
-+		imr = dma_readl(atdma, EBCIMR);
-+		status = dma_readl(atdma, EBCISR);
-+		pending = status & imr;
-+
-+		if (!pending)
-+			break;
-+
-+		dev_vdbg(atdma->dma_common.dev,
-+			"interrupt: status = 0x%08x, 0x%08x, 0x%08x\n",
-+			 status, imr, pending);
-+
-+		for (i = 0; i < atdma->dma_common.chancnt; i++) {
-+			atchan = &atdma->chan[i];
-+			if (pending & (AT_DMA_CBTC(i) | AT_DMA_ERR(i))) {
-+				if (pending & AT_DMA_ERR(i)) {
-+					/* Disable channel on AHB error */
-+					dma_writel(atdma, CHDR, atchan->mask);
-+					/* Give information to tasklet */
-+					set_bit(0, &atchan->error_status);
-+				}
-+				tasklet_schedule(&atchan->tasklet);
-+				ret = IRQ_HANDLED;
-+			}
-+		}
-+
-+	} while (pending);
-+
-+	return ret;
-+}
-+
-+
-+/*--  DMA Engine API  --------------------------------------------------*/
-+
-+/**
-+ * atc_tx_submit - set the prepared descriptor(s) to be executed by the engine
-+ * @desc: descriptor at the head of the transaction chain
-+ *
-+ * Queue chain if DMA engine is working already
-+ *
-+ * Cookie increment and adding to active_list or queue must be atomic
-+ */
-+static dma_cookie_t atc_tx_submit(struct dma_async_tx_descriptor *tx)
-+{
-+	struct at_desc		*desc = txd_to_at_desc(tx);
-+	struct at_dma_chan	*atchan = to_at_dma_chan(tx->chan);
-+	dma_cookie_t		cookie;
-+
-+	spin_lock_bh(&atchan->lock);
-+	cookie = atc_assign_cookie(atchan, desc);
-+
-+	if (list_empty(&atchan->active_list)) {
-+		dev_vdbg(chan2dev(tx->chan), "tx_submit: started %u\n",
-+				desc->txd.cookie);
-+		atc_dostart(atchan, desc);
-+		list_add_tail(&desc->desc_node, &atchan->active_list);
-+	} else {
-+		dev_vdbg(chan2dev(tx->chan), "tx_submit: queued %u\n",
-+				desc->txd.cookie);
-+		list_add_tail(&desc->desc_node, &atchan->queue);
-+	}
-+
-+	spin_unlock_bh(&atchan->lock);
-+
-+	return cookie;
-+}
-+
-+/**
-+ * atc_prep_dma_memcpy - prepare a memcpy operation
-+ * @chan: the channel to prepare operation on
-+ * @dest: operation virtual destination address
-+ * @src: operation virtual source address
-+ * @len: operation length
-+ * @flags: tx descriptor status flags
-+ */
-+static struct dma_async_tx_descriptor *
-+atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
-+		size_t len, unsigned long flags)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+	struct at_desc		*desc = NULL;
-+	struct at_desc		*first = NULL;
-+	struct at_desc		*prev = NULL;
-+	size_t			xfer_count;
-+	size_t			offset;
-+	unsigned int		src_width;
-+	unsigned int		dst_width;
-+	u32			ctrla;
-+	u32			ctrlb;
-+
-+	dev_vdbg(chan2dev(chan), "prep_dma_memcpy: d0x%x s0x%x l0x%zx f0x%lx\n",
-+			dest, src, len, flags);
-+
-+	if (unlikely(!len)) {
-+		dev_dbg(chan2dev(chan), "prep_dma_memcpy: length is zero!\n");
-+		return NULL;
-+	}
-+
-+	ctrla =   ATC_DEFAULT_CTRLA;
-+	ctrlb =   ATC_DEFAULT_CTRLB
-+		| ATC_SRC_ADDR_MODE_INCR
-+		| ATC_DST_ADDR_MODE_INCR
-+		| ATC_FC_MEM2MEM;
-+
-+	/*
-+	 * We can be a lot more clever here, but this should take care
-+	 * of the most common optimization.
-+	 */
-+	if (!((src | dest  | len) & 3)) {
-+		ctrla |= ATC_SRC_WIDTH_WORD | ATC_DST_WIDTH_WORD;
-+		src_width = dst_width = 2;
-+	} else if (!((src | dest | len) & 1)) {
-+		ctrla |= ATC_SRC_WIDTH_HALFWORD | ATC_DST_WIDTH_HALFWORD;
-+		src_width = dst_width = 1;
-+	} else {
-+		ctrla |= ATC_SRC_WIDTH_BYTE | ATC_DST_WIDTH_BYTE;
-+		src_width = dst_width = 0;
-+	}
-+
-+	for (offset = 0; offset < len; offset += xfer_count << src_width) {
-+		xfer_count = min_t(size_t, (len - offset) >> src_width,
-+				ATC_BTSIZE_MAX);
-+
-+		desc = atc_desc_get(atchan);
-+		if (!desc)
-+			goto err_desc_get;
-+
-+		desc->lli.saddr = src + offset;
-+		desc->lli.daddr = dest + offset;
-+		desc->lli.ctrla = ctrla | xfer_count;
-+		desc->lli.ctrlb = ctrlb;
-+
-+		desc->txd.cookie = 0;
-+		async_tx_ack(&desc->txd);
-+
-+		if (!first) {
-+			first = desc;
-+		} else {
-+			/* inform the HW lli about chaining */
-+			prev->lli.dscr = desc->txd.phys;
-+			/* insert the link descriptor to the LD ring */
-+			list_add_tail(&desc->desc_node,
-+					&first->txd.tx_list);
-+		}
-+		prev = desc;
-+	}
-+
-+	/* First descriptor of the chain embedds additional information */
-+	first->txd.cookie = -EBUSY;
-+	first->len = len;
-+
-+	/* set end-of-link to the last link descriptor of list*/
-+	set_desc_eol(desc);
-+
-+	desc->txd.flags = flags; /* client is in control of this ack */
-+
-+	return &first->txd;
-+
-+err_desc_get:
-+	atc_desc_put(atchan, first);
-+	return NULL;
-+}
-+
-+
-+/**
-+ * atc_prep_slave_sg - prepare descriptors for a DMA_SLAVE transaction
-+ * @chan: DMA channel
-+ * @sgl: scatterlist to transfer to/from
-+ * @sg_len: number of entries in @scatterlist
-+ * @direction: DMA direction
-+ * @flags: tx descriptor status flags
-+ */
-+static struct dma_async_tx_descriptor *
-+atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
-+		unsigned int sg_len, enum dma_data_direction direction,
-+		unsigned long flags)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+	struct at_dma_slave	*atslave = chan->private;
-+	struct at_desc		*first = NULL;
-+	struct at_desc		*prev = NULL;
-+	u32			ctrla;
-+	u32			ctrlb;
-+	dma_addr_t		reg;
-+	unsigned int		reg_width;
-+	unsigned int		mem_width;
-+	unsigned int		i;
-+	struct scatterlist	*sg;
-+	size_t			total_len = 0;
-+
-+	dev_vdbg(chan2dev(chan), "prep_slave_sg: %s f0x%lx\n",
-+			direction == DMA_TO_DEVICE ? "TO DEVICE" : "FROM DEVICE",
-+			flags);
-+
-+	if (unlikely(!atslave || !sg_len)) {
-+		dev_dbg(chan2dev(chan), "prep_dma_memcpy: length is zero!\n");
-+		return NULL;
-+	}
-+
-+	reg_width = atslave->reg_width;
-+
-+	ctrla = ATC_DEFAULT_CTRLA | atslave->ctrla;
-+	ctrlb = ATC_DEFAULT_CTRLB | ATC_IEN;
-+
-+	switch (direction) {
-+	case DMA_TO_DEVICE:
-+		ctrla |=  ATC_DST_WIDTH(reg_width);
-+		ctrlb |=  ATC_DST_ADDR_MODE_FIXED
-+			| ATC_SRC_ADDR_MODE_INCR
-+			| ATC_FC_MEM2PER;
-+		reg = atslave->tx_reg;
-+		for_each_sg(sgl, sg, sg_len, i) {
-+			struct at_desc	*desc;
-+			u32		len;
-+			u32		mem;
-+
-+			desc = atc_desc_get(atchan);
-+			if (!desc)
-+				goto err_desc_get;
-+
-+			mem = sg_phys(sg);
-+			len = sg_dma_len(sg);
-+			mem_width = 2;
-+			if (unlikely(mem & 3 || len & 3))
-+				mem_width = 0;
-+
-+			desc->lli.saddr = mem;
-+			desc->lli.daddr = reg;
-+			desc->lli.ctrla = ctrla
-+					| ATC_SRC_WIDTH(mem_width)
-+					| len >> mem_width;
-+			desc->lli.ctrlb = ctrlb;
-+
-+			if (!first) {
-+				first = desc;
-+			} else {
-+				/* inform the HW lli about chaining */
-+				prev->lli.dscr = desc->txd.phys;
-+				/* insert the link descriptor to the LD ring */
-+				list_add_tail(&desc->desc_node,
-+						&first->txd.tx_list);
-+			}
-+			prev = desc;
-+			total_len += len;
-+		}
-+		break;
-+	case DMA_FROM_DEVICE:
-+		ctrla |=  ATC_SRC_WIDTH(reg_width);
-+		ctrlb |=  ATC_DST_ADDR_MODE_INCR
-+			| ATC_SRC_ADDR_MODE_FIXED
-+			| ATC_FC_PER2MEM;
-+
-+		reg = atslave->rx_reg;
-+		for_each_sg(sgl, sg, sg_len, i) {
-+			struct at_desc	*desc;
-+			u32		len;
-+			u32		mem;
-+
-+			desc = atc_desc_get(atchan);
-+			if (!desc)
-+				goto err_desc_get;
-+
-+			mem = sg_phys(sg);
-+			len = sg_dma_len(sg);
-+			mem_width = 2;
-+			if (unlikely(mem & 3 || len & 3))
-+				mem_width = 0;
-+
-+			desc->lli.saddr = reg;
-+			desc->lli.daddr = mem;
-+			desc->lli.ctrla = ctrla
-+					| ATC_DST_WIDTH(mem_width)
-+					| len >> mem_width;
-+			desc->lli.ctrlb = ctrlb;
-+
-+			if (!first) {
-+				first = desc;
-+			} else {
-+				/* inform the HW lli about chaining */
-+				prev->lli.dscr = desc->txd.phys;
-+				/* insert the link descriptor to the LD ring */
-+				list_add_tail(&desc->desc_node,
-+						&first->txd.tx_list);
-+			}
-+			prev = desc;
-+			total_len += len;
-+		}
-+		break;
-+	default:
-+		return NULL;
-+	}
-+
-+	/* set end-of-link to the last link descriptor of list*/
-+	set_desc_eol(prev);
-+
-+	/* First descriptor of the chain embedds additional information */
-+	first->txd.cookie = -EBUSY;
-+	first->len = total_len;
-+
-+	/* last link descriptor of list is responsible of flags */
-+	prev->txd.flags = flags; /* client is in control of this ack */
-+
-+	return &first->txd;
-+
-+err_desc_get:
-+	dev_err(chan2dev(chan), "not enough descriptors available\n");
-+	atc_desc_put(atchan, first);
-+	return NULL;
-+}
-+
-+static void atc_terminate_all(struct dma_chan *chan)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+	struct at_dma		*atdma = to_at_dma(chan->device);
-+	struct at_desc		*desc, *_desc;
-+	LIST_HEAD(list);
-+
-+	/*
-+	 * This is only called when something went wrong elsewhere, so
-+	 * we don't really care about the data. Just disable the
-+	 * channel. We still have to poll the channel enable bit due
-+	 * to AHB/HSB limitations.
-+	 */
-+	spin_lock_bh(&atchan->lock);
-+
-+	dma_writel(atdma, CHDR, atchan->mask);
-+
-+	/* confirm that this channel is disabled */
-+	while (dma_readl(atdma, CHSR) & atchan->mask)
-+		cpu_relax();
-+
-+	/* active_list entries will end up before queued entries */
-+	list_splice_init(&atchan->queue, &list);
-+	list_splice_init(&atchan->active_list, &list);
-+
-+	spin_unlock_bh(&atchan->lock);
-+
-+	/* Flush all pending and queued descriptors */
-+	list_for_each_entry_safe(desc, _desc, &list, desc_node)
-+		atc_chain_complete(atchan, desc);
-+}
-+
-+/**
-+ * atc_is_tx_complete - poll for transaction completion
-+ * @chan: DMA channel
-+ * @cookie: transaction identifier to check status of
-+ * @done: if not %NULL, updated with last completed transaction
-+ * @used: if not %NULL, updated with last used transaction
-+ *
-+ * If @done and @used are passed in, upon return they reflect the driver
-+ * internal state and can be used with dma_async_is_complete() to check
-+ * the status of multiple cookies without re-checking hardware state.
-+ */
-+static enum dma_status
-+atc_is_tx_complete(struct dma_chan *chan,
-+		dma_cookie_t cookie,
-+		dma_cookie_t *done, dma_cookie_t *used)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+	dma_cookie_t		last_used;
-+	dma_cookie_t		last_complete;
-+	enum dma_status		ret;
-+
-+	dev_vdbg(chan2dev(chan), "is_tx_complete: %d (d%d, u%d)\n",
-+			cookie, done ? *done : 0, used ? *used : 0);
-+
-+	spin_lock_bh(atchan->lock);
-+
-+	last_complete = atchan->completed_cookie;
-+	last_used = chan->cookie;
-+
-+	ret = dma_async_is_complete(cookie, last_complete, last_used);
-+	if (ret != DMA_SUCCESS) {
-+		atc_cleanup_descriptors(atchan);
-+
-+		last_complete = atchan->completed_cookie;
-+		last_used = chan->cookie;
-+
-+		ret = dma_async_is_complete(cookie, last_complete, last_used);
-+	}
-+
-+	spin_unlock_bh(atchan->lock);
-+
-+	if (done)
-+		*done = last_complete;
-+	if (used)
-+		*used = last_used;
-+
-+	return ret;
-+}
-+
-+/**
-+ * atc_issue_pending - try to finish work
-+ * @chan: target DMA channel
-+ */
-+static void atc_issue_pending(struct dma_chan *chan)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+
-+	dev_vdbg(chan2dev(chan), "issue_pending\n");
-+
-+	if (!atc_chan_is_enabled(atchan)) {
-+		spin_lock_bh(&atchan->lock);
-+		atc_advance_work(atchan);
-+		spin_unlock_bh(&atchan->lock);
-+	}
-+}
-+
-+/**
-+ * atc_alloc_chan_resources - allocate resources for DMA channel
-+ * @chan: allocate descriptor resources for this channel
-+ * @client: current client requesting the channel be ready for requests
-+ *
-+ * return - the number of allocated descriptors
-+ */
-+static int atc_alloc_chan_resources(struct dma_chan *chan)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+	struct at_dma		*atdma = to_at_dma(chan->device);
-+	struct at_desc		*desc;
-+	struct at_dma_slave	*atslave;
-+	int			i;
-+	u32			cfg;
-+	LIST_HEAD(tmp_list);
-+
-+	dev_vdbg(chan2dev(chan), "alloc_chan_resources\n");
-+
-+	/* ASSERT:  channel is idle */
-+	if (atc_chan_is_enabled(atchan)) {
-+		dev_dbg(chan2dev(chan), "DMA channel not idle ?\n");
-+		return -EIO;
-+	}
-+
-+	cfg = ATC_DEFAULT_CFG;
-+
-+	atslave = chan->private;
-+	if (atslave) {
-+		/*
-+		 * We need controller-specific data to set up slave
-+		 * transfers.
-+		 */
-+		BUG_ON(!atslave->dma_dev || atslave->dma_dev != atdma->dma_common.dev);
-+
-+		/* if cfg configuration specified take it instad of default */
-+		if (atslave->cfg)
-+			cfg = atslave->cfg;
-+	}
-+
-+	/* have we already been set up?
-+	 * reconfigure channel but no need to reallocate descriptors */
-+	if (!list_empty(&atchan->free_list))
-+		return atchan->descs_allocated;
-+
-+	/* Allocate initial pool of descriptors */
-+	for (i = 0; i < init_nr_desc_per_channel; i++) {
-+		desc = atc_alloc_descriptor(chan, GFP_KERNEL);
-+		if (!desc) {
-+			dev_err(atdma->dma_common.dev,
-+				"Only %d initial descriptors\n", i);
-+			break;
-+		}
-+		list_add_tail(&desc->desc_node, &tmp_list);
-+	}
-+
-+	spin_lock_bh(&atchan->lock);
-+	atchan->descs_allocated = i;
-+	list_splice(&tmp_list, &atchan->free_list);
-+	atchan->completed_cookie = chan->cookie = 1;
-+	spin_unlock_bh(&atchan->lock);
-+
-+	/* channel parameters */
-+	channel_writel(atchan, CFG, cfg);
-+
-+	dev_dbg(chan2dev(chan),
-+		"alloc_chan_resources: allocated %d descriptors\n",
-+		atchan->descs_allocated);
-+
-+	return atchan->descs_allocated;
-+}
-+
-+/**
-+ * atc_free_chan_resources - free all channel resources
-+ * @chan: DMA channel
-+ */
-+static void atc_free_chan_resources(struct dma_chan *chan)
-+{
-+	struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+	struct at_dma		*atdma = to_at_dma(chan->device);
-+	struct at_desc		*desc, *_desc;
-+	LIST_HEAD(list);
-+
-+	dev_dbg(chan2dev(chan), "free_chan_resources: (descs allocated=%u)\n",
-+		atchan->descs_allocated);
-+
-+	/* ASSERT:  channel is idle */
-+	BUG_ON(!list_empty(&atchan->active_list));
-+	BUG_ON(!list_empty(&atchan->queue));
-+	BUG_ON(atc_chan_is_enabled(atchan));
-+
-+	list_for_each_entry_safe(desc, _desc, &atchan->free_list, desc_node) {
-+		dev_vdbg(chan2dev(chan), "  freeing descriptor %p\n", desc);
-+		list_del(&desc->desc_node);
-+		/* free link descriptor */
-+		dma_pool_free(atdma->dma_desc_pool, desc, desc->txd.phys);
-+	}
-+	list_splice_init(&atchan->free_list, &list);
-+	atchan->descs_allocated = 0;
-+
-+	dev_vdbg(chan2dev(chan), "free_chan_resources: done\n");
-+}
-+
-+
-+/*--  Module Management  -----------------------------------------------*/
-+
-+/**
-+ * at_dma_off - disable DMA controller
-+ * @atdma: the Atmel HDAMC device
-+ */
-+static void at_dma_off(struct at_dma *atdma)
-+{
-+	dma_writel(atdma, EN, 0);
-+
-+	/* disable all interrupts */
-+	dma_writel(atdma, EBCIDR, -1L);
-+
-+	/* confirm that all channels are disabled */
-+	while (dma_readl(atdma, CHSR) & atdma->all_chan_mask)
-+		cpu_relax();
-+}
-+
-+static int __init at_dma_probe(struct platform_device *pdev)
-+{
-+	struct at_dma_platform_data *pdata;
-+	struct resource		*io;
-+	struct at_dma		*atdma;
-+	size_t			size;
-+	int			irq;
-+	int			err;
-+	int			i;
-+
-+	/* get DMA Controller parameters from platform */
-+	pdata = pdev->dev.platform_data;
-+	if (!pdata || pdata->nr_channels > AT_DMA_MAX_NR_CHANNELS)
-+		return -EINVAL;
-+
-+	io = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!io)
-+		return -EINVAL;
-+
-+	irq = platform_get_irq(pdev, 0);
-+	if (irq < 0)
-+		return irq;
-+
-+	size = sizeof(struct at_dma);
-+	size += pdata->nr_channels * sizeof(struct at_dma_chan);
-+	atdma = kzalloc(size, GFP_KERNEL);
-+	if (!atdma)
-+		return -ENOMEM;
-+
-+	/* discover transaction capabilites from the platform data */
-+	atdma->dma_common.cap_mask = pdata->cap_mask;
-+	atdma->all_chan_mask = (1 << pdata->nr_channels) - 1;
-+
-+	size = io->end - io->start + 1;
-+	if (!request_mem_region(io->start, size, pdev->dev.driver->name)) {
-+		err = -EBUSY;
-+		goto err_kfree;
-+	}
-+
-+	atdma->regs = ioremap(io->start, size);
-+	if (!atdma->regs) {
-+		err = -ENOMEM;
-+		goto err_release_r;
-+	}
-+
-+	atdma->clk = clk_get(&pdev->dev, "dma_clk");
-+	if (IS_ERR(atdma->clk)) {
-+		err = PTR_ERR(atdma->clk);
-+		goto err_clk;
-+	}
-+	clk_enable(atdma->clk);
-+
-+	/* force dma off, just in case */
-+	at_dma_off(atdma);
-+
-+	err = request_irq(irq, at_dma_interrupt, 0, "at_hdmac", atdma);
-+	if (err)
-+		goto err_irq;
-+
-+	platform_set_drvdata(pdev, atdma);
-+
-+	/* create a pool of consistent memory blocks for hardware descriptors */
-+	atdma->dma_desc_pool = dma_pool_create("at_hdmac_desc_pool",
-+			&pdev->dev, sizeof(struct at_desc),
-+			4 /* word alignment */, 0);
-+	if (!atdma->dma_desc_pool) {
-+		dev_err(&pdev->dev, "No memory for descriptors dma pool\n");
-+		err = -ENOMEM;
-+		goto err_pool_create;
-+	}
-+
-+	/* clear any pending interrupt */
-+	while (dma_readl(atdma, EBCISR))
-+		cpu_relax();
-+
-+	/* initialize channels related values */
-+	INIT_LIST_HEAD(&atdma->dma_common.channels);
-+	for (i = 0; i < pdata->nr_channels; i++, atdma->dma_common.chancnt++) {
-+		struct at_dma_chan	*atchan = &atdma->chan[i];
-+
-+		atchan->chan_common.device = &atdma->dma_common;
-+		atchan->chan_common.cookie = atchan->completed_cookie = 1;
-+		atchan->chan_common.chan_id = i;
-+		list_add_tail(&atchan->chan_common.device_node,
-+				&atdma->dma_common.channels);
-+
-+		atchan->ch_regs = atdma->regs + ch_regs(i);
-+		spin_lock_init(&atchan->lock);
-+		atchan->mask = 1 << i;
-+
-+		INIT_LIST_HEAD(&atchan->active_list);
-+		INIT_LIST_HEAD(&atchan->queue);
-+		INIT_LIST_HEAD(&atchan->free_list);
-+
-+		tasklet_init(&atchan->tasklet, atc_tasklet,
-+				(unsigned long)atchan);
-+		atc_enable_irq(atchan);
-+	}
-+
-+	/* set base routines */
-+	atdma->dma_common.device_alloc_chan_resources = atc_alloc_chan_resources;
-+	atdma->dma_common.device_free_chan_resources = atc_free_chan_resources;
-+	atdma->dma_common.device_is_tx_complete = atc_is_tx_complete;
-+	atdma->dma_common.device_issue_pending = atc_issue_pending;
-+	atdma->dma_common.dev = &pdev->dev;
-+
-+	/* set prep routines based on capability */
-+	if (dma_has_cap(DMA_MEMCPY, atdma->dma_common.cap_mask))
-+		atdma->dma_common.device_prep_dma_memcpy = atc_prep_dma_memcpy;
-+
-+	if (dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask)) {
-+		atdma->dma_common.device_prep_slave_sg = atc_prep_slave_sg;
-+		atdma->dma_common.device_terminate_all = atc_terminate_all;
-+	}
-+
-+	dma_writel(atdma, EN, AT_DMA_ENABLE);
-+
-+	dev_info(&pdev->dev, "Atmel AHB DMA Controller ( %s%s), %d channels\n",
-+	  dma_has_cap(DMA_MEMCPY, atdma->dma_common.cap_mask) ? "cpy " : "",
-+	  dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask)  ? "slave " : "",
-+	  atdma->dma_common.chancnt);
-+
-+	dma_async_device_register(&atdma->dma_common);
-+
-+	return 0;
-+
-+err_pool_create:
-+	platform_set_drvdata(pdev, NULL);
-+	free_irq(platform_get_irq(pdev, 0), atdma);
-+err_irq:
-+	clk_disable(atdma->clk);
-+	clk_put(atdma->clk);
-+err_clk:
-+	iounmap(atdma->regs);
-+	atdma->regs = NULL;
-+err_release_r:
-+	release_mem_region(io->start, size);
-+err_kfree:
-+	kfree(atdma);
-+	return err;
-+}
-+
-+static int __exit at_dma_remove(struct platform_device *pdev)
-+{
-+	struct at_dma		*atdma = platform_get_drvdata(pdev);
-+	struct dma_chan		*chan, *_chan;
-+	struct resource		*io;
-+
-+	at_dma_off(atdma);
-+	dma_async_device_unregister(&atdma->dma_common);
-+
-+	dma_pool_destroy(atdma->dma_desc_pool);
-+	platform_set_drvdata(pdev, NULL);
-+	free_irq(platform_get_irq(pdev, 0), atdma);
-+
-+	list_for_each_entry_safe(chan, _chan, &atdma->dma_common.channels,
-+			device_node) {
-+		struct at_dma_chan	*atchan = to_at_dma_chan(chan);
-+
-+		/* Disable interrupts */
-+		atc_disable_irq(atchan);
-+		tasklet_disable(&atchan->tasklet);
-+
-+		tasklet_kill(&atchan->tasklet);
-+		list_del(&chan->device_node);
-+	}
-+
-+	clk_disable(atdma->clk);
-+	clk_put(atdma->clk);
-+
-+	iounmap(atdma->regs);
-+	atdma->regs = NULL;
-+
-+	io = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	release_mem_region(io->start, io->end - io->start + 1);
-+
-+	kfree(atdma);
-+
-+	return 0;
-+}
-+
-+static void at_dma_shutdown(struct platform_device *pdev)
-+{
-+	struct at_dma	*atdma = platform_get_drvdata(pdev);
-+
-+	at_dma_off(platform_get_drvdata(pdev));
-+	clk_disable(atdma->clk);
-+}
-+
-+static int at_dma_suspend_late(struct platform_device *pdev, pm_message_t mesg)
-+{
-+	struct at_dma	*atdma = platform_get_drvdata(pdev);
-+
-+	at_dma_off(platform_get_drvdata(pdev));
-+	clk_disable(atdma->clk);
-+	return 0;
-+}
-+
-+static int at_dma_resume_early(struct platform_device *pdev)
-+{
-+	struct at_dma	*atdma = platform_get_drvdata(pdev);
-+
-+	clk_enable(atdma->clk);
-+	dma_writel(atdma, EN, AT_DMA_ENABLE);
-+	return 0;
-+
-+}
-+
-+static struct platform_driver at_dma_driver = {
-+	.remove		= __exit_p(at_dma_remove),
-+	.shutdown	= at_dma_shutdown,
-+	.suspend_late	= at_dma_suspend_late,
-+	.resume_early	= at_dma_resume_early,
-+	.driver = {
-+		.name	= "at_hdmac",
-+	},
-+};
-+
-+static int __init at_dma_init(void)
-+{
-+	return platform_driver_probe(&at_dma_driver, at_dma_probe);
-+}
-+module_init(at_dma_init);
-+
-+static void __exit at_dma_exit(void)
-+{
-+	platform_driver_unregister(&at_dma_driver);
-+}
-+module_exit(at_dma_exit);
-+
-+MODULE_DESCRIPTION("Atmel AHB DMA Controller driver");
-+MODULE_AUTHOR("Nicolas Ferre <nicolas.ferre at atmel.com>");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:at_hdmac");
-Index: linux-2.6.30/drivers/dma/at_hdmac_regs.h
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/drivers/dma/at_hdmac_regs.h	2011-02-01 16:40:30.152108635 +0100
-@@ -0,0 +1,353 @@
-+/*
-+ * Header file for the Atmel AHB DMA Controller driver
-+ *
-+ * Copyright (C) 2008 Atmel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ */
-+#ifndef AT_HDMAC_REGS_H
-+#define	AT_HDMAC_REGS_H
-+
-+#include <mach/at_hdmac.h>
-+
-+#define	AT_DMA_MAX_NR_CHANNELS	8
-+
-+
-+#define	AT_DMA_GCFG	0x00	/* Global Configuration Register */
-+#define		AT_DMA_IF_BIGEND(i)	(0x1 << (i))	/* AHB-Lite Interface i in Big-endian mode */
-+#define		AT_DMA_ARB_CFG	(0x1 << 4)	/* Arbiter mode. */
-+#define			AT_DMA_ARB_CFG_FIXED		(0x0 << 4)
-+#define			AT_DMA_ARB_CFG_ROUND_ROBIN	(0x1 << 4)
-+
-+#define	AT_DMA_EN	0x04	/* Controller Enable Register */
-+#define		AT_DMA_ENABLE	(0x1 << 0)
-+
-+#define	AT_DMA_SREQ	0x08	/* Software Single Request Register */
-+#define		AT_DMA_SSREQ(x)	(0x1 << ((x) << 1))		/* Request a source single transfer on channel x */
-+#define		AT_DMA_DSREQ(x)	(0x1 << (1 + ((x) << 1)))	/* Request a destination single transfer on channel x */
-+
-+#define	AT_DMA_CREQ	0x0C	/* Software Chunk Transfer Request Register */
-+#define		AT_DMA_SCREQ(x)	(0x1 << ((x) << 1))		/* Request a source chunk transfer on channel x */
-+#define		AT_DMA_DCREQ(x)	(0x1 << (1 + ((x) << 1)))	/* Request a destination chunk transfer on channel x */
-+
-+#define	AT_DMA_LAST	0x10	/* Software Last Transfer Flag Register */
-+#define		AT_DMA_SLAST(x)	(0x1 << ((x) << 1))		/* This src rq is last tx of buffer on channel x */
-+#define		AT_DMA_DLAST(x)	(0x1 << (1 + ((x) << 1)))	/* This dst rq is last tx of buffer on channel x */
-+
-+#define	AT_DMA_SYNC	0x14	/* Request Synchronization Register */
-+#define		AT_DMA_SYR(h)	(0x1 << (h))			/* Synchronize handshake line h */
-+
-+/* Error, Chained Buffer transfer completed and Buffer transfer completed Interrupt registers */
-+#define	AT_DMA_EBCIER	0x18	/* Enable register */
-+#define	AT_DMA_EBCIDR	0x1C	/* Disable register */
-+#define	AT_DMA_EBCIMR	0x20	/* Mask Register */
-+#define	AT_DMA_EBCISR	0x24	/* Status Register */
-+#define		AT_DMA_CBTC_OFFSET	8
-+#define		AT_DMA_ERR_OFFSET	16
-+#define		AT_DMA_BTC(x)	(0x1 << (x))
-+#define		AT_DMA_CBTC(x)	(0x1 << (AT_DMA_CBTC_OFFSET + (x)))
-+#define		AT_DMA_ERR(x)	(0x1 << (AT_DMA_ERR_OFFSET + (x)))
-+
-+#define	AT_DMA_CHER	0x28	/* Channel Handler Enable Register */
-+#define		AT_DMA_ENA(x)	(0x1 << (x))
-+#define		AT_DMA_SUSP(x)	(0x1 << ( 8 + (x)))
-+#define		AT_DMA_KEEP(x)	(0x1 << (24 + (x)))
-+
-+#define	AT_DMA_CHDR	0x2C	/* Channel Handler Disable Register */
-+#define		AT_DMA_DIS(x)	(0x1 << (x))
-+#define		AT_DMA_RES(x)	(0x1 << ( 8 + (x)))
-+
-+#define	AT_DMA_CHSR	0x30	/* Channel Handler Status Register */
-+#define		AT_DMA_EMPT(x)	(0x1 << (16 + (x)))
-+#define		AT_DMA_STAL(x)	(0x1 << (24 + (x)))
-+
-+
-+#define	AT_DMA_CH_REGS_BASE	0x3C	/* Channel registers base address */
-+#define	ch_regs(x)	(AT_DMA_CH_REGS_BASE + (x) * 0x28) /* Channel x base addr */
-+
-+/* Hardware register offset for each channel */
-+#define	ATC_SADDR_OFFSET	0x00	/* Source Address Register */
-+#define	ATC_DADDR_OFFSET	0x04	/* Destination Address Register */
-+#define	ATC_DSCR_OFFSET		0x08	/* Descriptor Address Register */
-+#define	ATC_CTRLA_OFFSET	0x0C	/* Control A Register */
-+#define	ATC_CTRLB_OFFSET	0x10	/* Control B Register */
-+#define	ATC_CFG_OFFSET		0x14	/* Configuration Register */
-+#define	ATC_SPIP_OFFSET		0x18	/* Src PIP Configuration Register */
-+#define	ATC_DPIP_OFFSET		0x1C	/* Dst PIP Configuration Register */
-+
-+
-+/* Bitfield definitions */
-+
-+/* Bitfields in DSCR */
-+#define	ATC_DSCR_IF(i)		(0x3 & (i))	/* Dsc feched via AHB-Lite Interface i */
-+
-+/* Bitfields in CTRLA */
-+#define	ATC_BTSIZE_MAX		0xFFFFUL	/* Maximum Buffer Transfer Size */
-+#define	ATC_BTSIZE(x)		(ATC_BTSIZE_MAX & (x)) /* Buffer Transfer Size */
-+/* Chunck Tranfer size definitions are in at_hdmac.h */
-+#define	ATC_SRC_WIDTH_MASK	(0x3 << 24)	/* Source Single Transfer Size */
-+#define		ATC_SRC_WIDTH(x)	((x) << 24)
-+#define		ATC_SRC_WIDTH_BYTE	(0x0 << 24)
-+#define		ATC_SRC_WIDTH_HALFWORD	(0x1 << 24)
-+#define		ATC_SRC_WIDTH_WORD	(0x2 << 24)
-+#define	ATC_DST_WIDTH_MASK	(0x3 << 28)	/* Destination Single Transfer Size */
-+#define		ATC_DST_WIDTH(x)	((x) << 28)
-+#define		ATC_DST_WIDTH_BYTE	(0x0 << 28)
-+#define		ATC_DST_WIDTH_HALFWORD	(0x1 << 28)
-+#define		ATC_DST_WIDTH_WORD	(0x2 << 28)
-+#define	ATC_DONE		(0x1 << 31)	/* Tx Done (only written back in descriptor) */
-+
-+/* Bitfields in CTRLB */
-+#define	ATC_SIF(i)		(0x3 & (i))	/* Src tx done via AHB-Lite Interface i */
-+#define	ATC_DIF(i)		((0x3 & (i)) <<  4)	/* Dst tx done via AHB-Lite Interface i */
-+#define	ATC_SRC_PIP		(0x1 <<  8)	/* Source Picture-in-Picture enabled */
-+#define	ATC_DST_PIP		(0x1 << 12)	/* Destination Picture-in-Picture enabled */
-+#define	ATC_SRC_DSCR_DIS	(0x1 << 16)	/* Src Descriptor fetch disable */
-+#define	ATC_DST_DSCR_DIS	(0x1 << 20)	/* Dst Descriptor fetch disable */
-+#define	ATC_FC_MASK		(0x7 << 21)	/* Choose Flow Controller */
-+#define		ATC_FC_MEM2MEM		(0x0 << 21)	/* Mem-to-Mem (DMA) */
-+#define		ATC_FC_MEM2PER		(0x1 << 21)	/* Mem-to-Periph (DMA) */
-+#define		ATC_FC_PER2MEM		(0x2 << 21)	/* Periph-to-Mem (DMA) */
-+#define		ATC_FC_PER2PER		(0x3 << 21)	/* Periph-to-Periph (DMA) */
-+#define		ATC_FC_PER2MEM_PER	(0x4 << 21)	/* Periph-to-Mem (Peripheral) */
-+#define		ATC_FC_MEM2PER_PER	(0x5 << 21)	/* Mem-to-Periph (Peripheral) */
-+#define		ATC_FC_PER2PER_SRCPER	(0x6 << 21)	/* Periph-to-Periph (Src Peripheral) */
-+#define		ATC_FC_PER2PER_DSTPER	(0x7 << 21)	/* Periph-to-Periph (Dst Peripheral) */
-+#define	ATC_SRC_ADDR_MODE_MASK	(0x3 << 24)
-+#define		ATC_SRC_ADDR_MODE_INCR	(0x0 << 24)	/* Incrementing Mode */
-+#define		ATC_SRC_ADDR_MODE_DECR	(0x1 << 24)	/* Decrementing Mode */
-+#define		ATC_SRC_ADDR_MODE_FIXED	(0x2 << 24)	/* Fixed Mode */
-+#define	ATC_DST_ADDR_MODE_MASK	(0x3 << 28)
-+#define		ATC_DST_ADDR_MODE_INCR	(0x0 << 28)	/* Incrementing Mode */
-+#define		ATC_DST_ADDR_MODE_DECR	(0x1 << 28)	/* Decrementing Mode */
-+#define		ATC_DST_ADDR_MODE_FIXED	(0x2 << 28)	/* Fixed Mode */
-+#define	ATC_IEN			(0x1 << 30)	/* BTC interrupt enable (active low) */
-+#define	ATC_AUTO		(0x1 << 31)	/* Auto multiple buffer tx enable */
-+
-+/* Bitfields in CFG */
-+/* are in at_hdmac.h */
-+
-+/* Bitfields in SPIP */
-+#define	ATC_SPIP_HOLE(x)	(0xFFFFU & (x))
-+#define	ATC_SPIP_BOUNDARY(x)	((0x3FF & (x)) << 16)
-+
-+/* Bitfields in DPIP */
-+#define	ATC_DPIP_HOLE(x)	(0xFFFFU & (x))
-+#define	ATC_DPIP_BOUNDARY(x)	((0x3FF & (x)) << 16)
-+
-+
-+/*--  descriptors  -----------------------------------------------------*/
-+
-+/* LLI == Linked List Item; aka DMA buffer descriptor */
-+struct at_lli {
-+	/* values that are not changed by hardware */
-+	dma_addr_t	saddr;
-+	dma_addr_t	daddr;
-+	/* value that may get written back: */
-+	u32		ctrla;
-+	/* more values that are not changed by hardware */
-+	u32		ctrlb;
-+	dma_addr_t	dscr;	/* chain to next lli */
-+};
-+
-+/**
-+ * struct at_desc - software descriptor
-+ * @at_lli: hardware lli structure
-+ * @txd: support for the async_tx api
-+ * @desc_node: node on the channed descriptors list
-+ * @len: total transaction bytecount
-+ */
-+struct at_desc {
-+	/* FIRST values the hardware uses */
-+	struct at_lli			lli;
-+
-+	/* THEN values for driver housekeeping */
-+	struct dma_async_tx_descriptor	txd;
-+	struct list_head		desc_node;
-+	size_t				len;
-+};
-+
-+static inline struct at_desc *
-+txd_to_at_desc(struct dma_async_tx_descriptor *txd)
-+{
-+	return container_of(txd, struct at_desc, txd);
-+}
-+
-+
-+/*--  Channels  --------------------------------------------------------*/
-+
-+/**
-+ * struct at_dma_chan - internal representation of an Atmel HDMAC channel
-+ * @chan_common: common dmaengine channel object members
-+ * @device: parent device
-+ * @ch_regs: memory mapped register base
-+ * @mask: channel index in a mask
-+ * @error_status: transmit error status information from irq handler
-+ *                to tasklet (use atomic operations)
-+ * @tasklet: bottom half to finish transaction work
-+ * @lock: serializes enqueue/dequeue operations to descriptors lists
-+ * @completed_cookie: identifier for the most recently completed operation
-+ * @active_list: list of descriptors dmaengine is being running on
-+ * @queue: list of descriptors ready to be submitted to engine
-+ * @free_list: list of descriptors usable by the channel
-+ * @descs_allocated: records the actual size of the descriptor pool
-+ */
-+struct at_dma_chan {
-+	struct dma_chan		chan_common;
-+	struct at_dma		*device;
-+	void __iomem		*ch_regs;
-+	u8			mask;
-+	unsigned long		error_status;
-+	struct tasklet_struct	tasklet;
-+
-+	spinlock_t		lock;
-+
-+	/* these other elements are all protected by lock */
-+	dma_cookie_t		completed_cookie;
-+	struct list_head	active_list;
-+	struct list_head	queue;
-+	struct list_head	free_list;
-+	unsigned int		descs_allocated;
-+};
-+
-+#define	channel_readl(atchan, name) \
-+	__raw_readl((atchan)->ch_regs + ATC_##name##_OFFSET)
-+
-+#define	channel_writel(atchan, name, val) \
-+	__raw_writel((val), (atchan)->ch_regs + ATC_##name##_OFFSET)
-+
-+static inline struct at_dma_chan *to_at_dma_chan(struct dma_chan *dchan)
-+{
-+	return container_of(dchan, struct at_dma_chan, chan_common);
-+}
-+
-+
-+/*--  Controller  ------------------------------------------------------*/
-+
-+/**
-+ * struct at_dma - internal representation of an Atmel HDMA Controller
-+ * @chan_common: common dmaengine dma_device object members
-+ * @ch_regs: memory mapped register base
-+ * @clk: dma controller clock
-+ * @all_chan_mask: all channels availlable in a mask
-+ * @dma_desc_pool: base of DMA descriptor region (DMA address)
-+ * @chan: channels table to store at_dma_chan structures
-+ */
-+struct at_dma {
-+	struct dma_device	dma_common;
-+	void __iomem		*regs;
-+	struct clk		*clk;
-+
-+	u8			all_chan_mask;
-+
-+	struct dma_pool		*dma_desc_pool;
-+	/* AT THE END channels table */
-+	struct at_dma_chan	chan[0];
-+};
-+
-+#define	dma_readl(atdma, name) \
-+	__raw_readl((atdma)->regs + AT_DMA_##name)
-+#define	dma_writel(atdma, name, val) \
-+	__raw_writel((val), (atdma)->regs + AT_DMA_##name)
-+
-+static inline struct at_dma *to_at_dma(struct dma_device *ddev)
-+{
-+	return container_of(ddev, struct at_dma, dma_common);
-+}
-+
-+
-+/*--  Helper functions  ------------------------------------------------*/
-+
-+static struct device *chan2dev(struct dma_chan *chan)
-+{
-+	return &chan->dev->device;
-+}
-+static struct device *chan2parent(struct dma_chan *chan)
-+{
-+	return chan->dev->device.parent;
-+}
-+
-+#if defined(VERBOSE_DEBUG)
-+static void vdbg_dump_regs(struct at_dma_chan *atchan)
-+{
-+	struct at_dma	*atdma = to_at_dma(atchan->chan_common.device);
-+
-+	dev_err(chan2dev(&atchan->chan_common),
-+		"  channel %d : imr = 0x%x, chsr = 0x%x\n",
-+		atchan->chan_common.chan_id,
-+		dma_readl(atdma, EBCIMR),
-+		dma_readl(atdma, CHSR));
-+
-+	dev_err(chan2dev(&atchan->chan_common),
-+		"  channel: s0x%x d0x%x ctrl0x%x:0x%x cfg0x%x l0x%x\n",
-+		channel_readl(atchan, SADDR),
-+		channel_readl(atchan, DADDR),
-+		channel_readl(atchan, CTRLA),
-+		channel_readl(atchan, CTRLB),
-+		channel_readl(atchan, CFG),
-+		channel_readl(atchan, DSCR));
-+}
-+#else
-+static void vdbg_dump_regs(struct at_dma_chan *atchan) {}
-+#endif
-+
-+static void atc_dump_lli(struct at_dma_chan *atchan, struct at_lli *lli)
-+{
-+	dev_printk(KERN_CRIT, chan2dev(&atchan->chan_common),
-+			"  desc: s0x%x d0x%x ctrl0x%x:0x%x l0x%x\n",
-+			lli->saddr, lli->daddr,
-+			lli->ctrla, lli->ctrlb, lli->dscr);
-+}
-+
-+
-+static void atc_setup_irq(struct at_dma_chan *atchan, int on)
-+{
-+	struct at_dma	*atdma = to_at_dma(atchan->chan_common.device);
-+	u32		ebci;
-+
-+	/* enable interrupts on buffer chain completion & error */
-+	ebci =    AT_DMA_CBTC(atchan->chan_common.chan_id)
-+		| AT_DMA_ERR(atchan->chan_common.chan_id);
-+	if (on)
-+		dma_writel(atdma, EBCIER, ebci);
-+	else
-+		dma_writel(atdma, EBCIDR, ebci);
-+}
-+
-+static inline void atc_enable_irq(struct at_dma_chan *atchan)
-+{
-+	atc_setup_irq(atchan, 1);
-+}
-+
-+static inline void atc_disable_irq(struct at_dma_chan *atchan)
-+{
-+	atc_setup_irq(atchan, 0);
-+}
-+
-+
-+/**
-+ * atc_chan_is_enabled - test if given channel is enabled
-+ * @atchan: channel we want to test status
-+ */
-+static inline int atc_chan_is_enabled(struct at_dma_chan *atchan)
-+{
-+	struct at_dma	*atdma = to_at_dma(atchan->chan_common.device);
-+
-+	return !!(dma_readl(atdma, CHSR) & atchan->mask);
-+}
-+
-+
-+/**
-+ * set_desc_eol - set end-of-link to descriptor so it will end transfer
-+ * @desc: descriptor, signle or at the end of a chain, to end chain on
-+ */
-+static void set_desc_eol(struct at_desc *desc)
-+{
-+	desc->lli.ctrlb |= ATC_SRC_DSCR_DIS | ATC_DST_DSCR_DIS;
-+	desc->lli.dscr = 0;
-+}
-+
-+#endif /* AT_HDMAC_REGS_H */
-Index: linux-2.6.30/arch/arm/mach-at91/at91sam9rl_devices.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/at91sam9rl_devices.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/mach-at91/at91sam9rl_devices.c	2011-02-01 16:40:30.165043750 +0100
-@@ -21,11 +21,57 @@
- #include <mach/at91sam9rl.h>
- #include <mach/at91sam9rl_matrix.h>
- #include <mach/at91sam9_smc.h>
-+#include <mach/at_hdmac.h>
- 
- #include "generic.h"
- 
- 
- /* --------------------------------------------------------------------
-+ *  HDMAC - AHB DMA Controller
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_AT_HDMAC) || defined(CONFIG_AT_HDMAC_MODULE)
-+static u64 hdmac_dmamask = DMA_BIT_MASK(32);
-+
-+static struct at_dma_platform_data atdma_pdata = {
-+	.nr_channels	= 2,
-+};
-+
-+static struct resource hdmac_resources[] = {
-+	[0] = {
-+		.start	= AT91_BASE_SYS + AT91_DMA,
-+		.end	= AT91_BASE_SYS + AT91_DMA + SZ_512 - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[2] = {
-+		.start	= AT91SAM9RL_ID_DMA,
-+		.end	= AT91SAM9RL_ID_DMA,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at_hdmac_device = {
-+	.name		= "at_hdmac",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &hdmac_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &atdma_pdata,
-+	},
-+	.resource	= hdmac_resources,
-+	.num_resources	= ARRAY_SIZE(hdmac_resources),
-+};
-+
-+void __init at91_add_device_hdmac(void)
-+{
-+	dma_cap_set(DMA_MEMCPY, atdma_pdata.cap_mask);
-+	platform_device_register(&at_hdmac_device);
-+}
-+#else
-+void __init at91_add_device_hdmac(void) {}
-+#endif
-+
-+/* --------------------------------------------------------------------
-  *  USB HS Device (Gadget)
-  * -------------------------------------------------------------------- */
- 
-@@ -398,6 +444,61 @@
- 
- 
- /* --------------------------------------------------------------------
-+ *  AC97
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_SND_ATMEL_AC97C) || defined(CONFIG_SND_ATMEL_AC97C_MODULE)
-+static u64 ac97_dmamask = DMA_BIT_MASK(32);
-+static struct ac97c_platform_data ac97_data;
-+
-+static struct resource ac97_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9RL_BASE_AC97C,
-+		.end	= AT91SAM9RL_BASE_AC97C + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9RL_ID_AC97C,
-+		.end	= AT91SAM9RL_ID_AC97C,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9rl_ac97_device = {
-+	.name		= "atmel_ac97c",
-+	.id		= 0,
-+	.dev		= {
-+				.dma_mask		= &ac97_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &ac97_data,
-+	},
-+	.resource	= ac97_resources,
-+	.num_resources	= ARRAY_SIZE(ac97_resources),
-+};
-+
-+void __init at91_add_device_ac97(struct ac97c_platform_data *data)
-+{
-+	if (!data)
-+		return;
-+
-+	at91_set_A_periph(AT91_PIN_PD1, 0);	/* AC97FS */
-+	at91_set_A_periph(AT91_PIN_PD2, 0);	/* AC97CK */
-+	at91_set_A_periph(AT91_PIN_PD3, 0);	/* AC97TX */
-+	at91_set_A_periph(AT91_PIN_PD4, 0);	/* AC97RX */
-+
-+	/* reset */
-+	if (data->reset_pin)
-+		at91_set_gpio_output(data->reset_pin, 0);
-+
-+	ac97_data = *data;
-+	platform_device_register(&at91sam9rl_ac97_device);
-+}
-+#else
-+void __init at91_add_device_ac97(struct ac97c_platform_data *data) {}
-+#endif
-+
-+
-+/* --------------------------------------------------------------------
-  *  LCD Controller
-  * -------------------------------------------------------------------- */
- 
-@@ -521,6 +622,7 @@
- 
- #if defined(CONFIG_TOUCHSCREEN_ATMEL_TSADCC) || defined(CONFIG_TOUCHSCREEN_ATMEL_TSADCC_MODULE)
- static u64 tsadcc_dmamask = DMA_BIT_MASK(32);
-+static struct at91_tsadcc_data tsadcc_data;
- 
- static struct resource tsadcc_resources[] = {
- 	[0] = {
-@@ -541,22 +643,27 @@
- 	.dev		= {
- 				.dma_mask		= &tsadcc_dmamask,
- 				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &tsadcc_data,
- 	},
- 	.resource	= tsadcc_resources,
- 	.num_resources	= ARRAY_SIZE(tsadcc_resources),
- };
- 
--void __init at91_add_device_tsadcc(void)
-+void __init at91_add_device_tsadcc(struct at91_tsadcc_data *data)
- {
-+	if (!data)
-+		return;
-+
- 	at91_set_A_periph(AT91_PIN_PA17, 0);	/* AD0_XR */
- 	at91_set_A_periph(AT91_PIN_PA18, 0);	/* AD1_XL */
- 	at91_set_A_periph(AT91_PIN_PA19, 0);	/* AD2_YT */
- 	at91_set_A_periph(AT91_PIN_PA20, 0);	/* AD3_TB */
- 
-+	tsadcc_data = *data;
- 	platform_device_register(&at91sam9rl_tsadcc_device);
- }
- #else
--void __init at91_add_device_tsadcc(void) {}
-+void __init at91_add_device_tsadcc(struct at91_tsadcc_data *data) {}
- #endif
- 
- 
-@@ -1103,6 +1210,7 @@
-  */
- static int __init at91_add_standard_devices(void)
- {
-+	at91_add_device_hdmac();
- 	at91_add_device_rtc();
- 	at91_add_device_rtt();
- 	at91_add_device_watchdog();
-Index: linux-2.6.30/drivers/mmc/host/atmel-mci-regs.h
-===================================================================
---- linux-2.6.30.orig/drivers/mmc/host/atmel-mci-regs.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/mmc/host/atmel-mci-regs.h	2011-02-01 16:40:30.152108635 +0100
-@@ -7,6 +7,12 @@
-  * it under the terms of the GNU General Public License version 2 as
-  * published by the Free Software Foundation.
-  */
-+
-+/*
-+ * Superset of MCI IP registers integrated in Atmel AVR32 and AT91 Processors
-+ * Registers and bitfields marked with [2] are only available in MCI2
-+ */
-+
- #ifndef __DRIVERS_MMC_ATMEL_MCI_H__
- #define __DRIVERS_MMC_ATMEL_MCI_H__
- 
-@@ -14,11 +20,17 @@
- #define MCI_CR			0x0000	/* Control */
- # define MCI_CR_MCIEN		(  1 <<  0)	/* MCI Enable */
- # define MCI_CR_MCIDIS		(  1 <<  1)	/* MCI Disable */
-+# define MCI_CR_PWSEN		(  1 <<  2)	/* Power Save Enable */
-+# define MCI_CR_PWSDIS		(  1 <<  3)	/* Power Save Disable */
- # define MCI_CR_SWRST		(  1 <<  7)	/* Software Reset */
- #define MCI_MR			0x0004	/* Mode */
- # define MCI_MR_CLKDIV(x)	((x) <<  0)	/* Clock Divider */
-+# define MCI_MR_PWSDIV(x)	((x) <<  8)	/* Power Saving Divider */
- # define MCI_MR_RDPROOF		(  1 << 11)	/* Read Proof */
- # define MCI_MR_WRPROOF		(  1 << 12)	/* Write Proof */
-+# define MCI_MR_PDCFBYTE	(  1 << 13)	/* Force Byte Transfer */
-+# define MCI_MR_PDCPADV		(  1 << 14)	/* Padding Value */
-+# define MCI_MR_PDCMODE		(  1 << 15)	/* PDC-oriented Mode */
- #define MCI_DTOR		0x0008	/* Data Timeout */
- # define MCI_DTOCYC(x)		((x) <<  0)	/* Data Timeout Cycles */
- # define MCI_DTOMUL(x)		((x) <<  4)	/* Data Timeout Multiplier */
-@@ -28,6 +40,7 @@
- # define MCI_SDCSEL_MASK	(  3 <<  0)
- # define MCI_SDCBUS_1BIT	(  0 <<  6)	/* 1-bit data bus */
- # define MCI_SDCBUS_4BIT	(  2 <<  6)	/* 4-bit data bus */
-+# define MCI_SDCBUS_8BIT	(  3 <<  6)	/* 8-bit data bus[2] */
- # define MCI_SDCBUS_MASK	(  3 <<  6)
- #define MCI_ARGR		0x0010	/* Command Argument */
- #define MCI_CMDR		0x0014	/* Command */
-@@ -56,6 +69,9 @@
- #define MCI_BLKR		0x0018	/* Block */
- # define MCI_BCNT(x)		((x) <<  0)	/* Data Block Count */
- # define MCI_BLKLEN(x)		((x) << 16)	/* Data Block Length */
-+#define MCI_CSTOR		0x001c	/* Completion Signal Timeout[2] */
-+# define MCI_CSTOCYC(x)		((x) <<  0)	/* CST cycles */
-+# define MCI_CSTOMUL(x)		((x) <<  4)	/* CST multiplier */
- #define MCI_RSPR		0x0020	/* Response 0 */
- #define MCI_RSPR1		0x0024	/* Response 1 */
- #define MCI_RSPR2		0x0028	/* Response 2 */
-@@ -83,7 +99,24 @@
- # define MCI_DTOE		(  1 <<  22)	/* Data Time-Out Error */
- # define MCI_OVRE		(  1 <<  30)	/* RX Overrun Error */
- # define MCI_UNRE		(  1 <<  31)	/* TX Underrun Error */
-+#define MCI_DMA			0x0050	/* DMA Configuration[2] */
-+# define MCI_DMA_OFFSET(x)	((x) <<  0)	/* DMA Write Buffer Offset */
-+# define MCI_DMA_CHKSIZE(x)	((x) <<  4)	/* DMA Channel Read and Write Chunk Size */
-+# define MCI_DMAEN		(  1 <<  8)	/* DMA Hardware Handshaking Enable */
-+#define MCI_CFG			0x0054	/* Configuration[2] */
-+# define MCI_CFG_FIFOMODE_1DATA	(  1 <<  0)	/* MCI Internal FIFO control mode */
-+# define MCI_CFG_FERRCTRL_COR	(  1 <<  4)	/* Flow Error flag reset control mode */
-+# define MCI_CFG_HSMODE		(  1 <<  8)	/* High Speed Mode */
-+# define MCI_CFG_LSYNC		(  1 << 12)	/* Synchronize on the last block */
-+#define MCI_WPMR		0x00e4	/* Write Protection Mode[2] */
-+# define MCI_WP_EN		(  1 <<  0)	/* WP Enable */
-+# define MCI_WP_KEY		(0x4d4349 << 8)	/* WP Key */
-+#define MCI_WPSR		0x00e8	/* Write Protection Status[2] */
-+# define MCI_GET_WP_VS(x)	((x) & 0x0f)
-+# define MCI_GET_WP_VSRC(x)	(((x) >> 8) & 0xffff)
-+#define MCI_FIFO_APERTURE	0x0200	/* FIFO Aperture[2] */
- 
-+/* This is not including the FIFO Aperture on MCI2 */
- #define MCI_REGS_SIZE		0x100
- 
- /* Register access macros */
-Index: linux-2.6.30/drivers/mmc/host/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/mmc/host/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/mmc/host/Kconfig	2011-02-01 16:40:30.157049210 +0100
-@@ -124,6 +124,12 @@
- 
- 	  If unsure, say N.
- 
-+choice
-+	prompt "Atmel SD/MMC Driver"
-+	default MMC_ATMELMCI if AVR32
-+	help
-+	  Choose which driver to use for the Atmel MCI Silicon
-+
- config MMC_AT91
- 	tristate "AT91 SD/MMC Card Interface support"
- 	depends on ARCH_AT91
-@@ -134,17 +140,19 @@
- 
- config MMC_ATMELMCI
- 	tristate "Atmel Multimedia Card Interface support"
--	depends on AVR32
-+	depends on AVR32 || ARCH_AT91
- 	help
- 	  This selects the Atmel Multimedia Card Interface driver. If
--	  you have an AT32 (AVR32) platform with a Multimedia Card
--	  slot, say Y or M here.
-+	  you have an AT32 (AVR32) or AT91 platform with a Multimedia
-+	  Card slot, say Y or M here.
- 
- 	  If unsure, say N.
- 
-+endchoice
-+
- config MMC_ATMELMCI_DMA
- 	bool "Atmel MCI DMA support (EXPERIMENTAL)"
--	depends on MMC_ATMELMCI && DMA_ENGINE && EXPERIMENTAL
-+	depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE && EXPERIMENTAL
- 	help
- 	  Say Y here to have the Atmel MCI driver use a DMA engine to
- 	  do data transfers and thus increase the throughput and
-Index: linux-2.6.30/drivers/mmc/host/atmel-mci.c
-===================================================================
---- linux-2.6.30.orig/drivers/mmc/host/atmel-mci.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/mmc/host/atmel-mci.c	2011-02-01 16:40:30.161007816 +0100
-@@ -7,6 +7,10 @@
-  * it under the terms of the GNU General Public License version 2 as
-  * published by the Free Software Foundation.
-  */
-+
-+/* High speed mode setting on host & SD card */
-+/*#define AT91_HSMODE	1*/
-+
- #include <linux/blkdev.h>
- #include <linux/clk.h>
- #include <linux/debugfs.h>
-@@ -30,6 +34,7 @@
- #include <asm/io.h>
- #include <asm/unaligned.h>
- 
-+#include <mach/cpu.h>
- #include <mach/board.h>
- 
- #include "atmel-mci-regs.h"
-@@ -91,6 +96,7 @@
-  * @need_clock_update: Update the clock rate before the next request.
-  * @need_reset: Reset controller before next request.
-  * @mode_reg: Value of the MR register.
-+ * @cfg_reg: Value of the CFG register.
-  * @bus_hz: The rate of @mck in Hz. This forms the basis for MMC bus
-  *	rate and timeout calculations.
-  * @mapbase: Physical address of the MMIO registers.
-@@ -154,6 +160,7 @@
- 	bool			need_clock_update;
- 	bool			need_reset;
- 	u32			mode_reg;
-+	u32			cfg_reg;
- 	unsigned long		bus_hz;
- 	unsigned long		mapbase;
- 	struct clk		*mck;
-@@ -208,6 +215,31 @@
- 	set_bit(event, &host->pending_events)
- 
- /*
-+ * Enable or disable features/registers based on
-+ * whether the processor supports them
-+ */
-+static bool mci_has_rwproof(void)
-+{
-+	if (cpu_is_at91sam9261() || cpu_is_at91rm9200())
-+		return false;
-+	else
-+		return true;
-+}
-+
-+/*
-+ * The new MCI2 module isn't 100% compatible with the old MCI module,
-+ * and it has a few nice features which we want to use...
-+ */
-+static inline bool atmci_is_mci2(void)
-+{
-+	if (cpu_is_at91sam9g45())
-+		return true;
-+
-+	return false;
-+}
-+
-+
-+/*
-  * The debugfs stuff below is mostly optimized away when
-  * CONFIG_DEBUG_FS is not set.
-  */
-@@ -274,8 +306,13 @@
- 		[3]	= "BLKE",
- 		[4]	= "DTIP",
- 		[5]	= "NOTBUSY",
-+		[6]	= "ENDRX",
-+		[7]	= "ENDTX",
- 		[8]	= "SDIOIRQA",
- 		[9]	= "SDIOIRQB",
-+		[12]	= "SDIOWAIT",
-+		[14]	= "RXBUFF",
-+		[15]	= "TXBUFE",
- 		[16]	= "RINDE",
- 		[17]	= "RDIRE",
- 		[18]	= "RCRCE",
-@@ -283,6 +320,11 @@
- 		[20]	= "RTOE",
- 		[21]	= "DCRCE",
- 		[22]	= "DTOE",
-+		[23]	= "CSTOE",
-+		[24]	= "BLKOVRE",
-+		[25]	= "DMADONE",
-+		[26]	= "FIFOEMPTY",
-+		[27]	= "XFRDONE",
- 		[30]	= "OVRE",
- 		[31]	= "UNRE",
- 	};
-@@ -332,12 +374,33 @@
- 			buf[MCI_BLKR / 4],
- 			buf[MCI_BLKR / 4] & 0xffff,
- 			(buf[MCI_BLKR / 4] >> 16) & 0xffff);
-+	if (atmci_is_mci2())
-+		seq_printf(s, "CSTOR:\t0x%08x\n", buf[MCI_CSTOR / 4]);
- 
- 	/* Don't read RSPR and RDR; it will consume the data there */
- 
- 	atmci_show_status_reg(s, "SR", buf[MCI_SR / 4]);
- 	atmci_show_status_reg(s, "IMR", buf[MCI_IMR / 4]);
- 
-+	if (atmci_is_mci2()) {
-+		u32 val;
-+
-+		val = buf[MCI_DMA / 4];
-+		seq_printf(s, "DMA:\t0x%08x OFFSET=%u CHKSIZE=%u%s\n",
-+				val, val & 3,
-+				((val >> 4) & 3) ?
-+					1 << (((val >> 4) & 3) + 1) : 1,
-+				val & MCI_DMAEN ? " DMAEN" : "");
-+
-+		val = buf[MCI_CFG / 4];
-+		seq_printf(s, "CFG:\t0x%08x%s%s%s%s\n",
-+				val,
-+				val & MCI_CFG_FIFOMODE_1DATA ? " FIFOMODE_ONE_DATA" : "",
-+				val & MCI_CFG_FERRCTRL_COR ? " FERRCTRL_CLEAR_ON_READ" : "",
-+				val & MCI_CFG_HSMODE ? " HSMODE" : "",
-+				val & MCI_CFG_LSYNC ? " LSYNC" : "");
-+	}
-+
- 	kfree(buf);
- 
- 	return 0;
-@@ -532,6 +595,10 @@
- 
- 	dev_vdbg(&host->pdev->dev, "DMA complete\n");
- 
-+	if (atmci_is_mci2())
-+		/* Disable DMA hardware handshaking on MCI */
-+		mci_writel(host, DMA, mci_readl(host, DMA) & ~MCI_DMAEN);
-+
- 	atmci_dma_cleanup(host);
- 
- 	/*
-@@ -567,13 +634,14 @@
- }
- 
- static int
--atmci_submit_data_dma(struct atmel_mci *host, struct mmc_data *data)
-+atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
- {
- 	struct dma_chan			*chan;
- 	struct dma_async_tx_descriptor	*desc;
- 	struct scatterlist		*sg;
- 	unsigned int			i;
- 	enum dma_data_direction		direction;
-+	unsigned int			sglen;
- 
- 	/*
- 	 * We don't do DMA on "complex" transfers, i.e. with
-@@ -598,35 +666,54 @@
- 	if (!chan)
- 		return -ENODEV;
- 
-+	if (atmci_is_mci2())
-+		mci_writel(host, DMA, MCI_DMA_CHKSIZE(3) | MCI_DMAEN);
-+
- 	if (data->flags & MMC_DATA_READ)
- 		direction = DMA_FROM_DEVICE;
- 	else
- 		direction = DMA_TO_DEVICE;
- 
-+	sglen = dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, direction);
-+	if (sglen != data->sg_len)
-+		goto unmap_exit;
-+
- 	desc = chan->device->device_prep_slave_sg(chan,
- 			data->sg, data->sg_len, direction,
- 			DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
- 	if (!desc)
--		return -ENOMEM;
-+		goto unmap_exit;
- 
- 	host->dma.data_desc = desc;
- 	desc->callback = atmci_dma_complete;
- 	desc->callback_param = host;
--	desc->tx_submit(desc);
--
--	/* Go! */
--	chan->device->device_issue_pending(chan);
- 
- 	return 0;
-+unmap_exit:
-+	dma_unmap_sg(&host->pdev->dev, data->sg, sglen, direction);
-+	return -ENOMEM;
-+}
-+
-+static void atmci_submit_data(struct atmel_mci *host)
-+{
-+	struct dma_chan			*chan = host->data_chan;
-+	struct dma_async_tx_descriptor	*desc = host->dma.data_desc;
-+
-+	if (chan) {
-+		desc->tx_submit(desc);
-+		chan->device->device_issue_pending(chan);
-+	}
- }
- 
- #else /* CONFIG_MMC_ATMELMCI_DMA */
- 
--static int atmci_submit_data_dma(struct atmel_mci *host, struct mmc_data *data)
-+static int atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
- {
- 	return -ENOSYS;
- }
- 
-+static void atmci_submit_data(struct atmel_mci *host) {}
-+
- static void atmci_stop_dma(struct atmel_mci *host)
- {
- 	/* Data transfer was stopped by the interrupt handler */
-@@ -640,7 +727,7 @@
-  * Returns a mask of interrupt flags to be enabled after the whole
-  * request has been prepared.
-  */
--static u32 atmci_submit_data(struct atmel_mci *host, struct mmc_data *data)
-+static u32 atmci_prepare_data(struct atmel_mci *host, struct mmc_data *data)
- {
- 	u32 iflags;
- 
-@@ -651,7 +738,7 @@
- 	host->data = data;
- 
- 	iflags = ATMCI_DATA_ERROR_FLAGS;
--	if (atmci_submit_data_dma(host, data)) {
-+	if (atmci_prepare_data_dma(host, data)) {
- 		host->data_chan = NULL;
- 
- 		/*
-@@ -697,6 +784,8 @@
- 		mci_writel(host, CR, MCI_CR_SWRST);
- 		mci_writel(host, CR, MCI_CR_MCIEN);
- 		mci_writel(host, MR, host->mode_reg);
-+		if (atmci_is_mci2())
-+			mci_writel(host, CFG, host->cfg_reg);
- 		host->need_reset = false;
- 	}
- 	mci_writel(host, SDCR, slot->sdc_reg);
-@@ -712,6 +801,7 @@
- 		while (!(mci_readl(host, SR) & MCI_CMDRDY))
- 			cpu_relax();
- 	}
-+	iflags = 0;
- 	data = mrq->data;
- 	if (data) {
- 		atmci_set_timeout(host, slot, data);
-@@ -721,15 +811,17 @@
- 				| MCI_BLKLEN(data->blksz));
- 		dev_vdbg(&slot->mmc->class_dev, "BLKR=0x%08x\n",
- 			MCI_BCNT(data->blocks) | MCI_BLKLEN(data->blksz));
-+
-+		iflags |= atmci_prepare_data(host, data);
- 	}
- 
--	iflags = MCI_CMDRDY;
-+	iflags |= MCI_CMDRDY;
- 	cmd = mrq->cmd;
- 	cmdflags = atmci_prepare_command(slot->mmc, cmd);
- 	atmci_start_command(host, cmd, cmdflags);
- 
- 	if (data)
--		iflags |= atmci_submit_data(host, data);
-+		atmci_submit_data(host);
- 
- 	if (mrq->stop) {
- 		host->stop_cmdr = atmci_prepare_command(slot->mmc, mrq->stop);
-@@ -825,6 +917,8 @@
- 			clk_enable(host->mck);
- 			mci_writel(host, CR, MCI_CR_SWRST);
- 			mci_writel(host, CR, MCI_CR_MCIEN);
-+			if (atmci_is_mci2())
-+				mci_writel(host, CFG, host->cfg_reg);
- 		}
- 
- 		/*
-@@ -847,18 +941,56 @@
- 			clkdiv = 255;
- 		}
- 
-+#if defined(AT91_HSMODE)
-+		/* Not needed for normal operation previous calculation
-+		 * takes 50MHz into account */
-+#if 0
-+		/* fake clkdiv for tests @ 16,6MHz || 12,5MHz */
-+		if (ios->clock >= 25000000) {
-+			clkdiv = 3;
-+		}
-+#endif
-+#if 0
-+		/* fake clkdiv for tests @ 33MHz || 25MHz */
-+		if (ios->clock >= 25000000) {
-+			clkdiv = 1;
-+		}
-+#endif
-+#if 0
-+		/* fake clkdiv for tests @ 66MHz || 50MHz */
-+		if (ios->clock >= 25000000) {
-+			clkdiv = 0;
-+		}
-+#endif
-+#endif
-+
-+		host->mode_reg = MCI_MR_CLKDIV(clkdiv);
-+
- 		/*
- 		 * WRPROOF and RDPROOF prevent overruns/underruns by
- 		 * stopping the clock when the FIFO is full/empty.
- 		 * This state is not expected to last for long.
- 		 */
--		host->mode_reg = MCI_MR_CLKDIV(clkdiv) | MCI_MR_WRPROOF
--					| MCI_MR_RDPROOF;
-+		if (mci_has_rwproof())
-+			host->mode_reg |= (MCI_MR_WRPROOF | MCI_MR_RDPROOF);
- 
--		if (list_empty(&host->queue))
-+#if defined(AT91_HSMODE)
-+		if (atmci_is_mci2()) {
-+			/* setup High Speed mode in relation with card capacity */
-+			if (ios->timing == MMC_TIMING_SD_HS)
-+				host->cfg_reg |= MCI_CFG_HSMODE;
-+			else
-+				host->cfg_reg &= ~MCI_CFG_HSMODE;
-+		}
-+#endif
-+
-+		if (list_empty(&host->queue)) {
- 			mci_writel(host, MR, host->mode_reg);
--		else
-+			if (atmci_is_mci2())
-+				mci_writel(host, CFG, host->cfg_reg);
-+		} else {
- 			host->need_clock_update = true;
-+		}
- 
- 		spin_unlock_bh(&host->lock);
- 	} else {
-@@ -954,8 +1086,11 @@
- 	 * necessary if set_ios() is called when a different slot is
- 	 * busy transfering data.
- 	 */
--	if (host->need_clock_update)
-+	if (host->need_clock_update) {
- 		mci_writel(host, MR, host->mode_reg);
-+		if (atmci_is_mci2())
-+			mci_writel(host, CFG, host->cfg_reg);
-+	}
- 
- 	host->cur_slot->mrq = NULL;
- 	host->mrq = NULL;
-@@ -1059,6 +1194,8 @@
- 				mci_writel(host, CR, MCI_CR_SWRST);
- 				mci_writel(host, CR, MCI_CR_MCIEN);
- 				mci_writel(host, MR, host->mode_reg);
-+				if (atmci_is_mci2())
-+					mci_writel(host, CFG, host->cfg_reg);
- 
- 				host->data = NULL;
- 				host->cmd = NULL;
-@@ -1462,6 +1599,10 @@
- 	mmc->f_min = DIV_ROUND_UP(host->bus_hz, 512);
- 	mmc->f_max = host->bus_hz / 2;
- 	mmc->ocr_avail	= MMC_VDD_32_33 | MMC_VDD_33_34;
-+#if defined(AT91_HSMODE)
-+	if (atmci_is_mci2())
-+		mmc->caps |= MMC_CAP_SD_HIGHSPEED;
-+#endif
- 	if (slot_data->bus_width >= 4)
- 		mmc->caps |= MMC_CAP_4_BIT_DATA;
- 
-@@ -1544,16 +1685,75 @@
- }
- 
- #ifdef CONFIG_MMC_ATMELMCI_DMA
--static bool filter(struct dma_chan *chan, void *slave)
-+static struct device *find_slave_dev(void *slave)
- {
--	struct dw_dma_slave *dws = slave;
-+	if (!slave)
-+		return NULL;
-+
-+	if (cpu_is_at32ap7000())
-+		return ((struct dw_dma_slave *)slave)->dma_dev;
-+	else
-+		return ((struct at_dma_slave *)slave)->dma_dev;
-+}
- 
--	if (dws->dma_dev == chan->device->dev) {
--		chan->private = dws;
-+static void setup_dma_addr(struct mci_platform_data *pdata,
-+			dma_addr_t tx_addr, dma_addr_t rx_addr)
-+{
-+	if (!pdata)
-+		return;
-+
-+	if (cpu_is_at32ap7000()) {
-+		struct dw_dma_slave *dws = pdata->dma_slave;
-+
-+		dws->tx_reg = tx_addr;
-+		dws->rx_reg = rx_addr;
-+	} else {
-+		struct at_dma_slave *ats = pdata->dma_slave;
-+
-+		ats->tx_reg = tx_addr;
-+		ats->rx_reg = rx_addr;
-+	}
-+}
-+
-+static bool filter(struct dma_chan *chan, void *slave)
-+{
-+	if (find_slave_dev(slave) == chan->device->dev) {
-+		chan->private = slave;
- 		return true;
--	} else
-+	} else {
- 		return false;
-+	}
- }
-+
-+static void atmci_configure_dma(struct atmel_mci *host)
-+{
-+	struct mci_platform_data	*pdata;
-+
-+	if (host == NULL)
-+		return;
-+
-+	pdata = host->pdev->dev.platform_data;
-+
-+	if (pdata && find_slave_dev(pdata->dma_slave)) {
-+		dma_cap_mask_t mask;
-+
-+		setup_dma_addr(pdata, host->mapbase + MCI_TDR,
-+				      host->mapbase + MCI_RDR);
-+
-+		/* Try to grab a DMA channel */
-+		dma_cap_zero(mask);
-+		dma_cap_set(DMA_SLAVE, mask);
-+		host->dma.chan = dma_request_channel(mask, filter, pdata->dma_slave);
-+	}
-+	if (!host->dma.chan)
-+		dev_notice(&host->pdev->dev, "DMA not available, using PIO\n");
-+	else
-+		dev_info(&host->pdev->dev,
-+					"Using %s for DMA transfers\n",
-+					dma_chan_name(host->dma.chan));
-+}
-+#else
-+static void atmci_configure_dma(struct atmel_mci *host) {}
- #endif
- 
- static int __init atmci_probe(struct platform_device *pdev)
-@@ -1607,22 +1807,7 @@
- 	if (ret)
- 		goto err_request_irq;
- 
--#ifdef CONFIG_MMC_ATMELMCI_DMA
--	if (pdata->dma_slave.dma_dev) {
--		struct dw_dma_slave *dws = &pdata->dma_slave;
--		dma_cap_mask_t mask;
--
--		dws->tx_reg = regs->start + MCI_TDR;
--		dws->rx_reg = regs->start + MCI_RDR;
--
--		/* Try to grab a DMA channel */
--		dma_cap_zero(mask);
--		dma_cap_set(DMA_SLAVE, mask);
--		host->dma.chan = dma_request_channel(mask, filter, dws);
--	}
--	if (!host->dma.chan)
--		dev_notice(&pdev->dev, "DMA not available, using PIO\n");
--#endif /* CONFIG_MMC_ATMELMCI_DMA */
-+	atmci_configure_dma(host);
- 
- 	platform_set_drvdata(pdev, host);
- 
-@@ -1642,8 +1827,10 @@
- 			nr_slots++;
- 	}
- 
--	if (!nr_slots)
-+	if (!nr_slots) {
-+		dev_err(&pdev->dev, "init failed: no slot defined\n");
- 		goto err_init_slot;
-+	}
- 
- 	dev_info(&pdev->dev,
- 			"Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
-Index: linux-2.6.30/arch/arm/mach-at91/at91sam9260_devices.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/at91sam9260_devices.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/at91sam9260_devices.c	2011-02-01 16:40:30.152108635 +0100
-@@ -424,6 +424,102 @@
- void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
- #endif
- 
-+/* --------------------------------------------------------------------
-+ *  MMC / SD Slot for Atmel MCI Driver
-+ * -------------------------------------------------------------------- */
-+
-+#if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE)
-+static u64 mmc_dmamask = DMA_BIT_MASK(32);
-+static struct mci_platform_data mmc_data;
-+
-+static struct resource mmc_resources[] = {
-+	[0] = {
-+		.start	= AT91SAM9260_BASE_MCI,
-+		.end	= AT91SAM9260_BASE_MCI + SZ_16K - 1,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	[1] = {
-+		.start	= AT91SAM9260_ID_MCI,
-+		.end	= AT91SAM9260_ID_MCI,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+};
-+
-+static struct platform_device at91sam9260_mmc_device = {
-+	.name		= "atmel_mci",
-+	.id		= -1,
-+	.dev		= {
-+				.dma_mask		= &mmc_dmamask,
-+				.coherent_dma_mask	= DMA_BIT_MASK(32),
-+				.platform_data		= &mmc_data,
-+	},
-+	.resource	= mmc_resources,
-+	.num_resources	= ARRAY_SIZE(mmc_resources),
-+};
-+
-+void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data)
-+{
-+	unsigned int i;
-+	unsigned int slot_count = 0;
-+
-+	if (!data)
-+		return;
-+
-+	for (i = 0; i < ATMEL_MCI_MAX_NR_SLOTS; i++) {
-+		if (data->slot[i].bus_width) {
-+			/* input/irq */
-+			if (data->slot[i].detect_pin) {
-+				at91_set_gpio_input(data->slot[i].detect_pin, 1);
-+				at91_set_deglitch(data->slot[i].detect_pin, 1);
-+			}
-+			if (data->slot[i].wp_pin)
-+				at91_set_gpio_input(data->slot[i].wp_pin, 1);
-+
-+			switch(i) {
-+			case 0:
-+				/* CMD */
-+				at91_set_A_periph(AT91_PIN_PA7, 1);
-+				/* DAT0, maybe DAT1..DAT3 */
-+				at91_set_A_periph(AT91_PIN_PA6, 1);
-+				if (data->slot[i].bus_width == 4) {
-+					at91_set_A_periph(AT91_PIN_PA9, 1);
-+					at91_set_A_periph(AT91_PIN_PA10, 1);
-+					at91_set_A_periph(AT91_PIN_PA11, 1);
-+				}
-+				slot_count++;
-+				break;
-+			case 1:
-+				/* CMD */
-+				at91_set_B_periph(AT91_PIN_PA1, 1);
-+				/* DAT0, maybe DAT1..DAT3 */
-+				at91_set_B_periph(AT91_PIN_PA0, 1);
-+				if (data->slot[i].bus_width == 4) {
-+					at91_set_B_periph(AT91_PIN_PA5, 1);
-+					at91_set_B_periph(AT91_PIN_PA4, 1);
-+					at91_set_B_periph(AT91_PIN_PA3, 1);
-+				}
-+				slot_count++;
-+				break;
-+			default:
-+				printk(KERN_ERR
-+					"AT91: SD/MMC slot %d not available\n", i);
-+				break;
-+			}
-+		}
-+	}
-+
-+	if (slot_count) {
-+		/* CLK */
-+		at91_set_A_periph(AT91_PIN_PA8, 0);
-+
-+		mmc_data = *data;
-+		platform_device_register(&at91sam9260_mmc_device);
-+	}
-+}
-+#else
-+void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *data) {}
-+#endif
-+
- 
- /* --------------------------------------------------------------------
-  *  NAND / SmartMedia
-Index: linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c	2011-02-01 16:40:30.193007582 +0100
-@@ -0,0 +1,338 @@
-+/*
-+ *  Copyright (C) 2005 SAN People
-+ *  Copyright (C) 2008 Atmel
-+ *  Copyright (C) 2009 Rob Emanuele
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/init.h>
-+#include <linux/mm.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <linux/spi/spi.h>
-+#include <linux/spi/at73c213.h>
-+#include <linux/clk.h>
-+
-+#include <mach/hardware.h>
-+#include <asm/setup.h>
-+#include <asm/mach-types.h>
-+#include <asm/irq.h>
-+
-+#include <asm/mach/arch.h>
-+#include <asm/mach/map.h>
-+#include <asm/mach/irq.h>
-+
-+#include <mach/board.h>
-+#include <mach/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
-+#include <mach/at91sam9_smc.h>
-+
-+#include "sam9_smc.h"
-+#include "generic.h"
-+
-+
-+static void __init ek_map_io(void)
-+{
-+	/* Initialize processor: 18.432 MHz crystal */
-+	at91sam9260_initialize(18432000);
-+
-+	/* DGBU on ttyS0. (Rx & Tx only) */
-+	at91_register_uart(0, 0, 0);
-+
-+	/* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
-+	at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
-+			   | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
-+			   | ATMEL_UART_RI);
-+
-+	/* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
-+	at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
-+
-+	/* set serial console to ttyS0 (ie, DBGU) */
-+	at91_set_serial_console(0);
-+}
-+
-+static void __init ek_init_irq(void)
-+{
-+	at91sam9260_init_interrupts(NULL);
-+}
-+
-+
-+/*
-+ * USB Host port
-+ */
-+static struct at91_usbh_data __initdata ek_usbh_data = {
-+	.ports		= 2,
-+};
-+
-+/*
-+ * USB Device port
-+ */
-+static struct at91_udc_data __initdata ek_udc_data = {
-+	.vbus_pin	= AT91_PIN_PC5,
-+	.pullup_pin	= 0,		/* pull-up driven by UDC */
-+};
-+
-+
-+/*
-+ * SPI devices.
-+ */
-+static struct spi_board_info ek_spi_devices[] = {
-+#if !(defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_AT91))
-+	{	/* DataFlash chip */
-+		.modalias	= "mtd_dataflash",
-+		.chip_select	= 1,
-+		.max_speed_hz	= 15 * 1000 * 1000,
-+		.bus_num	= 0,
-+	},
-+#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
-+	{	/* DataFlash card */
-+		.modalias	= "mtd_dataflash",
-+		.chip_select	= 0,
-+		.max_speed_hz	= 15 * 1000 * 1000,
-+		.bus_num	= 0,
-+	},
-+#endif
-+#endif
-+};
-+
-+
-+/*
-+ * MACB Ethernet device
-+ */
-+static struct at91_eth_data __initdata ek_macb_data = {
-+	.phy_irq_pin	= AT91_PIN_PB0,
-+	.is_rmii	= 1,
-+};
-+
-+
-+/*
-+ * NAND flash
-+ */
-+static struct mtd_partition __initdata ek_nand_partition[] = {
-+	{
-+		.name   = "Bootstrap",
-+		.offset = 0,
-+		.size   = 4 * SZ_1M,
-+	},
-+	{
-+		.name	= "Partition 1",
-+		.offset	= MTDPART_OFS_NXTBLK,
-+		.size	= 60 * SZ_1M,
-+	},
-+	{
-+		.name	= "Partition 2",
-+		.offset	= MTDPART_OFS_NXTBLK,
-+		.size	= MTDPART_SIZ_FULL,
-+	},
-+};
-+
-+static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
-+{
-+	*num_partitions = ARRAY_SIZE(ek_nand_partition);
-+	return ek_nand_partition;
-+}
-+
-+/* det_pin is not connected */
-+static struct atmel_nand_data __initdata ek_nand_data = {
-+	.ale		= 21,
-+	.cle		= 22,
-+	.rdy_pin	= AT91_PIN_PC13,
-+	.enable_pin	= AT91_PIN_PC14,
-+	.partition_info	= nand_partitions,
-+#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
-+	.bus_width_16	= 1,
-+#else
-+	.bus_width_16	= 0,
-+#endif
-+};
-+
-+static struct sam9_smc_config __initdata ek_nand_smc_config = {
-+	.ncs_read_setup		= 0,
-+	.nrd_setup		= 2,
-+	.ncs_write_setup	= 0,
-+	.nwe_setup		= 2,
-+
-+	.ncs_read_pulse		= 4,
-+	.nrd_pulse		= 4,
-+	.ncs_write_pulse	= 4,
-+	.nwe_pulse		= 4,
-+
-+	.read_cycle		= 7,
-+	.write_cycle		= 7,
-+
-+	.mode			= AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE,
-+	.tdf_cycles		= 3,
-+};
-+
-+static void __init ek_add_device_nand(void)
-+{
-+	/* setup bus-width (8 or 16) */
-+	if (ek_nand_data.bus_width_16)
-+		ek_nand_smc_config.mode |= AT91_SMC_DBW_16;
-+	else
-+		ek_nand_smc_config.mode |= AT91_SMC_DBW_8;
-+
-+	/* configure chip-select 3 (NAND) */
-+	sam9_smc_configure(3, &ek_nand_smc_config);
-+
-+	at91_add_device_nand(&ek_nand_data);
-+}
-+
-+
-+/*
-+ * MCI (SD/MMC)
-+ * wp_pin is not connected
-+ */
-+#if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE)
-+static struct mci_platform_data __initdata ek_mmc_data = {
-+	.slot[0] = {
-+		.bus_width	= 4,
-+		.detect_pin	= AT91_PIN_PC2,
-+		.wp_pin		= -ENODEV,
-+	},
-+	.slot[1] = {
-+		.bus_width	= 4,
-+		.detect_pin	= AT91_PIN_PC9,
-+		.wp_pin		= -ENODEV,
-+	},
-+
-+};
-+#else
-+static struct at91_mmc_data __initdata ek_mmc_data = {
-+	.slot_b		= 1,	/* Only one slot so use slot B */
-+	.wire4		= 1,
-+	.det_pin	= AT91_PIN_PC9,
-+};
-+#endif
-+
-+/*
-+ * LEDs
-+ */
-+static struct gpio_led ek_leds[] = {
-+	{	/* "bottom" led, green, userled1 to be defined */
-+		.name			= "ds5",
-+		.gpio			= AT91_PIN_PB8,
-+		.active_low		= 1,
-+		.default_trigger	= "none",
-+	},
-+	{	/* "power" led, yellow */
-+		.name			= "ds1",
-+		.gpio			= AT91_PIN_PB9,
-+		.default_trigger	= "heartbeat",
-+	}
-+};
-+
-+/*
-+ * GPIO Buttons
-+ */
-+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
-+static struct gpio_keys_button ek_buttons[] = {
-+	{
-+		.gpio		= AT91_PIN_PA30,
-+		.code		= BTN_3,
-+		.desc		= "Button 3",
-+		.active_low	= 1,
-+		.wakeup		= 1,
-+	},
-+	{
-+		.gpio		= AT91_PIN_PA31,
-+		.code		= BTN_4,
-+		.desc		= "Button 4",
-+		.active_low	= 1,
-+		.wakeup		= 1,
-+	}
-+};
-+
-+static struct gpio_keys_platform_data ek_button_data = {
-+	.buttons	= ek_buttons,
-+	.nbuttons	= ARRAY_SIZE(ek_buttons),
-+};
-+
-+static struct platform_device ek_button_device = {
-+	.name		= "gpio-keys",
-+	.id		= -1,
-+	.num_resources	= 0,
-+	.dev		= {
-+		.platform_data	= &ek_button_data,
-+	}
-+};
-+
-+static void __init ek_add_device_buttons(void)
-+{
-+	at91_set_gpio_input(AT91_PIN_PA30, 1);	/* btn3 */
-+	at91_set_deglitch(AT91_PIN_PA30, 1);
-+	at91_set_gpio_input(AT91_PIN_PA31, 1);	/* btn4 */
-+	at91_set_deglitch(AT91_PIN_PA31, 1);
-+
-+	platform_device_register(&ek_button_device);
-+}
-+#else
-+static void __init ek_add_device_buttons(void) {}
-+#endif
-+
-+
-+static struct i2c_board_info __initdata ek_i2c_devices[] = {
-+	{
-+		I2C_BOARD_INFO("24c512", 0x50),
-+		I2C_BOARD_INFO("wm8731", 0x1b),
-+	},
-+};
-+
-+
-+static void __init ek_board_init(void)
-+{
-+	/* Serial */
-+	at91_add_device_serial();
-+	/* USB Host */
-+	at91_add_device_usbh(&ek_usbh_data);
-+	/* USB Device */
-+	at91_add_device_udc(&ek_udc_data);
-+	/* SPI */
-+	at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
-+	/* NAND */
-+	ek_add_device_nand();
-+	/* Ethernet */
-+	at91_add_device_eth(&ek_macb_data);
-+	/* MMC */
-+#if defined(CONFIG_MMC_ATMELMCI) || defined(CONFIG_MMC_ATMELMCI_MODULE)
-+	at91_add_device_mci(0, &ek_mmc_data);
-+#else
-+	at91_add_device_mmc(0, &ek_mmc_data);
-+#endif
-+	/* I2C */
-+	at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
-+	/* LEDs */
-+	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
-+	/* Push Buttons */
-+	ek_add_device_buttons();
-+	/* PCK0 provides MCLK to the WM8731 */
-+	at91_set_B_periph(AT91_PIN_PC1, 0);
-+	/* SSC (for WM8731) */
-+	at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX);
-+}
-+
-+MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod")
-+	/* Maintainer: Rob Emanuele */
-+	.phys_io	= AT91_BASE_SYS,
-+	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
-+	.boot_params	= AT91_SDRAM_BASE + 0x100,
-+	.timer		= &at91sam926x_timer,
-+	.map_io		= ek_map_io,
-+	.init_irq	= ek_init_irq,
-+	.init_machine	= ek_board_init,
-+MACHINE_END
-Index: linux-2.6.30/arch/avr32/mach-at32ap/at32ap700x.c
-===================================================================
---- linux-2.6.30.orig/arch/avr32/mach-at32ap/at32ap700x.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/avr32/mach-at32ap/at32ap700x.c	2011-02-01 16:40:30.157049210 +0100
-@@ -1320,7 +1320,7 @@
- at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
- {
- 	struct platform_device		*pdev;
--	struct dw_dma_slave		*dws = &data->dma_slave;
-+	struct dw_dma_slave		*dws;
- 	u32				pioa_mask;
- 	u32				piob_mask;
- 
-@@ -1339,6 +1339,8 @@
- 				ARRAY_SIZE(atmel_mci0_resource)))
- 		goto fail;
- 
-+	dws = kzalloc(sizeof(struct dw_dma_slave), GFP_KERNEL);
-+
- 	dws->dma_dev = &dw_dmac0_device.dev;
- 	dws->reg_width = DW_DMA_SLAVE_WIDTH_32BIT;
- 	dws->cfg_hi = (DWC_CFGH_SRC_PER(0)
-@@ -1346,6 +1348,8 @@
- 	dws->cfg_lo &= ~(DWC_CFGL_HS_DST_POL
- 				| DWC_CFGL_HS_SRC_POL);
- 
-+	data->dma_slave = dws;
-+
- 	if (platform_device_add_data(pdev, data,
- 				sizeof(struct mci_platform_data)))
- 		goto fail;
-Index: linux-2.6.30/include/linux/atmel-mci.h
-===================================================================
---- linux-2.6.30.orig/include/linux/atmel-mci.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/include/linux/atmel-mci.h	2011-02-01 16:40:30.157049210 +0100
-@@ -4,6 +4,7 @@
- #define ATMEL_MCI_MAX_NR_SLOTS	2
- 
- #include <linux/dw_dmac.h>
-+#include <mach/at_hdmac.h>
- 
- /**
-  * struct mci_slot_pdata - board-specific per-slot configuration
-@@ -32,7 +33,7 @@
-  * @slot: Per-slot configuration data.
-  */
- struct mci_platform_data {
--	struct dw_dma_slave	dma_slave;
-+	void			*dma_slave;
- 	struct mci_slot_pdata	slot[ATMEL_MCI_MAX_NR_SLOTS];
- };
- 
-Index: linux-2.6.30/drivers/mmc/host/at91_mci.c
-===================================================================
---- linux-2.6.30.orig/drivers/mmc/host/at91_mci.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/mmc/host/at91_mci.c	2011-02-01 16:40:30.161007816 +0100
-@@ -79,6 +79,17 @@
- 
- #define DRIVER_NAME "at91_mci"
- 
-+static inline int at91mci_is_mci1rev2xx(void)
-+{
-+	return (   cpu_is_at91sam9260()
-+		|| cpu_is_at91sam9263()
-+		|| cpu_is_at91cap9()
-+		|| cpu_is_at91sam9rl()
-+		|| cpu_is_at91sam9g10()
-+		|| cpu_is_at91sam9g20()
-+		);
-+}
-+
- #define FL_SENT_COMMAND	(1 << 0)
- #define FL_SENT_STOP	(1 << 1)
- 
-@@ -201,8 +212,8 @@
- 	size = data->blksz * data->blocks;
- 	len = data->sg_len;
- 
--	/* AT91SAM926[0/3] Data Write Operation and number of bytes erratum */
--	if (cpu_is_at91sam9260() || cpu_is_at91sam9263() || cpu_is_at91sam9g20())
-+	/* at91mci MCI1 rev2xx Data Write Operation and number of bytes erratum */
-+	if (at91mci_is_mci1rev2xx())
- 		if (host->total_length == 12)
- 			memset(dmabuf, 0, 12);
- 
-@@ -462,7 +473,7 @@
- 	at91_mci_write(host, AT91_MCI_DTOR, AT91_MCI_DTOMUL_1M | AT91_MCI_DTOCYC);
- 	mr = AT91_MCI_PDCMODE | 0x34a;
- 
--	if (cpu_is_at91sam9260() || cpu_is_at91sam9263() || cpu_is_at91sam9g20())
-+	if (at91mci_is_mci1rev2xx())
- 		mr |= AT91_MCI_RDPROOF | AT91_MCI_WRPROOF;
- 
- 	at91_mci_write(host, AT91_MCI_MR, mr);
-@@ -615,10 +626,10 @@
- 				 */
- 				host->total_length = block_length * blocks;
- 				/*
--				 * AT91SAM926[0/3] Data Write Operation and
-+				 * at91mci MCI1 rev2xx Data Write Operation and
- 				 * number of bytes erratum
- 				 */
--				if (cpu_is_at91sam9260 () || cpu_is_at91sam9263() || cpu_is_at91sam9g20())
-+				if (at91mci_is_mci1rev2xx())
- 					if (host->total_length < 12)
- 						host->total_length = 12;
- 
-@@ -678,11 +689,10 @@
- 		at91_mci_send_command(host, host->request->stop);
- 	} else {
- 		del_timer(&host->timer);
--		/* the at91rm9200 mci controller hangs after some transfers,
-+		/* the mci controller hangs after some transfers,
- 		 * and the workaround is to reset it after each transfer.
- 		 */
--		if (cpu_is_at91rm9200())
--			at91_reset_host(host);
-+		at91_reset_host(host);
- 		mmc_request_done(host->mmc, host->request);
- 	}
- }
-@@ -1007,7 +1017,7 @@
- 	mmc->f_min = 375000;
- 	mmc->f_max = 25000000;
- 	mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
--	mmc->caps = MMC_CAP_SDIO_IRQ;
-+	mmc->caps = 0;
- 
- 	mmc->max_blk_size = 4095;
- 	mmc->max_blk_count = mmc->max_req_size;
-@@ -1018,13 +1028,20 @@
- 	host->bus_mode = 0;
- 	host->board = pdev->dev.platform_data;
- 	if (host->board->wire4) {
--		if (cpu_is_at91sam9260() || cpu_is_at91sam9263() || cpu_is_at91sam9g20())
-+		if (at91mci_is_mci1rev2xx())
- 			mmc->caps |= MMC_CAP_4_BIT_DATA;
- 		else
- 			dev_warn(&pdev->dev, "4 wire bus mode not supported"
- 				" - using 1 wire\n");
- 	}
- 
-+	/* Add SDIO capability when available */
-+	if (at91mci_is_mci1rev2xx()) {
-+		/* at91mci MCI1 rev2xx sdio interrupt erratum */
-+		if (host->board->wire4 || !host->board->slot_b)
-+			mmc->caps |= MMC_CAP_SDIO_IRQ;
-+	}
-+
- 	/*
- 	 * Reserve GPIOs ... board init code makes sure these pins are set
- 	 * up as GPIOs with the right direction (input, except for vcc)
-Index: linux-2.6.30/drivers/dma/dw_dmac.c
-===================================================================
---- linux-2.6.30.orig/drivers/dma/dw_dmac.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/dma/dw_dmac.c	2011-02-01 16:40:30.161007816 +0100
-@@ -212,16 +212,25 @@
- 	list_splice_init(&txd->tx_list, &dwc->free_list);
- 	list_move(&desc->desc_node, &dwc->free_list);
- 
--	/*
--	 * We use dma_unmap_page() regardless of how the buffers were
--	 * mapped before they were submitted...
--	 */
--	if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP))
--		dma_unmap_page(chan2parent(&dwc->chan), desc->lli.dar,
--			       desc->len, DMA_FROM_DEVICE);
--	if (!(txd->flags & DMA_COMPL_SKIP_SRC_UNMAP))
--		dma_unmap_page(chan2parent(&dwc->chan), desc->lli.sar,
--			       desc->len, DMA_TO_DEVICE);
-+	if (!dwc->chan.private) {
-+		struct device *parent = chan2parent(&dwc->chan);
-+		if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
-+			if (txd->flags & DMA_COMPL_DEST_UNMAP_SINGLE)
-+				dma_unmap_single(parent, desc->lli.dar,
-+						desc->len, DMA_FROM_DEVICE);
-+			else
-+				dma_unmap_page(parent, desc->lli.dar,
-+						desc->len, DMA_FROM_DEVICE);
-+		}
-+		if (!(txd->flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
-+			if (txd->flags & DMA_COMPL_SRC_UNMAP_SINGLE)
-+				dma_unmap_single(parent, desc->lli.sar,
-+						desc->len, DMA_TO_DEVICE);
-+			else
-+				dma_unmap_page(parent, desc->lli.sar,
-+						desc->len, DMA_TO_DEVICE);
-+		}
-+	}
- 
- 	/*
- 	 * The API requires that no submissions are done from a
-@@ -658,8 +667,6 @@
- 	reg_width = dws->reg_width;
- 	prev = first = NULL;
- 
--	sg_len = dma_map_sg(chan2parent(chan), sgl, sg_len, direction);
--
- 	switch (direction) {
- 	case DMA_TO_DEVICE:
- 		ctllo = (DWC_DEFAULT_CTLLO
-Index: linux-2.6.30/sound/atmel/Kconfig
-===================================================================
---- linux-2.6.30.orig/sound/atmel/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/atmel/Kconfig	2011-02-01 16:40:30.161007816 +0100
-@@ -12,7 +12,7 @@
- 	tristate "Atmel AC97 Controller (AC97C) driver"
- 	select SND_PCM
- 	select SND_AC97_CODEC
--	depends on DW_DMAC && AVR32
-+	depends on (DW_DMAC && AVR32) || ARCH_AT91
- 	help
- 	  ALSA sound driver for the Atmel AC97 controller.
- 
-Index: linux-2.6.30/sound/atmel/ac97c.c
-===================================================================
---- linux-2.6.30.orig/sound/atmel/ac97c.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/atmel/ac97c.c	2011-02-01 16:40:30.169008345 +0100
-@@ -13,6 +13,7 @@
- #include <linux/device.h>
- #include <linux/dmaengine.h>
- #include <linux/dma-mapping.h>
-+#include <linux/atmel_pdc.h>
- #include <linux/init.h>
- #include <linux/interrupt.h>
- #include <linux/module.h>
-@@ -31,6 +32,10 @@
- 
- #include <linux/dw_dmac.h>
- 
-+#include <mach/cpu.h>
-+#include <mach/hardware.h>
-+#include <mach/gpio.h>
-+
- #include "ac97c.h"
- 
- enum {
-@@ -63,6 +68,7 @@
- 	u64				cur_format;
- 	unsigned int			cur_rate;
- 	unsigned long			flags;
-+	int				period;
- 	/* Serialize access to opened variable */
- 	spinlock_t			lock;
- 	void __iomem			*regs;
-@@ -150,7 +156,7 @@
- 	.rates			= (SNDRV_PCM_RATE_CONTINUOUS),
- 	.rate_min		= 4000,
- 	.rate_max		= 48000,
--	.channels_min		= 1,
-+	.channels_min		= 2,
- 	.channels_max		= 2,
- 	.buffer_bytes_max	= 2 * 2 * 64 * 2048,
- 	.period_bytes_min	= 4096,
-@@ -241,10 +247,13 @@
- 					params_buffer_bytes(hw_params));
- 	if (retval < 0)
- 		return retval;
--	/* snd_pcm_lib_malloc_pages returns 1 if buffer is changed. */
--	if (retval == 1)
--		if (test_and_clear_bit(DMA_TX_READY, &chip->flags))
--			dw_dma_cyclic_free(chip->dma.tx_chan);
-+
-+	if (cpu_is_at32ap7000()) {
-+		/* snd_pcm_lib_malloc_pages returns 1 if buffer is changed. */
-+		if (retval == 1)
-+			if (test_and_clear_bit(DMA_TX_READY, &chip->flags))
-+				dw_dma_cyclic_free(chip->dma.tx_chan);
-+	}
- 
- 	/* Set restrictions to params. */
- 	mutex_lock(&opened_mutex);
-@@ -263,12 +272,14 @@
- 
- 	retval = snd_pcm_lib_malloc_pages(substream,
- 					params_buffer_bytes(hw_params));
--	if (retval < 0)
--		return retval;
--	/* snd_pcm_lib_malloc_pages returns 1 if buffer is changed. */
--	if (retval == 1)
--		if (test_and_clear_bit(DMA_RX_READY, &chip->flags))
--			dw_dma_cyclic_free(chip->dma.rx_chan);
-+	if (cpu_is_at32ap7000()) {
-+		if (retval < 0)
-+			return retval;
-+		/* snd_pcm_lib_malloc_pages returns 1 if buffer is changed. */
-+		if (retval == 1)
-+			if (test_and_clear_bit(DMA_RX_READY, &chip->flags))
-+				dw_dma_cyclic_free(chip->dma.rx_chan);
-+	}
- 
- 	/* Set restrictions to params. */
- 	mutex_lock(&opened_mutex);
-@@ -282,16 +293,20 @@
- static int atmel_ac97c_playback_hw_free(struct snd_pcm_substream *substream)
- {
- 	struct atmel_ac97c *chip = snd_pcm_substream_chip(substream);
--	if (test_and_clear_bit(DMA_TX_READY, &chip->flags))
--		dw_dma_cyclic_free(chip->dma.tx_chan);
-+	if (cpu_is_at32ap7000()) {
-+		if (test_and_clear_bit(DMA_TX_READY, &chip->flags))
-+			dw_dma_cyclic_free(chip->dma.tx_chan);
-+	}
- 	return snd_pcm_lib_free_pages(substream);
- }
- 
- static int atmel_ac97c_capture_hw_free(struct snd_pcm_substream *substream)
- {
- 	struct atmel_ac97c *chip = snd_pcm_substream_chip(substream);
--	if (test_and_clear_bit(DMA_RX_READY, &chip->flags))
--		dw_dma_cyclic_free(chip->dma.rx_chan);
-+	if (cpu_is_at32ap7000()) {
-+		if (test_and_clear_bit(DMA_RX_READY, &chip->flags))
-+			dw_dma_cyclic_free(chip->dma.rx_chan);
-+	}
- 	return snd_pcm_lib_free_pages(substream);
- }
- 
-@@ -299,9 +314,11 @@
- {
- 	struct atmel_ac97c *chip = snd_pcm_substream_chip(substream);
- 	struct snd_pcm_runtime *runtime = substream->runtime;
-+	int block_size = frames_to_bytes(runtime, runtime->period_size);
- 	unsigned long word = ac97c_readl(chip, OCA);
- 	int retval;
- 
-+	chip->period = 0;
- 	word &= ~(AC97C_CH_MASK(PCM_LEFT) | AC97C_CH_MASK(PCM_RIGHT));
- 
- 	/* assign channels to AC97C channel A */
-@@ -324,7 +341,8 @@
- 
- 	switch (runtime->format) {
- 	case SNDRV_PCM_FORMAT_S16_LE:
--		word |= AC97C_CMR_CEM_LITTLE;
-+		if (cpu_is_at32ap7000())
-+			word |= AC97C_CMR_CEM_LITTLE;
- 		break;
- 	case SNDRV_PCM_FORMAT_S16_BE: /* fall through */
- 		word &= ~(AC97C_CMR_CEM_LITTLE);
-@@ -363,9 +381,18 @@
- 		dev_dbg(&chip->pdev->dev, "could not set rate %d Hz\n",
- 				runtime->rate);
- 
--	if (!test_bit(DMA_TX_READY, &chip->flags))
--		retval = atmel_ac97c_prepare_dma(chip, substream,
--				DMA_TO_DEVICE);
-+	if (cpu_is_at32ap7000()) {
-+		if (!test_bit(DMA_TX_READY, &chip->flags))
-+			retval = atmel_ac97c_prepare_dma(chip, substream,
-+					DMA_TO_DEVICE);
-+	} else {
-+		/* Initialize and start the PDC */
-+		writel(runtime->dma_addr, chip->regs + ATMEL_PDC_TPR);
-+		writel(block_size / 2, chip->regs + ATMEL_PDC_TCR);
-+		writel(runtime->dma_addr + block_size,
-+				chip->regs + ATMEL_PDC_TNPR);
-+		writel(block_size / 2, chip->regs + ATMEL_PDC_TNCR);
-+	}
- 
- 	return retval;
- }
-@@ -374,9 +401,11 @@
- {
- 	struct atmel_ac97c *chip = snd_pcm_substream_chip(substream);
- 	struct snd_pcm_runtime *runtime = substream->runtime;
-+	int block_size = frames_to_bytes(runtime, runtime->period_size);
- 	unsigned long word = ac97c_readl(chip, ICA);
- 	int retval;
- 
-+	chip->period = 0;
- 	word &= ~(AC97C_CH_MASK(PCM_LEFT) | AC97C_CH_MASK(PCM_RIGHT));
- 
- 	/* assign channels to AC97C channel A */
-@@ -415,11 +444,15 @@
- 	word |= AC97C_CSR_OVRUN;
- 
- 	ac97c_writel(chip, CAMR, word);
--
- 	/* Enable channel A event interrupt */
- 	word = ac97c_readl(chip, IMR);
- 	word |= AC97C_SR_CAEVT;
--	ac97c_writel(chip, IER, word);
-+	ac97c_writel(chip, IER, /*word*/AC97C_SR_CAEVT);
-+
-+	/* Enable channel A event interrupt */
-+	/*word = ac97c_readl(chip, IMR);
-+	word |= AC97C_SR_CAEVT;
-+	ac97c_writel(chip, IER, word);*/
- 
- 	/* set variable rate if needed */
- 	if (runtime->rate != 48000) {
-@@ -438,9 +471,18 @@
- 		dev_dbg(&chip->pdev->dev, "could not set rate %d Hz\n",
- 				runtime->rate);
- 
--	if (!test_bit(DMA_RX_READY, &chip->flags))
--		retval = atmel_ac97c_prepare_dma(chip, substream,
--				DMA_FROM_DEVICE);
-+	if (cpu_is_at32ap7000()) {
-+		if (!test_bit(DMA_RX_READY, &chip->flags))
-+			retval = atmel_ac97c_prepare_dma(chip, substream,
-+					DMA_FROM_DEVICE);
-+	} else {
-+		/* Initialize and start the PDC */
-+		writel(runtime->dma_addr, chip->regs + ATMEL_PDC_RPR);
-+		writel(block_size / 2, chip->regs + ATMEL_PDC_RCR);
-+		writel(runtime->dma_addr + block_size,
-+				chip->regs + ATMEL_PDC_RNPR);
-+		writel(block_size / 2, chip->regs + ATMEL_PDC_RNCR);
-+	}
- 
- 	return retval;
- }
-@@ -449,7 +491,7 @@
- atmel_ac97c_playback_trigger(struct snd_pcm_substream *substream, int cmd)
- {
- 	struct atmel_ac97c *chip = snd_pcm_substream_chip(substream);
--	unsigned long camr;
-+	unsigned long camr, ptcr = 0;
- 	int retval = 0;
- 
- 	camr = ac97c_readl(chip, CAMR);
-@@ -458,15 +500,22 @@
- 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: /* fall through */
- 	case SNDRV_PCM_TRIGGER_RESUME: /* fall through */
- 	case SNDRV_PCM_TRIGGER_START:
--		retval = dw_dma_cyclic_start(chip->dma.tx_chan);
--		if (retval)
--			goto out;
--		camr |= AC97C_CMR_CENA;
-+		if (cpu_is_at32ap7000()) {
-+			retval = dw_dma_cyclic_start(chip->dma.tx_chan);
-+			if (retval)
-+				goto out;
-+		} else {
-+			ptcr = ATMEL_PDC_TXTEN;
-+		}
-+		camr |= AC97C_CMR_CENA | AC97C_CSR_ENDTX;
- 		break;
- 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH: /* fall through */
- 	case SNDRV_PCM_TRIGGER_SUSPEND: /* fall through */
- 	case SNDRV_PCM_TRIGGER_STOP:
--		dw_dma_cyclic_stop(chip->dma.tx_chan);
-+		if (cpu_is_at32ap7000())
-+			dw_dma_cyclic_stop(chip->dma.tx_chan);
-+		else
-+			ptcr = ATMEL_PDC_TXTDIS;
- 		if (chip->opened <= 1)
- 			camr &= ~AC97C_CMR_CENA;
- 		break;
-@@ -476,6 +525,8 @@
- 	}
- 
- 	ac97c_writel(chip, CAMR, camr);
-+	if (!cpu_is_at32ap7000())
-+		writel(ptcr, chip->regs + ATMEL_PDC_PTCR);
- out:
- 	return retval;
- }
-@@ -484,7 +535,7 @@
- atmel_ac97c_capture_trigger(struct snd_pcm_substream *substream, int cmd)
- {
- 	struct atmel_ac97c *chip = snd_pcm_substream_chip(substream);
--	unsigned long camr;
-+	unsigned long camr, ptcr = 0;
- 	int retval = 0;
- 
- 	camr = ac97c_readl(chip, CAMR);
-@@ -493,15 +544,22 @@
- 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: /* fall through */
- 	case SNDRV_PCM_TRIGGER_RESUME: /* fall through */
- 	case SNDRV_PCM_TRIGGER_START:
--		retval = dw_dma_cyclic_start(chip->dma.rx_chan);
--		if (retval)
--			goto out;
-+		if (cpu_is_at32ap7000()) {
-+			retval = dw_dma_cyclic_start(chip->dma.rx_chan);
-+			if (retval)
-+				goto out;
-+		} else {
-+			ptcr = ATMEL_PDC_RXTEN;
-+		}
- 		camr |= AC97C_CMR_CENA;
- 		break;
- 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH: /* fall through */
- 	case SNDRV_PCM_TRIGGER_SUSPEND: /* fall through */
- 	case SNDRV_PCM_TRIGGER_STOP:
--		dw_dma_cyclic_stop(chip->dma.rx_chan);
-+		if (cpu_is_at32ap7000())
-+			dw_dma_cyclic_stop(chip->dma.rx_chan);
-+		else
-+			ptcr = ATMEL_PDC_RXTDIS;
- 		if (chip->opened <= 1)
- 			camr &= ~AC97C_CMR_CENA;
- 		break;
-@@ -511,6 +569,8 @@
- 	}
- 
- 	ac97c_writel(chip, CAMR, camr);
-+	if (!cpu_is_at32ap7000())
-+		writel(ptcr, chip->regs + ATMEL_PDC_PTCR);
- out:
- 	return retval;
- }
-@@ -523,7 +583,10 @@
- 	snd_pcm_uframes_t	frames;
- 	unsigned long		bytes;
- 
--	bytes = dw_dma_get_src_addr(chip->dma.tx_chan);
-+	if (cpu_is_at32ap7000())
-+		bytes = dw_dma_get_src_addr(chip->dma.tx_chan);
-+	else
-+		bytes = readl(chip->regs + ATMEL_PDC_TPR);
- 	bytes -= runtime->dma_addr;
- 
- 	frames = bytes_to_frames(runtime, bytes);
-@@ -540,7 +603,10 @@
- 	snd_pcm_uframes_t	frames;
- 	unsigned long		bytes;
- 
--	bytes = dw_dma_get_dst_addr(chip->dma.rx_chan);
-+	if (cpu_is_at32ap7000())
-+		bytes = dw_dma_get_dst_addr(chip->dma.rx_chan);
-+	else
-+		bytes = readl(chip->regs + ATMEL_PDC_RPR);
- 	bytes -= runtime->dma_addr;
- 
- 	frames = bytes_to_frames(runtime, bytes);
-@@ -578,20 +644,67 @@
- 	u32			sr     = ac97c_readl(chip, SR);
- 	u32			casr   = ac97c_readl(chip, CASR);
- 	u32			cosr   = ac97c_readl(chip, COSR);
-+	u32			camr   = ac97c_readl(chip, CAMR);
- 
- 	if (sr & AC97C_SR_CAEVT) {
--		dev_info(&chip->pdev->dev, "channel A event%s%s%s%s%s%s\n",
-+		struct snd_pcm_runtime *runtime;
-+		int offset, next_period, block_size;
-+		dev_dbg(&chip->pdev->dev, "channel A event%s%s%s%s%s%s\n",
- 				casr & AC97C_CSR_OVRUN   ? " OVRUN"   : "",
- 				casr & AC97C_CSR_RXRDY   ? " RXRDY"   : "",
- 				casr & AC97C_CSR_UNRUN   ? " UNRUN"   : "",
- 				casr & AC97C_CSR_TXEMPTY ? " TXEMPTY" : "",
- 				casr & AC97C_CSR_TXRDY   ? " TXRDY"   : "",
- 				!casr                    ? " NONE"    : "");
-+		if (!cpu_is_at32ap7000()) {
-+			if ((casr & camr) & AC97C_CSR_ENDTX) {
-+				runtime = chip->playback_substream->runtime;
-+				block_size = frames_to_bytes(runtime,
-+						runtime->period_size);
-+				chip->period++;
-+
-+				if (chip->period == runtime->periods)
-+					chip->period = 0;
-+				next_period = chip->period + 1;
-+				if (next_period == runtime->periods)
-+					next_period = 0;
-+
-+				offset = block_size * next_period;
-+
-+				writel(runtime->dma_addr + offset,
-+						chip->regs + ATMEL_PDC_TNPR);
-+				writel(block_size / 2,
-+						chip->regs + ATMEL_PDC_TNCR);
-+
-+				snd_pcm_period_elapsed(
-+						chip->playback_substream);
-+			}
-+			if ((casr & camr) & AC97C_CSR_ENDRX) {
-+				runtime = chip->capture_substream->runtime;
-+				block_size = frames_to_bytes(runtime,
-+						runtime->period_size);
-+				chip->period++;
-+
-+				if (chip->period == runtime->periods)
-+					chip->period = 0;
-+				next_period = chip->period + 1;
-+				if (next_period == runtime->periods)
-+					next_period = 0;
-+
-+				offset = block_size * next_period;
-+
-+				writel(runtime->dma_addr + offset,
-+						chip->regs + ATMEL_PDC_RNPR);
-+				writel(block_size / 2,
-+						chip->regs + ATMEL_PDC_RNCR);
-+				snd_pcm_period_elapsed(chip->capture_substream);
-+			}
-+		}
- 		retval = IRQ_HANDLED;
- 	}
- 
- 	if (sr & AC97C_SR_COEVT) {
--		dev_info(&chip->pdev->dev, "codec channel event%s%s%s%s%s\n",
-+		dev_dbg(&chip->pdev->dev, "codec channel event%s%s%s%s%s\n",
- 				cosr & AC97C_CSR_OVRUN   ? " OVRUN"   : "",
- 				cosr & AC97C_CSR_RXRDY   ? " RXRDY"   : "",
- 				cosr & AC97C_CSR_TXEMPTY ? " TXEMPTY" : "",
-@@ -608,15 +721,50 @@
- 	return retval;
- }
- 
-+static struct ac97_pcm at91_ac97_pcm_defs[] __devinitdata = {
-+	/* Playback */
-+	{
-+		.exclusive = 1,
-+		.r = { {
-+			.slots = ((1 << AC97_SLOT_PCM_LEFT)
-+				  | (1 << AC97_SLOT_PCM_RIGHT)),
-+		} },
-+	},
-+	/* PCM in */
-+	{
-+		.stream = 1,
-+		.exclusive = 1,
-+		.r = { {
-+			.slots = ((1 << AC97_SLOT_PCM_LEFT)
-+					| (1 << AC97_SLOT_PCM_RIGHT)),
-+		} }
-+	},
-+	/* Mic in */
-+	{
-+		.stream = 1,
-+		.exclusive = 1,
-+		.r = { {
-+			.slots = (1<<AC97_SLOT_MIC),
-+		} }
-+	},
-+};
-+
- static int __devinit atmel_ac97c_pcm_new(struct atmel_ac97c *chip)
- {
- 	struct snd_pcm		*pcm;
- 	struct snd_pcm_hardware	hw = atmel_ac97c_hw;
--	int			capture, playback, retval;
-+	int			capture, playback, retval, err;
- 
- 	capture = test_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
- 	playback = test_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
- 
-+	if (!cpu_is_at32ap7000()) {
-+		err = snd_ac97_pcm_assign(chip->ac97_bus,
-+				ARRAY_SIZE(at91_ac97_pcm_defs),
-+				at91_ac97_pcm_defs);
-+		if (err)
-+			return err;
-+	}
- 	retval = snd_pcm_new(chip->card, chip->card->shortname,
- 			chip->pdev->id, playback, capture, &pcm);
- 	if (retval)
-@@ -775,7 +923,12 @@
- 		return -ENXIO;
- 	}
- 
--	pclk = clk_get(&pdev->dev, "pclk");
-+	if (cpu_is_at32ap7000()) {
-+		pclk = clk_get(&pdev->dev, "pclk");
-+	} else {
-+		pclk = clk_get(&pdev->dev, "ac97_clk");
-+	}
-+
- 	if (IS_ERR(pclk)) {
- 		dev_dbg(&pdev->dev, "no peripheral clock\n");
- 		return PTR_ERR(pclk);
-@@ -844,43 +997,52 @@
- 		goto err_ac97_bus;
- 	}
- 
--	if (pdata->rx_dws.dma_dev) {
--		struct dw_dma_slave *dws = &pdata->rx_dws;
--		dma_cap_mask_t mask;
-+	if (cpu_is_at32ap7000()) {
-+		if (pdata->rx_dws.dma_dev) {
-+			struct dw_dma_slave *dws = &pdata->rx_dws;
-+			dma_cap_mask_t mask;
- 
--		dws->rx_reg = regs->start + AC97C_CARHR + 2;
-+			dws->rx_reg = regs->start + AC97C_CARHR + 2;
- 
--		dma_cap_zero(mask);
--		dma_cap_set(DMA_SLAVE, mask);
-+			dma_cap_zero(mask);
-+			dma_cap_set(DMA_SLAVE, mask);
- 
--		chip->dma.rx_chan = dma_request_channel(mask, filter, dws);
-+			chip->dma.rx_chan = dma_request_channel(mask, filter,
-+					dws);
- 
--		dev_info(&chip->pdev->dev, "using %s for DMA RX\n",
-+			dev_info(&chip->pdev->dev, "using %s for DMA RX\n",
- 				dev_name(&chip->dma.rx_chan->dev->device));
--		set_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
--	}
-+			set_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
-+		}
- 
--	if (pdata->tx_dws.dma_dev) {
--		struct dw_dma_slave *dws = &pdata->tx_dws;
--		dma_cap_mask_t mask;
-+		if (pdata->tx_dws.dma_dev) {
-+			struct dw_dma_slave *dws = &pdata->tx_dws;
-+			dma_cap_mask_t mask;
- 
--		dws->tx_reg = regs->start + AC97C_CATHR + 2;
-+			dws->tx_reg = regs->start + AC97C_CATHR + 2;
- 
--		dma_cap_zero(mask);
--		dma_cap_set(DMA_SLAVE, mask);
-+			dma_cap_zero(mask);
-+			dma_cap_set(DMA_SLAVE, mask);
- 
--		chip->dma.tx_chan = dma_request_channel(mask, filter, dws);
-+			chip->dma.tx_chan = dma_request_channel(mask, filter,
-+					dws);
- 
--		dev_info(&chip->pdev->dev, "using %s for DMA TX\n",
-+			dev_info(&chip->pdev->dev, "using %s for DMA TX\n",
- 				dev_name(&chip->dma.tx_chan->dev->device));
--		set_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
--	}
-+			set_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
-+		}
- 
--	if (!test_bit(DMA_RX_CHAN_PRESENT, &chip->flags) &&
--			!test_bit(DMA_TX_CHAN_PRESENT, &chip->flags)) {
--		dev_dbg(&pdev->dev, "DMA not available\n");
--		retval = -ENODEV;
--		goto err_dma;
-+		if (!test_bit(DMA_RX_CHAN_PRESENT, &chip->flags) &&
-+				!test_bit(DMA_TX_CHAN_PRESENT, &chip->flags)) {
-+			dev_dbg(&pdev->dev, "DMA not available\n");
-+			retval = -ENODEV;
-+			goto err_dma;
-+		}
-+	} else {
-+		/* Just pretend that we have DMA channel(for at91 i is actually
-+		 * the PDC */
-+		set_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
-+		set_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
- 	}
- 
- 	retval = atmel_ac97c_pcm_new(chip);
-@@ -897,20 +1059,22 @@
- 
- 	platform_set_drvdata(pdev, card);
- 
--	dev_info(&pdev->dev, "Atmel AC97 controller at 0x%p\n",
--			chip->regs);
-+	dev_info(&pdev->dev, "Atmel AC97 controller at 0x%p, irq = %d\n",
-+			chip->regs, irq);
- 
- 	return 0;
- 
- err_dma:
--	if (test_bit(DMA_RX_CHAN_PRESENT, &chip->flags))
--		dma_release_channel(chip->dma.rx_chan);
--	if (test_bit(DMA_TX_CHAN_PRESENT, &chip->flags))
--		dma_release_channel(chip->dma.tx_chan);
--	clear_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
--	clear_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
--	chip->dma.rx_chan = NULL;
--	chip->dma.tx_chan = NULL;
-+	if (cpu_is_at32ap7000()) {
-+		if (test_bit(DMA_RX_CHAN_PRESENT, &chip->flags))
-+			dma_release_channel(chip->dma.rx_chan);
-+		if (test_bit(DMA_TX_CHAN_PRESENT, &chip->flags))
-+			dma_release_channel(chip->dma.tx_chan);
-+		clear_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
-+		clear_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
-+		chip->dma.rx_chan = NULL;
-+		chip->dma.tx_chan = NULL;
-+	}
- err_ac97_bus:
- 	snd_card_set_dev(card, NULL);
- 
-@@ -934,12 +1098,13 @@
- 	struct snd_card *card = platform_get_drvdata(pdev);
- 	struct atmel_ac97c *chip = card->private_data;
- 
--	if (test_bit(DMA_RX_READY, &chip->flags))
--		dw_dma_cyclic_stop(chip->dma.rx_chan);
--	if (test_bit(DMA_TX_READY, &chip->flags))
--		dw_dma_cyclic_stop(chip->dma.tx_chan);
-+	if (cpu_is_at32ap7000()) {
-+		if (test_bit(DMA_RX_READY, &chip->flags))
-+			dw_dma_cyclic_stop(chip->dma.rx_chan);
-+		if (test_bit(DMA_TX_READY, &chip->flags))
-+			dw_dma_cyclic_stop(chip->dma.tx_chan);
-+	}
- 	clk_disable(chip->pclk);
--
- 	return 0;
- }
- 
-@@ -949,11 +1114,12 @@
- 	struct atmel_ac97c *chip = card->private_data;
- 
- 	clk_enable(chip->pclk);
--	if (test_bit(DMA_RX_READY, &chip->flags))
--		dw_dma_cyclic_start(chip->dma.rx_chan);
--	if (test_bit(DMA_TX_READY, &chip->flags))
--		dw_dma_cyclic_start(chip->dma.tx_chan);
--
-+	if (cpu_is_at32ap7000()) {
-+		if (test_bit(DMA_RX_READY, &chip->flags))
-+			dw_dma_cyclic_start(chip->dma.rx_chan);
-+		if (test_bit(DMA_TX_READY, &chip->flags))
-+			dw_dma_cyclic_start(chip->dma.tx_chan);
-+	}
- 	return 0;
- }
- #else
-@@ -978,14 +1144,16 @@
- 	iounmap(chip->regs);
- 	free_irq(chip->irq, chip);
- 
--	if (test_bit(DMA_RX_CHAN_PRESENT, &chip->flags))
--		dma_release_channel(chip->dma.rx_chan);
--	if (test_bit(DMA_TX_CHAN_PRESENT, &chip->flags))
--		dma_release_channel(chip->dma.tx_chan);
--	clear_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
--	clear_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
--	chip->dma.rx_chan = NULL;
--	chip->dma.tx_chan = NULL;
-+	if (cpu_is_at32ap7000()) {
-+		if (test_bit(DMA_RX_CHAN_PRESENT, &chip->flags))
-+			dma_release_channel(chip->dma.rx_chan);
-+		if (test_bit(DMA_TX_CHAN_PRESENT, &chip->flags))
-+			dma_release_channel(chip->dma.tx_chan);
-+		clear_bit(DMA_RX_CHAN_PRESENT, &chip->flags);
-+		clear_bit(DMA_TX_CHAN_PRESENT, &chip->flags);
-+		chip->dma.rx_chan = NULL;
-+		chip->dma.tx_chan = NULL;
-+	}
- 
- 	snd_card_set_dev(card, NULL);
- 	snd_card_free(card);
-Index: linux-2.6.30/arch/arm/mach-at91/at91sam9263_devices.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/at91sam9263_devices.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/at91sam9263_devices.c	2011-02-01 16:40:30.161007816 +0100
-@@ -707,9 +707,9 @@
-  *  AC97
-  * -------------------------------------------------------------------- */
- 
--#if defined(CONFIG_SND_AT91_AC97) || defined(CONFIG_SND_AT91_AC97_MODULE)
-+#if defined(CONFIG_SND_ATMEL_AC97C) || defined(CONFIG_SND_ATMEL_AC97C_MODULE)
- static u64 ac97_dmamask = DMA_BIT_MASK(32);
--static struct atmel_ac97_data ac97_data;
-+static struct ac97c_platform_data ac97_data;
- 
- static struct resource ac97_resources[] = {
- 	[0] = {
-@@ -725,8 +725,8 @@
- };
- 
- static struct platform_device at91sam9263_ac97_device = {
--	.name		= "ac97c",
--	.id		= 1,
-+	.name		= "atmel_ac97c",
-+	.id		= 0,
- 	.dev		= {
- 				.dma_mask		= &ac97_dmamask,
- 				.coherent_dma_mask	= DMA_BIT_MASK(32),
-@@ -736,7 +736,7 @@
- 	.num_resources	= ARRAY_SIZE(ac97_resources),
- };
- 
--void __init at91_add_device_ac97(struct atmel_ac97_data *data)
-+void __init at91_add_device_ac97(struct ac97c_platform_data *data)
- {
- 	if (!data)
- 		return;
-@@ -754,7 +754,7 @@
- 	platform_device_register(&at91sam9263_ac97_device);
- }
- #else
--void __init at91_add_device_ac97(struct atmel_ac97_data *data) {}
-+void __init at91_add_device_ac97(struct ac97c_platform_data *data) {}
- #endif
- 
- 
-Index: linux-2.6.30/arch/arm/mach-at91/board-sam9263ek.c
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/board-sam9263ek.c	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/arch/arm/mach-at91/board-sam9263ek.c	2011-02-01 16:40:30.169008345 +0100
-@@ -155,7 +155,7 @@
- static struct at91_mmc_data __initdata ek_mmc_data = {
- 	.wire4		= 1,
- 	.det_pin	= AT91_PIN_PE18,
--	.wp_pin		= AT91_PIN_PE19,
-+//	.wp_pin		= ... not connected
- //	.vcc_pin	= ... not connected
- };
- 
-@@ -365,9 +365,9 @@
- 
- /*
-  * AC97
-+ * reset_pin is not connected: NRST
-  */
--static struct atmel_ac97_data ek_ac97_data = {
--	.reset_pin	= AT91_PIN_PA13,
-+static struct ac97c_platform_data ek_ac97_data = {
- };
- 
- 
-Index: linux-2.6.30/drivers/input/touchscreen/atmel_tsadcc.c
-===================================================================
---- linux-2.6.30.orig/drivers/input/touchscreen/atmel_tsadcc.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/input/touchscreen/atmel_tsadcc.c	2011-02-01 16:40:30.169008345 +0100
-@@ -22,6 +22,8 @@
- #include <linux/clk.h>
- #include <linux/platform_device.h>
- #include <linux/io.h>
-+#include <mach/board.h>
-+#include <mach/cpu.h>
- 
- /* Register definitions based on AT91SAM9RL64 preliminary draft datasheet */
- 
-@@ -36,7 +38,9 @@
- #define	  ATMEL_TSADCC_LOWRES	(1    <<  4)	/* Resolution selection */
- #define	  ATMEL_TSADCC_SLEEP	(1    <<  5)	/* Sleep mode */
- #define	  ATMEL_TSADCC_PENDET	(1    <<  6)	/* Pen Detect selection */
-+#define	  ATMEL_TSADCC_PRES	(1    <<  7)	/* Pressure Measurement Selection */
- #define	  ATMEL_TSADCC_PRESCAL	(0x3f <<  8)	/* Prescalar Rate Selection */
-+#define	  ATMEL_TSADCC_EPRESCAL	(0xff <<  8)	/* Prescalar Rate Selection (Extended) */
- #define	  ATMEL_TSADCC_STARTUP	(0x7f << 16)	/* Start Up time */
- #define	  ATMEL_TSADCC_SHTIM	(0xf  << 24)	/* Sample & Hold time */
- #define	  ATMEL_TSADCC_PENDBC	(0xf  << 28)	/* Pen Detect debouncing time */
-@@ -84,7 +88,13 @@
- #define ATMEL_TSADCC_CDR4	0x40	/* Channel Data 4 */
- #define ATMEL_TSADCC_CDR5	0x44	/* Channel Data 5 */
- 
--#define ADC_CLOCK	1000000
-+#define ATMEL_TSADCC_XPOS	0x50
-+#define ATMEL_TSADCC_Z1DAT	0x54
-+#define ATMEL_TSADCC_Z2DAT	0x58
-+
-+#define PRESCALER_VAL(x)	((x) >> 8)
-+
-+#define ADC_DEFAULT_CLOCK	100000
- 
- struct atmel_tsadcc {
- 	struct input_dev	*input;
-@@ -124,6 +134,7 @@
- 
- 		input_report_key(input_dev, BTN_TOUCH, 0);
- 		ts_dev->bufferedmeasure = 0;
-+		input_report_abs(input_dev, ABS_PRESSURE, 0);
- 		input_sync(input_dev);
- 
- 	} else if (status & ATMEL_TSADCC_PENCNT) {
-@@ -148,6 +159,7 @@
- 			input_report_abs(input_dev, ABS_X, ts_dev->prev_absx);
- 			input_report_abs(input_dev, ABS_Y, ts_dev->prev_absy);
- 			input_report_key(input_dev, BTN_TOUCH, 1);
-+			input_report_abs(input_dev, ABS_PRESSURE, 7500);
- 			input_sync(input_dev);
- 		} else
- 			ts_dev->bufferedmeasure = 1;
-@@ -172,6 +184,7 @@
- 	struct atmel_tsadcc	*ts_dev;
- 	struct input_dev	*input_dev;
- 	struct resource		*res;
-+	struct at91_tsadcc_data *pdata = pdev->dev.platform_data;
- 	int		err = 0;
- 	unsigned int	prsc;
- 	unsigned int	reg;
-@@ -242,11 +255,12 @@
- 	input_dev->phys = ts_dev->phys;
- 	input_dev->dev.parent = &pdev->dev;
- 
--	input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
--	input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
--
-+	__set_bit(EV_ABS, input_dev->evbit);
- 	input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0);
- 	input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0);
-+	input_set_abs_params(input_dev, ABS_PRESSURE, 0, 15000, 0, 0);
-+
-+	input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
- 
- 	/* clk_enable() always returns 0, no need to check it */
- 	clk_enable(ts_dev->clk);
-@@ -254,19 +268,37 @@
- 	prsc = clk_get_rate(ts_dev->clk);
- 	dev_info(&pdev->dev, "Master clock is set at: %d Hz\n", prsc);
- 
--	prsc = prsc / ADC_CLOCK / 2 - 1;
-+	if (!pdata)
-+		goto err_fail;
-+
-+	if (!pdata->adc_clock)
-+		pdata->adc_clock = ADC_DEFAULT_CLOCK;
-+
-+	prsc = (prsc / (2 * pdata->adc_clock)) - 1;
-+
-+	/* saturate if this value is too high */
-+	if (cpu_is_at91sam9rl()) {
-+		if (prsc > PRESCALER_VAL(ATMEL_TSADCC_PRESCAL))
-+			prsc = PRESCALER_VAL(ATMEL_TSADCC_PRESCAL);
-+	} else {
-+		if (prsc > PRESCALER_VAL(ATMEL_TSADCC_EPRESCAL))
-+			prsc = PRESCALER_VAL(ATMEL_TSADCC_EPRESCAL);
-+	}
-+
-+	dev_info(&pdev->dev, "Prescaler is set at: %d\n", prsc);
- 
- 	reg = ATMEL_TSADCC_TSAMOD_TS_ONLY_MODE		|
- 		((0x00 << 5) & ATMEL_TSADCC_SLEEP)	|	/* Normal Mode */
- 		((0x01 << 6) & ATMEL_TSADCC_PENDET)	|	/* Enable Pen Detect */
--		((prsc << 8) & ATMEL_TSADCC_PRESCAL)	|	/* PRESCAL */
--		((0x13 << 16) & ATMEL_TSADCC_STARTUP)	|	/* STARTUP */
--		((0x0F << 28) & ATMEL_TSADCC_PENDBC);		/* PENDBC */
-+		(prsc << 8)				|
-+		((0x26 << 16) & ATMEL_TSADCC_STARTUP)	|
-+		((pdata->pendet_debounce << 28) & ATMEL_TSADCC_PENDBC);
- 
- 	atmel_tsadcc_write(ATMEL_TSADCC_CR, ATMEL_TSADCC_SWRST);
- 	atmel_tsadcc_write(ATMEL_TSADCC_MR, reg);
- 	atmel_tsadcc_write(ATMEL_TSADCC_TRGR, ATMEL_TSADCC_TRGMOD_NONE);
--	atmel_tsadcc_write(ATMEL_TSADCC_TSR, (0x3 << 24) & ATMEL_TSADCC_TSSHTIM);
-+	atmel_tsadcc_write(ATMEL_TSADCC_TSR,
-+		(pdata->ts_sample_hold_time << 24) & ATMEL_TSADCC_TSSHTIM);
- 
- 	atmel_tsadcc_read(ATMEL_TSADCC_SR);
- 	atmel_tsadcc_write(ATMEL_TSADCC_IER, ATMEL_TSADCC_PENCNT);
-Index: linux-2.6.30/drivers/input/touchscreen/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/input/touchscreen/Kconfig	2011-02-01 16:40:18.000000000 +0100
-+++ linux-2.6.30/drivers/input/touchscreen/Kconfig	2011-02-01 16:40:30.165043750 +0100
-@@ -277,7 +277,7 @@
- 
- config TOUCHSCREEN_ATMEL_TSADCC
- 	tristate "Atmel Touchscreen Interface"
--	depends on ARCH_AT91SAM9RL
-+	depends on ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
- 	default y
- 	help
- 	  Say Y here if you have a 4-wire touchscreen connected to the
-Index: linux-2.6.30/arch/arm/mach-at91/pm_slowclock.S
-===================================================================
---- linux-2.6.30.orig/arch/arm/mach-at91/pm_slowclock.S	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/mach-at91/pm_slowclock.S	2011-02-01 16:40:30.165043750 +0100
-@@ -18,7 +18,7 @@
- 
- #ifdef CONFIG_ARCH_AT91RM9200
- #include <mach/at91rm9200_mc.h>
--#elif defined(CONFIG_ARCH_AT91CAP9)
-+#elif defined(CONFIG_ARCH_AT91CAP9) || defined(CONFIG_ARCH_AT91SAM9G45)
- #include <mach/at91cap9_ddrsdr.h>
- #else
- #include <mach/at91sam9_sdramc.h>
-@@ -34,6 +34,9 @@
- #warning Assuming EB1 SDRAM controller is *NOT* used
- #endif
- 
-+#ifdef CONFIG_ARCH_AT91SAM9G45
-+#define AT91_DDRSDRC	AT91_DDRSDRC1
-+#endif
- /*
-  * When SLOWDOWN_MASTER_CLOCK is defined we will also slow down the Master
-  * clock during suspend by adjusting its prescalar and divisor.
-@@ -127,7 +130,7 @@
- 	/* Put SDRAM in self-refresh mode */
- 	mov	r3, #1
- 	str	r3, [r2, #AT91_SDRAMC_SRR]
--#elif defined(CONFIG_ARCH_AT91CAP9)
-+#elif defined(CONFIG_ARCH_AT91CAP9) || defined(CONFIG_ARCH_AT91SAM9G45)
- 	/* Enable SDRAM self-refresh mode */
- 	ldr	r3, [r2, #AT91_DDRSDRC_LPR - AT91_DDRSDRC]
- 	str	r3, .saved_sam9_lpr
-@@ -239,7 +242,7 @@
- 
- #ifdef CONFIG_ARCH_AT91RM9200
- 	/* Do nothing - self-refresh is automatically disabled. */
--#elif defined(CONFIG_ARCH_AT91CAP9)
-+#elif defined(CONFIG_ARCH_AT91CAP9) || defined(CONFIG_ARCH_AT91SAM9G45)
- 	/* Restore LPR on AT91CAP9 */
- 	ldr	r3, .saved_sam9_lpr
- 	str	r3, [r2, #AT91_DDRSDRC_LPR - AT91_DDRSDRC]
-@@ -271,7 +274,7 @@
- #ifdef CONFIG_ARCH_AT91RM9200
- .at91_va_base_sdramc:
- 	.word AT91_VA_BASE_SYS
--#elif defined(CONFIG_ARCH_AT91CAP9)
-+#elif defined(CONFIG_ARCH_AT91CAP9) || defined(CONFIG_ARCH_AT91SAM9G45)
- .at91_va_base_sdramc:
- 	.word AT91_VA_BASE_SYS + AT91_DDRSDRC
- #else
-Index: linux-2.6.30/arch/arm/tools/mach-types
-===================================================================
---- linux-2.6.30.orig/arch/arm/tools/mach-types	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/tools/mach-types	2011-02-01 16:40:30.169008345 +0100
-@@ -2245,3 +2245,4 @@
- omap3_wl_ff		MACH_OMAP3_WL_FF	OMAP3_WL_FF		2258
- simcom			MACH_SIMCOM		SIMCOM			2259
- mcwebio			MACH_MCWEBIO		MCWEBIO			2260
-+at91sam9g20ek_2mmc	MACH_AT91SAM9G20EK_2MMC	AT91SAM9G20EK_2MMC	2288
-Index: linux-2.6.30/drivers/misc/Kconfig
-===================================================================
---- linux-2.6.30.orig/drivers/misc/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/drivers/misc/Kconfig	2011-02-01 16:40:30.169008345 +0100
-@@ -15,7 +15,7 @@
- 
- config ATMEL_PWM
- 	tristate "Atmel AT32/AT91 PWM support"
--	depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9
-+	depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 || ARCH_AT91SAM9G45
- 	help
- 	  This option enables device driver support for the PWM channels
- 	  on certain Atmel processors.  Pulse Width Modulation is used for
-Index: linux-2.6.30/arch/arm/configs/at91sam9263ek_defconfig
-===================================================================
---- linux-2.6.30.orig/arch/arm/configs/at91sam9263ek_defconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/configs/at91sam9263ek_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -1,17 +1,18 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.24-rc7
--# Tue Jan  8 22:12:20 2008
-+# Linux kernel version: 2.6.30
-+# Wed Sep 30 18:40:20 2009
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
- CONFIG_GENERIC_GPIO=y
--# CONFIG_GENERIC_TIME is not set
--# CONFIG_GENERIC_CLOCKEVENTS is not set
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
- CONFIG_MMU=y
- # CONFIG_NO_IOPORT is not set
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
- CONFIG_LOCKDEP_SUPPORT=y
- CONFIG_TRACE_IRQFLAGS_SUPPORT=y
- CONFIG_HARDIRQS_SW_RESEND=y
-@@ -21,7 +22,7 @@
- # CONFIG_ARCH_HAS_ILOG2_U64 is not set
- CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
--CONFIG_ZONE_DMA=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
- CONFIG_VECTORS_BASE=0xffff0000
- CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
- 
-@@ -39,57 +40,82 @@
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_TASKSTATS is not set
--# CONFIG_USER_NS is not set
--# CONFIG_PID_NS is not set
- # CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
- # CONFIG_IKCONFIG is not set
- CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
- # CONFIG_CGROUPS is not set
--CONFIG_FAIR_GROUP_SCHED=y
--CONFIG_FAIR_USER_SCHED=y
--# CONFIG_FAIR_CGROUP_SCHED is not set
- CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
- # CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
- CONFIG_BLK_DEV_INITRD=y
- CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
- # CONFIG_EMBEDDED is not set
- CONFIG_UID16=y
- CONFIG_SYSCTL_SYSCALL=y
- CONFIG_KALLSYMS=y
--# CONFIG_KALLSYMS_ALL is not set
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
- CONFIG_HOTPLUG=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
- CONFIG_ELF_CORE=y
- CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
--CONFIG_ANON_INODES=y
- CONFIG_EPOLL=y
- CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
- CONFIG_EVENTFD=y
- CONFIG_SHMEM=y
-+CONFIG_AIO=y
- CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
- CONFIG_SLAB=y
- # CONFIG_SLUB is not set
- # CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
- CONFIG_SLABINFO=y
- CONFIG_RT_MUTEXES=y
--# CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
- CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
- CONFIG_MODULE_UNLOAD=y
- # CONFIG_MODULE_FORCE_UNLOAD is not set
- # CONFIG_MODVERSIONS is not set
- # CONFIG_MODULE_SRCVERSION_ALL is not set
--CONFIG_KMOD=y
- CONFIG_BLOCK=y
- # CONFIG_LBD is not set
--# CONFIG_BLK_DEV_IO_TRACE is not set
--# CONFIG_LSF is not set
- # CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
- 
- #
- # IO Schedulers
-@@ -103,6 +129,7 @@
- # CONFIG_DEFAULT_CFQ is not set
- # CONFIG_DEFAULT_NOOP is not set
- CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
- 
- #
- # System Type
-@@ -112,11 +139,10 @@
- # CONFIG_ARCH_REALVIEW is not set
- # CONFIG_ARCH_VERSATILE is not set
- CONFIG_ARCH_AT91=y
--# CONFIG_ARCH_CLPS7500 is not set
- # CONFIG_ARCH_CLPS711X is not set
--# CONFIG_ARCH_CO285 is not set
- # CONFIG_ARCH_EBSA110 is not set
- # CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
- # CONFIG_ARCH_FOOTBRIDGE is not set
- # CONFIG_ARCH_NETX is not set
- # CONFIG_ARCH_H720X is not set
-@@ -128,26 +154,26 @@
- # CONFIG_ARCH_IXP2000 is not set
- # CONFIG_ARCH_IXP4XX is not set
- # CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
- # CONFIG_ARCH_KS8695 is not set
- # CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
- # CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
- # CONFIG_ARCH_PNX4008 is not set
- # CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
- # CONFIG_ARCH_RPC is not set
- # CONFIG_ARCH_SA1100 is not set
- # CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
- # CONFIG_ARCH_SHARK is not set
- # CONFIG_ARCH_LH7A40X is not set
- # CONFIG_ARCH_DAVINCI is not set
- # CONFIG_ARCH_OMAP is not set
--
--#
--# Boot options
--#
--
--#
--# Power management
--#
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
- 
- #
- # Atmel AT91 System-on-Chip
-@@ -155,15 +181,24 @@
- # CONFIG_ARCH_AT91RM9200 is not set
- # CONFIG_ARCH_AT91SAM9260 is not set
- # CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
- CONFIG_ARCH_AT91SAM9263=y
- # CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
- # CONFIG_ARCH_AT91X40 is not set
- CONFIG_AT91_PMC_UNIT=y
-+# CONFIG_MACH_NEOCORE926 is not set
- 
- #
- # AT91SAM9263 Board Type
- #
- CONFIG_MACH_AT91SAM9263EK=y
-+# CONFIG_MACH_USB_A9263 is not set
-+# CONFIG_MACH_CSB737 is not set
-+# CONFIG_MACH_TOTEMNOVA is not set
- 
- #
- # AT91 Board Options
-@@ -174,9 +209,16 @@
- #
- # AT91 Feature Selections
- #
--# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
--# CONFIG_ATMEL_TCLIB is not set
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+# CONFIG_AT91_SLOW_CLOCK is not set
- CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
- 
- #
- # Processor Type
-@@ -185,6 +227,7 @@
- CONFIG_CPU_ARM926T=y
- CONFIG_CPU_32v5=y
- CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
- CONFIG_CPU_CACHE_VIVT=y
- CONFIG_CPU_COPY_V4WB=y
- CONFIG_CPU_TLB_V4WBI=y
-@@ -194,7 +237,7 @@
- #
- # Processor Features
- #
--# CONFIG_ARM_THUMB is not set
-+CONFIG_ARM_THUMB=y
- # CONFIG_CPU_ICACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-@@ -211,25 +254,37 @@
- #
- # Kernel Features
- #
--# CONFIG_TICK_ONESHOT is not set
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
- # CONFIG_PREEMPT is not set
- CONFIG_HZ=100
--# CONFIG_AEABI is not set
--# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
- # CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_FLATMEM=y
- CONFIG_FLAT_NODE_MEM_MAP=y
--# CONFIG_SPARSEMEM_STATIC is not set
--# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-+CONFIG_PAGEFLAGS_EXTENDED=y
- CONFIG_SPLIT_PTLOCK_CPUS=4096
--# CONFIG_RESOURCES_64BIT is not set
--CONFIG_ZONE_DMA_FLAG=1
--CONFIG_BOUNCE=y
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
- CONFIG_VIRT_TO_BUS=y
--# CONFIG_LEDS is not set
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
- CONFIG_ALIGNMENT_TRAP=y
- 
- #
-@@ -242,6 +297,11 @@
- # CONFIG_KEXEC is not set
- 
- #
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
- # Floating point emulation
- #
- 
-@@ -257,19 +317,21 @@
- # Userspace binary formats
- #
- CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
- # CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
--# CONFIG_ARTHUR is not set
- 
- #
- # Power management options
- #
--# CONFIG_PM is not set
--CONFIG_SUSPEND_UP_POSSIBLE=y
--
--#
--# Networking
--#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
- CONFIG_NET=y
- 
- #
-@@ -280,15 +342,13 @@
- CONFIG_UNIX=y
- # CONFIG_NET_KEY is not set
- CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
-+CONFIG_IP_MULTICAST=y
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_FIB_HASH=y
--CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--CONFIG_IP_PNP_BOOTP=y
--CONFIG_IP_PNP_RARP=y
-+# CONFIG_IP_PNP is not set
- # CONFIG_NET_IPIP is not set
- # CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
- # CONFIG_ARPD is not set
- # CONFIG_SYN_COOKIES is not set
- # CONFIG_INET_AH is not set
-@@ -306,8 +366,6 @@
- CONFIG_DEFAULT_TCP_CONG="cubic"
- # CONFIG_TCP_MD5SIG is not set
- # CONFIG_IPV6 is not set
--# CONFIG_INET6_XFRM_TUNNEL is not set
--# CONFIG_INET6_TUNNEL is not set
- # CONFIG_NETWORK_SECMARK is not set
- # CONFIG_NETFILTER is not set
- # CONFIG_IP_DCCP is not set
-@@ -315,6 +373,7 @@
- # CONFIG_TIPC is not set
- # CONFIG_ATM is not set
- # CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
- # CONFIG_VLAN_8021Q is not set
- # CONFIG_DECNET is not set
- # CONFIG_LLC2 is not set
-@@ -324,24 +383,40 @@
- # CONFIG_LAPB is not set
- # CONFIG_ECONET is not set
- # CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
- # CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
- 
- #
- # Network testing
- #
- # CONFIG_NET_PKTGEN is not set
- # CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
- # CONFIG_AF_RXRPC is not set
--
--#
--# Wireless
--#
--# CONFIG_CFG80211 is not set
--# CONFIG_WIRELESS_EXT is not set
--# CONFIG_MAC80211 is not set
--# CONFIG_IEEE80211 is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
- # CONFIG_RFKILL is not set
- # CONFIG_NET_9P is not set
- 
-@@ -355,18 +430,20 @@
- CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
--# CONFIG_FW_LOADER is not set
--# CONFIG_DEBUG_DRIVER is not set
--# CONFIG_DEBUG_DEVRES is not set
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
- # CONFIG_SYS_HYPERVISOR is not set
- # CONFIG_CONNECTOR is not set
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
- # CONFIG_MTD_CONCAT is not set
- CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
- # CONFIG_MTD_REDBOOT_PARTS is not set
- CONFIG_MTD_CMDLINE_PARTS=y
- # CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
- 
- #
- # User Modules And Translation Layers
-@@ -410,6 +487,8 @@
- # Self-contained MTD device drivers
- #
- CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
- # CONFIG_MTD_M25P80 is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_PHRAM is not set
-@@ -426,15 +505,24 @@
- # CONFIG_MTD_NAND_VERIFY_WRITE is not set
- # CONFIG_MTD_NAND_ECC_SMC is not set
- # CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
- CONFIG_MTD_NAND_IDS=y
- # CONFIG_MTD_NAND_DISKONCHIP is not set
- CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
- # CONFIG_MTD_NAND_NANDSIM is not set
- # CONFIG_MTD_NAND_PLATFORM is not set
- # CONFIG_MTD_ALAUDA is not set
- # CONFIG_MTD_ONENAND is not set
- 
- #
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
- # UBI - Unsorted block images
- #
- # CONFIG_MTD_UBI is not set
-@@ -446,14 +534,30 @@
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_UB is not set
- CONFIG_BLK_DEV_RAM=y
--CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_COUNT=4
- CONFIG_BLK_DEV_RAM_SIZE=8192
--CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-+# CONFIG_BLK_DEV_XIP is not set
- # CONFIG_CDROM_PKTCDVD is not set
- # CONFIG_ATA_OVER_ETH is not set
- CONFIG_MISC_DEVICES=y
-+CONFIG_ATMEL_PWM=y
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+# CONFIG_ICS932S401 is not set
-+# CONFIG_ATMEL_SSC is not set
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_ISL29003 is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT24 is not set
-+# CONFIG_EEPROM_AT25 is not set
- # CONFIG_EEPROM_93CX6 is not set
--CONFIG_ATMEL_SSC=y
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
- 
- #
- # SCSI device support
-@@ -492,13 +596,13 @@
- # CONFIG_SCSI_ISCSI_ATTRS is not set
- # CONFIG_SCSI_SAS_LIBSAS is not set
- # CONFIG_SCSI_SRP_ATTRS is not set
--CONFIG_SCSI_LOWLEVEL=y
--# CONFIG_ISCSI_TCP is not set
--# CONFIG_SCSI_DEBUG is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
- # CONFIG_ATA is not set
- # CONFIG_MD is not set
- CONFIG_NETDEVICES=y
--# CONFIG_NETDEVICES_MULTIQUEUE is not set
-+# CONFIG_COMPAT_NET_DEV_OPS is not set
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
- # CONFIG_MACVLAN is not set
-@@ -511,7 +615,7 @@
- # MII PHY device drivers
- #
- # CONFIG_MARVELL_PHY is not set
--# CONFIG_DAVICOM_PHY is not set
-+CONFIG_DAVICOM_PHY=y
- # CONFIG_QSEMI_PHY is not set
- # CONFIG_LXT_PHY is not set
- # CONFIG_CICADA_PHY is not set
-@@ -519,27 +623,72 @@
- # CONFIG_SMSC_PHY is not set
- # CONFIG_BROADCOM_PHY is not set
- # CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
- # CONFIG_FIXED_PHY is not set
- # CONFIG_MDIO_BITBANG is not set
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=y
- CONFIG_MACB=y
-+CONFIG_MACB_TX_SRAM=y
- # CONFIG_AX88796 is not set
- # CONFIG_SMC91X is not set
- # CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
- # CONFIG_IBM_NEW_EMAC_ZMII is not set
- # CONFIG_IBM_NEW_EMAC_RGMII is not set
- # CONFIG_IBM_NEW_EMAC_TAH is not set
- # CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
- # CONFIG_B44 is not set
--CONFIG_NETDEV_1000=y
--CONFIG_NETDEV_10000=y
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
- 
- #
- # Wireless LAN
- #
- # CONFIG_WLAN_PRE80211 is not set
--# CONFIG_WLAN_80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+CONFIG_LIBERTAS_SPI=m
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
- 
- #
- # USB Network Adapters
-@@ -552,7 +701,6 @@
- # CONFIG_WAN is not set
- # CONFIG_PPP is not set
- # CONFIG_SLIP is not set
--# CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-@@ -563,15 +711,15 @@
- #
- CONFIG_INPUT=y
- # CONFIG_INPUT_FF_MEMLESS is not set
--# CONFIG_INPUT_POLLDEV is not set
-+CONFIG_INPUT_POLLDEV=m
- 
- #
- # Userland interfaces
- #
- CONFIG_INPUT_MOUSEDEV=y
- # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
--CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
--CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
- # CONFIG_INPUT_JOYDEV is not set
- CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
-@@ -592,16 +740,24 @@
- # CONFIG_INPUT_TABLET is not set
- CONFIG_INPUT_TOUCHSCREEN=y
- CONFIG_TOUCHSCREEN_ADS7846=y
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
- # CONFIG_TOUCHSCREEN_FUJITSU is not set
- # CONFIG_TOUCHSCREEN_GUNZE is not set
- # CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
- # CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
- # CONFIG_TOUCHSCREEN_MK712 is not set
- # CONFIG_TOUCHSCREEN_PENMOUNT is not set
- # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
- # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
--# CONFIG_TOUCHSCREEN_UCB1400 is not set
-+# CONFIG_TOUCHSCREEN_WM97XX is not set
- # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-+# CONFIG_TOUCHSCREEN_TSC2007 is not set
- # CONFIG_INPUT_MISC is not set
- 
- #
-@@ -614,9 +770,11 @@
- # Character devices
- #
- CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
- # CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
- # CONFIG_SERIAL_NONSTANDARD is not set
- 
- #
-@@ -629,63 +787,65 @@
- #
- CONFIG_SERIAL_ATMEL=y
- CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
- # CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
- CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
- CONFIG_LEGACY_PTYS=y
--CONFIG_LEGACY_PTY_COUNT=256
-+CONFIG_LEGACY_PTY_COUNT=4
- # CONFIG_IPMI_HANDLER is not set
- CONFIG_HW_RANDOM=y
--# CONFIG_NVRAM is not set
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
- # CONFIG_TCG_TPM is not set
- CONFIG_I2C=y
- CONFIG_I2C_BOARDINFO=y
--CONFIG_I2C_CHARDEV=y
-+# CONFIG_I2C_CHARDEV is not set
-+CONFIG_I2C_HELPER_AUTO=y
-+CONFIG_I2C_ALGOBIT=y
- 
- #
--# I2C Algorithms
-+# I2C Hardware Bus support
- #
--CONFIG_I2C_ALGOBIT=y
--# CONFIG_I2C_ALGOPCF is not set
--# CONFIG_I2C_ALGOPCA is not set
- 
- #
--# I2C Hardware Bus support
-+# I2C system bus drivers (mostly embedded / system-on-chip)
- #
- CONFIG_I2C_GPIO=y
- # CONFIG_I2C_OCORES is not set
--# CONFIG_I2C_PARPORT_LIGHT is not set
- # CONFIG_I2C_SIMTEC is not set
-+
-+#
-+# External I2C/SMBus adapter drivers
-+#
-+# CONFIG_I2C_PARPORT_LIGHT is not set
- # CONFIG_I2C_TAOS_EVM is not set
--# CONFIG_I2C_STUB is not set
- # CONFIG_I2C_TINY_USB is not set
--# CONFIG_I2C_PCA is not set
-+
-+#
-+# Other I2C/SMBus bus drivers
-+#
-+# CONFIG_I2C_PCA_PLATFORM is not set
-+# CONFIG_I2C_STUB is not set
- 
- #
- # Miscellaneous I2C Chip support
- #
--# CONFIG_SENSORS_DS1337 is not set
--# CONFIG_SENSORS_DS1374 is not set
- # CONFIG_DS1682 is not set
--# CONFIG_EEPROM_LEGACY is not set
- # CONFIG_SENSORS_PCF8574 is not set
-+# CONFIG_PCF8575 is not set
- # CONFIG_SENSORS_PCA9539 is not set
--# CONFIG_SENSORS_PCF8591 is not set
- # CONFIG_SENSORS_MAX6875 is not set
- # CONFIG_SENSORS_TSL2550 is not set
- # CONFIG_I2C_DEBUG_CORE is not set
- # CONFIG_I2C_DEBUG_ALGO is not set
- # CONFIG_I2C_DEBUG_BUS is not set
- # CONFIG_I2C_DEBUG_CHIP is not set
--
--#
--# SPI support
--#
- CONFIG_SPI=y
--# CONFIG_SPI_DEBUG is not set
- CONFIG_SPI_MASTER=y
- 
- #
-@@ -693,46 +853,84 @@
- #
- CONFIG_SPI_ATMEL=y
- # CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
- 
- #
- # SPI Protocol Masters
- #
--# CONFIG_EEPROM_AT25 is not set
- # CONFIG_SPI_SPIDEV is not set
- # CONFIG_SPI_TLE62X0 is not set
--# CONFIG_W1 is not set
--# CONFIG_POWER_SUPPLY is not set
--# CONFIG_HWMON is not set
--CONFIG_WATCHDOG=y
--CONFIG_WATCHDOG_NOWAYOUT=y
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
- 
- #
--# Watchdog Device Drivers
-+# Memory mapped GPIO expanders:
- #
--# CONFIG_SOFT_WATCHDOG is not set
--CONFIG_AT91SAM9X_WATCHDOG=y
- 
- #
--# USB-based Watchdog Cards
-+# I2C GPIO expanders:
- #
--# CONFIG_USBPCWATCHDOG is not set
-+# CONFIG_GPIO_MAX732X is not set
-+# CONFIG_GPIO_PCA953X is not set
-+# CONFIG_GPIO_PCF857X is not set
- 
- #
--# Sonics Silicon Backplane
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
- #
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
- CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
- # CONFIG_SSB is not set
- 
- #
- # Multifunction device drivers
- #
-+# CONFIG_MFD_CORE is not set
- # CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_UCB1400_CORE is not set
-+# CONFIG_TPS65010 is not set
-+# CONFIG_TWL4030_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+# CONFIG_PMIC_DA903X is not set
-+# CONFIG_MFD_WM8400 is not set
-+# CONFIG_MFD_WM8350_I2C is not set
-+# CONFIG_MFD_PCF50633 is not set
- 
- #
- # Multimedia devices
- #
-+
-+#
-+# Multimedia core support
-+#
- # CONFIG_VIDEO_DEV is not set
- # CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
- # CONFIG_DAB is not set
- 
- #
-@@ -743,6 +941,7 @@
- CONFIG_FB=y
- # CONFIG_FIRMWARE_EDID is not set
- # CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
- CONFIG_FB_CFB_FILLRECT=y
- CONFIG_FB_CFB_COPYAREA=y
- CONFIG_FB_CFB_IMAGEBLIT=y
-@@ -750,8 +949,8 @@
- # CONFIG_FB_SYS_FILLRECT is not set
- # CONFIG_FB_SYS_COPYAREA is not set
- # CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
- # CONFIG_FB_SYS_FOPS is not set
--CONFIG_FB_DEFERRED_IO=y
- # CONFIG_FB_SVGALIB is not set
- # CONFIG_FB_MACMODES is not set
- # CONFIG_FB_BACKLIGHT is not set
-@@ -765,7 +964,15 @@
- # CONFIG_FB_S1D13XXX is not set
- CONFIG_FB_ATMEL=y
- # CONFIG_FB_VIRTUAL is not set
--# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+# CONFIG_LCD_CLASS_DEVICE is not set
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_ATMEL_PWM is not set
-+# CONFIG_BACKLIGHT_GENERIC is not set
- 
- #
- # Display device support
-@@ -779,11 +986,41 @@
- CONFIG_DUMMY_CONSOLE=y
- # CONFIG_FRAMEBUFFER_CONSOLE is not set
- # CONFIG_LOGO is not set
--
--#
--# Sound
--#
--# CONFIG_SOUND is not set
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+CONFIG_SND_VMASTER=y
-+CONFIG_SND_AC97_CODEC=y
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+CONFIG_SND_ATMEL_AC97C=y
-+# CONFIG_SND_SPI is not set
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_AC97_BUS=y
- CONFIG_HID_SUPPORT=y
- CONFIG_HID=y
- # CONFIG_HID_DEBUG is not set
-@@ -793,57 +1030,68 @@
- # USB Input Devices
- #
- # CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
- 
- #
--# USB HID Boot Protocol drivers
-+# Special HID drivers
- #
--# CONFIG_USB_KBD is not set
--# CONFIG_USB_MOUSE is not set
- CONFIG_USB_SUPPORT=y
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
- # CONFIG_USB_ARCH_HAS_EHCI is not set
- CONFIG_USB=y
- # CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
- 
- #
- # Miscellaneous USB options
- #
- CONFIG_USB_DEVICEFS=y
--CONFIG_USB_DEVICE_CLASS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
- # CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_SUSPEND is not set
- # CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
- 
- #
- # USB Host Controller Drivers
- #
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
- # CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
- CONFIG_USB_OHCI_HCD=y
- # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
- # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
- CONFIG_USB_OHCI_LITTLE_ENDIAN=y
- # CONFIG_USB_SL811_HCD is not set
- # CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
- 
- #
- # USB Device Class drivers
- #
- # CONFIG_USB_ACM is not set
- # CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
- 
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
- #
- 
- #
--# may also be needed; see USB_STORAGE Help for more information
-+# also be needed; see USB_STORAGE Help for more info
- #
- CONFIG_USB_STORAGE=y
- # CONFIG_USB_STORAGE_DEBUG is not set
- # CONFIG_USB_STORAGE_DATAFAB is not set
- # CONFIG_USB_STORAGE_FREECOM is not set
- # CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
- # CONFIG_USB_STORAGE_USBAT is not set
- # CONFIG_USB_STORAGE_SDDR09 is not set
- # CONFIG_USB_STORAGE_SDDR55 is not set
-@@ -851,6 +1099,7 @@
- # CONFIG_USB_STORAGE_ALAUDA is not set
- # CONFIG_USB_STORAGE_ONETOUCH is not set
- # CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
- # CONFIG_USB_LIBUSUAL is not set
- 
- #
-@@ -858,15 +1107,10 @@
- #
- # CONFIG_USB_MDC800 is not set
- # CONFIG_USB_MICROTEK is not set
--CONFIG_USB_MON=y
- 
- #
- # USB port drivers
- #
--
--#
--# USB Serial Converter support
--#
- # CONFIG_USB_SERIAL is not set
- 
- #
-@@ -875,7 +1119,7 @@
- # CONFIG_USB_EMI62 is not set
- # CONFIG_USB_EMI26 is not set
- # CONFIG_USB_ADUTUX is not set
--# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_SEVSEG is not set
- # CONFIG_USB_RIO500 is not set
- # CONFIG_USB_LEGOTOWER is not set
- # CONFIG_USB_LCD is not set
-@@ -883,7 +1127,6 @@
- # CONFIG_USB_LED is not set
- # CONFIG_USB_CYPRESS_CY7C63 is not set
- # CONFIG_USB_CYTHERM is not set
--# CONFIG_USB_PHIDGET is not set
- # CONFIG_USB_IDMOUSE is not set
- # CONFIG_USB_FTDI_ELAN is not set
- # CONFIG_USB_APPLEDISPLAY is not set
-@@ -891,56 +1134,95 @@
- # CONFIG_USB_TRANCEVIBRATOR is not set
- # CONFIG_USB_IOWARRIOR is not set
- # CONFIG_USB_TEST is not set
--
--#
--# USB DSL modem support
--#
--
--#
--# USB Gadget Support
--#
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
- CONFIG_USB_GADGET=y
--# CONFIG_USB_GADGET_DEBUG is not set
- # CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
- CONFIG_USB_GADGET_SELECTED=y
--# CONFIG_USB_GADGET_AMD5536UDC is not set
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
- # CONFIG_USB_GADGET_ATMEL_USBA is not set
- # CONFIG_USB_GADGET_FSL_USB2 is not set
--# CONFIG_USB_GADGET_NET2280 is not set
--# CONFIG_USB_GADGET_PXA2XX is not set
--# CONFIG_USB_GADGET_M66592 is not set
--# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_LH7A40X is not set
- # CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
- # CONFIG_USB_GADGET_S3C2410 is not set
--CONFIG_USB_GADGET_AT91=y
--CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_DUMMY_HCD is not set
- # CONFIG_USB_GADGET_DUALSPEED is not set
- CONFIG_USB_ZERO=m
--# CONFIG_USB_ETH is not set
--CONFIG_USB_GADGETFS=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
- CONFIG_USB_FILE_STORAGE=m
- # CONFIG_USB_FILE_STORAGE_TEST is not set
- CONFIG_USB_G_SERIAL=m
- # CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
- CONFIG_MMC=y
- # CONFIG_MMC_DEBUG is not set
- # CONFIG_MMC_UNSAFE_RESUME is not set
- 
- #
--# MMC/SD Card Drivers
-+# MMC/SD/SDIO Card Drivers
- #
- CONFIG_MMC_BLOCK=y
- CONFIG_MMC_BLOCK_BOUNCE=y
--# CONFIG_SDIO_UART is not set
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
- 
- #
--# MMC/SD Host Controller Drivers
-+# MMC/SD/SDIO Host Controller Drivers
- #
--CONFIG_MMC_AT91=m
-+# CONFIG_MMC_SDHCI is not set
-+CONFIG_MMC_AT91=y
-+# CONFIG_MMC_ATMELMCI is not set
- # CONFIG_MMC_SPI is not set
--# CONFIG_NEW_LEDS is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_ATMEL_PWM=y
-+# CONFIG_LEDS_PCA9532 is not set
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_LP5521 is not set
-+# CONFIG_LEDS_PCA955X is not set
-+# CONFIG_LEDS_DAC124S085 is not set
-+# CONFIG_LEDS_BD2802 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
- CONFIG_RTC_LIB=y
- CONFIG_RTC_CLASS=y
- CONFIG_RTC_HCTOSYS=y
-@@ -969,28 +1251,47 @@
- # CONFIG_RTC_DRV_PCF8563 is not set
- # CONFIG_RTC_DRV_PCF8583 is not set
- # CONFIG_RTC_DRV_M41T80 is not set
-+# CONFIG_RTC_DRV_S35390A is not set
-+# CONFIG_RTC_DRV_FM3130 is not set
-+# CONFIG_RTC_DRV_RX8581 is not set
- 
- #
- # SPI RTC drivers
- #
--# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
- # CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
- 
- #
- # Platform RTC drivers
- #
- # CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
- # CONFIG_RTC_DRV_DS1553 is not set
--# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
- # CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
- # CONFIG_RTC_DRV_V3020 is not set
- 
- #
- # on-CPU RTC drivers
- #
- CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
- 
- #
- # File systems
-@@ -999,24 +1300,28 @@
- # CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
--# CONFIG_EXT4DEV_FS is not set
-+# CONFIG_EXT4_FS is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
- # CONFIG_XFS_FS is not set
--# CONFIG_GFS2_FS is not set
- # CONFIG_OCFS2_FS is not set
--# CONFIG_MINIX_FS is not set
--# CONFIG_ROMFS_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
- CONFIG_INOTIFY=y
- CONFIG_INOTIFY_USER=y
- # CONFIG_QUOTA is not set
--CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_FUSE_FS is not set
- 
- #
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
- # CD-ROM/DVD Filesystems
- #
- # CONFIG_ISO9660_FS is not set
-@@ -1026,7 +1331,7 @@
- # DOS/FAT/NT Filesystems
- #
- CONFIG_FAT_FS=y
--# CONFIG_MSDOS_FS is not set
-+CONFIG_MSDOS_FS=y
- CONFIG_VFAT_FS=y
- CONFIG_FAT_DEFAULT_CODEPAGE=437
- CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-@@ -1037,15 +1342,13 @@
- #
- CONFIG_PROC_FS=y
- CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_TMPFS_POSIX_ACL is not set
- # CONFIG_HUGETLB_PAGE is not set
- # CONFIG_CONFIGFS_FS is not set
--
--#
--# Miscellaneous filesystems
--#
-+CONFIG_MISC_FILESYSTEMS=y
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-@@ -1057,30 +1360,36 @@
- CONFIG_JFFS2_FS_DEBUG=0
- CONFIG_JFFS2_FS_WRITEBUFFER=y
- # CONFIG_JFFS2_FS_WBUF_VERIFY is not set
--# CONFIG_JFFS2_SUMMARY is not set
-+CONFIG_JFFS2_SUMMARY=y
- # CONFIG_JFFS2_FS_XATTR is not set
- # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
- CONFIG_JFFS2_ZLIB=y
- # CONFIG_JFFS2_LZO is not set
- CONFIG_JFFS2_RTIME=y
- # CONFIG_JFFS2_RUBIN is not set
--CONFIG_CRAMFS=y
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
- # CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
- # CONFIG_SYSV_FS is not set
- # CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
- CONFIG_NETWORK_FILESYSTEMS=y
- CONFIG_NFS_FS=y
--# CONFIG_NFS_V3 is not set
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- # CONFIG_NFS_V4 is not set
--# CONFIG_NFS_DIRECTIO is not set
- # CONFIG_NFSD is not set
--CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
- CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
--# CONFIG_SUNRPC_BIND34 is not set
- # CONFIG_RPCSEC_GSS_KRB5 is not set
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
-@@ -1130,14 +1439,11 @@
- # CONFIG_NLS_ISO8859_9 is not set
- # CONFIG_NLS_ISO8859_13 is not set
- # CONFIG_NLS_ISO8859_14 is not set
--# CONFIG_NLS_ISO8859_15 is not set
-+CONFIG_NLS_ISO8859_15=y
- # CONFIG_NLS_KOI8_R is not set
- # CONFIG_NLS_KOI8_U is not set
--# CONFIG_NLS_UTF8 is not set
-+CONFIG_NLS_UTF8=y
- # CONFIG_DLM is not set
--CONFIG_INSTRUMENTATION=y
--# CONFIG_PROFILING is not set
--# CONFIG_MARKERS is not set
- 
- #
- # Kernel hacking
-@@ -1145,64 +1451,161 @@
- # CONFIG_PRINTK_TIME is not set
- CONFIG_ENABLE_WARN_DEPRECATED=y
- CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_UNUSED_SYMBOLS is not set
- # CONFIG_DEBUG_FS is not set
- # CONFIG_HEADERS_CHECK is not set
--CONFIG_DEBUG_KERNEL=y
--# CONFIG_DEBUG_SHIRQ is not set
--CONFIG_DETECT_SOFTLOCKUP=y
--CONFIG_SCHED_DEBUG=y
--# CONFIG_SCHEDSTATS is not set
--# CONFIG_TIMER_STATS is not set
--# CONFIG_DEBUG_SLAB is not set
--# CONFIG_DEBUG_RT_MUTEXES is not set
--# CONFIG_RT_MUTEX_TESTER is not set
--# CONFIG_DEBUG_SPINLOCK is not set
--# CONFIG_DEBUG_MUTEXES is not set
--# CONFIG_DEBUG_LOCK_ALLOC is not set
--# CONFIG_PROVE_LOCKING is not set
--# CONFIG_LOCK_STAT is not set
--# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
--# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
--# CONFIG_DEBUG_KOBJECT is not set
-+# CONFIG_DEBUG_KERNEL is not set
- CONFIG_DEBUG_BUGVERBOSE=y
--# CONFIG_DEBUG_INFO is not set
--# CONFIG_DEBUG_VM is not set
--# CONFIG_DEBUG_LIST is not set
--# CONFIG_DEBUG_SG is not set
--CONFIG_FRAME_POINTER=y
--CONFIG_FORCED_INLINING=y
--# CONFIG_BOOT_PRINTK_DELAY is not set
--# CONFIG_RCU_TORTURE_TEST is not set
--# CONFIG_FAULT_INJECTION is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
- # CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
- CONFIG_DEBUG_USER=y
--# CONFIG_DEBUG_ERRORS is not set
--CONFIG_DEBUG_LL=y
--# CONFIG_DEBUG_ICEDCC is not set
- 
- #
- # Security options
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
- # CONFIG_SECURITY_FILE_CAPABILITIES is not set
--# CONFIG_CRYPTO is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
- 
- #
- # Library routines
- #
- CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
- # CONFIG_CRC_CCITT is not set
- # CONFIG_CRC16 is not set
--# CONFIG_CRC_ITU_T is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
- CONFIG_CRC32=y
- # CONFIG_CRC7 is not set
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
- CONFIG_ZLIB_DEFLATE=y
--CONFIG_PLIST=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
- CONFIG_HAS_IOMEM=y
- CONFIG_HAS_IOPORT=y
- CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9g45ekes_defconfig
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/configs/at91sam9g45ekes_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -0,0 +1,1617 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.30
-+# Mon Oct 12 17:39:21 2009
-+#
-+CONFIG_ARM=y
-+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-+CONFIG_GENERIC_GPIO=y
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+CONFIG_MMU=y
-+# CONFIG_NO_IOPORT is not set
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+
-+#
-+# General setup
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_SYSVIPC_SYSCTL=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
-+# CONFIG_CGROUPS is not set
-+CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
-+# CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
-+CONFIG_BLK_DEV_INITRD=y
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+CONFIG_SHMEM=y
-+CONFIG_AIO=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
-+CONFIG_SLAB=y
-+# CONFIG_SLUB is not set
-+# CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+# CONFIG_FREEZER is not set
-+
-+#
-+# System Type
-+#
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+CONFIG_ARCH_AT91=y
-+# CONFIG_ARCH_CLPS711X is not set
-+# CONFIG_ARCH_EBSA110 is not set
-+# CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
-+# CONFIG_ARCH_FOOTBRIDGE is not set
-+# CONFIG_ARCH_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP13XX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X is not set
-+# CONFIG_ARCH_IXP23XX is not set
-+# CONFIG_ARCH_IXP2000 is not set
-+# CONFIG_ARCH_IXP4XX is not set
-+# CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
-+# CONFIG_ARCH_KS8695 is not set
-+# CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
-+# CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
-+# CONFIG_ARCH_PNX4008 is not set
-+# CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
-+# CONFIG_ARCH_RPC is not set
-+# CONFIG_ARCH_SA1100 is not set
-+# CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
-+# CONFIG_ARCH_SHARK is not set
-+# CONFIG_ARCH_LH7A40X is not set
-+# CONFIG_ARCH_DAVINCI is not set
-+# CONFIG_ARCH_OMAP is not set
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
-+
-+#
-+# Atmel AT91 System-on-Chip
-+#
-+# CONFIG_ARCH_AT91RM9200 is not set
-+# CONFIG_ARCH_AT91SAM9260 is not set
-+# CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
-+# CONFIG_ARCH_AT91SAM9263 is not set
-+# CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+CONFIG_ARCH_AT91SAM9G45=y
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
-+# CONFIG_ARCH_AT91X40 is not set
-+CONFIG_AT91_PMC_UNIT=y
-+
-+#
-+# AT91SAM9G45 Board Type
-+#
-+CONFIG_MACH_AT91SAM9G45EKES=y
-+
-+#
-+# AT91 Board Options
-+#
-+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
-+
-+#
-+# AT91 Feature Selections
-+#
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
-+
-+#
-+# Processor Type
-+#
-+CONFIG_CPU_32=y
-+CONFIG_CPU_ARM926T=y
-+CONFIG_CPU_32v5=y
-+CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
-+CONFIG_CPU_CACHE_VIVT=y
-+CONFIG_CPU_COPY_V4WB=y
-+CONFIG_CPU_TLB_V4WBI=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-+
-+#
-+# Processor Features
-+#
-+CONFIG_ARM_THUMB=y
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-+# CONFIG_OUTER_CACHE is not set
-+
-+#
-+# Bus support
-+#
-+# CONFIG_PCI_SYSCALL is not set
-+# CONFIG_ARCH_SUPPORTS_MSI is not set
-+# CONFIG_PCCARD is not set
-+
-+#
-+# Kernel Features
-+#
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
-+# CONFIG_PREEMPT is not set
-+CONFIG_HZ=100
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
-+CONFIG_ALIGNMENT_TRAP=y
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZBOOT_ROM_TEXT=0x0
-+CONFIG_ZBOOT_ROM_BSS=0x0
-+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x71100000,25165824 root=/dev/ram0 rw"
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC is not set
-+
-+#
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
-+# Floating point emulation
-+#
-+
-+#
-+# At least one emulation must be selected
-+#
-+CONFIG_FPE_NWFPE=y
-+# CONFIG_FPE_NWFPE_XP is not set
-+# CONFIG_FPE_FASTFPE is not set
-+# CONFIG_VFP is not set
-+
-+#
-+# Userspace binary formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
-+# CONFIG_BINFMT_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options
-+#
-+# CONFIG_PM is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_AF_RXRPC is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
-+# CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_CONNECTOR is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+# CONFIG_MTD_DATAFLASH is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+# CONFIG_MTD_UBI is not set
-+# CONFIG_PARPORT is not set
-+CONFIG_BLK_DEV=y
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=4
-+CONFIG_BLK_DEV_RAM_SIZE=8192
-+# CONFIG_BLK_DEV_XIP is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+CONFIG_MISC_DEVICES=y
-+# CONFIG_ATMEL_PWM is not set
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+# CONFIG_ICS932S401 is not set
-+# CONFIG_ATMEL_SSC is not set
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_ISL29003 is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT24 is not set
-+# CONFIG_EEPROM_AT25 is not set
-+# CONFIG_EEPROM_LEGACY is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+# CONFIG_SCSI_SCAN_ASYNC is not set
-+CONFIG_SCSI_WAIT_SCAN=m
-+
-+#
-+# SCSI Transports
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_LIBSAS is not set
-+# CONFIG_SCSI_SRP_ATTRS is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+CONFIG_NETDEVICES=y
-+CONFIG_COMPAT_NET_DEV_OPS=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+CONFIG_DAVICOM_PHY=y
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+CONFIG_MACB=y
-+# CONFIG_AX88796 is not set
-+# CONFIG_SMC91X is not set
-+# CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
-+# CONFIG_IBM_NEW_EMAC_ZMII is not set
-+# CONFIG_IBM_NEW_EMAC_RGMII is not set
-+# CONFIG_IBM_NEW_EMAC_TAH is not set
-+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-+# CONFIG_B44 is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+CONFIG_LIBERTAS_SPI=m
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+CONFIG_INPUT_POLLDEV=m
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
-+CONFIG_INPUT_JOYDEV=y
-+CONFIG_INPUT_EVDEV=y
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_GPIO=y
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+CONFIG_INPUT_TOUCHSCREEN=y
-+# CONFIG_TOUCHSCREEN_ADS7846 is not set
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
-+# CONFIG_TOUCHSCREEN_FUJITSU is not set
-+# CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
-+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-+CONFIG_TOUCHSCREEN_ATMEL_TSADCC=y
-+# CONFIG_TOUCHSCREEN_WM97XX is not set
-+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-+# CONFIG_TOUCHSCREEN_TSC2007 is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_ATMEL=y
-+CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
-+# CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=4
-+# CONFIG_IPMI_HANDLER is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+CONFIG_I2C=y
-+CONFIG_I2C_BOARDINFO=y
-+# CONFIG_I2C_CHARDEV is not set
-+CONFIG_I2C_HELPER_AUTO=y
-+CONFIG_I2C_ALGOBIT=y
-+
-+#
-+# I2C Hardware Bus support
-+#
-+
-+#
-+# I2C system bus drivers (mostly embedded / system-on-chip)
-+#
-+CONFIG_I2C_GPIO=y
-+# CONFIG_I2C_OCORES is not set
-+# CONFIG_I2C_SIMTEC is not set
-+
-+#
-+# External I2C/SMBus adapter drivers
-+#
-+# CONFIG_I2C_PARPORT_LIGHT is not set
-+# CONFIG_I2C_TAOS_EVM is not set
-+# CONFIG_I2C_TINY_USB is not set
-+
-+#
-+# Other I2C/SMBus bus drivers
-+#
-+# CONFIG_I2C_PCA_PLATFORM is not set
-+# CONFIG_I2C_STUB is not set
-+
-+#
-+# Miscellaneous I2C Chip support
-+#
-+# CONFIG_DS1682 is not set
-+# CONFIG_SENSORS_PCF8574 is not set
-+# CONFIG_PCF8575 is not set
-+# CONFIG_SENSORS_PCA9539 is not set
-+# CONFIG_SENSORS_MAX6875 is not set
-+# CONFIG_SENSORS_TSL2550 is not set
-+# CONFIG_I2C_DEBUG_CORE is not set
-+# CONFIG_I2C_DEBUG_ALGO is not set
-+# CONFIG_I2C_DEBUG_BUS is not set
-+# CONFIG_I2C_DEBUG_CHIP is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
-+
-+#
-+# SPI Master Controller Drivers
-+#
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
-+
-+#
-+# SPI Protocol Masters
-+#
-+# CONFIG_SPI_SPIDEV is not set
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX732X is not set
-+# CONFIG_GPIO_PCA953X is not set
-+# CONFIG_GPIO_PCF857X is not set
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_UCB1400_CORE is not set
-+# CONFIG_TPS65010 is not set
-+# CONFIG_TWL4030_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+# CONFIG_PMIC_DA903X is not set
-+# CONFIG_MFD_WM8400 is not set
-+# CONFIG_MFD_WM8350_I2C is not set
-+# CONFIG_MFD_PCF50633 is not set
-+
-+#
-+# Multimedia devices
-+#
-+
-+#
-+# Multimedia core support
-+#
-+# CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_VGASTATE is not set
-+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-+CONFIG_FB=y
-+# CONFIG_FIRMWARE_EDID is not set
-+# CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-+CONFIG_FB_CFB_FILLRECT=y
-+CONFIG_FB_CFB_COPYAREA=y
-+CONFIG_FB_CFB_IMAGEBLIT=y
-+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-+# CONFIG_FB_SYS_FILLRECT is not set
-+# CONFIG_FB_SYS_COPYAREA is not set
-+# CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
-+# CONFIG_FB_SYS_FOPS is not set
-+# CONFIG_FB_SVGALIB is not set
-+# CONFIG_FB_MACMODES is not set
-+# CONFIG_FB_BACKLIGHT is not set
-+# CONFIG_FB_MODE_HELPERS is not set
-+# CONFIG_FB_TILEBLITTING is not set
-+
-+#
-+# Frame buffer hardware drivers
-+#
-+# CONFIG_FB_S1D15605 is not set
-+# CONFIG_FB_S1D13XXX is not set
-+CONFIG_FB_ATMEL=y
-+# CONFIG_FB_VIRTUAL is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+# CONFIG_LCD_CLASS_DEVICE is not set
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_GENERIC is not set
-+
-+#
-+# Display device support
-+#
-+# CONFIG_DISPLAY_SUPPORT is not set
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+# CONFIG_FRAMEBUFFER_CONSOLE is not set
-+# CONFIG_LOGO is not set
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+CONFIG_SND_VMASTER=y
-+CONFIG_SND_AC97_CODEC=y
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+CONFIG_SND_ATMEL_AC97C=y
-+# CONFIG_SND_SPI is not set
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_AC97_BUS=y
-+CONFIG_HID_SUPPORT=y
-+CONFIG_HID=y
-+# CONFIG_HID_DEBUG is not set
-+# CONFIG_HIDRAW is not set
-+
-+#
-+# USB Input Devices
-+#
-+# CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
-+
-+#
-+# Special HID drivers
-+#
-+CONFIG_USB_SUPPORT=y
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+CONFIG_USB_ARCH_HAS_EHCI=y
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_C67X00_HCD is not set
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
-+
-+#
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-+#
-+
-+#
-+# also be needed; see USB_STORAGE Help for more info
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
-+# CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_ADUTUX is not set
-+# CONFIG_USB_SEVSEG is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_BERRY_CHARGE is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYPRESS_CY7C63 is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_FTDI_ELAN is not set
-+# CONFIG_USB_APPLEDISPLAY is not set
-+# CONFIG_USB_SISUSBVGA is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TRANCEVIBRATOR is not set
-+# CONFIG_USB_IOWARRIOR is not set
-+# CONFIG_USB_TEST is not set
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+# CONFIG_USB_GADGET_AT91 is not set
-+CONFIG_USB_GADGET_ATMEL_USBA=y
-+CONFIG_USB_ATMEL_USBA=y
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+CONFIG_USB_GADGET_DUALSPEED=y
-+CONFIG_USB_ZERO=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
-+# CONFIG_USB_FILE_STORAGE is not set
-+CONFIG_USB_G_SERIAL=m
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+# CONFIG_MMC_BLOCK_BOUNCE is not set
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+# CONFIG_MMC_AT91 is not set
-+CONFIG_MMC_ATMELMCI=y
-+CONFIG_MMC_ATMELMCI_DMA=y
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+# CONFIG_LEDS_PCA9532 is not set
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_LP5521 is not set
-+# CONFIG_LEDS_PCA955X is not set
-+# CONFIG_LEDS_DAC124S085 is not set
-+# CONFIG_LEDS_BD2802 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+# CONFIG_RTC_DRV_TEST is not set
-+
-+#
-+# I2C RTC drivers
-+#
-+# CONFIG_RTC_DRV_DS1307 is not set
-+# CONFIG_RTC_DRV_DS1374 is not set
-+# CONFIG_RTC_DRV_DS1672 is not set
-+# CONFIG_RTC_DRV_MAX6900 is not set
-+# CONFIG_RTC_DRV_RS5C372 is not set
-+# CONFIG_RTC_DRV_ISL1208 is not set
-+# CONFIG_RTC_DRV_X1205 is not set
-+# CONFIG_RTC_DRV_PCF8563 is not set
-+# CONFIG_RTC_DRV_PCF8583 is not set
-+# CONFIG_RTC_DRV_M41T80 is not set
-+# CONFIG_RTC_DRV_S35390A is not set
-+# CONFIG_RTC_DRV_FM3130 is not set
-+# CONFIG_RTC_DRV_RX8581 is not set
-+
-+#
-+# SPI RTC drivers
-+#
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
-+
-+#
-+# Platform RTC drivers
-+#
-+# CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
-+# CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
-+# on-CPU RTC drivers
-+#
-+CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+CONFIG_DMADEVICES=y
-+
-+#
-+# DMA Devices
-+#
-+CONFIG_AT_HDMAC=y
-+CONFIG_DMA_ENGINE=y
-+
-+#
-+# DMA Clients
-+#
-+# CONFIG_NET_DMA is not set
-+# CONFIG_ASYNC_TX_DMA is not set
-+CONFIG_DMATEST=m
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
-+# CONFIG_XFS_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+# CONFIG_MSDOS_FS is not set
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+CONFIG_MISC_FILESYSTEMS=y
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+# CONFIG_JFFS2_CMODE_NONE is not set
-+# CONFIG_JFFS2_CMODE_PRIORITY is not set
-+# CONFIG_JFFS2_CMODE_SIZE is not set
-+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+CONFIG_NLS_CODEPAGE_850=y
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+# CONFIG_DLM is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+CONFIG_ENABLE_WARN_DEPRECATED=y
-+CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_HEADERS_CHECK is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+CONFIG_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
-+CONFIG_CRC32=y
-+# CONFIG_CRC7 is not set
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9g20ek_2mmc_defconfig
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/configs/at91sam9g20ek_2mmc_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -0,0 +1,1557 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.30
-+# Mon Oct 12 18:24:05 2009
-+#
-+CONFIG_ARM=y
-+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-+CONFIG_GENERIC_GPIO=y
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+CONFIG_MMU=y
-+# CONFIG_NO_IOPORT is not set
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+
-+#
-+# General setup
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_SYSVIPC_SYSCTL=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
-+# CONFIG_CGROUPS is not set
-+CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
-+# CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
-+CONFIG_BLK_DEV_INITRD=y
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+CONFIG_SHMEM=y
-+CONFIG_AIO=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
-+CONFIG_SLAB=y
-+# CONFIG_SLUB is not set
-+# CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
-+
-+#
-+# System Type
-+#
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+CONFIG_ARCH_AT91=y
-+# CONFIG_ARCH_CLPS711X is not set
-+# CONFIG_ARCH_EBSA110 is not set
-+# CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
-+# CONFIG_ARCH_FOOTBRIDGE is not set
-+# CONFIG_ARCH_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP13XX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X is not set
-+# CONFIG_ARCH_IXP23XX is not set
-+# CONFIG_ARCH_IXP2000 is not set
-+# CONFIG_ARCH_IXP4XX is not set
-+# CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
-+# CONFIG_ARCH_KS8695 is not set
-+# CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
-+# CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
-+# CONFIG_ARCH_PNX4008 is not set
-+# CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
-+# CONFIG_ARCH_RPC is not set
-+# CONFIG_ARCH_SA1100 is not set
-+# CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
-+# CONFIG_ARCH_SHARK is not set
-+# CONFIG_ARCH_LH7A40X is not set
-+# CONFIG_ARCH_DAVINCI is not set
-+# CONFIG_ARCH_OMAP is not set
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
-+
-+#
-+# Atmel AT91 System-on-Chip
-+#
-+# CONFIG_ARCH_AT91RM9200 is not set
-+# CONFIG_ARCH_AT91SAM9260 is not set
-+# CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
-+# CONFIG_ARCH_AT91SAM9263 is not set
-+# CONFIG_ARCH_AT91SAM9RL is not set
-+CONFIG_ARCH_AT91SAM9G20=y
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
-+# CONFIG_ARCH_AT91X40 is not set
-+CONFIG_AT91_PMC_UNIT=y
-+
-+#
-+# AT91SAM9G20 Board Type
-+#
-+# CONFIG_MACH_AT91SAM9G20EK is not set
-+CONFIG_MACH_AT91SAM9G20EK_2MMC=y
-+# CONFIG_MACH_USB_A9G20 is not set
-+# CONFIG_MACH_QIL_A9G20 is not set
-+# CONFIG_MACH_SBC35_A9G20 is not set
-+
-+#
-+# AT91 Board Options
-+#
-+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
-+
-+#
-+# AT91 Feature Selections
-+#
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+# CONFIG_AT91_SLOW_CLOCK is not set
-+CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
-+
-+#
-+# Processor Type
-+#
-+CONFIG_CPU_32=y
-+CONFIG_CPU_ARM926T=y
-+CONFIG_CPU_32v5=y
-+CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
-+CONFIG_CPU_CACHE_VIVT=y
-+CONFIG_CPU_COPY_V4WB=y
-+CONFIG_CPU_TLB_V4WBI=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-+
-+#
-+# Processor Features
-+#
-+CONFIG_ARM_THUMB=y
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-+# CONFIG_OUTER_CACHE is not set
-+
-+#
-+# Bus support
-+#
-+# CONFIG_PCI_SYSCALL is not set
-+# CONFIG_ARCH_SUPPORTS_MSI is not set
-+# CONFIG_PCCARD is not set
-+
-+#
-+# Kernel Features
-+#
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
-+# CONFIG_PREEMPT is not set
-+CONFIG_HZ=100
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
-+CONFIG_ALIGNMENT_TRAP=y
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZBOOT_ROM_TEXT=0x0
-+CONFIG_ZBOOT_ROM_BSS=0x0
-+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC is not set
-+
-+#
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
-+# Floating point emulation
-+#
-+
-+#
-+# At least one emulation must be selected
-+#
-+CONFIG_FPE_NWFPE=y
-+# CONFIG_FPE_NWFPE_XP is not set
-+# CONFIG_FPE_FASTFPE is not set
-+# CONFIG_VFP is not set
-+
-+#
-+# Userspace binary formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
-+# CONFIG_BINFMT_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options
-+#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_AF_RXRPC is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
-+# CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_CONNECTOR is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+# CONFIG_MTD_UBI is not set
-+# CONFIG_PARPORT is not set
-+CONFIG_BLK_DEV=y
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=4
-+CONFIG_BLK_DEV_RAM_SIZE=8192
-+# CONFIG_BLK_DEV_XIP is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+CONFIG_MISC_DEVICES=y
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+# CONFIG_ICS932S401 is not set
-+CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_ISL29003 is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT24 is not set
-+# CONFIG_EEPROM_AT25 is not set
-+# CONFIG_EEPROM_LEGACY is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+# CONFIG_SCSI_SCAN_ASYNC is not set
-+CONFIG_SCSI_WAIT_SCAN=m
-+
-+#
-+# SCSI Transports
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_LIBSAS is not set
-+# CONFIG_SCSI_SRP_ATTRS is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+CONFIG_NETDEVICES=y
-+CONFIG_COMPAT_NET_DEV_OPS=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+CONFIG_DAVICOM_PHY=y
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+CONFIG_MACB=y
-+# CONFIG_AX88796 is not set
-+# CONFIG_SMC91X is not set
-+# CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
-+# CONFIG_IBM_NEW_EMAC_ZMII is not set
-+# CONFIG_IBM_NEW_EMAC_RGMII is not set
-+# CONFIG_IBM_NEW_EMAC_TAH is not set
-+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-+# CONFIG_B44 is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+CONFIG_LIBERTAS_SPI=m
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+CONFIG_INPUT_POLLDEV=m
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
-+# CONFIG_INPUT_JOYDEV is not set
-+CONFIG_INPUT_EVDEV=y
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_GPIO=y
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_ATMEL=y
-+CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
-+# CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=4
-+# CONFIG_IPMI_HANDLER is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+CONFIG_I2C=y
-+CONFIG_I2C_BOARDINFO=y
-+CONFIG_I2C_CHARDEV=m
-+CONFIG_I2C_HELPER_AUTO=y
-+CONFIG_I2C_ALGOBIT=y
-+
-+#
-+# I2C Hardware Bus support
-+#
-+
-+#
-+# I2C system bus drivers (mostly embedded / system-on-chip)
-+#
-+CONFIG_I2C_GPIO=y
-+# CONFIG_I2C_OCORES is not set
-+# CONFIG_I2C_SIMTEC is not set
-+
-+#
-+# External I2C/SMBus adapter drivers
-+#
-+# CONFIG_I2C_PARPORT_LIGHT is not set
-+# CONFIG_I2C_TAOS_EVM is not set
-+# CONFIG_I2C_TINY_USB is not set
-+
-+#
-+# Other I2C/SMBus bus drivers
-+#
-+# CONFIG_I2C_PCA_PLATFORM is not set
-+# CONFIG_I2C_STUB is not set
-+
-+#
-+# Miscellaneous I2C Chip support
-+#
-+# CONFIG_DS1682 is not set
-+# CONFIG_SENSORS_PCF8574 is not set
-+# CONFIG_PCF8575 is not set
-+# CONFIG_SENSORS_PCA9539 is not set
-+# CONFIG_SENSORS_MAX6875 is not set
-+# CONFIG_SENSORS_TSL2550 is not set
-+# CONFIG_I2C_DEBUG_CORE is not set
-+# CONFIG_I2C_DEBUG_ALGO is not set
-+# CONFIG_I2C_DEBUG_BUS is not set
-+# CONFIG_I2C_DEBUG_CHIP is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
-+
-+#
-+# SPI Master Controller Drivers
-+#
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
-+
-+#
-+# SPI Protocol Masters
-+#
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX732X is not set
-+# CONFIG_GPIO_PCA953X is not set
-+# CONFIG_GPIO_PCF857X is not set
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_TPS65010 is not set
-+# CONFIG_TWL4030_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+# CONFIG_PMIC_DA903X is not set
-+# CONFIG_MFD_WM8400 is not set
-+# CONFIG_MFD_WM8350_I2C is not set
-+# CONFIG_MFD_PCF50633 is not set
-+
-+#
-+# Multimedia devices
-+#
-+
-+#
-+# Multimedia core support
-+#
-+# CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_VGASTATE is not set
-+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-+# CONFIG_FB is not set
-+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+
-+#
-+# Display device support
-+#
-+# CONFIG_DISPLAY_SUPPORT is not set
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_JACK=y
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+CONFIG_SND_SEQUENCER_OSS=y
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+# CONFIG_SND_ATMEL_AC97C is not set
-+# CONFIG_SND_SPI is not set
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+CONFIG_SND_SOC=y
-+CONFIG_SND_ATMEL_SOC=y
-+CONFIG_SND_ATMEL_SOC_SSC=y
-+CONFIG_SND_AT91_SOC_SAM9G20_WM8731=y
-+CONFIG_SND_SOC_I2C_AND_SPI=y
-+# CONFIG_SND_SOC_ALL_CODECS is not set
-+CONFIG_SND_SOC_WM8731=y
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_HID_SUPPORT=y
-+CONFIG_HID=y
-+# CONFIG_HID_DEBUG is not set
-+# CONFIG_HIDRAW is not set
-+
-+#
-+# USB Input Devices
-+#
-+# CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
-+
-+#
-+# Special HID drivers
-+#
-+CONFIG_USB_SUPPORT=y
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB_ARCH_HAS_EHCI is not set
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_SUSPEND is not set
-+# CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
-+
-+#
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-+#
-+
-+#
-+# also be needed; see USB_STORAGE Help for more info
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
-+# CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_ADUTUX is not set
-+# CONFIG_USB_SEVSEG is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_BERRY_CHARGE is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYPRESS_CY7C63 is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_FTDI_ELAN is not set
-+# CONFIG_USB_APPLEDISPLAY is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TRANCEVIBRATOR is not set
-+# CONFIG_USB_IOWARRIOR is not set
-+# CONFIG_USB_TEST is not set
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_ATMEL_USBA is not set
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+# CONFIG_USB_GADGET_DUALSPEED is not set
-+CONFIG_USB_ZERO=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
-+CONFIG_USB_FILE_STORAGE=m
-+# CONFIG_USB_FILE_STORAGE_TEST is not set
-+CONFIG_USB_G_SERIAL=m
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+CONFIG_MMC_AT91=y
-+# CONFIG_MMC_ATMELMCI is not set
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+# CONFIG_LEDS_PCA9532 is not set
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_LP5521 is not set
-+# CONFIG_LEDS_PCA955X is not set
-+# CONFIG_LEDS_DAC124S085 is not set
-+# CONFIG_LEDS_BD2802 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+# CONFIG_RTC_DRV_TEST is not set
-+
-+#
-+# I2C RTC drivers
-+#
-+# CONFIG_RTC_DRV_DS1307 is not set
-+# CONFIG_RTC_DRV_DS1374 is not set
-+# CONFIG_RTC_DRV_DS1672 is not set
-+# CONFIG_RTC_DRV_MAX6900 is not set
-+# CONFIG_RTC_DRV_RS5C372 is not set
-+# CONFIG_RTC_DRV_ISL1208 is not set
-+# CONFIG_RTC_DRV_X1205 is not set
-+# CONFIG_RTC_DRV_PCF8563 is not set
-+# CONFIG_RTC_DRV_PCF8583 is not set
-+# CONFIG_RTC_DRV_M41T80 is not set
-+# CONFIG_RTC_DRV_S35390A is not set
-+# CONFIG_RTC_DRV_FM3130 is not set
-+# CONFIG_RTC_DRV_RX8581 is not set
-+
-+#
-+# SPI RTC drivers
-+#
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
-+
-+#
-+# Platform RTC drivers
-+#
-+# CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
-+# CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
-+# on-CPU RTC drivers
-+#
-+CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
-+# CONFIG_XFS_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+CONFIG_MISC_FILESYSTEMS=y
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+CONFIG_NLS_CODEPAGE_850=y
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+# CONFIG_DLM is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+CONFIG_ENABLE_WARN_DEPRECATED=y
-+CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_HEADERS_CHECK is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+CONFIG_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
-+CONFIG_CRC32=y
-+# CONFIG_CRC7 is not set
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9g20ek_defconfig
-===================================================================
---- linux-2.6.30.orig/arch/arm/configs/at91sam9g20ek_defconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/configs/at91sam9g20ek_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.24
--# Tue Jun 10 15:51:52 2008
-+# Linux kernel version: 2.6.30
-+# Mon Oct 12 18:24:05 2009
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-@@ -12,6 +12,7 @@
- # CONFIG_NO_IOPORT is not set
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
- CONFIG_LOCKDEP_SUPPORT=y
- CONFIG_TRACE_IRQFLAGS_SUPPORT=y
- CONFIG_HARDIRQS_SW_RESEND=y
-@@ -21,7 +22,7 @@
- # CONFIG_ARCH_HAS_ILOG2_U64 is not set
- CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
--CONFIG_ZONE_DMA=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
- CONFIG_VECTORS_BASE=0xffff0000
- CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
- 
-@@ -39,54 +40,82 @@
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_TASKSTATS is not set
--# CONFIG_USER_NS is not set
--# CONFIG_PID_NS is not set
- # CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
- # CONFIG_IKCONFIG is not set
- CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
- # CONFIG_CGROUPS is not set
--# CONFIG_FAIR_GROUP_SCHED is not set
- CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
- # CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
- CONFIG_BLK_DEV_INITRD=y
- CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
- # CONFIG_EMBEDDED is not set
- CONFIG_UID16=y
- CONFIG_SYSCTL_SYSCALL=y
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
- CONFIG_HOTPLUG=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
- CONFIG_ELF_CORE=y
- CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
--CONFIG_ANON_INODES=y
- CONFIG_EPOLL=y
- CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
- CONFIG_EVENTFD=y
- CONFIG_SHMEM=y
-+CONFIG_AIO=y
- CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
- CONFIG_SLAB=y
- # CONFIG_SLUB is not set
- # CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
- CONFIG_SLABINFO=y
- CONFIG_RT_MUTEXES=y
--# CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
- CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
- CONFIG_MODULE_UNLOAD=y
- # CONFIG_MODULE_FORCE_UNLOAD is not set
- # CONFIG_MODVERSIONS is not set
- # CONFIG_MODULE_SRCVERSION_ALL is not set
--CONFIG_KMOD=y
- CONFIG_BLOCK=y
- # CONFIG_LBD is not set
--# CONFIG_BLK_DEV_IO_TRACE is not set
--# CONFIG_LSF is not set
- # CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
- 
- #
- # IO Schedulers
-@@ -100,6 +129,7 @@
- # CONFIG_DEFAULT_CFQ is not set
- # CONFIG_DEFAULT_NOOP is not set
- CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
- 
- #
- # System Type
-@@ -109,11 +139,10 @@
- # CONFIG_ARCH_REALVIEW is not set
- # CONFIG_ARCH_VERSATILE is not set
- CONFIG_ARCH_AT91=y
--# CONFIG_ARCH_CLPS7500 is not set
- # CONFIG_ARCH_CLPS711X is not set
--# CONFIG_ARCH_CO285 is not set
- # CONFIG_ARCH_EBSA110 is not set
- # CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
- # CONFIG_ARCH_FOOTBRIDGE is not set
- # CONFIG_ARCH_NETX is not set
- # CONFIG_ARCH_H720X is not set
-@@ -125,26 +154,26 @@
- # CONFIG_ARCH_IXP2000 is not set
- # CONFIG_ARCH_IXP4XX is not set
- # CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
- # CONFIG_ARCH_KS8695 is not set
- # CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
- # CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
- # CONFIG_ARCH_PNX4008 is not set
- # CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
- # CONFIG_ARCH_RPC is not set
- # CONFIG_ARCH_SA1100 is not set
- # CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
- # CONFIG_ARCH_SHARK is not set
- # CONFIG_ARCH_LH7A40X is not set
- # CONFIG_ARCH_DAVINCI is not set
- # CONFIG_ARCH_OMAP is not set
--
--#
--# Boot options
--#
--
--#
--# Power management
--#
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
- 
- #
- # Atmel AT91 System-on-Chip
-@@ -152,10 +181,13 @@
- # CONFIG_ARCH_AT91RM9200 is not set
- # CONFIG_ARCH_AT91SAM9260 is not set
- # CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
- # CONFIG_ARCH_AT91SAM9263 is not set
- # CONFIG_ARCH_AT91SAM9RL is not set
- CONFIG_ARCH_AT91SAM9G20=y
-+# CONFIG_ARCH_AT91SAM9G45 is not set
- # CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
- # CONFIG_ARCH_AT91X40 is not set
- CONFIG_AT91_PMC_UNIT=y
- 
-@@ -163,6 +195,10 @@
- # AT91SAM9G20 Board Type
- #
- CONFIG_MACH_AT91SAM9G20EK=y
-+# CONFIG_MACH_AT91SAM9G20EK_2MMC is not set
-+# CONFIG_MACH_USB_A9G20 is not set
-+# CONFIG_MACH_QIL_A9G20 is not set
-+# CONFIG_MACH_SBC35_A9G20 is not set
- 
- #
- # AT91 Board Options
-@@ -191,6 +227,7 @@
- CONFIG_CPU_ARM926T=y
- CONFIG_CPU_32v5=y
- CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
- CONFIG_CPU_CACHE_VIVT=y
- CONFIG_CPU_COPY_V4WB=y
- CONFIG_CPU_TLB_V4WBI=y
-@@ -200,7 +237,7 @@
- #
- # Processor Features
- #
--# CONFIG_ARM_THUMB is not set
-+CONFIG_ARM_THUMB=y
- # CONFIG_CPU_ICACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-@@ -217,28 +254,35 @@
- #
- # Kernel Features
- #
--# CONFIG_TICK_ONESHOT is not set
- # CONFIG_NO_HZ is not set
- # CONFIG_HIGH_RES_TIMERS is not set
- CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
- # CONFIG_PREEMPT is not set
- CONFIG_HZ=100
- CONFIG_AEABI=y
- CONFIG_OABI_COMPAT=y
--# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
- # CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_FLATMEM=y
- CONFIG_FLAT_NODE_MEM_MAP=y
--# CONFIG_SPARSEMEM_STATIC is not set
--# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-+CONFIG_PAGEFLAGS_EXTENDED=y
- CONFIG_SPLIT_PTLOCK_CPUS=4096
--# CONFIG_RESOURCES_64BIT is not set
--CONFIG_ZONE_DMA_FLAG=1
--CONFIG_BOUNCE=y
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
- CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
- CONFIG_LEDS=y
- CONFIG_LEDS_CPU=y
- CONFIG_ALIGNMENT_TRAP=y
-@@ -253,6 +297,11 @@
- # CONFIG_KEXEC is not set
- 
- #
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
- # Floating point emulation
- #
- 
-@@ -268,6 +317,8 @@
- # Userspace binary formats
- #
- CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
- # CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
- 
-@@ -275,16 +326,12 @@
- # Power management options
- #
- CONFIG_PM=y
--# CONFIG_PM_LEGACY is not set
- # CONFIG_PM_DEBUG is not set
- CONFIG_PM_SLEEP=y
--CONFIG_SUSPEND_UP_POSSIBLE=y
- CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
- # CONFIG_APM_EMULATION is not set
--
--#
--# Networking
--#
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
- CONFIG_NET=y
- 
- #
-@@ -295,15 +342,13 @@
- CONFIG_UNIX=y
- # CONFIG_NET_KEY is not set
- CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
-+CONFIG_IP_MULTICAST=y
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_FIB_HASH=y
--CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--CONFIG_IP_PNP_BOOTP=y
--# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_IP_PNP is not set
- # CONFIG_NET_IPIP is not set
- # CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
- # CONFIG_ARPD is not set
- # CONFIG_SYN_COOKIES is not set
- # CONFIG_INET_AH is not set
-@@ -315,15 +360,12 @@
- # CONFIG_INET_XFRM_MODE_TUNNEL is not set
- # CONFIG_INET_XFRM_MODE_BEET is not set
- # CONFIG_INET_LRO is not set
--CONFIG_INET_DIAG=y
--CONFIG_INET_TCP_DIAG=y
-+# CONFIG_INET_DIAG is not set
- # CONFIG_TCP_CONG_ADVANCED is not set
- CONFIG_TCP_CONG_CUBIC=y
- CONFIG_DEFAULT_TCP_CONG="cubic"
- # CONFIG_TCP_MD5SIG is not set
- # CONFIG_IPV6 is not set
--# CONFIG_INET6_XFRM_TUNNEL is not set
--# CONFIG_INET6_TUNNEL is not set
- # CONFIG_NETWORK_SECMARK is not set
- # CONFIG_NETFILTER is not set
- # CONFIG_IP_DCCP is not set
-@@ -331,6 +373,7 @@
- # CONFIG_TIPC is not set
- # CONFIG_ATM is not set
- # CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
- # CONFIG_VLAN_8021Q is not set
- # CONFIG_DECNET is not set
- # CONFIG_LLC2 is not set
-@@ -340,24 +383,40 @@
- # CONFIG_LAPB is not set
- # CONFIG_ECONET is not set
- # CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
- # CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
- 
- #
- # Network testing
- #
- # CONFIG_NET_PKTGEN is not set
- # CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
- # CONFIG_AF_RXRPC is not set
--
--#
--# Wireless
--#
--# CONFIG_CFG80211 is not set
--# CONFIG_WIRELESS_EXT is not set
--# CONFIG_MAC80211 is not set
--# CONFIG_IEEE80211 is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
- # CONFIG_RFKILL is not set
- # CONFIG_NET_9P is not set
- 
-@@ -371,16 +430,20 @@
- CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
--# CONFIG_FW_LOADER is not set
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
- # CONFIG_SYS_HYPERVISOR is not set
- # CONFIG_CONNECTOR is not set
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
--CONFIG_MTD_CONCAT=y
-+# CONFIG_MTD_CONCAT is not set
- CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
- # CONFIG_MTD_REDBOOT_PARTS is not set
- CONFIG_MTD_CMDLINE_PARTS=y
- # CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
- 
- #
- # User Modules And Translation Layers
-@@ -424,6 +487,8 @@
- # Self-contained MTD device drivers
- #
- CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
- # CONFIG_MTD_M25P80 is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_PHRAM is not set
-@@ -440,6 +505,7 @@
- # CONFIG_MTD_NAND_VERIFY_WRITE is not set
- # CONFIG_MTD_NAND_ECC_SMC is not set
- # CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
- CONFIG_MTD_NAND_IDS=y
- # CONFIG_MTD_NAND_DISKONCHIP is not set
- CONFIG_MTD_NAND_ATMEL=y
-@@ -452,6 +518,11 @@
- # CONFIG_MTD_ONENAND is not set
- 
- #
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
- # UBI - Unsorted block images
- #
- # CONFIG_MTD_UBI is not set
-@@ -463,15 +534,30 @@
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_UB is not set
- CONFIG_BLK_DEV_RAM=y
--CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_COUNT=4
- CONFIG_BLK_DEV_RAM_SIZE=8192
--CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-+# CONFIG_BLK_DEV_XIP is not set
- # CONFIG_CDROM_PKTCDVD is not set
- # CONFIG_ATA_OVER_ETH is not set
- CONFIG_MISC_DEVICES=y
--CONFIG_ATMEL_PWM=y
--# CONFIG_EEPROM_93CX6 is not set
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+# CONFIG_ICS932S401 is not set
- CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_ISL29003 is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT24 is not set
-+# CONFIG_EEPROM_AT25 is not set
-+# CONFIG_EEPROM_LEGACY is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
- 
- #
- # SCSI device support
-@@ -511,10 +597,12 @@
- # CONFIG_SCSI_SAS_LIBSAS is not set
- # CONFIG_SCSI_SRP_ATTRS is not set
- # CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
- # CONFIG_ATA is not set
- # CONFIG_MD is not set
- CONFIG_NETDEVICES=y
--# CONFIG_NETDEVICES_MULTIQUEUE is not set
-+CONFIG_COMPAT_NET_DEV_OPS=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
- # CONFIG_MACVLAN is not set
-@@ -527,7 +615,7 @@
- # MII PHY device drivers
- #
- # CONFIG_MARVELL_PHY is not set
--# CONFIG_DAVICOM_PHY is not set
-+CONFIG_DAVICOM_PHY=y
- # CONFIG_QSEMI_PHY is not set
- # CONFIG_LXT_PHY is not set
- # CONFIG_CICADA_PHY is not set
-@@ -535,6 +623,10 @@
- # CONFIG_SMSC_PHY is not set
- # CONFIG_BROADCOM_PHY is not set
- # CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
- # CONFIG_FIXED_PHY is not set
- # CONFIG_MDIO_BITBANG is not set
- CONFIG_NET_ETHERNET=y
-@@ -543,10 +635,18 @@
- # CONFIG_AX88796 is not set
- # CONFIG_SMC91X is not set
- # CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
- # CONFIG_IBM_NEW_EMAC_ZMII is not set
- # CONFIG_IBM_NEW_EMAC_RGMII is not set
- # CONFIG_IBM_NEW_EMAC_TAH is not set
- # CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
- # CONFIG_B44 is not set
- # CONFIG_NETDEV_1000 is not set
- # CONFIG_NETDEV_10000 is not set
-@@ -555,7 +655,39 @@
- # Wireless LAN
- #
- # CONFIG_WLAN_PRE80211 is not set
--# CONFIG_WLAN_80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+CONFIG_LIBERTAS_SPI=m
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
- 
- #
- # USB Network Adapters
-@@ -568,7 +700,6 @@
- # CONFIG_WAN is not set
- # CONFIG_PPP is not set
- # CONFIG_SLIP is not set
--# CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-@@ -579,15 +710,15 @@
- #
- CONFIG_INPUT=y
- # CONFIG_INPUT_FF_MEMLESS is not set
--# CONFIG_INPUT_POLLDEV is not set
-+CONFIG_INPUT_POLLDEV=m
- 
- #
- # Userland interfaces
- #
- CONFIG_INPUT_MOUSEDEV=y
- # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
--CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
--CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
- # CONFIG_INPUT_JOYDEV is not set
- CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
-@@ -612,18 +743,18 @@
- #
- # Hardware I/O ports
- #
--CONFIG_SERIO=y
--CONFIG_SERIO_SERPORT=y
--# CONFIG_SERIO_RAW is not set
-+# CONFIG_SERIO is not set
- # CONFIG_GAMEPORT is not set
- 
- #
- # Character devices
- #
- CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
- # CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
- # CONFIG_SERIAL_NONSTANDARD is not set
- 
- #
-@@ -636,23 +767,64 @@
- #
- CONFIG_SERIAL_ATMEL=y
- CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
- # CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
- CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
- CONFIG_LEGACY_PTYS=y
--CONFIG_LEGACY_PTY_COUNT=16
-+CONFIG_LEGACY_PTY_COUNT=4
- # CONFIG_IPMI_HANDLER is not set
- CONFIG_HW_RANDOM=y
--# CONFIG_NVRAM is not set
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
- # CONFIG_TCG_TPM is not set
--# CONFIG_I2C is not set
-+CONFIG_I2C=y
-+CONFIG_I2C_BOARDINFO=y
-+CONFIG_I2C_CHARDEV=m
-+CONFIG_I2C_HELPER_AUTO=y
-+CONFIG_I2C_ALGOBIT=y
- 
- #
--# SPI support
-+# I2C Hardware Bus support
- #
-+
-+#
-+# I2C system bus drivers (mostly embedded / system-on-chip)
-+#
-+CONFIG_I2C_GPIO=y
-+# CONFIG_I2C_OCORES is not set
-+# CONFIG_I2C_SIMTEC is not set
-+
-+#
-+# External I2C/SMBus adapter drivers
-+#
-+# CONFIG_I2C_PARPORT_LIGHT is not set
-+# CONFIG_I2C_TAOS_EVM is not set
-+# CONFIG_I2C_TINY_USB is not set
-+
-+#
-+# Other I2C/SMBus bus drivers
-+#
-+# CONFIG_I2C_PCA_PLATFORM is not set
-+# CONFIG_I2C_STUB is not set
-+
-+#
-+# Miscellaneous I2C Chip support
-+#
-+# CONFIG_DS1682 is not set
-+# CONFIG_SENSORS_PCF8574 is not set
-+# CONFIG_PCF8575 is not set
-+# CONFIG_SENSORS_PCA9539 is not set
-+# CONFIG_SENSORS_MAX6875 is not set
-+# CONFIG_SENSORS_TSL2550 is not set
-+# CONFIG_I2C_DEBUG_CORE is not set
-+# CONFIG_I2C_DEBUG_ALGO is not set
-+# CONFIG_I2C_DEBUG_BUS is not set
-+# CONFIG_I2C_DEBUG_CHIP is not set
- CONFIG_SPI=y
- CONFIG_SPI_MASTER=y
- 
-@@ -661,34 +833,83 @@
- #
- CONFIG_SPI_ATMEL=y
- # CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
- 
- #
- # SPI Protocol Masters
- #
--# CONFIG_EEPROM_AT25 is not set
- CONFIG_SPI_SPIDEV=y
- # CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX732X is not set
-+# CONFIG_GPIO_PCA953X is not set
-+# CONFIG_GPIO_PCF857X is not set
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
- # CONFIG_W1 is not set
- # CONFIG_POWER_SUPPLY is not set
- # CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
- # CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
- 
- #
- # Sonics Silicon Backplane
- #
--CONFIG_SSB_POSSIBLE=y
- # CONFIG_SSB is not set
- 
- #
- # Multifunction device drivers
- #
-+# CONFIG_MFD_CORE is not set
- # CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_TPS65010 is not set
-+# CONFIG_TWL4030_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+# CONFIG_PMIC_DA903X is not set
-+# CONFIG_MFD_WM8400 is not set
-+# CONFIG_MFD_WM8350_I2C is not set
-+# CONFIG_MFD_PCF50633 is not set
- 
- #
- # Multimedia devices
- #
-+
-+#
-+# Multimedia core support
-+#
- # CONFIG_VIDEO_DEV is not set
- # CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
- # CONFIG_DAB is not set
- 
- #
-@@ -709,18 +930,14 @@
- #
- # CONFIG_VGA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
--
--#
--# Sound
--#
- CONFIG_SOUND=y
--
--#
--# Advanced Linux Sound Architecture
--#
-+CONFIG_SOUND_OSS_CORE=y
- CONFIG_SND=y
- CONFIG_SND_TIMER=y
- CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_JACK=y
- CONFIG_SND_SEQUENCER=y
- # CONFIG_SND_SEQ_DUMMY is not set
- CONFIG_SND_OSSEMUL=y
-@@ -729,49 +946,28 @@
- CONFIG_SND_PCM_OSS_PLUGINS=y
- CONFIG_SND_SEQUENCER_OSS=y
- # CONFIG_SND_DYNAMIC_MINORS is not set
--CONFIG_SND_SUPPORT_OLD_API=y
-+# CONFIG_SND_SUPPORT_OLD_API is not set
- # CONFIG_SND_VERBOSE_PROCFS is not set
- # CONFIG_SND_VERBOSE_PRINTK is not set
- # CONFIG_SND_DEBUG is not set
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
- 
- #
--# Generic devices
--#
--# CONFIG_SND_DUMMY is not set
--# CONFIG_SND_VIRMIDI is not set
--# CONFIG_SND_MTPAV is not set
--# CONFIG_SND_SERIAL_U16550 is not set
--# CONFIG_SND_MPU401 is not set
--
--#
--# ALSA ARM devices
--#
--# CONFIG_SND_AT91_AC97 is not set
--
--#
--# SPI devices
--#
--CONFIG_SND_AT73C213=y
--CONFIG_SND_AT73C213_TARGET_BITRATE=48000
--
-+# Atmel devices (AVR32 and AT91)
- #
--# USB devices
--#
--# CONFIG_SND_USB_AUDIO is not set
-+# CONFIG_SND_ATMEL_AC97C is not set
-+# CONFIG_SND_SPI is not set
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
- # CONFIG_SND_USB_CAIAQ is not set
--
--#
--# System on Chip audio support
--#
--# CONFIG_SND_SOC is not set
--
--#
--# SoC Audio support for SuperH
--#
--
--#
--# Open Sound System
--#
-+CONFIG_SND_SOC=y
-+CONFIG_SND_ATMEL_SOC=y
-+CONFIG_SND_ATMEL_SOC_SSC=y
-+CONFIG_SND_AT91_SOC_SAM9G20_WM8731=y
-+CONFIG_SND_SOC_I2C_AND_SPI=y
-+# CONFIG_SND_SOC_ALL_CODECS is not set
-+CONFIG_SND_SOC_WM8731=y
- # CONFIG_SOUND_PRIME is not set
- CONFIG_HID_SUPPORT=y
- CONFIG_HID=y
-@@ -781,16 +977,19 @@
- #
- # USB Input Devices
- #
--CONFIG_USB_HID=y
--# CONFIG_USB_HIDINPUT_POWERBOOK is not set
--# CONFIG_HID_FF is not set
--# CONFIG_USB_HIDDEV is not set
-+# CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
-+
-+#
-+# Special HID drivers
-+#
- CONFIG_USB_SUPPORT=y
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
- # CONFIG_USB_ARCH_HAS_EHCI is not set
- CONFIG_USB=y
- # CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
- 
- #
- # Miscellaneous USB options
-@@ -799,45 +998,56 @@
- # CONFIG_USB_DEVICE_CLASS is not set
- # CONFIG_USB_DYNAMIC_MINORS is not set
- # CONFIG_USB_SUSPEND is not set
--# CONFIG_USB_PERSIST is not set
- # CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
- 
- #
- # USB Host Controller Drivers
- #
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
- # CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
- CONFIG_USB_OHCI_HCD=y
- # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
- # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
- CONFIG_USB_OHCI_LITTLE_ENDIAN=y
- # CONFIG_USB_SL811_HCD is not set
- # CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
- 
- #
- # USB Device Class drivers
- #
- # CONFIG_USB_ACM is not set
- # CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
- 
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
- #
- 
- #
--# may also be needed; see USB_STORAGE Help for more information
-+# also be needed; see USB_STORAGE Help for more info
- #
- CONFIG_USB_STORAGE=y
- # CONFIG_USB_STORAGE_DEBUG is not set
- # CONFIG_USB_STORAGE_DATAFAB is not set
- # CONFIG_USB_STORAGE_FREECOM is not set
- # CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
- # CONFIG_USB_STORAGE_USBAT is not set
- # CONFIG_USB_STORAGE_SDDR09 is not set
- # CONFIG_USB_STORAGE_SDDR55 is not set
- # CONFIG_USB_STORAGE_JUMPSHOT is not set
- # CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
- # CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
- # CONFIG_USB_LIBUSUAL is not set
- 
- #
-@@ -845,15 +1055,10 @@
- #
- # CONFIG_USB_MDC800 is not set
- # CONFIG_USB_MICROTEK is not set
--CONFIG_USB_MON=y
- 
- #
- # USB port drivers
- #
--
--#
--# USB Serial Converter support
--#
- # CONFIG_USB_SERIAL is not set
- 
- #
-@@ -862,7 +1067,7 @@
- # CONFIG_USB_EMI62 is not set
- # CONFIG_USB_EMI26 is not set
- # CONFIG_USB_ADUTUX is not set
--# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_SEVSEG is not set
- # CONFIG_USB_RIO500 is not set
- # CONFIG_USB_LEGOTOWER is not set
- # CONFIG_USB_LCD is not set
-@@ -870,7 +1075,6 @@
- # CONFIG_USB_LED is not set
- # CONFIG_USB_CYPRESS_CY7C63 is not set
- # CONFIG_USB_CYTHERM is not set
--# CONFIG_USB_PHIDGET is not set
- # CONFIG_USB_IDMOUSE is not set
- # CONFIG_USB_FTDI_ELAN is not set
- # CONFIG_USB_APPLEDISPLAY is not set
-@@ -878,62 +1082,80 @@
- # CONFIG_USB_TRANCEVIBRATOR is not set
- # CONFIG_USB_IOWARRIOR is not set
- # CONFIG_USB_TEST is not set
--
--#
--# USB DSL modem support
--#
--
--#
--# USB Gadget Support
--#
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
- CONFIG_USB_GADGET=y
- # CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
- CONFIG_USB_GADGET_SELECTED=y
--# CONFIG_USB_GADGET_AMD5536UDC is not set
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
- # CONFIG_USB_GADGET_ATMEL_USBA is not set
- # CONFIG_USB_GADGET_FSL_USB2 is not set
--# CONFIG_USB_GADGET_NET2280 is not set
--# CONFIG_USB_GADGET_PXA2XX is not set
--# CONFIG_USB_GADGET_M66592 is not set
--# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_LH7A40X is not set
- # CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
- # CONFIG_USB_GADGET_S3C2410 is not set
--CONFIG_USB_GADGET_AT91=y
--CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_DUMMY_HCD is not set
- # CONFIG_USB_GADGET_DUALSPEED is not set
- CONFIG_USB_ZERO=m
--# CONFIG_USB_ETH is not set
--CONFIG_USB_GADGETFS=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
- CONFIG_USB_FILE_STORAGE=m
- # CONFIG_USB_FILE_STORAGE_TEST is not set
- CONFIG_USB_G_SERIAL=m
- # CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
- CONFIG_MMC=y
- # CONFIG_MMC_DEBUG is not set
- # CONFIG_MMC_UNSAFE_RESUME is not set
- 
- #
--# MMC/SD Card Drivers
-+# MMC/SD/SDIO Card Drivers
- #
- CONFIG_MMC_BLOCK=y
- CONFIG_MMC_BLOCK_BOUNCE=y
--# CONFIG_SDIO_UART is not set
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
- 
- #
--# MMC/SD Host Controller Drivers
-+# MMC/SD/SDIO Host Controller Drivers
- #
-+# CONFIG_MMC_SDHCI is not set
- CONFIG_MMC_AT91=y
-+# CONFIG_MMC_ATMELMCI is not set
- # CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
- CONFIG_NEW_LEDS=y
- CONFIG_LEDS_CLASS=y
- 
- #
- # LED drivers
- #
--CONFIG_LEDS_ATMEL_PWM=y
-+# CONFIG_LEDS_PCA9532 is not set
- CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_LP5521 is not set
-+# CONFIG_LEDS_PCA955X is not set
-+# CONFIG_LEDS_DAC124S085 is not set
-+# CONFIG_LEDS_BD2802 is not set
- 
- #
- # LED Triggers
-@@ -941,6 +1163,13 @@
- CONFIG_LEDS_TRIGGERS=y
- CONFIG_LEDS_TRIGGER_TIMER=y
- CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
- CONFIG_RTC_LIB=y
- CONFIG_RTC_CLASS=y
- CONFIG_RTC_HCTOSYS=y
-@@ -957,20 +1186,46 @@
- # CONFIG_RTC_DRV_TEST is not set
- 
- #
-+# I2C RTC drivers
-+#
-+# CONFIG_RTC_DRV_DS1307 is not set
-+# CONFIG_RTC_DRV_DS1374 is not set
-+# CONFIG_RTC_DRV_DS1672 is not set
-+# CONFIG_RTC_DRV_MAX6900 is not set
-+# CONFIG_RTC_DRV_RS5C372 is not set
-+# CONFIG_RTC_DRV_ISL1208 is not set
-+# CONFIG_RTC_DRV_X1205 is not set
-+# CONFIG_RTC_DRV_PCF8563 is not set
-+# CONFIG_RTC_DRV_PCF8583 is not set
-+# CONFIG_RTC_DRV_M41T80 is not set
-+# CONFIG_RTC_DRV_S35390A is not set
-+# CONFIG_RTC_DRV_FM3130 is not set
-+# CONFIG_RTC_DRV_RX8581 is not set
-+
-+#
- # SPI RTC drivers
- #
--# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
- # CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
- 
- #
- # Platform RTC drivers
- #
- # CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
- # CONFIG_RTC_DRV_DS1553 is not set
--# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
- # CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
- # CONFIG_RTC_DRV_V3020 is not set
- 
- #
-@@ -979,6 +1234,11 @@
- CONFIG_RTC_DRV_AT91SAM9=y
- CONFIG_RTC_DRV_AT91SAM9_RTT=0
- CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
- 
- #
- # File systems
-@@ -987,24 +1247,28 @@
- # CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
--# CONFIG_EXT4DEV_FS is not set
-+# CONFIG_EXT4_FS is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
- # CONFIG_XFS_FS is not set
--# CONFIG_GFS2_FS is not set
- # CONFIG_OCFS2_FS is not set
--# CONFIG_MINIX_FS is not set
--# CONFIG_ROMFS_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
- CONFIG_INOTIFY=y
- CONFIG_INOTIFY_USER=y
- # CONFIG_QUOTA is not set
--CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_FUSE_FS is not set
- 
- #
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
- # CD-ROM/DVD Filesystems
- #
- # CONFIG_ISO9660_FS is not set
-@@ -1025,15 +1289,13 @@
- #
- CONFIG_PROC_FS=y
- CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_TMPFS_POSIX_ACL is not set
- # CONFIG_HUGETLB_PAGE is not set
- # CONFIG_CONFIGFS_FS is not set
--
--#
--# Miscellaneous filesystems
--#
-+CONFIG_MISC_FILESYSTEMS=y
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-@@ -1052,25 +1314,29 @@
- # CONFIG_JFFS2_LZO is not set
- CONFIG_JFFS2_RTIME=y
- # CONFIG_JFFS2_RUBIN is not set
--CONFIG_CRAMFS=y
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
- # CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
- # CONFIG_SYSV_FS is not set
- # CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
- CONFIG_NETWORK_FILESYSTEMS=y
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
- # CONFIG_NFS_V3_ACL is not set
- # CONFIG_NFS_V4 is not set
--# CONFIG_NFS_DIRECTIO is not set
- # CONFIG_NFSD is not set
--CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
- CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
--# CONFIG_SUNRPC_BIND34 is not set
- # CONFIG_RPCSEC_GSS_KRB5 is not set
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
-@@ -1120,49 +1386,173 @@
- # CONFIG_NLS_ISO8859_9 is not set
- # CONFIG_NLS_ISO8859_13 is not set
- # CONFIG_NLS_ISO8859_14 is not set
--CONFIG_NLS_ISO8859_15=y
-+# CONFIG_NLS_ISO8859_15 is not set
- # CONFIG_NLS_KOI8_R is not set
- # CONFIG_NLS_KOI8_U is not set
--CONFIG_NLS_UTF8=y
-+# CONFIG_NLS_UTF8 is not set
- # CONFIG_DLM is not set
--# CONFIG_INSTRUMENTATION is not set
- 
- #
- # Kernel hacking
- #
- # CONFIG_PRINTK_TIME is not set
--# CONFIG_ENABLE_WARN_DEPRECATED is not set
-+CONFIG_ENABLE_WARN_DEPRECATED=y
- CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_UNUSED_SYMBOLS is not set
- # CONFIG_DEBUG_FS is not set
- # CONFIG_HEADERS_CHECK is not set
- # CONFIG_DEBUG_KERNEL is not set
- CONFIG_DEBUG_BUGVERBOSE=y
--CONFIG_FRAME_POINTER=y
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
- # CONFIG_SAMPLES is not set
--# CONFIG_DEBUG_USER is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
- 
- #
- # Security options
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
- # CONFIG_SECURITY_FILE_CAPABILITIES is not set
--# CONFIG_CRYPTO is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
- 
- #
- # Library routines
- #
- CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
- # CONFIG_CRC_CCITT is not set
- # CONFIG_CRC16 is not set
--# CONFIG_CRC_ITU_T is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
- CONFIG_CRC32=y
- # CONFIG_CRC7 is not set
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
- CONFIG_ZLIB_DEFLATE=y
--CONFIG_PLIST=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
- CONFIG_HAS_IOMEM=y
- CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9261ek_defconfig
-===================================================================
---- linux-2.6.30.orig/arch/arm/configs/at91sam9261ek_defconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/configs/at91sam9261ek_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -1,17 +1,18 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.24-rc7
--# Tue Jan  8 22:21:49 2008
-+# Linux kernel version: 2.6.30
-+# Tue Oct 13 12:05:37 2009
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
- CONFIG_GENERIC_GPIO=y
--# CONFIG_GENERIC_TIME is not set
--# CONFIG_GENERIC_CLOCKEVENTS is not set
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
- CONFIG_MMU=y
- # CONFIG_NO_IOPORT is not set
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
- CONFIG_LOCKDEP_SUPPORT=y
- CONFIG_TRACE_IRQFLAGS_SUPPORT=y
- CONFIG_HARDIRQS_SW_RESEND=y
-@@ -21,7 +22,7 @@
- # CONFIG_ARCH_HAS_ILOG2_U64 is not set
- CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
--CONFIG_ZONE_DMA=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
- CONFIG_VECTORS_BASE=0xffff0000
- CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
- 
-@@ -39,57 +40,82 @@
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_TASKSTATS is not set
--# CONFIG_USER_NS is not set
--# CONFIG_PID_NS is not set
- # CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
- # CONFIG_IKCONFIG is not set
- CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
- # CONFIG_CGROUPS is not set
--CONFIG_FAIR_GROUP_SCHED=y
--CONFIG_FAIR_USER_SCHED=y
--# CONFIG_FAIR_CGROUP_SCHED is not set
- CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
- # CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
- CONFIG_BLK_DEV_INITRD=y
- CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
- # CONFIG_EMBEDDED is not set
- CONFIG_UID16=y
- CONFIG_SYSCTL_SYSCALL=y
- CONFIG_KALLSYMS=y
--# CONFIG_KALLSYMS_ALL is not set
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
- CONFIG_HOTPLUG=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
- CONFIG_ELF_CORE=y
- CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
--CONFIG_ANON_INODES=y
- CONFIG_EPOLL=y
- CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
- CONFIG_EVENTFD=y
- CONFIG_SHMEM=y
-+CONFIG_AIO=y
- CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
- CONFIG_SLAB=y
- # CONFIG_SLUB is not set
- # CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
- CONFIG_SLABINFO=y
- CONFIG_RT_MUTEXES=y
--# CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
- CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
- CONFIG_MODULE_UNLOAD=y
- # CONFIG_MODULE_FORCE_UNLOAD is not set
- # CONFIG_MODVERSIONS is not set
- # CONFIG_MODULE_SRCVERSION_ALL is not set
--CONFIG_KMOD=y
- CONFIG_BLOCK=y
- # CONFIG_LBD is not set
--# CONFIG_BLK_DEV_IO_TRACE is not set
--# CONFIG_LSF is not set
- # CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
- 
- #
- # IO Schedulers
-@@ -103,6 +129,7 @@
- # CONFIG_DEFAULT_CFQ is not set
- # CONFIG_DEFAULT_NOOP is not set
- CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
- 
- #
- # System Type
-@@ -112,11 +139,10 @@
- # CONFIG_ARCH_REALVIEW is not set
- # CONFIG_ARCH_VERSATILE is not set
- CONFIG_ARCH_AT91=y
--# CONFIG_ARCH_CLPS7500 is not set
- # CONFIG_ARCH_CLPS711X is not set
--# CONFIG_ARCH_CO285 is not set
- # CONFIG_ARCH_EBSA110 is not set
- # CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
- # CONFIG_ARCH_FOOTBRIDGE is not set
- # CONFIG_ARCH_NETX is not set
- # CONFIG_ARCH_H720X is not set
-@@ -128,26 +154,26 @@
- # CONFIG_ARCH_IXP2000 is not set
- # CONFIG_ARCH_IXP4XX is not set
- # CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
- # CONFIG_ARCH_KS8695 is not set
- # CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
- # CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
- # CONFIG_ARCH_PNX4008 is not set
- # CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
- # CONFIG_ARCH_RPC is not set
- # CONFIG_ARCH_SA1100 is not set
- # CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
- # CONFIG_ARCH_SHARK is not set
- # CONFIG_ARCH_LH7A40X is not set
- # CONFIG_ARCH_DAVINCI is not set
- # CONFIG_ARCH_OMAP is not set
--
--#
--# Boot options
--#
--
--#
--# Power management
--#
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
- 
- #
- # Atmel AT91 System-on-Chip
-@@ -155,8 +181,13 @@
- # CONFIG_ARCH_AT91RM9200 is not set
- # CONFIG_ARCH_AT91SAM9260 is not set
- CONFIG_ARCH_AT91SAM9261=y
-+# CONFIG_ARCH_AT91SAM9G10 is not set
- # CONFIG_ARCH_AT91SAM9263 is not set
- # CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
- # CONFIG_ARCH_AT91X40 is not set
- CONFIG_AT91_PMC_UNIT=y
- 
-@@ -175,8 +206,15 @@
- # AT91 Feature Selections
- #
- CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
--# CONFIG_ATMEL_TCLIB is not set
-+# CONFIG_AT91_SLOW_CLOCK is not set
- CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
- 
- #
- # Processor Type
-@@ -185,6 +223,7 @@
- CONFIG_CPU_ARM926T=y
- CONFIG_CPU_32v5=y
- CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
- CONFIG_CPU_CACHE_VIVT=y
- CONFIG_CPU_COPY_V4WB=y
- CONFIG_CPU_TLB_V4WBI=y
-@@ -194,7 +233,7 @@
- #
- # Processor Features
- #
--# CONFIG_ARM_THUMB is not set
-+CONFIG_ARM_THUMB=y
- # CONFIG_CPU_ICACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-@@ -211,25 +250,37 @@
- #
- # Kernel Features
- #
--# CONFIG_TICK_ONESHOT is not set
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
- # CONFIG_PREEMPT is not set
- CONFIG_HZ=100
--# CONFIG_AEABI is not set
--# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
- # CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_FLATMEM=y
- CONFIG_FLAT_NODE_MEM_MAP=y
--# CONFIG_SPARSEMEM_STATIC is not set
--# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-+CONFIG_PAGEFLAGS_EXTENDED=y
- CONFIG_SPLIT_PTLOCK_CPUS=4096
--# CONFIG_RESOURCES_64BIT is not set
--CONFIG_ZONE_DMA_FLAG=1
--CONFIG_BOUNCE=y
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
- CONFIG_VIRT_TO_BUS=y
--# CONFIG_LEDS is not set
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
- CONFIG_ALIGNMENT_TRAP=y
- 
- #
-@@ -242,6 +293,11 @@
- # CONFIG_KEXEC is not set
- 
- #
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
- # Floating point emulation
- #
- 
-@@ -257,19 +313,21 @@
- # Userspace binary formats
- #
- CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
- # CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
--# CONFIG_ARTHUR is not set
- 
- #
- # Power management options
- #
--# CONFIG_PM is not set
--CONFIG_SUSPEND_UP_POSSIBLE=y
--
--#
--# Networking
--#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
- CONFIG_NET=y
- 
- #
-@@ -278,21 +336,15 @@
- CONFIG_PACKET=y
- # CONFIG_PACKET_MMAP is not set
- CONFIG_UNIX=y
--CONFIG_XFRM=y
--# CONFIG_XFRM_USER is not set
--# CONFIG_XFRM_SUB_POLICY is not set
--# CONFIG_XFRM_MIGRATE is not set
- # CONFIG_NET_KEY is not set
- CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
-+CONFIG_IP_MULTICAST=y
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_FIB_HASH=y
--CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--CONFIG_IP_PNP_BOOTP=y
--# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_IP_PNP is not set
- # CONFIG_NET_IPIP is not set
- # CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
- # CONFIG_ARPD is not set
- # CONFIG_SYN_COOKIES is not set
- # CONFIG_INET_AH is not set
-@@ -300,19 +352,16 @@
- # CONFIG_INET_IPCOMP is not set
- # CONFIG_INET_XFRM_TUNNEL is not set
- # CONFIG_INET_TUNNEL is not set
--CONFIG_INET_XFRM_MODE_TRANSPORT=y
--CONFIG_INET_XFRM_MODE_TUNNEL=y
--CONFIG_INET_XFRM_MODE_BEET=y
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
- # CONFIG_INET_LRO is not set
--CONFIG_INET_DIAG=y
--CONFIG_INET_TCP_DIAG=y
-+# CONFIG_INET_DIAG is not set
- # CONFIG_TCP_CONG_ADVANCED is not set
- CONFIG_TCP_CONG_CUBIC=y
- CONFIG_DEFAULT_TCP_CONG="cubic"
- # CONFIG_TCP_MD5SIG is not set
- # CONFIG_IPV6 is not set
--# CONFIG_INET6_XFRM_TUNNEL is not set
--# CONFIG_INET6_TUNNEL is not set
- # CONFIG_NETWORK_SECMARK is not set
- # CONFIG_NETFILTER is not set
- # CONFIG_IP_DCCP is not set
-@@ -320,6 +369,7 @@
- # CONFIG_TIPC is not set
- # CONFIG_ATM is not set
- # CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
- # CONFIG_VLAN_8021Q is not set
- # CONFIG_DECNET is not set
- # CONFIG_LLC2 is not set
-@@ -329,24 +379,40 @@
- # CONFIG_LAPB is not set
- # CONFIG_ECONET is not set
- # CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
- # CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
- 
- #
- # Network testing
- #
- # CONFIG_NET_PKTGEN is not set
- # CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
- # CONFIG_AF_RXRPC is not set
--
--#
--# Wireless
--#
--# CONFIG_CFG80211 is not set
--# CONFIG_WIRELESS_EXT is not set
--# CONFIG_MAC80211 is not set
--# CONFIG_IEEE80211 is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
- # CONFIG_RFKILL is not set
- # CONFIG_NET_9P is not set
- 
-@@ -360,23 +426,25 @@
- CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
--# CONFIG_FW_LOADER is not set
--# CONFIG_DEBUG_DRIVER is not set
--# CONFIG_DEBUG_DEVRES is not set
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
- # CONFIG_SYS_HYPERVISOR is not set
- # CONFIG_CONNECTOR is not set
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
- # CONFIG_MTD_CONCAT is not set
- CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
- # CONFIG_MTD_REDBOOT_PARTS is not set
- CONFIG_MTD_CMDLINE_PARTS=y
- # CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
- 
- #
- # User Modules And Translation Layers
- #
--# CONFIG_MTD_CHAR is not set
-+CONFIG_MTD_CHAR=y
- CONFIG_MTD_BLKDEVS=y
- CONFIG_MTD_BLOCK=y
- # CONFIG_FTL is not set
-@@ -414,7 +482,9 @@
- #
- # Self-contained MTD device drivers
- #
--# CONFIG_MTD_DATAFLASH is not set
-+CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
- # CONFIG_MTD_M25P80 is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_PHRAM is not set
-@@ -431,33 +501,55 @@
- # CONFIG_MTD_NAND_VERIFY_WRITE is not set
- # CONFIG_MTD_NAND_ECC_SMC is not set
- # CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
- CONFIG_MTD_NAND_IDS=y
- # CONFIG_MTD_NAND_DISKONCHIP is not set
- CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
- # CONFIG_MTD_NAND_NANDSIM is not set
- # CONFIG_MTD_NAND_PLATFORM is not set
- # CONFIG_MTD_ALAUDA is not set
- # CONFIG_MTD_ONENAND is not set
- 
- #
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
- # UBI - Unsorted block images
- #
- # CONFIG_MTD_UBI is not set
- # CONFIG_PARPORT is not set
- CONFIG_BLK_DEV=y
- # CONFIG_BLK_DEV_COW_COMMON is not set
--# CONFIG_BLK_DEV_LOOP is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_UB is not set
- CONFIG_BLK_DEV_RAM=y
--CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_COUNT=4
- CONFIG_BLK_DEV_RAM_SIZE=8192
--CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-+# CONFIG_BLK_DEV_XIP is not set
- # CONFIG_CDROM_PKTCDVD is not set
- # CONFIG_ATA_OVER_ETH is not set
- CONFIG_MISC_DEVICES=y
--# CONFIG_EEPROM_93CX6 is not set
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
- CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
- 
- #
- # SCSI device support
-@@ -496,29 +588,58 @@
- # CONFIG_SCSI_ISCSI_ATTRS is not set
- # CONFIG_SCSI_SAS_LIBSAS is not set
- # CONFIG_SCSI_SRP_ATTRS is not set
--CONFIG_SCSI_LOWLEVEL=y
--# CONFIG_ISCSI_TCP is not set
--# CONFIG_SCSI_DEBUG is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
- # CONFIG_ATA is not set
- # CONFIG_MD is not set
- CONFIG_NETDEVICES=y
--# CONFIG_NETDEVICES_MULTIQUEUE is not set
-+CONFIG_COMPAT_NET_DEV_OPS=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
- # CONFIG_MACVLAN is not set
- # CONFIG_EQUALIZER is not set
- # CONFIG_TUN is not set
- # CONFIG_VETH is not set
--# CONFIG_PHYLIB is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+# CONFIG_DAVICOM_PHY is not set
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=y
- # CONFIG_AX88796 is not set
- # CONFIG_SMC91X is not set
- CONFIG_DM9000=y
-+CONFIG_DM9000_DEBUGLEVEL=4
-+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
- # CONFIG_IBM_NEW_EMAC_ZMII is not set
- # CONFIG_IBM_NEW_EMAC_RGMII is not set
- # CONFIG_IBM_NEW_EMAC_TAH is not set
- # CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
- # CONFIG_B44 is not set
- # CONFIG_NETDEV_1000 is not set
- # CONFIG_NETDEV_10000 is not set
-@@ -527,7 +648,39 @@
- # Wireless LAN
- #
- # CONFIG_WLAN_PRE80211 is not set
--# CONFIG_WLAN_80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+CONFIG_LIBERTAS_SPI=m
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
- 
- #
- # USB Network Adapters
-@@ -540,7 +693,6 @@
- # CONFIG_WAN is not set
- # CONFIG_PPP is not set
- # CONFIG_SLIP is not set
--# CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-@@ -551,17 +703,17 @@
- #
- CONFIG_INPUT=y
- # CONFIG_INPUT_FF_MEMLESS is not set
--# CONFIG_INPUT_POLLDEV is not set
-+CONFIG_INPUT_POLLDEV=m
- 
- #
- # Userland interfaces
- #
- CONFIG_INPUT_MOUSEDEV=y
- # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
--CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
--CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
- # CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
- 
- #
-@@ -580,33 +732,38 @@
- # CONFIG_INPUT_TABLET is not set
- CONFIG_INPUT_TOUCHSCREEN=y
- CONFIG_TOUCHSCREEN_ADS7846=y
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
- # CONFIG_TOUCHSCREEN_FUJITSU is not set
- # CONFIG_TOUCHSCREEN_GUNZE is not set
- # CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
- # CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
- # CONFIG_TOUCHSCREEN_MK712 is not set
- # CONFIG_TOUCHSCREEN_PENMOUNT is not set
- # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
- # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
--# CONFIG_TOUCHSCREEN_UCB1400 is not set
- # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
- # CONFIG_INPUT_MISC is not set
- 
- #
- # Hardware I/O ports
- #
--CONFIG_SERIO=y
--CONFIG_SERIO_SERPORT=y
--# CONFIG_SERIO_RAW is not set
-+# CONFIG_SERIO is not set
- # CONFIG_GAMEPORT is not set
- 
- #
- # Character devices
- #
- CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
- # CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
- # CONFIG_SERIAL_NONSTANDARD is not set
- 
- #
-@@ -619,112 +776,99 @@
- #
- CONFIG_SERIAL_ATMEL=y
- CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
- # CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
- CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
- CONFIG_LEGACY_PTYS=y
--CONFIG_LEGACY_PTY_COUNT=256
-+CONFIG_LEGACY_PTY_COUNT=4
- # CONFIG_IPMI_HANDLER is not set
- CONFIG_HW_RANDOM=y
--# CONFIG_NVRAM is not set
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
- # CONFIG_TCG_TPM is not set
--CONFIG_I2C=y
--CONFIG_I2C_BOARDINFO=y
--CONFIG_I2C_CHARDEV=y
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
- 
- #
--# I2C Algorithms
-+# SPI Master Controller Drivers
- #
--CONFIG_I2C_ALGOBIT=y
--# CONFIG_I2C_ALGOPCF is not set
--# CONFIG_I2C_ALGOPCA is not set
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
- 
- #
--# I2C Hardware Bus support
-+# SPI Protocol Masters
- #
--CONFIG_I2C_GPIO=y
--# CONFIG_I2C_OCORES is not set
--# CONFIG_I2C_PARPORT_LIGHT is not set
--# CONFIG_I2C_SIMTEC is not set
--# CONFIG_I2C_TAOS_EVM is not set
--# CONFIG_I2C_STUB is not set
--# CONFIG_I2C_TINY_USB is not set
--# CONFIG_I2C_PCA is not set
-+# CONFIG_SPI_SPIDEV is not set
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
- 
- #
--# Miscellaneous I2C Chip support
-+# Memory mapped GPIO expanders:
- #
--# CONFIG_SENSORS_DS1337 is not set
--# CONFIG_SENSORS_DS1374 is not set
--# CONFIG_DS1682 is not set
--# CONFIG_EEPROM_LEGACY is not set
--# CONFIG_SENSORS_PCF8574 is not set
--# CONFIG_SENSORS_PCA9539 is not set
--# CONFIG_SENSORS_PCF8591 is not set
--# CONFIG_SENSORS_MAX6875 is not set
--# CONFIG_SENSORS_TSL2550 is not set
--# CONFIG_I2C_DEBUG_CORE is not set
--# CONFIG_I2C_DEBUG_ALGO is not set
--# CONFIG_I2C_DEBUG_BUS is not set
--# CONFIG_I2C_DEBUG_CHIP is not set
- 
- #
--# SPI support
-+# I2C GPIO expanders:
- #
--CONFIG_SPI=y
--# CONFIG_SPI_DEBUG is not set
--CONFIG_SPI_MASTER=y
- 
- #
--# SPI Master Controller Drivers
-+# PCI GPIO expanders:
- #
--CONFIG_SPI_ATMEL=y
--# CONFIG_SPI_BITBANG is not set
- 
- #
--# SPI Protocol Masters
-+# SPI GPIO expanders:
- #
--# CONFIG_EEPROM_AT25 is not set
--# CONFIG_SPI_SPIDEV is not set
--# CONFIG_SPI_TLE62X0 is not set
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
- # CONFIG_W1 is not set
- # CONFIG_POWER_SUPPLY is not set
- # CONFIG_HWMON is not set
--CONFIG_WATCHDOG=y
--CONFIG_WATCHDOG_NOWAYOUT=y
--
--#
--# Watchdog Device Drivers
--#
--# CONFIG_SOFT_WATCHDOG is not set
--CONFIG_AT91SAM9X_WATCHDOG=y
--
--#
--# USB-based Watchdog Cards
--#
--# CONFIG_USBPCWATCHDOG is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
- 
- #
- # Sonics Silicon Backplane
- #
--CONFIG_SSB_POSSIBLE=y
- # CONFIG_SSB is not set
- 
- #
- # Multifunction device drivers
- #
-+# CONFIG_MFD_CORE is not set
- # CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
- 
- #
- # Multimedia devices
- #
-+
-+#
-+# Multimedia core support
-+#
- # CONFIG_VIDEO_DEV is not set
- # CONFIG_DVB_CORE is not set
--CONFIG_DAB=y
--# CONFIG_USB_DABUSB is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
- 
- #
- # Graphics support
-@@ -734,6 +878,7 @@
- CONFIG_FB=y
- # CONFIG_FIRMWARE_EDID is not set
- # CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
- CONFIG_FB_CFB_FILLRECT=y
- CONFIG_FB_CFB_COPYAREA=y
- CONFIG_FB_CFB_IMAGEBLIT=y
-@@ -741,8 +886,8 @@
- # CONFIG_FB_SYS_FILLRECT is not set
- # CONFIG_FB_SYS_COPYAREA is not set
- # CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
- # CONFIG_FB_SYS_FOPS is not set
--CONFIG_FB_DEFERRED_IO=y
- # CONFIG_FB_SVGALIB is not set
- # CONFIG_FB_MACMODES is not set
- # CONFIG_FB_BACKLIGHT is not set
-@@ -755,10 +900,17 @@
- # CONFIG_FB_S1D15605 is not set
- # CONFIG_FB_S1D13XXX is not set
- CONFIG_FB_ATMEL=y
--# CONFIG_FB_INTSRAM is not set
-+CONFIG_FB_INTSRAM=y
- # CONFIG_FB_ATMEL_STN is not set
- # CONFIG_FB_VIRTUAL is not set
--# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+# CONFIG_LCD_CLASS_DEVICE is not set
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_GENERIC is not set
- 
- #
- # Display device support
-@@ -772,11 +924,40 @@
- CONFIG_DUMMY_CONSOLE=y
- # CONFIG_FRAMEBUFFER_CONSOLE is not set
- # CONFIG_LOGO is not set
--
--#
--# Sound
--#
--# CONFIG_SOUND is not set
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+# CONFIG_SND_ATMEL_AC97C is not set
-+CONFIG_SND_SPI=y
-+CONFIG_SND_AT73C213=y
-+CONFIG_SND_AT73C213_TARGET_BITRATE=48000
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
- CONFIG_HID_SUPPORT=y
- CONFIG_HID=y
- # CONFIG_HID_DEBUG is not set
-@@ -786,63 +967,76 @@
- # USB Input Devices
- #
- # CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
- 
- #
--# USB HID Boot Protocol drivers
-+# Special HID drivers
- #
--# CONFIG_USB_KBD is not set
--# CONFIG_USB_MOUSE is not set
- CONFIG_USB_SUPPORT=y
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
- # CONFIG_USB_ARCH_HAS_EHCI is not set
- CONFIG_USB=y
- # CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
- 
- #
- # Miscellaneous USB options
- #
- CONFIG_USB_DEVICEFS=y
--CONFIG_USB_DEVICE_CLASS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
- # CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_SUSPEND is not set
- # CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
- 
- #
- # USB Host Controller Drivers
- #
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
- # CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
- CONFIG_USB_OHCI_HCD=y
- # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
- # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
- CONFIG_USB_OHCI_LITTLE_ENDIAN=y
- # CONFIG_USB_SL811_HCD is not set
- # CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
- 
- #
- # USB Device Class drivers
- #
- # CONFIG_USB_ACM is not set
- # CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
- 
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
- #
- 
- #
--# may also be needed; see USB_STORAGE Help for more information
-+# also be needed; see USB_STORAGE Help for more info
- #
- CONFIG_USB_STORAGE=y
--CONFIG_USB_STORAGE_DEBUG=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
- # CONFIG_USB_STORAGE_DATAFAB is not set
- # CONFIG_USB_STORAGE_FREECOM is not set
- # CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
- # CONFIG_USB_STORAGE_USBAT is not set
- # CONFIG_USB_STORAGE_SDDR09 is not set
- # CONFIG_USB_STORAGE_SDDR55 is not set
- # CONFIG_USB_STORAGE_JUMPSHOT is not set
- # CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
- # CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
- # CONFIG_USB_LIBUSUAL is not set
- 
- #
-@@ -850,15 +1044,10 @@
- #
- # CONFIG_USB_MDC800 is not set
- # CONFIG_USB_MICROTEK is not set
--CONFIG_USB_MON=y
- 
- #
- # USB port drivers
- #
--
--#
--# USB Serial Converter support
--#
- # CONFIG_USB_SERIAL is not set
- 
- #
-@@ -867,7 +1056,7 @@
- # CONFIG_USB_EMI62 is not set
- # CONFIG_USB_EMI26 is not set
- # CONFIG_USB_ADUTUX is not set
--# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_SEVSEG is not set
- # CONFIG_USB_RIO500 is not set
- # CONFIG_USB_LEGOTOWER is not set
- # CONFIG_USB_LCD is not set
-@@ -875,7 +1064,6 @@
- # CONFIG_USB_LED is not set
- # CONFIG_USB_CYPRESS_CY7C63 is not set
- # CONFIG_USB_CYTHERM is not set
--# CONFIG_USB_PHIDGET is not set
- # CONFIG_USB_IDMOUSE is not set
- # CONFIG_USB_FTDI_ELAN is not set
- # CONFIG_USB_APPLEDISPLAY is not set
-@@ -883,56 +1071,90 @@
- # CONFIG_USB_TRANCEVIBRATOR is not set
- # CONFIG_USB_IOWARRIOR is not set
- # CONFIG_USB_TEST is not set
--
--#
--# USB DSL modem support
--#
--
--#
--# USB Gadget Support
--#
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
- CONFIG_USB_GADGET=y
--# CONFIG_USB_GADGET_DEBUG is not set
- # CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
- CONFIG_USB_GADGET_SELECTED=y
--# CONFIG_USB_GADGET_AMD5536UDC is not set
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
- # CONFIG_USB_GADGET_ATMEL_USBA is not set
- # CONFIG_USB_GADGET_FSL_USB2 is not set
--# CONFIG_USB_GADGET_NET2280 is not set
--# CONFIG_USB_GADGET_PXA2XX is not set
--# CONFIG_USB_GADGET_M66592 is not set
--# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_LH7A40X is not set
- # CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
- # CONFIG_USB_GADGET_S3C2410 is not set
--CONFIG_USB_GADGET_AT91=y
--CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_DUMMY_HCD is not set
- # CONFIG_USB_GADGET_DUALSPEED is not set
- CONFIG_USB_ZERO=m
--# CONFIG_USB_ETH is not set
--CONFIG_USB_GADGETFS=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
- CONFIG_USB_FILE_STORAGE=m
- # CONFIG_USB_FILE_STORAGE_TEST is not set
- CONFIG_USB_G_SERIAL=m
- # CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
- CONFIG_MMC=y
- # CONFIG_MMC_DEBUG is not set
- # CONFIG_MMC_UNSAFE_RESUME is not set
- 
- #
--# MMC/SD Card Drivers
-+# MMC/SD/SDIO Card Drivers
- #
- CONFIG_MMC_BLOCK=y
- CONFIG_MMC_BLOCK_BOUNCE=y
--# CONFIG_SDIO_UART is not set
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
- 
- #
--# MMC/SD Host Controller Drivers
-+# MMC/SD/SDIO Host Controller Drivers
- #
--CONFIG_MMC_AT91=y
-+# CONFIG_MMC_SDHCI is not set
-+CONFIG_MMC_AT91=m
-+# CONFIG_MMC_ATMELMCI is not set
- # CONFIG_MMC_SPI is not set
--# CONFIG_NEW_LEDS is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
- CONFIG_RTC_LIB=y
- CONFIG_RTC_CLASS=y
- CONFIG_RTC_HCTOSYS=y
-@@ -949,40 +1171,42 @@
- # CONFIG_RTC_DRV_TEST is not set
- 
- #
--# I2C RTC drivers
--#
--# CONFIG_RTC_DRV_DS1307 is not set
--# CONFIG_RTC_DRV_DS1374 is not set
--# CONFIG_RTC_DRV_DS1672 is not set
--# CONFIG_RTC_DRV_MAX6900 is not set
--# CONFIG_RTC_DRV_RS5C372 is not set
--# CONFIG_RTC_DRV_ISL1208 is not set
--# CONFIG_RTC_DRV_X1205 is not set
--# CONFIG_RTC_DRV_PCF8563 is not set
--# CONFIG_RTC_DRV_PCF8583 is not set
--# CONFIG_RTC_DRV_M41T80 is not set
--
--#
- # SPI RTC drivers
- #
--# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
- # CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
- 
- #
- # Platform RTC drivers
- #
- # CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
- # CONFIG_RTC_DRV_DS1553 is not set
--# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
- # CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
- # CONFIG_RTC_DRV_V3020 is not set
- 
- #
- # on-CPU RTC drivers
- #
- CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
- 
- #
- # File systems
-@@ -991,24 +1215,28 @@
- # CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
--# CONFIG_EXT4DEV_FS is not set
-+# CONFIG_EXT4_FS is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
- # CONFIG_XFS_FS is not set
--# CONFIG_GFS2_FS is not set
- # CONFIG_OCFS2_FS is not set
--# CONFIG_MINIX_FS is not set
--# CONFIG_ROMFS_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
- CONFIG_INOTIFY=y
- CONFIG_INOTIFY_USER=y
- # CONFIG_QUOTA is not set
--CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_FUSE_FS is not set
- 
- #
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
- # CD-ROM/DVD Filesystems
- #
- # CONFIG_ISO9660_FS is not set
-@@ -1018,7 +1246,7 @@
- # DOS/FAT/NT Filesystems
- #
- CONFIG_FAT_FS=y
--# CONFIG_MSDOS_FS is not set
-+CONFIG_MSDOS_FS=y
- CONFIG_VFAT_FS=y
- CONFIG_FAT_DEFAULT_CODEPAGE=437
- CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-@@ -1029,15 +1257,13 @@
- #
- CONFIG_PROC_FS=y
- CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_TMPFS_POSIX_ACL is not set
- # CONFIG_HUGETLB_PAGE is not set
- # CONFIG_CONFIGFS_FS is not set
--
--#
--# Miscellaneous filesystems
--#
-+CONFIG_MISC_FILESYSTEMS=y
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-@@ -1045,16 +1271,42 @@
- # CONFIG_BEFS_FS is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EFS_FS is not set
--# CONFIG_JFFS2_FS is not set
--CONFIG_CRAMFS=y
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
- # CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
- # CONFIG_SYSV_FS is not set
- # CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
- CONFIG_NETWORK_FILESYSTEMS=y
--# CONFIG_NFS_FS is not set
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
- # CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
- # CONFIG_CIFS is not set
- # CONFIG_NCP_FS is not set
-@@ -1102,14 +1354,11 @@
- # CONFIG_NLS_ISO8859_9 is not set
- # CONFIG_NLS_ISO8859_13 is not set
- # CONFIG_NLS_ISO8859_14 is not set
--# CONFIG_NLS_ISO8859_15 is not set
-+CONFIG_NLS_ISO8859_15=y
- # CONFIG_NLS_KOI8_R is not set
- # CONFIG_NLS_KOI8_U is not set
--# CONFIG_NLS_UTF8 is not set
-+CONFIG_NLS_UTF8=y
- # CONFIG_DLM is not set
--CONFIG_INSTRUMENTATION=y
--# CONFIG_PROFILING is not set
--# CONFIG_MARKERS is not set
- 
- #
- # Kernel hacking
-@@ -1117,63 +1366,161 @@
- # CONFIG_PRINTK_TIME is not set
- CONFIG_ENABLE_WARN_DEPRECATED=y
- CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_UNUSED_SYMBOLS is not set
- # CONFIG_DEBUG_FS is not set
- # CONFIG_HEADERS_CHECK is not set
--CONFIG_DEBUG_KERNEL=y
--# CONFIG_DEBUG_SHIRQ is not set
--CONFIG_DETECT_SOFTLOCKUP=y
--CONFIG_SCHED_DEBUG=y
--# CONFIG_SCHEDSTATS is not set
--# CONFIG_TIMER_STATS is not set
--# CONFIG_DEBUG_SLAB is not set
--# CONFIG_DEBUG_RT_MUTEXES is not set
--# CONFIG_RT_MUTEX_TESTER is not set
--# CONFIG_DEBUG_SPINLOCK is not set
--# CONFIG_DEBUG_MUTEXES is not set
--# CONFIG_DEBUG_LOCK_ALLOC is not set
--# CONFIG_PROVE_LOCKING is not set
--# CONFIG_LOCK_STAT is not set
--# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
--# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
--# CONFIG_DEBUG_KOBJECT is not set
-+# CONFIG_DEBUG_KERNEL is not set
- CONFIG_DEBUG_BUGVERBOSE=y
--# CONFIG_DEBUG_INFO is not set
--# CONFIG_DEBUG_VM is not set
--# CONFIG_DEBUG_LIST is not set
--# CONFIG_DEBUG_SG is not set
--CONFIG_FRAME_POINTER=y
--CONFIG_FORCED_INLINING=y
--# CONFIG_BOOT_PRINTK_DELAY is not set
--# CONFIG_RCU_TORTURE_TEST is not set
--# CONFIG_FAULT_INJECTION is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
- # CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
- CONFIG_DEBUG_USER=y
--# CONFIG_DEBUG_ERRORS is not set
--CONFIG_DEBUG_LL=y
--# CONFIG_DEBUG_ICEDCC is not set
- 
- #
- # Security options
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
- # CONFIG_SECURITY_FILE_CAPABILITIES is not set
--# CONFIG_CRYPTO is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
- 
- #
- # Library routines
- #
- CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
- # CONFIG_CRC_CCITT is not set
- # CONFIG_CRC16 is not set
--# CONFIG_CRC_ITU_T is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
- CONFIG_CRC32=y
- # CONFIG_CRC7 is not set
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
--CONFIG_PLIST=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
- CONFIG_HAS_IOMEM=y
- CONFIG_HAS_IOPORT=y
- CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9260ek_defconfig
-===================================================================
---- linux-2.6.30.orig/arch/arm/configs/at91sam9260ek_defconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/configs/at91sam9260ek_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -1,17 +1,18 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.24-rc7
--# Tue Jan  8 22:20:50 2008
-+# Linux kernel version: 2.6.30
-+# Tue Oct 13 12:38:49 2009
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
- CONFIG_GENERIC_GPIO=y
--# CONFIG_GENERIC_TIME is not set
--# CONFIG_GENERIC_CLOCKEVENTS is not set
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
- CONFIG_MMU=y
- # CONFIG_NO_IOPORT is not set
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
- CONFIG_LOCKDEP_SUPPORT=y
- CONFIG_TRACE_IRQFLAGS_SUPPORT=y
- CONFIG_HARDIRQS_SW_RESEND=y
-@@ -21,7 +22,7 @@
- # CONFIG_ARCH_HAS_ILOG2_U64 is not set
- CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
--CONFIG_ZONE_DMA=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
- CONFIG_VECTORS_BASE=0xffff0000
- CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
- 
-@@ -39,57 +40,82 @@
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_TASKSTATS is not set
--# CONFIG_USER_NS is not set
--# CONFIG_PID_NS is not set
- # CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
- # CONFIG_IKCONFIG is not set
- CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
- # CONFIG_CGROUPS is not set
--CONFIG_FAIR_GROUP_SCHED=y
--CONFIG_FAIR_USER_SCHED=y
--# CONFIG_FAIR_CGROUP_SCHED is not set
- CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
- # CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
- CONFIG_BLK_DEV_INITRD=y
- CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
- # CONFIG_EMBEDDED is not set
- CONFIG_UID16=y
- CONFIG_SYSCTL_SYSCALL=y
- CONFIG_KALLSYMS=y
--# CONFIG_KALLSYMS_ALL is not set
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
- CONFIG_HOTPLUG=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
- CONFIG_ELF_CORE=y
- CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
--CONFIG_ANON_INODES=y
- CONFIG_EPOLL=y
- CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
- CONFIG_EVENTFD=y
- CONFIG_SHMEM=y
-+CONFIG_AIO=y
- CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
- CONFIG_SLAB=y
- # CONFIG_SLUB is not set
- # CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
- CONFIG_SLABINFO=y
- CONFIG_RT_MUTEXES=y
--# CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
- CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
- CONFIG_MODULE_UNLOAD=y
- # CONFIG_MODULE_FORCE_UNLOAD is not set
- # CONFIG_MODVERSIONS is not set
- # CONFIG_MODULE_SRCVERSION_ALL is not set
--CONFIG_KMOD=y
- CONFIG_BLOCK=y
- # CONFIG_LBD is not set
--# CONFIG_BLK_DEV_IO_TRACE is not set
--# CONFIG_LSF is not set
- # CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
- 
- #
- # IO Schedulers
-@@ -103,6 +129,7 @@
- # CONFIG_DEFAULT_CFQ is not set
- # CONFIG_DEFAULT_NOOP is not set
- CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
- 
- #
- # System Type
-@@ -112,11 +139,10 @@
- # CONFIG_ARCH_REALVIEW is not set
- # CONFIG_ARCH_VERSATILE is not set
- CONFIG_ARCH_AT91=y
--# CONFIG_ARCH_CLPS7500 is not set
- # CONFIG_ARCH_CLPS711X is not set
--# CONFIG_ARCH_CO285 is not set
- # CONFIG_ARCH_EBSA110 is not set
- # CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
- # CONFIG_ARCH_FOOTBRIDGE is not set
- # CONFIG_ARCH_NETX is not set
- # CONFIG_ARCH_H720X is not set
-@@ -128,26 +154,26 @@
- # CONFIG_ARCH_IXP2000 is not set
- # CONFIG_ARCH_IXP4XX is not set
- # CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
- # CONFIG_ARCH_KS8695 is not set
- # CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
- # CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
- # CONFIG_ARCH_PNX4008 is not set
- # CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
- # CONFIG_ARCH_RPC is not set
- # CONFIG_ARCH_SA1100 is not set
- # CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
- # CONFIG_ARCH_SHARK is not set
- # CONFIG_ARCH_LH7A40X is not set
- # CONFIG_ARCH_DAVINCI is not set
- # CONFIG_ARCH_OMAP is not set
--
--#
--# Boot options
--#
--
--#
--# Power management
--#
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
- 
- #
- # Atmel AT91 System-on-Chip
-@@ -155,8 +181,13 @@
- # CONFIG_ARCH_AT91RM9200 is not set
- CONFIG_ARCH_AT91SAM9260=y
- # CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
- # CONFIG_ARCH_AT91SAM9263 is not set
- # CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
- # CONFIG_ARCH_AT91X40 is not set
- CONFIG_AT91_PMC_UNIT=y
- 
-@@ -171,6 +202,10 @@
- CONFIG_MACH_AT91SAM9260EK=y
- # CONFIG_MACH_CAM60 is not set
- # CONFIG_MACH_SAM9_L9260 is not set
-+# CONFIG_MACH_AFEB9260 is not set
-+# CONFIG_MACH_USB_A9260 is not set
-+# CONFIG_MACH_QIL_A9260 is not set
-+# CONFIG_MACH_SBC35_A9260 is not set
- 
- #
- # AT91 Board Options
-@@ -182,8 +217,15 @@
- # AT91 Feature Selections
- #
- CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
--# CONFIG_ATMEL_TCLIB is not set
-+# CONFIG_AT91_SLOW_CLOCK is not set
- CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
- 
- #
- # Processor Type
-@@ -192,6 +234,7 @@
- CONFIG_CPU_ARM926T=y
- CONFIG_CPU_32v5=y
- CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
- CONFIG_CPU_CACHE_VIVT=y
- CONFIG_CPU_COPY_V4WB=y
- CONFIG_CPU_TLB_V4WBI=y
-@@ -201,7 +244,7 @@
- #
- # Processor Features
- #
--# CONFIG_ARM_THUMB is not set
-+CONFIG_ARM_THUMB=y
- # CONFIG_CPU_ICACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-@@ -218,25 +261,37 @@
- #
- # Kernel Features
- #
--# CONFIG_TICK_ONESHOT is not set
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
- # CONFIG_PREEMPT is not set
- CONFIG_HZ=100
--# CONFIG_AEABI is not set
--# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
- # CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_FLATMEM=y
- CONFIG_FLAT_NODE_MEM_MAP=y
--# CONFIG_SPARSEMEM_STATIC is not set
--# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-+CONFIG_PAGEFLAGS_EXTENDED=y
- CONFIG_SPLIT_PTLOCK_CPUS=4096
--# CONFIG_RESOURCES_64BIT is not set
--CONFIG_ZONE_DMA_FLAG=1
--CONFIG_BOUNCE=y
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
- CONFIG_VIRT_TO_BUS=y
--# CONFIG_LEDS is not set
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
- CONFIG_ALIGNMENT_TRAP=y
- 
- #
-@@ -249,6 +304,11 @@
- # CONFIG_KEXEC is not set
- 
- #
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
- # Floating point emulation
- #
- 
-@@ -264,19 +324,21 @@
- # Userspace binary formats
- #
- CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
- # CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
--# CONFIG_ARTHUR is not set
- 
- #
- # Power management options
- #
--# CONFIG_PM is not set
--CONFIG_SUSPEND_UP_POSSIBLE=y
--
--#
--# Networking
--#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
- CONFIG_NET=y
- 
- #
-@@ -287,15 +349,13 @@
- CONFIG_UNIX=y
- # CONFIG_NET_KEY is not set
- CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
-+CONFIG_IP_MULTICAST=y
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_FIB_HASH=y
--CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--CONFIG_IP_PNP_BOOTP=y
--# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_IP_PNP is not set
- # CONFIG_NET_IPIP is not set
- # CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
- # CONFIG_ARPD is not set
- # CONFIG_SYN_COOKIES is not set
- # CONFIG_INET_AH is not set
-@@ -307,15 +367,12 @@
- # CONFIG_INET_XFRM_MODE_TUNNEL is not set
- # CONFIG_INET_XFRM_MODE_BEET is not set
- # CONFIG_INET_LRO is not set
--CONFIG_INET_DIAG=y
--CONFIG_INET_TCP_DIAG=y
-+# CONFIG_INET_DIAG is not set
- # CONFIG_TCP_CONG_ADVANCED is not set
- CONFIG_TCP_CONG_CUBIC=y
- CONFIG_DEFAULT_TCP_CONG="cubic"
- # CONFIG_TCP_MD5SIG is not set
- # CONFIG_IPV6 is not set
--# CONFIG_INET6_XFRM_TUNNEL is not set
--# CONFIG_INET6_TUNNEL is not set
- # CONFIG_NETWORK_SECMARK is not set
- # CONFIG_NETFILTER is not set
- # CONFIG_IP_DCCP is not set
-@@ -323,6 +380,7 @@
- # CONFIG_TIPC is not set
- # CONFIG_ATM is not set
- # CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
- # CONFIG_VLAN_8021Q is not set
- # CONFIG_DECNET is not set
- # CONFIG_LLC2 is not set
-@@ -332,24 +390,40 @@
- # CONFIG_LAPB is not set
- # CONFIG_ECONET is not set
- # CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
- # CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
- 
- #
- # Network testing
- #
- # CONFIG_NET_PKTGEN is not set
- # CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
- # CONFIG_AF_RXRPC is not set
--
--#
--# Wireless
--#
--# CONFIG_CFG80211 is not set
--# CONFIG_WIRELESS_EXT is not set
--# CONFIG_MAC80211 is not set
--# CONFIG_IEEE80211 is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
- # CONFIG_RFKILL is not set
- # CONFIG_NET_9P is not set
- 
-@@ -363,27 +437,130 @@
- CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
--# CONFIG_FW_LOADER is not set
--# CONFIG_DEBUG_DRIVER is not set
--# CONFIG_DEBUG_DEVRES is not set
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
- # CONFIG_SYS_HYPERVISOR is not set
- # CONFIG_CONNECTOR is not set
--# CONFIG_MTD is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+# CONFIG_MTD_UBI is not set
- # CONFIG_PARPORT is not set
- CONFIG_BLK_DEV=y
- # CONFIG_BLK_DEV_COW_COMMON is not set
--# CONFIG_BLK_DEV_LOOP is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_UB is not set
- CONFIG_BLK_DEV_RAM=y
--CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_COUNT=4
- CONFIG_BLK_DEV_RAM_SIZE=8192
--CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-+# CONFIG_BLK_DEV_XIP is not set
- # CONFIG_CDROM_PKTCDVD is not set
- # CONFIG_ATA_OVER_ETH is not set
- CONFIG_MISC_DEVICES=y
--# CONFIG_EEPROM_93CX6 is not set
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
- CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
- 
- #
- # SCSI device support
-@@ -422,13 +599,13 @@
- # CONFIG_SCSI_ISCSI_ATTRS is not set
- # CONFIG_SCSI_SAS_LIBSAS is not set
- # CONFIG_SCSI_SRP_ATTRS is not set
--CONFIG_SCSI_LOWLEVEL=y
--# CONFIG_ISCSI_TCP is not set
--# CONFIG_SCSI_DEBUG is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
- # CONFIG_ATA is not set
- # CONFIG_MD is not set
- CONFIG_NETDEVICES=y
--# CONFIG_NETDEVICES_MULTIQUEUE is not set
-+# CONFIG_COMPAT_NET_DEV_OPS is not set
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
- # CONFIG_MACVLAN is not set
-@@ -441,7 +618,7 @@
- # MII PHY device drivers
- #
- # CONFIG_MARVELL_PHY is not set
--# CONFIG_DAVICOM_PHY is not set
-+CONFIG_DAVICOM_PHY=y
- # CONFIG_QSEMI_PHY is not set
- # CONFIG_LXT_PHY is not set
- # CONFIG_CICADA_PHY is not set
-@@ -449,27 +626,72 @@
- # CONFIG_SMSC_PHY is not set
- # CONFIG_BROADCOM_PHY is not set
- # CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
- # CONFIG_FIXED_PHY is not set
- # CONFIG_MDIO_BITBANG is not set
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=y
- CONFIG_MACB=y
-+CONFIG_MACB_TX_SRAM=y
- # CONFIG_AX88796 is not set
- # CONFIG_SMC91X is not set
- # CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
- # CONFIG_IBM_NEW_EMAC_ZMII is not set
- # CONFIG_IBM_NEW_EMAC_RGMII is not set
- # CONFIG_IBM_NEW_EMAC_TAH is not set
- # CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
- # CONFIG_B44 is not set
--CONFIG_NETDEV_1000=y
--CONFIG_NETDEV_10000=y
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
- 
- #
- # Wireless LAN
- #
- # CONFIG_WLAN_PRE80211 is not set
--# CONFIG_WLAN_80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+# CONFIG_LIBERTAS_SPI is not set
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
- 
- #
- # USB Network Adapters
-@@ -482,7 +704,6 @@
- # CONFIG_WAN is not set
- # CONFIG_PPP is not set
- # CONFIG_SLIP is not set
--# CONFIG_SHAPER is not set
- # CONFIG_NETCONSOLE is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-@@ -493,23 +714,30 @@
- #
- CONFIG_INPUT=y
- # CONFIG_INPUT_FF_MEMLESS is not set
--# CONFIG_INPUT_POLLDEV is not set
-+CONFIG_INPUT_POLLDEV=m
- 
- #
- # Userland interfaces
- #
- CONFIG_INPUT_MOUSEDEV=y
- # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
--CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
--CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
- # CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
- 
- #
- # Input Device Drivers
- #
--# CONFIG_INPUT_KEYBOARD is not set
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_GPIO=y
- # CONFIG_INPUT_MOUSE is not set
- # CONFIG_INPUT_JOYSTICK is not set
- # CONFIG_INPUT_TABLET is not set
-@@ -519,16 +747,20 @@
- #
- # Hardware I/O ports
- #
--# CONFIG_SERIO is not set
-+CONFIG_SERIO=y
-+CONFIG_SERIO_SERPORT=y
-+# CONFIG_SERIO_RAW is not set
- # CONFIG_GAMEPORT is not set
- 
- #
- # Character devices
- #
- CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
- # CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
- # CONFIG_SERIAL_NONSTANDARD is not set
- 
- #
-@@ -541,96 +773,98 @@
- #
- CONFIG_SERIAL_ATMEL=y
- CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
- # CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
- CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
- CONFIG_LEGACY_PTYS=y
--CONFIG_LEGACY_PTY_COUNT=256
-+CONFIG_LEGACY_PTY_COUNT=4
- # CONFIG_IPMI_HANDLER is not set
--# CONFIG_HW_RANDOM is not set
--# CONFIG_NVRAM is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
- # CONFIG_TCG_TPM is not set
--CONFIG_I2C=y
--CONFIG_I2C_BOARDINFO=y
--CONFIG_I2C_CHARDEV=y
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
- 
- #
--# I2C Algorithms
-+# SPI Master Controller Drivers
- #
--CONFIG_I2C_ALGOBIT=y
--# CONFIG_I2C_ALGOPCF is not set
--# CONFIG_I2C_ALGOPCA is not set
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
- 
- #
--# I2C Hardware Bus support
-+# SPI Protocol Masters
- #
--CONFIG_I2C_GPIO=y
--# CONFIG_I2C_OCORES is not set
--# CONFIG_I2C_PARPORT_LIGHT is not set
--# CONFIG_I2C_SIMTEC is not set
--# CONFIG_I2C_TAOS_EVM is not set
--# CONFIG_I2C_STUB is not set
--# CONFIG_I2C_TINY_USB is not set
--# CONFIG_I2C_PCA is not set
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
- 
- #
--# Miscellaneous I2C Chip support
-+# Memory mapped GPIO expanders:
- #
--# CONFIG_SENSORS_DS1337 is not set
--# CONFIG_SENSORS_DS1374 is not set
--# CONFIG_DS1682 is not set
--# CONFIG_EEPROM_LEGACY is not set
--# CONFIG_SENSORS_PCF8574 is not set
--# CONFIG_SENSORS_PCA9539 is not set
--# CONFIG_SENSORS_PCF8591 is not set
--# CONFIG_SENSORS_MAX6875 is not set
--# CONFIG_SENSORS_TSL2550 is not set
--# CONFIG_I2C_DEBUG_CORE is not set
--# CONFIG_I2C_DEBUG_ALGO is not set
--# CONFIG_I2C_DEBUG_BUS is not set
--# CONFIG_I2C_DEBUG_CHIP is not set
- 
- #
--# SPI support
-+# I2C GPIO expanders:
- #
--# CONFIG_SPI is not set
--# CONFIG_SPI_MASTER is not set
--# CONFIG_W1 is not set
--# CONFIG_POWER_SUPPLY is not set
--# CONFIG_HWMON is not set
--CONFIG_WATCHDOG=y
--CONFIG_WATCHDOG_NOWAYOUT=y
- 
- #
--# Watchdog Device Drivers
-+# PCI GPIO expanders:
- #
--# CONFIG_SOFT_WATCHDOG is not set
--CONFIG_AT91SAM9X_WATCHDOG=y
- 
- #
--# USB-based Watchdog Cards
-+# SPI GPIO expanders:
- #
--# CONFIG_USBPCWATCHDOG is not set
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
- 
- #
- # Sonics Silicon Backplane
- #
--CONFIG_SSB_POSSIBLE=y
- # CONFIG_SSB is not set
- 
- #
- # Multifunction device drivers
- #
-+# CONFIG_MFD_CORE is not set
- # CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
- 
- #
- # Multimedia devices
- #
-+
-+#
-+# Multimedia core support
-+#
- # CONFIG_VIDEO_DEV is not set
- # CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
- # CONFIG_DAB is not set
- 
- #
-@@ -651,11 +885,40 @@
- #
- # CONFIG_VGA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
--
--#
--# Sound
--#
--# CONFIG_SOUND is not set
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+# CONFIG_SND_ATMEL_AC97C is not set
-+CONFIG_SND_SPI=y
-+CONFIG_SND_AT73C213=y
-+CONFIG_SND_AT73C213_TARGET_BITRATE=48000
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
- CONFIG_HID_SUPPORT=y
- CONFIG_HID=y
- # CONFIG_HID_DEBUG is not set
-@@ -665,63 +928,76 @@
- # USB Input Devices
- #
- # CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
- 
- #
--# USB HID Boot Protocol drivers
-+# Special HID drivers
- #
--# CONFIG_USB_KBD is not set
--# CONFIG_USB_MOUSE is not set
- CONFIG_USB_SUPPORT=y
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
- # CONFIG_USB_ARCH_HAS_EHCI is not set
- CONFIG_USB=y
- # CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
- 
- #
- # Miscellaneous USB options
- #
- CONFIG_USB_DEVICEFS=y
--CONFIG_USB_DEVICE_CLASS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
- # CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_SUSPEND is not set
- # CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
- 
- #
- # USB Host Controller Drivers
- #
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
- # CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
- CONFIG_USB_OHCI_HCD=y
- # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
- # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
- CONFIG_USB_OHCI_LITTLE_ENDIAN=y
- # CONFIG_USB_SL811_HCD is not set
- # CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
- 
- #
- # USB Device Class drivers
- #
- # CONFIG_USB_ACM is not set
- # CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
- 
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
- #
- 
- #
--# may also be needed; see USB_STORAGE Help for more information
-+# also be needed; see USB_STORAGE Help for more info
- #
- CONFIG_USB_STORAGE=y
--CONFIG_USB_STORAGE_DEBUG=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
- # CONFIG_USB_STORAGE_DATAFAB is not set
- # CONFIG_USB_STORAGE_FREECOM is not set
- # CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
- # CONFIG_USB_STORAGE_USBAT is not set
- # CONFIG_USB_STORAGE_SDDR09 is not set
- # CONFIG_USB_STORAGE_SDDR55 is not set
- # CONFIG_USB_STORAGE_JUMPSHOT is not set
- # CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
- # CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
- # CONFIG_USB_LIBUSUAL is not set
- 
- #
-@@ -729,15 +1005,10 @@
- #
- # CONFIG_USB_MDC800 is not set
- # CONFIG_USB_MICROTEK is not set
--CONFIG_USB_MON=y
- 
- #
- # USB port drivers
- #
--
--#
--# USB Serial Converter support
--#
- # CONFIG_USB_SERIAL is not set
- 
- #
-@@ -746,7 +1017,7 @@
- # CONFIG_USB_EMI62 is not set
- # CONFIG_USB_EMI26 is not set
- # CONFIG_USB_ADUTUX is not set
--# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_SEVSEG is not set
- # CONFIG_USB_RIO500 is not set
- # CONFIG_USB_LEGOTOWER is not set
- # CONFIG_USB_LCD is not set
-@@ -754,7 +1025,6 @@
- # CONFIG_USB_LED is not set
- # CONFIG_USB_CYPRESS_CY7C63 is not set
- # CONFIG_USB_CYTHERM is not set
--# CONFIG_USB_PHIDGET is not set
- # CONFIG_USB_IDMOUSE is not set
- # CONFIG_USB_FTDI_ELAN is not set
- # CONFIG_USB_APPLEDISPLAY is not set
-@@ -762,41 +1032,90 @@
- # CONFIG_USB_TRANCEVIBRATOR is not set
- # CONFIG_USB_IOWARRIOR is not set
- # CONFIG_USB_TEST is not set
--
--#
--# USB DSL modem support
--#
--
--#
--# USB Gadget Support
--#
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
- CONFIG_USB_GADGET=y
--# CONFIG_USB_GADGET_DEBUG is not set
- # CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
- CONFIG_USB_GADGET_SELECTED=y
--# CONFIG_USB_GADGET_AMD5536UDC is not set
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
- # CONFIG_USB_GADGET_ATMEL_USBA is not set
- # CONFIG_USB_GADGET_FSL_USB2 is not set
--# CONFIG_USB_GADGET_NET2280 is not set
--# CONFIG_USB_GADGET_PXA2XX is not set
--# CONFIG_USB_GADGET_M66592 is not set
--# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_LH7A40X is not set
- # CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
- # CONFIG_USB_GADGET_S3C2410 is not set
--CONFIG_USB_GADGET_AT91=y
--CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
- # CONFIG_USB_GADGET_DUMMY_HCD is not set
- # CONFIG_USB_GADGET_DUALSPEED is not set
- CONFIG_USB_ZERO=m
--# CONFIG_USB_ETH is not set
--CONFIG_USB_GADGETFS=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
- CONFIG_USB_FILE_STORAGE=m
- # CONFIG_USB_FILE_STORAGE_TEST is not set
- CONFIG_USB_G_SERIAL=m
- # CONFIG_USB_MIDI_GADGET is not set
--# CONFIG_MMC is not set
--# CONFIG_NEW_LEDS is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+CONFIG_MMC_AT91=y
-+# CONFIG_MMC_ATMELMCI is not set
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
- CONFIG_RTC_LIB=y
- CONFIG_RTC_CLASS=y
- CONFIG_RTC_HCTOSYS=y
-@@ -813,38 +1132,42 @@
- # CONFIG_RTC_DRV_TEST is not set
- 
- #
--# I2C RTC drivers
--#
--# CONFIG_RTC_DRV_DS1307 is not set
--# CONFIG_RTC_DRV_DS1374 is not set
--# CONFIG_RTC_DRV_DS1672 is not set
--# CONFIG_RTC_DRV_MAX6900 is not set
--# CONFIG_RTC_DRV_RS5C372 is not set
--# CONFIG_RTC_DRV_ISL1208 is not set
--# CONFIG_RTC_DRV_X1205 is not set
--# CONFIG_RTC_DRV_PCF8563 is not set
--# CONFIG_RTC_DRV_PCF8583 is not set
--# CONFIG_RTC_DRV_M41T80 is not set
--
--#
- # SPI RTC drivers
- #
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
- 
- #
- # Platform RTC drivers
- #
- # CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
- # CONFIG_RTC_DRV_DS1553 is not set
--# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
- # CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
- # CONFIG_RTC_DRV_V3020 is not set
- 
- #
- # on-CPU RTC drivers
- #
- CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
- 
- #
- # File systems
-@@ -853,24 +1176,28 @@
- # CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
--# CONFIG_EXT4DEV_FS is not set
-+# CONFIG_EXT4_FS is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
- # CONFIG_XFS_FS is not set
--# CONFIG_GFS2_FS is not set
- # CONFIG_OCFS2_FS is not set
--# CONFIG_MINIX_FS is not set
--# CONFIG_ROMFS_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
- CONFIG_INOTIFY=y
- CONFIG_INOTIFY_USER=y
- # CONFIG_QUOTA is not set
--CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_FUSE_FS is not set
- 
- #
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
- # CD-ROM/DVD Filesystems
- #
- # CONFIG_ISO9660_FS is not set
-@@ -880,7 +1207,7 @@
- # DOS/FAT/NT Filesystems
- #
- CONFIG_FAT_FS=y
--# CONFIG_MSDOS_FS is not set
-+CONFIG_MSDOS_FS=y
- CONFIG_VFAT_FS=y
- CONFIG_FAT_DEFAULT_CODEPAGE=437
- CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-@@ -891,15 +1218,13 @@
- #
- CONFIG_PROC_FS=y
- CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_TMPFS_POSIX_ACL is not set
- # CONFIG_HUGETLB_PAGE is not set
- # CONFIG_CONFIGFS_FS is not set
--
--#
--# Miscellaneous filesystems
--#
-+CONFIG_MISC_FILESYSTEMS=y
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-@@ -907,15 +1232,42 @@
- # CONFIG_BEFS_FS is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EFS_FS is not set
--CONFIG_CRAMFS=y
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
- # CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
- # CONFIG_SYSV_FS is not set
- # CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
- CONFIG_NETWORK_FILESYSTEMS=y
--# CONFIG_NFS_FS is not set
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
- # CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
- # CONFIG_CIFS is not set
- # CONFIG_NCP_FS is not set
-@@ -963,14 +1315,11 @@
- # CONFIG_NLS_ISO8859_9 is not set
- # CONFIG_NLS_ISO8859_13 is not set
- # CONFIG_NLS_ISO8859_14 is not set
--# CONFIG_NLS_ISO8859_15 is not set
-+CONFIG_NLS_ISO8859_15=y
- # CONFIG_NLS_KOI8_R is not set
- # CONFIG_NLS_KOI8_U is not set
--# CONFIG_NLS_UTF8 is not set
-+CONFIG_NLS_UTF8=y
- # CONFIG_DLM is not set
--CONFIG_INSTRUMENTATION=y
--# CONFIG_PROFILING is not set
--# CONFIG_MARKERS is not set
- 
- #
- # Kernel hacking
-@@ -978,63 +1327,161 @@
- # CONFIG_PRINTK_TIME is not set
- CONFIG_ENABLE_WARN_DEPRECATED=y
- CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_UNUSED_SYMBOLS is not set
- # CONFIG_DEBUG_FS is not set
- # CONFIG_HEADERS_CHECK is not set
--CONFIG_DEBUG_KERNEL=y
--# CONFIG_DEBUG_SHIRQ is not set
--CONFIG_DETECT_SOFTLOCKUP=y
--CONFIG_SCHED_DEBUG=y
--# CONFIG_SCHEDSTATS is not set
--# CONFIG_TIMER_STATS is not set
--# CONFIG_DEBUG_SLAB is not set
--# CONFIG_DEBUG_RT_MUTEXES is not set
--# CONFIG_RT_MUTEX_TESTER is not set
--# CONFIG_DEBUG_SPINLOCK is not set
--# CONFIG_DEBUG_MUTEXES is not set
--# CONFIG_DEBUG_LOCK_ALLOC is not set
--# CONFIG_PROVE_LOCKING is not set
--# CONFIG_LOCK_STAT is not set
--# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
--# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
--# CONFIG_DEBUG_KOBJECT is not set
-+# CONFIG_DEBUG_KERNEL is not set
- CONFIG_DEBUG_BUGVERBOSE=y
--# CONFIG_DEBUG_INFO is not set
--# CONFIG_DEBUG_VM is not set
--# CONFIG_DEBUG_LIST is not set
--# CONFIG_DEBUG_SG is not set
--CONFIG_FRAME_POINTER=y
--CONFIG_FORCED_INLINING=y
--# CONFIG_BOOT_PRINTK_DELAY is not set
--# CONFIG_RCU_TORTURE_TEST is not set
--# CONFIG_FAULT_INJECTION is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
- # CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
- CONFIG_DEBUG_USER=y
--# CONFIG_DEBUG_ERRORS is not set
--CONFIG_DEBUG_LL=y
--# CONFIG_DEBUG_ICEDCC is not set
- 
- #
- # Security options
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
- # CONFIG_SECURITY_FILE_CAPABILITIES is not set
--# CONFIG_CRYPTO is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
- 
- #
- # Library routines
- #
- CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
- # CONFIG_CRC_CCITT is not set
- # CONFIG_CRC16 is not set
--# CONFIG_CRC_ITU_T is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
- CONFIG_CRC32=y
- # CONFIG_CRC7 is not set
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
--CONFIG_PLIST=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
- CONFIG_HAS_IOMEM=y
- CONFIG_HAS_IOPORT=y
- CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9rlek_defconfig
-===================================================================
---- linux-2.6.30.orig/arch/arm/configs/at91sam9rlek_defconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/arch/arm/configs/at91sam9rlek_defconfig	2011-02-01 16:40:30.200115764 +0100
-@@ -1,17 +1,18 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.24-rc7
--# Tue Jan  8 22:24:14 2008
-+# Linux kernel version: 2.6.30
-+# Tue Oct 13 12:57:29 2009
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
- CONFIG_GENERIC_GPIO=y
--# CONFIG_GENERIC_TIME is not set
--# CONFIG_GENERIC_CLOCKEVENTS is not set
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
- CONFIG_MMU=y
- # CONFIG_NO_IOPORT is not set
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
- CONFIG_LOCKDEP_SUPPORT=y
- CONFIG_TRACE_IRQFLAGS_SUPPORT=y
- CONFIG_HARDIRQS_SW_RESEND=y
-@@ -21,7 +22,7 @@
- # CONFIG_ARCH_HAS_ILOG2_U64 is not set
- CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
--CONFIG_ZONE_DMA=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
- CONFIG_VECTORS_BASE=0xffff0000
- CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
- 
-@@ -39,57 +40,82 @@
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_TASKSTATS is not set
--# CONFIG_USER_NS is not set
--# CONFIG_PID_NS is not set
- # CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
- # CONFIG_IKCONFIG is not set
- CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
- # CONFIG_CGROUPS is not set
--CONFIG_FAIR_GROUP_SCHED=y
--CONFIG_FAIR_USER_SCHED=y
--# CONFIG_FAIR_CGROUP_SCHED is not set
- CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
- # CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
- CONFIG_BLK_DEV_INITRD=y
- CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
- # CONFIG_EMBEDDED is not set
- CONFIG_UID16=y
- CONFIG_SYSCTL_SYSCALL=y
- CONFIG_KALLSYMS=y
--# CONFIG_KALLSYMS_ALL is not set
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
- CONFIG_HOTPLUG=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
- CONFIG_ELF_CORE=y
- CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
--CONFIG_ANON_INODES=y
- CONFIG_EPOLL=y
- CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
- CONFIG_EVENTFD=y
- CONFIG_SHMEM=y
-+CONFIG_AIO=y
- CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
- CONFIG_SLAB=y
- # CONFIG_SLUB is not set
- # CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
- CONFIG_SLABINFO=y
- CONFIG_RT_MUTEXES=y
--# CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
- CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
- CONFIG_MODULE_UNLOAD=y
- # CONFIG_MODULE_FORCE_UNLOAD is not set
- # CONFIG_MODVERSIONS is not set
- # CONFIG_MODULE_SRCVERSION_ALL is not set
--CONFIG_KMOD=y
- CONFIG_BLOCK=y
- # CONFIG_LBD is not set
--# CONFIG_BLK_DEV_IO_TRACE is not set
--# CONFIG_LSF is not set
- # CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
- 
- #
- # IO Schedulers
-@@ -103,6 +129,7 @@
- # CONFIG_DEFAULT_CFQ is not set
- # CONFIG_DEFAULT_NOOP is not set
- CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
- 
- #
- # System Type
-@@ -112,11 +139,10 @@
- # CONFIG_ARCH_REALVIEW is not set
- # CONFIG_ARCH_VERSATILE is not set
- CONFIG_ARCH_AT91=y
--# CONFIG_ARCH_CLPS7500 is not set
- # CONFIG_ARCH_CLPS711X is not set
--# CONFIG_ARCH_CO285 is not set
- # CONFIG_ARCH_EBSA110 is not set
- # CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
- # CONFIG_ARCH_FOOTBRIDGE is not set
- # CONFIG_ARCH_NETX is not set
- # CONFIG_ARCH_H720X is not set
-@@ -128,26 +154,26 @@
- # CONFIG_ARCH_IXP2000 is not set
- # CONFIG_ARCH_IXP4XX is not set
- # CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
- # CONFIG_ARCH_KS8695 is not set
- # CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
- # CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
- # CONFIG_ARCH_PNX4008 is not set
- # CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
- # CONFIG_ARCH_RPC is not set
- # CONFIG_ARCH_SA1100 is not set
- # CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
- # CONFIG_ARCH_SHARK is not set
- # CONFIG_ARCH_LH7A40X is not set
- # CONFIG_ARCH_DAVINCI is not set
- # CONFIG_ARCH_OMAP is not set
--
--#
--# Boot options
--#
--
--#
--# Power management
--#
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
- 
- #
- # Atmel AT91 System-on-Chip
-@@ -155,8 +181,13 @@
- # CONFIG_ARCH_AT91RM9200 is not set
- # CONFIG_ARCH_AT91SAM9260 is not set
- # CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
- # CONFIG_ARCH_AT91SAM9263 is not set
- CONFIG_ARCH_AT91SAM9RL=y
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
- # CONFIG_ARCH_AT91X40 is not set
- CONFIG_AT91_PMC_UNIT=y
- 
-@@ -173,8 +204,15 @@
- # AT91 Feature Selections
- #
- CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
--# CONFIG_ATMEL_TCLIB is not set
-+# CONFIG_AT91_SLOW_CLOCK is not set
- CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
- 
- #
- # Processor Type
-@@ -183,6 +221,7 @@
- CONFIG_CPU_ARM926T=y
- CONFIG_CPU_32v5=y
- CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
- CONFIG_CPU_CACHE_VIVT=y
- CONFIG_CPU_COPY_V4WB=y
- CONFIG_CPU_TLB_V4WBI=y
-@@ -192,7 +231,7 @@
- #
- # Processor Features
- #
--# CONFIG_ARM_THUMB is not set
-+CONFIG_ARM_THUMB=y
- # CONFIG_CPU_ICACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_DISABLE is not set
- # CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-@@ -209,25 +248,37 @@
- #
- # Kernel Features
- #
--# CONFIG_TICK_ONESHOT is not set
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
- # CONFIG_PREEMPT is not set
- CONFIG_HZ=100
--# CONFIG_AEABI is not set
--# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
- # CONFIG_SPARSEMEM_MANUAL is not set
- CONFIG_FLATMEM=y
- CONFIG_FLAT_NODE_MEM_MAP=y
--# CONFIG_SPARSEMEM_STATIC is not set
--# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-+CONFIG_PAGEFLAGS_EXTENDED=y
- CONFIG_SPLIT_PTLOCK_CPUS=4096
--# CONFIG_RESOURCES_64BIT is not set
--CONFIG_ZONE_DMA_FLAG=1
--CONFIG_BOUNCE=y
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
- CONFIG_VIRT_TO_BUS=y
--# CONFIG_LEDS is not set
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
- CONFIG_ALIGNMENT_TRAP=y
- 
- #
-@@ -235,11 +286,16 @@
- #
- CONFIG_ZBOOT_ROM_TEXT=0x0
- CONFIG_ZBOOT_ROM_BSS=0x0
--CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,17105363 root=/dev/ram0 rw"
-+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
- # CONFIG_XIP_KERNEL is not set
- # CONFIG_KEXEC is not set
- 
- #
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
- # Floating point emulation
- #
- 
-@@ -255,32 +311,62 @@
- # Userspace binary formats
- #
- CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
- # CONFIG_BINFMT_AOUT is not set
- # CONFIG_BINFMT_MISC is not set
--# CONFIG_ARTHUR is not set
- 
- #
- # Power management options
- #
--# CONFIG_PM is not set
--CONFIG_SUSPEND_UP_POSSIBLE=y
--
--#
--# Networking
--#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
- CONFIG_NET=y
- 
- #
- # Networking options
- #
--# CONFIG_PACKET is not set
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
- CONFIG_UNIX=y
- # CONFIG_NET_KEY is not set
--# CONFIG_INET is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
- # CONFIG_NETWORK_SECMARK is not set
- # CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
- # CONFIG_ATM is not set
- # CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
- # CONFIG_VLAN_8021Q is not set
- # CONFIG_DECNET is not set
- # CONFIG_LLC2 is not set
-@@ -288,24 +374,42 @@
- # CONFIG_ATALK is not set
- # CONFIG_X25 is not set
- # CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
- # CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
- # CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
- 
- #
- # Network testing
- #
- # CONFIG_NET_PKTGEN is not set
- # CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
- # CONFIG_IRDA is not set
- # CONFIG_BT is not set
--
--#
--# Wireless
--#
--# CONFIG_CFG80211 is not set
--# CONFIG_WIRELESS_EXT is not set
--# CONFIG_MAC80211 is not set
--# CONFIG_IEEE80211 is not set
-+# CONFIG_AF_RXRPC is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
- # CONFIG_RFKILL is not set
- # CONFIG_NET_9P is not set
- 
-@@ -319,18 +423,20 @@
- CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
- CONFIG_STANDALONE=y
- CONFIG_PREVENT_FIRMWARE_BUILD=y
--# CONFIG_FW_LOADER is not set
--# CONFIG_DEBUG_DRIVER is not set
--# CONFIG_DEBUG_DEVRES is not set
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
- # CONFIG_SYS_HYPERVISOR is not set
- # CONFIG_CONNECTOR is not set
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
--CONFIG_MTD_CONCAT=y
-+# CONFIG_MTD_CONCAT is not set
- CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
- # CONFIG_MTD_REDBOOT_PARTS is not set
- CONFIG_MTD_CMDLINE_PARTS=y
- # CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
- 
- #
- # User Modules And Translation Layers
-@@ -374,6 +480,8 @@
- # Self-contained MTD device drivers
- #
- CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
- # CONFIG_MTD_M25P80 is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_PHRAM is not set
-@@ -390,14 +498,23 @@
- # CONFIG_MTD_NAND_VERIFY_WRITE is not set
- # CONFIG_MTD_NAND_ECC_SMC is not set
- # CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
- CONFIG_MTD_NAND_IDS=y
- # CONFIG_MTD_NAND_DISKONCHIP is not set
- CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
- # CONFIG_MTD_NAND_NANDSIM is not set
- # CONFIG_MTD_NAND_PLATFORM is not set
- # CONFIG_MTD_ONENAND is not set
- 
- #
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
- # UBI - Unsorted block images
- #
- # CONFIG_MTD_UBI is not set
-@@ -409,13 +526,26 @@
- # CONFIG_BLK_DEV_NBD is not set
- CONFIG_BLK_DEV_RAM=y
- CONFIG_BLK_DEV_RAM_COUNT=4
--CONFIG_BLK_DEV_RAM_SIZE=24576
--CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-+CONFIG_BLK_DEV_RAM_SIZE=8192
-+# CONFIG_BLK_DEV_XIP is not set
- # CONFIG_CDROM_PKTCDVD is not set
- # CONFIG_ATA_OVER_ETH is not set
- CONFIG_MISC_DEVICES=y
-+CONFIG_ATMEL_PWM=y
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+# CONFIG_ATMEL_SSC is not set
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
- # CONFIG_EEPROM_93CX6 is not set
--CONFIG_ATMEL_SSC=y
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
- 
- #
- # SCSI device support
-@@ -454,11 +584,49 @@
- # CONFIG_SCSI_ISCSI_ATTRS is not set
- # CONFIG_SCSI_SAS_LIBSAS is not set
- # CONFIG_SCSI_SRP_ATTRS is not set
--CONFIG_SCSI_LOWLEVEL=y
--# CONFIG_SCSI_DEBUG is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
- # CONFIG_ATA is not set
- # CONFIG_MD is not set
--# CONFIG_NETDEVICES is not set
-+CONFIG_NETDEVICES=y
-+# CONFIG_COMPAT_NET_DEV_OPS is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+# CONFIG_NET_ETHERNET is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_SDIO=m
-+# CONFIG_LIBERTAS_SPI is not set
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+# CONFIG_RT2X00 is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
- # CONFIG_ISDN is not set
- 
- #
-@@ -473,8 +641,8 @@
- #
- CONFIG_INPUT_MOUSEDEV=y
- # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
--CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
--CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
- # CONFIG_INPUT_JOYDEV is not set
- CONFIG_INPUT_EVDEV=y
- # CONFIG_INPUT_EVBUG is not set
-@@ -482,23 +650,36 @@
- #
- # Input Device Drivers
- #
--# CONFIG_INPUT_KEYBOARD is not set
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_GPIO=y
- # CONFIG_INPUT_MOUSE is not set
- # CONFIG_INPUT_JOYSTICK is not set
- # CONFIG_INPUT_TABLET is not set
- CONFIG_INPUT_TOUCHSCREEN=y
- # CONFIG_TOUCHSCREEN_ADS7846 is not set
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
- # CONFIG_TOUCHSCREEN_FUJITSU is not set
- # CONFIG_TOUCHSCREEN_GUNZE is not set
- # CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
- # CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
- # CONFIG_TOUCHSCREEN_MK712 is not set
- # CONFIG_TOUCHSCREEN_PENMOUNT is not set
- # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
- # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
- CONFIG_TOUCHSCREEN_ATMEL_TSADCC=y
--# CONFIG_TOUCHSCREEN_UCB1400 is not set
-+# CONFIG_TOUCHSCREEN_WM97XX is not set
- # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
- # CONFIG_INPUT_MISC is not set
- 
- #
-@@ -511,9 +692,11 @@
- # Character devices
- #
- CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
- CONFIG_VT_CONSOLE=y
- CONFIG_HW_CONSOLE=y
- # CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
- # CONFIG_SERIAL_NONSTANDARD is not set
- 
- #
-@@ -526,103 +709,99 @@
- #
- CONFIG_SERIAL_ATMEL=y
- CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
- # CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
- CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
- CONFIG_LEGACY_PTYS=y
--CONFIG_LEGACY_PTY_COUNT=256
-+CONFIG_LEGACY_PTY_COUNT=4
- # CONFIG_IPMI_HANDLER is not set
--# CONFIG_HW_RANDOM is not set
--# CONFIG_NVRAM is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
- # CONFIG_TCG_TPM is not set
--CONFIG_I2C=y
--CONFIG_I2C_BOARDINFO=y
--CONFIG_I2C_CHARDEV=y
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
- 
- #
--# I2C Algorithms
-+# SPI Master Controller Drivers
- #
--CONFIG_I2C_ALGOBIT=y
--# CONFIG_I2C_ALGOPCF is not set
--# CONFIG_I2C_ALGOPCA is not set
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
- 
- #
--# I2C Hardware Bus support
-+# SPI Protocol Masters
- #
--CONFIG_I2C_GPIO=y
--# CONFIG_I2C_OCORES is not set
--# CONFIG_I2C_PARPORT_LIGHT is not set
--# CONFIG_I2C_SIMTEC is not set
--# CONFIG_I2C_TAOS_EVM is not set
--# CONFIG_I2C_STUB is not set
--# CONFIG_I2C_PCA is not set
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
- 
- #
--# Miscellaneous I2C Chip support
-+# Memory mapped GPIO expanders:
- #
--# CONFIG_SENSORS_DS1337 is not set
--# CONFIG_SENSORS_DS1374 is not set
--# CONFIG_DS1682 is not set
--# CONFIG_EEPROM_LEGACY is not set
--# CONFIG_SENSORS_PCF8574 is not set
--# CONFIG_SENSORS_PCA9539 is not set
--# CONFIG_SENSORS_PCF8591 is not set
--# CONFIG_SENSORS_MAX6875 is not set
--# CONFIG_SENSORS_TSL2550 is not set
--# CONFIG_I2C_DEBUG_CORE is not set
--# CONFIG_I2C_DEBUG_ALGO is not set
--# CONFIG_I2C_DEBUG_BUS is not set
--# CONFIG_I2C_DEBUG_CHIP is not set
- 
- #
--# SPI support
-+# I2C GPIO expanders:
- #
--CONFIG_SPI=y
--# CONFIG_SPI_DEBUG is not set
--CONFIG_SPI_MASTER=y
- 
- #
--# SPI Master Controller Drivers
-+# PCI GPIO expanders:
- #
--CONFIG_SPI_ATMEL=y
--# CONFIG_SPI_BITBANG is not set
- 
- #
--# SPI Protocol Masters
-+# SPI GPIO expanders:
- #
--# CONFIG_EEPROM_AT25 is not set
--# CONFIG_SPI_SPIDEV is not set
--# CONFIG_SPI_TLE62X0 is not set
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
- # CONFIG_W1 is not set
- # CONFIG_POWER_SUPPLY is not set
- # CONFIG_HWMON is not set
--CONFIG_WATCHDOG=y
--CONFIG_WATCHDOG_NOWAYOUT=y
--
--#
--# Watchdog Device Drivers
--#
--# CONFIG_SOFT_WATCHDOG is not set
--CONFIG_AT91SAM9X_WATCHDOG=y
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
- 
- #
- # Sonics Silicon Backplane
- #
--CONFIG_SSB_POSSIBLE=y
- # CONFIG_SSB is not set
- 
- #
- # Multifunction device drivers
- #
-+# CONFIG_MFD_CORE is not set
- # CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_UCB1400_CORE is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
- 
- #
- # Multimedia devices
- #
-+
-+#
-+# Multimedia core support
-+#
- # CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
- # CONFIG_DAB is not set
- 
- #
-@@ -633,6 +812,7 @@
- CONFIG_FB=y
- # CONFIG_FIRMWARE_EDID is not set
- # CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
- CONFIG_FB_CFB_FILLRECT=y
- CONFIG_FB_CFB_COPYAREA=y
- CONFIG_FB_CFB_IMAGEBLIT=y
-@@ -640,8 +820,8 @@
- # CONFIG_FB_SYS_FILLRECT is not set
- # CONFIG_FB_SYS_COPYAREA is not set
- # CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
- # CONFIG_FB_SYS_FOPS is not set
--CONFIG_FB_DEFERRED_IO=y
- # CONFIG_FB_SVGALIB is not set
- # CONFIG_FB_MACMODES is not set
- # CONFIG_FB_BACKLIGHT is not set
-@@ -655,7 +835,15 @@
- # CONFIG_FB_S1D13XXX is not set
- CONFIG_FB_ATMEL=y
- # CONFIG_FB_VIRTUAL is not set
--# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+# CONFIG_LCD_CLASS_DEVICE is not set
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_ATMEL_PWM is not set
-+# CONFIG_BACKLIGHT_GENERIC is not set
- 
- #
- # Display device support
-@@ -669,46 +857,139 @@
- CONFIG_DUMMY_CONSOLE=y
- # CONFIG_FRAMEBUFFER_CONSOLE is not set
- # CONFIG_LOGO is not set
--
--#
--# Sound
--#
--# CONFIG_SOUND is not set
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+CONFIG_SND_VMASTER=y
-+CONFIG_SND_AC97_CODEC=y
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+CONFIG_SND_ATMEL_AC97C=y
-+# CONFIG_SND_SPI is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_AC97_BUS=y
- CONFIG_HID_SUPPORT=y
- CONFIG_HID=y
- # CONFIG_HID_DEBUG is not set
- # CONFIG_HIDRAW is not set
-+# CONFIG_HID_PID is not set
-+
-+#
-+# Special HID drivers
-+#
- CONFIG_USB_SUPPORT=y
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
- # CONFIG_USB_ARCH_HAS_EHCI is not set
- # CONFIG_USB is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
- 
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
- #
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+# CONFIG_USB_GADGET_AT91 is not set
-+CONFIG_USB_GADGET_ATMEL_USBA=y
-+CONFIG_USB_ATMEL_USBA=y
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+CONFIG_USB_GADGET_DUALSPEED=y
-+# CONFIG_USB_ZERO is not set
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
-+CONFIG_USB_FILE_STORAGE=m
-+# CONFIG_USB_FILE_STORAGE_TEST is not set
-+CONFIG_USB_G_SERIAL=m
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
- 
- #
--# USB Gadget Support
-+# OTG and related infrastructure
- #
--# CONFIG_USB_GADGET is not set
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
- CONFIG_MMC=y
- # CONFIG_MMC_DEBUG is not set
- # CONFIG_MMC_UNSAFE_RESUME is not set
- 
- #
--# MMC/SD Card Drivers
-+# MMC/SD/SDIO Card Drivers
- #
- CONFIG_MMC_BLOCK=y
- CONFIG_MMC_BLOCK_BOUNCE=y
--# CONFIG_SDIO_UART is not set
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
- 
- #
--# MMC/SD Host Controller Drivers
-+# MMC/SD/SDIO Host Controller Drivers
- #
-+# CONFIG_MMC_SDHCI is not set
- CONFIG_MMC_AT91=y
-+# CONFIG_MMC_ATMELMCI is not set
- # CONFIG_MMC_SPI is not set
--# CONFIG_NEW_LEDS is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_ATMEL_PWM=y
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
- CONFIG_RTC_LIB=y
- CONFIG_RTC_CLASS=y
- CONFIG_RTC_HCTOSYS=y
-@@ -725,40 +1006,56 @@
- # CONFIG_RTC_DRV_TEST is not set
- 
- #
--# I2C RTC drivers
--#
--# CONFIG_RTC_DRV_DS1307 is not set
--# CONFIG_RTC_DRV_DS1374 is not set
--# CONFIG_RTC_DRV_DS1672 is not set
--# CONFIG_RTC_DRV_MAX6900 is not set
--# CONFIG_RTC_DRV_RS5C372 is not set
--# CONFIG_RTC_DRV_ISL1208 is not set
--# CONFIG_RTC_DRV_X1205 is not set
--# CONFIG_RTC_DRV_PCF8563 is not set
--# CONFIG_RTC_DRV_PCF8583 is not set
--# CONFIG_RTC_DRV_M41T80 is not set
--
--#
- # SPI RTC drivers
- #
--# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
- # CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
- 
- #
- # Platform RTC drivers
- #
- # CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
- # CONFIG_RTC_DRV_DS1553 is not set
--# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
- # CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
- # CONFIG_RTC_DRV_V3020 is not set
- 
- #
- # on-CPU RTC drivers
- #
-+# CONFIG_RTC_DRV_AT91RM9200 is not set
- CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+CONFIG_DMADEVICES=y
-+
-+#
-+# DMA Devices
-+#
-+CONFIG_AT_HDMAC=m
-+CONFIG_DMA_ENGINE=y
-+
-+#
-+# DMA Clients
-+#
-+# CONFIG_NET_DMA is not set
-+# CONFIG_ASYNC_TX_DMA is not set
-+CONFIG_DMATEST=m
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
- 
- #
- # File systems
-@@ -767,24 +1064,28 @@
- # CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
--# CONFIG_EXT4DEV_FS is not set
-+# CONFIG_EXT4_FS is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
- # CONFIG_XFS_FS is not set
--# CONFIG_GFS2_FS is not set
- # CONFIG_OCFS2_FS is not set
--# CONFIG_MINIX_FS is not set
--# CONFIG_ROMFS_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
- CONFIG_INOTIFY=y
- CONFIG_INOTIFY_USER=y
- # CONFIG_QUOTA is not set
--CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_FUSE_FS is not set
- 
- #
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
- # CD-ROM/DVD Filesystems
- #
- # CONFIG_ISO9660_FS is not set
-@@ -805,15 +1106,13 @@
- #
- CONFIG_PROC_FS=y
- CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
- # CONFIG_TMPFS_POSIX_ACL is not set
- # CONFIG_HUGETLB_PAGE is not set
- # CONFIG_CONFIGFS_FS is not set
--
--#
--# Miscellaneous filesystems
--#
-+CONFIG_MISC_FILESYSTEMS=y
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-@@ -821,14 +1120,47 @@
- # CONFIG_BEFS_FS is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EFS_FS is not set
--# CONFIG_JFFS2_FS is not set
--CONFIG_CRAMFS=y
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
- # CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
- # CONFIG_SYSV_FS is not set
- # CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
- CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
- 
- #
- # Partition Types
-@@ -875,9 +1207,7 @@
- # CONFIG_NLS_KOI8_R is not set
- # CONFIG_NLS_KOI8_U is not set
- CONFIG_NLS_UTF8=y
--CONFIG_INSTRUMENTATION=y
--# CONFIG_PROFILING is not set
--# CONFIG_MARKERS is not set
-+# CONFIG_DLM is not set
- 
- #
- # Kernel hacking
-@@ -885,63 +1215,161 @@
- # CONFIG_PRINTK_TIME is not set
- CONFIG_ENABLE_WARN_DEPRECATED=y
- CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_UNUSED_SYMBOLS is not set
- # CONFIG_DEBUG_FS is not set
- # CONFIG_HEADERS_CHECK is not set
--CONFIG_DEBUG_KERNEL=y
--# CONFIG_DEBUG_SHIRQ is not set
--CONFIG_DETECT_SOFTLOCKUP=y
--CONFIG_SCHED_DEBUG=y
--# CONFIG_SCHEDSTATS is not set
--# CONFIG_TIMER_STATS is not set
--# CONFIG_DEBUG_SLAB is not set
--# CONFIG_DEBUG_RT_MUTEXES is not set
--# CONFIG_RT_MUTEX_TESTER is not set
--# CONFIG_DEBUG_SPINLOCK is not set
--# CONFIG_DEBUG_MUTEXES is not set
--# CONFIG_DEBUG_LOCK_ALLOC is not set
--# CONFIG_PROVE_LOCKING is not set
--# CONFIG_LOCK_STAT is not set
--# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
--# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
--# CONFIG_DEBUG_KOBJECT is not set
-+# CONFIG_DEBUG_KERNEL is not set
- CONFIG_DEBUG_BUGVERBOSE=y
--CONFIG_DEBUG_INFO=y
--# CONFIG_DEBUG_VM is not set
--# CONFIG_DEBUG_LIST is not set
--# CONFIG_DEBUG_SG is not set
--CONFIG_FRAME_POINTER=y
--CONFIG_FORCED_INLINING=y
--# CONFIG_BOOT_PRINTK_DELAY is not set
--# CONFIG_RCU_TORTURE_TEST is not set
--# CONFIG_FAULT_INJECTION is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
- # CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
- CONFIG_DEBUG_USER=y
--# CONFIG_DEBUG_ERRORS is not set
--CONFIG_DEBUG_LL=y
--# CONFIG_DEBUG_ICEDCC is not set
- 
- #
- # Security options
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
- # CONFIG_SECURITY_FILE_CAPABILITIES is not set
--# CONFIG_CRYPTO is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
- 
- #
- # Library routines
- #
- CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
- # CONFIG_CRC_CCITT is not set
- # CONFIG_CRC16 is not set
-+# CONFIG_CRC_T10DIF is not set
- # CONFIG_CRC_ITU_T is not set
- CONFIG_CRC32=y
- # CONFIG_CRC7 is not set
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
--CONFIG_PLIST=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
- CONFIG_HAS_IOMEM=y
- CONFIG_HAS_IOPORT=y
- CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/include/sound/ac97_codec.h
-===================================================================
---- linux-2.6.30.orig/include/sound/ac97_codec.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/include/sound/ac97_codec.h	2011-02-01 16:40:30.177046291 +0100
-@@ -32,6 +32,9 @@
- #include "control.h"
- #include "info.h"
- 
-+/* maximum number of devices on the AC97 bus */
-+#define	AC97_BUS_MAX_DEVICES	4
-+
- /*
-  *  AC'97 codec registers
-  */
-@@ -642,4 +645,10 @@
- /* ad hoc AC97 device driver access */
- extern struct bus_type ac97_bus_type;
- 
-+/* AC97 platform_data adding function */
-+static inline void snd_ac97_dev_add_pdata(struct snd_ac97 *ac97, void *data)
-+{
-+	ac97->dev.platform_data = data;
-+}
-+
- #endif /* __SOUND_AC97_CODEC_H */
-Index: linux-2.6.30/include/sound/soc-dai.h
-===================================================================
---- linux-2.6.30.orig/include/sound/soc-dai.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/include/sound/soc-dai.h	2011-02-01 16:40:30.177046291 +0100
-@@ -27,9 +27,10 @@
- #define SND_SOC_DAIFMT_I2S		0 /* I2S mode */
- #define SND_SOC_DAIFMT_RIGHT_J		1 /* Right Justified mode */
- #define SND_SOC_DAIFMT_LEFT_J		2 /* Left Justified mode */
--#define SND_SOC_DAIFMT_DSP_A		3 /* L data msb after FRM LRC */
--#define SND_SOC_DAIFMT_DSP_B		4 /* L data msb during FRM LRC */
-+#define SND_SOC_DAIFMT_DSP_A		3 /* L data MSB after FRM LRC */
-+#define SND_SOC_DAIFMT_DSP_B		4 /* L data MSB during FRM LRC */
- #define SND_SOC_DAIFMT_AC97		5 /* AC97 */
-+#define SND_SOC_DAIFMT_PDM		6 /* Pulse density modulation */
- 
- /* left and right justified also known as MSB and LSB respectively */
- #define SND_SOC_DAIFMT_MSB		SND_SOC_DAIFMT_LEFT_J
-@@ -38,52 +39,34 @@
- /*
-  * DAI Clock gating.
-  *
-- * DAI bit clocks can be be gated (disabled) when not the DAI is not
-+ * DAI bit clocks can be be gated (disabled) when the DAI is not
-  * sending or receiving PCM data in a frame. This can be used to save power.
-  */
- #define SND_SOC_DAIFMT_CONT		(0 << 4) /* continuous clock */
- #define SND_SOC_DAIFMT_GATED		(1 << 4) /* clock is gated */
- 
- /*
-- * DAI Left/Right Clocks.
-- *
-- * Specifies whether the DAI can support different samples for similtanious
-- * playback and capture. This usually requires a seperate physical frame
-- * clock for playback and capture.
-- */
--#define SND_SOC_DAIFMT_SYNC		(0 << 5) /* Tx FRM = Rx FRM */
--#define SND_SOC_DAIFMT_ASYNC		(1 << 5) /* Tx FRM ~ Rx FRM */
--
--/*
-- * TDM
-- *
-- * Time Division Multiplexing. Allows PCM data to be multplexed with other
-- * data on the DAI.
-- */
--#define SND_SOC_DAIFMT_TDM		(1 << 6)
--
--/*
-  * DAI hardware signal inversions.
-  *
-  * Specifies whether the DAI can also support inverted clocks for the specified
-  * format.
-  */
- #define SND_SOC_DAIFMT_NB_NF		(0 << 8) /* normal bit clock + frame */
--#define SND_SOC_DAIFMT_NB_IF		(1 << 8) /* normal bclk + inv frm */
--#define SND_SOC_DAIFMT_IB_NF		(2 << 8) /* invert bclk + nor frm */
--#define SND_SOC_DAIFMT_IB_IF		(3 << 8) /* invert bclk + frm */
-+#define SND_SOC_DAIFMT_NB_IF		(1 << 8) /* normal BCLK + inv FRM */
-+#define SND_SOC_DAIFMT_IB_NF		(2 << 8) /* invert BCLK + nor FRM */
-+#define SND_SOC_DAIFMT_IB_IF		(3 << 8) /* invert BCLK + FRM */
- 
- /*
-  * DAI hardware clock masters.
-  *
-  * This is wrt the codec, the inverse is true for the interface
-- * i.e. if the codec is clk and frm master then the interface is
-+ * i.e. if the codec is clk and FRM master then the interface is
-  * clk and frame slave.
-  */
--#define SND_SOC_DAIFMT_CBM_CFM		(0 << 12) /* codec clk & frm master */
--#define SND_SOC_DAIFMT_CBS_CFM		(1 << 12) /* codec clk slave & frm master */
-+#define SND_SOC_DAIFMT_CBM_CFM		(0 << 12) /* codec clk & FRM master */
-+#define SND_SOC_DAIFMT_CBS_CFM		(1 << 12) /* codec clk slave & FRM master */
- #define SND_SOC_DAIFMT_CBM_CFS		(2 << 12) /* codec clk master & frame slave */
--#define SND_SOC_DAIFMT_CBS_CFS		(3 << 12) /* codec clk & frm slave */
-+#define SND_SOC_DAIFMT_CBS_CFS		(3 << 12) /* codec clk & FRM slave */
- 
- #define SND_SOC_DAIFMT_FORMAT_MASK	0x000f
- #define SND_SOC_DAIFMT_CLOCK_MASK	0x00f0
-@@ -96,6 +79,16 @@
- #define SND_SOC_CLOCK_IN		0
- #define SND_SOC_CLOCK_OUT		1
- 
-+#define SND_SOC_STD_AC97_FMTS (SNDRV_PCM_FMTBIT_S8 |\
-+			       SNDRV_PCM_FMTBIT_S16_LE |\
-+			       SNDRV_PCM_FMTBIT_S16_BE |\
-+			       SNDRV_PCM_FMTBIT_S20_3LE |\
-+			       SNDRV_PCM_FMTBIT_S20_3BE |\
-+			       SNDRV_PCM_FMTBIT_S24_3LE |\
-+			       SNDRV_PCM_FMTBIT_S24_3BE |\
-+                               SNDRV_PCM_FMTBIT_S32_LE |\
-+                               SNDRV_PCM_FMTBIT_S32_BE)
-+
- struct snd_soc_dai_ops;
- struct snd_soc_dai;
- struct snd_ac97_bus_ops;
-@@ -114,13 +107,17 @@
- 	int div_id, int div);
- 
- int snd_soc_dai_set_pll(struct snd_soc_dai *dai,
--	int pll_id, unsigned int freq_in, unsigned int freq_out);
-+	int pll_id, int source, unsigned int freq_in, unsigned int freq_out);
- 
- /* Digital Audio interface formatting */
- int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt);
- 
- int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai,
--	unsigned int mask, int slots);
-+	unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width);
-+
-+int snd_soc_dai_set_channel_map(struct snd_soc_dai *dai,
-+	unsigned int tx_num, unsigned int *tx_slot,
-+	unsigned int rx_num, unsigned int *rx_slot);
- 
- int snd_soc_dai_set_tristate(struct snd_soc_dai *dai, int tristate);
- 
-@@ -130,12 +127,12 @@
- /*
-  * Digital Audio Interface.
-  *
-- * Describes the Digital Audio Interface in terms of it's ALSA, DAI and AC97
-- * operations an capabilities. Codec and platfom drivers will register a this
-+ * Describes the Digital Audio Interface in terms of its ALSA, DAI and AC97
-+ * operations and capabilities. Codec and platform drivers will register this
-  * structure for every DAI they have.
-  *
-  * This structure covers the clocking, formating and ALSA operations for each
-- * interface a
-+ * interface.
-  */
- struct snd_soc_dai_ops {
- 	/*
-@@ -144,8 +141,8 @@
- 	 */
- 	int (*set_sysclk)(struct snd_soc_dai *dai,
- 		int clk_id, unsigned int freq, int dir);
--	int (*set_pll)(struct snd_soc_dai *dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out);
-+	int (*set_pll)(struct snd_soc_dai *dai, int pll_id, int source,
-+		unsigned int freq_in, unsigned int freq_out);
- 	int (*set_clkdiv)(struct snd_soc_dai *dai, int div_id, int div);
- 
- 	/*
-@@ -154,7 +151,11 @@
- 	 */
- 	int (*set_fmt)(struct snd_soc_dai *dai, unsigned int fmt);
- 	int (*set_tdm_slot)(struct snd_soc_dai *dai,
--		unsigned int mask, int slots);
-+		unsigned int tx_mask, unsigned int rx_mask,
-+		int slots, int slot_width);
-+	int (*set_channel_map)(struct snd_soc_dai *dai,
-+		unsigned int tx_num, unsigned int *tx_slot,
-+		unsigned int rx_num, unsigned int *rx_slot);
- 	int (*set_tristate)(struct snd_soc_dai *dai, int tristate);
- 
- 	/*
-@@ -193,6 +194,7 @@
- 	int ac97_control;
- 
- 	struct device *dev;
-+	void *ac97_pdata;	/* platform_data for the ac97 codec */
- 
- 	/* DAI callbacks */
- 	int (*probe)(struct platform_device *pdev,
-@@ -208,6 +210,7 @@
- 	/* DAI capabilities */
- 	struct snd_soc_pcm_stream capture;
- 	struct snd_soc_pcm_stream playback;
-+	unsigned int symmetric_rates:1;
- 
- 	/* DAI runtime info */
- 	struct snd_pcm_runtime *runtime;
-@@ -219,11 +222,8 @@
- 	/* DAI private data */
- 	void *private_data;
- 
--	/* parent codec/platform */
--	union {
--		struct snd_soc_codec *codec;
--		struct snd_soc_platform *platform;
--	};
-+	/* parent platform */
-+	struct snd_soc_platform *platform;
- 
- 	struct list_head list;
- };
-Index: linux-2.6.30/include/sound/soc-dapm.h
-===================================================================
---- linux-2.6.30.orig/include/sound/soc-dapm.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/include/sound/soc-dapm.h	2011-02-01 16:40:30.177046291 +0100
-@@ -137,19 +137,39 @@
- 	.event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD}
- 
- /* stream domain */
-+#define SND_SOC_DAPM_AIF_IN(wname, stname, wslot, wreg, wshift, winvert) \
-+{	.id = snd_soc_dapm_aif_in, .name = wname, .sname = stname, \
-+	.reg = wreg, .shift = wshift, .invert = winvert }
-+#define SND_SOC_DAPM_AIF_OUT(wname, stname, wslot, wreg, wshift, winvert) \
-+{	.id = snd_soc_dapm_aif_out, .name = wname, .sname = stname, \
-+	.reg = wreg, .shift = wshift, .invert = winvert }
- #define SND_SOC_DAPM_DAC(wname, stname, wreg, wshift, winvert) \
- {	.id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \
- 	.shift = wshift, .invert = winvert}
-+#define SND_SOC_DAPM_DAC_E(wname, stname, wreg, wshift, winvert, \
-+			   wevent, wflags)				\
-+{	.id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \
-+	.shift = wshift, .invert = winvert, \
-+	.event = wevent, .event_flags = wflags}
- #define SND_SOC_DAPM_ADC(wname, stname, wreg, wshift, winvert) \
- {	.id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \
- 	.shift = wshift, .invert = winvert}
-+#define SND_SOC_DAPM_ADC_E(wname, stname, wreg, wshift, winvert, \
-+			   wevent, wflags)				\
-+{	.id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \
-+	.shift = wshift, .invert = winvert, \
-+	.event = wevent, .event_flags = wflags}
- 
--/* generic register modifier widget */
-+/* generic widgets */
- #define SND_SOC_DAPM_REG(wid, wname, wreg, wshift, wmask, won_val, woff_val) \
- {	.id = wid, .name = wname, .kcontrols = NULL, .num_kcontrols = 0, \
- 	.reg = -((wreg) + 1), .shift = wshift, .mask = wmask, \
- 	.on_val = won_val, .off_val = woff_val, .event = dapm_reg_event, \
- 	.event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD}
-+#define SND_SOC_DAPM_SUPPLY(wname, wreg, wshift, winvert, wevent, wflags) \
-+{	.id = snd_soc_dapm_supply, .name = wname, .reg = wreg,	\
-+	.shift = wshift, .invert = winvert, .event = wevent, \
-+	.event_flags = wflags}
- 
- /* dapm kcontrol types */
- #define SOC_DAPM_SINGLE(xname, reg, shift, max, invert) \
-@@ -186,6 +206,12 @@
-  	.get = snd_soc_dapm_get_enum_double, \
-  	.put = snd_soc_dapm_put_enum_double, \
-   	.private_value = (unsigned long)&xenum }
-+#define SOC_DAPM_ENUM_VIRT(xname, xenum)		    \
-+{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
-+	.info = snd_soc_info_enum_double, \
-+	.get = snd_soc_dapm_get_enum_virt, \
-+	.put = snd_soc_dapm_put_enum_virt, \
-+	.private_value = (unsigned long)&xenum }
- #define SOC_DAPM_VALUE_ENUM(xname, xenum) \
- {	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- 	.info = snd_soc_info_enum_double, \
-@@ -240,6 +266,10 @@
- 	struct snd_ctl_elem_value *ucontrol);
- int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
- 	struct snd_ctl_elem_value *ucontrol);
-+int snd_soc_dapm_get_enum_virt(struct snd_kcontrol *kcontrol,
-+	struct snd_ctl_elem_value *ucontrol);
-+int snd_soc_dapm_put_enum_virt(struct snd_kcontrol *kcontrol,
-+	struct snd_ctl_elem_value *ucontrol);
- int snd_soc_dapm_get_value_enum_double(struct snd_kcontrol *kcontrol,
- 	struct snd_ctl_elem_value *ucontrol);
- int snd_soc_dapm_put_value_enum_double(struct snd_kcontrol *kcontrol,
-@@ -265,11 +295,11 @@
- /* dapm events */
- int snd_soc_dapm_stream_event(struct snd_soc_codec *codec, char *stream,
- 	int event);
--int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev,
--	enum snd_soc_bias_level level);
-+void snd_soc_dapm_shutdown(struct snd_soc_device *socdev);
- 
- /* dapm sys fs - used by the core */
- int snd_soc_dapm_sys_add(struct device *dev);
-+void snd_soc_dapm_debugfs_init(struct snd_soc_codec *codec);
- 
- /* dapm audio pin control and status */
- int snd_soc_dapm_enable_pin(struct snd_soc_codec *codec, const char *pin);
-@@ -298,6 +328,9 @@
- 	snd_soc_dapm_vmid,			/* codec bias/vmid - to minimise pops */
- 	snd_soc_dapm_pre,			/* machine specific pre widget - exec first */
- 	snd_soc_dapm_post,			/* machine specific post widget - exec last */
-+	snd_soc_dapm_supply,		/* power/clock supply */
-+	snd_soc_dapm_aif_in,		/* audio interface input */
-+	snd_soc_dapm_aif_out,		/* audio interface output */
- };
- 
- /*
-@@ -310,6 +343,10 @@
- 	const char *sink;
- 	const char *control;
- 	const char *source;
-+
-+	/* Note: currently only supported for links where source is a supply */
-+	int (*connected)(struct snd_soc_dapm_widget *source,
-+			 struct snd_soc_dapm_widget *sink);
- };
- 
- /* dapm audio path between two widgets */
-@@ -326,6 +363,9 @@
- 	u32 connect:1;	/* source and sink widgets are connected */
- 	u32 walked:1;	/* path has been walked */
- 
-+	int (*connected)(struct snd_soc_dapm_widget *source,
-+			 struct snd_soc_dapm_widget *sink);
-+
- 	struct list_head list_source;
- 	struct list_head list_sink;
- 	struct list_head list;
-@@ -357,6 +397,8 @@
- 	unsigned char suspend:1;		/* was active before suspend */
- 	unsigned char pmdown:1;			/* waiting for timeout */
- 
-+	int (*power_check)(struct snd_soc_dapm_widget *w);
-+
- 	/* external events */
- 	unsigned short event_flags;		/* flags to specify event types */
- 	int (*event)(struct snd_soc_dapm_widget*, struct snd_kcontrol *, int);
-@@ -368,6 +410,9 @@
- 	/* widget input and outputs */
- 	struct list_head sources;
- 	struct list_head sinks;
-+
-+	/* used during DAPM updates */
-+	struct list_head power_list;
- };
- 
- #endif
-Index: linux-2.6.30/include/sound/soc.h
-===================================================================
---- linux-2.6.30.orig/include/sound/soc.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/include/sound/soc.h	2011-02-01 16:40:30.177046291 +0100
-@@ -118,6 +118,14 @@
- 	.info = snd_soc_info_volsw, \
- 	.get = xhandler_get, .put = xhandler_put, \
- 	.private_value = SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert) }
-+#define SOC_DOUBLE_EXT(xname, xreg, shift_left, shift_right, xmax, xinvert,\
-+	 xhandler_get, xhandler_put) \
-+{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
-+	.info = snd_soc_info_volsw, \
-+	.get = xhandler_get, .put = xhandler_put, \
-+	.private_value = (unsigned long)&(struct soc_mixer_control) \
-+		{.reg = xreg, .shift = shift_left, .rshift = shift_right, \
-+		 .max = xmax, .invert = xinvert} }
- #define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\
- 	 xhandler_get, xhandler_put, tlv_array) \
- {	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
-@@ -127,6 +135,28 @@
- 	.info = snd_soc_info_volsw, \
- 	.get = xhandler_get, .put = xhandler_put, \
- 	.private_value = SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert) }
-+#define SOC_DOUBLE_EXT_TLV(xname, xreg, shift_left, shift_right, xmax, xinvert,\
-+	 xhandler_get, xhandler_put, tlv_array) \
-+{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
-+	.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
-+		 SNDRV_CTL_ELEM_ACCESS_READWRITE, \
-+	.tlv.p = (tlv_array), \
-+	.info = snd_soc_info_volsw, \
-+	.get = xhandler_get, .put = xhandler_put, \
-+	.private_value = (unsigned long)&(struct soc_mixer_control) \
-+		{.reg = xreg, .shift = shift_left, .rshift = shift_right, \
-+		.max = xmax, .invert = xinvert} }
-+#define SOC_DOUBLE_R_EXT_TLV(xname, reg_left, reg_right, xshift, xmax, xinvert,\
-+	 xhandler_get, xhandler_put, tlv_array) \
-+{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
-+	.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
-+		 SNDRV_CTL_ELEM_ACCESS_READWRITE, \
-+	.tlv.p = (tlv_array), \
-+	.info = snd_soc_info_volsw_2r, \
-+	.get = xhandler_get, .put = xhandler_put, \
-+	.private_value = (unsigned long)&(struct soc_mixer_control) \
-+		{.reg = reg_left, .rreg = reg_right, .shift = xshift, \
-+		.max = xmax, .invert = xinvert} }
- #define SOC_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) \
- {	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- 	.info = snd_soc_info_bool_ext, \
-@@ -175,14 +205,28 @@
- #endif
- 
- typedef int (*hw_write_t)(void *,const char* ,int);
--typedef int (*hw_read_t)(void *,char* ,int);
- 
- extern struct snd_ac97_bus_ops soc_ac97_ops;
- 
-+enum snd_soc_control_type {
-+	SND_SOC_CUSTOM,
-+	SND_SOC_I2C,
-+	SND_SOC_SPI,
-+};
-+
- int snd_soc_register_platform(struct snd_soc_platform *platform);
- void snd_soc_unregister_platform(struct snd_soc_platform *platform);
- int snd_soc_register_codec(struct snd_soc_codec *codec);
- void snd_soc_unregister_codec(struct snd_soc_codec *codec);
-+int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, int reg);
-+int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
-+			       int addr_bits, int data_bits,
-+			       enum snd_soc_control_type control);
-+
-+#ifdef CONFIG_PM
-+int snd_soc_suspend_device(struct device *dev);
-+int snd_soc_resume_device(struct device *dev);
-+#endif
- 
- /* pcm <-> DAI connect */
- void snd_soc_free_pcms(struct snd_soc_device *socdev);
-@@ -206,15 +250,11 @@
- 			struct snd_soc_jack_gpio *gpios);
- #endif
- 
--/* codec IO */
--#define snd_soc_read(codec, reg) codec->read(codec, reg)
--#define snd_soc_write(codec, reg, value) codec->write(codec, reg, value)
--
- /* codec register bit access */
- int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg,
--				unsigned short mask, unsigned short value);
-+				unsigned int mask, unsigned int value);
- int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg,
--				unsigned short mask, unsigned short value);
-+				unsigned int mask, unsigned int value);
- 
- int snd_soc_new_ac97_codec(struct snd_soc_codec *codec,
- 	struct snd_ac97_bus_ops *ops, int num);
-@@ -331,6 +371,7 @@
- 	struct module *owner;
- 	struct mutex mutex;
- 	struct device *dev;
-+	struct snd_soc_device *socdev;
- 
- 	struct list_head list;
- 
-@@ -351,8 +392,10 @@
- 	int (*write)(struct snd_soc_codec *, unsigned int, unsigned int);
- 	int (*display_register)(struct snd_soc_codec *, char *,
- 				size_t, unsigned int);
-+	int (*volatile_register)(unsigned int);
-+	int (*readable_register)(unsigned int);
- 	hw_write_t hw_write;
--	hw_read_t hw_read;
-+	unsigned int (*hw_read)(struct snd_soc_codec *, unsigned int);
- 	void *reg_cache;
- 	short reg_cache_size;
- 	short reg_cache_step;
-@@ -370,8 +413,10 @@
- 	unsigned int num_dai;
- 
- #ifdef CONFIG_DEBUG_FS
-+	struct dentry *debugfs_codec_root;
- 	struct dentry *debugfs_reg;
- 	struct dentry *debugfs_pop_time;
-+	struct dentry *debugfs_dapm;
- #endif
- };
- 
-@@ -417,6 +462,12 @@
- 	/* codec/machine specific init - e.g. add machine controls */
- 	int (*init)(struct snd_soc_codec *codec);
- 
-+	/* Symmetry requirements */
-+	unsigned int symmetric_rates:1;
-+
-+	/* Symmetry data - only valid if symmetry is being enforced */
-+	unsigned int rate;
-+
- 	/* DAI pcm */
- 	struct snd_pcm *pcm;
- };
-@@ -490,6 +541,19 @@
- 	void *dapm;
- };
- 
-+/* codec IO */
-+static inline unsigned int snd_soc_read(struct snd_soc_codec *codec,
-+					unsigned int reg)
-+{
-+	return codec->read(codec, reg);
-+}
-+
-+static inline unsigned int snd_soc_write(struct snd_soc_codec *codec,
-+					 unsigned int reg, unsigned int val)
-+{
-+	return codec->write(codec, reg, val);
-+}
-+
- #include <sound/soc-dai.h>
- 
- #endif
-Index: linux-2.6.30/sound/soc/Makefile
-===================================================================
---- linux-2.6.30.orig/sound/soc/Makefile	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/Makefile	2011-02-01 16:40:30.177046291 +0100
-@@ -1,4 +1,4 @@
--snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o
-+snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-cache.o
- 
- obj-$(CONFIG_SND_SOC)	+= snd-soc-core.o
- obj-$(CONFIG_SND_SOC)	+= codecs/
-Index: linux-2.6.30/sound/soc/atmel/Kconfig
-===================================================================
---- linux-2.6.30.orig/sound/soc/atmel/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/atmel/Kconfig	2011-02-01 16:40:30.177046291 +0100
-@@ -41,3 +41,11 @@
-           and FRAME signals on the PlayPaq.  Unless you want to play
-           with the AT32 as the SSC master, you probably want to say N here,
-           as this will give you better sound quality.
-+
-+config SND_AT91_SOC_AFEB9260
-+	tristate "SoC Audio support for AFEB9260 board"
-+	depends on ARCH_AT91 && MACH_AFEB9260 && SND_ATMEL_SOC
-+	select SND_ATMEL_SOC_SSC
-+	select SND_SOC_TLV320AIC23
-+	help
-+	  Say Y here to support sound on AFEB9260 board.
-Index: linux-2.6.30/sound/soc/atmel/Makefile
-===================================================================
---- linux-2.6.30.orig/sound/soc/atmel/Makefile	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/atmel/Makefile	2011-02-01 16:40:30.177046291 +0100
-@@ -13,3 +13,4 @@
- 
- obj-$(CONFIG_SND_AT91_SOC_SAM9G20_WM8731) += snd-soc-sam9g20-wm8731.o
- obj-$(CONFIG_SND_AT32_SOC_PLAYPAQ) += snd-soc-playpaq.o
-+obj-$(CONFIG_SND_AT91_SOC_AFEB9260) += snd-soc-afeb9260.o
-Index: linux-2.6.30/sound/soc/atmel/atmel_ssc_dai.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/atmel/atmel_ssc_dai.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/atmel/atmel_ssc_dai.c	2011-02-01 16:40:30.177046291 +0100
-@@ -427,7 +427,7 @@
- 			| SSC_BF(RCMR_STTDLY, START_DELAY)
- 			| SSC_BF(RCMR_START, SSC_START_FALLING_RF)
- 			| SSC_BF(RCMR_CKI, SSC_CKI_RISING)
--			| SSC_BF(RCMR_CKO, SSC_CKO_NONE)
-+			| SSC_BF(RCMR_CKO, SSC_CKO_CONTINUOUS)
- 			| SSC_BF(RCMR_CKS, SSC_CKS_DIV);
- 
- 		rfmr =	  SSC_BF(RFMR_FSEDGE, SSC_FSEDGE_POSITIVE)
-Index: linux-2.6.30/sound/soc/atmel/playpaq_wm8510.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/atmel/playpaq_wm8510.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/atmel/playpaq_wm8510.c	2011-02-01 16:40:30.177046291 +0100
-@@ -117,7 +117,7 @@
- 	 * Find actual rate, compare to requested rate
- 	 */
- 	actual_rate = (cd.ssc_rate / (cd.cmr_div * 2)) / (2 * (cd.period + 1));
--	pr_debug("playpaq_wm8510: Request rate = %d, actual rate = %d\n",
-+	pr_debug("playpaq_wm8510: Request rate = %u, actual rate = %u\n",
- 		 rate, actual_rate);
- 
- 
-@@ -268,7 +268,7 @@
- #endif /* CONFIG_SND_AT32_SOC_PLAYPAQ_SLAVE */
- 
- 
--	ret = snd_soc_dai_set_pll(codec_dai, 0,
-+	ret = snd_soc_dai_set_pll(codec_dai, 0, 0,
- 					 clk_get_rate(CODEC_CLK), pll_out);
- 	if (ret < 0) {
- 		pr_warning("playpaq_wm8510: Failed to set CODEC DAI PLL (%d)\n",
-Index: linux-2.6.30/sound/soc/atmel/sam9g20_wm8731.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/atmel/sam9g20_wm8731.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/atmel/sam9g20_wm8731.c	2011-02-01 16:40:30.193007582 +0100
-@@ -56,133 +56,32 @@
- 
- #define MCLK_RATE 12000000
- 
-+/*
-+ * As shipped the board does not have inputs.  However, it is relatively
-+ * straightforward to modify the board to hook them up so support is left
-+ * in the driver.
-+ */
-+#undef ENABLE_MIC_INPUT
-+#define ENABLE_MIC_INPUT 1
- static struct clk *mclk;
- 
--static int at91sam9g20ek_startup(struct snd_pcm_substream *substream)
--{
--	struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream);
--	struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
--	int ret;
--
--	ret = snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK,
--		MCLK_RATE, SND_SOC_CLOCK_IN);
--	if (ret < 0) {
--		clk_disable(mclk);
--		return ret;
--	}
--
--	return 0;
--}
--
--static void at91sam9g20ek_shutdown(struct snd_pcm_substream *substream)
--{
--	struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream);
--
--	dev_dbg(rtd->socdev->dev, "shutdown");
--}
--
- static int at91sam9g20ek_hw_params(struct snd_pcm_substream *substream,
- 	struct snd_pcm_hw_params *params)
- {
- 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
- 	struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
- 	struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
--	struct atmel_ssc_info *ssc_p = cpu_dai->private_data;
--	struct ssc_device *ssc = ssc_p->ssc;
- 	int ret;
- 
--	unsigned int rate;
--	int cmr_div, period;
--
--	if (ssc == NULL) {
--		printk(KERN_INFO "at91sam9g20ek_hw_params: ssc is NULL!\n");
--		return -EINVAL;
--	}
--
- 	/* set codec DAI configuration */
- 	ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
--		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
-+		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
- 	if (ret < 0)
- 		return ret;
- 
- 	/* set cpu DAI configuration */
- 	ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
--		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
--	if (ret < 0)
--		return ret;
--
--	/*
--	 * The SSC clock dividers depend on the sample rate.  The CMR.DIV
--	 * field divides the system master clock MCK to drive the SSC TK
--	 * signal which provides the codec BCLK.  The TCMR.PERIOD and
--	 * RCMR.PERIOD fields further divide the BCLK signal to drive
--	 * the SSC TF and RF signals which provide the codec DACLRC and
--	 * ADCLRC clocks.
--	 *
--	 * The dividers were determined through trial and error, where a
--	 * CMR.DIV value is chosen such that the resulting BCLK value is
--	 * divisible, or almost divisible, by (2 * sample rate), and then
--	 * the TCMR.PERIOD or RCMR.PERIOD is BCLK / (2 * sample rate) - 1.
--	 */
--	rate = params_rate(params);
--
--	switch (rate) {
--	case 8000:
--		cmr_div = 55;	/* BCLK = 133MHz/(2*55) = 1.209MHz */
--		period = 74;	/* LRC = BCLK/(2*(74+1)) ~= 8060,6Hz */
--		break;
--	case 11025:
--		cmr_div = 67;	/* BCLK = 133MHz/(2*60) = 1.108MHz */
--		period = 45;	/* LRC = BCLK/(2*(49+1)) = 11083,3Hz */
--		break;
--	case 16000:
--		cmr_div = 63;	/* BCLK = 133MHz/(2*63) = 1.055MHz */
--		period = 32;	/* LRC = BCLK/(2*(32+1)) = 15993,2Hz */
--		break;
--	case 22050:
--		cmr_div = 52;	/* BCLK = 133MHz/(2*52) = 1.278MHz */
--		period = 28;	/* LRC = BCLK/(2*(28+1)) = 22049Hz */
--		break;
--	case 32000:
--		cmr_div = 66;	/* BCLK = 133MHz/(2*66) = 1.007MHz */
--		period = 15;	/* LRC = BCLK/(2*(15+1)) = 31486,742Hz */
--		break;
--	case 44100:
--		cmr_div = 29;	/* BCLK = 133MHz/(2*29) = 2.293MHz */
--		period = 25;	/* LRC = BCLK/(2*(25+1)) = 44098Hz */
--		break;
--	case 48000:
--		cmr_div = 33;	/* BCLK = 133MHz/(2*33) = 2.015MHz */
--		period = 20;	/* LRC = BCLK/(2*(20+1)) = 47979,79Hz */
--		break;
--	case 88200:
--		cmr_div = 29;	/* BCLK = 133MHz/(2*29) = 2.293MHz */
--		period = 12;	/* LRC = BCLK/(2*(12+1)) = 88196Hz */
--		break;
--	case 96000:
--		cmr_div = 23;	/* BCLK = 133MHz/(2*23) = 2.891MHz */
--		period = 14;	/* LRC = BCLK/(2*(14+1)) = 96376Hz */
--		break;
--	default:
--		printk(KERN_WARNING "unsupported rate %d"
--				" on at91sam9g20ek board\n", rate);
--		return -EINVAL;
--	}
--
--	/* set the MCK divider for BCLK */
--	ret = snd_soc_dai_set_clkdiv(cpu_dai, ATMEL_SSC_CMR_DIV, cmr_div);
--	if (ret < 0)
--		return ret;
--
--	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
--		/* set the BCLK divider for DACLRC */
--		ret = snd_soc_dai_set_clkdiv(cpu_dai,
--						ATMEL_SSC_TCMR_PERIOD, period);
--	} else {
--		/* set the BCLK divider for ADCLRC */
--		ret = snd_soc_dai_set_clkdiv(cpu_dai,
--						ATMEL_SSC_RCMR_PERIOD, period);
--	}
-+		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
- 	if (ret < 0)
- 		return ret;
- 
-@@ -190,9 +89,7 @@
- }
- 
- static struct snd_soc_ops at91sam9g20ek_ops = {
--	.startup = at91sam9g20ek_startup,
- 	.hw_params = at91sam9g20ek_hw_params,
--	.shutdown = at91sam9g20ek_shutdown,
- };
- 
- static int at91sam9g20ek_set_bias_level(struct snd_soc_card *card,
-@@ -241,10 +138,20 @@
-  */
- static int at91sam9g20ek_wm8731_init(struct snd_soc_codec *codec)
- {
-+	struct snd_soc_dai *codec_dai = &codec->dai[0];
-+	int ret;
-+
- 	printk(KERN_DEBUG
- 			"at91sam9g20ek_wm8731 "
- 			": at91sam9g20ek_wm8731_init() called\n");
- 
-+	ret = snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK,
-+		MCLK_RATE, SND_SOC_CLOCK_IN);
-+	if (ret < 0) {
-+		printk(KERN_ERR "Failed to set WM8731 SYSCLK: %d\n", ret);
-+		return ret;
-+	}
-+
- 	/* Add specific widgets */
- 	snd_soc_dapm_new_controls(codec, at91sam9g20ek_dapm_widgets,
- 				  ARRAY_SIZE(at91sam9g20ek_dapm_widgets));
-@@ -255,8 +162,13 @@
- 	snd_soc_dapm_nc_pin(codec, "RLINEIN");
- 	snd_soc_dapm_nc_pin(codec, "LLINEIN");
- 
--	/* always connected */
-+#ifdef ENABLE_MIC_INPUT
- 	snd_soc_dapm_enable_pin(codec, "Int Mic");
-+#else
-+	snd_soc_dapm_nc_pin(codec, "Int Mic");
-+#endif
-+
-+	/* always connected */
- 	snd_soc_dapm_enable_pin(codec, "Ext Spk");
- 
- 	snd_soc_dapm_sync(codec);
-@@ -281,38 +193,6 @@
- 	.set_bias_level = at91sam9g20ek_set_bias_level,
- };
- 
--/*
-- * FIXME: This is a temporary bodge to avoid cross-tree merge issues.
-- * New drivers should register the wm8731 I2C device in the machine
-- * setup code (under arch/arm for ARM systems).
-- */
--static int wm8731_i2c_register(void)
--{
--	struct i2c_board_info info;
--	struct i2c_adapter *adapter;
--	struct i2c_client *client;
--
--	memset(&info, 0, sizeof(struct i2c_board_info));
--	info.addr = 0x1b;
--	strlcpy(info.type, "wm8731", I2C_NAME_SIZE);
--
--	adapter = i2c_get_adapter(0);
--	if (!adapter) {
--		printk(KERN_ERR "can't get i2c adapter 0\n");
--		return -ENODEV;
--	}
--
--	client = i2c_new_device(adapter, &info);
--	i2c_put_adapter(adapter);
--	if (!client) {
--		printk(KERN_ERR "can't add i2c device at 0x%x\n",
--			(unsigned int)info.addr);
--		return -ENODEV;
--	}
--
--	return 0;
--}
--
- static struct snd_soc_device at91sam9g20ek_snd_devdata = {
- 	.card = &snd_soc_at91sam9g20ek,
- 	.codec_dev = &soc_codec_dev_wm8731,
-@@ -327,7 +207,7 @@
- 	struct clk *pllb;
- 	int ret;
- 
--	if (!machine_is_at91sam9g20ek())
-+	if (!(machine_is_at91sam9g20ek() || machine_is_at91sam9g20ek_2mmc()))
- 		return -ENODEV;
- 
- 	/*
-@@ -367,10 +247,6 @@
- 	}
- 	ssc_p->ssc = ssc;
- 
--	ret = wm8731_i2c_register();
--	if (ret != 0)
--		goto err_ssc;
--
- 	at91sam9g20ek_snd_device = platform_device_alloc("soc-audio", -1);
- 	if (!at91sam9g20ek_snd_device) {
- 		printk(KERN_ERR "ASoC: Platform device allocation failed\n");
-Index: linux-2.6.30/sound/soc/codecs/Kconfig
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/Kconfig	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/Kconfig	2011-02-01 16:40:30.181004049 +0100
-@@ -12,13 +12,20 @@
- 	tristate "Build all ASoC CODEC drivers"
- 	select SND_SOC_L3
- 	select SND_SOC_AC97_CODEC if SND_SOC_AC97_BUS
-+	select SND_SOC_AD1836 if SPI_MASTER
-+	select SND_SOC_AD1938 if SPI_MASTER
- 	select SND_SOC_AD1980 if SND_SOC_AC97_BUS
- 	select SND_SOC_AD73311 if I2C
- 	select SND_SOC_AK4104 if SPI_MASTER
- 	select SND_SOC_AK4535 if I2C
-+	select SND_SOC_AK4642 if I2C
-+	select SND_SOC_AK4671 if I2C
- 	select SND_SOC_CS4270 if I2C
-+	select SND_SOC_MAX9877 if I2C
- 	select SND_SOC_PCM3008
-+	select SND_SOC_SPDIF
- 	select SND_SOC_SSM2602 if I2C
-+	select SND_SOC_STAC9766 if SND_SOC_AC97_BUS
- 	select SND_SOC_TLV320AIC23 if I2C
- 	select SND_SOC_TLV320AIC26 if SPI_MASTER
- 	select SND_SOC_TLV320AIC3X if I2C
-@@ -28,15 +35,25 @@
- 	select SND_SOC_WM8350 if MFD_WM8350
- 	select SND_SOC_WM8400 if MFD_WM8400
- 	select SND_SOC_WM8510 if SND_SOC_I2C_AND_SPI
-+	select SND_SOC_WM8523 if I2C
- 	select SND_SOC_WM8580 if I2C
-+	select SND_SOC_WM8711 if SND_SOC_I2C_AND_SPI
- 	select SND_SOC_WM8728 if SND_SOC_I2C_AND_SPI
- 	select SND_SOC_WM8731 if SND_SOC_I2C_AND_SPI
- 	select SND_SOC_WM8750 if SND_SOC_I2C_AND_SPI
- 	select SND_SOC_WM8753 if SND_SOC_I2C_AND_SPI
-+	select SND_SOC_WM8776 if SND_SOC_I2C_AND_SPI
- 	select SND_SOC_WM8900 if I2C
- 	select SND_SOC_WM8903 if I2C
-+	select SND_SOC_WM8940 if I2C
-+	select SND_SOC_WM8960 if I2C
-+	select SND_SOC_WM8961 if I2C
- 	select SND_SOC_WM8971 if I2C
-+	select SND_SOC_WM8974 if I2C
-+	select SND_SOC_WM8988 if SND_SOC_I2C_AND_SPI
- 	select SND_SOC_WM8990 if I2C
-+	select SND_SOC_WM8993 if I2C
-+	select SND_SOC_WM9081 if I2C
- 	select SND_SOC_WM9705 if SND_SOC_AC97_BUS
- 	select SND_SOC_WM9712 if SND_SOC_AC97_BUS
- 	select SND_SOC_WM9713 if SND_SOC_AC97_BUS
-@@ -51,11 +68,21 @@
- 
-           If unsure select "N".
- 
-+config SND_SOC_WM_HUBS
-+	tristate
-+	default y if SND_SOC_WM8993=y
-+	default m if SND_SOC_WM8993=m
- 
- config SND_SOC_AC97_CODEC
- 	tristate
- 	select SND_AC97_CODEC
- 
-+config SND_SOC_AD1836
-+	tristate
-+
-+config SND_SOC_AD1938
-+	tristate
-+
- config SND_SOC_AD1980
- 	tristate
- 
-@@ -68,6 +95,12 @@
- config SND_SOC_AK4535
- 	tristate
- 
-+config SND_SOC_AK4642
-+	tristate
-+
-+config SND_SOC_AK4671
-+	tristate
-+
- # Cirrus Logic CS4270 Codec
- config SND_SOC_CS4270
- 	tristate
-@@ -80,15 +113,24 @@
- 	bool
- 	depends on SND_SOC_CS4270
- 
-+config SND_SOC_CX20442
-+	tristate
-+
- config SND_SOC_L3
-        tristate
- 
- config SND_SOC_PCM3008
-        tristate
- 
-+config SND_SOC_SPDIF
-+	tristate
-+
- config SND_SOC_SSM2602
- 	tristate
- 
-+config SND_SOC_STAC9766
-+	tristate
-+
- config SND_SOC_TLV320AIC23
- 	tristate
- 
-@@ -117,9 +159,15 @@
- config SND_SOC_WM8510
- 	tristate
- 
-+config SND_SOC_WM8523
-+	tristate
-+
- config SND_SOC_WM8580
- 	tristate
- 
-+config SND_SOC_WM8711
-+	tristate
-+
- config SND_SOC_WM8728
- 	tristate
- 
-@@ -132,18 +180,42 @@
- config SND_SOC_WM8753
- 	tristate
- 
-+config SND_SOC_WM8776
-+	tristate
-+
- config SND_SOC_WM8900
- 	tristate
- 
- config SND_SOC_WM8903
- 	tristate
- 
-+config SND_SOC_WM8940
-+        tristate
-+
-+config SND_SOC_WM8960
-+	tristate
-+
-+config SND_SOC_WM8961
-+	tristate
-+
- config SND_SOC_WM8971
- 	tristate
- 
-+config SND_SOC_WM8974
-+	tristate
-+
-+config SND_SOC_WM8988
-+	tristate
-+
- config SND_SOC_WM8990
- 	tristate
- 
-+config SND_SOC_WM8993
-+	tristate
-+
-+config SND_SOC_WM9081
-+	tristate
-+
- config SND_SOC_WM9705
- 	tristate
- 
-@@ -152,3 +224,7 @@
- 
- config SND_SOC_WM9713
- 	tristate
-+
-+# Amp
-+config SND_SOC_MAX9877
-+	tristate
-Index: linux-2.6.30/sound/soc/codecs/Makefile
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/Makefile	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/Makefile	2011-02-01 16:40:30.181004049 +0100
-@@ -1,12 +1,19 @@
- snd-soc-ac97-objs := ac97.o
-+snd-soc-ad1836-objs := ad1836.o
-+snd-soc-ad1938-objs := ad1938.o
- snd-soc-ad1980-objs := ad1980.o
- snd-soc-ad73311-objs := ad73311.o
- snd-soc-ak4104-objs := ak4104.o
- snd-soc-ak4535-objs := ak4535.o
-+snd-soc-ak4642-objs := ak4642.o
-+snd-soc-ak4671-objs := ak4671.o
- snd-soc-cs4270-objs := cs4270.o
-+snd-soc-cx20442-objs := cx20442.o
- snd-soc-l3-objs := l3.o
- snd-soc-pcm3008-objs := pcm3008.o
-+snd-soc-spdif-objs := spdif_transciever.o
- snd-soc-ssm2602-objs := ssm2602.o
-+snd-soc-stac9766-objs := stac9766.o
- snd-soc-tlv320aic23-objs := tlv320aic23.o
- snd-soc-tlv320aic26-objs := tlv320aic26.o
- snd-soc-tlv320aic3x-objs := tlv320aic3x.o
-@@ -16,28 +23,49 @@
- snd-soc-wm8350-objs := wm8350.o
- snd-soc-wm8400-objs := wm8400.o
- snd-soc-wm8510-objs := wm8510.o
-+snd-soc-wm8523-objs := wm8523.o
- snd-soc-wm8580-objs := wm8580.o
-+snd-soc-wm8711-objs := wm8711.o
- snd-soc-wm8728-objs := wm8728.o
- snd-soc-wm8731-objs := wm8731.o
- snd-soc-wm8750-objs := wm8750.o
- snd-soc-wm8753-objs := wm8753.o
-+snd-soc-wm8776-objs := wm8776.o
- snd-soc-wm8900-objs := wm8900.o
- snd-soc-wm8903-objs := wm8903.o
-+snd-soc-wm8940-objs := wm8940.o
-+snd-soc-wm8960-objs := wm8960.o
-+snd-soc-wm8961-objs := wm8961.o
- snd-soc-wm8971-objs := wm8971.o
-+snd-soc-wm8974-objs := wm8974.o
-+snd-soc-wm8988-objs := wm8988.o
- snd-soc-wm8990-objs := wm8990.o
-+snd-soc-wm8993-objs := wm8993.o
-+snd-soc-wm9081-objs := wm9081.o
- snd-soc-wm9705-objs := wm9705.o
- snd-soc-wm9712-objs := wm9712.o
- snd-soc-wm9713-objs := wm9713.o
-+snd-soc-wm-hubs-objs := wm_hubs.o
-+
-+# Amp
-+snd-soc-max9877-objs := max9877.o
- 
- obj-$(CONFIG_SND_SOC_AC97_CODEC)	+= snd-soc-ac97.o
-+obj-$(CONFIG_SND_SOC_AD1836)	+= snd-soc-ad1836.o
-+obj-$(CONFIG_SND_SOC_AD1938)	+= snd-soc-ad1938.o
- obj-$(CONFIG_SND_SOC_AD1980)	+= snd-soc-ad1980.o
- obj-$(CONFIG_SND_SOC_AD73311) += snd-soc-ad73311.o
- obj-$(CONFIG_SND_SOC_AK4104)	+= snd-soc-ak4104.o
- obj-$(CONFIG_SND_SOC_AK4535)	+= snd-soc-ak4535.o
-+obj-$(CONFIG_SND_SOC_AK4642)	+= snd-soc-ak4642.o
-+obj-$(CONFIG_SND_SOC_AK4671)	+= snd-soc-ak4671.o
- obj-$(CONFIG_SND_SOC_CS4270)	+= snd-soc-cs4270.o
-+obj-$(CONFIG_SND_SOC_CX20442)	+= snd-soc-cx20442.o
- obj-$(CONFIG_SND_SOC_L3)	+= snd-soc-l3.o
- obj-$(CONFIG_SND_SOC_PCM3008)	+= snd-soc-pcm3008.o
-+obj-$(CONFIG_SND_SOC_SPDIF)	+= snd-soc-spdif.o
- obj-$(CONFIG_SND_SOC_SSM2602)	+= snd-soc-ssm2602.o
-+obj-$(CONFIG_SND_SOC_STAC9766)	+= snd-soc-stac9766.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23)	+= snd-soc-tlv320aic23.o
- obj-$(CONFIG_SND_SOC_TLV320AIC26)	+= snd-soc-tlv320aic26.o
- obj-$(CONFIG_SND_SOC_TLV320AIC3X)	+= snd-soc-tlv320aic3x.o
-@@ -47,15 +75,29 @@
- obj-$(CONFIG_SND_SOC_WM8350)	+= snd-soc-wm8350.o
- obj-$(CONFIG_SND_SOC_WM8400)	+= snd-soc-wm8400.o
- obj-$(CONFIG_SND_SOC_WM8510)	+= snd-soc-wm8510.o
-+obj-$(CONFIG_SND_SOC_WM8523)	+= snd-soc-wm8523.o
- obj-$(CONFIG_SND_SOC_WM8580)	+= snd-soc-wm8580.o
-+obj-$(CONFIG_SND_SOC_WM8711)	+= snd-soc-wm8711.o
- obj-$(CONFIG_SND_SOC_WM8728)	+= snd-soc-wm8728.o
- obj-$(CONFIG_SND_SOC_WM8731)	+= snd-soc-wm8731.o
- obj-$(CONFIG_SND_SOC_WM8750)	+= snd-soc-wm8750.o
- obj-$(CONFIG_SND_SOC_WM8753)	+= snd-soc-wm8753.o
-+obj-$(CONFIG_SND_SOC_WM8776)	+= snd-soc-wm8776.o
- obj-$(CONFIG_SND_SOC_WM8900)	+= snd-soc-wm8900.o
- obj-$(CONFIG_SND_SOC_WM8903)	+= snd-soc-wm8903.o
- obj-$(CONFIG_SND_SOC_WM8971)	+= snd-soc-wm8971.o
-+obj-$(CONFIG_SND_SOC_WM8974)	+= snd-soc-wm8974.o
-+obj-$(CONFIG_SND_SOC_WM8940)	+= snd-soc-wm8940.o
-+obj-$(CONFIG_SND_SOC_WM8960)	+= snd-soc-wm8960.o
-+obj-$(CONFIG_SND_SOC_WM8961)	+= snd-soc-wm8961.o
-+obj-$(CONFIG_SND_SOC_WM8988)	+= snd-soc-wm8988.o
- obj-$(CONFIG_SND_SOC_WM8990)	+= snd-soc-wm8990.o
-+obj-$(CONFIG_SND_SOC_WM8993)	+= snd-soc-wm8993.o
-+obj-$(CONFIG_SND_SOC_WM9081)	+= snd-soc-wm9081.o
- obj-$(CONFIG_SND_SOC_WM9705)	+= snd-soc-wm9705.o
- obj-$(CONFIG_SND_SOC_WM9712)	+= snd-soc-wm9712.o
- obj-$(CONFIG_SND_SOC_WM9713)	+= snd-soc-wm9713.o
-+obj-$(CONFIG_SND_SOC_WM_HUBS)	+= snd-soc-wm-hubs.o
-+
-+# Amp
-+obj-$(CONFIG_SND_SOC_MAX9877)	+= snd-soc-max9877.o
-Index: linux-2.6.30/sound/soc/codecs/ac97.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/ac97.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/ac97.c	2011-02-01 16:40:30.181004049 +0100
-@@ -53,13 +53,13 @@
- 		.channels_min = 1,
- 		.channels_max = 2,
- 		.rates = STD_AC97_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.capture = {
- 		.stream_name = "AC97 Capture",
- 		.channels_min = 1,
- 		.channels_max = 2,
- 		.rates = STD_AC97_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.ops = &ac97_dai_ops,
- };
- EXPORT_SYMBOL_GPL(ac97_dai);
-Index: linux-2.6.30/sound/soc/codecs/ad1980.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/ad1980.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/ad1980.c	2011-02-01 16:40:30.181004049 +0100
-@@ -137,13 +137,13 @@
- 		.channels_min = 2,
- 		.channels_max = 6,
- 		.rates = SNDRV_PCM_RATE_48000,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE, },
-+		.formats = SND_SOC_STD_AC97_FMTS, },
- 	.capture = {
- 		.stream_name = "Capture",
- 		.channels_min = 2,
- 		.channels_max = 2,
- 		.rates = SNDRV_PCM_RATE_48000,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE, },
-+		.formats = SND_SOC_STD_AC97_FMTS, },
- };
- EXPORT_SYMBOL_GPL(ad1980_dai);
- 
-Index: linux-2.6.30/sound/soc/codecs/ak4535.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/ak4535.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/ak4535.c	2011-02-01 16:40:30.181004049 +0100
-@@ -59,21 +59,6 @@
- 	return cache[reg];
- }
- 
--static inline unsigned int ak4535_read(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u8 data;
--	data = reg;
--
--	if (codec->hw_write(codec->control_data, &data, 1) != 1)
--		return -EIO;
--
--	if (codec->hw_read(codec->control_data, &data, 1) != 1)
--		return -EIO;
--
--	return data;
--};
--
- /*
-  * write ak4535 register cache
-  */
-@@ -635,7 +620,6 @@
- #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
- 	if (setup->i2c_address) {
- 		codec->hw_write = (hw_write_t)i2c_master_send;
--		codec->hw_read = (hw_read_t)i2c_master_recv;
- 		ret = ak4535_add_i2c_device(pdev, setup);
- 	}
- #endif
-Index: linux-2.6.30/sound/soc/codecs/cs4270.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/cs4270.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/cs4270.c	2011-02-01 16:40:30.181004049 +0100
-@@ -18,7 +18,7 @@
-  * - The machine driver's 'startup' function must call
-  *   cs4270_set_dai_sysclk() with the value of MCLK.
-  * - Only I2S and left-justified modes are supported
-- * - Power management is not supported
-+ * - Power management is supported
-  */
- 
- #include <linux/module.h>
-@@ -27,6 +27,7 @@
- #include <sound/soc.h>
- #include <sound/initval.h>
- #include <linux/i2c.h>
-+#include <linux/delay.h>
- 
- #include "cs4270.h"
- 
-@@ -56,6 +57,7 @@
- #define CS4270_FIRSTREG	0x01
- #define CS4270_LASTREG	0x08
- #define CS4270_NUMREGS	(CS4270_LASTREG - CS4270_FIRSTREG + 1)
-+#define CS4270_I2C_INCR	0x80
- 
- /* Bit masks for the CS4270 registers */
- #define CS4270_CHIPID_ID	0xF0
-@@ -64,6 +66,8 @@
- #define CS4270_PWRCTL_PDN_ADC	0x20
- #define CS4270_PWRCTL_PDN_DAC	0x02
- #define CS4270_PWRCTL_PDN	0x01
-+#define CS4270_PWRCTL_PDN_ALL	\
-+	(CS4270_PWRCTL_PDN_ADC | CS4270_PWRCTL_PDN_DAC | CS4270_PWRCTL_PDN)
- #define CS4270_MODE_SPEED_MASK	0x30
- #define CS4270_MODE_1X		0x00
- #define CS4270_MODE_2X		0x10
-@@ -109,6 +113,7 @@
- 	unsigned int mclk; /* Input frequency of the MCLK pin */
- 	unsigned int mode; /* The mode (I2S or left-justified) */
- 	unsigned int slave_mode;
-+	unsigned int manual_mute;
- };
- 
- /**
-@@ -295,7 +300,7 @@
- 	s32 length;
- 
- 	length = i2c_smbus_read_i2c_block_data(i2c_client,
--		CS4270_FIRSTREG | 0x80, CS4270_NUMREGS, cache);
-+		CS4270_FIRSTREG | CS4270_I2C_INCR, CS4270_NUMREGS, cache);
- 
- 	if (length != CS4270_NUMREGS) {
- 		dev_err(codec->dev, "i2c read failure, addr=0x%x\n",
-@@ -453,7 +458,7 @@
- }
- 
- /**
-- * cs4270_mute - enable/disable the CS4270 external mute
-+ * cs4270_dai_mute - enable/disable the CS4270 external mute
-  * @dai: the SOC DAI
-  * @mute: 0 = disable mute, 1 = enable mute
-  *
-@@ -462,21 +467,52 @@
-  * board does not have the MUTEA or MUTEB pins connected to such circuitry,
-  * then this function will do nothing.
-  */
--static int cs4270_mute(struct snd_soc_dai *dai, int mute)
-+static int cs4270_dai_mute(struct snd_soc_dai *dai, int mute)
- {
- 	struct snd_soc_codec *codec = dai->codec;
-+	struct cs4270_private *cs4270 = codec->private_data;
- 	int reg6;
- 
- 	reg6 = snd_soc_read(codec, CS4270_MUTE);
- 
- 	if (mute)
- 		reg6 |= CS4270_MUTE_DAC_A | CS4270_MUTE_DAC_B;
--	else
-+	else {
- 		reg6 &= ~(CS4270_MUTE_DAC_A | CS4270_MUTE_DAC_B);
-+		reg6 |= cs4270->manual_mute;
-+	}
- 
- 	return snd_soc_write(codec, CS4270_MUTE, reg6);
- }
- 
-+/**
-+ * cs4270_soc_put_mute - put callback for the 'Master Playback switch'
-+ * 			 alsa control.
-+ * @kcontrol: mixer control
-+ * @ucontrol: control element information
-+ *
-+ * This function basically passes the arguments on to the generic
-+ * snd_soc_put_volsw() function and saves the mute information in
-+ * our private data structure. This is because we want to prevent
-+ * cs4270_dai_mute() neglecting the user's decision to manually
-+ * mute the codec's output.
-+ *
-+ * Returns 0 for success.
-+ */
-+static int cs4270_soc_put_mute(struct snd_kcontrol *kcontrol,
-+				struct snd_ctl_elem_value *ucontrol)
-+{
-+	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-+	struct cs4270_private *cs4270 = codec->private_data;
-+	int left = !ucontrol->value.integer.value[0];
-+	int right = !ucontrol->value.integer.value[1];
-+
-+	cs4270->manual_mute = (left ? CS4270_MUTE_DAC_A : 0) |
-+			      (right ? CS4270_MUTE_DAC_B : 0);
-+
-+	return snd_soc_put_volsw(kcontrol, ucontrol);
-+}
-+
- /* A list of non-DAPM controls that the CS4270 supports */
- static const struct snd_kcontrol_new cs4270_snd_controls[] = {
- 	SOC_DOUBLE_R("Master Playback Volume",
-@@ -486,7 +522,9 @@
- 	SOC_SINGLE("Zero Cross Switch", CS4270_TRANS, 5, 1, 0),
- 	SOC_SINGLE("Popguard Switch", CS4270_MODE, 0, 1, 1),
- 	SOC_SINGLE("Auto-Mute Switch", CS4270_MUTE, 5, 1, 0),
--	SOC_DOUBLE("Master Capture Switch", CS4270_MUTE, 3, 4, 1, 0)
-+	SOC_DOUBLE("Master Capture Switch", CS4270_MUTE, 3, 4, 1, 1),
-+	SOC_DOUBLE_EXT("Master Playback Switch", CS4270_MUTE, 0, 1, 1, 1,
-+		snd_soc_get_volsw, cs4270_soc_put_mute),
- };
- 
- /*
-@@ -506,7 +544,7 @@
- 	.hw_params	= cs4270_hw_params,
- 	.set_sysclk	= cs4270_set_dai_sysclk,
- 	.set_fmt	= cs4270_set_dai_fmt,
--	.digital_mute	= cs4270_mute,
-+	.digital_mute	= cs4270_dai_mute,
- };
- 
- struct snd_soc_dai cs4270_dai = {
-@@ -753,6 +791,74 @@
- };
- MODULE_DEVICE_TABLE(i2c, cs4270_id);
- 
-+#ifdef CONFIG_PM
-+
-+/* This suspend/resume implementation can handle both - a simple standby
-+ * where the codec remains powered, and a full suspend, where the voltage
-+ * domain the codec is connected to is teared down and/or any other hardware
-+ * reset condition is asserted.
-+ *
-+ * The codec's own power saving features are enabled in the suspend callback,
-+ * and all registers are written back to the hardware when resuming.
-+ */
-+
-+static int cs4270_i2c_suspend(struct i2c_client *client, pm_message_t mesg)
-+{
-+	struct cs4270_private *cs4270 = i2c_get_clientdata(client);
-+	struct snd_soc_codec *codec = &cs4270->codec;
-+
-+	return snd_soc_suspend_device(codec->dev);
-+}
-+
-+static int cs4270_i2c_resume(struct i2c_client *client)
-+{
-+	struct cs4270_private *cs4270 = i2c_get_clientdata(client);
-+	struct snd_soc_codec *codec = &cs4270->codec;
-+
-+	return snd_soc_resume_device(codec->dev);
-+}
-+
-+static int cs4270_soc_suspend(struct platform_device *pdev, pm_message_t mesg)
-+{
-+	struct snd_soc_codec *codec = cs4270_codec;
-+	int reg = snd_soc_read(codec, CS4270_PWRCTL) | CS4270_PWRCTL_PDN_ALL;
-+
-+	return snd_soc_write(codec, CS4270_PWRCTL, reg);
-+}
-+
-+static int cs4270_soc_resume(struct platform_device *pdev)
-+{
-+	struct snd_soc_codec *codec = cs4270_codec;
-+	struct i2c_client *i2c_client = codec->control_data;
-+	int reg;
-+
-+	/* In case the device was put to hard reset during sleep, we need to
-+	 * wait 500ns here before any I2C communication. */
-+	ndelay(500);
-+
-+	/* first restore the entire register cache ... */
-+	for (reg = CS4270_FIRSTREG; reg <= CS4270_LASTREG; reg++) {
-+		u8 val = snd_soc_read(codec, reg);
-+
-+		if (i2c_smbus_write_byte_data(i2c_client, reg, val)) {
-+			dev_err(codec->dev, "i2c write failed\n");
-+			return -EIO;
-+		}
-+	}
-+
-+	/* ... then disable the power-down bits */
-+	reg = snd_soc_read(codec, CS4270_PWRCTL);
-+	reg &= ~CS4270_PWRCTL_PDN_ALL;
-+
-+	return snd_soc_write(codec, CS4270_PWRCTL, reg);
-+}
-+#else
-+#define cs4270_i2c_suspend	NULL
-+#define cs4270_i2c_resume	NULL
-+#define cs4270_soc_suspend	NULL
-+#define cs4270_soc_resume	NULL
-+#endif /* CONFIG_PM */
-+
- /*
-  * cs4270_i2c_driver - I2C device identification
-  *
-@@ -767,6 +873,8 @@
- 	.id_table = cs4270_id,
- 	.probe = cs4270_i2c_probe,
- 	.remove = cs4270_i2c_remove,
-+	.suspend = cs4270_i2c_suspend,
-+	.resume = cs4270_i2c_resume,
- };
- 
- /*
-@@ -777,7 +885,9 @@
-  */
- struct snd_soc_codec_device soc_codec_device_cs4270 = {
- 	.probe = 	cs4270_probe,
--	.remove = 	cs4270_remove
-+	.remove = 	cs4270_remove,
-+	.suspend =	cs4270_soc_suspend,
-+	.resume =	cs4270_soc_resume,
- };
- EXPORT_SYMBOL_GPL(soc_codec_device_cs4270);
- 
-Index: linux-2.6.30/sound/soc/codecs/ssm2602.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/ssm2602.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/ssm2602.c	2011-02-01 16:40:30.181004049 +0100
-@@ -336,15 +336,17 @@
- 			master_runtime->sample_bits,
- 			master_runtime->rate);
- 
--		snd_pcm_hw_constraint_minmax(substream->runtime,
--					     SNDRV_PCM_HW_PARAM_RATE,
--					     master_runtime->rate,
--					     master_runtime->rate);
--
--		snd_pcm_hw_constraint_minmax(substream->runtime,
--					     SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
--					     master_runtime->sample_bits,
--					     master_runtime->sample_bits);
-+		if (master_runtime->rate != 0)
-+			snd_pcm_hw_constraint_minmax(substream->runtime,
-+						     SNDRV_PCM_HW_PARAM_RATE,
-+						     master_runtime->rate,
-+						     master_runtime->rate);
-+
-+		if (master_runtime->sample_bits != 0)
-+			snd_pcm_hw_constraint_minmax(substream->runtime,
-+						     SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
-+						     master_runtime->sample_bits,
-+						     master_runtime->sample_bits);
- 
- 		ssm2602->slave_substream = substream;
- 	} else
-@@ -372,6 +374,7 @@
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	struct ssm2602_priv *ssm2602 = codec->private_data;
-+
- 	/* deactivate */
- 	if (!codec->active)
- 		ssm2602_write(codec, SSM2602_ACTIVE, 0);
-@@ -497,11 +500,9 @@
- 	return 0;
- }
- 
--#define SSM2602_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
--		SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |\
--		SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\
--		SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |\
--		SNDRV_PCM_RATE_96000)
-+#define SSM2602_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_32000 |\
-+		SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
-+		SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
- 
- #define SSM2602_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
- 		SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
-Index: linux-2.6.30/sound/soc/codecs/tlv320aic23.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/tlv320aic23.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/tlv320aic23.c	2011-02-01 16:40:30.181004049 +0100
-@@ -86,7 +86,7 @@
- 	 */
- 
- 	if ((reg < 0 || reg > 9) && (reg != 15)) {
--		printk(KERN_WARNING "%s Invalid register R%d\n", __func__, reg);
-+		printk(KERN_WARNING "%s Invalid register R%u\n", __func__, reg);
- 		return -1;
- 	}
- 
-@@ -98,7 +98,7 @@
- 	if (codec->hw_write(codec->control_data, data, 2) == 2)
- 		return 0;
- 
--	printk(KERN_ERR "%s cannot write %03x to register R%d\n", __func__,
-+	printk(KERN_ERR "%s cannot write %03x to register R%u\n", __func__,
- 	       value, reg);
- 
- 	return -EIO;
-@@ -273,14 +273,14 @@
-  * Every divisor is a factor of 11*12
-  */
- #define SR_MULT (11*12)
--#define A(x) (x) ? (SR_MULT/x) : 0
-+#define A(x) (SR_MULT/x)
- static const unsigned char sr_adc_mult_table[] = {
--	A(2), A(2), A(12), A(12),  A(0), A(0), A(3), A(1),
--	A(2), A(2), A(11), A(11),  A(0), A(0), A(0), A(1)
-+	A(2), A(2), A(12), A(12),  0, 0, A(3), A(1),
-+	A(2), A(2), A(11), A(11),  0, 0, 0, A(1)
- };
- static const unsigned char sr_dac_mult_table[] = {
--	A(2), A(12), A(2), A(12),  A(0), A(0), A(3), A(1),
--	A(2), A(11), A(2), A(11),  A(0), A(0), A(0), A(1)
-+	A(2), A(12), A(2), A(12),  0, 0, A(3), A(1),
-+	A(2), A(11), A(2), A(11),  0, 0, 0, A(1)
- };
- 
- static unsigned get_score(int adc, int adc_l, int adc_h, int need_adc,
-@@ -523,6 +523,8 @@
- 	case SND_SOC_DAIFMT_I2S:
- 		iface_reg |= TLV320AIC23_FOR_I2S;
- 		break;
-+	case SND_SOC_DAIFMT_DSP_A:
-+		iface_reg |= TLV320AIC23_LRP_ON;
- 	case SND_SOC_DAIFMT_DSP_B:
- 		iface_reg |= TLV320AIC23_FOR_DSP;
- 		break;
-Index: linux-2.6.30/sound/soc/codecs/tlv320aic3x.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/tlv320aic3x.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/tlv320aic3x.c	2011-02-01 16:40:30.181004049 +0100
-@@ -53,6 +53,7 @@
- 
- /* codec private data */
- struct aic3x_priv {
-+	struct snd_soc_codec codec;
- 	unsigned int sysclk;
- 	int master;
- };
-@@ -145,8 +146,8 @@
- 		      u8 *value)
- {
- 	*value = reg & 0xff;
--	if (codec->hw_read(codec->control_data, value, 1) != 1)
--		return -EIO;
-+
-+	value[0] = i2c_smbus_read_byte_data(codec->control_data, value[0]);
- 
- 	aic3x_write_reg_cache(codec, reg, *value);
- 	return 0;
-@@ -767,6 +768,7 @@
- 	int codec_clk = 0, bypass_pll = 0, fsref, last_clk = 0;
- 	u8 data, r, p, pll_q, pll_p = 1, pll_r = 1, pll_j = 1;
- 	u16 pll_d = 1;
-+	u8 reg;
- 
- 	/* select data word length */
- 	data =
-@@ -801,8 +803,16 @@
- 		pll_q &= 0xf;
- 		aic3x_write(codec, AIC3X_PLL_PROGA_REG, pll_q << PLLQ_SHIFT);
- 		aic3x_write(codec, AIC3X_GPIOB_REG, CODEC_CLKIN_CLKDIV);
--	} else
-+		/* disable PLL if it is bypassed */
-+		reg = aic3x_read_reg_cache(codec, AIC3X_PLL_PROGA_REG);
-+		aic3x_write(codec, AIC3X_PLL_PROGA_REG, reg & ~PLL_ENABLE);
-+
-+	} else {
- 		aic3x_write(codec, AIC3X_GPIOB_REG, CODEC_CLKIN_PLLDIV);
-+		/* enable PLL when it is used */
-+		reg = aic3x_read_reg_cache(codec, AIC3X_PLL_PROGA_REG);
-+		aic3x_write(codec, AIC3X_PLL_PROGA_REG, reg | PLL_ENABLE);
-+	}
- 
- 	/* Route Left DAC to left channel input and
- 	 * right DAC to right channel input */
-@@ -1147,11 +1157,13 @@
-  * initialise the AIC3X driver
-  * register the mixer and dsp interfaces with the kernel
-  */
--static int aic3x_init(struct snd_soc_device *socdev)
-+static int aic3x_init(struct snd_soc_codec *codec)
- {
--	struct snd_soc_codec *codec = socdev->card->codec;
--	struct aic3x_setup_data *setup = socdev->codec_data;
--	int reg, ret = 0;
-+	int reg;
-+
-+	mutex_init(&codec->mutex);
-+	INIT_LIST_HEAD(&codec->dapm_widgets);
-+	INIT_LIST_HEAD(&codec->dapm_paths);
- 
- 	codec->name = "tlv320aic3x";
- 	codec->owner = THIS_MODULE;
-@@ -1168,13 +1180,6 @@
- 	aic3x_write(codec, AIC3X_PAGE_SELECT, PAGE0_SELECT);
- 	aic3x_write(codec, AIC3X_RESET, SOFT_RESET);
- 
--	/* register pcms */
--	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
--	if (ret < 0) {
--		printk(KERN_ERR "aic3x: failed to create pcms\n");
--		goto pcm_err;
--	}
--
- 	/* DAC default volume and mute */
- 	aic3x_write(codec, LDAC_VOL, DEFAULT_VOL | MUTE_ON);
- 	aic3x_write(codec, RDAC_VOL, DEFAULT_VOL | MUTE_ON);
-@@ -1241,30 +1246,51 @@
- 	/* off, with power on */
- 	aic3x_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 
--	/* setup GPIO functions */
--	aic3x_write(codec, AIC3X_GPIO1_REG, (setup->gpio_func[0] & 0xf) << 4);
--	aic3x_write(codec, AIC3X_GPIO2_REG, (setup->gpio_func[1] & 0xf) << 4);
-+	return 0;
-+}
-+
-+static struct snd_soc_codec *aic3x_codec;
- 
--	snd_soc_add_controls(codec, aic3x_snd_controls,
--				ARRAY_SIZE(aic3x_snd_controls));
--	aic3x_add_widgets(codec);
--	ret = snd_soc_init_card(socdev);
-+static int aic3x_register(struct snd_soc_codec *codec)
-+{
-+	int ret;
-+
-+	ret = aic3x_init(codec);
- 	if (ret < 0) {
--		printk(KERN_ERR "aic3x: failed to register card\n");
--		goto card_err;
-+		dev_err(codec->dev, "Failed to initialise device\n");
-+		return ret;
- 	}
- 
--	return ret;
-+	aic3x_codec = codec;
- 
--card_err:
--	snd_soc_free_pcms(socdev);
--	snd_soc_dapm_free(socdev);
--pcm_err:
--	kfree(codec->reg_cache);
--	return ret;
-+	ret = snd_soc_register_codec(codec);
-+	if (ret) {
-+		dev_err(codec->dev, "Failed to register codec\n");
-+		return ret;
-+	}
-+
-+	ret = snd_soc_register_dai(&aic3x_dai);
-+	if (ret) {
-+		dev_err(codec->dev, "Failed to register dai\n");
-+		snd_soc_unregister_codec(codec);
-+		return ret;
-+	}
-+
-+	return 0;
- }
- 
--static struct snd_soc_device *aic3x_socdev;
-+static int aic3x_unregister(struct aic3x_priv *aic3x)
-+{
-+	aic3x_set_bias_level(&aic3x->codec, SND_SOC_BIAS_OFF);
-+
-+	snd_soc_unregister_dai(&aic3x_dai);
-+	snd_soc_unregister_codec(&aic3x->codec);
-+
-+	kfree(aic3x);
-+	aic3x_codec = NULL;
-+
-+	return 0;
-+}
- 
- #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
- /*
-@@ -1279,28 +1305,36 @@
- static int aic3x_i2c_probe(struct i2c_client *i2c,
- 			   const struct i2c_device_id *id)
- {
--	struct snd_soc_device *socdev = aic3x_socdev;
--	struct snd_soc_codec *codec = socdev->card->codec;
--	int ret;
-+	struct snd_soc_codec *codec;
-+	struct aic3x_priv *aic3x;
- 
--	i2c_set_clientdata(i2c, codec);
-+	aic3x = kzalloc(sizeof(struct aic3x_priv), GFP_KERNEL);
-+	if (aic3x == NULL) {
-+		dev_err(&i2c->dev, "failed to create private data\n");
-+		return -ENOMEM;
-+	}
-+
-+	codec = &aic3x->codec;
-+	codec->dev = &i2c->dev;
-+	codec->private_data = aic3x;
- 	codec->control_data = i2c;
-+	codec->hw_write = (hw_write_t) i2c_master_send;
- 
--	ret = aic3x_init(socdev);
--	if (ret < 0)
--		printk(KERN_ERR "aic3x: failed to initialise AIC3X\n");
--	return ret;
-+	i2c_set_clientdata(i2c, aic3x);
-+
-+	return aic3x_register(codec);
- }
- 
- static int aic3x_i2c_remove(struct i2c_client *client)
- {
--	struct snd_soc_codec *codec = i2c_get_clientdata(client);
--	kfree(codec->reg_cache);
--	return 0;
-+	struct aic3x_priv *aic3x = i2c_get_clientdata(client);
-+
-+	return aic3x_unregister(aic3x);
- }
- 
- static const struct i2c_device_id aic3x_i2c_id[] = {
- 	{ "tlv320aic3x", 0 },
-+	{ "tlv320aic33", 0 },
- 	{ }
- };
- MODULE_DEVICE_TABLE(i2c, aic3x_i2c_id);
-@@ -1311,56 +1345,28 @@
- 		.name = "aic3x I2C Codec",
- 		.owner = THIS_MODULE,
- 	},
--	.probe = aic3x_i2c_probe,
-+	.probe	= aic3x_i2c_probe,
- 	.remove = aic3x_i2c_remove,
- 	.id_table = aic3x_i2c_id,
- };
- 
--static int aic3x_i2c_read(struct i2c_client *client, u8 *value, int len)
--{
--	value[0] = i2c_smbus_read_byte_data(client, value[0]);
--	return (len == 1);
--}
--
--static int aic3x_add_i2c_device(struct platform_device *pdev,
--				 const struct aic3x_setup_data *setup)
-+static inline void aic3x_i2c_init(void)
- {
--	struct i2c_board_info info;
--	struct i2c_adapter *adapter;
--	struct i2c_client *client;
- 	int ret;
- 
- 	ret = i2c_add_driver(&aic3x_i2c_driver);
--	if (ret != 0) {
--		dev_err(&pdev->dev, "can't add i2c driver\n");
--		return ret;
--	}
--
--	memset(&info, 0, sizeof(struct i2c_board_info));
--	info.addr = setup->i2c_address;
--	strlcpy(info.type, "tlv320aic3x", I2C_NAME_SIZE);
--
--	adapter = i2c_get_adapter(setup->i2c_bus);
--	if (!adapter) {
--		dev_err(&pdev->dev, "can't get i2c adapter %d\n",
--			setup->i2c_bus);
--		goto err_driver;
--	}
--
--	client = i2c_new_device(adapter, &info);
--	i2c_put_adapter(adapter);
--	if (!client) {
--		dev_err(&pdev->dev, "can't add i2c device at 0x%x\n",
--			(unsigned int)info.addr);
--		goto err_driver;
--	}
--
--	return 0;
-+	if (ret)
-+		printk(KERN_ERR "%s: error regsitering i2c driver, %d\n",
-+		       __func__, ret);
-+}
- 
--err_driver:
-+static inline void aic3x_i2c_exit(void)
-+{
- 	i2c_del_driver(&aic3x_i2c_driver);
--	return -ENODEV;
- }
-+#else
-+static inline void aic3x_i2c_init(void) { }
-+static inline void aic3x_i2c_exit(void) { }
- #endif
- 
- static int aic3x_probe(struct platform_device *pdev)
-@@ -1368,43 +1374,51 @@
- 	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
- 	struct aic3x_setup_data *setup;
- 	struct snd_soc_codec *codec;
--	struct aic3x_priv *aic3x;
- 	int ret = 0;
- 
--	printk(KERN_INFO "AIC3X Audio Codec %s\n", AIC3X_VERSION);
-+	codec = aic3x_codec;
-+	if (!codec) {
-+		dev_err(&pdev->dev, "Codec not registered\n");
-+		return -ENODEV;
-+	}
- 
-+	socdev->card->codec = codec;
- 	setup = socdev->codec_data;
--	codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
--	if (codec == NULL)
--		return -ENOMEM;
- 
--	aic3x = kzalloc(sizeof(struct aic3x_priv), GFP_KERNEL);
--	if (aic3x == NULL) {
--		kfree(codec);
--		return -ENOMEM;
-+	if (setup) {
-+		/* setup GPIO functions */
-+		aic3x_write(codec, AIC3X_GPIO1_REG,
-+			    (setup->gpio_func[0] & 0xf) << 4);
-+		aic3x_write(codec, AIC3X_GPIO2_REG,
-+			    (setup->gpio_func[1] & 0xf) << 4);
- 	}
- 
--	codec->private_data = aic3x;
--	socdev->card->codec = codec;
--	mutex_init(&codec->mutex);
--	INIT_LIST_HEAD(&codec->dapm_widgets);
--	INIT_LIST_HEAD(&codec->dapm_paths);
--
--	aic3x_socdev = socdev;
--#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
--	if (setup->i2c_address) {
--		codec->hw_write = (hw_write_t) i2c_master_send;
--		codec->hw_read = (hw_read_t) aic3x_i2c_read;
--		ret = aic3x_add_i2c_device(pdev, setup);
-+	/* register pcms */
-+	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
-+	if (ret < 0) {
-+		printk(KERN_ERR "aic3x: failed to create pcms\n");
-+		goto pcm_err;
- 	}
--#else
--	/* Add other interfaces here */
--#endif
- 
--	if (ret != 0) {
--		kfree(codec->private_data);
--		kfree(codec);
-+	snd_soc_add_controls(codec, aic3x_snd_controls,
-+			     ARRAY_SIZE(aic3x_snd_controls));
-+
-+	aic3x_add_widgets(codec);
-+
-+	ret = snd_soc_init_card(socdev);
-+	if (ret < 0) {
-+		printk(KERN_ERR "aic3x: failed to register card\n");
-+		goto card_err;
- 	}
-+
-+	return ret;
-+
-+card_err:
-+	snd_soc_free_pcms(socdev);
-+	snd_soc_dapm_free(socdev);
-+
-+pcm_err:
-+	kfree(codec->reg_cache);
- 	return ret;
- }
- 
-@@ -1419,12 +1433,8 @@
- 
- 	snd_soc_free_pcms(socdev);
- 	snd_soc_dapm_free(socdev);
--#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
--	i2c_unregister_device(codec->control_data);
--	i2c_del_driver(&aic3x_i2c_driver);
--#endif
--	kfree(codec->private_data);
--	kfree(codec);
-+
-+	kfree(codec->reg_cache);
- 
- 	return 0;
- }
-@@ -1439,13 +1449,15 @@
- 
- static int __init aic3x_modinit(void)
- {
--	return snd_soc_register_dai(&aic3x_dai);
-+	aic3x_i2c_init();
-+
-+	return 0;
- }
- module_init(aic3x_modinit);
- 
- static void __exit aic3x_exit(void)
- {
--	snd_soc_unregister_dai(&aic3x_dai);
-+	aic3x_i2c_exit();
- }
- module_exit(aic3x_exit);
- 
-Index: linux-2.6.30/sound/soc/codecs/tlv320aic3x.h
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/tlv320aic3x.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/tlv320aic3x.h	2011-02-01 16:40:30.181004049 +0100
-@@ -282,8 +282,6 @@
- int aic3x_button_pressed(struct snd_soc_codec *codec);
- 
- struct aic3x_setup_data {
--	int i2c_bus;
--	unsigned short i2c_address;
- 	unsigned int gpio_func[2];
- };
- 
-Index: linux-2.6.30/sound/soc/codecs/twl4030.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/twl4030.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/twl4030.c	2011-02-01 16:40:30.181004049 +0100
-@@ -115,6 +115,7 @@
- 	0x00, /* REG_VIBRA_PWM_SET	(0x47)	*/
- 	0x00, /* REG_ANAMIC_GAIN	(0x48)	*/
- 	0x00, /* REG_MISC_SET_2		(0x49)	*/
-+	0x00, /* REG_SW_SHADOW		(0x4A)	- Shadow, non HW register */
- };
- 
- /* codec private data */
-@@ -125,6 +126,17 @@
- 
- 	struct snd_pcm_substream *master_substream;
- 	struct snd_pcm_substream *slave_substream;
-+
-+	unsigned int configured;
-+	unsigned int rate;
-+	unsigned int sample_bits;
-+	unsigned int channels;
-+
-+	unsigned int sysclk;
-+
-+	/* Headset output state handling */
-+	unsigned int hsl_enabled;
-+	unsigned int hsr_enabled;
- };
- 
- /*
-@@ -161,7 +173,11 @@
- 			unsigned int reg, unsigned int value)
- {
- 	twl4030_write_reg_cache(codec, reg, value);
--	return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg);
-+	if (likely(reg < TWL4030_REG_SW_SHADOW))
-+		return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value,
-+					    reg);
-+	else
-+		return 0;
- }
- 
- static void twl4030_codec_enable(struct snd_soc_codec *codec, int enable)
-@@ -188,6 +204,7 @@
- 
- static void twl4030_init_chip(struct snd_soc_codec *codec)
- {
-+	u8 *cache = codec->reg_cache;
- 	int i;
- 
- 	/* clear CODECPDZ prior to setting register defaults */
-@@ -195,7 +212,7 @@
- 
- 	/* set all audio section registers to reasonable defaults */
- 	for (i = TWL4030_REG_OPTION; i <= TWL4030_REG_MISC_SET_2; i++)
--		twl4030_write(codec, i,	twl4030_reg[i]);
-+		twl4030_write(codec, i,	cache[i]);
- 
- }
- 
-@@ -208,55 +225,11 @@
- 		return;
- 
- 	if (mute) {
--		/* Bypass the reg_cache and mute the volumes
--		 * Headset mute is done in it's own event handler
--		 * Things to mute:  Earpiece, PreDrivL/R, CarkitL/R
--		 */
--		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_EAR_CTL);
--		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
--					reg_val & (~TWL4030_EAR_GAIN),
--					TWL4030_REG_EAR_CTL);
--
--		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_PREDL_CTL);
--		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
--					reg_val & (~TWL4030_PREDL_GAIN),
--					TWL4030_REG_PREDL_CTL);
--		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_PREDR_CTL);
--		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
--					reg_val & (~TWL4030_PREDR_GAIN),
--					TWL4030_REG_PREDL_CTL);
--
--		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_PRECKL_CTL);
--		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
--					reg_val & (~TWL4030_PRECKL_GAIN),
--					TWL4030_REG_PRECKL_CTL);
--		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_PRECKR_CTL);
--		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
--					reg_val & (~TWL4030_PRECKL_GAIN),
--					TWL4030_REG_PRECKR_CTL);
--
- 		/* Disable PLL */
- 		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_APLL_CTL);
- 		reg_val &= ~TWL4030_APLL_EN;
- 		twl4030_write(codec, TWL4030_REG_APLL_CTL, reg_val);
- 	} else {
--		/* Restore the volumes
--		 * Headset mute is done in it's own event handler
--		 * Things to restore:  Earpiece, PreDrivL/R, CarkitL/R
--		 */
--		twl4030_write(codec, TWL4030_REG_EAR_CTL,
--			twl4030_read_reg_cache(codec, TWL4030_REG_EAR_CTL));
--
--		twl4030_write(codec, TWL4030_REG_PREDL_CTL,
--			twl4030_read_reg_cache(codec, TWL4030_REG_PREDL_CTL));
--		twl4030_write(codec, TWL4030_REG_PREDR_CTL,
--			twl4030_read_reg_cache(codec, TWL4030_REG_PREDR_CTL));
--
--		twl4030_write(codec, TWL4030_REG_PRECKL_CTL,
--			twl4030_read_reg_cache(codec, TWL4030_REG_PRECKL_CTL));
--		twl4030_write(codec, TWL4030_REG_PRECKR_CTL,
--			twl4030_read_reg_cache(codec, TWL4030_REG_PRECKR_CTL));
--
- 		/* Enable PLL */
- 		reg_val = twl4030_read_reg_cache(codec, TWL4030_REG_APLL_CTL);
- 		reg_val |= TWL4030_APLL_EN;
-@@ -316,104 +289,60 @@
- }
- 
- /* Earpiece */
--static const char *twl4030_earpiece_texts[] =
--		{"Off", "DACL1", "DACL2", "DACR1"};
--
--static const unsigned int twl4030_earpiece_values[] =
--		{0x0, 0x1, 0x2, 0x4};
--
--static const struct soc_enum twl4030_earpiece_enum =
--	SOC_VALUE_ENUM_SINGLE(TWL4030_REG_EAR_CTL, 1, 0x7,
--			ARRAY_SIZE(twl4030_earpiece_texts),
--			twl4030_earpiece_texts,
--			twl4030_earpiece_values);
--
--static const struct snd_kcontrol_new twl4030_dapm_earpiece_control =
--SOC_DAPM_VALUE_ENUM("Route", twl4030_earpiece_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_earpiece_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_EAR_CTL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL1", TWL4030_REG_EAR_CTL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL2", TWL4030_REG_EAR_CTL, 2, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR1", TWL4030_REG_EAR_CTL, 3, 1, 0),
-+};
- 
- /* PreDrive Left */
--static const char *twl4030_predrivel_texts[] =
--		{"Off", "DACL1", "DACL2", "DACR2"};
--
--static const unsigned int twl4030_predrivel_values[] =
--		{0x0, 0x1, 0x2, 0x4};
--
--static const struct soc_enum twl4030_predrivel_enum =
--	SOC_VALUE_ENUM_SINGLE(TWL4030_REG_PREDL_CTL, 1, 0x7,
--			ARRAY_SIZE(twl4030_predrivel_texts),
--			twl4030_predrivel_texts,
--			twl4030_predrivel_values);
--
--static const struct snd_kcontrol_new twl4030_dapm_predrivel_control =
--SOC_DAPM_VALUE_ENUM("Route", twl4030_predrivel_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_predrivel_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_PREDL_CTL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL1", TWL4030_REG_PREDL_CTL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL2", TWL4030_REG_PREDL_CTL, 2, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR2", TWL4030_REG_PREDL_CTL, 3, 1, 0),
-+};
- 
- /* PreDrive Right */
--static const char *twl4030_predriver_texts[] =
--		{"Off", "DACR1", "DACR2", "DACL2"};
--
--static const unsigned int twl4030_predriver_values[] =
--		{0x0, 0x1, 0x2, 0x4};
--
--static const struct soc_enum twl4030_predriver_enum =
--	SOC_VALUE_ENUM_SINGLE(TWL4030_REG_PREDR_CTL, 1, 0x7,
--			ARRAY_SIZE(twl4030_predriver_texts),
--			twl4030_predriver_texts,
--			twl4030_predriver_values);
--
--static const struct snd_kcontrol_new twl4030_dapm_predriver_control =
--SOC_DAPM_VALUE_ENUM("Route", twl4030_predriver_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_predriver_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_PREDR_CTL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR1", TWL4030_REG_PREDR_CTL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR2", TWL4030_REG_PREDR_CTL, 2, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL2", TWL4030_REG_PREDR_CTL, 3, 1, 0),
-+};
- 
- /* Headset Left */
--static const char *twl4030_hsol_texts[] =
--		{"Off", "DACL1", "DACL2"};
--
--static const struct soc_enum twl4030_hsol_enum =
--	SOC_ENUM_SINGLE(TWL4030_REG_HS_SEL, 1,
--			ARRAY_SIZE(twl4030_hsol_texts),
--			twl4030_hsol_texts);
--
--static const struct snd_kcontrol_new twl4030_dapm_hsol_control =
--SOC_DAPM_ENUM("Route", twl4030_hsol_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_hsol_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_HS_SEL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL1", TWL4030_REG_HS_SEL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL2", TWL4030_REG_HS_SEL, 2, 1, 0),
-+};
- 
- /* Headset Right */
--static const char *twl4030_hsor_texts[] =
--		{"Off", "DACR1", "DACR2"};
--
--static const struct soc_enum twl4030_hsor_enum =
--	SOC_ENUM_SINGLE(TWL4030_REG_HS_SEL, 4,
--			ARRAY_SIZE(twl4030_hsor_texts),
--			twl4030_hsor_texts);
--
--static const struct snd_kcontrol_new twl4030_dapm_hsor_control =
--SOC_DAPM_ENUM("Route", twl4030_hsor_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_hsor_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_HS_SEL, 3, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR1", TWL4030_REG_HS_SEL, 4, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR2", TWL4030_REG_HS_SEL, 5, 1, 0),
-+};
- 
- /* Carkit Left */
--static const char *twl4030_carkitl_texts[] =
--		{"Off", "DACL1", "DACL2"};
--
--static const struct soc_enum twl4030_carkitl_enum =
--	SOC_ENUM_SINGLE(TWL4030_REG_PRECKL_CTL, 1,
--			ARRAY_SIZE(twl4030_carkitl_texts),
--			twl4030_carkitl_texts);
--
--static const struct snd_kcontrol_new twl4030_dapm_carkitl_control =
--SOC_DAPM_ENUM("Route", twl4030_carkitl_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_carkitl_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_PRECKL_CTL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL1", TWL4030_REG_PRECKL_CTL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AudioL2", TWL4030_REG_PRECKL_CTL, 2, 1, 0),
-+};
- 
- /* Carkit Right */
--static const char *twl4030_carkitr_texts[] =
--		{"Off", "DACR1", "DACR2"};
--
--static const struct soc_enum twl4030_carkitr_enum =
--	SOC_ENUM_SINGLE(TWL4030_REG_PRECKR_CTL, 1,
--			ARRAY_SIZE(twl4030_carkitr_texts),
--			twl4030_carkitr_texts);
--
--static const struct snd_kcontrol_new twl4030_dapm_carkitr_control =
--SOC_DAPM_ENUM("Route", twl4030_carkitr_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_carkitr_controls[] = {
-+	SOC_DAPM_SINGLE("Voice", TWL4030_REG_PRECKR_CTL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR1", TWL4030_REG_PRECKR_CTL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AudioR2", TWL4030_REG_PRECKR_CTL, 2, 1, 0),
-+};
- 
- /* Handsfree Left */
- static const char *twl4030_handsfreel_texts[] =
--		{"Voice", "DACL1", "DACL2", "DACR2"};
-+		{"Voice", "AudioL1", "AudioL2", "AudioR2"};
- 
- static const struct soc_enum twl4030_handsfreel_enum =
- 	SOC_ENUM_SINGLE(TWL4030_REG_HFL_CTL, 0,
-@@ -423,9 +352,13 @@
- static const struct snd_kcontrol_new twl4030_dapm_handsfreel_control =
- SOC_DAPM_ENUM("Route", twl4030_handsfreel_enum);
- 
-+/* Handsfree Left virtual mute */
-+static const struct snd_kcontrol_new twl4030_dapm_handsfreelmute_control =
-+	SOC_DAPM_SINGLE("Switch", TWL4030_REG_SW_SHADOW, 0, 1, 0);
-+
- /* Handsfree Right */
- static const char *twl4030_handsfreer_texts[] =
--		{"Voice", "DACR1", "DACR2", "DACL2"};
-+		{"Voice", "AudioR1", "AudioR2", "AudioL2"};
- 
- static const struct soc_enum twl4030_handsfreer_enum =
- 	SOC_ENUM_SINGLE(TWL4030_REG_HFR_CTL, 0,
-@@ -435,37 +368,52 @@
- static const struct snd_kcontrol_new twl4030_dapm_handsfreer_control =
- SOC_DAPM_ENUM("Route", twl4030_handsfreer_enum);
- 
--/* Left analog microphone selection */
--static const char *twl4030_analoglmic_texts[] =
--		{"Off", "Main mic", "Headset mic", "AUXL", "Carkit mic"};
--
--static const unsigned int twl4030_analoglmic_values[] =
--		{0x0, 0x1, 0x2, 0x4, 0x8};
-+/* Handsfree Right virtual mute */
-+static const struct snd_kcontrol_new twl4030_dapm_handsfreermute_control =
-+	SOC_DAPM_SINGLE("Switch", TWL4030_REG_SW_SHADOW, 1, 1, 0);
-+
-+/* Vibra */
-+/* Vibra audio path selection */
-+static const char *twl4030_vibra_texts[] =
-+		{"AudioL1", "AudioR1", "AudioL2", "AudioR2"};
-+
-+static const struct soc_enum twl4030_vibra_enum =
-+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 2,
-+			ARRAY_SIZE(twl4030_vibra_texts),
-+			twl4030_vibra_texts);
-+
-+static const struct snd_kcontrol_new twl4030_dapm_vibra_control =
-+SOC_DAPM_ENUM("Route", twl4030_vibra_enum);
-+
-+/* Vibra path selection: local vibrator (PWM) or audio driven */
-+static const char *twl4030_vibrapath_texts[] =
-+		{"Local vibrator", "Audio"};
-+
-+static const struct soc_enum twl4030_vibrapath_enum =
-+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 4,
-+			ARRAY_SIZE(twl4030_vibrapath_texts),
-+			twl4030_vibrapath_texts);
- 
--static const struct soc_enum twl4030_analoglmic_enum =
--	SOC_VALUE_ENUM_SINGLE(TWL4030_REG_ANAMICL, 0, 0xf,
--			ARRAY_SIZE(twl4030_analoglmic_texts),
--			twl4030_analoglmic_texts,
--			twl4030_analoglmic_values);
-+static const struct snd_kcontrol_new twl4030_dapm_vibrapath_control =
-+SOC_DAPM_ENUM("Route", twl4030_vibrapath_enum);
- 
--static const struct snd_kcontrol_new twl4030_dapm_analoglmic_control =
--SOC_DAPM_VALUE_ENUM("Route", twl4030_analoglmic_enum);
-+/* Left analog microphone selection */
-+static const struct snd_kcontrol_new twl4030_dapm_analoglmic_controls[] = {
-+	SOC_DAPM_SINGLE("Main Mic Capture Switch",
-+			TWL4030_REG_ANAMICL, 0, 1, 0),
-+	SOC_DAPM_SINGLE("Headset Mic Capture Switch",
-+			TWL4030_REG_ANAMICL, 1, 1, 0),
-+	SOC_DAPM_SINGLE("AUXL Capture Switch",
-+			TWL4030_REG_ANAMICL, 2, 1, 0),
-+	SOC_DAPM_SINGLE("Carkit Mic Capture Switch",
-+			TWL4030_REG_ANAMICL, 3, 1, 0),
-+};
- 
- /* Right analog microphone selection */
--static const char *twl4030_analogrmic_texts[] =
--		{"Off", "Sub mic", "AUXR"};
--
--static const unsigned int twl4030_analogrmic_values[] =
--		{0x0, 0x1, 0x4};
--
--static const struct soc_enum twl4030_analogrmic_enum =
--	SOC_VALUE_ENUM_SINGLE(TWL4030_REG_ANAMICR, 0, 0x5,
--			ARRAY_SIZE(twl4030_analogrmic_texts),
--			twl4030_analogrmic_texts,
--			twl4030_analogrmic_values);
--
--static const struct snd_kcontrol_new twl4030_dapm_analogrmic_control =
--SOC_DAPM_VALUE_ENUM("Route", twl4030_analogrmic_enum);
-+static const struct snd_kcontrol_new twl4030_dapm_analogrmic_controls[] = {
-+	SOC_DAPM_SINGLE("Sub Mic Capture Switch", TWL4030_REG_ANAMICR, 0, 1, 0),
-+	SOC_DAPM_SINGLE("AUXR Capture Switch", TWL4030_REG_ANAMICR, 2, 1, 0),
-+};
- 
- /* TX1 L/R Analog/Digital microphone selection */
- static const char *twl4030_micpathtx1_texts[] =
-@@ -507,6 +455,10 @@
- static const struct snd_kcontrol_new twl4030_dapm_abypassl2_control =
- 	SOC_DAPM_SINGLE("Switch", TWL4030_REG_ARXL2_APGA_CTL, 2, 1, 0);
- 
-+/* Analog bypass for Voice */
-+static const struct snd_kcontrol_new twl4030_dapm_abypassv_control =
-+	SOC_DAPM_SINGLE("Switch", TWL4030_REG_VDL_APGA_CTL, 2, 1, 0);
-+
- /* Digital bypass gain, 0 mutes the bypass */
- static const unsigned int twl4030_dapm_dbypass_tlv[] = {
- 	TLV_DB_RANGE_HEAD(2),
-@@ -526,6 +478,18 @@
- 			TWL4030_REG_ATX2ARXPGA, 0, 7, 0,
- 			twl4030_dapm_dbypass_tlv);
- 
-+/*
-+ * Voice Sidetone GAIN volume control:
-+ * from -51 to -10 dB in 1 dB steps (mute instead of -51 dB)
-+ */
-+static DECLARE_TLV_DB_SCALE(twl4030_dapm_dbypassv_tlv, -5100, 100, 1);
-+
-+/* Digital bypass voice: sidetone (VUL -> VDL)*/
-+static const struct snd_kcontrol_new twl4030_dapm_dbypassv_control =
-+	SOC_DAPM_SINGLE_TLV("Volume",
-+			TWL4030_REG_VSTPGA, 0, 0x29, 0,
-+			twl4030_dapm_dbypassv_tlv);
-+
- static int micpath_event(struct snd_soc_dapm_widget *w,
- 	struct snd_kcontrol *kcontrol, int event)
- {
-@@ -556,63 +520,205 @@
- 	return 0;
- }
- 
--static int handsfree_event(struct snd_soc_dapm_widget *w,
--		struct snd_kcontrol *kcontrol, int event)
-+/*
-+ * Output PGA builder:
-+ * Handle the muting and unmuting of the given output (turning off the
-+ * amplifier associated with the output pin)
-+ * On mute bypass the reg_cache and mute the volume
-+ * On unmute: restore the register content
-+ * Outputs handled in this way:  Earpiece, PreDrivL/R, CarkitL/R
-+ */
-+#define TWL4030_OUTPUT_PGA(pin_name, reg, mask)				\
-+static int pin_name##pga_event(struct snd_soc_dapm_widget *w,		\
-+		struct snd_kcontrol *kcontrol, int event)		\
-+{									\
-+	u8 reg_val;							\
-+									\
-+	switch (event) {						\
-+	case SND_SOC_DAPM_POST_PMU:					\
-+		twl4030_write(w->codec, reg,				\
-+			twl4030_read_reg_cache(w->codec, reg));		\
-+		break;							\
-+	case SND_SOC_DAPM_POST_PMD:					\
-+		reg_val = twl4030_read_reg_cache(w->codec, reg);	\
-+		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,	\
-+					reg_val & (~mask),		\
-+					reg);				\
-+		break;							\
-+	}								\
-+	return 0;							\
-+}
-+
-+TWL4030_OUTPUT_PGA(earpiece, TWL4030_REG_EAR_CTL, TWL4030_EAR_GAIN);
-+TWL4030_OUTPUT_PGA(predrivel, TWL4030_REG_PREDL_CTL, TWL4030_PREDL_GAIN);
-+TWL4030_OUTPUT_PGA(predriver, TWL4030_REG_PREDR_CTL, TWL4030_PREDR_GAIN);
-+TWL4030_OUTPUT_PGA(carkitl, TWL4030_REG_PRECKL_CTL, TWL4030_PRECKL_GAIN);
-+TWL4030_OUTPUT_PGA(carkitr, TWL4030_REG_PRECKR_CTL, TWL4030_PRECKR_GAIN);
-+
-+static void handsfree_ramp(struct snd_soc_codec *codec, int reg, int ramp)
- {
--	struct soc_enum *e = (struct soc_enum *)w->kcontrols->private_value;
- 	unsigned char hs_ctl;
- 
--	hs_ctl = twl4030_read_reg_cache(w->codec, e->reg);
-+	hs_ctl = twl4030_read_reg_cache(codec, reg);
- 
--	if (hs_ctl & TWL4030_HF_CTL_REF_EN) {
-+	if (ramp) {
-+		/* HF ramp-up */
-+		hs_ctl |= TWL4030_HF_CTL_REF_EN;
-+		twl4030_write(codec, reg, hs_ctl);
-+		udelay(10);
- 		hs_ctl |= TWL4030_HF_CTL_RAMP_EN;
--		twl4030_write(w->codec, e->reg, hs_ctl);
-+		twl4030_write(codec, reg, hs_ctl);
-+		udelay(40);
- 		hs_ctl |= TWL4030_HF_CTL_LOOP_EN;
--		twl4030_write(w->codec, e->reg, hs_ctl);
- 		hs_ctl |= TWL4030_HF_CTL_HB_EN;
--		twl4030_write(w->codec, e->reg, hs_ctl);
-+		twl4030_write(codec, reg, hs_ctl);
- 	} else {
--		hs_ctl &= ~(TWL4030_HF_CTL_RAMP_EN | TWL4030_HF_CTL_LOOP_EN
--				| TWL4030_HF_CTL_HB_EN);
--		twl4030_write(w->codec, e->reg, hs_ctl);
-+		/* HF ramp-down */
-+		hs_ctl &= ~TWL4030_HF_CTL_LOOP_EN;
-+		hs_ctl &= ~TWL4030_HF_CTL_HB_EN;
-+		twl4030_write(codec, reg, hs_ctl);
-+		hs_ctl &= ~TWL4030_HF_CTL_RAMP_EN;
-+		twl4030_write(codec, reg, hs_ctl);
-+		udelay(40);
-+		hs_ctl &= ~TWL4030_HF_CTL_REF_EN;
-+		twl4030_write(codec, reg, hs_ctl);
- 	}
-+}
- 
-+static int handsfreelpga_event(struct snd_soc_dapm_widget *w,
-+		struct snd_kcontrol *kcontrol, int event)
-+{
-+	switch (event) {
-+	case SND_SOC_DAPM_POST_PMU:
-+		handsfree_ramp(w->codec, TWL4030_REG_HFL_CTL, 1);
-+		break;
-+	case SND_SOC_DAPM_POST_PMD:
-+		handsfree_ramp(w->codec, TWL4030_REG_HFL_CTL, 0);
-+		break;
-+	}
- 	return 0;
- }
- 
--static int headsetl_event(struct snd_soc_dapm_widget *w,
-+static int handsfreerpga_event(struct snd_soc_dapm_widget *w,
- 		struct snd_kcontrol *kcontrol, int event)
- {
--	unsigned char hs_gain, hs_pop;
--
--	/* Save the current volume */
--	hs_gain = twl4030_read_reg_cache(w->codec, TWL4030_REG_HS_GAIN_SET);
--	hs_pop = twl4030_read_reg_cache(w->codec, TWL4030_REG_HS_POPN_SET);
--
- 	switch (event) {
- 	case SND_SOC_DAPM_POST_PMU:
--		/* Do the anti-pop/bias ramp enable according to the TRM */
--		hs_pop |= TWL4030_VMID_EN;
--		twl4030_write(w->codec, TWL4030_REG_HS_POPN_SET, hs_pop);
--		/* Is this needed? Can we just use whatever gain here? */
--		twl4030_write(w->codec, TWL4030_REG_HS_GAIN_SET,
--				(hs_gain & (~0x0f)) | 0x0a);
--		hs_pop |= TWL4030_RAMP_EN;
--		twl4030_write(w->codec, TWL4030_REG_HS_POPN_SET, hs_pop);
--
--		/* Restore the original volume */
--		twl4030_write(w->codec, TWL4030_REG_HS_GAIN_SET, hs_gain);
-+		handsfree_ramp(w->codec, TWL4030_REG_HFR_CTL, 1);
- 		break;
- 	case SND_SOC_DAPM_POST_PMD:
--		/* Do the anti-pop/bias ramp disable according to the TRM */
-+		handsfree_ramp(w->codec, TWL4030_REG_HFR_CTL, 0);
-+		break;
-+	}
-+	return 0;
-+}
-+
-+static void headset_ramp(struct snd_soc_codec *codec, int ramp)
-+{
-+	struct snd_soc_device *socdev = codec->socdev;
-+	struct twl4030_setup_data *setup = socdev->codec_data;
-+
-+	unsigned char hs_gain, hs_pop;
-+	struct twl4030_priv *twl4030 = codec->private_data;
-+	/* Base values for ramp delay calculation: 2^19 - 2^26 */
-+	unsigned int ramp_base[] = {524288, 1048576, 2097152, 4194304,
-+				    8388608, 16777216, 33554432, 67108864};
-+
-+	hs_gain = twl4030_read_reg_cache(codec, TWL4030_REG_HS_GAIN_SET);
-+	hs_pop = twl4030_read_reg_cache(codec, TWL4030_REG_HS_POPN_SET);
-+
-+	/* Enable external mute control, this dramatically reduces
-+	 * the pop-noise */
-+	if (setup && setup->hs_extmute) {
-+		if (setup->set_hs_extmute) {
-+			setup->set_hs_extmute(1);
-+		} else {
-+			hs_pop |= TWL4030_EXTMUTE;
-+			twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		}
-+	}
-+
-+	if (ramp) {
-+		/* Headset ramp-up according to the TRM */
-+		hs_pop |= TWL4030_VMID_EN;
-+		twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		twl4030_write(codec, TWL4030_REG_HS_GAIN_SET, hs_gain);
-+		hs_pop |= TWL4030_RAMP_EN;
-+		twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		/* Wait ramp delay time + 1, so the VMID can settle */
-+		mdelay((ramp_base[(hs_pop & TWL4030_RAMP_DELAY) >> 2] /
-+			twl4030->sysclk) + 1);
-+	} else {
-+		/* Headset ramp-down _not_ according to
-+		 * the TRM, but in a way that it is working */
- 		hs_pop &= ~TWL4030_RAMP_EN;
--		twl4030_write(w->codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		/* Wait ramp delay time + 1, so the VMID can settle */
-+		mdelay((ramp_base[(hs_pop & TWL4030_RAMP_DELAY) >> 2] /
-+			twl4030->sysclk) + 1);
- 		/* Bypass the reg_cache to mute the headset */
- 		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
- 					hs_gain & (~0x0f),
- 					TWL4030_REG_HS_GAIN_SET);
-+
- 		hs_pop &= ~TWL4030_VMID_EN;
--		twl4030_write(w->codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+	}
-+
-+	/* Disable external mute */
-+	if (setup && setup->hs_extmute) {
-+		if (setup->set_hs_extmute) {
-+			setup->set_hs_extmute(0);
-+		} else {
-+			hs_pop &= ~TWL4030_EXTMUTE;
-+			twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+		}
-+	}
-+}
-+
-+static int headsetlpga_event(struct snd_soc_dapm_widget *w,
-+		struct snd_kcontrol *kcontrol, int event)
-+{
-+	struct twl4030_priv *twl4030 = w->codec->private_data;
-+
-+	switch (event) {
-+	case SND_SOC_DAPM_POST_PMU:
-+		/* Do the ramp-up only once */
-+		if (!twl4030->hsr_enabled)
-+			headset_ramp(w->codec, 1);
-+
-+		twl4030->hsl_enabled = 1;
-+		break;
-+	case SND_SOC_DAPM_POST_PMD:
-+		/* Do the ramp-down only if both headsetL/R is disabled */
-+		if (!twl4030->hsr_enabled)
-+			headset_ramp(w->codec, 0);
-+
-+		twl4030->hsl_enabled = 0;
-+		break;
-+	}
-+	return 0;
-+}
-+
-+static int headsetrpga_event(struct snd_soc_dapm_widget *w,
-+		struct snd_kcontrol *kcontrol, int event)
-+{
-+	struct twl4030_priv *twl4030 = w->codec->private_data;
-+
-+	switch (event) {
-+	case SND_SOC_DAPM_POST_PMU:
-+		/* Do the ramp-up only once */
-+		if (!twl4030->hsl_enabled)
-+			headset_ramp(w->codec, 1);
-+
-+		twl4030->hsr_enabled = 1;
-+		break;
-+	case SND_SOC_DAPM_POST_PMD:
-+		/* Do the ramp-down only if both headsetL/R is disabled */
-+		if (!twl4030->hsl_enabled)
-+			headset_ramp(w->codec, 0);
-+
-+		twl4030->hsr_enabled = 0;
- 		break;
- 	}
- 	return 0;
-@@ -624,11 +730,23 @@
- 	struct soc_mixer_control *m =
- 		(struct soc_mixer_control *)w->kcontrols->private_value;
- 	struct twl4030_priv *twl4030 = w->codec->private_data;
--	unsigned char reg;
-+	unsigned char reg, misc;
- 
- 	reg = twl4030_read_reg_cache(w->codec, m->reg);
- 
--	if (m->reg <= TWL4030_REG_ARXR2_APGA_CTL) {
-+	/*
-+	 * bypass_state[0:3] - analog HiFi bypass
-+	 * bypass_state[4]   - analog voice bypass
-+	 * bypass_state[5]   - digital voice bypass
-+	 * bypass_state[6:7] - digital HiFi bypass
-+	 */
-+	if (m->reg == TWL4030_REG_VSTPGA) {
-+		/* Voice digital bypass */
-+		if (reg)
-+			twl4030->bypass_state |= (1 << 5);
-+		else
-+			twl4030->bypass_state &= ~(1 << 5);
-+	} else if (m->reg <= TWL4030_REG_ARXR2_APGA_CTL) {
- 		/* Analog bypass */
- 		if (reg & (1 << m->shift))
- 			twl4030->bypass_state |=
-@@ -636,14 +754,28 @@
- 		else
- 			twl4030->bypass_state &=
- 				~(1 << (m->reg - TWL4030_REG_ARXL1_APGA_CTL));
-+	} else if (m->reg == TWL4030_REG_VDL_APGA_CTL) {
-+		/* Analog voice bypass */
-+		if (reg & (1 << m->shift))
-+			twl4030->bypass_state |= (1 << 4);
-+		else
-+			twl4030->bypass_state &= ~(1 << 4);
- 	} else {
- 		/* Digital bypass */
- 		if (reg & (0x7 << m->shift))
--			twl4030->bypass_state |= (1 << (m->shift ? 5 : 4));
-+			twl4030->bypass_state |= (1 << (m->shift ? 7 : 6));
- 		else
--			twl4030->bypass_state &= ~(1 << (m->shift ? 5 : 4));
-+			twl4030->bypass_state &= ~(1 << (m->shift ? 7 : 6));
- 	}
- 
-+	/* Enable master analog loopback mode if any analog switch is enabled*/
-+	misc = twl4030_read_reg_cache(w->codec, TWL4030_REG_MISC_SET_1);
-+	if (twl4030->bypass_state & 0x1F)
-+		misc |= TWL4030_FMLOOP_EN;
-+	else
-+		misc &= ~TWL4030_FMLOOP_EN;
-+	twl4030_write(w->codec, TWL4030_REG_MISC_SET_1, misc);
-+
- 	if (w->codec->bias_level == SND_SOC_BIAS_STANDBY) {
- 		if (twl4030->bypass_state)
- 			twl4030_codec_mute(w->codec, 0);
-@@ -810,6 +942,48 @@
- 	return err;
- }
- 
-+/* Codec operation modes */
-+static const char *twl4030_op_modes_texts[] = {
-+	"Option 2 (voice/audio)", "Option 1 (audio)"
-+};
-+
-+static const struct soc_enum twl4030_op_modes_enum =
-+	SOC_ENUM_SINGLE(TWL4030_REG_CODEC_MODE, 0,
-+			ARRAY_SIZE(twl4030_op_modes_texts),
-+			twl4030_op_modes_texts);
-+
-+static int snd_soc_put_twl4030_opmode_enum_double(struct snd_kcontrol *kcontrol,
-+	struct snd_ctl_elem_value *ucontrol)
-+{
-+	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-+	struct twl4030_priv *twl4030 = codec->private_data;
-+	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
-+	unsigned short val;
-+	unsigned short mask, bitmask;
-+
-+	if (twl4030->configured) {
-+		printk(KERN_ERR "twl4030 operation mode cannot be "
-+			"changed on-the-fly\n");
-+		return -EBUSY;
-+	}
-+
-+	for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
-+		;
-+	if (ucontrol->value.enumerated.item[0] > e->max - 1)
-+		return -EINVAL;
-+
-+	val = ucontrol->value.enumerated.item[0] << e->shift_l;
-+	mask = (bitmask - 1) << e->shift_l;
-+	if (e->shift_l != e->shift_r) {
-+		if (ucontrol->value.enumerated.item[1] > e->max - 1)
-+			return -EINVAL;
-+		val |= ucontrol->value.enumerated.item[1] << e->shift_r;
-+		mask |= (bitmask - 1) << e->shift_r;
-+	}
-+
-+	return snd_soc_update_bits(codec, e->reg, mask, val);
-+}
-+
- /*
-  * FGAIN volume control:
-  * from -62 to 0 dB in 1 dB steps (mute instead of -63 dB)
-@@ -824,6 +998,12 @@
- static DECLARE_TLV_DB_SCALE(digital_coarse_tlv, 0, 600, 0);
- 
- /*
-+ * Voice Downlink GAIN volume control:
-+ * from -37 to 12 dB in 1 dB steps (mute instead of -37 dB)
-+ */
-+static DECLARE_TLV_DB_SCALE(digital_voice_downlink_tlv, -3700, 100, 1);
-+
-+/*
-  * Analog playback gain
-  * -24 dB to 12 dB in 2 dB steps
-  */
-@@ -853,6 +1033,16 @@
-  */
- static DECLARE_TLV_DB_SCALE(input_gain_tlv, 0, 600, 0);
- 
-+/* AVADC clock priority */
-+static const char *twl4030_avadc_clk_priority_texts[] = {
-+	"Voice high priority", "HiFi high priority"
-+};
-+
-+static const struct soc_enum twl4030_avadc_clk_priority_enum =
-+	SOC_ENUM_SINGLE(TWL4030_REG_AVADC_CTL, 2,
-+			ARRAY_SIZE(twl4030_avadc_clk_priority_texts),
-+			twl4030_avadc_clk_priority_texts);
-+
- static const char *twl4030_rampdelay_texts[] = {
- 	"27/20/14 ms", "55/40/27 ms", "109/81/55 ms", "218/161/109 ms",
- 	"437/323/218 ms", "874/645/437 ms", "1748/1291/874 ms",
-@@ -864,7 +1054,32 @@
- 			ARRAY_SIZE(twl4030_rampdelay_texts),
- 			twl4030_rampdelay_texts);
- 
-+/* Vibra H-bridge direction mode */
-+static const char *twl4030_vibradirmode_texts[] = {
-+	"Vibra H-bridge direction", "Audio data MSB",
-+};
-+
-+static const struct soc_enum twl4030_vibradirmode_enum =
-+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 5,
-+			ARRAY_SIZE(twl4030_vibradirmode_texts),
-+			twl4030_vibradirmode_texts);
-+
-+/* Vibra H-bridge direction */
-+static const char *twl4030_vibradir_texts[] = {
-+	"Positive polarity", "Negative polarity",
-+};
-+
-+static const struct soc_enum twl4030_vibradir_enum =
-+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 1,
-+			ARRAY_SIZE(twl4030_vibradir_texts),
-+			twl4030_vibradir_texts);
-+
- static const struct snd_kcontrol_new twl4030_snd_controls[] = {
-+	/* Codec operation mode control */
-+	SOC_ENUM_EXT("Codec Operation Mode", twl4030_op_modes_enum,
-+		snd_soc_get_enum_double,
-+		snd_soc_put_twl4030_opmode_enum_double),
-+
- 	/* Common playback gain controls */
- 	SOC_DOUBLE_R_TLV("DAC1 Digital Fine Playback Volume",
- 		TWL4030_REG_ARXL1PGA, TWL4030_REG_ARXR1PGA,
-@@ -893,6 +1108,16 @@
- 		TWL4030_REG_ARXL2_APGA_CTL, TWL4030_REG_ARXR2_APGA_CTL,
- 		1, 1, 0),
- 
-+	/* Common voice downlink gain controls */
-+	SOC_SINGLE_TLV("DAC Voice Digital Downlink Volume",
-+		TWL4030_REG_VRXPGA, 0, 0x31, 0, digital_voice_downlink_tlv),
-+
-+	SOC_SINGLE_TLV("DAC Voice Analog Downlink Volume",
-+		TWL4030_REG_VDL_APGA_CTL, 3, 0x12, 1, analog_tlv),
-+
-+	SOC_SINGLE("DAC Voice Analog Downlink Switch",
-+		TWL4030_REG_VDL_APGA_CTL, 1, 1, 0),
-+
- 	/* Separate output gain controls */
- 	SOC_DOUBLE_R_TLV_TWL4030("PreDriv Playback Volume",
- 		TWL4030_REG_PREDL_CTL, TWL4030_REG_PREDR_CTL,
-@@ -919,7 +1144,12 @@
- 	SOC_DOUBLE_TLV("Analog Capture Volume", TWL4030_REG_ANAMIC_GAIN,
- 		0, 3, 5, 0, input_gain_tlv),
- 
-+	SOC_ENUM("AVADC Clock Priority", twl4030_avadc_clk_priority_enum),
-+
- 	SOC_ENUM("HS ramp delay", twl4030_rampdelay_enum),
-+
-+	SOC_ENUM("Vibra H-bridge mode", twl4030_vibradirmode_enum),
-+	SOC_ENUM("Vibra H-bridge direction", twl4030_vibradir_enum),
- };
- 
- static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
-@@ -947,26 +1177,19 @@
- 	SND_SOC_DAPM_OUTPUT("CARKITR"),
- 	SND_SOC_DAPM_OUTPUT("HFL"),
- 	SND_SOC_DAPM_OUTPUT("HFR"),
-+	SND_SOC_DAPM_OUTPUT("VIBRA"),
- 
- 	/* DACs */
--	SND_SOC_DAPM_DAC("DAC Right1", "Right Front Playback",
-+	SND_SOC_DAPM_DAC("DAC Right1", "Right Front HiFi Playback",
- 			SND_SOC_NOPM, 0, 0),
--	SND_SOC_DAPM_DAC("DAC Left1", "Left Front Playback",
-+	SND_SOC_DAPM_DAC("DAC Left1", "Left Front HiFi Playback",
- 			SND_SOC_NOPM, 0, 0),
--	SND_SOC_DAPM_DAC("DAC Right2", "Right Rear Playback",
-+	SND_SOC_DAPM_DAC("DAC Right2", "Right Rear HiFi Playback",
- 			SND_SOC_NOPM, 0, 0),
--	SND_SOC_DAPM_DAC("DAC Left2", "Left Rear Playback",
-+	SND_SOC_DAPM_DAC("DAC Left2", "Left Rear HiFi Playback",
-+			SND_SOC_NOPM, 0, 0),
-+	SND_SOC_DAPM_DAC("DAC Voice", "Voice Playback",
- 			SND_SOC_NOPM, 0, 0),
--
--	/* Analog PGAs */
--	SND_SOC_DAPM_PGA("ARXR1_APGA", TWL4030_REG_ARXR1_APGA_CTL,
--			0, 0, NULL, 0),
--	SND_SOC_DAPM_PGA("ARXL1_APGA", TWL4030_REG_ARXL1_APGA_CTL,
--			0, 0, NULL, 0),
--	SND_SOC_DAPM_PGA("ARXR2_APGA", TWL4030_REG_ARXR2_APGA_CTL,
--			0, 0, NULL, 0),
--	SND_SOC_DAPM_PGA("ARXL2_APGA", TWL4030_REG_ARXL2_APGA_CTL,
--			0, 0, NULL, 0),
- 
- 	/* Analog bypasses */
- 	SND_SOC_DAPM_SWITCH_E("Right1 Analog Loopback", SND_SOC_NOPM, 0, 0,
-@@ -981,6 +1204,9 @@
- 	SND_SOC_DAPM_SWITCH_E("Left2 Analog Loopback", SND_SOC_NOPM, 0, 0,
- 			&twl4030_dapm_abypassl2_control,
- 			bypass_event, SND_SOC_DAPM_POST_REG),
-+	SND_SOC_DAPM_SWITCH_E("Voice Analog Loopback", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_abypassv_control,
-+			bypass_event, SND_SOC_DAPM_POST_REG),
- 
- 	/* Digital bypasses */
- 	SND_SOC_DAPM_SWITCH_E("Left Digital Loopback", SND_SOC_NOPM, 0, 0,
-@@ -989,43 +1215,103 @@
- 	SND_SOC_DAPM_SWITCH_E("Right Digital Loopback", SND_SOC_NOPM, 0, 0,
- 			&twl4030_dapm_dbypassr_control, bypass_event,
- 			SND_SOC_DAPM_POST_REG),
-+	SND_SOC_DAPM_SWITCH_E("Voice Digital Loopback", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_dbypassv_control, bypass_event,
-+			SND_SOC_DAPM_POST_REG),
- 
--	SND_SOC_DAPM_MIXER("Analog R1 Playback Mixer", TWL4030_REG_AVDAC_CTL,
--			0, 0, NULL, 0),
--	SND_SOC_DAPM_MIXER("Analog L1 Playback Mixer", TWL4030_REG_AVDAC_CTL,
--			1, 0, NULL, 0),
--	SND_SOC_DAPM_MIXER("Analog R2 Playback Mixer", TWL4030_REG_AVDAC_CTL,
--			2, 0, NULL, 0),
--	SND_SOC_DAPM_MIXER("Analog L2 Playback Mixer", TWL4030_REG_AVDAC_CTL,
--			3, 0, NULL, 0),
-+	/* Digital mixers, power control for the physical DACs */
-+	SND_SOC_DAPM_MIXER("Digital R1 Playback Mixer",
-+			TWL4030_REG_AVDAC_CTL, 0, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Digital L1 Playback Mixer",
-+			TWL4030_REG_AVDAC_CTL, 1, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Digital R2 Playback Mixer",
-+			TWL4030_REG_AVDAC_CTL, 2, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Digital L2 Playback Mixer",
-+			TWL4030_REG_AVDAC_CTL, 3, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Digital Voice Playback Mixer",
-+			TWL4030_REG_AVDAC_CTL, 4, 0, NULL, 0),
-+
-+	/* Analog mixers, power control for the physical PGAs */
-+	SND_SOC_DAPM_MIXER("Analog R1 Playback Mixer",
-+			TWL4030_REG_ARXR1_APGA_CTL, 0, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Analog L1 Playback Mixer",
-+			TWL4030_REG_ARXL1_APGA_CTL, 0, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Analog R2 Playback Mixer",
-+			TWL4030_REG_ARXR2_APGA_CTL, 0, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Analog L2 Playback Mixer",
-+			TWL4030_REG_ARXL2_APGA_CTL, 0, 0, NULL, 0),
-+	SND_SOC_DAPM_MIXER("Analog Voice Playback Mixer",
-+			TWL4030_REG_VDL_APGA_CTL, 0, 0, NULL, 0),
- 
--	/* Output MUX controls */
-+	/* Output MIXER controls */
- 	/* Earpiece */
--	SND_SOC_DAPM_VALUE_MUX("Earpiece Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_earpiece_control),
-+	SND_SOC_DAPM_MIXER("Earpiece Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_earpiece_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_earpiece_controls)),
-+	SND_SOC_DAPM_PGA_E("Earpiece PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, earpiecepga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
- 	/* PreDrivL/R */
--	SND_SOC_DAPM_VALUE_MUX("PredriveL Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_predrivel_control),
--	SND_SOC_DAPM_VALUE_MUX("PredriveR Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_predriver_control),
-+	SND_SOC_DAPM_MIXER("PredriveL Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_predrivel_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_predrivel_controls)),
-+	SND_SOC_DAPM_PGA_E("PredriveL PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, predrivelpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+	SND_SOC_DAPM_MIXER("PredriveR Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_predriver_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_predriver_controls)),
-+	SND_SOC_DAPM_PGA_E("PredriveR PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, predriverpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
- 	/* HeadsetL/R */
--	SND_SOC_DAPM_MUX_E("HeadsetL Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_hsol_control, headsetl_event,
--		SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
--	SND_SOC_DAPM_MUX("HeadsetR Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_hsor_control),
-+	SND_SOC_DAPM_MIXER("HeadsetL Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_hsol_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_hsol_controls)),
-+	SND_SOC_DAPM_PGA_E("HeadsetL PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, headsetlpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+	SND_SOC_DAPM_MIXER("HeadsetR Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_hsor_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_hsor_controls)),
-+	SND_SOC_DAPM_PGA_E("HeadsetR PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, headsetrpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
- 	/* CarkitL/R */
--	SND_SOC_DAPM_MUX("CarkitL Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_carkitl_control),
--	SND_SOC_DAPM_MUX("CarkitR Mux", SND_SOC_NOPM, 0, 0,
--		&twl4030_dapm_carkitr_control),
-+	SND_SOC_DAPM_MIXER("CarkitL Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_carkitl_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_carkitl_controls)),
-+	SND_SOC_DAPM_PGA_E("CarkitL PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, carkitlpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+	SND_SOC_DAPM_MIXER("CarkitR Mixer", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_carkitr_controls[0],
-+			ARRAY_SIZE(twl4030_dapm_carkitr_controls)),
-+	SND_SOC_DAPM_PGA_E("CarkitR PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, carkitrpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+
-+	/* Output MUX controls */
- 	/* HandsfreeL/R */
--	SND_SOC_DAPM_MUX_E("HandsfreeL Mux", TWL4030_REG_HFL_CTL, 5, 0,
--		&twl4030_dapm_handsfreel_control, handsfree_event,
--		SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
--	SND_SOC_DAPM_MUX_E("HandsfreeR Mux", TWL4030_REG_HFR_CTL, 5, 0,
--		&twl4030_dapm_handsfreer_control, handsfree_event,
--		SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+	SND_SOC_DAPM_MUX("HandsfreeL Mux", SND_SOC_NOPM, 0, 0,
-+		&twl4030_dapm_handsfreel_control),
-+	SND_SOC_DAPM_SWITCH("HandsfreeL", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_handsfreelmute_control),
-+	SND_SOC_DAPM_PGA_E("HandsfreeL PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, handsfreelpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+	SND_SOC_DAPM_MUX("HandsfreeR Mux", SND_SOC_NOPM, 5, 0,
-+		&twl4030_dapm_handsfreer_control),
-+	SND_SOC_DAPM_SWITCH("HandsfreeR", SND_SOC_NOPM, 0, 0,
-+			&twl4030_dapm_handsfreermute_control),
-+	SND_SOC_DAPM_PGA_E("HandsfreeR PGA", SND_SOC_NOPM,
-+			0, 0, NULL, 0, handsfreerpga_event,
-+			SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
-+	/* Vibra */
-+	SND_SOC_DAPM_MUX("Vibra Mux", TWL4030_REG_VIBRA_CTL, 0, 0,
-+		&twl4030_dapm_vibra_control),
-+	SND_SOC_DAPM_MUX("Vibra Route", SND_SOC_NOPM, 0, 0,
-+		&twl4030_dapm_vibrapath_control),
- 
- 	/* Introducing four virtual ADC, since TWL4030 have four channel for
- 	   capture */
-@@ -1050,11 +1336,15 @@
- 		SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD|
- 		SND_SOC_DAPM_POST_REG),
- 
--	/* Analog input muxes with switch for the capture amplifiers */
--	SND_SOC_DAPM_VALUE_MUX("Analog Left Capture Route",
--		TWL4030_REG_ANAMICL, 4, 0, &twl4030_dapm_analoglmic_control),
--	SND_SOC_DAPM_VALUE_MUX("Analog Right Capture Route",
--		TWL4030_REG_ANAMICR, 4, 0, &twl4030_dapm_analogrmic_control),
-+	/* Analog input mixers for the capture amplifiers */
-+	SND_SOC_DAPM_MIXER("Analog Left",
-+		TWL4030_REG_ANAMICL, 4, 0,
-+		&twl4030_dapm_analoglmic_controls[0],
-+		ARRAY_SIZE(twl4030_dapm_analoglmic_controls)),
-+	SND_SOC_DAPM_MIXER("Analog Right",
-+		TWL4030_REG_ANAMICR, 4, 0,
-+		&twl4030_dapm_analogrmic_controls[0],
-+		ARRAY_SIZE(twl4030_dapm_analogrmic_controls)),
- 
- 	SND_SOC_DAPM_PGA("ADC Physical Left",
- 		TWL4030_REG_AVADC_CTL, 3, 0, NULL, 0),
-@@ -1073,74 +1363,103 @@
- };
- 
- static const struct snd_soc_dapm_route intercon[] = {
--	{"Analog L1 Playback Mixer", NULL, "DAC Left1"},
--	{"Analog R1 Playback Mixer", NULL, "DAC Right1"},
--	{"Analog L2 Playback Mixer", NULL, "DAC Left2"},
--	{"Analog R2 Playback Mixer", NULL, "DAC Right2"},
--
--	{"ARXL1_APGA", NULL, "Analog L1 Playback Mixer"},
--	{"ARXR1_APGA", NULL, "Analog R1 Playback Mixer"},
--	{"ARXL2_APGA", NULL, "Analog L2 Playback Mixer"},
--	{"ARXR2_APGA", NULL, "Analog R2 Playback Mixer"},
-+	{"Digital L1 Playback Mixer", NULL, "DAC Left1"},
-+	{"Digital R1 Playback Mixer", NULL, "DAC Right1"},
-+	{"Digital L2 Playback Mixer", NULL, "DAC Left2"},
-+	{"Digital R2 Playback Mixer", NULL, "DAC Right2"},
-+	{"Digital Voice Playback Mixer", NULL, "DAC Voice"},
-+
-+	{"Analog L1 Playback Mixer", NULL, "Digital L1 Playback Mixer"},
-+	{"Analog R1 Playback Mixer", NULL, "Digital R1 Playback Mixer"},
-+	{"Analog L2 Playback Mixer", NULL, "Digital L2 Playback Mixer"},
-+	{"Analog R2 Playback Mixer", NULL, "Digital R2 Playback Mixer"},
-+	{"Analog Voice Playback Mixer", NULL, "Digital Voice Playback Mixer"},
- 
- 	/* Internal playback routings */
- 	/* Earpiece */
--	{"Earpiece Mux", "DACL1", "ARXL1_APGA"},
--	{"Earpiece Mux", "DACL2", "ARXL2_APGA"},
--	{"Earpiece Mux", "DACR1", "ARXR1_APGA"},
-+	{"Earpiece Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"Earpiece Mixer", "AudioL1", "Analog L1 Playback Mixer"},
-+	{"Earpiece Mixer", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"Earpiece Mixer", "AudioR1", "Analog R1 Playback Mixer"},
-+	{"Earpiece PGA", NULL, "Earpiece Mixer"},
- 	/* PreDrivL */
--	{"PredriveL Mux", "DACL1", "ARXL1_APGA"},
--	{"PredriveL Mux", "DACL2", "ARXL2_APGA"},
--	{"PredriveL Mux", "DACR2", "ARXR2_APGA"},
-+	{"PredriveL Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"PredriveL Mixer", "AudioL1", "Analog L1 Playback Mixer"},
-+	{"PredriveL Mixer", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"PredriveL Mixer", "AudioR2", "Analog R2 Playback Mixer"},
-+	{"PredriveL PGA", NULL, "PredriveL Mixer"},
- 	/* PreDrivR */
--	{"PredriveR Mux", "DACR1", "ARXR1_APGA"},
--	{"PredriveR Mux", "DACR2", "ARXR2_APGA"},
--	{"PredriveR Mux", "DACL2", "ARXL2_APGA"},
-+	{"PredriveR Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"PredriveR Mixer", "AudioR1", "Analog R1 Playback Mixer"},
-+	{"PredriveR Mixer", "AudioR2", "Analog R2 Playback Mixer"},
-+	{"PredriveR Mixer", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"PredriveR PGA", NULL, "PredriveR Mixer"},
- 	/* HeadsetL */
--	{"HeadsetL Mux", "DACL1", "ARXL1_APGA"},
--	{"HeadsetL Mux", "DACL2", "ARXL2_APGA"},
-+	{"HeadsetL Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"HeadsetL Mixer", "AudioL1", "Analog L1 Playback Mixer"},
-+	{"HeadsetL Mixer", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"HeadsetL PGA", NULL, "HeadsetL Mixer"},
- 	/* HeadsetR */
--	{"HeadsetR Mux", "DACR1", "ARXR1_APGA"},
--	{"HeadsetR Mux", "DACR2", "ARXR2_APGA"},
-+	{"HeadsetR Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"HeadsetR Mixer", "AudioR1", "Analog R1 Playback Mixer"},
-+	{"HeadsetR Mixer", "AudioR2", "Analog R2 Playback Mixer"},
-+	{"HeadsetR PGA", NULL, "HeadsetR Mixer"},
- 	/* CarkitL */
--	{"CarkitL Mux", "DACL1", "ARXL1_APGA"},
--	{"CarkitL Mux", "DACL2", "ARXL2_APGA"},
-+	{"CarkitL Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"CarkitL Mixer", "AudioL1", "Analog L1 Playback Mixer"},
-+	{"CarkitL Mixer", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"CarkitL PGA", NULL, "CarkitL Mixer"},
- 	/* CarkitR */
--	{"CarkitR Mux", "DACR1", "ARXR1_APGA"},
--	{"CarkitR Mux", "DACR2", "ARXR2_APGA"},
-+	{"CarkitR Mixer", "Voice", "Analog Voice Playback Mixer"},
-+	{"CarkitR Mixer", "AudioR1", "Analog R1 Playback Mixer"},
-+	{"CarkitR Mixer", "AudioR2", "Analog R2 Playback Mixer"},
-+	{"CarkitR PGA", NULL, "CarkitR Mixer"},
- 	/* HandsfreeL */
--	{"HandsfreeL Mux", "DACL1", "ARXL1_APGA"},
--	{"HandsfreeL Mux", "DACL2", "ARXL2_APGA"},
--	{"HandsfreeL Mux", "DACR2", "ARXR2_APGA"},
-+	{"HandsfreeL Mux", "Voice", "Analog Voice Playback Mixer"},
-+	{"HandsfreeL Mux", "AudioL1", "Analog L1 Playback Mixer"},
-+	{"HandsfreeL Mux", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"HandsfreeL Mux", "AudioR2", "Analog R2 Playback Mixer"},
-+	{"HandsfreeL", "Switch", "HandsfreeL Mux"},
-+	{"HandsfreeL PGA", NULL, "HandsfreeL"},
- 	/* HandsfreeR */
--	{"HandsfreeR Mux", "DACR1", "ARXR1_APGA"},
--	{"HandsfreeR Mux", "DACR2", "ARXR2_APGA"},
--	{"HandsfreeR Mux", "DACL2", "ARXL2_APGA"},
-+	{"HandsfreeR Mux", "Voice", "Analog Voice Playback Mixer"},
-+	{"HandsfreeR Mux", "AudioR1", "Analog R1 Playback Mixer"},
-+	{"HandsfreeR Mux", "AudioR2", "Analog R2 Playback Mixer"},
-+	{"HandsfreeR Mux", "AudioL2", "Analog L2 Playback Mixer"},
-+	{"HandsfreeR", "Switch", "HandsfreeR Mux"},
-+	{"HandsfreeR PGA", NULL, "HandsfreeR"},
-+	/* Vibra */
-+	{"Vibra Mux", "AudioL1", "DAC Left1"},
-+	{"Vibra Mux", "AudioR1", "DAC Right1"},
-+	{"Vibra Mux", "AudioL2", "DAC Left2"},
-+	{"Vibra Mux", "AudioR2", "DAC Right2"},
- 
- 	/* outputs */
--	{"OUTL", NULL, "ARXL2_APGA"},
--	{"OUTR", NULL, "ARXR2_APGA"},
--	{"EARPIECE", NULL, "Earpiece Mux"},
--	{"PREDRIVEL", NULL, "PredriveL Mux"},
--	{"PREDRIVER", NULL, "PredriveR Mux"},
--	{"HSOL", NULL, "HeadsetL Mux"},
--	{"HSOR", NULL, "HeadsetR Mux"},
--	{"CARKITL", NULL, "CarkitL Mux"},
--	{"CARKITR", NULL, "CarkitR Mux"},
--	{"HFL", NULL, "HandsfreeL Mux"},
--	{"HFR", NULL, "HandsfreeR Mux"},
-+	{"OUTL", NULL, "Analog L2 Playback Mixer"},
-+	{"OUTR", NULL, "Analog R2 Playback Mixer"},
-+	{"EARPIECE", NULL, "Earpiece PGA"},
-+	{"PREDRIVEL", NULL, "PredriveL PGA"},
-+	{"PREDRIVER", NULL, "PredriveR PGA"},
-+	{"HSOL", NULL, "HeadsetL PGA"},
-+	{"HSOR", NULL, "HeadsetR PGA"},
-+	{"CARKITL", NULL, "CarkitL PGA"},
-+	{"CARKITR", NULL, "CarkitR PGA"},
-+	{"HFL", NULL, "HandsfreeL PGA"},
-+	{"HFR", NULL, "HandsfreeR PGA"},
-+	{"Vibra Route", "Audio", "Vibra Mux"},
-+	{"VIBRA", NULL, "Vibra Route"},
- 
- 	/* Capture path */
--	{"Analog Left Capture Route", "Main mic", "MAINMIC"},
--	{"Analog Left Capture Route", "Headset mic", "HSMIC"},
--	{"Analog Left Capture Route", "AUXL", "AUXL"},
--	{"Analog Left Capture Route", "Carkit mic", "CARKITMIC"},
-+	{"Analog Left", "Main Mic Capture Switch", "MAINMIC"},
-+	{"Analog Left", "Headset Mic Capture Switch", "HSMIC"},
-+	{"Analog Left", "AUXL Capture Switch", "AUXL"},
-+	{"Analog Left", "Carkit Mic Capture Switch", "CARKITMIC"},
- 
--	{"Analog Right Capture Route", "Sub mic", "SUBMIC"},
--	{"Analog Right Capture Route", "AUXR", "AUXR"},
-+	{"Analog Right", "Sub Mic Capture Switch", "SUBMIC"},
-+	{"Analog Right", "AUXR Capture Switch", "AUXR"},
- 
--	{"ADC Physical Left", NULL, "Analog Left Capture Route"},
--	{"ADC Physical Right", NULL, "Analog Right Capture Route"},
-+	{"ADC Physical Left", NULL, "Analog Left"},
-+	{"ADC Physical Right", NULL, "Analog Right"},
- 
- 	{"Digimic0 Enable", NULL, "DIGIMIC0"},
- 	{"Digimic1 Enable", NULL, "DIGIMIC1"},
-@@ -1164,22 +1483,26 @@
- 	{"ADC Virtual Right2", NULL, "TX2 Capture Route"},
- 
- 	/* Analog bypass routes */
--	{"Right1 Analog Loopback", "Switch", "Analog Right Capture Route"},
--	{"Left1 Analog Loopback", "Switch", "Analog Left Capture Route"},
--	{"Right2 Analog Loopback", "Switch", "Analog Right Capture Route"},
--	{"Left2 Analog Loopback", "Switch", "Analog Left Capture Route"},
-+	{"Right1 Analog Loopback", "Switch", "Analog Right"},
-+	{"Left1 Analog Loopback", "Switch", "Analog Left"},
-+	{"Right2 Analog Loopback", "Switch", "Analog Right"},
-+	{"Left2 Analog Loopback", "Switch", "Analog Left"},
-+	{"Voice Analog Loopback", "Switch", "Analog Left"},
- 
- 	{"Analog R1 Playback Mixer", NULL, "Right1 Analog Loopback"},
- 	{"Analog L1 Playback Mixer", NULL, "Left1 Analog Loopback"},
- 	{"Analog R2 Playback Mixer", NULL, "Right2 Analog Loopback"},
- 	{"Analog L2 Playback Mixer", NULL, "Left2 Analog Loopback"},
-+	{"Analog Voice Playback Mixer", NULL, "Voice Analog Loopback"},
- 
- 	/* Digital bypass routes */
- 	{"Right Digital Loopback", "Volume", "TX1 Capture Route"},
- 	{"Left Digital Loopback", "Volume", "TX1 Capture Route"},
-+	{"Voice Digital Loopback", "Volume", "TX2 Capture Route"},
- 
--	{"Analog R2 Playback Mixer", NULL, "Right Digital Loopback"},
--	{"Analog L2 Playback Mixer", NULL, "Left Digital Loopback"},
-+	{"Digital R2 Playback Mixer", NULL, "Right Digital Loopback"},
-+	{"Digital L2 Playback Mixer", NULL, "Left Digital Loopback"},
-+	{"Digital Voice Playback Mixer", NULL, "Voice Digital Loopback"},
- 
- };
- 
-@@ -1226,6 +1549,58 @@
- 	return 0;
- }
- 
-+static void twl4030_constraints(struct twl4030_priv *twl4030,
-+				struct snd_pcm_substream *mst_substream)
-+{
-+	struct snd_pcm_substream *slv_substream;
-+
-+	/* Pick the stream, which need to be constrained */
-+	if (mst_substream == twl4030->master_substream)
-+		slv_substream = twl4030->slave_substream;
-+	else if (mst_substream == twl4030->slave_substream)
-+		slv_substream = twl4030->master_substream;
-+	else /* This should not happen.. */
-+		return;
-+
-+	/* Set the constraints according to the already configured stream */
-+	snd_pcm_hw_constraint_minmax(slv_substream->runtime,
-+				SNDRV_PCM_HW_PARAM_RATE,
-+				twl4030->rate,
-+				twl4030->rate);
-+
-+	snd_pcm_hw_constraint_minmax(slv_substream->runtime,
-+				SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
-+				twl4030->sample_bits,
-+				twl4030->sample_bits);
-+
-+	snd_pcm_hw_constraint_minmax(slv_substream->runtime,
-+				SNDRV_PCM_HW_PARAM_CHANNELS,
-+				twl4030->channels,
-+				twl4030->channels);
-+}
-+
-+/* In case of 4 channel mode, the RX1 L/R for playback and the TX2 L/R for
-+ * capture has to be enabled/disabled. */
-+static void twl4030_tdm_enable(struct snd_soc_codec *codec, int direction,
-+				int enable)
-+{
-+	u8 reg, mask;
-+
-+	reg = twl4030_read_reg_cache(codec, TWL4030_REG_OPTION);
-+
-+	if (direction == SNDRV_PCM_STREAM_PLAYBACK)
-+		mask = TWL4030_ARXL1_VRX_EN | TWL4030_ARXR1_EN;
-+	else
-+		mask = TWL4030_ATXL2_VTXL_EN | TWL4030_ATXR2_VTXR_EN;
-+
-+	if (enable)
-+		reg |= mask;
-+	else
-+		reg &= ~mask;
-+
-+	twl4030_write(codec, TWL4030_REG_OPTION, reg);
-+}
-+
- static int twl4030_startup(struct snd_pcm_substream *substream,
- 			   struct snd_soc_dai *dai)
- {
-@@ -1234,26 +1609,25 @@
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	struct twl4030_priv *twl4030 = codec->private_data;
- 
--	/* If we already have a playback or capture going then constrain
--	 * this substream to match it.
--	 */
- 	if (twl4030->master_substream) {
--		struct snd_pcm_runtime *master_runtime;
--		master_runtime = twl4030->master_substream->runtime;
--
--		snd_pcm_hw_constraint_minmax(substream->runtime,
--					     SNDRV_PCM_HW_PARAM_RATE,
--					     master_runtime->rate,
--					     master_runtime->rate);
--
--		snd_pcm_hw_constraint_minmax(substream->runtime,
--					     SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
--					     master_runtime->sample_bits,
--					     master_runtime->sample_bits);
--
- 		twl4030->slave_substream = substream;
--	} else
-+		/* The DAI has one configuration for playback and capture, so
-+		 * if the DAI has been already configured then constrain this
-+		 * substream to match it. */
-+		if (twl4030->configured)
-+			twl4030_constraints(twl4030, twl4030->master_substream);
-+	} else {
-+		if (!(twl4030_read_reg_cache(codec, TWL4030_REG_CODEC_MODE) &
-+			TWL4030_OPTION_1)) {
-+			/* In option2 4 channel is not supported, set the
-+			 * constraint for the first stream for channels, the
-+			 * second stream will 'inherit' this cosntraint */
-+			snd_pcm_hw_constraint_minmax(substream->runtime,
-+						SNDRV_PCM_HW_PARAM_CHANNELS,
-+						2, 2);
-+		}
- 		twl4030->master_substream = substream;
-+	}
- 
- 	return 0;
- }
-@@ -1270,6 +1644,17 @@
- 		twl4030->master_substream = twl4030->slave_substream;
- 
- 	twl4030->slave_substream = NULL;
-+
-+	/* If all streams are closed, or the remaining stream has not yet
-+	 * been configured than set the DAI as not configured. */
-+	if (!twl4030->master_substream)
-+		twl4030->configured = 0;
-+	 else if (!twl4030->master_substream->runtime->channels)
-+		twl4030->configured = 0;
-+
-+	 /* If the closing substream had 4 channel, do the necessary cleanup */
-+	if (substream->runtime->channels == 4)
-+		twl4030_tdm_enable(codec, substream->stream, 0);
- }
- 
- static int twl4030_hw_params(struct snd_pcm_substream *substream,
-@@ -1282,8 +1667,22 @@
- 	struct twl4030_priv *twl4030 = codec->private_data;
- 	u8 mode, old_mode, format, old_format;
- 
--	if (substream == twl4030->slave_substream)
--		/* Ignoring hw_params for slave substream */
-+	 /* If the substream has 4 channel, do the necessary setup */
-+	if (params_channels(params) == 4) {
-+		format = twl4030_read_reg_cache(codec, TWL4030_REG_AUDIO_IF);
-+		mode = twl4030_read_reg_cache(codec, TWL4030_REG_CODEC_MODE);
-+
-+		/* Safety check: are we in the correct operating mode and
-+		 * the interface is in TDM mode? */
-+		if ((mode & TWL4030_OPTION_1) &&
-+		    ((format & TWL4030_AIF_FORMAT) == TWL4030_AIF_FORMAT_TDM))
-+			twl4030_tdm_enable(codec, substream->stream, 1);
-+		else
-+			return -EINVAL;
-+	}
-+
-+	if (twl4030->configured)
-+		/* Ignoring hw_params for already configured DAI */
- 		return 0;
- 
- 	/* bit rate */
-@@ -1363,6 +1762,21 @@
- 		/* set CODECPDZ afterwards */
- 		twl4030_codec_enable(codec, 1);
- 	}
-+
-+	/* Store the important parameters for the DAI configuration and set
-+	 * the DAI as configured */
-+	twl4030->configured = 1;
-+	twl4030->rate = params_rate(params);
-+	twl4030->sample_bits = hw_param_interval(params,
-+					SNDRV_PCM_HW_PARAM_SAMPLE_BITS)->min;
-+	twl4030->channels = params_channels(params);
-+
-+	/* If both playback and capture streams are open, and one of them
-+	 * is setting the hw parameters right now (since we are here), set
-+	 * constraints to the other stream to match the current one. */
-+	if (twl4030->slave_substream)
-+		twl4030_constraints(twl4030, substream);
-+
- 	return 0;
- }
- 
-@@ -1370,17 +1784,21 @@
- 		int clk_id, unsigned int freq, int dir)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
-+	struct twl4030_priv *twl4030 = codec->private_data;
- 	u8 infreq;
- 
- 	switch (freq) {
- 	case 19200000:
- 		infreq = TWL4030_APLL_INFREQ_19200KHZ;
-+		twl4030->sysclk = 19200;
- 		break;
- 	case 26000000:
- 		infreq = TWL4030_APLL_INFREQ_26000KHZ;
-+		twl4030->sysclk = 26000;
- 		break;
- 	case 38400000:
- 		infreq = TWL4030_APLL_INFREQ_38400KHZ;
-+		twl4030->sysclk = 38400;
- 		break;
- 	default:
- 		printk(KERN_ERR "TWL4030 set sysclk: unknown rate %d\n",
-@@ -1424,6 +1842,9 @@
- 	case SND_SOC_DAIFMT_I2S:
- 		format |= TWL4030_AIF_FORMAT_CODEC;
- 		break;
-+	case SND_SOC_DAIFMT_DSP_A:
-+		format |= TWL4030_AIF_FORMAT_TDM;
-+		break;
- 	default:
- 		return -EINVAL;
- 	}
-@@ -1443,6 +1864,206 @@
- 	return 0;
- }
- 
-+static int twl4030_set_tristate(struct snd_soc_dai *dai, int tristate)
-+{
-+	struct snd_soc_codec *codec = dai->codec;
-+	u8 reg = twl4030_read_reg_cache(codec, TWL4030_REG_AUDIO_IF);
-+
-+	if (tristate)
-+		reg |= TWL4030_AIF_TRI_EN;
-+	else
-+		reg &= ~TWL4030_AIF_TRI_EN;
-+
-+	return twl4030_write(codec, TWL4030_REG_AUDIO_IF, reg);
-+}
-+
-+/* In case of voice mode, the RX1 L(VRX) for downlink and the TX2 L/R
-+ * (VTXL, VTXR) for uplink has to be enabled/disabled. */
-+static void twl4030_voice_enable(struct snd_soc_codec *codec, int direction,
-+				int enable)
-+{
-+	u8 reg, mask;
-+
-+	reg = twl4030_read_reg_cache(codec, TWL4030_REG_OPTION);
-+
-+	if (direction == SNDRV_PCM_STREAM_PLAYBACK)
-+		mask = TWL4030_ARXL1_VRX_EN;
-+	else
-+		mask = TWL4030_ATXL2_VTXL_EN | TWL4030_ATXR2_VTXR_EN;
-+
-+	if (enable)
-+		reg |= mask;
-+	else
-+		reg &= ~mask;
-+
-+	twl4030_write(codec, TWL4030_REG_OPTION, reg);
-+}
-+
-+static int twl4030_voice_startup(struct snd_pcm_substream *substream,
-+		struct snd_soc_dai *dai)
-+{
-+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-+	struct snd_soc_device *socdev = rtd->socdev;
-+	struct snd_soc_codec *codec = socdev->card->codec;
-+	u8 infreq;
-+	u8 mode;
-+
-+	/* If the system master clock is not 26MHz, the voice PCM interface is
-+	 * not avilable.
-+	 */
-+	infreq = twl4030_read_reg_cache(codec, TWL4030_REG_APLL_CTL)
-+		& TWL4030_APLL_INFREQ;
-+
-+	if (infreq != TWL4030_APLL_INFREQ_26000KHZ) {
-+		printk(KERN_ERR "TWL4030 voice startup: "
-+			"MCLK is not 26MHz, call set_sysclk() on init\n");
-+		return -EINVAL;
-+	}
-+
-+	/* If the codec mode is not option2, the voice PCM interface is not
-+	 * avilable.
-+	 */
-+	mode = twl4030_read_reg_cache(codec, TWL4030_REG_CODEC_MODE)
-+		& TWL4030_OPT_MODE;
-+
-+	if (mode != TWL4030_OPTION_2) {
-+		printk(KERN_ERR "TWL4030 voice startup: "
-+			"the codec mode is not option2\n");
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static void twl4030_voice_shutdown(struct snd_pcm_substream *substream,
-+				struct snd_soc_dai *dai)
-+{
-+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-+	struct snd_soc_device *socdev = rtd->socdev;
-+	struct snd_soc_codec *codec = socdev->card->codec;
-+
-+	/* Enable voice digital filters */
-+	twl4030_voice_enable(codec, substream->stream, 0);
-+}
-+
-+static int twl4030_voice_hw_params(struct snd_pcm_substream *substream,
-+		struct snd_pcm_hw_params *params, struct snd_soc_dai *dai)
-+{
-+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-+	struct snd_soc_device *socdev = rtd->socdev;
-+	struct snd_soc_codec *codec = socdev->card->codec;
-+	u8 old_mode, mode;
-+
-+	/* Enable voice digital filters */
-+	twl4030_voice_enable(codec, substream->stream, 1);
-+
-+	/* bit rate */
-+	old_mode = twl4030_read_reg_cache(codec, TWL4030_REG_CODEC_MODE)
-+		& ~(TWL4030_CODECPDZ);
-+	mode = old_mode;
-+
-+	switch (params_rate(params)) {
-+	case 8000:
-+		mode &= ~(TWL4030_SEL_16K);
-+		break;
-+	case 16000:
-+		mode |= TWL4030_SEL_16K;
-+		break;
-+	default:
-+		printk(KERN_ERR "TWL4030 voice hw params: unknown rate %d\n",
-+			params_rate(params));
-+		return -EINVAL;
-+	}
-+
-+	if (mode != old_mode) {
-+		/* change rate and set CODECPDZ */
-+		twl4030_codec_enable(codec, 0);
-+		twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode);
-+		twl4030_codec_enable(codec, 1);
-+	}
-+
-+	return 0;
-+}
-+
-+static int twl4030_voice_set_dai_sysclk(struct snd_soc_dai *codec_dai,
-+		int clk_id, unsigned int freq, int dir)
-+{
-+	struct snd_soc_codec *codec = codec_dai->codec;
-+	u8 infreq;
-+
-+	switch (freq) {
-+	case 26000000:
-+		infreq = TWL4030_APLL_INFREQ_26000KHZ;
-+		break;
-+	default:
-+		printk(KERN_ERR "TWL4030 voice set sysclk: unknown rate %d\n",
-+			freq);
-+		return -EINVAL;
-+	}
-+
-+	infreq |= TWL4030_APLL_EN;
-+	twl4030_write(codec, TWL4030_REG_APLL_CTL, infreq);
-+
-+	return 0;
-+}
-+
-+static int twl4030_voice_set_dai_fmt(struct snd_soc_dai *codec_dai,
-+		unsigned int fmt)
-+{
-+	struct snd_soc_codec *codec = codec_dai->codec;
-+	u8 old_format, format;
-+
-+	/* get format */
-+	old_format = twl4030_read_reg_cache(codec, TWL4030_REG_VOICE_IF);
-+	format = old_format;
-+
-+	/* set master/slave audio interface */
-+	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
-+	case SND_SOC_DAIFMT_CBM_CFM:
-+		format &= ~(TWL4030_VIF_SLAVE_EN);
-+		break;
-+	case SND_SOC_DAIFMT_CBS_CFS:
-+		format |= TWL4030_VIF_SLAVE_EN;
-+		break;
-+	default:
-+		return -EINVAL;
-+	}
-+
-+	/* clock inversion */
-+	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
-+	case SND_SOC_DAIFMT_IB_NF:
-+		format &= ~(TWL4030_VIF_FORMAT);
-+		break;
-+	case SND_SOC_DAIFMT_NB_IF:
-+		format |= TWL4030_VIF_FORMAT;
-+		break;
-+	default:
-+		return -EINVAL;
-+	}
-+
-+	if (format != old_format) {
-+		/* change format and set CODECPDZ */
-+		twl4030_codec_enable(codec, 0);
-+		twl4030_write(codec, TWL4030_REG_VOICE_IF, format);
-+		twl4030_codec_enable(codec, 1);
-+	}
-+
-+	return 0;
-+}
-+
-+static int twl4030_voice_set_tristate(struct snd_soc_dai *dai, int tristate)
-+{
-+	struct snd_soc_codec *codec = dai->codec;
-+	u8 reg = twl4030_read_reg_cache(codec, TWL4030_REG_VOICE_IF);
-+
-+	if (tristate)
-+		reg |= TWL4030_VIF_TRI_EN;
-+	else
-+		reg &= ~TWL4030_VIF_TRI_EN;
-+
-+	return twl4030_write(codec, TWL4030_REG_VOICE_IF, reg);
-+}
-+
- #define TWL4030_RATES	 (SNDRV_PCM_RATE_8000_48000)
- #define TWL4030_FORMATS	 (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S24_LE)
- 
-@@ -1452,23 +2073,51 @@
- 	.hw_params	= twl4030_hw_params,
- 	.set_sysclk	= twl4030_set_dai_sysclk,
- 	.set_fmt	= twl4030_set_dai_fmt,
-+	.set_tristate	= twl4030_set_tristate,
-+};
-+
-+static struct snd_soc_dai_ops twl4030_dai_voice_ops = {
-+	.startup	= twl4030_voice_startup,
-+	.shutdown	= twl4030_voice_shutdown,
-+	.hw_params	= twl4030_voice_hw_params,
-+	.set_sysclk	= twl4030_voice_set_dai_sysclk,
-+	.set_fmt	= twl4030_voice_set_dai_fmt,
-+	.set_tristate	= twl4030_voice_set_tristate,
- };
- 
--struct snd_soc_dai twl4030_dai = {
-+struct snd_soc_dai twl4030_dai[] = {
-+{
- 	.name = "twl4030",
- 	.playback = {
--		.stream_name = "Playback",
-+		.stream_name = "HiFi Playback",
- 		.channels_min = 2,
--		.channels_max = 2,
-+		.channels_max = 4,
- 		.rates = TWL4030_RATES | SNDRV_PCM_RATE_96000,
- 		.formats = TWL4030_FORMATS,},
- 	.capture = {
- 		.stream_name = "Capture",
- 		.channels_min = 2,
--		.channels_max = 2,
-+		.channels_max = 4,
- 		.rates = TWL4030_RATES,
- 		.formats = TWL4030_FORMATS,},
- 	.ops = &twl4030_dai_ops,
-+},
-+{
-+	.name = "twl4030 Voice",
-+	.playback = {
-+		.stream_name = "Voice Playback",
-+		.channels_min = 1,
-+		.channels_max = 1,
-+		.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000,
-+		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+	.capture = {
-+		.stream_name = "Capture",
-+		.channels_min = 1,
-+		.channels_max = 2,
-+		.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000,
-+		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+	.ops = &twl4030_dai_voice_ops,
-+},
- };
- EXPORT_SYMBOL_GPL(twl4030_dai);
- 
-@@ -1500,6 +2149,8 @@
- static int twl4030_init(struct snd_soc_device *socdev)
- {
- 	struct snd_soc_codec *codec = socdev->card->codec;
-+	struct twl4030_setup_data *setup = socdev->codec_data;
-+	struct twl4030_priv *twl4030 = codec->private_data;
- 	int ret = 0;
- 
- 	printk(KERN_INFO "TWL4030 Audio Codec init \n");
-@@ -1509,14 +2160,31 @@
- 	codec->read = twl4030_read_reg_cache;
- 	codec->write = twl4030_write;
- 	codec->set_bias_level = twl4030_set_bias_level;
--	codec->dai = &twl4030_dai;
--	codec->num_dai = 1;
-+	codec->dai = twl4030_dai;
-+	codec->num_dai = ARRAY_SIZE(twl4030_dai),
- 	codec->reg_cache_size = sizeof(twl4030_reg);
- 	codec->reg_cache = kmemdup(twl4030_reg, sizeof(twl4030_reg),
- 					GFP_KERNEL);
- 	if (codec->reg_cache == NULL)
- 		return -ENOMEM;
- 
-+	/* Configuration for headset ramp delay from setup data */
-+	if (setup) {
-+		unsigned char hs_pop;
-+
-+		if (setup->sysclk)
-+			twl4030->sysclk = setup->sysclk;
-+		else
-+			twl4030->sysclk = 26000;
-+
-+		hs_pop = twl4030_read_reg_cache(codec, TWL4030_REG_HS_POPN_SET);
-+		hs_pop &= ~TWL4030_RAMP_DELAY;
-+		hs_pop |= (setup->ramp_delay_value << 2);
-+		twl4030_write_reg_cache(codec, TWL4030_REG_HS_POPN_SET, hs_pop);
-+	} else {
-+		twl4030->sysclk = 26000;
-+	}
-+
- 	/* register pcms */
- 	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
- 	if (ret < 0) {
-@@ -1604,13 +2272,13 @@
- 
- static int __init twl4030_modinit(void)
- {
--	return snd_soc_register_dai(&twl4030_dai);
-+	return snd_soc_register_dais(&twl4030_dai[0], ARRAY_SIZE(twl4030_dai));
- }
- module_init(twl4030_modinit);
- 
- static void __exit twl4030_exit(void)
- {
--	snd_soc_unregister_dai(&twl4030_dai);
-+	snd_soc_unregister_dais(&twl4030_dai[0], ARRAY_SIZE(twl4030_dai));
- }
- module_exit(twl4030_exit);
- 
-Index: linux-2.6.30/sound/soc/codecs/twl4030.h
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/twl4030.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/twl4030.h	2011-02-01 16:40:30.185047492 +0100
-@@ -92,8 +92,9 @@
- #define TWL4030_REG_VIBRA_PWM_SET	0x47
- #define TWL4030_REG_ANAMIC_GAIN		0x48
- #define TWL4030_REG_MISC_SET_2		0x49
-+#define TWL4030_REG_SW_SHADOW		0x4A
- 
--#define TWL4030_CACHEREGNUM	(TWL4030_REG_MISC_SET_2 + 1)
-+#define TWL4030_CACHEREGNUM	(TWL4030_REG_SW_SHADOW + 1)
- 
- /* Bitfield Definitions */
- 
-@@ -110,9 +111,22 @@
- #define TWL4030_APLL_RATE_44100		0x90
- #define TWL4030_APLL_RATE_48000		0xA0
- #define TWL4030_APLL_RATE_96000		0xE0
--#define TWL4030_SEL_16K			0x04
-+#define TWL4030_SEL_16K			0x08
- #define TWL4030_CODECPDZ		0x02
- #define TWL4030_OPT_MODE		0x01
-+#define TWL4030_OPTION_1		(1 << 0)
-+#define TWL4030_OPTION_2		(0 << 0)
-+
-+/* TWL4030_OPTION (0x02) Fields */
-+
-+#define TWL4030_ATXL1_EN		(1 << 0)
-+#define TWL4030_ATXR1_EN		(1 << 1)
-+#define TWL4030_ATXL2_VTXL_EN		(1 << 2)
-+#define TWL4030_ATXR2_VTXR_EN		(1 << 3)
-+#define TWL4030_ARXL1_VRX_EN		(1 << 4)
-+#define TWL4030_ARXR1_EN		(1 << 5)
-+#define TWL4030_ARXL2_EN		(1 << 6)
-+#define TWL4030_ARXR2_EN		(1 << 7)
- 
- /* TWL4030_REG_MICBIAS_CTL (0x04) Fields */
- 
-@@ -171,6 +185,17 @@
- #define TWL4030_CLK256FS_EN		0x02
- #define TWL4030_AIF_EN			0x01
- 
-+/* VOICE_IF (0x0F) Fields */
-+
-+#define TWL4030_VIF_SLAVE_EN		0x80
-+#define TWL4030_VIF_DIN_EN		0x40
-+#define TWL4030_VIF_DOUT_EN		0x20
-+#define TWL4030_VIF_SWAP		0x10
-+#define TWL4030_VIF_FORMAT		0x08
-+#define TWL4030_VIF_TRI_EN		0x04
-+#define TWL4030_VIF_SUB_EN		0x02
-+#define TWL4030_VIF_EN			0x01
-+
- /* EAR_CTL (0x21) */
- #define TWL4030_EAR_GAIN		0x30
- 
-@@ -236,7 +261,21 @@
- #define TWL4030_SMOOTH_ANAVOL_EN	0x02
- #define TWL4030_DIGMIC_LR_SWAP_EN	0x01
- 
--extern struct snd_soc_dai twl4030_dai;
-+/* TWL4030_REG_SW_SHADOW (0x4A) Fields */
-+#define TWL4030_HFL_EN			0x01
-+#define TWL4030_HFR_EN			0x02
-+
-+#define TWL4030_DAI_HIFI		0
-+#define TWL4030_DAI_VOICE		1
-+
-+extern struct snd_soc_dai twl4030_dai[2];
- extern struct snd_soc_codec_device soc_codec_dev_twl4030;
- 
-+struct twl4030_setup_data {
-+	unsigned int ramp_delay_value;
-+	unsigned int sysclk;
-+	unsigned int hs_extmute:1;
-+	void (*set_hs_extmute)(int mute);
-+};
-+
- #endif	/* End of __TWL4030_AUDIO_H__ */
-Index: linux-2.6.30/sound/soc/codecs/uda134x.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/uda134x.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/uda134x.c	2011-02-01 16:40:30.185047492 +0100
-@@ -101,7 +101,7 @@
- 	pr_debug("%s reg: %02X, value:%02X\n", __func__, reg, value);
- 
- 	if (reg >= UDA134X_REGS_NUM) {
--		printk(KERN_ERR "%s unkown register: reg: %d",
-+		printk(KERN_ERR "%s unkown register: reg: %u",
- 		       __func__, reg);
- 		return -EINVAL;
- 	}
-@@ -163,7 +163,7 @@
- 	else
- 		mute_reg &= ~(1<<2);
- 
--	uda134x_write(codec, UDA134X_DATA010, mute_reg & ~(1<<2));
-+	uda134x_write(codec, UDA134X_DATA010, mute_reg);
- 
- 	return 0;
- }
-@@ -296,7 +296,7 @@
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	struct uda134x_priv *uda134x = codec->private_data;
- 
--	pr_debug("%s clk_id: %d, freq: %d, dir: %d\n", __func__,
-+	pr_debug("%s clk_id: %d, freq: %u, dir: %d\n", __func__,
- 		 clk_id, freq, dir);
- 
- 	/* Anything between 256fs*8Khz and 512fs*48Khz should be acceptable
-Index: linux-2.6.30/sound/soc/codecs/uda1380.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/uda1380.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/uda1380.c	2011-02-01 16:40:30.185047492 +0100
-@@ -5,9 +5,7 @@
-  * it under the terms of the GNU General Public License version 2 as
-  * published by the Free Software Foundation.
-  *
-- * Copyright (c) 2007 Philipp Zabel <philipp.zabel at gmail.com>
-- * Improved support for DAPM and audio routing/mixing capabilities,
-- * added TLV support.
-+ * Copyright (c) 2007-2009 Philipp Zabel <philipp.zabel at gmail.com>
-  *
-  * Modified by Richard Purdie <richard at openedhand.com> to fit into SoC
-  * codec model.
-@@ -19,26 +17,32 @@
- #include <linux/module.h>
- #include <linux/init.h>
- #include <linux/types.h>
--#include <linux/string.h>
- #include <linux/slab.h>
- #include <linux/errno.h>
--#include <linux/ioctl.h>
-+#include <linux/gpio.h>
- #include <linux/delay.h>
- #include <linux/i2c.h>
- #include <linux/workqueue.h>
- #include <sound/core.h>
- #include <sound/control.h>
- #include <sound/initval.h>
--#include <sound/info.h>
- #include <sound/soc.h>
- #include <sound/soc-dapm.h>
- #include <sound/tlv.h>
-+#include <sound/uda1380.h>
- 
- #include "uda1380.h"
- 
--static struct work_struct uda1380_work;
- static struct snd_soc_codec *uda1380_codec;
- 
-+/* codec private data */
-+struct uda1380_priv {
-+	struct snd_soc_codec codec;
-+	u16 reg_cache[UDA1380_CACHEREGNUM];
-+	unsigned int dac_clk;
-+	struct work_struct work;
-+};
-+
- /*
-  * uda1380 register cache
-  */
-@@ -473,6 +477,7 @@
- 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
-+	struct uda1380_priv *uda1380 = codec->private_data;
- 	int mixer = uda1380_read_reg_cache(codec, UDA1380_MIXER);
- 
- 	switch (cmd) {
-@@ -480,13 +485,13 @@
- 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- 		uda1380_write_reg_cache(codec, UDA1380_MIXER,
- 					mixer & ~R14_SILENCE);
--		schedule_work(&uda1380_work);
-+		schedule_work(&uda1380->work);
- 		break;
- 	case SNDRV_PCM_TRIGGER_STOP:
- 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
- 		uda1380_write_reg_cache(codec, UDA1380_MIXER,
- 					mixer | R14_SILENCE);
--		schedule_work(&uda1380_work);
-+		schedule_work(&uda1380->work);
- 		break;
- 	}
- 	return 0;
-@@ -670,44 +675,33 @@
- 	return 0;
- }
- 
--/*
-- * initialise the UDA1380 driver
-- * register mixer and dsp interfaces with the kernel
-- */
--static int uda1380_init(struct snd_soc_device *socdev, int dac_clk)
-+static int uda1380_probe(struct platform_device *pdev)
- {
--	struct snd_soc_codec *codec = socdev->card->codec;
-+	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
-+	struct snd_soc_codec *codec;
-+	struct uda1380_platform_data *pdata;
- 	int ret = 0;
- 
--	codec->name = "UDA1380";
--	codec->owner = THIS_MODULE;
--	codec->read = uda1380_read_reg_cache;
--	codec->write = uda1380_write;
--	codec->set_bias_level = uda1380_set_bias_level;
--	codec->dai = uda1380_dai;
--	codec->num_dai = ARRAY_SIZE(uda1380_dai);
--	codec->reg_cache = kmemdup(uda1380_reg, sizeof(uda1380_reg),
--				   GFP_KERNEL);
--	if (codec->reg_cache == NULL)
--		return -ENOMEM;
--	codec->reg_cache_size = ARRAY_SIZE(uda1380_reg);
--	codec->reg_cache_step = 1;
--	uda1380_reset(codec);
-+	if (uda1380_codec == NULL) {
-+		dev_err(&pdev->dev, "Codec device not registered\n");
-+		return -ENODEV;
-+	}
- 
--	uda1380_codec = codec;
--	INIT_WORK(&uda1380_work, uda1380_flush_work);
-+	socdev->card->codec = uda1380_codec;
-+	codec = uda1380_codec;
-+	pdata = codec->dev->platform_data;
- 
- 	/* register pcms */
- 	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
- 	if (ret < 0) {
--		pr_err("uda1380: failed to create pcms\n");
-+		dev_err(codec->dev, "failed to create pcms: %d\n", ret);
- 		goto pcm_err;
- 	}
- 
- 	/* power on device */
- 	uda1380_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 	/* set clock input */
--	switch (dac_clk) {
-+	switch (pdata->dac_clk) {
- 	case UDA1380_DAC_CLK_SYSCLK:
- 		uda1380_write(codec, UDA1380_CLK, 0);
- 		break;
-@@ -716,13 +710,12 @@
- 		break;
- 	}
- 
--	/* uda1380 init */
- 	snd_soc_add_controls(codec, uda1380_snd_controls,
- 				ARRAY_SIZE(uda1380_snd_controls));
- 	uda1380_add_widgets(codec);
- 	ret = snd_soc_init_card(socdev);
- 	if (ret < 0) {
--		pr_err("uda1380: failed to register card\n");
-+		dev_err(codec->dev, "failed to register card: %d\n", ret);
- 		goto card_err;
- 	}
- 
-@@ -732,165 +725,201 @@
- 	snd_soc_free_pcms(socdev);
- 	snd_soc_dapm_free(socdev);
- pcm_err:
--	kfree(codec->reg_cache);
- 	return ret;
- }
- 
--static struct snd_soc_device *uda1380_socdev;
--
--#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
--
--static int uda1380_i2c_probe(struct i2c_client *i2c,
--			     const struct i2c_device_id *id)
-+/* power down chip */
-+static int uda1380_remove(struct platform_device *pdev)
- {
--	struct snd_soc_device *socdev = uda1380_socdev;
--	struct uda1380_setup_data *setup = socdev->codec_data;
-+	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
- 	struct snd_soc_codec *codec = socdev->card->codec;
--	int ret;
--
--	i2c_set_clientdata(i2c, codec);
--	codec->control_data = i2c;
- 
--	ret = uda1380_init(socdev, setup->dac_clk);
--	if (ret < 0)
--		pr_err("uda1380: failed to initialise UDA1380\n");
-+	if (codec->control_data)
-+		uda1380_set_bias_level(codec, SND_SOC_BIAS_OFF);
- 
--	return ret;
--}
-+	snd_soc_free_pcms(socdev);
-+	snd_soc_dapm_free(socdev);
- 
--static int uda1380_i2c_remove(struct i2c_client *client)
--{
--	struct snd_soc_codec *codec = i2c_get_clientdata(client);
--	kfree(codec->reg_cache);
- 	return 0;
- }
- 
--static const struct i2c_device_id uda1380_i2c_id[] = {
--	{ "uda1380", 0 },
--	{ }
--};
--MODULE_DEVICE_TABLE(i2c, uda1380_i2c_id);
--
--static struct i2c_driver uda1380_i2c_driver = {
--	.driver = {
--		.name =  "UDA1380 I2C Codec",
--		.owner = THIS_MODULE,
--	},
--	.probe =    uda1380_i2c_probe,
--	.remove =   uda1380_i2c_remove,
--	.id_table = uda1380_i2c_id,
-+struct snd_soc_codec_device soc_codec_dev_uda1380 = {
-+	.probe = 	uda1380_probe,
-+	.remove = 	uda1380_remove,
-+	.suspend = 	uda1380_suspend,
-+	.resume =	uda1380_resume,
- };
-+EXPORT_SYMBOL_GPL(soc_codec_dev_uda1380);
- 
--static int uda1380_add_i2c_device(struct platform_device *pdev,
--				  const struct uda1380_setup_data *setup)
-+static int uda1380_register(struct uda1380_priv *uda1380)
- {
--	struct i2c_board_info info;
--	struct i2c_adapter *adapter;
--	struct i2c_client *client;
--	int ret;
-+	int ret, i;
-+	struct snd_soc_codec *codec = &uda1380->codec;
-+	struct uda1380_platform_data *pdata = codec->dev->platform_data;
- 
--	ret = i2c_add_driver(&uda1380_i2c_driver);
--	if (ret != 0) {
--		dev_err(&pdev->dev, "can't add i2c driver\n");
--		return ret;
-+	if (uda1380_codec) {
-+		dev_err(codec->dev, "Another UDA1380 is registered\n");
-+		return -EINVAL;
-+	}
-+
-+	if (!pdata || !pdata->gpio_power || !pdata->gpio_reset)
-+		return -EINVAL;
-+
-+	ret = gpio_request(pdata->gpio_power, "uda1380 power");
-+	if (ret)
-+		goto err_out;
-+	ret = gpio_request(pdata->gpio_reset, "uda1380 reset");
-+	if (ret)
-+		goto err_gpio;
-+
-+	gpio_direction_output(pdata->gpio_power, 1);
-+
-+	/* we may need to have the clock running here - pH5 */
-+	gpio_direction_output(pdata->gpio_reset, 1);
-+	udelay(5);
-+	gpio_set_value(pdata->gpio_reset, 0);
-+
-+	mutex_init(&codec->mutex);
-+	INIT_LIST_HEAD(&codec->dapm_widgets);
-+	INIT_LIST_HEAD(&codec->dapm_paths);
-+
-+	codec->private_data = uda1380;
-+	codec->name = "UDA1380";
-+	codec->owner = THIS_MODULE;
-+	codec->read = uda1380_read_reg_cache;
-+	codec->write = uda1380_write;
-+	codec->bias_level = SND_SOC_BIAS_OFF;
-+	codec->set_bias_level = uda1380_set_bias_level;
-+	codec->dai = uda1380_dai;
-+	codec->num_dai = ARRAY_SIZE(uda1380_dai);
-+	codec->reg_cache_size = ARRAY_SIZE(uda1380_reg);
-+	codec->reg_cache = &uda1380->reg_cache;
-+	codec->reg_cache_step = 1;
-+
-+	memcpy(codec->reg_cache, uda1380_reg, sizeof(uda1380_reg));
-+
-+	ret = uda1380_reset(codec);
-+	if (ret < 0) {
-+		dev_err(codec->dev, "Failed to issue reset\n");
-+		goto err_reset;
- 	}
- 
--	memset(&info, 0, sizeof(struct i2c_board_info));
--	info.addr = setup->i2c_address;
--	strlcpy(info.type, "uda1380", I2C_NAME_SIZE);
-+	INIT_WORK(&uda1380->work, uda1380_flush_work);
- 
--	adapter = i2c_get_adapter(setup->i2c_bus);
--	if (!adapter) {
--		dev_err(&pdev->dev, "can't get i2c adapter %d\n",
--			setup->i2c_bus);
--		goto err_driver;
-+	for (i = 0; i < ARRAY_SIZE(uda1380_dai); i++)
-+		uda1380_dai[i].dev = codec->dev;
-+
-+	uda1380_codec = codec;
-+
-+	ret = snd_soc_register_codec(codec);
-+	if (ret != 0) {
-+		dev_err(codec->dev, "Failed to register codec: %d\n", ret);
-+		goto err_reset;
- 	}
- 
--	client = i2c_new_device(adapter, &info);
--	i2c_put_adapter(adapter);
--	if (!client) {
--		dev_err(&pdev->dev, "can't add i2c device at 0x%x\n",
--			(unsigned int)info.addr);
--		goto err_driver;
-+	ret = snd_soc_register_dais(uda1380_dai, ARRAY_SIZE(uda1380_dai));
-+	if (ret != 0) {
-+		dev_err(codec->dev, "Failed to register DAIs: %d\n", ret);
-+		goto err_dai;
- 	}
- 
- 	return 0;
- 
--err_driver:
--	i2c_del_driver(&uda1380_i2c_driver);
--	return -ENODEV;
-+err_dai:
-+	snd_soc_unregister_codec(codec);
-+err_reset:
-+	gpio_set_value(pdata->gpio_power, 0);
-+	gpio_free(pdata->gpio_reset);
-+err_gpio:
-+	gpio_free(pdata->gpio_power);
-+err_out:
-+	return ret;
- }
--#endif
- 
--static int uda1380_probe(struct platform_device *pdev)
-+static void uda1380_unregister(struct uda1380_priv *uda1380)
- {
--	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
--	struct uda1380_setup_data *setup;
-+	struct snd_soc_codec *codec = &uda1380->codec;
-+	struct uda1380_platform_data *pdata = codec->dev->platform_data;
-+
-+	snd_soc_unregister_dais(uda1380_dai, ARRAY_SIZE(uda1380_dai));
-+	snd_soc_unregister_codec(&uda1380->codec);
-+
-+	gpio_set_value(pdata->gpio_power, 0);
-+	gpio_free(pdata->gpio_reset);
-+	gpio_free(pdata->gpio_power);
-+
-+	kfree(uda1380);
-+	uda1380_codec = NULL;
-+}
-+
-+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-+static __devinit int uda1380_i2c_probe(struct i2c_client *i2c,
-+				      const struct i2c_device_id *id)
-+{
-+	struct uda1380_priv *uda1380;
- 	struct snd_soc_codec *codec;
- 	int ret;
- 
--	setup = socdev->codec_data;
--	codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
--	if (codec == NULL)
-+	uda1380 = kzalloc(sizeof(struct uda1380_priv), GFP_KERNEL);
-+	if (uda1380 == NULL)
- 		return -ENOMEM;
- 
--	socdev->card->codec = codec;
--	mutex_init(&codec->mutex);
--	INIT_LIST_HEAD(&codec->dapm_widgets);
--	INIT_LIST_HEAD(&codec->dapm_paths);
-+	codec = &uda1380->codec;
-+	codec->hw_write = (hw_write_t)i2c_master_send;
- 
--	uda1380_socdev = socdev;
--	ret = -ENODEV;
-+	i2c_set_clientdata(i2c, uda1380);
-+	codec->control_data = i2c;
- 
--#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
--	if (setup->i2c_address) {
--		codec->hw_write = (hw_write_t)i2c_master_send;
--		ret = uda1380_add_i2c_device(pdev, setup);
--	}
--#endif
-+	codec->dev = &i2c->dev;
- 
-+	ret = uda1380_register(uda1380);
- 	if (ret != 0)
--		kfree(codec);
-+		kfree(uda1380);
-+
- 	return ret;
- }
- 
--/* power down chip */
--static int uda1380_remove(struct platform_device *pdev)
-+static int __devexit uda1380_i2c_remove(struct i2c_client *i2c)
- {
--	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
--	struct snd_soc_codec *codec = socdev->card->codec;
--
--	if (codec->control_data)
--		uda1380_set_bias_level(codec, SND_SOC_BIAS_OFF);
--
--	snd_soc_free_pcms(socdev);
--	snd_soc_dapm_free(socdev);
--#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
--	i2c_unregister_device(codec->control_data);
--	i2c_del_driver(&uda1380_i2c_driver);
--#endif
--	kfree(codec);
--
-+	struct uda1380_priv *uda1380 = i2c_get_clientdata(i2c);
-+	uda1380_unregister(uda1380);
- 	return 0;
- }
- 
--struct snd_soc_codec_device soc_codec_dev_uda1380 = {
--	.probe = 	uda1380_probe,
--	.remove = 	uda1380_remove,
--	.suspend = 	uda1380_suspend,
--	.resume =	uda1380_resume,
-+static const struct i2c_device_id uda1380_i2c_id[] = {
-+	{ "uda1380", 0 },
-+	{ }
- };
--EXPORT_SYMBOL_GPL(soc_codec_dev_uda1380);
-+MODULE_DEVICE_TABLE(i2c, uda1380_i2c_id);
-+
-+static struct i2c_driver uda1380_i2c_driver = {
-+	.driver = {
-+		.name =  "UDA1380 I2C Codec",
-+		.owner = THIS_MODULE,
-+	},
-+	.probe =    uda1380_i2c_probe,
-+	.remove =   __devexit_p(uda1380_i2c_remove),
-+	.id_table = uda1380_i2c_id,
-+};
-+#endif
- 
- static int __init uda1380_modinit(void)
- {
--	return snd_soc_register_dais(uda1380_dai, ARRAY_SIZE(uda1380_dai));
-+	int ret;
-+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-+	ret = i2c_add_driver(&uda1380_i2c_driver);
-+	if (ret != 0)
-+		pr_err("Failed to register UDA1380 I2C driver: %d\n", ret);
-+#endif
-+	return 0;
- }
- module_init(uda1380_modinit);
- 
- static void __exit uda1380_exit(void)
- {
--	snd_soc_unregister_dais(uda1380_dai, ARRAY_SIZE(uda1380_dai));
-+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-+	i2c_del_driver(&uda1380_i2c_driver);
-+#endif
- }
- module_exit(uda1380_exit);
- 
-Index: linux-2.6.30/sound/soc/codecs/uda1380.h
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/uda1380.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/uda1380.h	2011-02-01 16:40:30.185047492 +0100
-@@ -72,14 +72,6 @@
- #define R22_SKIP_DCFIL	0x0002
- #define R23_AGC_EN	0x0001
- 
--struct uda1380_setup_data {
--	int            i2c_bus;
--	unsigned short i2c_address;
--	int            dac_clk;
--#define UDA1380_DAC_CLK_SYSCLK 0
--#define UDA1380_DAC_CLK_WSPLL  1
--};
--
- #define UDA1380_DAI_DUPLEX	0 /* playback and capture on single DAI */
- #define UDA1380_DAI_PLAYBACK	1 /* playback DAI */
- #define UDA1380_DAI_CAPTURE	2 /* capture DAI */
-Index: linux-2.6.30/sound/soc/codecs/wm8350.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8350.c	2011-02-01 16:39:20.000000000 +0100
-+++ linux-2.6.30/sound/soc/codecs/wm8350.c	2011-02-01 16:40:30.185047492 +0100
-@@ -63,6 +63,8 @@
- 	struct wm8350_jack_data hpl;
- 	struct wm8350_jack_data hpr;
- 	struct regulator_bulk_data supplies[ARRAY_SIZE(supply_names)];
-+	int fll_freq_out;
-+	int fll_freq_in;
- };
- 
- static unsigned int wm8350_codec_cache_read(struct snd_soc_codec *codec,
-@@ -406,7 +408,6 @@
- static const char *wm8350_pol[] = { "Normal", "Inv R", "Inv L", "Inv L & R" };
- static const char *wm8350_dacmutem[] = { "Normal", "Soft" };
- static const char *wm8350_dacmutes[] = { "Fast", "Slow" };
--static const char *wm8350_dacfilter[] = { "Normal", "Sloping" };
- static const char *wm8350_adcfilter[] = { "None", "High Pass" };
- static const char *wm8350_adchp[] = { "44.1kHz", "8kHz", "16kHz", "32kHz" };
- static const char *wm8350_lr[] = { "Left", "Right" };
-@@ -416,7 +417,6 @@
- 	SOC_ENUM_SINGLE(WM8350_DAC_CONTROL, 0, 4, wm8350_pol),
- 	SOC_ENUM_SINGLE(WM8350_DAC_MUTE_VOLUME, 14, 2, wm8350_dacmutem),
- 	SOC_ENUM_SINGLE(WM8350_DAC_MUTE_VOLUME, 13, 2, wm8350_dacmutes),
--	SOC_ENUM_SINGLE(WM8350_DAC_MUTE_VOLUME, 12, 2, wm8350_dacfilter),
- 	SOC_ENUM_SINGLE(WM8350_ADC_CONTROL, 15, 2, wm8350_adcfilter),
- 	SOC_ENUM_SINGLE(WM8350_ADC_CONTROL, 8, 4, wm8350_adchp),
- 	SOC_ENUM_SINGLE(WM8350_ADC_CONTROL, 0, 4, wm8350_pol),
-@@ -444,10 +444,9 @@
- 				0, 255, 0, dac_pcm_tlv),
- 	SOC_ENUM("Playback PCM Mute Function", wm8350_enum[2]),
- 	SOC_ENUM("Playback PCM Mute Speed", wm8350_enum[3]),
--	SOC_ENUM("Playback PCM Filter", wm8350_enum[4]),
--	SOC_ENUM("Capture PCM Filter", wm8350_enum[5]),
--	SOC_ENUM("Capture PCM HP Filter", wm8350_enum[6]),
--	SOC_ENUM("Capture ADC Inversion", wm8350_enum[7]),
-+	SOC_ENUM("Capture PCM Filter", wm8350_enum[4]),
-+	SOC_ENUM("Capture PCM HP Filter", wm8350_enum[5]),
-+	SOC_ENUM("Capture ADC Inversion", wm8350_enum[6]),
- 	SOC_WM8350_DOUBLE_R_TLV("Capture PCM Volume",
- 				WM8350_ADC_DIGITAL_VOLUME_L,
- 				WM8350_ADC_DIGITAL_VOLUME_R,
-@@ -580,7 +579,7 @@
- 	SOC_DAPM_SINGLE_TLV("L3 Capture Volume",
- 			    WM8350_INPUT_MIXER_VOLUME_L, 9, 7, 0, out_mix_tlv),
- 	SOC_DAPM_SINGLE("PGA Capture Switch",
--			WM8350_LEFT_INPUT_VOLUME, 14, 1, 0),
-+			WM8350_LEFT_INPUT_VOLUME, 14, 1, 1),
- };
- 
- /* Right Input Mixer */
-@@ -590,7 +589,7 @@
- 	SOC_DAPM_SINGLE_TLV("L3 Capture Volume",
- 			    WM8350_INPUT_MIXER_VOLUME_R, 13, 7, 0, out_mix_tlv),
- 	SOC_DAPM_SINGLE("PGA Capture Switch",
--			WM8350_RIGHT_INPUT_VOLUME, 14, 1, 0),
-+			WM8350_RIGHT_INPUT_VOLUME, 14, 1, 1),
- };
- 
- /* Left Mic Mixer */
-@@ -993,6 +992,7 @@
- 				struct snd_soc_dai *codec_dai)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
-+	struct wm8350 *wm8350 = codec->control_data;
- 	u16 iface = wm8350_codec_read(codec, WM8350_AI_FORMATING) &
- 	    ~WM8350_AIF_WL_MASK;
- 
-@@ -1012,6 +1012,19 @@
- 	}
- 
- 	wm8350_codec_write(codec, WM8350_AI_FORMATING, iface);
-+
-+	/* The sloping stopband filter is recommended for use with
-+	 * lower sample rates to improve performance.
-+	 */
-+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-+		if (params_rate(params) < 24000)
-+			wm8350_set_bits(wm8350, WM8350_DAC_MUTE_VOLUME,
-+					WM8350_DAC_SB_FILT);
-+		else
-+			wm8350_clear_bits(wm8350, WM8350_DAC_MUTE_VOLUME,
-+					  WM8350_DAC_SB_FILT);
-+	}
-+
- 	return 0;
- }
- 
-@@ -1088,15 +1101,19 @@
- }
- 
- static int wm8350_set_fll(struct snd_soc_dai *codec_dai,
--			  int pll_id, unsigned int freq_in,
-+			  int pll_id, int source, unsigned int freq_in,
- 			  unsigned int freq_out)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	struct wm8350 *wm8350 = codec->control_data;
-+	struct wm8350_data *priv = codec->private_data;
- 	struct _fll_div fll_div;
- 	int ret = 0;
- 	u16 fll_1, fll_4;
- 
-+	if (freq_in == priv->fll_freq_in && freq_out == priv->fll_freq_out)
-+		return 0;
-+
- 	/* power down FLL - we need to do this for reconfiguration */
- 	wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_4,
- 			  WM8350_FLL_ENA | WM8350_FLL_OSC_ENA);
-@@ -1108,7 +1125,7 @@
- 	if (ret < 0)
- 		return ret;
- 	dev_dbg(wm8350->dev,
--		"FLL in %d FLL out %d N 0x%x K 0x%x div %d ratio %d",
-+		"FLL in %u FLL out %u N 0x%x K 0x%x div %d ratio %d",
- 		freq_in, freq_out, fll_div.n, fll_div.k, fll_div.div,
- 		fll_div.ratio);
- 
-@@ -1131,6 +1148,9 @@
- 	wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_OSC_ENA);
- 	wm8350_set_bits(wm8350, WM8350_POWER_MGMT_4, WM8350_FLL_ENA);
- 
-+	priv->fll_freq_out = freq_out;
-+	priv->fll_freq_in = freq_in;
-+
- 	return 0;
- }
- 
-@@ -1660,6 +1680,21 @@
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8350_codec_suspend(struct platform_device *pdev, pm_message_t m)
-+{
-+	return snd_soc_suspend_device(&pdev->dev);
-+}
-+
-+static int wm8350_codec_resume(struct platform_device *pdev)
-+{
-+	return snd_soc_resume_device(&pdev->dev);
-+}
-+#else
-+#define wm8350_codec_suspend NULL
-+#define wm8350_codec_resume NULL
-+#endif
-+
- static struct platform_driver wm8350_codec_driver = {
- 	.driver = {
- 		   .name = "wm8350-codec",
-@@ -1667,6 +1702,8 @@
- 		   },
- 	.probe = wm8350_codec_probe,
- 	.remove = __devexit_p(wm8350_codec_remove),
-+	.suspend = wm8350_codec_suspend,
-+	.resume = wm8350_codec_resume,
- };
- 
- static __init int wm8350_init(void)
-Index: linux-2.6.30/sound/soc/codecs/wm8350.h
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8350.h	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8350.h	2011-02-01 16:40:30.185047492 +0100
-@@ -13,6 +13,7 @@
- #define _WM8350_H
- 
- #include <sound/soc.h>
-+#include <linux/mfd/wm8350/audio.h>
- 
- extern struct snd_soc_dai wm8350_dai;
- extern struct snd_soc_codec_device soc_codec_dev_wm8350;
-Index: linux-2.6.30/sound/soc/codecs/wm8400.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8400.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8400.c	2011-02-01 16:40:30.185047492 +0100
-@@ -954,7 +954,7 @@
- 		factors->outdiv *= 2;
- 		if (factors->outdiv > 32) {
- 			dev_err(wm8400->wm8400->dev,
--				"Unsupported FLL output frequency %dHz\n",
-+				"Unsupported FLL output frequency %uHz\n",
- 				Fout);
- 			return -EINVAL;
- 		}
-@@ -1003,7 +1003,7 @@
- 	factors->k = K / 10;
- 
- 	dev_dbg(wm8400->wm8400->dev,
--		"FLL: Fref=%d Fout=%d N=%x K=%x, FRATIO=%x OUTDIV=%x\n",
-+		"FLL: Fref=%u Fout=%u N=%x K=%x, FRATIO=%x OUTDIV=%x\n",
- 		Fref, Fout,
- 		factors->n, factors->k, factors->fratio, factors->outdiv);
- 
-@@ -1011,7 +1011,8 @@
- }
- 
- static int wm8400_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
--			      unsigned int freq_in, unsigned int freq_out)
-+			      int source, unsigned int freq_in,
-+			      unsigned int freq_out)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	struct wm8400_priv *wm8400 = codec->private_data;
-@@ -1022,10 +1023,15 @@
- 	if (freq_in == wm8400->fll_in && freq_out == wm8400->fll_out)
- 		return 0;
- 
--	if (freq_out != 0) {
-+	if (freq_out) {
- 		ret = fll_factors(wm8400, &factors, freq_in, freq_out);
- 		if (ret != 0)
- 			return ret;
-+	} else {
-+		/* Bodge GCC 4.4.0 uninitialised variable warning - it
-+		 * doesn't seem capable of working out that we exit if
-+		 * freq_out is 0 before any of the uses. */
-+		memset(&factors, 0, sizeof(factors));
- 	}
- 
- 	wm8400->fll_out = freq_out;
-@@ -1040,7 +1046,7 @@
- 	reg &= ~WM8400_FLL_OSC_ENA;
- 	wm8400_write(codec, WM8400_FLL_CONTROL_1, reg);
- 
--	if (freq_out == 0)
-+	if (!freq_out)
- 		return 0;
- 
- 	reg &= ~(WM8400_FLL_REF_FREQ | WM8400_FLL_FRATIO_MASK);
-@@ -1473,8 +1479,8 @@
- 
- 	codec = &priv->codec;
- 	codec->private_data = priv;
--	codec->control_data = dev->dev.driver_data;
--	priv->wm8400 = dev->dev.driver_data;
-+	codec->control_data = dev_get_drvdata(&dev->dev);
-+	priv->wm8400 = dev_get_drvdata(&dev->dev);
- 
- 	ret = regulator_bulk_get(priv->wm8400->dev,
- 				 ARRAY_SIZE(power), &power[0]);
-@@ -1553,6 +1559,21 @@
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8400_pdev_suspend(struct platform_device *pdev, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&pdev->dev);
-+}
-+
-+static int wm8400_pdev_resume(struct platform_device *pdev)
-+{
-+	return snd_soc_resume_device(&pdev->dev);
-+}
-+#else
-+#define wm8400_pdev_suspend NULL
-+#define wm8400_pdev_resume NULL
-+#endif
-+
- static struct platform_driver wm8400_codec_driver = {
- 	.driver = {
- 		.name = "wm8400-codec",
-@@ -1560,6 +1581,8 @@
- 	},
- 	.probe = wm8400_codec_probe,
- 	.remove	= __exit_p(wm8400_codec_remove),
-+	.suspend = wm8400_pdev_suspend,
-+	.resume = wm8400_pdev_resume,
- };
- 
- static int __init wm8400_codec_init(void)
-Index: linux-2.6.30/sound/soc/codecs/wm8510.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8510.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8510.c	2011-02-01 16:40:30.185047492 +0100
-@@ -58,55 +58,7 @@
- #define WM8510_POWER1_BIASEN  0x08
- #define WM8510_POWER1_BUFIOEN 0x10
- 
--/*
-- * read wm8510 register cache
-- */
--static inline unsigned int wm8510_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg == WM8510_RESET)
--		return 0;
--	if (reg >= WM8510_CACHEREGNUM)
--		return -1;
--	return cache[reg];
--}
--
--/*
-- * write wm8510 register cache
-- */
--static inline void wm8510_write_reg_cache(struct snd_soc_codec *codec,
--	u16 reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg >= WM8510_CACHEREGNUM)
--		return;
--	cache[reg] = value;
--}
--
--/*
-- * write to the WM8510 register space
-- */
--static int wm8510_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[2];
--
--	/* data is
--	 *   D15..D9 WM8510 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
--	data[1] = value & 0x00ff;
--
--	wm8510_write_reg_cache(codec, reg, value);
--	if (codec->hw_write(codec->control_data, data, 2) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
--#define wm8510_reset(c)	wm8510_write(c, WM8510_RESET, 0)
-+#define wm8510_reset(c)	snd_soc_write(c, WM8510_RESET, 0)
- 
- static const char *wm8510_companding[] = { "Off", "NC", "u-law", "A-law" };
- static const char *wm8510_deemp[] = { "None", "32kHz", "44.1kHz", "48kHz" };
-@@ -298,7 +250,7 @@
- 
- 	if ((Ndiv < 6) || (Ndiv > 12))
- 		printk(KERN_WARNING
--			"WM8510 N value %d outwith recommended range!d\n",
-+			"WM8510 N value %u outwith recommended range!d\n",
- 			Ndiv);
- 
- 	pll_div.n = Ndiv;
-@@ -319,35 +271,35 @@
- 	pll_div.k = K;
- }
- 
--static int wm8510_set_dai_pll(struct snd_soc_dai *codec_dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out)
-+static int wm8510_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
-+		int source, unsigned int freq_in, unsigned int freq_out)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	u16 reg;
- 
- 	if (freq_in == 0 || freq_out == 0) {
- 		/* Clock CODEC directly from MCLK */
--		reg = wm8510_read_reg_cache(codec, WM8510_CLOCK);
--		wm8510_write(codec, WM8510_CLOCK, reg & 0x0ff);
-+		reg = snd_soc_read(codec, WM8510_CLOCK);
-+		snd_soc_write(codec, WM8510_CLOCK, reg & 0x0ff);
- 
- 		/* Turn off PLL */
--		reg = wm8510_read_reg_cache(codec, WM8510_POWER1);
--		wm8510_write(codec, WM8510_POWER1, reg & 0x1df);
-+		reg = snd_soc_read(codec, WM8510_POWER1);
-+		snd_soc_write(codec, WM8510_POWER1, reg & 0x1df);
- 		return 0;
- 	}
- 
- 	pll_factors(freq_out*4, freq_in);
- 
--	wm8510_write(codec, WM8510_PLLN, (pll_div.pre_div << 4) | pll_div.n);
--	wm8510_write(codec, WM8510_PLLK1, pll_div.k >> 18);
--	wm8510_write(codec, WM8510_PLLK2, (pll_div.k >> 9) & 0x1ff);
--	wm8510_write(codec, WM8510_PLLK3, pll_div.k & 0x1ff);
--	reg = wm8510_read_reg_cache(codec, WM8510_POWER1);
--	wm8510_write(codec, WM8510_POWER1, reg | 0x020);
-+	snd_soc_write(codec, WM8510_PLLN, (pll_div.pre_div << 4) | pll_div.n);
-+	snd_soc_write(codec, WM8510_PLLK1, pll_div.k >> 18);
-+	snd_soc_write(codec, WM8510_PLLK2, (pll_div.k >> 9) & 0x1ff);
-+	snd_soc_write(codec, WM8510_PLLK3, pll_div.k & 0x1ff);
-+	reg = snd_soc_read(codec, WM8510_POWER1);
-+	snd_soc_write(codec, WM8510_POWER1, reg | 0x020);
- 
- 	/* Run CODEC from PLL instead of MCLK */
--	reg = wm8510_read_reg_cache(codec, WM8510_CLOCK);
--	wm8510_write(codec, WM8510_CLOCK, reg | 0x100);
-+	reg = snd_soc_read(codec, WM8510_CLOCK);
-+	snd_soc_write(codec, WM8510_CLOCK, reg | 0x100);
- 
- 	return 0;
- }
-@@ -363,24 +315,24 @@
- 
- 	switch (div_id) {
- 	case WM8510_OPCLKDIV:
--		reg = wm8510_read_reg_cache(codec, WM8510_GPIO) & 0x1cf;
--		wm8510_write(codec, WM8510_GPIO, reg | div);
-+		reg = snd_soc_read(codec, WM8510_GPIO) & 0x1cf;
-+		snd_soc_write(codec, WM8510_GPIO, reg | div);
- 		break;
- 	case WM8510_MCLKDIV:
--		reg = wm8510_read_reg_cache(codec, WM8510_CLOCK) & 0x11f;
--		wm8510_write(codec, WM8510_CLOCK, reg | div);
-+		reg = snd_soc_read(codec, WM8510_CLOCK) & 0x11f;
-+		snd_soc_write(codec, WM8510_CLOCK, reg | div);
- 		break;
- 	case WM8510_ADCCLK:
--		reg = wm8510_read_reg_cache(codec, WM8510_ADC) & 0x1f7;
--		wm8510_write(codec, WM8510_ADC, reg | div);
-+		reg = snd_soc_read(codec, WM8510_ADC) & 0x1f7;
-+		snd_soc_write(codec, WM8510_ADC, reg | div);
- 		break;
- 	case WM8510_DACCLK:
--		reg = wm8510_read_reg_cache(codec, WM8510_DAC) & 0x1f7;
--		wm8510_write(codec, WM8510_DAC, reg | div);
-+		reg = snd_soc_read(codec, WM8510_DAC) & 0x1f7;
-+		snd_soc_write(codec, WM8510_DAC, reg | div);
- 		break;
- 	case WM8510_BCLKDIV:
--		reg = wm8510_read_reg_cache(codec, WM8510_CLOCK) & 0x1e3;
--		wm8510_write(codec, WM8510_CLOCK, reg | div);
-+		reg = snd_soc_read(codec, WM8510_CLOCK) & 0x1e3;
-+		snd_soc_write(codec, WM8510_CLOCK, reg | div);
- 		break;
- 	default:
- 		return -EINVAL;
-@@ -394,7 +346,7 @@
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	u16 iface = 0;
--	u16 clk = wm8510_read_reg_cache(codec, WM8510_CLOCK) & 0x1fe;
-+	u16 clk = snd_soc_read(codec, WM8510_CLOCK) & 0x1fe;
- 
- 	/* set master/slave audio interface */
- 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
-@@ -441,8 +393,8 @@
- 		return -EINVAL;
- 	}
- 
--	wm8510_write(codec, WM8510_IFACE, iface);
--	wm8510_write(codec, WM8510_CLOCK, clk);
-+	snd_soc_write(codec, WM8510_IFACE, iface);
-+	snd_soc_write(codec, WM8510_CLOCK, clk);
- 	return 0;
- }
- 
-@@ -453,8 +405,8 @@
- 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
--	u16 iface = wm8510_read_reg_cache(codec, WM8510_IFACE) & 0x19f;
--	u16 adn = wm8510_read_reg_cache(codec, WM8510_ADD) & 0x1f1;
-+	u16 iface = snd_soc_read(codec, WM8510_IFACE) & 0x19f;
-+	u16 adn = snd_soc_read(codec, WM8510_ADD) & 0x1f1;
- 
- 	/* bit size */
- 	switch (params_format(params)) {
-@@ -493,20 +445,20 @@
- 		break;
- 	}
- 
--	wm8510_write(codec, WM8510_IFACE, iface);
--	wm8510_write(codec, WM8510_ADD, adn);
-+	snd_soc_write(codec, WM8510_IFACE, iface);
-+	snd_soc_write(codec, WM8510_ADD, adn);
- 	return 0;
- }
- 
- static int wm8510_mute(struct snd_soc_dai *dai, int mute)
- {
- 	struct snd_soc_codec *codec = dai->codec;
--	u16 mute_reg = wm8510_read_reg_cache(codec, WM8510_DAC) & 0xffbf;
-+	u16 mute_reg = snd_soc_read(codec, WM8510_DAC) & 0xffbf;
- 
- 	if (mute)
--		wm8510_write(codec, WM8510_DAC, mute_reg | 0x40);
-+		snd_soc_write(codec, WM8510_DAC, mute_reg | 0x40);
- 	else
--		wm8510_write(codec, WM8510_DAC, mute_reg);
-+		snd_soc_write(codec, WM8510_DAC, mute_reg);
- 	return 0;
- }
- 
-@@ -514,13 +466,13 @@
- static int wm8510_set_bias_level(struct snd_soc_codec *codec,
- 	enum snd_soc_bias_level level)
- {
--	u16 power1 = wm8510_read_reg_cache(codec, WM8510_POWER1) & ~0x3;
-+	u16 power1 = snd_soc_read(codec, WM8510_POWER1) & ~0x3;
- 
- 	switch (level) {
- 	case SND_SOC_BIAS_ON:
- 	case SND_SOC_BIAS_PREPARE:
- 		power1 |= 0x1;  /* VMID 50k */
--		wm8510_write(codec, WM8510_POWER1, power1);
-+		snd_soc_write(codec, WM8510_POWER1, power1);
- 		break;
- 
- 	case SND_SOC_BIAS_STANDBY:
-@@ -528,18 +480,18 @@
- 
- 		if (codec->bias_level == SND_SOC_BIAS_OFF) {
- 			/* Initial cap charge at VMID 5k */
--			wm8510_write(codec, WM8510_POWER1, power1 | 0x3);
-+			snd_soc_write(codec, WM8510_POWER1, power1 | 0x3);
- 			mdelay(100);
- 		}
- 
- 		power1 |= 0x2;  /* VMID 500k */
--		wm8510_write(codec, WM8510_POWER1, power1);
-+		snd_soc_write(codec, WM8510_POWER1, power1);
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
--		wm8510_write(codec, WM8510_POWER1, 0);
--		wm8510_write(codec, WM8510_POWER2, 0);
--		wm8510_write(codec, WM8510_POWER3, 0);
-+		snd_soc_write(codec, WM8510_POWER1, 0);
-+		snd_soc_write(codec, WM8510_POWER2, 0);
-+		snd_soc_write(codec, WM8510_POWER3, 0);
- 		break;
- 	}
- 
-@@ -577,6 +529,7 @@
- 		.rates = WM8510_RATES,
- 		.formats = WM8510_FORMATS,},
- 	.ops = &wm8510_dai_ops,
-+	.symmetric_rates = 1,
- };
- EXPORT_SYMBOL_GPL(wm8510_dai);
- 
-@@ -612,15 +565,14 @@
-  * initialise the WM8510 driver
-  * register the mixer and dsp interfaces with the kernel
-  */
--static int wm8510_init(struct snd_soc_device *socdev)
-+static int wm8510_init(struct snd_soc_device *socdev,
-+		       enum snd_soc_control_type control)
- {
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	int ret = 0;
- 
- 	codec->name = "WM8510";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8510_read_reg_cache;
--	codec->write = wm8510_write;
- 	codec->set_bias_level = wm8510_set_bias_level;
- 	codec->dai = &wm8510_dai;
- 	codec->num_dai = 1;
-@@ -630,13 +582,20 @@
- 	if (codec->reg_cache == NULL)
- 		return -ENOMEM;
- 
-+	ret = snd_soc_codec_set_cache_io(codec, 7, 9, control);
-+	if (ret < 0) {
-+		printk(KERN_ERR "wm8510: failed to set cache I/O: %d\n",
-+		       ret);
-+		goto err;
-+	}
-+
- 	wm8510_reset(codec);
- 
- 	/* register pcms */
- 	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
- 	if (ret < 0) {
- 		printk(KERN_ERR "wm8510: failed to create pcms\n");
--		goto pcm_err;
-+		goto err;
- 	}
- 
- 	/* power on device */
-@@ -655,7 +614,7 @@
- card_err:
- 	snd_soc_free_pcms(socdev);
- 	snd_soc_dapm_free(socdev);
--pcm_err:
-+err:
- 	kfree(codec->reg_cache);
- 	return ret;
- }
-@@ -678,7 +637,7 @@
- 	i2c_set_clientdata(i2c, codec);
- 	codec->control_data = i2c;
- 
--	ret = wm8510_init(socdev);
-+	ret = wm8510_init(socdev, SND_SOC_I2C);
- 	if (ret < 0)
- 		pr_err("failed to initialise WM8510\n");
- 
-@@ -758,7 +717,7 @@
- 
- 	codec->control_data = spi;
- 
--	ret = wm8510_init(socdev);
-+	ret = wm8510_init(socdev, SND_SOC_SPI);
- 	if (ret < 0)
- 		dev_err(&spi->dev, "failed to initialise WM8510\n");
- 
-@@ -779,30 +738,6 @@
- 	.probe		= wm8510_spi_probe,
- 	.remove		= __devexit_p(wm8510_spi_remove),
- };
--
--static int wm8510_spi_write(struct spi_device *spi, const char *data, int len)
--{
--	struct spi_transfer t;
--	struct spi_message m;
--	u8 msg[2];
--
--	if (len <= 0)
--		return 0;
--
--	msg[0] = data[0];
--	msg[1] = data[1];
--
--	spi_message_init(&m);
--	memset(&t, 0, (sizeof t));
--
--	t.tx_buf = &msg[0];
--	t.len = len;
--
--	spi_message_add_tail(&t, &m);
--	spi_sync(spi, &m);
--
--	return len;
--}
- #endif /* CONFIG_SPI_MASTER */
- 
- static int wm8510_probe(struct platform_device *pdev)
-@@ -827,13 +762,11 @@
- 	wm8510_socdev = socdev;
- #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
- 	if (setup->i2c_address) {
--		codec->hw_write = (hw_write_t)i2c_master_send;
- 		ret = wm8510_add_i2c_device(pdev, setup);
- 	}
- #endif
- #if defined(CONFIG_SPI_MASTER)
- 	if (setup->spi) {
--		codec->hw_write = (hw_write_t)wm8510_spi_write;
- 		ret = spi_register_driver(&wm8510_spi_driver);
- 		if (ret != 0)
- 			printk(KERN_ERR "can't add spi driver");
-Index: linux-2.6.30/sound/soc/codecs/wm8580.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8580.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8580.c	2011-02-01 16:40:30.185047492 +0100
-@@ -24,6 +24,8 @@
- #include <linux/pm.h>
- #include <linux/i2c.h>
- #include <linux/platform_device.h>
-+#include <linux/regulator/consumer.h>
-+
- #include <sound/core.h>
- #include <sound/pcm.h>
- #include <sound/pcm_params.h>
-@@ -187,82 +189,22 @@
- 	unsigned int out;
- };
- 
-+#define WM8580_NUM_SUPPLIES 3
-+static const char *wm8580_supply_names[WM8580_NUM_SUPPLIES] = {
-+	"AVDD",
-+	"DVDD",
-+	"PVDD",
-+};
-+
- /* codec private data */
- struct wm8580_priv {
- 	struct snd_soc_codec codec;
-+	struct regulator_bulk_data supplies[WM8580_NUM_SUPPLIES];
- 	u16 reg_cache[WM8580_MAX_REGISTER + 1];
- 	struct pll_state a;
- 	struct pll_state b;
- };
- 
--
--/*
-- * read wm8580 register cache
-- */
--static inline unsigned int wm8580_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	BUG_ON(reg >= ARRAY_SIZE(wm8580_reg));
--	return cache[reg];
--}
--
--/*
-- * write wm8580 register cache
-- */
--static inline void wm8580_write_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--
--	cache[reg] = value;
--}
--
--/*
-- * write to the WM8580 register space
-- */
--static int wm8580_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[2];
--
--	BUG_ON(reg >= ARRAY_SIZE(wm8580_reg));
--
--	/* Registers are 9 bits wide */
--	value &= 0x1ff;
--
--	switch (reg) {
--	case WM8580_RESET:
--		/* Uncached */
--		break;
--	default:
--		if (value == wm8580_read_reg_cache(codec, reg))
--			return 0;
--	}
--
--	/* data is
--	 *   D15..D9 WM8580 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
--	data[1] = value & 0x00ff;
--
--	wm8580_write_reg_cache(codec, reg, value);
--	if (codec->hw_write(codec->control_data, data, 2) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
--static inline unsigned int wm8580_read(struct snd_soc_codec *codec,
--				       unsigned int reg)
--{
--	switch (reg) {
--	default:
--		return wm8580_read_reg_cache(codec, reg);
--	}
--}
--
- static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1);
- 
- static int wm8580_out_vu(struct snd_kcontrol *kcontrol,
-@@ -271,25 +213,22 @@
- 	struct soc_mixer_control *mc =
- 		(struct soc_mixer_control *)kcontrol->private_value;
- 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
-+	u16 *reg_cache = codec->reg_cache;
- 	unsigned int reg = mc->reg;
- 	unsigned int reg2 = mc->rreg;
- 	int ret;
--	u16 val;
- 
- 	/* Clear the register cache so we write without VU set */
--	wm8580_write_reg_cache(codec, reg, 0);
--	wm8580_write_reg_cache(codec, reg2, 0);
-+	reg_cache[reg] = 0;
-+	reg_cache[reg2] = 0;
- 
- 	ret = snd_soc_put_volsw_2r(kcontrol, ucontrol);
- 	if (ret < 0)
- 		return ret;
- 
- 	/* Now write again with the volume update bit set */
--	val = wm8580_read_reg_cache(codec, reg);
--	wm8580_write(codec, reg, val | 0x0100);
--
--	val = wm8580_read_reg_cache(codec, reg2);
--	wm8580_write(codec, reg2, val | 0x0100);
-+	snd_soc_update_bits(codec, reg, 0x100, 0x100);
-+	snd_soc_update_bits(codec, reg2, 0x100, 0x100);
- 
- 	return 0;
- }
-@@ -415,7 +354,7 @@
- 	unsigned int K, Ndiv, Nmod;
- 	int i;
- 
--	pr_debug("wm8580: PLL %dHz->%dHz\n", source, target);
-+	pr_debug("wm8580: PLL %uHz->%uHz\n", source, target);
- 
- 	/* Scale the output frequency up; the PLL should run in the
- 	 * region of 90-100MHz.
-@@ -447,7 +386,7 @@
- 
- 	if ((Ndiv < 5) || (Ndiv > 13)) {
- 		printk(KERN_ERR
--			"WM8580 N=%d outside supported range\n", Ndiv);
-+			"WM8580 N=%u outside supported range\n", Ndiv);
- 		return -EINVAL;
- 	}
- 
-@@ -468,8 +407,8 @@
- 	return 0;
- }
- 
--static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out)
-+static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
-+		int source, unsigned int freq_in, unsigned int freq_out)
- {
- 	int offset;
- 	struct snd_soc_codec *codec = codec_dai->codec;
-@@ -512,27 +451,27 @@
- 	/* Always disable the PLL - it is not safe to leave it running
- 	 * while reprogramming it.
- 	 */
--	reg = wm8580_read(codec, WM8580_PWRDN2);
--	wm8580_write(codec, WM8580_PWRDN2, reg | pwr_mask);
-+	reg = snd_soc_read(codec, WM8580_PWRDN2);
-+	snd_soc_write(codec, WM8580_PWRDN2, reg | pwr_mask);
- 
- 	if (!freq_in || !freq_out)
- 		return 0;
- 
--	wm8580_write(codec, WM8580_PLLA1 + offset, pll_div.k & 0x1ff);
--	wm8580_write(codec, WM8580_PLLA2 + offset, (pll_div.k >> 9) & 0xff);
--	wm8580_write(codec, WM8580_PLLA3 + offset,
-+	snd_soc_write(codec, WM8580_PLLA1 + offset, pll_div.k & 0x1ff);
-+	snd_soc_write(codec, WM8580_PLLA2 + offset, (pll_div.k >> 9) & 0x1ff);
-+	snd_soc_write(codec, WM8580_PLLA3 + offset,
- 		     (pll_div.k >> 18 & 0xf) | (pll_div.n << 4));
- 
--	reg = wm8580_read(codec, WM8580_PLLA4 + offset);
--	reg &= ~0x3f;
-+	reg = snd_soc_read(codec, WM8580_PLLA4 + offset);
-+	reg &= ~0x1b;
- 	reg |= pll_div.prescale | pll_div.postscale << 1 |
- 		pll_div.freqmode << 3;
- 
--	wm8580_write(codec, WM8580_PLLA4 + offset, reg);
-+	snd_soc_write(codec, WM8580_PLLA4 + offset, reg);
- 
- 	/* All done, turn it on */
--	reg = wm8580_read(codec, WM8580_PWRDN2);
--	wm8580_write(codec, WM8580_PWRDN2, reg & ~pwr_mask);
-+	reg = snd_soc_read(codec, WM8580_PWRDN2);
-+	snd_soc_write(codec, WM8580_PWRDN2, reg & ~pwr_mask);
- 
- 	return 0;
- }
-@@ -547,7 +486,7 @@
- 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
--	u16 paifb = wm8580_read(codec, WM8580_PAIF3 + dai->id);
-+	u16 paifb = snd_soc_read(codec, WM8580_PAIF3 + dai->id);
- 
- 	paifb &= ~WM8580_AIF_LENGTH_MASK;
- 	/* bit size */
-@@ -567,7 +506,7 @@
- 		return -EINVAL;
- 	}
- 
--	wm8580_write(codec, WM8580_PAIF3 + dai->id, paifb);
-+	snd_soc_write(codec, WM8580_PAIF3 + dai->id, paifb);
- 	return 0;
- }
- 
-@@ -579,8 +518,8 @@
- 	unsigned int aifb;
- 	int can_invert_lrclk;
- 
--	aifa = wm8580_read(codec, WM8580_PAIF1 + codec_dai->id);
--	aifb = wm8580_read(codec, WM8580_PAIF3 + codec_dai->id);
-+	aifa = snd_soc_read(codec, WM8580_PAIF1 + codec_dai->id);
-+	aifb = snd_soc_read(codec, WM8580_PAIF3 + codec_dai->id);
- 
- 	aifb &= ~(WM8580_AIF_FMT_MASK | WM8580_AIF_LRP | WM8580_AIF_BCP);
- 
-@@ -646,8 +585,8 @@
- 		return -EINVAL;
- 	}
- 
--	wm8580_write(codec, WM8580_PAIF1 + codec_dai->id, aifa);
--	wm8580_write(codec, WM8580_PAIF3 + codec_dai->id, aifb);
-+	snd_soc_write(codec, WM8580_PAIF1 + codec_dai->id, aifa);
-+	snd_soc_write(codec, WM8580_PAIF3 + codec_dai->id, aifb);
- 
- 	return 0;
- }
-@@ -660,7 +599,7 @@
- 
- 	switch (div_id) {
- 	case WM8580_MCLK:
--		reg = wm8580_read(codec, WM8580_PLLB4);
-+		reg = snd_soc_read(codec, WM8580_PLLB4);
- 		reg &= ~WM8580_PLLB4_MCLKOUTSRC_MASK;
- 
- 		switch (div) {
-@@ -682,11 +621,11 @@
- 		default:
- 			return -EINVAL;
- 		}
--		wm8580_write(codec, WM8580_PLLB4, reg);
-+		snd_soc_write(codec, WM8580_PLLB4, reg);
- 		break;
- 
- 	case WM8580_DAC_CLKSEL:
--		reg = wm8580_read(codec, WM8580_CLKSEL);
-+		reg = snd_soc_read(codec, WM8580_CLKSEL);
- 		reg &= ~WM8580_CLKSEL_DAC_CLKSEL_MASK;
- 
- 		switch (div) {
-@@ -704,11 +643,11 @@
- 		default:
- 			return -EINVAL;
- 		}
--		wm8580_write(codec, WM8580_CLKSEL, reg);
-+		snd_soc_write(codec, WM8580_CLKSEL, reg);
- 		break;
- 
- 	case WM8580_CLKOUTSRC:
--		reg = wm8580_read(codec, WM8580_PLLB4);
-+		reg = snd_soc_read(codec, WM8580_PLLB4);
- 		reg &= ~WM8580_PLLB4_CLKOUTSRC_MASK;
- 
- 		switch (div) {
-@@ -730,7 +669,7 @@
- 		default:
- 			return -EINVAL;
- 		}
--		wm8580_write(codec, WM8580_PLLB4, reg);
-+		snd_soc_write(codec, WM8580_PLLB4, reg);
- 		break;
- 
- 	default:
-@@ -745,14 +684,14 @@
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	unsigned int reg;
- 
--	reg = wm8580_read(codec, WM8580_DAC_CONTROL5);
-+	reg = snd_soc_read(codec, WM8580_DAC_CONTROL5);
- 
- 	if (mute)
- 		reg |= WM8580_DAC_CONTROL5_MUTEALL;
- 	else
- 		reg &= ~WM8580_DAC_CONTROL5_MUTEALL;
- 
--	wm8580_write(codec, WM8580_DAC_CONTROL5, reg);
-+	snd_soc_write(codec, WM8580_DAC_CONTROL5, reg);
- 
- 	return 0;
- }
-@@ -769,20 +708,20 @@
- 	case SND_SOC_BIAS_STANDBY:
- 		if (codec->bias_level == SND_SOC_BIAS_OFF) {
- 			/* Power up and get individual control of the DACs */
--			reg = wm8580_read(codec, WM8580_PWRDN1);
-+			reg = snd_soc_read(codec, WM8580_PWRDN1);
- 			reg &= ~(WM8580_PWRDN1_PWDN | WM8580_PWRDN1_ALLDACPD);
--			wm8580_write(codec, WM8580_PWRDN1, reg);
-+			snd_soc_write(codec, WM8580_PWRDN1, reg);
- 
- 			/* Make VMID high impedence */
--			reg = wm8580_read(codec,  WM8580_ADC_CONTROL1);
-+			reg = snd_soc_read(codec,  WM8580_ADC_CONTROL1);
- 			reg &= ~0x100;
--			wm8580_write(codec, WM8580_ADC_CONTROL1, reg);
-+			snd_soc_write(codec, WM8580_ADC_CONTROL1, reg);
- 		}
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
--		reg = wm8580_read(codec, WM8580_PWRDN1);
--		wm8580_write(codec, WM8580_PWRDN1, reg | WM8580_PWRDN1_PWDN);
-+		reg = snd_soc_read(codec, WM8580_PWRDN1);
-+		snd_soc_write(codec, WM8580_PWRDN1, reg | WM8580_PWRDN1_PWDN);
- 		break;
- 	}
- 	codec->bias_level = level;
-@@ -893,7 +832,8 @@
- };
- EXPORT_SYMBOL_GPL(soc_codec_dev_wm8580);
- 
--static int wm8580_register(struct wm8580_priv *wm8580)
-+static int wm8580_register(struct wm8580_priv *wm8580,
-+			   enum snd_soc_control_type control)
- {
- 	int ret, i;
- 	struct snd_soc_codec *codec = &wm8580->codec;
-@@ -911,8 +851,6 @@
- 	codec->private_data = wm8580;
- 	codec->name = "WM8580";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8580_read_reg_cache;
--	codec->write = wm8580_write;
- 	codec->bias_level = SND_SOC_BIAS_OFF;
- 	codec->set_bias_level = wm8580_set_bias_level;
- 	codec->dai = wm8580_dai;
-@@ -922,11 +860,34 @@
- 
- 	memcpy(codec->reg_cache, wm8580_reg, sizeof(wm8580_reg));
- 
-+	ret = snd_soc_codec_set_cache_io(codec, 7, 9, control);
-+	if (ret < 0) {
-+		dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
-+		goto err;
-+	}
-+
-+	for (i = 0; i < ARRAY_SIZE(wm8580->supplies); i++)
-+		wm8580->supplies[i].supply = wm8580_supply_names[i];
-+
-+	ret = regulator_bulk_get(codec->dev, ARRAY_SIZE(wm8580->supplies),
-+				 wm8580->supplies);
-+	if (ret != 0) {
-+		dev_err(codec->dev, "Failed to request supplies: %d\n", ret);
-+		goto err;
-+	}
-+
-+	ret = regulator_bulk_enable(ARRAY_SIZE(wm8580->supplies),
-+				    wm8580->supplies);
-+	if (ret != 0) {
-+		dev_err(codec->dev, "Failed to enable supplies: %d\n", ret);
-+		goto err_regulator_get;
-+	}
-+
- 	/* Get the codec into a known state */
--	ret = wm8580_write(codec, WM8580_RESET, 0);
-+	ret = snd_soc_write(codec, WM8580_RESET, 0);
- 	if (ret != 0) {
- 		dev_err(codec->dev, "Failed to reset codec: %d\n", ret);
--		goto err;
-+		goto err_regulator_enable;
- 	}
- 
- 	for (i = 0; i < ARRAY_SIZE(wm8580_dai); i++)
-@@ -939,7 +900,7 @@
- 	ret = snd_soc_register_codec(codec);
- 	if (ret != 0) {
- 		dev_err(codec->dev, "Failed to register codec: %d\n", ret);
--		goto err;
-+		goto err_regulator_enable;
- 	}
- 
- 	ret = snd_soc_register_dais(wm8580_dai, ARRAY_SIZE(wm8580_dai));
-@@ -952,6 +913,10 @@
- 
- err_codec:
- 	snd_soc_unregister_codec(codec);
-+err_regulator_enable:
-+	regulator_bulk_disable(ARRAY_SIZE(wm8580->supplies), wm8580->supplies);
-+err_regulator_get:
-+	regulator_bulk_free(ARRAY_SIZE(wm8580->supplies), wm8580->supplies);
- err:
- 	kfree(wm8580);
- 	return ret;
-@@ -962,6 +927,8 @@
- 	wm8580_set_bias_level(&wm8580->codec, SND_SOC_BIAS_OFF);
- 	snd_soc_unregister_dais(wm8580_dai, ARRAY_SIZE(wm8580_dai));
- 	snd_soc_unregister_codec(&wm8580->codec);
-+	regulator_bulk_disable(ARRAY_SIZE(wm8580->supplies), wm8580->supplies);
-+	regulator_bulk_free(ARRAY_SIZE(wm8580->supplies), wm8580->supplies);
- 	kfree(wm8580);
- 	wm8580_codec = NULL;
- }
-@@ -978,14 +945,13 @@
- 		return -ENOMEM;
- 
- 	codec = &wm8580->codec;
--	codec->hw_write = (hw_write_t)i2c_master_send;
- 
- 	i2c_set_clientdata(i2c, wm8580);
- 	codec->control_data = i2c;
- 
- 	codec->dev = &i2c->dev;
- 
--	return wm8580_register(wm8580);
-+	return wm8580_register(wm8580, SND_SOC_I2C);
- }
- 
- static int wm8580_i2c_remove(struct i2c_client *client)
-@@ -995,6 +961,21 @@
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8580_i2c_suspend(struct i2c_client *client, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&client->dev);
-+}
-+
-+static int wm8580_i2c_resume(struct i2c_client *client)
-+{
-+	return snd_soc_resume_device(&client->dev);
-+}
-+#else
-+#define wm8580_i2c_suspend NULL
-+#define wm8580_i2c_resume NULL
-+#endif
-+
- static const struct i2c_device_id wm8580_i2c_id[] = {
- 	{ "wm8580", 0 },
- 	{ }
-@@ -1008,6 +989,8 @@
- 	},
- 	.probe =    wm8580_i2c_probe,
- 	.remove =   wm8580_i2c_remove,
-+	.suspend =  wm8580_i2c_suspend,
-+	.resume =   wm8580_i2c_resume,
- 	.id_table = wm8580_i2c_id,
- };
- #endif
-Index: linux-2.6.30/sound/soc/codecs/wm8728.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8728.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8728.c	2011-02-01 16:40:30.185047492 +0100
-@@ -43,45 +43,6 @@
- 	0x100,
- };
- 
--static inline unsigned int wm8728_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	BUG_ON(reg >= ARRAY_SIZE(wm8728_reg_defaults));
--	return cache[reg];
--}
--
--static inline void wm8728_write_reg_cache(struct snd_soc_codec *codec,
--	u16 reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--	BUG_ON(reg >= ARRAY_SIZE(wm8728_reg_defaults));
--	cache[reg] = value;
--}
--
--/*
-- * write to the WM8728 register space
-- */
--static int wm8728_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[2];
--
--	/* data is
--	 *   D15..D9 WM8728 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
--	data[1] = value & 0x00ff;
--
--	wm8728_write_reg_cache(codec, reg, value);
--
--	if (codec->hw_write(codec->control_data, data, 2) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
- static const DECLARE_TLV_DB_SCALE(wm8728_tlv, -12750, 50, 1);
- 
- static const struct snd_kcontrol_new wm8728_snd_controls[] = {
-@@ -121,12 +82,12 @@
- static int wm8728_mute(struct snd_soc_dai *dai, int mute)
- {
- 	struct snd_soc_codec *codec = dai->codec;
--	u16 mute_reg = wm8728_read_reg_cache(codec, WM8728_DACCTL);
-+	u16 mute_reg = snd_soc_read(codec, WM8728_DACCTL);
- 
- 	if (mute)
--		wm8728_write(codec, WM8728_DACCTL, mute_reg | 1);
-+		snd_soc_write(codec, WM8728_DACCTL, mute_reg | 1);
- 	else
--		wm8728_write(codec, WM8728_DACCTL, mute_reg & ~1);
-+		snd_soc_write(codec, WM8728_DACCTL, mute_reg & ~1);
- 
- 	return 0;
- }
-@@ -138,7 +99,7 @@
- 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
--	u16 dac = wm8728_read_reg_cache(codec, WM8728_DACCTL);
-+	u16 dac = snd_soc_read(codec, WM8728_DACCTL);
- 
- 	dac &= ~0x18;
- 
-@@ -155,7 +116,7 @@
- 		return -EINVAL;
- 	}
- 
--	wm8728_write(codec, WM8728_DACCTL, dac);
-+	snd_soc_write(codec, WM8728_DACCTL, dac);
- 
- 	return 0;
- }
-@@ -164,7 +125,7 @@
- 		unsigned int fmt)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
--	u16 iface = wm8728_read_reg_cache(codec, WM8728_IFCTL);
-+	u16 iface = snd_soc_read(codec, WM8728_IFCTL);
- 
- 	/* Currently only I2S is supported by the driver, though the
- 	 * hardware is more flexible.
-@@ -204,7 +165,7 @@
- 		return -EINVAL;
- 	}
- 
--	wm8728_write(codec, WM8728_IFCTL, iface);
-+	snd_soc_write(codec, WM8728_IFCTL, iface);
- 	return 0;
- }
- 
-@@ -220,19 +181,19 @@
- 	case SND_SOC_BIAS_STANDBY:
- 		if (codec->bias_level == SND_SOC_BIAS_OFF) {
- 			/* Power everything up... */
--			reg = wm8728_read_reg_cache(codec, WM8728_DACCTL);
--			wm8728_write(codec, WM8728_DACCTL, reg & ~0x4);
-+			reg = snd_soc_read(codec, WM8728_DACCTL);
-+			snd_soc_write(codec, WM8728_DACCTL, reg & ~0x4);
- 
- 			/* ..then sync in the register cache. */
- 			for (i = 0; i < ARRAY_SIZE(wm8728_reg_defaults); i++)
--				wm8728_write(codec, i,
--					     wm8728_read_reg_cache(codec, i));
-+				snd_soc_write(codec, i,
-+					     snd_soc_read(codec, i));
- 		}
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
--		reg = wm8728_read_reg_cache(codec, WM8728_DACCTL);
--		wm8728_write(codec, WM8728_DACCTL, reg | 0x4);
-+		reg = snd_soc_read(codec, WM8728_DACCTL);
-+		snd_soc_write(codec, WM8728_DACCTL, reg | 0x4);
- 		break;
- 	}
- 	codec->bias_level = level;
-@@ -287,15 +248,14 @@
-  * initialise the WM8728 driver
-  * register the mixer and dsp interfaces with the kernel
-  */
--static int wm8728_init(struct snd_soc_device *socdev)
-+static int wm8728_init(struct snd_soc_device *socdev,
-+		       enum snd_soc_control_type control)
- {
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	int ret = 0;
- 
- 	codec->name = "WM8728";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8728_read_reg_cache;
--	codec->write = wm8728_write;
- 	codec->set_bias_level = wm8728_set_bias_level;
- 	codec->dai = &wm8728_dai;
- 	codec->num_dai = 1;
-@@ -307,11 +267,18 @@
- 	if (codec->reg_cache == NULL)
- 		return -ENOMEM;
- 
-+	ret = snd_soc_codec_set_cache_io(codec, 7, 9, control);
-+	if (ret < 0) {
-+		printk(KERN_ERR "wm8728: failed to configure cache I/O: %d\n",
-+		       ret);
-+		goto err;
-+	}
-+
- 	/* register pcms */
- 	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
- 	if (ret < 0) {
- 		printk(KERN_ERR "wm8728: failed to create pcms\n");
--		goto pcm_err;
-+		goto err;
- 	}
- 
- 	/* power on device */
-@@ -331,7 +298,7 @@
- card_err:
- 	snd_soc_free_pcms(socdev);
- 	snd_soc_dapm_free(socdev);
--pcm_err:
-+err:
- 	kfree(codec->reg_cache);
- 	return ret;
- }
-@@ -357,7 +324,7 @@
- 	i2c_set_clientdata(i2c, codec);
- 	codec->control_data = i2c;
- 
--	ret = wm8728_init(socdev);
-+	ret = wm8728_init(socdev, SND_SOC_I2C);
- 	if (ret < 0)
- 		pr_err("failed to initialise WM8728\n");
- 
-@@ -437,7 +404,7 @@
- 
- 	codec->control_data = spi;
- 
--	ret = wm8728_init(socdev);
-+	ret = wm8728_init(socdev, SND_SOC_SPI);
- 	if (ret < 0)
- 		dev_err(&spi->dev, "failed to initialise WM8728\n");
- 
-@@ -458,30 +425,6 @@
- 	.probe		= wm8728_spi_probe,
- 	.remove		= __devexit_p(wm8728_spi_remove),
- };
--
--static int wm8728_spi_write(struct spi_device *spi, const char *data, int len)
--{
--	struct spi_transfer t;
--	struct spi_message m;
--	u8 msg[2];
--
--	if (len <= 0)
--		return 0;
--
--	msg[0] = data[0];
--	msg[1] = data[1];
--
--	spi_message_init(&m);
--	memset(&t, 0, (sizeof t));
--
--	t.tx_buf = &msg[0];
--	t.len = len;
--
--	spi_message_add_tail(&t, &m);
--	spi_sync(spi, &m);
--
--	return len;
--}
- #endif /* CONFIG_SPI_MASTER */
- 
- static int wm8728_probe(struct platform_device *pdev)
-@@ -506,13 +449,11 @@
- 
- #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
- 	if (setup->i2c_address) {
--		codec->hw_write = (hw_write_t)i2c_master_send;
- 		ret = wm8728_add_i2c_device(pdev, setup);
- 	}
- #endif
- #if defined(CONFIG_SPI_MASTER)
- 	if (setup->spi) {
--		codec->hw_write = (hw_write_t)wm8728_spi_write;
- 		ret = spi_register_driver(&wm8728_spi_driver);
- 		if (ret != 0)
- 			printk(KERN_ERR "can't add spi driver");
-Index: linux-2.6.30/sound/soc/codecs/wm8731.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8731.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8731.c	2011-02-01 16:40:30.185047492 +0100
-@@ -26,6 +26,7 @@
- #include <sound/soc.h>
- #include <sound/soc-dapm.h>
- #include <sound/initval.h>
-+#include <sound/tlv.h>
- 
- #include "wm8731.h"
- 
-@@ -39,9 +40,6 @@
- 	unsigned int sysclk;
- };
- 
--#ifdef CONFIG_SPI_MASTER
--static int wm8731_spi_write(struct spi_device *spi, const char *data, int len);
--#endif
- 
- /*
-  * wm8731 register cache
-@@ -50,60 +48,12 @@
-  * There is no point in caching the reset register
-  */
- static const u16 wm8731_reg[WM8731_CACHEREGNUM] = {
--    0x0097, 0x0097, 0x0079, 0x0079,
--    0x000a, 0x0008, 0x009f, 0x000a,
--    0x0000, 0x0000
-+	0x0097, 0x0097, 0x0079, 0x0079,
-+	0x000a, 0x0008, 0x009f, 0x000a,
-+	0x0000, 0x0000
- };
- 
--/*
-- * read wm8731 register cache
-- */
--static inline unsigned int wm8731_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg == WM8731_RESET)
--		return 0;
--	if (reg >= WM8731_CACHEREGNUM)
--		return -1;
--	return cache[reg];
--}
--
--/*
-- * write wm8731 register cache
-- */
--static inline void wm8731_write_reg_cache(struct snd_soc_codec *codec,
--	u16 reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg >= WM8731_CACHEREGNUM)
--		return;
--	cache[reg] = value;
--}
--
--/*
-- * write to the WM8731 register space
-- */
--static int wm8731_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[2];
--
--	/* data is
--	 *   D15..D9 WM8731 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
--	data[1] = value & 0x00ff;
--
--	wm8731_write_reg_cache(codec, reg, value);
--	if (codec->hw_write(codec->control_data, data, 2) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
--#define wm8731_reset(c)	wm8731_write(c, WM8731_RESET, 0)
-+#define wm8731_reset(c)	snd_soc_write(c, WM8731_RESET, 0)
- 
- static const char *wm8731_input_select[] = {"Line In", "Mic"};
- static const char *wm8731_deemph[] = {"None", "32Khz", "44.1Khz", "48Khz"};
-@@ -113,20 +63,26 @@
- 	SOC_ENUM_SINGLE(WM8731_APDIGI, 1, 4, wm8731_deemph),
- };
- 
-+static const DECLARE_TLV_DB_SCALE(in_tlv, -3450, 150, 0);
-+static const DECLARE_TLV_DB_SCALE(sidetone_tlv, -1500, 300, 0);
-+static const DECLARE_TLV_DB_SCALE(out_tlv, -12100, 100, 1);
-+
- static const struct snd_kcontrol_new wm8731_snd_controls[] = {
- 
--SOC_DOUBLE_R("Master Playback Volume", WM8731_LOUT1V, WM8731_ROUT1V,
--	0, 127, 0),
-+SOC_DOUBLE_R_TLV("Master Playback Volume", WM8731_LOUT1V, WM8731_ROUT1V,
-+		 0, 127, 0, out_tlv),
- SOC_DOUBLE_R("Master Playback ZC Switch", WM8731_LOUT1V, WM8731_ROUT1V,
- 	7, 1, 0),
- 
--SOC_DOUBLE_R("Capture Volume", WM8731_LINVOL, WM8731_RINVOL, 0, 31, 0),
-+SOC_DOUBLE_R_TLV("Capture Volume", WM8731_LINVOL, WM8731_RINVOL, 0, 31, 0,
-+		 in_tlv),
- SOC_DOUBLE_R("Line Capture Switch", WM8731_LINVOL, WM8731_RINVOL, 7, 1, 1),
- 
- SOC_SINGLE("Mic Boost (+20dB)", WM8731_APANA, 0, 1, 0),
--SOC_SINGLE("Capture Mic Switch", WM8731_APANA, 1, 1, 1),
-+SOC_SINGLE("Mic Capture Switch", WM8731_APANA, 1, 1, 1),
- 
--SOC_SINGLE("Sidetone Playback Volume", WM8731_APANA, 6, 3, 1),
-+SOC_SINGLE_TLV("Sidetone Playback Volume", WM8731_APANA, 6, 3, 1,
-+	       sidetone_tlv),
- 
- SOC_SINGLE("ADC High Pass Filter Switch", WM8731_APDIGI, 0, 1, 1),
- SOC_SINGLE("Store DC Offset Switch", WM8731_APDIGI, 4, 1, 0),
-@@ -260,12 +216,12 @@
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	struct wm8731_priv *wm8731 = codec->private_data;
--	u16 iface = wm8731_read_reg_cache(codec, WM8731_IFACE) & 0xfff3;
-+	u16 iface = snd_soc_read(codec, WM8731_IFACE) & 0xfff3;
- 	int i = get_coeff(wm8731->sysclk, params_rate(params));
- 	u16 srate = (coeff_div[i].sr << 2) |
- 		(coeff_div[i].bosr << 1) | coeff_div[i].usb;
- 
--	wm8731_write(codec, WM8731_SRATE, srate);
-+	snd_soc_write(codec, WM8731_SRATE, srate);
- 
- 	/* bit size */
- 	switch (params_format(params)) {
-@@ -279,7 +235,7 @@
- 		break;
- 	}
- 
--	wm8731_write(codec, WM8731_IFACE, iface);
-+	snd_soc_write(codec, WM8731_IFACE, iface);
- 	return 0;
- }
- 
-@@ -291,7 +247,7 @@
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 
- 	/* set active */
--	wm8731_write(codec, WM8731_ACTIVE, 0x0001);
-+	snd_soc_write(codec, WM8731_ACTIVE, 0x0001);
- 
- 	return 0;
- }
-@@ -306,19 +262,19 @@
- 	/* deactivate */
- 	if (!codec->active) {
- 		udelay(50);
--		wm8731_write(codec, WM8731_ACTIVE, 0x0);
-+		snd_soc_write(codec, WM8731_ACTIVE, 0x0);
- 	}
- }
- 
- static int wm8731_mute(struct snd_soc_dai *dai, int mute)
- {
- 	struct snd_soc_codec *codec = dai->codec;
--	u16 mute_reg = wm8731_read_reg_cache(codec, WM8731_APDIGI) & 0xfff7;
-+	u16 mute_reg = snd_soc_read(codec, WM8731_APDIGI) & 0xfff7;
- 
- 	if (mute)
--		wm8731_write(codec, WM8731_APDIGI, mute_reg | 0x8);
-+		snd_soc_write(codec, WM8731_APDIGI, mute_reg | 0x8);
- 	else
--		wm8731_write(codec, WM8731_APDIGI, mute_reg);
-+		snd_soc_write(codec, WM8731_APDIGI, mute_reg);
- 	return 0;
- }
- 
-@@ -396,7 +352,7 @@
- 	}
- 
- 	/* set iface */
--	wm8731_write(codec, WM8731_IFACE, iface);
-+	snd_soc_write(codec, WM8731_IFACE, iface);
- 	return 0;
- }
- 
-@@ -412,12 +368,12 @@
- 		break;
- 	case SND_SOC_BIAS_STANDBY:
- 		/* Clear PWROFF, gate CLKOUT, everything else as-is */
--		reg = wm8731_read_reg_cache(codec, WM8731_PWR) & 0xff7f;
--		wm8731_write(codec, WM8731_PWR, reg | 0x0040);
-+		reg = snd_soc_read(codec, WM8731_PWR) & 0xff7f;
-+		snd_soc_write(codec, WM8731_PWR, reg | 0x0040);
- 		break;
- 	case SND_SOC_BIAS_OFF:
--		wm8731_write(codec, WM8731_ACTIVE, 0x0);
--		wm8731_write(codec, WM8731_PWR, 0xffff);
-+		snd_soc_write(codec, WM8731_ACTIVE, 0x0);
-+		snd_soc_write(codec, WM8731_PWR, 0xffff);
- 		break;
- 	}
- 	codec->bias_level = level;
-@@ -457,15 +413,17 @@
- 		.rates = WM8731_RATES,
- 		.formats = WM8731_FORMATS,},
- 	.ops = &wm8731_dai_ops,
-+	.symmetric_rates = 1,
- };
- EXPORT_SYMBOL_GPL(wm8731_dai);
- 
-+#ifdef CONFIG_PM
- static int wm8731_suspend(struct platform_device *pdev, pm_message_t state)
- {
- 	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 
--	wm8731_write(codec, WM8731_ACTIVE, 0x0);
-+	snd_soc_write(codec, WM8731_ACTIVE, 0x0);
- 	wm8731_set_bias_level(codec, SND_SOC_BIAS_OFF);
- 	return 0;
- }
-@@ -488,6 +446,10 @@
- 	wm8731_set_bias_level(codec, codec->suspend_bias_level);
- 	return 0;
- }
-+#else
-+#define wm8731_suspend NULL
-+#define wm8731_resume NULL
-+#endif
- 
- static int wm8731_probe(struct platform_device *pdev)
- {
-@@ -547,15 +509,16 @@
- };
- EXPORT_SYMBOL_GPL(soc_codec_dev_wm8731);
- 
--static int wm8731_register(struct wm8731_priv *wm8731)
-+static int wm8731_register(struct wm8731_priv *wm8731,
-+			   enum snd_soc_control_type control)
- {
- 	int ret;
- 	struct snd_soc_codec *codec = &wm8731->codec;
--	u16 reg;
- 
- 	if (wm8731_codec) {
- 		dev_err(codec->dev, "Another WM8731 is registered\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto err;
- 	}
- 
- 	mutex_init(&codec->mutex);
-@@ -565,8 +528,6 @@
- 	codec->private_data = wm8731;
- 	codec->name = "WM8731";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8731_read_reg_cache;
--	codec->write = wm8731_write;
- 	codec->bias_level = SND_SOC_BIAS_OFF;
- 	codec->set_bias_level = wm8731_set_bias_level;
- 	codec->dai = &wm8731_dai;
-@@ -576,10 +537,16 @@
- 
- 	memcpy(codec->reg_cache, wm8731_reg, sizeof(wm8731_reg));
- 
-+	ret = snd_soc_codec_set_cache_io(codec, 7, 9, control);
-+	if (ret < 0) {
-+		dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
-+		goto err;
-+	}
-+
- 	ret = wm8731_reset(codec);
- 	if (ret < 0) {
--		dev_err(codec->dev, "Failed to issue reset\n");
--		return ret;
-+		dev_err(codec->dev, "Failed to issue reset: %d\n", ret);
-+		goto err;
- 	}
- 
- 	wm8731_dai.dev = codec->dev;
-@@ -587,35 +554,36 @@
- 	wm8731_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 
- 	/* Latch the update bits */
--	reg = wm8731_read_reg_cache(codec, WM8731_LOUT1V);
--	wm8731_write(codec, WM8731_LOUT1V, reg & ~0x0100);
--	reg = wm8731_read_reg_cache(codec, WM8731_ROUT1V);
--	wm8731_write(codec, WM8731_ROUT1V, reg & ~0x0100);
--	reg = wm8731_read_reg_cache(codec, WM8731_LINVOL);
--	wm8731_write(codec, WM8731_LINVOL, reg & ~0x0100);
--	reg = wm8731_read_reg_cache(codec, WM8731_RINVOL);
--	wm8731_write(codec, WM8731_RINVOL, reg & ~0x0100);
-+	snd_soc_update_bits(codec, WM8731_LOUT1V, 0x100, 0);
-+	snd_soc_update_bits(codec, WM8731_ROUT1V, 0x100, 0);
-+	snd_soc_update_bits(codec, WM8731_LINVOL, 0x100, 0);
-+	snd_soc_update_bits(codec, WM8731_RINVOL, 0x100, 0);
- 
- 	/* Disable bypass path by default */
--	reg = wm8731_read_reg_cache(codec, WM8731_APANA);
--	wm8731_write(codec, WM8731_APANA, reg & ~0x4);
-+	snd_soc_update_bits(codec, WM8731_APANA, 0x4, 0);
- 
- 	wm8731_codec = codec;
- 
- 	ret = snd_soc_register_codec(codec);
- 	if (ret != 0) {
- 		dev_err(codec->dev, "Failed to register codec: %d\n", ret);
--		return ret;
-+		goto err;
- 	}
- 
- 	ret = snd_soc_register_dai(&wm8731_dai);
- 	if (ret != 0) {
- 		dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
- 		snd_soc_unregister_codec(codec);
--		return ret;
-+		goto err_codec;
- 	}
- 
- 	return 0;
-+
-+err_codec:
-+	snd_soc_unregister_codec(codec);
-+err:
-+	kfree(wm8731);
-+	return ret;
- }
- 
- static void wm8731_unregister(struct wm8731_priv *wm8731)
-@@ -628,30 +596,6 @@
- }
- 
- #if defined(CONFIG_SPI_MASTER)
--static int wm8731_spi_write(struct spi_device *spi, const char *data, int len)
--{
--	struct spi_transfer t;
--	struct spi_message m;
--	u8 msg[2];
--
--	if (len <= 0)
--		return 0;
--
--	msg[0] = data[0];
--	msg[1] = data[1];
--
--	spi_message_init(&m);
--	memset(&t, 0, (sizeof t));
--
--	t.tx_buf = &msg[0];
--	t.len = len;
--
--	spi_message_add_tail(&t, &m);
--	spi_sync(spi, &m);
--
--	return len;
--}
--
- static int __devinit wm8731_spi_probe(struct spi_device *spi)
- {
- 	struct snd_soc_codec *codec;
-@@ -663,23 +607,37 @@
- 
- 	codec = &wm8731->codec;
- 	codec->control_data = spi;
--	codec->hw_write = (hw_write_t)wm8731_spi_write;
- 	codec->dev = &spi->dev;
- 
--	spi->dev.driver_data = wm8731;
-+	dev_set_drvdata(&spi->dev, wm8731);
- 
--	return wm8731_register(wm8731);
-+	return wm8731_register(wm8731, SND_SOC_SPI);
- }
- 
- static int __devexit wm8731_spi_remove(struct spi_device *spi)
- {
--	struct wm8731_priv *wm8731 = spi->dev.driver_data;
-+	struct wm8731_priv *wm8731 = dev_get_drvdata(&spi->dev);
- 
- 	wm8731_unregister(wm8731);
- 
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8731_spi_suspend(struct spi_device *spi, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&spi->dev);
-+}
-+
-+static int wm8731_spi_resume(struct spi_device *spi)
-+{
-+	return snd_soc_resume_device(&spi->dev);
-+}
-+#else
-+#define wm8731_spi_suspend NULL
-+#define wm8731_spi_resume NULL
-+#endif
-+
- static struct spi_driver wm8731_spi_driver = {
- 	.driver = {
- 		.name	= "wm8731",
-@@ -687,6 +645,8 @@
- 		.owner	= THIS_MODULE,
- 	},
- 	.probe		= wm8731_spi_probe,
-+	.suspend	= wm8731_spi_suspend,
-+	.resume		= wm8731_spi_resume,
- 	.remove		= __devexit_p(wm8731_spi_remove),
- };
- #endif /* CONFIG_SPI_MASTER */
-@@ -703,14 +663,13 @@
- 		return -ENOMEM;
- 
- 	codec = &wm8731->codec;
--	codec->hw_write = (hw_write_t)i2c_master_send;
- 
- 	i2c_set_clientdata(i2c, wm8731);
- 	codec->control_data = i2c;
- 
- 	codec->dev = &i2c->dev;
- 
--	return wm8731_register(wm8731);
-+	return wm8731_register(wm8731, SND_SOC_I2C);
- }
- 
- static __devexit int wm8731_i2c_remove(struct i2c_client *client)
-@@ -720,6 +679,21 @@
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8731_i2c_suspend(struct i2c_client *i2c, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&i2c->dev);
-+}
-+
-+static int wm8731_i2c_resume(struct i2c_client *i2c)
-+{
-+	return snd_soc_resume_device(&i2c->dev);
-+}
-+#else
-+#define wm8731_i2c_suspend NULL
-+#define wm8731_i2c_resume NULL
-+#endif
-+
- static const struct i2c_device_id wm8731_i2c_id[] = {
- 	{ "wm8731", 0 },
- 	{ }
-@@ -733,6 +707,8 @@
- 	},
- 	.probe =    wm8731_i2c_probe,
- 	.remove =   __devexit_p(wm8731_i2c_remove),
-+	.suspend =  wm8731_i2c_suspend,
-+	.resume =   wm8731_i2c_resume,
- 	.id_table = wm8731_i2c_id,
- };
- #endif
-Index: linux-2.6.30/sound/soc/codecs/wm8750.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8750.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8750.c	2011-02-01 16:40:30.189047317 +0100
-@@ -55,50 +55,7 @@
- 	0x0079, 0x0079, 0x0079,          /* 40 */
- };
- 
--/*
-- * read wm8750 register cache
-- */
--static inline unsigned int wm8750_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg > WM8750_CACHE_REGNUM)
--		return -1;
--	return cache[reg];
--}
--
--/*
-- * write wm8750 register cache
-- */
--static inline void wm8750_write_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg > WM8750_CACHE_REGNUM)
--		return;
--	cache[reg] = value;
--}
--
--static int wm8750_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[2];
--
--	/* data is
--	 *   D15..D9 WM8753 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
--	data[1] = value & 0x00ff;
--
--	wm8750_write_reg_cache(codec, reg, value);
--	if (codec->hw_write(codec->control_data, data, 2) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
--#define wm8750_reset(c)	wm8750_write(c, WM8750_RESET, 0)
-+#define wm8750_reset(c)	snd_soc_write(c, WM8750_RESET, 0)
- 
- /*
-  * WM8750 Controls
-@@ -594,7 +551,7 @@
- 		return -EINVAL;
- 	}
- 
--	wm8750_write(codec, WM8750_IFACE, iface);
-+	snd_soc_write(codec, WM8750_IFACE, iface);
- 	return 0;
- }
- 
-@@ -606,8 +563,8 @@
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	struct wm8750_priv *wm8750 = codec->private_data;
--	u16 iface = wm8750_read_reg_cache(codec, WM8750_IFACE) & 0x1f3;
--	u16 srate = wm8750_read_reg_cache(codec, WM8750_SRATE) & 0x1c0;
-+	u16 iface = snd_soc_read(codec, WM8750_IFACE) & 0x1f3;
-+	u16 srate = snd_soc_read(codec, WM8750_SRATE) & 0x1c0;
- 	int coeff = get_coeff(wm8750->sysclk, params_rate(params));
- 
- 	/* bit size */
-@@ -626,9 +583,9 @@
- 	}
- 
- 	/* set iface & srate */
--	wm8750_write(codec, WM8750_IFACE, iface);
-+	snd_soc_write(codec, WM8750_IFACE, iface);
- 	if (coeff >= 0)
--		wm8750_write(codec, WM8750_SRATE, srate |
-+		snd_soc_write(codec, WM8750_SRATE, srate |
- 			(coeff_div[coeff].sr << 1) | coeff_div[coeff].usb);
- 
- 	return 0;
-@@ -637,35 +594,35 @@
- static int wm8750_mute(struct snd_soc_dai *dai, int mute)
- {
- 	struct snd_soc_codec *codec = dai->codec;
--	u16 mute_reg = wm8750_read_reg_cache(codec, WM8750_ADCDAC) & 0xfff7;
-+	u16 mute_reg = snd_soc_read(codec, WM8750_ADCDAC) & 0xfff7;
- 
- 	if (mute)
--		wm8750_write(codec, WM8750_ADCDAC, mute_reg | 0x8);
-+		snd_soc_write(codec, WM8750_ADCDAC, mute_reg | 0x8);
- 	else
--		wm8750_write(codec, WM8750_ADCDAC, mute_reg);
-+		snd_soc_write(codec, WM8750_ADCDAC, mute_reg);
- 	return 0;
- }
- 
- static int wm8750_set_bias_level(struct snd_soc_codec *codec,
- 				 enum snd_soc_bias_level level)
- {
--	u16 pwr_reg = wm8750_read_reg_cache(codec, WM8750_PWR1) & 0xfe3e;
-+	u16 pwr_reg = snd_soc_read(codec, WM8750_PWR1) & 0xfe3e;
- 
- 	switch (level) {
- 	case SND_SOC_BIAS_ON:
- 		/* set vmid to 50k and unmute dac */
--		wm8750_write(codec, WM8750_PWR1, pwr_reg | 0x00c0);
-+		snd_soc_write(codec, WM8750_PWR1, pwr_reg | 0x00c0);
- 		break;
- 	case SND_SOC_BIAS_PREPARE:
- 		/* set vmid to 5k for quick power up */
--		wm8750_write(codec, WM8750_PWR1, pwr_reg | 0x01c1);
-+		snd_soc_write(codec, WM8750_PWR1, pwr_reg | 0x01c1);
- 		break;
- 	case SND_SOC_BIAS_STANDBY:
- 		/* mute dac and set vmid to 500k, enable VREF */
--		wm8750_write(codec, WM8750_PWR1, pwr_reg | 0x0141);
-+		snd_soc_write(codec, WM8750_PWR1, pwr_reg | 0x0141);
- 		break;
- 	case SND_SOC_BIAS_OFF:
--		wm8750_write(codec, WM8750_PWR1, 0x0001);
-+		snd_soc_write(codec, WM8750_PWR1, 0x0001);
- 		break;
- 	}
- 	codec->bias_level = level;
-@@ -754,15 +711,14 @@
-  * initialise the WM8750 driver
-  * register the mixer and dsp interfaces with the kernel
-  */
--static int wm8750_init(struct snd_soc_device *socdev)
-+static int wm8750_init(struct snd_soc_device *socdev,
-+		       enum snd_soc_control_type control)
- {
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	int reg, ret = 0;
- 
- 	codec->name = "WM8750";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8750_read_reg_cache;
--	codec->write = wm8750_write;
- 	codec->set_bias_level = wm8750_set_bias_level;
- 	codec->dai = &wm8750_dai;
- 	codec->num_dai = 1;
-@@ -771,13 +727,23 @@
- 	if (codec->reg_cache == NULL)
- 		return -ENOMEM;
- 
--	wm8750_reset(codec);
-+	ret = snd_soc_codec_set_cache_io(codec, 7, 9, control);
-+	if (ret < 0) {
-+		printk(KERN_ERR "wm8750: failed to set cache I/O: %d\n", ret);
-+		goto err;
-+	}
-+
-+	ret = wm8750_reset(codec);
-+	if (ret < 0) {
-+		printk(KERN_ERR "wm8750: failed to reset: %d\n", ret);
-+		goto err;
-+	}
- 
- 	/* register pcms */
- 	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
- 	if (ret < 0) {
- 		printk(KERN_ERR "wm8750: failed to create pcms\n");
--		goto pcm_err;
-+		goto err;
- 	}
- 
- 	/* charge output caps */
-@@ -786,22 +752,22 @@
- 	schedule_delayed_work(&codec->delayed_work, msecs_to_jiffies(1000));
- 
- 	/* set the update bits */
--	reg = wm8750_read_reg_cache(codec, WM8750_LDAC);
--	wm8750_write(codec, WM8750_LDAC, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_RDAC);
--	wm8750_write(codec, WM8750_RDAC, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_LOUT1V);
--	wm8750_write(codec, WM8750_LOUT1V, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_ROUT1V);
--	wm8750_write(codec, WM8750_ROUT1V, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_LOUT2V);
--	wm8750_write(codec, WM8750_LOUT2V, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_ROUT2V);
--	wm8750_write(codec, WM8750_ROUT2V, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_LINVOL);
--	wm8750_write(codec, WM8750_LINVOL, reg | 0x0100);
--	reg = wm8750_read_reg_cache(codec, WM8750_RINVOL);
--	wm8750_write(codec, WM8750_RINVOL, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_LDAC);
-+	snd_soc_write(codec, WM8750_LDAC, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_RDAC);
-+	snd_soc_write(codec, WM8750_RDAC, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_LOUT1V);
-+	snd_soc_write(codec, WM8750_LOUT1V, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_ROUT1V);
-+	snd_soc_write(codec, WM8750_ROUT1V, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_LOUT2V);
-+	snd_soc_write(codec, WM8750_LOUT2V, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_ROUT2V);
-+	snd_soc_write(codec, WM8750_ROUT2V, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_LINVOL);
-+	snd_soc_write(codec, WM8750_LINVOL, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8750_RINVOL);
-+	snd_soc_write(codec, WM8750_RINVOL, reg | 0x0100);
- 
- 	snd_soc_add_controls(codec, wm8750_snd_controls,
- 				ARRAY_SIZE(wm8750_snd_controls));
-@@ -816,7 +782,7 @@
- card_err:
- 	snd_soc_free_pcms(socdev);
- 	snd_soc_dapm_free(socdev);
--pcm_err:
-+err:
- 	kfree(codec->reg_cache);
- 	return ret;
- }
-@@ -844,7 +810,7 @@
- 	i2c_set_clientdata(i2c, codec);
- 	codec->control_data = i2c;
- 
--	ret = wm8750_init(socdev);
-+	ret = wm8750_init(socdev, SND_SOC_I2C);
- 	if (ret < 0)
- 		pr_err("failed to initialise WM8750\n");
- 
-@@ -924,7 +890,7 @@
- 
- 	codec->control_data = spi;
- 
--	ret = wm8750_init(socdev);
-+	ret = wm8750_init(socdev, SND_SOC_SPI);
- 	if (ret < 0)
- 		dev_err(&spi->dev, "failed to initialise WM8750\n");
- 
-@@ -945,30 +911,6 @@
- 	.probe		= wm8750_spi_probe,
- 	.remove		= __devexit_p(wm8750_spi_remove),
- };
--
--static int wm8750_spi_write(struct spi_device *spi, const char *data, int len)
--{
--	struct spi_transfer t;
--	struct spi_message m;
--	u8 msg[2];
--
--	if (len <= 0)
--		return 0;
--
--	msg[0] = data[0];
--	msg[1] = data[1];
--
--	spi_message_init(&m);
--	memset(&t, 0, (sizeof t));
--
--	t.tx_buf = &msg[0];
--	t.len = len;
--
--	spi_message_add_tail(&t, &m);
--	spi_sync(spi, &m);
--
--	return len;
--}
- #endif
- 
- static int wm8750_probe(struct platform_device *pdev)
-@@ -1002,13 +944,11 @@
- 
- #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
- 	if (setup->i2c_address) {
--		codec->hw_write = (hw_write_t)i2c_master_send;
- 		ret = wm8750_add_i2c_device(pdev, setup);
- 	}
- #endif
- #if defined(CONFIG_SPI_MASTER)
- 	if (setup->spi) {
--		codec->hw_write = (hw_write_t)wm8750_spi_write;
- 		ret = spi_register_driver(&wm8750_spi_driver);
- 		if (ret != 0)
- 			printk(KERN_ERR "can't add spi driver");
-Index: linux-2.6.30/sound/soc/codecs/wm8753.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8753.c	2011-02-01 16:39:20.000000000 +0100
-+++ linux-2.6.30/sound/soc/codecs/wm8753.c	2011-02-01 16:44:16.336265765 +0100
-@@ -79,7 +79,7 @@
- 	0x0097, 0x0097, 0x0000, 0x0004,
- 	0x0000, 0x0083, 0x0024, 0x01ba,
- 	0x0000, 0x0083, 0x0024, 0x01ba,
--	0x0000, 0x0000
-+	0x0000, 0x0000, 0x0000
- };
- 
- /* codec private data */
-@@ -595,6 +595,7 @@
- 
- 	/* Mono Capture mixer-mux */
- 	{"Capture Right Mixer", "Stereo", "Capture Right Mux"},
-+	{"Capture Left Mixer", "Stereo", "Capture Left Mux"},
- 	{"Capture Left Mixer", "Analogue Mix Left", "Capture Left Mux"},
- 	{"Capture Left Mixer", "Analogue Mix Left", "Capture Right Mux"},
- 	{"Capture Right Mixer", "Analogue Mix Right", "Capture Left Mux"},
-@@ -703,7 +704,7 @@
- 
- 	if ((Ndiv < 6) || (Ndiv > 12))
- 		printk(KERN_WARNING
--			"wm8753: unsupported N = %d\n", Ndiv);
-+			"wm8753: unsupported N = %u\n", Ndiv);
- 
- 	pll_div->n = Ndiv;
- 	Nmod = target % source;
-@@ -723,8 +724,8 @@
- 	pll_div->k = K;
- }
- 
--static int wm8753_set_dai_pll(struct snd_soc_dai *codec_dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out)
-+static int wm8753_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
-+		int source, unsigned int freq_in, unsigned int freq_out)
- {
- 	u16 reg, enable;
- 	int offset;
-@@ -1660,7 +1661,7 @@
- 	codec->set_bias_level = wm8753_set_bias_level;
- 	codec->dai = wm8753_dai;
- 	codec->num_dai = 2;
--	codec->reg_cache_size = ARRAY_SIZE(wm8753->reg_cache);
-+	codec->reg_cache_size = ARRAY_SIZE(wm8753->reg_cache) + 1;
- 	codec->reg_cache = &wm8753->reg_cache;
- 	codec->private_data = wm8753;
- 
-@@ -1766,6 +1767,21 @@
-         return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8753_i2c_suspend(struct i2c_client *client, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&client->dev);
-+}
-+
-+static int wm8753_i2c_resume(struct i2c_client *client)
-+{
-+	return snd_soc_resume_device(&client->dev);
-+}
-+#else
-+#define wm8753_i2c_suspend NULL
-+#define wm8753_i2c_resume NULL
-+#endif
-+
- static const struct i2c_device_id wm8753_i2c_id[] = {
- 	{ "wm8753", 0 },
- 	{ }
-@@ -1779,6 +1795,8 @@
- 	},
- 	.probe =    wm8753_i2c_probe,
- 	.remove =   wm8753_i2c_remove,
-+	.suspend =  wm8753_i2c_suspend,
-+	.resume =   wm8753_i2c_resume,
- 	.id_table = wm8753_i2c_id,
- };
- #endif
-@@ -1822,18 +1840,34 @@
- 	codec->hw_write = (hw_write_t)wm8753_spi_write;
- 	codec->dev = &spi->dev;
- 
--	spi->dev.driver_data = wm8753;
-+	dev_set_drvdata(&spi->dev, wm8753);
- 
- 	return wm8753_register(wm8753);
- }
- 
- static int __devexit wm8753_spi_remove(struct spi_device *spi)
- {
--	struct wm8753_priv *wm8753 = spi->dev.driver_data;
-+	struct wm8753_priv *wm8753 = dev_get_drvdata(&spi->dev);
- 	wm8753_unregister(wm8753);
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8753_spi_suspend(struct spi_device *spi, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&spi->dev);
-+}
-+
-+static int wm8753_spi_resume(struct spi_device *spi)
-+{
-+	return snd_soc_resume_device(&spi->dev);
-+}
-+
-+#else
-+#define wm8753_spi_suspend NULL
-+#define wm8753_spi_resume NULL
-+#endif
-+
- static struct spi_driver wm8753_spi_driver = {
- 	.driver = {
- 		.name	= "wm8753",
-@@ -1842,6 +1876,8 @@
- 	},
- 	.probe		= wm8753_spi_probe,
- 	.remove		= __devexit_p(wm8753_spi_remove),
-+	.suspend	= wm8753_spi_suspend,
-+	.resume		= wm8753_spi_resume,
- };
- #endif
- 
-Index: linux-2.6.30/sound/soc/codecs/wm8900.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8900.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8900.c	2011-02-01 16:40:30.189047317 +0100
-@@ -116,6 +116,7 @@
- #define WM8900_REG_CLOCKING2_DAC_CLKDIV 0x1c
- 
- #define WM8900_REG_DACCTRL_MUTE          0x004
-+#define WM8900_REG_DACCTRL_DAC_SB_FILT   0x100
- #define WM8900_REG_DACCTRL_AIF_LRCLKRATE 0x400
- 
- #define WM8900_REG_AUDIO3_ADCLRC_DIR    0x0800
-@@ -182,111 +183,20 @@
- 	/* Remaining registers all zero */
- };
- 
--/*
-- * read wm8900 register cache
-- */
--static inline unsigned int wm8900_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--
--	BUG_ON(reg >= WM8900_MAXREG);
--
--	if (reg == WM8900_REG_ID)
--		return 0;
--
--	return cache[reg];
--}
--
--/*
-- * write wm8900 register cache
-- */
--static inline void wm8900_write_reg_cache(struct snd_soc_codec *codec,
--	u16 reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--
--	BUG_ON(reg >= WM8900_MAXREG);
--
--	cache[reg] = value;
--}
--
--/*
-- * write to the WM8900 register space
-- */
--static int wm8900_write(struct snd_soc_codec *codec, unsigned int reg,
--			unsigned int value)
--{
--	u8 data[3];
--
--	if (value == wm8900_read_reg_cache(codec, reg))
--		return 0;
--
--	/* data is
--	 *   D15..D9 WM8900 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = reg;
--	data[1] = value >> 8;
--	data[2] = value & 0x00ff;
--
--	wm8900_write_reg_cache(codec, reg, value);
--	if (codec->hw_write(codec->control_data, data, 3) == 3)
--		return 0;
--	else
--		return -EIO;
--}
--
--/*
-- * Read from the wm8900.
-- */
--static unsigned int wm8900_chip_read(struct snd_soc_codec *codec, u8 reg)
--{
--	struct i2c_msg xfer[2];
--	u16 data;
--	int ret;
--	struct i2c_client *client = codec->control_data;
--
--	BUG_ON(reg != WM8900_REG_ID && reg != WM8900_REG_POWER1);
--
--	/* Write register */
--	xfer[0].addr = client->addr;
--	xfer[0].flags = 0;
--	xfer[0].len = 1;
--	xfer[0].buf = &reg;
--
--	/* Read data */
--	xfer[1].addr = client->addr;
--	xfer[1].flags = I2C_M_RD;
--	xfer[1].len = 2;
--	xfer[1].buf = (u8 *)&data;
--
--	ret = i2c_transfer(client->adapter, xfer, 2);
--	if (ret != 2) {
--		printk(KERN_CRIT "i2c_transfer returned %d\n", ret);
--		return 0;
--	}
--
--	return (data >> 8) | ((data & 0xff) << 8);
--}
--
--/*
-- * Read from the WM8900 register space.  Most registers can't be read
-- * and are therefore supplied from cache.
-- */
--static unsigned int wm8900_read(struct snd_soc_codec *codec, unsigned int reg)
-+static int wm8900_volatile_register(unsigned int reg)
- {
- 	switch (reg) {
- 	case WM8900_REG_ID:
--		return wm8900_chip_read(codec, reg);
-+	case WM8900_REG_POWER1:
-+		return 1;
- 	default:
--		return wm8900_read_reg_cache(codec, reg);
-+		return 0;
- 	}
- }
- 
- static void wm8900_reset(struct snd_soc_codec *codec)
- {
--	wm8900_write(codec, WM8900_REG_RESET, 0);
-+	snd_soc_write(codec, WM8900_REG_RESET, 0);
- 
- 	memcpy(codec->reg_cache, wm8900_reg_defaults,
- 	       sizeof(codec->reg_cache));
-@@ -296,14 +206,14 @@
- 			   struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
--	u16 hpctl1 = wm8900_read(codec, WM8900_REG_HPCTL1);
-+	u16 hpctl1 = snd_soc_read(codec, WM8900_REG_HPCTL1);
- 
- 	switch (event) {
- 	case SND_SOC_DAPM_PRE_PMU:
- 		/* Clamp headphone outputs */
- 		hpctl1 = WM8900_REG_HPCTL1_HP_CLAMP_IP |
- 			WM8900_REG_HPCTL1_HP_CLAMP_OP;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 		break;
- 
- 	case SND_SOC_DAPM_POST_PMU:
-@@ -312,41 +222,41 @@
- 		hpctl1 |= WM8900_REG_HPCTL1_HP_SHORT |
- 			WM8900_REG_HPCTL1_HP_SHORT2 |
- 			WM8900_REG_HPCTL1_HP_IPSTAGE_ENA;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 
- 		msleep(400);
- 
- 		/* Enable the output stage */
- 		hpctl1 &= ~WM8900_REG_HPCTL1_HP_CLAMP_OP;
- 		hpctl1 |= WM8900_REG_HPCTL1_HP_OPSTAGE_ENA;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 
- 		/* Remove the shorts */
- 		hpctl1 &= ~WM8900_REG_HPCTL1_HP_SHORT2;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 		hpctl1 &= ~WM8900_REG_HPCTL1_HP_SHORT;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 		break;
- 
- 	case SND_SOC_DAPM_PRE_PMD:
- 		/* Short the output */
- 		hpctl1 |= WM8900_REG_HPCTL1_HP_SHORT;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 
- 		/* Disable the output stage */
- 		hpctl1 &= ~WM8900_REG_HPCTL1_HP_OPSTAGE_ENA;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 
- 		/* Clamp the outputs and power down input */
- 		hpctl1 |= WM8900_REG_HPCTL1_HP_CLAMP_IP |
- 			WM8900_REG_HPCTL1_HP_CLAMP_OP;
- 		hpctl1 &= ~WM8900_REG_HPCTL1_HP_IPSTAGE_ENA;
--		wm8900_write(codec, WM8900_REG_HPCTL1, hpctl1);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1);
- 		break;
- 
- 	case SND_SOC_DAPM_POST_PMD:
- 		/* Disable everything */
--		wm8900_write(codec, WM8900_REG_HPCTL1, 0);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, 0);
- 		break;
- 
- 	default:
-@@ -439,7 +349,6 @@
- SOC_ENUM("DAC Mute Rate", dac_mute_rate),
- SOC_SINGLE("DAC Mono Switch", WM8900_REG_DACCTRL, 9, 1, 0),
- SOC_ENUM("DAC Deemphasis", dac_deemphasis),
--SOC_SINGLE("DAC Sloping Stopband Filter Switch", WM8900_REG_DACCTRL, 8, 1, 0),
- SOC_SINGLE("DAC Sigma-Delta Modulator Clock Switch", WM8900_REG_DACCTRL,
- 	   12, 1, 0),
- 
-@@ -723,7 +632,7 @@
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	u16 reg;
- 
--	reg = wm8900_read(codec, WM8900_REG_AUDIO1) & ~0x60;
-+	reg = snd_soc_read(codec, WM8900_REG_AUDIO1) & ~0x60;
- 
- 	switch (params_format(params)) {
- 	case SNDRV_PCM_FORMAT_S16_LE:
-@@ -741,7 +650,18 @@
- 		return -EINVAL;
- 	}
- 
--	wm8900_write(codec, WM8900_REG_AUDIO1, reg);
-+	snd_soc_write(codec, WM8900_REG_AUDIO1, reg);
-+
-+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-+		reg = snd_soc_read(codec, WM8900_REG_DACCTRL);
-+
-+		if (params_rate(params) <= 24000)
-+			reg |= WM8900_REG_DACCTRL_DAC_SB_FILT;
-+		else
-+			reg &= ~WM8900_REG_DACCTRL_DAC_SB_FILT;
-+
-+		snd_soc_write(codec, WM8900_REG_DACCTRL, reg);
-+	}
- 
- 	return 0;
- }
-@@ -778,11 +698,11 @@
- 	}
- 
- 	if (target > 100000000)
--		printk(KERN_WARNING "wm8900: FLL rate %d out of range, Fref=%d"
--		       " Fout=%d\n", target, Fref, Fout);
-+		printk(KERN_WARNING "wm8900: FLL rate %u out of range, Fref=%u"
-+		       " Fout=%u\n", target, Fref, Fout);
- 	if (div > 32) {
- 		printk(KERN_ERR "wm8900: Invalid FLL division rate %u, "
--		       "Fref=%d, Fout=%d, target=%d\n",
-+		       "Fref=%u, Fout=%u, target=%u\n",
- 		       div, Fref, Fout, target);
- 		return -EINVAL;
- 	}
-@@ -834,18 +754,18 @@
- 		return 0;
- 
- 	/* The digital side should be disabled during any change. */
--	reg = wm8900_read(codec, WM8900_REG_POWER1);
--	wm8900_write(codec, WM8900_REG_POWER1,
-+	reg = snd_soc_read(codec, WM8900_REG_POWER1);
-+	snd_soc_write(codec, WM8900_REG_POWER1,
- 		     reg & (~WM8900_REG_POWER1_FLL_ENA));
- 
- 	/* Disable the FLL? */
- 	if (!freq_in || !freq_out) {
--		reg = wm8900_read(codec, WM8900_REG_CLOCKING1);
--		wm8900_write(codec, WM8900_REG_CLOCKING1,
-+		reg = snd_soc_read(codec, WM8900_REG_CLOCKING1);
-+		snd_soc_write(codec, WM8900_REG_CLOCKING1,
- 			     reg & (~WM8900_REG_CLOCKING1_MCLK_SRC));
- 
--		reg = wm8900_read(codec, WM8900_REG_FLLCTL1);
--		wm8900_write(codec, WM8900_REG_FLLCTL1,
-+		reg = snd_soc_read(codec, WM8900_REG_FLLCTL1);
-+		snd_soc_write(codec, WM8900_REG_FLLCTL1,
- 			     reg & (~WM8900_REG_FLLCTL1_OSC_ENA));
- 
- 		wm8900->fll_in = freq_in;
-@@ -862,40 +782,40 @@
- 
- 	/* The osclilator *MUST* be enabled before we enable the
- 	 * digital circuit. */
--	wm8900_write(codec, WM8900_REG_FLLCTL1,
-+	snd_soc_write(codec, WM8900_REG_FLLCTL1,
- 		     fll_div.fll_ratio | WM8900_REG_FLLCTL1_OSC_ENA);
- 
--	wm8900_write(codec, WM8900_REG_FLLCTL4, fll_div.n >> 5);
--	wm8900_write(codec, WM8900_REG_FLLCTL5,
-+	snd_soc_write(codec, WM8900_REG_FLLCTL4, fll_div.n >> 5);
-+	snd_soc_write(codec, WM8900_REG_FLLCTL5,
- 		     (fll_div.fllclk_div << 6) | (fll_div.n & 0x1f));
- 
- 	if (fll_div.k) {
--		wm8900_write(codec, WM8900_REG_FLLCTL2,
-+		snd_soc_write(codec, WM8900_REG_FLLCTL2,
- 			     (fll_div.k >> 8) | 0x100);
--		wm8900_write(codec, WM8900_REG_FLLCTL3, fll_div.k & 0xff);
-+		snd_soc_write(codec, WM8900_REG_FLLCTL3, fll_div.k & 0xff);
- 	} else
--		wm8900_write(codec, WM8900_REG_FLLCTL2, 0);
-+		snd_soc_write(codec, WM8900_REG_FLLCTL2, 0);
- 
- 	if (fll_div.fll_slow_lock_ref)
--		wm8900_write(codec, WM8900_REG_FLLCTL6,
-+		snd_soc_write(codec, WM8900_REG_FLLCTL6,
- 			     WM8900_REG_FLLCTL6_FLL_SLOW_LOCK_REF);
- 	else
--		wm8900_write(codec, WM8900_REG_FLLCTL6, 0);
-+		snd_soc_write(codec, WM8900_REG_FLLCTL6, 0);
- 
--	reg = wm8900_read(codec, WM8900_REG_POWER1);
--	wm8900_write(codec, WM8900_REG_POWER1,
-+	reg = snd_soc_read(codec, WM8900_REG_POWER1);
-+	snd_soc_write(codec, WM8900_REG_POWER1,
- 		     reg | WM8900_REG_POWER1_FLL_ENA);
- 
- reenable:
--	reg = wm8900_read(codec, WM8900_REG_CLOCKING1);
--	wm8900_write(codec, WM8900_REG_CLOCKING1,
-+	reg = snd_soc_read(codec, WM8900_REG_CLOCKING1);
-+	snd_soc_write(codec, WM8900_REG_CLOCKING1,
- 		     reg | WM8900_REG_CLOCKING1_MCLK_SRC);
- 
- 	return 0;
- }
- 
--static int wm8900_set_dai_pll(struct snd_soc_dai *codec_dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out)
-+static int wm8900_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
-+		int source, unsigned int freq_in, unsigned int freq_out)
- {
- 	return wm8900_set_fll(codec_dai->codec, pll_id, freq_in, freq_out);
- }
-@@ -908,38 +828,38 @@
- 
- 	switch (div_id) {
- 	case WM8900_BCLK_DIV:
--		reg = wm8900_read(codec, WM8900_REG_CLOCKING1);
--		wm8900_write(codec, WM8900_REG_CLOCKING1,
-+		reg = snd_soc_read(codec, WM8900_REG_CLOCKING1);
-+		snd_soc_write(codec, WM8900_REG_CLOCKING1,
- 			     div | (reg & WM8900_REG_CLOCKING1_BCLK_MASK));
- 		break;
- 	case WM8900_OPCLK_DIV:
--		reg = wm8900_read(codec, WM8900_REG_CLOCKING1);
--		wm8900_write(codec, WM8900_REG_CLOCKING1,
-+		reg = snd_soc_read(codec, WM8900_REG_CLOCKING1);
-+		snd_soc_write(codec, WM8900_REG_CLOCKING1,
- 			     div | (reg & WM8900_REG_CLOCKING1_OPCLK_MASK));
- 		break;
- 	case WM8900_DAC_LRCLK:
--		reg = wm8900_read(codec, WM8900_REG_AUDIO4);
--		wm8900_write(codec, WM8900_REG_AUDIO4,
-+		reg = snd_soc_read(codec, WM8900_REG_AUDIO4);
-+		snd_soc_write(codec, WM8900_REG_AUDIO4,
- 			     div | (reg & WM8900_LRC_MASK));
- 		break;
- 	case WM8900_ADC_LRCLK:
--		reg = wm8900_read(codec, WM8900_REG_AUDIO3);
--		wm8900_write(codec, WM8900_REG_AUDIO3,
-+		reg = snd_soc_read(codec, WM8900_REG_AUDIO3);
-+		snd_soc_write(codec, WM8900_REG_AUDIO3,
- 			     div | (reg & WM8900_LRC_MASK));
- 		break;
- 	case WM8900_DAC_CLKDIV:
--		reg = wm8900_read(codec, WM8900_REG_CLOCKING2);
--		wm8900_write(codec, WM8900_REG_CLOCKING2,
-+		reg = snd_soc_read(codec, WM8900_REG_CLOCKING2);
-+		snd_soc_write(codec, WM8900_REG_CLOCKING2,
- 			     div | (reg & WM8900_REG_CLOCKING2_DAC_CLKDIV));
- 		break;
- 	case WM8900_ADC_CLKDIV:
--		reg = wm8900_read(codec, WM8900_REG_CLOCKING2);
--		wm8900_write(codec, WM8900_REG_CLOCKING2,
-+		reg = snd_soc_read(codec, WM8900_REG_CLOCKING2);
-+		snd_soc_write(codec, WM8900_REG_CLOCKING2,
- 			     div | (reg & WM8900_REG_CLOCKING2_ADC_CLKDIV));
- 		break;
- 	case WM8900_LRCLK_MODE:
--		reg = wm8900_read(codec, WM8900_REG_DACCTRL);
--		wm8900_write(codec, WM8900_REG_DACCTRL,
-+		reg = snd_soc_read(codec, WM8900_REG_DACCTRL);
-+		snd_soc_write(codec, WM8900_REG_DACCTRL,
- 			     div | (reg & WM8900_REG_DACCTRL_AIF_LRCLKRATE));
- 		break;
- 	default:
-@@ -956,10 +876,10 @@
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	unsigned int clocking1, aif1, aif3, aif4;
- 
--	clocking1 = wm8900_read(codec, WM8900_REG_CLOCKING1);
--	aif1 = wm8900_read(codec, WM8900_REG_AUDIO1);
--	aif3 = wm8900_read(codec, WM8900_REG_AUDIO3);
--	aif4 = wm8900_read(codec, WM8900_REG_AUDIO4);
-+	clocking1 = snd_soc_read(codec, WM8900_REG_CLOCKING1);
-+	aif1 = snd_soc_read(codec, WM8900_REG_AUDIO1);
-+	aif3 = snd_soc_read(codec, WM8900_REG_AUDIO3);
-+	aif4 = snd_soc_read(codec, WM8900_REG_AUDIO4);
- 
- 	/* set master/slave audio interface */
- 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
-@@ -1055,10 +975,10 @@
- 		return -EINVAL;
- 	}
- 
--	wm8900_write(codec, WM8900_REG_CLOCKING1, clocking1);
--	wm8900_write(codec, WM8900_REG_AUDIO1, aif1);
--	wm8900_write(codec, WM8900_REG_AUDIO3, aif3);
--	wm8900_write(codec, WM8900_REG_AUDIO4, aif4);
-+	snd_soc_write(codec, WM8900_REG_CLOCKING1, clocking1);
-+	snd_soc_write(codec, WM8900_REG_AUDIO1, aif1);
-+	snd_soc_write(codec, WM8900_REG_AUDIO3, aif3);
-+	snd_soc_write(codec, WM8900_REG_AUDIO4, aif4);
- 
- 	return 0;
- }
-@@ -1068,14 +988,14 @@
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	u16 reg;
- 
--	reg = wm8900_read(codec, WM8900_REG_DACCTRL);
-+	reg = snd_soc_read(codec, WM8900_REG_DACCTRL);
- 
- 	if (mute)
- 		reg |= WM8900_REG_DACCTRL_MUTE;
- 	else
- 		reg &= ~WM8900_REG_DACCTRL_MUTE;
- 
--	wm8900_write(codec, WM8900_REG_DACCTRL, reg);
-+	snd_soc_write(codec, WM8900_REG_DACCTRL, reg);
- 
- 	return 0;
- }
-@@ -1124,11 +1044,11 @@
- 	switch (level) {
- 	case SND_SOC_BIAS_ON:
- 		/* Enable thermal shutdown */
--		reg = wm8900_read(codec, WM8900_REG_GPIO);
--		wm8900_write(codec, WM8900_REG_GPIO,
-+		reg = snd_soc_read(codec, WM8900_REG_GPIO);
-+		snd_soc_write(codec, WM8900_REG_GPIO,
- 			     reg | WM8900_REG_GPIO_TEMP_ENA);
--		reg = wm8900_read(codec, WM8900_REG_ADDCTL);
--		wm8900_write(codec, WM8900_REG_ADDCTL,
-+		reg = snd_soc_read(codec, WM8900_REG_ADDCTL);
-+		snd_soc_write(codec, WM8900_REG_ADDCTL,
- 			     reg | WM8900_REG_ADDCTL_TEMP_SD);
- 		break;
- 
-@@ -1139,69 +1059,69 @@
- 		/* Charge capacitors if initial power up */
- 		if (codec->bias_level == SND_SOC_BIAS_OFF) {
- 			/* STARTUP_BIAS_ENA on */
--			wm8900_write(codec, WM8900_REG_POWER1,
-+			snd_soc_write(codec, WM8900_REG_POWER1,
- 				     WM8900_REG_POWER1_STARTUP_BIAS_ENA);
- 
- 			/* Startup bias mode */
--			wm8900_write(codec, WM8900_REG_ADDCTL,
-+			snd_soc_write(codec, WM8900_REG_ADDCTL,
- 				     WM8900_REG_ADDCTL_BIAS_SRC |
- 				     WM8900_REG_ADDCTL_VMID_SOFTST);
- 
- 			/* VMID 2x50k */
--			wm8900_write(codec, WM8900_REG_POWER1,
-+			snd_soc_write(codec, WM8900_REG_POWER1,
- 				     WM8900_REG_POWER1_STARTUP_BIAS_ENA | 0x1);
- 
- 			/* Allow capacitors to charge */
- 			schedule_timeout_interruptible(msecs_to_jiffies(400));
- 
- 			/* Enable bias */
--			wm8900_write(codec, WM8900_REG_POWER1,
-+			snd_soc_write(codec, WM8900_REG_POWER1,
- 				     WM8900_REG_POWER1_STARTUP_BIAS_ENA |
- 				     WM8900_REG_POWER1_BIAS_ENA | 0x1);
- 
--			wm8900_write(codec, WM8900_REG_ADDCTL, 0);
-+			snd_soc_write(codec, WM8900_REG_ADDCTL, 0);
- 
--			wm8900_write(codec, WM8900_REG_POWER1,
-+			snd_soc_write(codec, WM8900_REG_POWER1,
- 				     WM8900_REG_POWER1_BIAS_ENA | 0x1);
- 		}
- 
--		reg = wm8900_read(codec, WM8900_REG_POWER1);
--		wm8900_write(codec, WM8900_REG_POWER1,
-+		reg = snd_soc_read(codec, WM8900_REG_POWER1);
-+		snd_soc_write(codec, WM8900_REG_POWER1,
- 			     (reg & WM8900_REG_POWER1_FLL_ENA) |
- 			     WM8900_REG_POWER1_BIAS_ENA | 0x1);
--		wm8900_write(codec, WM8900_REG_POWER2,
-+		snd_soc_write(codec, WM8900_REG_POWER2,
- 			     WM8900_REG_POWER2_SYSCLK_ENA);
--		wm8900_write(codec, WM8900_REG_POWER3, 0);
-+		snd_soc_write(codec, WM8900_REG_POWER3, 0);
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
- 		/* Startup bias enable */
--		reg = wm8900_read(codec, WM8900_REG_POWER1);
--		wm8900_write(codec, WM8900_REG_POWER1,
-+		reg = snd_soc_read(codec, WM8900_REG_POWER1);
-+		snd_soc_write(codec, WM8900_REG_POWER1,
- 			     reg & WM8900_REG_POWER1_STARTUP_BIAS_ENA);
--		wm8900_write(codec, WM8900_REG_ADDCTL,
-+		snd_soc_write(codec, WM8900_REG_ADDCTL,
- 			     WM8900_REG_ADDCTL_BIAS_SRC |
- 			     WM8900_REG_ADDCTL_VMID_SOFTST);
- 
- 		/* Discharge caps */
--		wm8900_write(codec, WM8900_REG_POWER1,
-+		snd_soc_write(codec, WM8900_REG_POWER1,
- 			     WM8900_REG_POWER1_STARTUP_BIAS_ENA);
- 		schedule_timeout_interruptible(msecs_to_jiffies(500));
- 
- 		/* Remove clamp */
--		wm8900_write(codec, WM8900_REG_HPCTL1, 0);
-+		snd_soc_write(codec, WM8900_REG_HPCTL1, 0);
- 
- 		/* Power down */
--		wm8900_write(codec, WM8900_REG_ADDCTL, 0);
--		wm8900_write(codec, WM8900_REG_POWER1, 0);
--		wm8900_write(codec, WM8900_REG_POWER2, 0);
--		wm8900_write(codec, WM8900_REG_POWER3, 0);
-+		snd_soc_write(codec, WM8900_REG_ADDCTL, 0);
-+		snd_soc_write(codec, WM8900_REG_POWER1, 0);
-+		snd_soc_write(codec, WM8900_REG_POWER2, 0);
-+		snd_soc_write(codec, WM8900_REG_POWER3, 0);
- 
- 		/* Need to let things settle before stopping the clock
- 		 * to ensure that restart works, see "Stopping the
- 		 * master clock" in the datasheet. */
- 		schedule_timeout_interruptible(msecs_to_jiffies(1));
--		wm8900_write(codec, WM8900_REG_POWER2,
-+		snd_soc_write(codec, WM8900_REG_POWER2,
- 			     WM8900_REG_POWER2_SYSCLK_ENA);
- 		break;
- 	}
-@@ -1264,7 +1184,7 @@
- 
- 	if (cache) {
- 		for (i = 0; i < WM8900_MAXREG; i++)
--			wm8900_write(codec, i, cache[i]);
-+			snd_soc_write(codec, i, cache[i]);
- 		kfree(cache);
- 	} else
- 		dev_err(&pdev->dev, "Unable to allocate register cache\n");
-@@ -1297,16 +1217,20 @@
- 
- 	codec->name = "WM8900";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8900_read;
--	codec->write = wm8900_write;
- 	codec->dai = &wm8900_dai;
- 	codec->num_dai = 1;
--	codec->hw_write = (hw_write_t)i2c_master_send;
- 	codec->control_data = i2c;
- 	codec->set_bias_level = wm8900_set_bias_level;
-+	codec->volatile_register = wm8900_volatile_register;
- 	codec->dev = &i2c->dev;
- 
--	reg = wm8900_read(codec, WM8900_REG_ID);
-+	ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_I2C);
-+	if (ret != 0) {
-+		dev_err(&i2c->dev, "Failed to set cache I/O: %d\n", ret);
-+		goto err;
-+	}
-+
-+	reg = snd_soc_read(codec, WM8900_REG_ID);
- 	if (reg != 0x8900) {
- 		dev_err(&i2c->dev, "Device is not a WM8900 - ID %x\n", reg);
- 		ret = -ENODEV;
-@@ -1314,7 +1238,7 @@
- 	}
- 
- 	/* Read back from the chip */
--	reg = wm8900_chip_read(codec, WM8900_REG_POWER1);
-+	reg = snd_soc_read(codec, WM8900_REG_POWER1);
- 	reg = (reg >> 12) & 0xf;
- 	dev_info(&i2c->dev, "WM8900 revision %d\n", reg);
- 
-@@ -1324,29 +1248,29 @@
- 	wm8900_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 
- 	/* Latch the volume update bits */
--	wm8900_write(codec, WM8900_REG_LINVOL,
--		     wm8900_read(codec, WM8900_REG_LINVOL) | 0x100);
--	wm8900_write(codec, WM8900_REG_RINVOL,
--		     wm8900_read(codec, WM8900_REG_RINVOL) | 0x100);
--	wm8900_write(codec, WM8900_REG_LOUT1CTL,
--		     wm8900_read(codec, WM8900_REG_LOUT1CTL) | 0x100);
--	wm8900_write(codec, WM8900_REG_ROUT1CTL,
--		     wm8900_read(codec, WM8900_REG_ROUT1CTL) | 0x100);
--	wm8900_write(codec, WM8900_REG_LOUT2CTL,
--		     wm8900_read(codec, WM8900_REG_LOUT2CTL) | 0x100);
--	wm8900_write(codec, WM8900_REG_ROUT2CTL,
--		     wm8900_read(codec, WM8900_REG_ROUT2CTL) | 0x100);
--	wm8900_write(codec, WM8900_REG_LDAC_DV,
--		     wm8900_read(codec, WM8900_REG_LDAC_DV) | 0x100);
--	wm8900_write(codec, WM8900_REG_RDAC_DV,
--		     wm8900_read(codec, WM8900_REG_RDAC_DV) | 0x100);
--	wm8900_write(codec, WM8900_REG_LADC_DV,
--		     wm8900_read(codec, WM8900_REG_LADC_DV) | 0x100);
--	wm8900_write(codec, WM8900_REG_RADC_DV,
--		     wm8900_read(codec, WM8900_REG_RADC_DV) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_LINVOL,
-+		      snd_soc_read(codec, WM8900_REG_LINVOL) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_RINVOL,
-+		      snd_soc_read(codec, WM8900_REG_RINVOL) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_LOUT1CTL,
-+		      snd_soc_read(codec, WM8900_REG_LOUT1CTL) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_ROUT1CTL,
-+		      snd_soc_read(codec, WM8900_REG_ROUT1CTL) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_LOUT2CTL,
-+		      snd_soc_read(codec, WM8900_REG_LOUT2CTL) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_ROUT2CTL,
-+		      snd_soc_read(codec, WM8900_REG_ROUT2CTL) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_LDAC_DV,
-+		      snd_soc_read(codec, WM8900_REG_LDAC_DV) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_RDAC_DV,
-+		      snd_soc_read(codec, WM8900_REG_RDAC_DV) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_LADC_DV,
-+		      snd_soc_read(codec, WM8900_REG_LADC_DV) | 0x100);
-+	snd_soc_write(codec, WM8900_REG_RADC_DV,
-+		      snd_soc_read(codec, WM8900_REG_RADC_DV) | 0x100);
- 
- 	/* Set the DAC and mixer output bias */
--	wm8900_write(codec, WM8900_REG_OUTBIASCTL, 0x81);
-+	snd_soc_write(codec, WM8900_REG_OUTBIASCTL, 0x81);
- 
- 	wm8900_dai.dev = &i2c->dev;
- 
-@@ -1388,6 +1312,21 @@
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8900_i2c_suspend(struct i2c_client *client, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&client->dev);
-+}
-+
-+static int wm8900_i2c_resume(struct i2c_client *client)
-+{
-+	return snd_soc_resume_device(&client->dev);
-+}
-+#else
-+#define wm8900_i2c_suspend NULL
-+#define wm8900_i2c_resume NULL
-+#endif
-+
- static const struct i2c_device_id wm8900_i2c_id[] = {
- 	{ "wm8900", 0 },
- 	{ }
-@@ -1401,6 +1340,8 @@
- 	},
- 	.probe = wm8900_i2c_probe,
- 	.remove = __devexit_p(wm8900_i2c_remove),
-+	.suspend = wm8900_i2c_suspend,
-+	.resume = wm8900_i2c_resume,
- 	.id_table = wm8900_i2c_id,
- };
- 
-Index: linux-2.6.30/sound/soc/codecs/wm8903.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8903.c	2011-02-01 16:39:20.000000000 +0100
-+++ linux-2.6.30/sound/soc/codecs/wm8903.c	2011-02-01 16:40:30.189047317 +0100
-@@ -217,7 +217,6 @@
- 	int sysclk;
- 
- 	/* Reference counts */
--	int charge_pump_users;
- 	int class_w_users;
- 	int playback_active;
- 	int capture_active;
-@@ -226,94 +225,18 @@
- 	struct snd_pcm_substream *slave_substream;
- };
- 
--
--static unsigned int wm8903_read_reg_cache(struct snd_soc_codec *codec,
--						 unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--
--	BUG_ON(reg >= ARRAY_SIZE(wm8903_reg_defaults));
--
--	return cache[reg];
--}
--
--static unsigned int wm8903_hw_read(struct snd_soc_codec *codec, u8 reg)
--{
--	struct i2c_msg xfer[2];
--	u16 data;
--	int ret;
--	struct i2c_client *client = codec->control_data;
--
--	/* Write register */
--	xfer[0].addr = client->addr;
--	xfer[0].flags = 0;
--	xfer[0].len = 1;
--	xfer[0].buf = &reg;
--
--	/* Read data */
--	xfer[1].addr = client->addr;
--	xfer[1].flags = I2C_M_RD;
--	xfer[1].len = 2;
--	xfer[1].buf = (u8 *)&data;
--
--	ret = i2c_transfer(client->adapter, xfer, 2);
--	if (ret != 2) {
--		pr_err("i2c_transfer returned %d\n", ret);
--		return 0;
--	}
--
--	return (data >> 8) | ((data & 0xff) << 8);
--}
--
--static unsigned int wm8903_read(struct snd_soc_codec *codec,
--				unsigned int reg)
-+static int wm8903_volatile_register(unsigned int reg)
- {
- 	switch (reg) {
- 	case WM8903_SW_RESET_AND_ID:
- 	case WM8903_REVISION_NUMBER:
- 	case WM8903_INTERRUPT_STATUS_1:
- 	case WM8903_WRITE_SEQUENCER_4:
--		return wm8903_hw_read(codec, reg);
--
--	default:
--		return wm8903_read_reg_cache(codec, reg);
--	}
--}
--
--static void wm8903_write_reg_cache(struct snd_soc_codec *codec,
--				   u16 reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--
--	BUG_ON(reg >= ARRAY_SIZE(wm8903_reg_defaults));
--
--	switch (reg) {
--	case WM8903_SW_RESET_AND_ID:
--	case WM8903_REVISION_NUMBER:
--		break;
-+		return 1;
- 
- 	default:
--		cache[reg] = value;
--		break;
--	}
--}
--
--static int wm8903_write(struct snd_soc_codec *codec, unsigned int reg,
--			unsigned int value)
--{
--	u8 data[3];
--
--	wm8903_write_reg_cache(codec, reg, value);
--
--	/* Data format is 1 byte of address followed by 2 bytes of data */
--	data[0] = reg;
--	data[1] = (value >> 8) & 0xff;
--	data[2] = value & 0xff;
--
--	if (codec->hw_write(codec->control_data, data, 3) == 2)
- 		return 0;
--	else
--		return -EIO;
-+	}
- }
- 
- static int wm8903_run_sequence(struct snd_soc_codec *codec, unsigned int start)
-@@ -324,13 +247,13 @@
- 	BUG_ON(start > 48);
- 
- 	/* Enable the sequencer */
--	reg[0] = wm8903_read(codec, WM8903_WRITE_SEQUENCER_0);
-+	reg[0] = snd_soc_read(codec, WM8903_WRITE_SEQUENCER_0);
- 	reg[0] |= WM8903_WSEQ_ENA;
--	wm8903_write(codec, WM8903_WRITE_SEQUENCER_0, reg[0]);
-+	snd_soc_write(codec, WM8903_WRITE_SEQUENCER_0, reg[0]);
- 
- 	dev_dbg(&i2c->dev, "Starting sequence at %d\n", start);
- 
--	wm8903_write(codec, WM8903_WRITE_SEQUENCER_3,
-+	snd_soc_write(codec, WM8903_WRITE_SEQUENCER_3,
- 		     start | WM8903_WSEQ_START);
- 
- 	/* Wait for it to complete.  If we have the interrupt wired up then
-@@ -340,13 +263,13 @@
- 	do {
- 		msleep(10);
- 
--		reg[4] = wm8903_read(codec, WM8903_WRITE_SEQUENCER_4);
-+		reg[4] = snd_soc_read(codec, WM8903_WRITE_SEQUENCER_4);
- 	} while (reg[4] & WM8903_WSEQ_BUSY);
- 
- 	dev_dbg(&i2c->dev, "Sequence complete\n");
- 
- 	/* Disable the sequencer again */
--	wm8903_write(codec, WM8903_WRITE_SEQUENCER_0,
-+	snd_soc_write(codec, WM8903_WRITE_SEQUENCER_0,
- 		     reg[0] & ~WM8903_WSEQ_ENA);
- 
- 	return 0;
-@@ -358,12 +281,12 @@
- 
- 	/* There really ought to be something better we can do here :/ */
- 	for (i = 0; i < ARRAY_SIZE(wm8903_reg_defaults); i++)
--		cache[i] = wm8903_hw_read(codec, i);
-+		cache[i] = codec->hw_read(codec, i);
- }
- 
- static void wm8903_reset(struct snd_soc_codec *codec)
- {
--	wm8903_write(codec, WM8903_SW_RESET_AND_ID, 0);
-+	snd_soc_write(codec, WM8903_SW_RESET_AND_ID, 0);
- 	memcpy(codec->reg_cache, wm8903_reg_defaults,
- 	       sizeof(wm8903_reg_defaults));
- }
-@@ -373,6 +296,15 @@
- #define WM8903_OUTPUT_INT   0x2
- #define WM8903_OUTPUT_IN    0x1
- 
-+static int wm8903_cp_event(struct snd_soc_dapm_widget *w,
-+			   struct snd_kcontrol *kcontrol, int event)
-+{
-+	WARN_ON(event != SND_SOC_DAPM_POST_PMU);
-+	mdelay(4);
-+
-+	return 0;
-+}
-+
- /*
-  * Event for headphone and line out amplifier power changes.  Special
-  * power up/down sequences are required in order to maximise pop/click
-@@ -382,19 +314,20 @@
- 			       struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
--	struct wm8903_priv *wm8903 = codec->private_data;
--	struct i2c_client *i2c = codec->control_data;
- 	u16 val;
- 	u16 reg;
-+	u16 dcs_reg;
-+	u16 dcs_bit;
- 	int shift;
--	u16 cp_reg = wm8903_read(codec, WM8903_CHARGE_PUMP_0);
- 
- 	switch (w->reg) {
- 	case WM8903_POWER_MANAGEMENT_2:
- 		reg = WM8903_ANALOGUE_HP_0;
-+		dcs_bit = 0 + w->shift;
- 		break;
- 	case WM8903_POWER_MANAGEMENT_3:
- 		reg = WM8903_ANALOGUE_LINEOUT_0;
-+		dcs_bit = 2 + w->shift;
- 		break;
- 	default:
- 		BUG();
-@@ -414,67 +347,52 @@
- 	}
- 
- 	if (event & SND_SOC_DAPM_PRE_PMU) {
--		val = wm8903_read(codec, reg);
-+		val = snd_soc_read(codec, reg);
- 
- 		/* Short the output */
- 		val &= ~(WM8903_OUTPUT_SHORT << shift);
--		wm8903_write(codec, reg, val);
--
--		wm8903->charge_pump_users++;
--
--		dev_dbg(&i2c->dev, "Charge pump use count now %d\n",
--			wm8903->charge_pump_users);
--
--		if (wm8903->charge_pump_users == 1) {
--			dev_dbg(&i2c->dev, "Enabling charge pump\n");
--			wm8903_write(codec, WM8903_CHARGE_PUMP_0,
--				     cp_reg | WM8903_CP_ENA);
--			mdelay(4);
--		}
-+		snd_soc_write(codec, reg, val);
- 	}
- 
- 	if (event & SND_SOC_DAPM_POST_PMU) {
--		val = wm8903_read(codec, reg);
-+		val = snd_soc_read(codec, reg);
- 
- 		val |= (WM8903_OUTPUT_IN << shift);
--		wm8903_write(codec, reg, val);
-+		snd_soc_write(codec, reg, val);
- 
- 		val |= (WM8903_OUTPUT_INT << shift);
--		wm8903_write(codec, reg, val);
-+		snd_soc_write(codec, reg, val);
- 
- 		/* Turn on the output ENA_OUTP */
- 		val |= (WM8903_OUTPUT_OUT << shift);
--		wm8903_write(codec, reg, val);
-+		snd_soc_write(codec, reg, val);
-+
-+		/* Enable the DC servo */
-+		dcs_reg = snd_soc_read(codec, WM8903_DC_SERVO_0);
-+		dcs_reg |= dcs_bit;
-+		snd_soc_write(codec, WM8903_DC_SERVO_0, dcs_reg);
- 
- 		/* Remove the short */
- 		val |= (WM8903_OUTPUT_SHORT << shift);
--		wm8903_write(codec, reg, val);
-+		snd_soc_write(codec, reg, val);
- 	}
- 
- 	if (event & SND_SOC_DAPM_PRE_PMD) {
--		val = wm8903_read(codec, reg);
-+		val = snd_soc_read(codec, reg);
- 
- 		/* Short the output */
- 		val &= ~(WM8903_OUTPUT_SHORT << shift);
--		wm8903_write(codec, reg, val);
-+		snd_soc_write(codec, reg, val);
-+
-+		/* Disable the DC servo */
-+		dcs_reg = snd_soc_read(codec, WM8903_DC_SERVO_0);
-+		dcs_reg &= ~dcs_bit;
-+		snd_soc_write(codec, WM8903_DC_SERVO_0, dcs_reg);
- 
- 		/* Then disable the intermediate and output stages */
- 		val &= ~((WM8903_OUTPUT_OUT | WM8903_OUTPUT_INT |
- 			  WM8903_OUTPUT_IN) << shift);
--		wm8903_write(codec, reg, val);
--	}
--
--	if (event & SND_SOC_DAPM_POST_PMD) {
--		wm8903->charge_pump_users--;
--
--		dev_dbg(&i2c->dev, "Charge pump use count now %d\n",
--			wm8903->charge_pump_users);
--
--		if (wm8903->charge_pump_users == 0) {
--			dev_dbg(&i2c->dev, "Disabling charge pump\n");
--			wm8903_write(codec, WM8903_CHARGE_PUMP_0,
--				     cp_reg & ~WM8903_CP_ENA);
--		}
-+		snd_soc_write(codec, reg, val);
- 	}
- 
- 	return 0;
-@@ -498,13 +416,13 @@
- 	u16 reg;
- 	int ret;
- 
--	reg = wm8903_read(codec, WM8903_CLASS_W_0);
-+	reg = snd_soc_read(codec, WM8903_CLASS_W_0);
- 
- 	/* Turn it off if we're about to enable bypass */
- 	if (ucontrol->value.integer.value[0]) {
- 		if (wm8903->class_w_users == 0) {
- 			dev_dbg(&i2c->dev, "Disabling Class W\n");
--			wm8903_write(codec, WM8903_CLASS_W_0, reg &
-+			snd_soc_write(codec, WM8903_CLASS_W_0, reg &
- 				     ~(WM8903_CP_DYN_FREQ | WM8903_CP_DYN_V));
- 		}
- 		wm8903->class_w_users++;
-@@ -517,7 +435,7 @@
- 	if (!ucontrol->value.integer.value[0]) {
- 		if (wm8903->class_w_users == 1) {
- 			dev_dbg(&i2c->dev, "Enabling Class W\n");
--			wm8903_write(codec, WM8903_CLASS_W_0, reg |
-+			snd_soc_write(codec, WM8903_CLASS_W_0, reg |
- 				     WM8903_CP_DYN_FREQ | WM8903_CP_DYN_V);
- 		}
- 		wm8903->class_w_users--;
-@@ -539,6 +457,7 @@
- /* ALSA can only do steps of .01dB */
- static const DECLARE_TLV_DB_SCALE(digital_tlv, -7200, 75, 1);
- 
-+static const DECLARE_TLV_DB_SCALE(digital_sidetone_tlv, -3600, 300, 0);
- static const DECLARE_TLV_DB_SCALE(out_tlv, -5700, 100, 0);
- 
- static const DECLARE_TLV_DB_SCALE(drc_tlv_thresh, 0, 75, 0);
-@@ -657,6 +576,16 @@
- 	SOC_ENUM_SINGLE(WM8903_ANALOGUE_RIGHT_INPUT_1, 4, 3, rinput_mux_text);
- 
- 
-+static const char *sidetone_text[] = {
-+	"None", "Left", "Right"
-+};
-+
-+static const struct soc_enum lsidetone_enum =
-+	SOC_ENUM_SINGLE(WM8903_DAC_DIGITAL_0, 2, 3, sidetone_text);
-+
-+static const struct soc_enum rsidetone_enum =
-+	SOC_ENUM_SINGLE(WM8903_DAC_DIGITAL_0, 0, 3, sidetone_text);
-+
- static const struct snd_kcontrol_new wm8903_snd_controls[] = {
- 
- /* Input PGAs - No TLV since the scale depends on PGA mode */
-@@ -700,6 +629,9 @@
- SOC_ENUM("ADC Companding Mode", adc_companding),
- SOC_SINGLE("ADC Companding Switch", WM8903_AUDIO_INTERFACE_0, 3, 1, 0),
- 
-+SOC_DOUBLE_TLV("Digital Sidetone Volume", WM8903_DAC_DIGITAL_0, 4, 8,
-+	       12, 0, digital_sidetone_tlv),
-+
- /* DAC */
- SOC_DOUBLE_R_TLV("Digital Playback Volume", WM8903_DAC_DIGITAL_VOLUME_LEFT,
- 		 WM8903_DAC_DIGITAL_VOLUME_RIGHT, 1, 120, 0, digital_tlv),
-@@ -707,8 +639,6 @@
- SOC_ENUM("DAC Mute Mode", mute_mode),
- SOC_SINGLE("DAC Mono Switch", WM8903_DAC_DIGITAL_1, 12, 1, 0),
- SOC_ENUM("DAC De-emphasis", dac_deemphasis),
--SOC_SINGLE("DAC Sloping Stopband Filter Switch",
--	   WM8903_DAC_DIGITAL_1, 11, 1, 0),
- SOC_ENUM("DAC Companding Mode", dac_companding),
- SOC_SINGLE("DAC Companding Switch", WM8903_AUDIO_INTERFACE_0, 1, 1, 0),
- 
-@@ -762,6 +692,12 @@
- static const struct snd_kcontrol_new rinput_inv_mux =
- 	SOC_DAPM_ENUM("Right Inverting Input Mux", rinput_inv_enum);
- 
-+static const struct snd_kcontrol_new lsidetone_mux =
-+	SOC_DAPM_ENUM("DACL Sidetone Mux", lsidetone_enum);
-+
-+static const struct snd_kcontrol_new rsidetone_mux =
-+	SOC_DAPM_ENUM("DACR Sidetone Mux", rsidetone_enum);
-+
- static const struct snd_kcontrol_new left_output_mixer[] = {
- SOC_DAPM_SINGLE("DACL Switch", WM8903_ANALOGUE_LEFT_MIX_0, 3, 1, 0),
- SOC_DAPM_SINGLE("DACR Switch", WM8903_ANALOGUE_LEFT_MIX_0, 2, 1, 0),
-@@ -828,6 +764,9 @@
- SND_SOC_DAPM_ADC("ADCL", "Left HiFi Capture", WM8903_POWER_MANAGEMENT_6, 1, 0),
- SND_SOC_DAPM_ADC("ADCR", "Right HiFi Capture", WM8903_POWER_MANAGEMENT_6, 0, 0),
- 
-+SND_SOC_DAPM_MUX("DACL Sidetone", SND_SOC_NOPM, 0, 0, &lsidetone_mux),
-+SND_SOC_DAPM_MUX("DACR Sidetone", SND_SOC_NOPM, 0, 0, &rsidetone_mux),
-+
- SND_SOC_DAPM_DAC("DACL", "Left Playback", WM8903_POWER_MANAGEMENT_6, 3, 0),
- SND_SOC_DAPM_DAC("DACR", "Right Playback", WM8903_POWER_MANAGEMENT_6, 2, 0),
- 
-@@ -844,26 +783,29 @@
- SND_SOC_DAPM_PGA_E("Left Headphone Output PGA", WM8903_POWER_MANAGEMENT_2,
- 		   1, 0, NULL, 0, wm8903_output_event,
- 		   SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
--		   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
-+		   SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_PGA_E("Right Headphone Output PGA", WM8903_POWER_MANAGEMENT_2,
- 		   0, 0, NULL, 0, wm8903_output_event,
- 		   SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
--		   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
-+		   SND_SOC_DAPM_PRE_PMD),
- 
- SND_SOC_DAPM_PGA_E("Left Line Output PGA", WM8903_POWER_MANAGEMENT_3, 1, 0,
- 		   NULL, 0, wm8903_output_event,
- 		   SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
--		   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
-+		   SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_PGA_E("Right Line Output PGA", WM8903_POWER_MANAGEMENT_3, 0, 0,
- 		   NULL, 0, wm8903_output_event,
- 		   SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
--		   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
-+		   SND_SOC_DAPM_PRE_PMD),
- 
- SND_SOC_DAPM_PGA("Left Speaker PGA", WM8903_POWER_MANAGEMENT_5, 1, 0,
- 		 NULL, 0),
- SND_SOC_DAPM_PGA("Right Speaker PGA", WM8903_POWER_MANAGEMENT_5, 0, 0,
- 		 NULL, 0),
- 
-+SND_SOC_DAPM_SUPPLY("Charge Pump", WM8903_CHARGE_PUMP_0, 0, 0,
-+		    wm8903_cp_event, SND_SOC_DAPM_POST_PMU),
-+SND_SOC_DAPM_SUPPLY("CLK_DSP", WM8903_CLOCK_RATES_2, 1, 0, NULL, 0),
- };
- 
- static const struct snd_soc_dapm_route intercon[] = {
-@@ -909,7 +851,19 @@
- 	{ "Right Input PGA", NULL, "Right Input Mode Mux" },
- 
- 	{ "ADCL", NULL, "Left Input PGA" },
-+	{ "ADCL", NULL, "CLK_DSP" },
- 	{ "ADCR", NULL, "Right Input PGA" },
-+	{ "ADCR", NULL, "CLK_DSP" },
-+
-+	{ "DACL Sidetone", "Left", "ADCL" },
-+	{ "DACL Sidetone", "Right", "ADCR" },
-+	{ "DACR Sidetone", "Left", "ADCL" },
-+	{ "DACR Sidetone", "Right", "ADCR" },
-+
-+	{ "DACL", NULL, "DACL Sidetone" },
-+	{ "DACL", NULL, "CLK_DSP" },
-+	{ "DACR", NULL, "DACR Sidetone" },
-+	{ "DACR", NULL, "CLK_DSP" },
- 
- 	{ "Left Output Mixer", "Left Bypass Switch", "Left Input PGA" },
- 	{ "Left Output Mixer", "Right Bypass Switch", "Right Input PGA" },
-@@ -951,6 +905,11 @@
- 
- 	{ "ROP", NULL, "Right Speaker PGA" },
- 	{ "RON", NULL, "Right Speaker PGA" },
-+
-+	{ "Left Headphone Output PGA", NULL, "Charge Pump" },
-+	{ "Right Headphone Output PGA", NULL, "Charge Pump" },
-+	{ "Left Line Output PGA", NULL, "Charge Pump" },
-+	{ "Right Line Output PGA", NULL, "Charge Pump" },
- };
- 
- static int wm8903_add_widgets(struct snd_soc_codec *codec)
-@@ -974,50 +933,55 @@
- 	switch (level) {
- 	case SND_SOC_BIAS_ON:
- 	case SND_SOC_BIAS_PREPARE:
--		reg = wm8903_read(codec, WM8903_VMID_CONTROL_0);
-+		reg = snd_soc_read(codec, WM8903_VMID_CONTROL_0);
- 		reg &= ~(WM8903_VMID_RES_MASK);
- 		reg |= WM8903_VMID_RES_50K;
--		wm8903_write(codec, WM8903_VMID_CONTROL_0, reg);
-+		snd_soc_write(codec, WM8903_VMID_CONTROL_0, reg);
- 		break;
- 
- 	case SND_SOC_BIAS_STANDBY:
- 		if (codec->bias_level == SND_SOC_BIAS_OFF) {
--			wm8903_write(codec, WM8903_CLOCK_RATES_2,
-+			snd_soc_write(codec, WM8903_CLOCK_RATES_2,
- 				     WM8903_CLK_SYS_ENA);
- 
-+			/* Change DC servo dither level in startup sequence */
-+			snd_soc_write(codec, WM8903_WRITE_SEQUENCER_0, 0x11);
-+			snd_soc_write(codec, WM8903_WRITE_SEQUENCER_1, 0x1257);
-+			snd_soc_write(codec, WM8903_WRITE_SEQUENCER_2, 0x2);
-+
- 			wm8903_run_sequence(codec, 0);
- 			wm8903_sync_reg_cache(codec, codec->reg_cache);
- 
- 			/* Enable low impedence charge pump output */
--			reg = wm8903_read(codec,
-+			reg = snd_soc_read(codec,
- 					  WM8903_CONTROL_INTERFACE_TEST_1);
--			wm8903_write(codec, WM8903_CONTROL_INTERFACE_TEST_1,
-+			snd_soc_write(codec, WM8903_CONTROL_INTERFACE_TEST_1,
- 				     reg | WM8903_TEST_KEY);
--			reg2 = wm8903_read(codec, WM8903_CHARGE_PUMP_TEST_1);
--			wm8903_write(codec, WM8903_CHARGE_PUMP_TEST_1,
-+			reg2 = snd_soc_read(codec, WM8903_CHARGE_PUMP_TEST_1);
-+			snd_soc_write(codec, WM8903_CHARGE_PUMP_TEST_1,
- 				     reg2 | WM8903_CP_SW_KELVIN_MODE_MASK);
--			wm8903_write(codec, WM8903_CONTROL_INTERFACE_TEST_1,
-+			snd_soc_write(codec, WM8903_CONTROL_INTERFACE_TEST_1,
- 				     reg);
- 
- 			/* By default no bypass paths are enabled so
- 			 * enable Class W support.
- 			 */
- 			dev_dbg(&i2c->dev, "Enabling Class W\n");
--			wm8903_write(codec, WM8903_CLASS_W_0, reg |
-+			snd_soc_write(codec, WM8903_CLASS_W_0, reg |
- 				     WM8903_CP_DYN_FREQ | WM8903_CP_DYN_V);
- 		}
- 
--		reg = wm8903_read(codec, WM8903_VMID_CONTROL_0);
-+		reg = snd_soc_read(codec, WM8903_VMID_CONTROL_0);
- 		reg &= ~(WM8903_VMID_RES_MASK);
- 		reg |= WM8903_VMID_RES_250K;
--		wm8903_write(codec, WM8903_VMID_CONTROL_0, reg);
-+		snd_soc_write(codec, WM8903_VMID_CONTROL_0, reg);
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
- 		wm8903_run_sequence(codec, 32);
--		reg = wm8903_read(codec, WM8903_CLOCK_RATES_2);
-+		reg = snd_soc_read(codec, WM8903_CLOCK_RATES_2);
- 		reg &= ~WM8903_CLK_SYS_ENA;
--		wm8903_write(codec, WM8903_CLOCK_RATES_2, reg);
-+		snd_soc_write(codec, WM8903_CLOCK_RATES_2, reg);
- 		break;
- 	}
- 
-@@ -1041,7 +1005,7 @@
- 			      unsigned int fmt)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
--	u16 aif1 = wm8903_read(codec, WM8903_AUDIO_INTERFACE_1);
-+	u16 aif1 = snd_soc_read(codec, WM8903_AUDIO_INTERFACE_1);
- 
- 	aif1 &= ~(WM8903_LRCLK_DIR | WM8903_BCLK_DIR | WM8903_AIF_FMT_MASK |
- 		  WM8903_AIF_LRCLK_INV | WM8903_AIF_BCLK_INV);
-@@ -1119,7 +1083,7 @@
- 		return -EINVAL;
- 	}
- 
--	wm8903_write(codec, WM8903_AUDIO_INTERFACE_1, aif1);
-+	snd_soc_write(codec, WM8903_AUDIO_INTERFACE_1, aif1);
- 
- 	return 0;
- }
-@@ -1129,14 +1093,14 @@
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	u16 reg;
- 
--	reg = wm8903_read(codec, WM8903_DAC_DIGITAL_1);
-+	reg = snd_soc_read(codec, WM8903_DAC_DIGITAL_1);
- 
- 	if (mute)
- 		reg |= WM8903_DAC_MUTE;
- 	else
- 		reg &= ~WM8903_DAC_MUTE;
- 
--	wm8903_write(codec, WM8903_DAC_DIGITAL_1, reg);
-+	snd_soc_write(codec, WM8903_DAC_DIGITAL_1, reg);
- 
- 	return 0;
- }
-@@ -1273,14 +1237,8 @@
- 	if (wm8903->master_substream) {
- 		master_runtime = wm8903->master_substream->runtime;
- 
--		dev_dbg(&i2c->dev, "Constraining to %d bits at %dHz\n",
--			master_runtime->sample_bits,
--			master_runtime->rate);
--
--		snd_pcm_hw_constraint_minmax(substream->runtime,
--					     SNDRV_PCM_HW_PARAM_RATE,
--					     master_runtime->rate,
--					     master_runtime->rate);
-+		dev_dbg(&i2c->dev, "Constraining to %d bits\n",
-+			master_runtime->sample_bits);
- 
- 		snd_pcm_hw_constraint_minmax(substream->runtime,
- 					     SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
-@@ -1332,17 +1290,24 @@
- 	int cur_val;
- 	int clk_sys;
- 
--	u16 aif1 = wm8903_read(codec, WM8903_AUDIO_INTERFACE_1);
--	u16 aif2 = wm8903_read(codec, WM8903_AUDIO_INTERFACE_2);
--	u16 aif3 = wm8903_read(codec, WM8903_AUDIO_INTERFACE_3);
--	u16 clock0 = wm8903_read(codec, WM8903_CLOCK_RATES_0);
--	u16 clock1 = wm8903_read(codec, WM8903_CLOCK_RATES_1);
-+	u16 aif1 = snd_soc_read(codec, WM8903_AUDIO_INTERFACE_1);
-+	u16 aif2 = snd_soc_read(codec, WM8903_AUDIO_INTERFACE_2);
-+	u16 aif3 = snd_soc_read(codec, WM8903_AUDIO_INTERFACE_3);
-+	u16 clock0 = snd_soc_read(codec, WM8903_CLOCK_RATES_0);
-+	u16 clock1 = snd_soc_read(codec, WM8903_CLOCK_RATES_1);
-+	u16 dac_digital1 = snd_soc_read(codec, WM8903_DAC_DIGITAL_1);
- 
- 	if (substream == wm8903->slave_substream) {
- 		dev_dbg(&i2c->dev, "Ignoring hw_params for slave substream\n");
- 		return 0;
- 	}
- 
-+	/* Enable sloping stopband filter for low sample rates */
-+	if (fs <= 24000)
-+		dac_digital1 |= WM8903_DAC_SB_FILT;
-+	else
-+		dac_digital1 &= ~WM8903_DAC_SB_FILT;
-+
- 	/* Configure sample rate logic for DSP - choose nearest rate */
- 	dsp_config = 0;
- 	best_val = abs(sample_rates[dsp_config].rate - fs);
-@@ -1462,11 +1427,12 @@
- 	aif2 |= bclk_divs[bclk_div].div;
- 	aif3 |= bclk / fs;
- 
--	wm8903_write(codec, WM8903_CLOCK_RATES_0, clock0);
--	wm8903_write(codec, WM8903_CLOCK_RATES_1, clock1);
--	wm8903_write(codec, WM8903_AUDIO_INTERFACE_1, aif1);
--	wm8903_write(codec, WM8903_AUDIO_INTERFACE_2, aif2);
--	wm8903_write(codec, WM8903_AUDIO_INTERFACE_3, aif3);
-+	snd_soc_write(codec, WM8903_CLOCK_RATES_0, clock0);
-+	snd_soc_write(codec, WM8903_CLOCK_RATES_1, clock1);
-+	snd_soc_write(codec, WM8903_AUDIO_INTERFACE_1, aif1);
-+	snd_soc_write(codec, WM8903_AUDIO_INTERFACE_2, aif2);
-+	snd_soc_write(codec, WM8903_AUDIO_INTERFACE_3, aif3);
-+	snd_soc_write(codec, WM8903_DAC_DIGITAL_1, dac_digital1);
- 
- 	return 0;
- }
-@@ -1519,6 +1485,7 @@
- 		 .formats = WM8903_FORMATS,
- 	 },
- 	.ops = &wm8903_dai_ops,
-+	.symmetric_rates = 1,
- };
- EXPORT_SYMBOL_GPL(wm8903_dai);
- 
-@@ -1550,7 +1517,7 @@
- 	if (tmp_cache) {
- 		for (i = 2; i < ARRAY_SIZE(wm8903_reg_defaults); i++)
- 			if (tmp_cache[i] != reg_cache[i])
--				wm8903_write(codec, i, tmp_cache[i]);
-+				snd_soc_write(codec, i, tmp_cache[i]);
- 	} else {
- 		dev_err(&i2c->dev, "Failed to allocate temporary cache\n");
- 	}
-@@ -1581,9 +1548,6 @@
- 	codec->dev = &i2c->dev;
- 	codec->name = "WM8903";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8903_read;
--	codec->write = wm8903_write;
--	codec->hw_write = (hw_write_t)i2c_master_send;
- 	codec->bias_level = SND_SOC_BIAS_OFF;
- 	codec->set_bias_level = wm8903_set_bias_level;
- 	codec->dai = &wm8903_dai;
-@@ -1591,18 +1555,25 @@
- 	codec->reg_cache_size = ARRAY_SIZE(wm8903->reg_cache);
- 	codec->reg_cache = &wm8903->reg_cache[0];
- 	codec->private_data = wm8903;
-+	codec->volatile_register = wm8903_volatile_register;
- 
- 	i2c_set_clientdata(i2c, codec);
- 	codec->control_data = i2c;
- 
--	val = wm8903_hw_read(codec, WM8903_SW_RESET_AND_ID);
-+	ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_I2C);
-+	if (ret != 0) {
-+		dev_err(&i2c->dev, "Failed to set cache I/O: %d\n", ret);
-+		goto err;
-+	}
-+
-+	val = snd_soc_read(codec, WM8903_SW_RESET_AND_ID);
- 	if (val != wm8903_reg_defaults[WM8903_SW_RESET_AND_ID]) {
- 		dev_err(&i2c->dev,
- 			"Device with ID register %x is not a WM8903\n", val);
- 		return -ENODEV;
- 	}
- 
--	val = wm8903_read(codec, WM8903_REVISION_NUMBER);
-+	val = snd_soc_read(codec, WM8903_REVISION_NUMBER);
- 	dev_info(&i2c->dev, "WM8903 revision %d\n",
- 		 val & WM8903_CHIP_REV_MASK);
- 
-@@ -1612,35 +1583,35 @@
- 	wm8903_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 
- 	/* Latch volume update bits */
--	val = wm8903_read(codec, WM8903_ADC_DIGITAL_VOLUME_LEFT);
-+	val = snd_soc_read(codec, WM8903_ADC_DIGITAL_VOLUME_LEFT);
- 	val |= WM8903_ADCVU;
--	wm8903_write(codec, WM8903_ADC_DIGITAL_VOLUME_LEFT, val);
--	wm8903_write(codec, WM8903_ADC_DIGITAL_VOLUME_RIGHT, val);
-+	snd_soc_write(codec, WM8903_ADC_DIGITAL_VOLUME_LEFT, val);
-+	snd_soc_write(codec, WM8903_ADC_DIGITAL_VOLUME_RIGHT, val);
- 
--	val = wm8903_read(codec, WM8903_DAC_DIGITAL_VOLUME_LEFT);
-+	val = snd_soc_read(codec, WM8903_DAC_DIGITAL_VOLUME_LEFT);
- 	val |= WM8903_DACVU;
--	wm8903_write(codec, WM8903_DAC_DIGITAL_VOLUME_LEFT, val);
--	wm8903_write(codec, WM8903_DAC_DIGITAL_VOLUME_RIGHT, val);
-+	snd_soc_write(codec, WM8903_DAC_DIGITAL_VOLUME_LEFT, val);
-+	snd_soc_write(codec, WM8903_DAC_DIGITAL_VOLUME_RIGHT, val);
- 
--	val = wm8903_read(codec, WM8903_ANALOGUE_OUT1_LEFT);
-+	val = snd_soc_read(codec, WM8903_ANALOGUE_OUT1_LEFT);
- 	val |= WM8903_HPOUTVU;
--	wm8903_write(codec, WM8903_ANALOGUE_OUT1_LEFT, val);
--	wm8903_write(codec, WM8903_ANALOGUE_OUT1_RIGHT, val);
-+	snd_soc_write(codec, WM8903_ANALOGUE_OUT1_LEFT, val);
-+	snd_soc_write(codec, WM8903_ANALOGUE_OUT1_RIGHT, val);
- 
--	val = wm8903_read(codec, WM8903_ANALOGUE_OUT2_LEFT);
-+	val = snd_soc_read(codec, WM8903_ANALOGUE_OUT2_LEFT);
- 	val |= WM8903_LINEOUTVU;
--	wm8903_write(codec, WM8903_ANALOGUE_OUT2_LEFT, val);
--	wm8903_write(codec, WM8903_ANALOGUE_OUT2_RIGHT, val);
-+	snd_soc_write(codec, WM8903_ANALOGUE_OUT2_LEFT, val);
-+	snd_soc_write(codec, WM8903_ANALOGUE_OUT2_RIGHT, val);
- 
--	val = wm8903_read(codec, WM8903_ANALOGUE_OUT3_LEFT);
-+	val = snd_soc_read(codec, WM8903_ANALOGUE_OUT3_LEFT);
- 	val |= WM8903_SPKVU;
--	wm8903_write(codec, WM8903_ANALOGUE_OUT3_LEFT, val);
--	wm8903_write(codec, WM8903_ANALOGUE_OUT3_RIGHT, val);
-+	snd_soc_write(codec, WM8903_ANALOGUE_OUT3_LEFT, val);
-+	snd_soc_write(codec, WM8903_ANALOGUE_OUT3_RIGHT, val);
- 
- 	/* Enable DAC soft mute by default */
--	val = wm8903_read(codec, WM8903_DAC_DIGITAL_1);
-+	val = snd_soc_read(codec, WM8903_DAC_DIGITAL_1);
- 	val |= WM8903_DAC_MUTEMODE;
--	wm8903_write(codec, WM8903_DAC_DIGITAL_1, val);
-+	snd_soc_write(codec, WM8903_DAC_DIGITAL_1, val);
- 
- 	wm8903_dai.dev = &i2c->dev;
- 	wm8903_codec = codec;
-@@ -1684,6 +1655,21 @@
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+static int wm8903_i2c_suspend(struct i2c_client *client, pm_message_t msg)
-+{
-+	return snd_soc_suspend_device(&client->dev);
-+}
-+
-+static int wm8903_i2c_resume(struct i2c_client *client)
-+{
-+	return snd_soc_resume_device(&client->dev);
-+}
-+#else
-+#define wm8903_i2c_suspend NULL
-+#define wm8903_i2c_resume NULL
-+#endif
-+
- /* i2c codec control layer */
- static const struct i2c_device_id wm8903_i2c_id[] = {
-        { "wm8903", 0 },
-@@ -1698,6 +1684,8 @@
- 	},
- 	.probe    = wm8903_i2c_probe,
- 	.remove   = __devexit_p(wm8903_i2c_remove),
-+	.suspend  = wm8903_i2c_suspend,
-+	.resume   = wm8903_i2c_resume,
- 	.id_table = wm8903_i2c_id,
- };
- 
-Index: linux-2.6.30/sound/soc/codecs/wm8971.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8971.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8971.c	2011-02-01 16:40:30.189047317 +0100
-@@ -59,44 +59,7 @@
- 	0x0079, 0x0079, 0x0079,          /* 40 */
- };
- 
--static inline unsigned int wm8971_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg < WM8971_REG_COUNT)
--		return cache[reg];
--
--	return -1;
--}
--
--static inline void wm8971_write_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--	if (reg < WM8971_REG_COUNT)
--		cache[reg] = value;
--}
--
--static int wm8971_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[2];
--
--	/* data is
--	 *   D15..D9 WM8753 register offset
--	 *   D8...D0 register data
--	 */
--	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
--	data[1] = value & 0x00ff;
--
--	wm8971_write_reg_cache (codec, reg, value);
--	if (codec->hw_write(codec->control_data, data, 2) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
--#define wm8971_reset(c)	wm8971_write(c, WM8971_RESET, 0)
-+#define wm8971_reset(c)	snd_soc_write(c, WM8971_RESET, 0)
- 
- /* WM8971 Controls */
- static const char *wm8971_bass[] = { "Linear Control", "Adaptive Boost" };
-@@ -521,7 +484,7 @@
- 		return -EINVAL;
- 	}
- 
--	wm8971_write(codec, WM8971_IFACE, iface);
-+	snd_soc_write(codec, WM8971_IFACE, iface);
- 	return 0;
- }
- 
-@@ -533,8 +496,8 @@
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	struct wm8971_priv *wm8971 = codec->private_data;
--	u16 iface = wm8971_read_reg_cache(codec, WM8971_IFACE) & 0x1f3;
--	u16 srate = wm8971_read_reg_cache(codec, WM8971_SRATE) & 0x1c0;
-+	u16 iface = snd_soc_read(codec, WM8971_IFACE) & 0x1f3;
-+	u16 srate = snd_soc_read(codec, WM8971_SRATE) & 0x1c0;
- 	int coeff = get_coeff(wm8971->sysclk, params_rate(params));
- 
- 	/* bit size */
-@@ -553,9 +516,9 @@
- 	}
- 
- 	/* set iface & srate */
--	wm8971_write(codec, WM8971_IFACE, iface);
-+	snd_soc_write(codec, WM8971_IFACE, iface);
- 	if (coeff >= 0)
--		wm8971_write(codec, WM8971_SRATE, srate |
-+		snd_soc_write(codec, WM8971_SRATE, srate |
- 			(coeff_div[coeff].sr << 1) | coeff_div[coeff].usb);
- 
- 	return 0;
-@@ -564,33 +527,33 @@
- static int wm8971_mute(struct snd_soc_dai *dai, int mute)
- {
- 	struct snd_soc_codec *codec = dai->codec;
--	u16 mute_reg = wm8971_read_reg_cache(codec, WM8971_ADCDAC) & 0xfff7;
-+	u16 mute_reg = snd_soc_read(codec, WM8971_ADCDAC) & 0xfff7;
- 
- 	if (mute)
--		wm8971_write(codec, WM8971_ADCDAC, mute_reg | 0x8);
-+		snd_soc_write(codec, WM8971_ADCDAC, mute_reg | 0x8);
- 	else
--		wm8971_write(codec, WM8971_ADCDAC, mute_reg);
-+		snd_soc_write(codec, WM8971_ADCDAC, mute_reg);
- 	return 0;
- }
- 
- static int wm8971_set_bias_level(struct snd_soc_codec *codec,
- 	enum snd_soc_bias_level level)
- {
--	u16 pwr_reg = wm8971_read_reg_cache(codec, WM8971_PWR1) & 0xfe3e;
-+	u16 pwr_reg = snd_soc_read(codec, WM8971_PWR1) & 0xfe3e;
- 
- 	switch (level) {
- 	case SND_SOC_BIAS_ON:
- 		/* set vmid to 50k and unmute dac */
--		wm8971_write(codec, WM8971_PWR1, pwr_reg | 0x00c1);
-+		snd_soc_write(codec, WM8971_PWR1, pwr_reg | 0x00c1);
- 		break;
- 	case SND_SOC_BIAS_PREPARE:
- 		break;
- 	case SND_SOC_BIAS_STANDBY:
- 		/* mute dac and set vmid to 500k, enable VREF */
--		wm8971_write(codec, WM8971_PWR1, pwr_reg | 0x0140);
-+		snd_soc_write(codec, WM8971_PWR1, pwr_reg | 0x0140);
- 		break;
- 	case SND_SOC_BIAS_OFF:
--		wm8971_write(codec, WM8971_PWR1, 0x0001);
-+		snd_soc_write(codec, WM8971_PWR1, 0x0001);
- 		break;
- 	}
- 	codec->bias_level = level;
-@@ -667,8 +630,8 @@
- 
- 	/* charge wm8971 caps */
- 	if (codec->suspend_bias_level == SND_SOC_BIAS_ON) {
--		reg = wm8971_read_reg_cache(codec, WM8971_PWR1) & 0xfe3e;
--		wm8971_write(codec, WM8971_PWR1, reg | 0x01c0);
-+		reg = snd_soc_read(codec, WM8971_PWR1) & 0xfe3e;
-+		snd_soc_write(codec, WM8971_PWR1, reg | 0x01c0);
- 		codec->bias_level = SND_SOC_BIAS_ON;
- 		queue_delayed_work(wm8971_workq, &codec->delayed_work,
- 			msecs_to_jiffies(1000));
-@@ -677,15 +640,14 @@
- 	return 0;
- }
- 
--static int wm8971_init(struct snd_soc_device *socdev)
-+static int wm8971_init(struct snd_soc_device *socdev,
-+		       enum snd_soc_control_type control)
- {
- 	struct snd_soc_codec *codec = socdev->card->codec;
- 	int reg, ret = 0;
- 
- 	codec->name = "WM8971";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8971_read_reg_cache;
--	codec->write = wm8971_write;
- 	codec->set_bias_level = wm8971_set_bias_level;
- 	codec->dai = &wm8971_dai;
- 	codec->reg_cache_size = ARRAY_SIZE(wm8971_reg);
-@@ -695,42 +657,48 @@
- 	if (codec->reg_cache == NULL)
- 		return -ENOMEM;
- 
-+	ret = snd_soc_codec_set_cache_io(codec, 7, 9, control);
-+	if (ret < 0) {
-+		printk(KERN_ERR "wm8971: failed to set cache I/O: %d\n", ret);
-+		goto err;
-+	}
-+
- 	wm8971_reset(codec);
- 
- 	/* register pcms */
- 	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
- 	if (ret < 0) {
- 		printk(KERN_ERR "wm8971: failed to create pcms\n");
--		goto pcm_err;
-+		goto err;
- 	}
- 
- 	/* charge output caps - set vmid to 5k for quick power up */
--	reg = wm8971_read_reg_cache(codec, WM8971_PWR1) & 0xfe3e;
--	wm8971_write(codec, WM8971_PWR1, reg | 0x01c0);
-+	reg = snd_soc_read(codec, WM8971_PWR1) & 0xfe3e;
-+	snd_soc_write(codec, WM8971_PWR1, reg | 0x01c0);
- 	codec->bias_level = SND_SOC_BIAS_STANDBY;
- 	queue_delayed_work(wm8971_workq, &codec->delayed_work,
- 		msecs_to_jiffies(1000));
- 
- 	/* set the update bits */
--	reg = wm8971_read_reg_cache(codec, WM8971_LDAC);
--	wm8971_write(codec, WM8971_LDAC, reg | 0x0100);
--	reg = wm8971_read_reg_cache(codec, WM8971_RDAC);
--	wm8971_write(codec, WM8971_RDAC, reg | 0x0100);
--
--	reg = wm8971_read_reg_cache(codec, WM8971_LOUT1V);
--	wm8971_write(codec, WM8971_LOUT1V, reg | 0x0100);
--	reg = wm8971_read_reg_cache(codec, WM8971_ROUT1V);
--	wm8971_write(codec, WM8971_ROUT1V, reg | 0x0100);
--
--	reg = wm8971_read_reg_cache(codec, WM8971_LOUT2V);
--	wm8971_write(codec, WM8971_LOUT2V, reg | 0x0100);
--	reg = wm8971_read_reg_cache(codec, WM8971_ROUT2V);
--	wm8971_write(codec, WM8971_ROUT2V, reg | 0x0100);
--
--	reg = wm8971_read_reg_cache(codec, WM8971_LINVOL);
--	wm8971_write(codec, WM8971_LINVOL, reg | 0x0100);
--	reg = wm8971_read_reg_cache(codec, WM8971_RINVOL);
--	wm8971_write(codec, WM8971_RINVOL, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8971_LDAC);
-+	snd_soc_write(codec, WM8971_LDAC, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8971_RDAC);
-+	snd_soc_write(codec, WM8971_RDAC, reg | 0x0100);
-+
-+	reg = snd_soc_read(codec, WM8971_LOUT1V);
-+	snd_soc_write(codec, WM8971_LOUT1V, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8971_ROUT1V);
-+	snd_soc_write(codec, WM8971_ROUT1V, reg | 0x0100);
-+
-+	reg = snd_soc_read(codec, WM8971_LOUT2V);
-+	snd_soc_write(codec, WM8971_LOUT2V, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8971_ROUT2V);
-+	snd_soc_write(codec, WM8971_ROUT2V, reg | 0x0100);
-+
-+	reg = snd_soc_read(codec, WM8971_LINVOL);
-+	snd_soc_write(codec, WM8971_LINVOL, reg | 0x0100);
-+	reg = snd_soc_read(codec, WM8971_RINVOL);
-+	snd_soc_write(codec, WM8971_RINVOL, reg | 0x0100);
- 
- 	snd_soc_add_controls(codec, wm8971_snd_controls,
- 				ARRAY_SIZE(wm8971_snd_controls));
-@@ -745,7 +713,7 @@
- card_err:
- 	snd_soc_free_pcms(socdev);
- 	snd_soc_dapm_free(socdev);
--pcm_err:
-+err:
- 	kfree(codec->reg_cache);
- 	return ret;
- }
-@@ -767,7 +735,7 @@
- 
- 	codec->control_data = i2c;
- 
--	ret = wm8971_init(socdev);
-+	ret = wm8971_init(socdev, SND_SOC_I2C);
- 	if (ret < 0)
- 		pr_err("failed to initialise WM8971\n");
- 
-@@ -877,7 +845,6 @@
- 
- #if defined (CONFIG_I2C) || defined (CONFIG_I2C_MODULE)
- 	if (setup->i2c_address) {
--		codec->hw_write = (hw_write_t)i2c_master_send;
- 		ret = wm8971_add_i2c_device(pdev, setup);
- 	}
- #endif
-Index: linux-2.6.30/sound/soc/codecs/wm8990.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm8990.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm8990.c	2011-02-01 16:40:30.189047317 +0100
-@@ -108,53 +108,7 @@
- 	0x0000,	    /* R63 - Driver internal */
- };
- 
--/*
-- * read wm8990 register cache
-- */
--static inline unsigned int wm8990_read_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg)
--{
--	u16 *cache = codec->reg_cache;
--	BUG_ON(reg >= ARRAY_SIZE(wm8990_reg));
--	return cache[reg];
--}
--
--/*
-- * write wm8990 register cache
-- */
--static inline void wm8990_write_reg_cache(struct snd_soc_codec *codec,
--	unsigned int reg, unsigned int value)
--{
--	u16 *cache = codec->reg_cache;
--
--	/* Reset register and reserved registers are uncached */
--	if (reg == 0 || reg >= ARRAY_SIZE(wm8990_reg))
--		return;
--
--	cache[reg] = value;
--}
--
--/*
-- * write to the wm8990 register space
-- */
--static int wm8990_write(struct snd_soc_codec *codec, unsigned int reg,
--	unsigned int value)
--{
--	u8 data[3];
--
--	data[0] = reg & 0xFF;
--	data[1] = (value >> 8) & 0xFF;
--	data[2] = value & 0xFF;
--
--	wm8990_write_reg_cache(codec, reg, value);
--
--	if (codec->hw_write(codec->control_data, data, 3) == 2)
--		return 0;
--	else
--		return -EIO;
--}
--
--#define wm8990_reset(c) wm8990_write(c, WM8990_RESET, 0)
-+#define wm8990_reset(c) snd_soc_write(c, WM8990_RESET, 0)
- 
- static const DECLARE_TLV_DB_LINEAR(rec_mix_tlv, -1500, 600);
- 
-@@ -187,8 +141,8 @@
- 		return ret;
- 
- 	/* now hit the volume update bits (always bit 8) */
--	val = wm8990_read_reg_cache(codec, reg);
--	return wm8990_write(codec, reg, val | 0x0100);
-+	val = snd_soc_read(codec, reg);
-+	return snd_soc_write(codec, reg, val | 0x0100);
- }
- 
- #define SOC_WM899X_OUTPGA_SINGLE_R_TLV(xname, reg, shift, max, invert,\
-@@ -427,8 +381,8 @@
- {
- 	u16 reg, fakepower;
- 
--	reg = wm8990_read_reg_cache(w->codec, WM8990_POWER_MANAGEMENT_2);
--	fakepower = wm8990_read_reg_cache(w->codec, WM8990_INTDRIVBITS);
-+	reg = snd_soc_read(w->codec, WM8990_POWER_MANAGEMENT_2);
-+	fakepower = snd_soc_read(w->codec, WM8990_INTDRIVBITS);
- 
- 	if (fakepower & ((1 << WM8990_INMIXL_PWR_BIT) |
- 		(1 << WM8990_AINLMUX_PWR_BIT))) {
-@@ -443,7 +397,7 @@
- 	} else {
- 		reg &= ~WM8990_AINL_ENA;
- 	}
--	wm8990_write(w->codec, WM8990_POWER_MANAGEMENT_2, reg);
-+	snd_soc_write(w->codec, WM8990_POWER_MANAGEMENT_2, reg);
- 
- 	return 0;
- }
-@@ -457,7 +411,7 @@
- 
- 	switch (reg_shift) {
- 	case WM8990_SPEAKER_MIXER | (WM8990_LDSPK_BIT << 8) :
--		reg = wm8990_read_reg_cache(w->codec, WM8990_OUTPUT_MIXER1);
-+		reg = snd_soc_read(w->codec, WM8990_OUTPUT_MIXER1);
- 		if (reg & WM8990_LDLO) {
- 			printk(KERN_WARNING
- 			"Cannot set as Output Mixer 1 LDLO Set\n");
-@@ -465,7 +419,7 @@
- 		}
- 		break;
- 	case WM8990_SPEAKER_MIXER | (WM8990_RDSPK_BIT << 8):
--		reg = wm8990_read_reg_cache(w->codec, WM8990_OUTPUT_MIXER2);
-+		reg = snd_soc_read(w->codec, WM8990_OUTPUT_MIXER2);
- 		if (reg & WM8990_RDRO) {
- 			printk(KERN_WARNING
- 			"Cannot set as Output Mixer 2 RDRO Set\n");
-@@ -473,7 +427,7 @@
- 		}
- 		break;
- 	case WM8990_OUTPUT_MIXER1 | (WM8990_LDLO_BIT << 8):
--		reg = wm8990_read_reg_cache(w->codec, WM8990_SPEAKER_MIXER);
-+		reg = snd_soc_read(w->codec, WM8990_SPEAKER_MIXER);
- 		if (reg & WM8990_LDSPK) {
- 			printk(KERN_WARNING
- 			"Cannot set as Speaker Mixer LDSPK Set\n");
-@@ -481,7 +435,7 @@
- 		}
- 		break;
- 	case WM8990_OUTPUT_MIXER2 | (WM8990_RDRO_BIT << 8):
--		reg = wm8990_read_reg_cache(w->codec, WM8990_SPEAKER_MIXER);
-+		reg = snd_soc_read(w->codec, WM8990_SPEAKER_MIXER);
- 		if (reg & WM8990_RDSPK) {
- 			printk(KERN_WARNING
- 			"Cannot set as Speaker Mixer RDSPK Set\n");
-@@ -998,7 +952,7 @@
- 
- 	if ((Ndiv < 6) || (Ndiv > 12))
- 		printk(KERN_WARNING
--		"WM8990 N value outwith recommended range! N = %d\n", Ndiv);
-+		"WM8990 N value outwith recommended range! N = %u\n", Ndiv);
- 
- 	pll_div->n = Ndiv;
- 	Nmod = target % source;
-@@ -1018,8 +972,8 @@
- 	pll_div->k = K;
- }
- 
--static int wm8990_set_dai_pll(struct snd_soc_dai *codec_dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out)
-+static int wm8990_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
-+		int source, unsigned int freq_in, unsigned int freq_out)
- {
- 	u16 reg;
- 	struct snd_soc_codec *codec = codec_dai->codec;
-@@ -1029,24 +983,24 @@
- 		pll_factors(&pll_div, freq_out * 4, freq_in);
- 
- 		/* Turn on PLL */
--		reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
-+		reg = snd_soc_read(codec, WM8990_POWER_MANAGEMENT_2);
- 		reg |= WM8990_PLL_ENA;
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_2, reg);
- 
- 		/* sysclk comes from PLL */
--		reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2);
--		wm8990_write(codec, WM8990_CLOCKING_2, reg | WM8990_SYSCLK_SRC);
-+		reg = snd_soc_read(codec, WM8990_CLOCKING_2);
-+		snd_soc_write(codec, WM8990_CLOCKING_2, reg | WM8990_SYSCLK_SRC);
- 
- 		/* set up N , fractional mode and pre-divisor if neccessary */
--		wm8990_write(codec, WM8990_PLL1, pll_div.n | WM8990_SDM |
-+		snd_soc_write(codec, WM8990_PLL1, pll_div.n | WM8990_SDM |
- 			(pll_div.div2?WM8990_PRESCALE:0));
--		wm8990_write(codec, WM8990_PLL2, (u8)(pll_div.k>>8));
--		wm8990_write(codec, WM8990_PLL3, (u8)(pll_div.k & 0xFF));
-+		snd_soc_write(codec, WM8990_PLL2, (u8)(pll_div.k>>8));
-+		snd_soc_write(codec, WM8990_PLL3, (u8)(pll_div.k & 0xFF));
- 	} else {
- 		/* Turn on PLL */
--		reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
-+		reg = snd_soc_read(codec, WM8990_POWER_MANAGEMENT_2);
- 		reg &= ~WM8990_PLL_ENA;
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_2, reg);
- 	}
- 	return 0;
- }
-@@ -1073,8 +1027,8 @@
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	u16 audio1, audio3;
- 
--	audio1 = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_1);
--	audio3 = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_3);
-+	audio1 = snd_soc_read(codec, WM8990_AUDIO_INTERFACE_1);
-+	audio3 = snd_soc_read(codec, WM8990_AUDIO_INTERFACE_3);
- 
- 	/* set master/slave audio interface */
- 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
-@@ -1115,8 +1069,8 @@
- 		return -EINVAL;
- 	}
- 
--	wm8990_write(codec, WM8990_AUDIO_INTERFACE_1, audio1);
--	wm8990_write(codec, WM8990_AUDIO_INTERFACE_3, audio3);
-+	snd_soc_write(codec, WM8990_AUDIO_INTERFACE_1, audio1);
-+	snd_soc_write(codec, WM8990_AUDIO_INTERFACE_3, audio3);
- 	return 0;
- }
- 
-@@ -1128,24 +1082,24 @@
- 
- 	switch (div_id) {
- 	case WM8990_MCLK_DIV:
--		reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2) &
-+		reg = snd_soc_read(codec, WM8990_CLOCKING_2) &
- 			~WM8990_MCLK_DIV_MASK;
--		wm8990_write(codec, WM8990_CLOCKING_2, reg | div);
-+		snd_soc_write(codec, WM8990_CLOCKING_2, reg | div);
- 		break;
- 	case WM8990_DACCLK_DIV:
--		reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2) &
-+		reg = snd_soc_read(codec, WM8990_CLOCKING_2) &
- 			~WM8990_DAC_CLKDIV_MASK;
--		wm8990_write(codec, WM8990_CLOCKING_2, reg | div);
-+		snd_soc_write(codec, WM8990_CLOCKING_2, reg | div);
- 		break;
- 	case WM8990_ADCCLK_DIV:
--		reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_2) &
-+		reg = snd_soc_read(codec, WM8990_CLOCKING_2) &
- 			~WM8990_ADC_CLKDIV_MASK;
--		wm8990_write(codec, WM8990_CLOCKING_2, reg | div);
-+		snd_soc_write(codec, WM8990_CLOCKING_2, reg | div);
- 		break;
- 	case WM8990_BCLK_DIV:
--		reg = wm8990_read_reg_cache(codec, WM8990_CLOCKING_1) &
-+		reg = snd_soc_read(codec, WM8990_CLOCKING_1) &
- 			~WM8990_BCLK_DIV_MASK;
--		wm8990_write(codec, WM8990_CLOCKING_1, reg | div);
-+		snd_soc_write(codec, WM8990_CLOCKING_1, reg | div);
- 		break;
- 	default:
- 		return -EINVAL;
-@@ -1164,7 +1118,7 @@
- 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
- 	struct snd_soc_device *socdev = rtd->socdev;
- 	struct snd_soc_codec *codec = socdev->card->codec;
--	u16 audio1 = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_1);
-+	u16 audio1 = snd_soc_read(codec, WM8990_AUDIO_INTERFACE_1);
- 
- 	audio1 &= ~WM8990_AIF_WL_MASK;
- 	/* bit size */
-@@ -1182,7 +1136,7 @@
- 		break;
- 	}
- 
--	wm8990_write(codec, WM8990_AUDIO_INTERFACE_1, audio1);
-+	snd_soc_write(codec, WM8990_AUDIO_INTERFACE_1, audio1);
- 	return 0;
- }
- 
-@@ -1191,12 +1145,12 @@
- 	struct snd_soc_codec *codec = dai->codec;
- 	u16 val;
- 
--	val  = wm8990_read_reg_cache(codec, WM8990_DAC_CTRL) & ~WM8990_DAC_MUTE;
-+	val  = snd_soc_read(codec, WM8990_DAC_CTRL) & ~WM8990_DAC_MUTE;
- 
- 	if (mute)
--		wm8990_write(codec, WM8990_DAC_CTRL, val | WM8990_DAC_MUTE);
-+		snd_soc_write(codec, WM8990_DAC_CTRL, val | WM8990_DAC_MUTE);
- 	else
--		wm8990_write(codec, WM8990_DAC_CTRL, val);
-+		snd_soc_write(codec, WM8990_DAC_CTRL, val);
- 
- 	return 0;
- }
-@@ -1212,21 +1166,21 @@
- 
- 	case SND_SOC_BIAS_PREPARE:
- 		/* VMID=2*50k */
--		val = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_1) &
-+		val = snd_soc_read(codec, WM8990_POWER_MANAGEMENT_1) &
- 			~WM8990_VMID_MODE_MASK;
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, val | 0x2);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, val | 0x2);
- 		break;
- 
- 	case SND_SOC_BIAS_STANDBY:
- 		if (codec->bias_level == SND_SOC_BIAS_OFF) {
- 			/* Enable all output discharge bits */
--			wm8990_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE |
-+			snd_soc_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE |
- 				WM8990_DIS_RLINE | WM8990_DIS_OUT3 |
- 				WM8990_DIS_OUT4 | WM8990_DIS_LOUT |
- 				WM8990_DIS_ROUT);
- 
- 			/* Enable POBCTRL, SOFT_ST, VMIDTOG and BUFDCOPEN */
--			wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
-+			snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
- 				     WM8990_BUFDCOPEN | WM8990_POBCTRL |
- 				     WM8990_VMIDTOG);
- 
-@@ -1234,83 +1188,83 @@
- 			msleep(msecs_to_jiffies(300));
- 
- 			/* Disable VMIDTOG */
--			wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
-+			snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
- 				     WM8990_BUFDCOPEN | WM8990_POBCTRL);
- 
- 			/* disable all output discharge bits */
--			wm8990_write(codec, WM8990_ANTIPOP1, 0);
-+			snd_soc_write(codec, WM8990_ANTIPOP1, 0);
- 
- 			/* Enable outputs */
--			wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1b00);
-+			snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1b00);
- 
- 			msleep(msecs_to_jiffies(50));
- 
- 			/* Enable VMID at 2x50k */
--			wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f02);
-+			snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f02);
- 
- 			msleep(msecs_to_jiffies(100));
- 
- 			/* Enable VREF */
--			wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f03);
-+			snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f03);
- 
- 			msleep(msecs_to_jiffies(600));
- 
- 			/* Enable BUFIOEN */
--			wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
-+			snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
- 				     WM8990_BUFDCOPEN | WM8990_POBCTRL |
- 				     WM8990_BUFIOEN);
- 
- 			/* Disable outputs */
--			wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x3);
-+			snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x3);
- 
- 			/* disable POBCTRL, SOFT_ST and BUFDCOPEN */
--			wm8990_write(codec, WM8990_ANTIPOP2, WM8990_BUFIOEN);
-+			snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_BUFIOEN);
- 
- 			/* Enable workaround for ADC clocking issue. */
--			wm8990_write(codec, WM8990_EXT_ACCESS_ENA, 0x2);
--			wm8990_write(codec, WM8990_EXT_CTL1, 0xa003);
--			wm8990_write(codec, WM8990_EXT_ACCESS_ENA, 0);
-+			snd_soc_write(codec, WM8990_EXT_ACCESS_ENA, 0x2);
-+			snd_soc_write(codec, WM8990_EXT_CTL1, 0xa003);
-+			snd_soc_write(codec, WM8990_EXT_ACCESS_ENA, 0);
- 		}
- 
- 		/* VMID=2*250k */
--		val = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_1) &
-+		val = snd_soc_read(codec, WM8990_POWER_MANAGEMENT_1) &
- 			~WM8990_VMID_MODE_MASK;
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, val | 0x4);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, val | 0x4);
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
- 		/* Enable POBCTRL and SOFT_ST */
--		wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
-+		snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
- 			WM8990_POBCTRL | WM8990_BUFIOEN);
- 
- 		/* Enable POBCTRL, SOFT_ST and BUFDCOPEN */
--		wm8990_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
-+		snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST |
- 			WM8990_BUFDCOPEN | WM8990_POBCTRL |
- 			WM8990_BUFIOEN);
- 
- 		/* mute DAC */
--		val = wm8990_read_reg_cache(codec, WM8990_DAC_CTRL);
--		wm8990_write(codec, WM8990_DAC_CTRL, val | WM8990_DAC_MUTE);
-+		val = snd_soc_read(codec, WM8990_DAC_CTRL);
-+		snd_soc_write(codec, WM8990_DAC_CTRL, val | WM8990_DAC_MUTE);
- 
- 		/* Enable any disabled outputs */
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f03);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f03);
- 
- 		/* Disable VMID */
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f01);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f01);
- 
- 		msleep(msecs_to_jiffies(300));
- 
- 		/* Enable all output discharge bits */
--		wm8990_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE |
-+		snd_soc_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE |
- 			WM8990_DIS_RLINE | WM8990_DIS_OUT3 |
- 			WM8990_DIS_OUT4 | WM8990_DIS_LOUT |
- 			WM8990_DIS_ROUT);
- 
- 		/* Disable VREF */
--		wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, 0x0);
-+		snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x0);
- 
- 		/* disable POBCTRL, SOFT_ST and BUFDCOPEN */
--		wm8990_write(codec, WM8990_ANTIPOP2, 0x0);
-+		snd_soc_write(codec, WM8990_ANTIPOP2, 0x0);
- 		break;
- 	}
- 
-@@ -1411,8 +1365,6 @@
- 
- 	codec->name = "WM8990";
- 	codec->owner = THIS_MODULE;
--	codec->read = wm8990_read_reg_cache;
--	codec->write = wm8990_write;
- 	codec->set_bias_level = wm8990_set_bias_level;
- 	codec->dai = &wm8990_dai;
- 	codec->num_dai = 2;
-@@ -1422,6 +1374,12 @@
- 	if (codec->reg_cache == NULL)
- 		return -ENOMEM;
- 
-+	ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_I2C);
-+	if (ret < 0) {
-+		printk(KERN_ERR "wm8990: failed to set cache I/O: %d\n", ret);
-+		goto pcm_err;
-+	}
-+
- 	wm8990_reset(codec);
- 
- 	/* register pcms */
-@@ -1435,18 +1393,18 @@
- 	codec->bias_level = SND_SOC_BIAS_OFF;
- 	wm8990_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 
--	reg = wm8990_read_reg_cache(codec, WM8990_AUDIO_INTERFACE_4);
--	wm8990_write(codec, WM8990_AUDIO_INTERFACE_4, reg | WM8990_ALRCGPIO1);
-+	reg = snd_soc_read(codec, WM8990_AUDIO_INTERFACE_4);
-+	snd_soc_write(codec, WM8990_AUDIO_INTERFACE_4, reg | WM8990_ALRCGPIO1);
- 
--	reg = wm8990_read_reg_cache(codec, WM8990_GPIO1_GPIO2) &
-+	reg = snd_soc_read(codec, WM8990_GPIO1_GPIO2) &
- 		~WM8990_GPIO1_SEL_MASK;
--	wm8990_write(codec, WM8990_GPIO1_GPIO2, reg | 1);
-+	snd_soc_write(codec, WM8990_GPIO1_GPIO2, reg | 1);
- 
--	reg = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_2);
--	wm8990_write(codec, WM8990_POWER_MANAGEMENT_2, reg | WM8990_OPCLK_ENA);
-+	reg = snd_soc_read(codec, WM8990_POWER_MANAGEMENT_2);
-+	snd_soc_write(codec, WM8990_POWER_MANAGEMENT_2, reg | WM8990_OPCLK_ENA);
- 
--	wm8990_write(codec, WM8990_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8));
--	wm8990_write(codec, WM8990_RIGHT_OUTPUT_VOLUME, 0x50 | (1<<8));
-+	snd_soc_write(codec, WM8990_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8));
-+	snd_soc_write(codec, WM8990_RIGHT_OUTPUT_VOLUME, 0x50 | (1<<8));
- 
- 	snd_soc_add_controls(codec, wm8990_snd_controls,
- 				ARRAY_SIZE(wm8990_snd_controls));
-Index: linux-2.6.30/sound/soc/codecs/wm9705.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm9705.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm9705.c	2011-02-01 16:40:30.193007582 +0100
-@@ -282,14 +282,14 @@
- 			.channels_min = 1,
- 			.channels_max = 2,
- 			.rates = WM9705_AC97_RATES,
--			.formats = SNDRV_PCM_FMTBIT_S16_LE,
-+			.formats = SND_SOC_STD_AC97_FMTS,
- 		},
- 		.capture = {
- 			.stream_name = "HiFi Capture",
- 			.channels_min = 1,
- 			.channels_max = 2,
- 			.rates = WM9705_AC97_RATES,
--			.formats = SNDRV_PCM_FMTBIT_S16_LE,
-+			.formats = SND_SOC_STD_AC97_FMTS,
- 		},
- 		.ops = &wm9705_dai_ops,
- 	},
-@@ -406,7 +406,7 @@
- 	ret = snd_soc_init_card(socdev);
- 	if (ret < 0) {
- 		printk(KERN_ERR "wm9705: failed to register card\n");
--		goto pcm_err;
-+		goto reset_err;
- 	}
- 
- 	return 0;
-Index: linux-2.6.30/sound/soc/codecs/wm9712.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm9712.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm9712.c	2011-02-01 16:40:30.193007582 +0100
-@@ -534,13 +534,13 @@
- 		.channels_min = 1,
- 		.channels_max = 2,
- 		.rates = WM9712_AC97_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.capture = {
- 		.stream_name = "HiFi Capture",
- 		.channels_min = 1,
- 		.channels_max = 2,
- 		.rates = WM9712_AC97_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.ops = &wm9712_dai_ops_hifi,
- },
- {
-@@ -550,7 +550,7 @@
- 		.channels_min = 1,
- 		.channels_max = 1,
- 		.rates = WM9712_AC97_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.ops = &wm9712_dai_ops_aux,
- }
- };
-@@ -585,6 +585,8 @@
- 	}
- 
- 	soc_ac97_ops.reset(codec->ac97);
-+	if (soc_ac97_ops.warm_reset)
-+		soc_ac97_ops.warm_reset(codec->ac97);
- 	if (ac97_read(codec, 0) != wm9712_reg[0])
- 		goto err;
- 	return 0;
-Index: linux-2.6.30/sound/soc/codecs/wm9713.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/codecs/wm9713.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/codecs/wm9713.c	2011-02-01 16:40:30.193007582 +0100
-@@ -189,6 +189,26 @@
- SOC_SINGLE("3D Depth", AC97_REC_GAIN_MIC, 0, 15, 1),
- };
- 
-+static int wm9713_voice_shutdown(struct snd_soc_dapm_widget *w,
-+				 struct snd_kcontrol *kcontrol, int event)
-+{
-+	struct snd_soc_codec *codec = w->codec;
-+	u16 status, rate;
-+
-+	BUG_ON(event != SND_SOC_DAPM_PRE_PMD);
-+
-+	/* Gracefully shut down the voice interface. */
-+	status = ac97_read(codec, AC97_EXTENDED_MID) | 0x1000;
-+	rate = ac97_read(codec, AC97_HANDSET_RATE) & 0xF0FF;
-+	ac97_write(codec, AC97_HANDSET_RATE, rate | 0x0200);
-+	schedule_timeout_interruptible(msecs_to_jiffies(1));
-+	ac97_write(codec, AC97_HANDSET_RATE, rate | 0x0F00);
-+	ac97_write(codec, AC97_EXTENDED_MID, status);
-+
-+	return 0;
-+}
-+
-+
- /* We have to create a fake left and right HP mixers because
-  * the codec only has a single control that is shared by both channels.
-  * This makes it impossible to determine the audio path using the current
-@@ -400,7 +420,8 @@
- SND_SOC_DAPM_MIXER("HP Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
- SND_SOC_DAPM_MIXER("Line Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
- SND_SOC_DAPM_MIXER("Capture Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
--SND_SOC_DAPM_DAC("Voice DAC", "Voice Playback", AC97_EXTENDED_MID, 12, 1),
-+SND_SOC_DAPM_DAC_E("Voice DAC", "Voice Playback", AC97_EXTENDED_MID, 12, 1,
-+		   wm9713_voice_shutdown, SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_DAC("Aux DAC", "Aux Playback", AC97_EXTENDED_MID, 11, 1),
- SND_SOC_DAPM_PGA("Left ADC", AC97_EXTENDED_MID, 5, 1, NULL, 0),
- SND_SOC_DAPM_PGA("Right ADC", AC97_EXTENDED_MID, 4, 1, NULL, 0),
-@@ -689,7 +710,7 @@
- 	Ndiv = target / source;
- 	if ((Ndiv < 5) || (Ndiv > 12))
- 		printk(KERN_WARNING
--			"WM9713 PLL N value %d out of recommended range!\n",
-+			"WM9713 PLL N value %u out of recommended range!\n",
- 			Ndiv);
- 
- 	pll_div->n = Ndiv;
-@@ -779,8 +800,8 @@
- 	return 0;
- }
- 
--static int wm9713_set_dai_pll(struct snd_soc_dai *codec_dai,
--		int pll_id, unsigned int freq_in, unsigned int freq_out)
-+static int wm9713_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
-+		int source, unsigned int freq_in, unsigned int freq_out)
- {
- 	struct snd_soc_codec *codec = codec_dai->codec;
- 	return wm9713_set_pll(codec, pll_id, freq_in, freq_out);
-@@ -936,21 +957,6 @@
- 	return 0;
- }
- 
--static void wm9713_voiceshutdown(struct snd_pcm_substream *substream,
--				 struct snd_soc_dai *dai)
--{
--	struct snd_soc_codec *codec = dai->codec;
--	u16 status, rate;
--
--	/* Gracefully shut down the voice interface. */
--	status = ac97_read(codec, AC97_EXTENDED_STATUS) | 0x1000;
--	rate = ac97_read(codec, AC97_HANDSET_RATE) & 0xF0FF;
--	ac97_write(codec, AC97_HANDSET_RATE, rate | 0x0200);
--	schedule_timeout_interruptible(msecs_to_jiffies(1));
--	ac97_write(codec, AC97_HANDSET_RATE, rate | 0x0F00);
--	ac97_write(codec, AC97_EXTENDED_MID, status);
--}
--
- static int ac97_hifi_prepare(struct snd_pcm_substream *substream,
- 			     struct snd_soc_dai *dai)
- {
-@@ -1019,7 +1025,6 @@
- 
- static struct snd_soc_dai_ops wm9713_dai_ops_voice = {
- 	.hw_params	= wm9713_pcm_hw_params,
--	.shutdown	= wm9713_voiceshutdown,
- 	.set_clkdiv	= wm9713_set_dai_clkdiv,
- 	.set_pll	= wm9713_set_dai_pll,
- 	.set_fmt	= wm9713_set_dai_fmt,
-@@ -1035,13 +1040,13 @@
- 		.channels_min = 1,
- 		.channels_max = 2,
- 		.rates = WM9713_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.capture = {
- 		.stream_name = "HiFi Capture",
- 		.channels_min = 1,
- 		.channels_max = 2,
- 		.rates = WM9713_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.ops = &wm9713_dai_ops_hifi,
- 	},
- 	{
-@@ -1051,7 +1056,7 @@
- 		.channels_min = 1,
- 		.channels_max = 1,
- 		.rates = WM9713_RATES,
--		.formats = SNDRV_PCM_FMTBIT_S16_LE,},
-+		.formats = SND_SOC_STD_AC97_FMTS,},
- 	.ops = &wm9713_dai_ops_aux,
- 	},
- 	{
-@@ -1069,6 +1074,7 @@
- 		.rates = WM9713_PCM_RATES,
- 		.formats = WM9713_PCM_FORMATS,},
- 	.ops = &wm9713_dai_ops_voice,
-+	.symmetric_rates = 1,
- 	},
- };
- EXPORT_SYMBOL_GPL(wm9713_dai);
-Index: linux-2.6.30/sound/soc/soc-cache.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/sound/soc/soc-cache.c	2011-02-01 16:40:30.193007582 +0100
-@@ -0,0 +1,258 @@
-+/*
-+ * soc-cache.c  --  ASoC register cache helpers
-+ *
-+ * Copyright 2009 Wolfson Microelectronics PLC.
-+ *
-+ * Author: Mark Brown <broonie at opensource.wolfsonmicro.com>
-+ *
-+ *  This program is free software; you can redistribute  it and/or modify it
-+ *  under  the terms of  the GNU General  Public License as published by the
-+ *  Free Software Foundation;  either version 2 of the  License, or (at your
-+ *  option) any later version.
-+ */
-+
-+#include <linux/i2c.h>
-+#include <linux/spi/spi.h>
-+#include <sound/soc.h>
-+
-+static unsigned int snd_soc_7_9_read(struct snd_soc_codec *codec,
-+				     unsigned int reg)
-+{
-+	u16 *cache = codec->reg_cache;
-+	if (reg >= codec->reg_cache_size)
-+		return -1;
-+	return cache[reg];
-+}
-+
-+static int snd_soc_7_9_write(struct snd_soc_codec *codec, unsigned int reg,
-+			     unsigned int value)
-+{
-+	u16 *cache = codec->reg_cache;
-+	u8 data[2];
-+	int ret;
-+
-+	BUG_ON(codec->volatile_register);
-+
-+	data[0] = (reg << 1) | ((value >> 8) & 0x0001);
-+	data[1] = value & 0x00ff;
-+
-+	if (reg < codec->reg_cache_size)
-+		cache[reg] = value;
-+	ret = codec->hw_write(codec->control_data, data, 2);
-+	if (ret == 2)
-+		return 0;
-+	if (ret < 0)
-+		return ret;
-+	else
-+		return -EIO;
-+}
-+
-+#if defined(CONFIG_SPI_MASTER)
-+static int snd_soc_7_9_spi_write(void *control_data, const char *data,
-+				 int len)
-+{
-+	struct spi_device *spi = control_data;
-+	struct spi_transfer t;
-+	struct spi_message m;
-+	u8 msg[2];
-+
-+	if (len <= 0)
-+		return 0;
-+
-+	msg[0] = data[0];
-+	msg[1] = data[1];
-+
-+	spi_message_init(&m);
-+	memset(&t, 0, (sizeof t));
-+
-+	t.tx_buf = &msg[0];
-+	t.len = len;
-+
-+	spi_message_add_tail(&t, &m);
-+	spi_sync(spi, &m);
-+
-+	return len;
-+}
-+#else
-+#define snd_soc_7_9_spi_write NULL
-+#endif
-+
-+static int snd_soc_8_8_write(struct snd_soc_codec *codec, unsigned int reg,
-+			     unsigned int value)
-+{
-+	u8 *cache = codec->reg_cache;
-+	u8 data[2];
-+
-+	BUG_ON(codec->volatile_register);
-+
-+	data[0] = reg & 0xff;
-+	data[1] = value & 0xff;
-+
-+	if (reg < codec->reg_cache_size)
-+		cache[reg] = value;
-+
-+	if (codec->hw_write(codec->control_data, data, 2) == 2)
-+		return 0;
-+	else
-+		return -EIO;
-+}
-+
-+static unsigned int snd_soc_8_8_read(struct snd_soc_codec *codec,
-+				     unsigned int reg)
-+{
-+	u8 *cache = codec->reg_cache;
-+	if (reg >= codec->reg_cache_size)
-+		return -1;
-+	return cache[reg];
-+}
-+
-+static int snd_soc_8_16_write(struct snd_soc_codec *codec, unsigned int reg,
-+			      unsigned int value)
-+{
-+	u16 *reg_cache = codec->reg_cache;
-+	u8 data[3];
-+
-+	data[0] = reg;
-+	data[1] = (value >> 8) & 0xff;
-+	data[2] = value & 0xff;
-+
-+	if (!snd_soc_codec_volatile_register(codec, reg))
-+		reg_cache[reg] = value;
-+
-+	if (codec->hw_write(codec->control_data, data, 3) == 3)
-+		return 0;
-+	else
-+		return -EIO;
-+}
-+
-+static unsigned int snd_soc_8_16_read(struct snd_soc_codec *codec,
-+				      unsigned int reg)
-+{
-+	u16 *cache = codec->reg_cache;
-+
-+	if (reg >= codec->reg_cache_size ||
-+	    snd_soc_codec_volatile_register(codec, reg))
-+		return codec->hw_read(codec, reg);
-+	else
-+		return cache[reg];
-+}
-+
-+#if defined(CONFIG_I2C) || (defined(CONFIG_I2C_MODULE) && defined(MODULE))
-+static unsigned int snd_soc_8_16_read_i2c(struct snd_soc_codec *codec,
-+					  unsigned int r)
-+{
-+	struct i2c_msg xfer[2];
-+	u8 reg = r;
-+	u16 data;
-+	int ret;
-+	struct i2c_client *client = codec->control_data;
-+
-+	/* Write register */
-+	xfer[0].addr = client->addr;
-+	xfer[0].flags = 0;
-+	xfer[0].len = 1;
-+	xfer[0].buf = &reg;
-+
-+	/* Read data */
-+	xfer[1].addr = client->addr;
-+	xfer[1].flags = I2C_M_RD;
-+	xfer[1].len = 2;
-+	xfer[1].buf = (u8 *)&data;
-+
-+	ret = i2c_transfer(client->adapter, xfer, 2);
-+	if (ret != 2) {
-+		dev_err(&client->dev, "i2c_transfer() returned %d\n", ret);
-+		return 0;
-+	}
-+
-+	return (data >> 8) | ((data & 0xff) << 8);
-+}
-+#else
-+#define snd_soc_8_16_read_i2c NULL
-+#endif
-+
-+static struct {
-+	int addr_bits;
-+	int data_bits;
-+	int (*write)(struct snd_soc_codec *codec, unsigned int, unsigned int);
-+	int (*spi_write)(void *, const char *, int);
-+	unsigned int (*read)(struct snd_soc_codec *, unsigned int);
-+	unsigned int (*i2c_read)(struct snd_soc_codec *, unsigned int);
-+} io_types[] = {
-+	{
-+		.addr_bits = 7, .data_bits = 9,
-+		.write = snd_soc_7_9_write, .read = snd_soc_7_9_read,
-+		.spi_write = snd_soc_7_9_spi_write 
-+	},
-+	{
-+		.addr_bits = 8, .data_bits = 8,
-+		.write = snd_soc_8_8_write, .read = snd_soc_8_8_read,
-+	},
-+	{
-+		.addr_bits = 8, .data_bits = 16,
-+		.write = snd_soc_8_16_write, .read = snd_soc_8_16_read,
-+		.i2c_read = snd_soc_8_16_read_i2c,
-+	},
-+};
-+
-+/**
-+ * snd_soc_codec_set_cache_io: Set up standard I/O functions.
-+ *
-+ * @codec: CODEC to configure.
-+ * @type: Type of cache.
-+ * @addr_bits: Number of bits of register address data.
-+ * @data_bits: Number of bits of data per register.
-+ * @control: Control bus used.
-+ *
-+ * Register formats are frequently shared between many I2C and SPI
-+ * devices.  In order to promote code reuse the ASoC core provides
-+ * some standard implementations of CODEC read and write operations
-+ * which can be set up using this function.
-+ *
-+ * The caller is responsible for allocating and initialising the
-+ * actual cache.
-+ *
-+ * Note that at present this code cannot be used by CODECs with
-+ * volatile registers.
-+ */
-+int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
-+			       int addr_bits, int data_bits,
-+			       enum snd_soc_control_type control)
-+{
-+	int i;
-+
-+	for (i = 0; i < ARRAY_SIZE(io_types); i++)
-+		if (io_types[i].addr_bits == addr_bits &&
-+		    io_types[i].data_bits == data_bits)
-+			break;
-+	if (i == ARRAY_SIZE(io_types)) {
-+		printk(KERN_ERR
-+		       "No I/O functions for %d bit address %d bit data\n",
-+		       addr_bits, data_bits);
-+		return -EINVAL;
-+	}
-+
-+	codec->write = io_types[i].write;
-+	codec->read = io_types[i].read;
-+
-+	switch (control) {
-+	case SND_SOC_CUSTOM:
-+		break;
-+
-+	case SND_SOC_I2C:
-+#if defined(CONFIG_I2C) || (defined(CONFIG_I2C_MODULE) && defined(MODULE))
-+		codec->hw_write = (hw_write_t)i2c_master_send;
-+#endif
-+		if (io_types[i].i2c_read)
-+			codec->hw_read = io_types[i].i2c_read;
-+		break;
-+
-+	case SND_SOC_SPI:
-+		if (io_types[i].spi_write)
-+			codec->hw_write = io_types[i].spi_write;
-+		break;
-+	}
-+
-+	return 0;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_codec_set_cache_io);
-Index: linux-2.6.30/sound/soc/soc-core.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/soc-core.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/soc-core.c	2011-02-01 16:40:30.193007582 +0100
-@@ -28,6 +28,7 @@
- #include <linux/bitops.h>
- #include <linux/debugfs.h>
- #include <linux/platform_device.h>
-+#include <sound/ac97_codec.h>
- #include <sound/core.h>
- #include <sound/pcm.h>
- #include <sound/pcm_params.h>
-@@ -113,6 +114,35 @@
- }
- #endif
- 
-+static int soc_pcm_apply_symmetry(struct snd_pcm_substream *substream)
-+{
-+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
-+	struct snd_soc_device *socdev = rtd->socdev;
-+	struct snd_soc_card *card = socdev->card;
-+	struct snd_soc_dai_link *machine = rtd->dai;
-+	struct snd_soc_dai *cpu_dai = machine->cpu_dai;
-+	struct snd_soc_dai *codec_dai = machine->codec_dai;
-+	int ret;
-+
-+	if (codec_dai->symmetric_rates || cpu_dai->symmetric_rates ||
-+	    machine->symmetric_rates) {
-+		dev_dbg(card->dev, "Symmetry forces %dHz rate\n", 
-+			machine->rate);
-+
-+		ret = snd_pcm_hw_constraint_minmax(substream->runtime,
-+						   SNDRV_PCM_HW_PARAM_RATE,
-+						   machine->rate,
-+						   machine->rate);
-+		if (ret < 0) {
-+			dev_err(card->dev,
-+				"Unable to apply rate symmetry constraint: %d\n", ret);
-+			return ret;
-+		}
-+	}
-+
-+	return 0;
-+}
-+
- /*
-  * Called by ALSA when a PCM substream is opened, the runtime->hw record is
-  * then initialized and any private data can be allocated. This also calls
-@@ -221,6 +251,13 @@
- 		goto machine_err;
- 	}
- 
-+	/* Symmetry only applies if we've already got an active stream. */
-+	if (cpu_dai->active || codec_dai->active) {
-+		ret = soc_pcm_apply_symmetry(substream);
-+		if (ret != 0)
-+			goto machine_err;
-+	}
-+
- 	pr_debug("asoc: %s <-> %s info:\n", codec_dai->name, cpu_dai->name);
- 	pr_debug("asoc: rate mask 0x%x\n", runtime->hw.rates);
- 	pr_debug("asoc: min ch %d max ch %d\n", runtime->hw.channels_min,
-@@ -263,7 +300,6 @@
- {
- 	struct snd_soc_card *card = container_of(work, struct snd_soc_card,
- 						 delayed_work.work);
--	struct snd_soc_device *socdev = card->socdev;
- 	struct snd_soc_codec *codec = card->codec;
- 	struct snd_soc_dai *codec_dai;
- 	int i;
-@@ -279,27 +315,10 @@
- 
- 		/* are we waiting on this codec DAI stream */
- 		if (codec_dai->pop_wait == 1) {
--
--			/* Reduce power if no longer active */
--			if (codec->active == 0) {
--				pr_debug("pop wq D1 %s %s\n", codec->name,
--					 codec_dai->playback.stream_name);
--				snd_soc_dapm_set_bias_level(socdev,
--					SND_SOC_BIAS_PREPARE);
--			}
--
- 			codec_dai->pop_wait = 0;
- 			snd_soc_dapm_stream_event(codec,
- 				codec_dai->playback.stream_name,
- 				SND_SOC_DAPM_STREAM_STOP);
--
--			/* Fall into standby if no longer active */
--			if (codec->active == 0) {
--				pr_debug("pop wq D3 %s %s\n", codec->name,
--					 codec_dai->playback.stream_name);
--				snd_soc_dapm_set_bias_level(socdev,
--					SND_SOC_BIAS_STANDBY);
--			}
- 		}
- 	}
- 	mutex_unlock(&pcm_mutex);
-@@ -363,10 +382,6 @@
- 		snd_soc_dapm_stream_event(codec,
- 			codec_dai->capture.stream_name,
- 			SND_SOC_DAPM_STREAM_STOP);
--
--		if (codec->active == 0 && codec_dai->pop_wait == 0)
--			snd_soc_dapm_set_bias_level(socdev,
--						SND_SOC_BIAS_STANDBY);
- 	}
- 
- 	mutex_unlock(&pcm_mutex);
-@@ -431,36 +446,16 @@
- 		cancel_delayed_work(&card->delayed_work);
- 	}
- 
--	/* do we need to power up codec */
--	if (codec->bias_level != SND_SOC_BIAS_ON) {
--		snd_soc_dapm_set_bias_level(socdev,
--					    SND_SOC_BIAS_PREPARE);
--
--		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
--			snd_soc_dapm_stream_event(codec,
--					codec_dai->playback.stream_name,
--					SND_SOC_DAPM_STREAM_START);
--		else
--			snd_soc_dapm_stream_event(codec,
--					codec_dai->capture.stream_name,
--					SND_SOC_DAPM_STREAM_START);
--
--		snd_soc_dapm_set_bias_level(socdev, SND_SOC_BIAS_ON);
--		snd_soc_dai_digital_mute(codec_dai, 0);
--
--	} else {
--		/* codec already powered - power on widgets */
--		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
--			snd_soc_dapm_stream_event(codec,
--					codec_dai->playback.stream_name,
--					SND_SOC_DAPM_STREAM_START);
--		else
--			snd_soc_dapm_stream_event(codec,
--					codec_dai->capture.stream_name,
--					SND_SOC_DAPM_STREAM_START);
-+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-+		snd_soc_dapm_stream_event(codec,
-+					  codec_dai->playback.stream_name,
-+					  SND_SOC_DAPM_STREAM_START);
-+	else
-+		snd_soc_dapm_stream_event(codec,
-+					  codec_dai->capture.stream_name,
-+					  SND_SOC_DAPM_STREAM_START);
- 
--		snd_soc_dai_digital_mute(codec_dai, 0);
--	}
-+	snd_soc_dai_digital_mute(codec_dai, 0);
- 
- out:
- 	mutex_unlock(&pcm_mutex);
-@@ -521,6 +516,8 @@
- 		}
- 	}
- 
-+	machine->rate = params_rate(params);
-+
- out:
- 	mutex_unlock(&pcm_mutex);
- 	return ret;
-@@ -623,8 +620,9 @@
- 
- #ifdef CONFIG_PM
- /* powers down audio subsystem for suspend */
--static int soc_suspend(struct platform_device *pdev, pm_message_t state)
-+static int soc_suspend(struct device *dev)
- {
-+	struct platform_device *pdev = to_platform_device(dev);
- 	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
- 	struct snd_soc_card *card = socdev->card;
- 	struct snd_soc_platform *platform = card->platform;
-@@ -632,6 +630,12 @@
- 	struct snd_soc_codec *codec = card->codec;
- 	int i;
- 
-+	/* If the initialization of this soc device failed, there is no codec
-+	 * associated with it. Just bail out in this case.
-+	 */
-+	if (!codec)
-+		return 0;
-+
- 	/* Due to the resume being scheduled into a workqueue we could
- 	* suspend before that's finished - wait for it to complete.
- 	 */
-@@ -654,7 +658,7 @@
- 		snd_pcm_suspend_all(card->dai_link[i].pcm);
- 
- 	if (card->suspend_pre)
--		card->suspend_pre(pdev, state);
-+		card->suspend_pre(pdev, PMSG_SUSPEND);
- 
- 	for (i = 0; i < card->num_links; i++) {
- 		struct snd_soc_dai  *cpu_dai = card->dai_link[i].cpu_dai;
-@@ -680,7 +684,7 @@
- 	}
- 
- 	if (codec_dev->suspend)
--		codec_dev->suspend(pdev, state);
-+		codec_dev->suspend(pdev, PMSG_SUSPEND);
- 
- 	for (i = 0; i < card->num_links; i++) {
- 		struct snd_soc_dai *cpu_dai = card->dai_link[i].cpu_dai;
-@@ -689,7 +693,7 @@
- 	}
- 
- 	if (card->suspend_post)
--		card->suspend_post(pdev, state);
-+		card->suspend_post(pdev, PMSG_SUSPEND);
- 
- 	return 0;
- }
-@@ -763,8 +767,9 @@
- }
- 
- /* powers up audio subsystem after a suspend */
--static int soc_resume(struct platform_device *pdev)
-+static int soc_resume(struct device *dev)
- {
-+	struct platform_device *pdev = to_platform_device(dev);
- 	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
- 	struct snd_soc_card *card = socdev->card;
- 	struct snd_soc_dai *cpu_dai = card->dai_link[0].cpu_dai;
-@@ -786,6 +791,44 @@
- 	return 0;
- }
- 
-+/**
-+ * snd_soc_suspend_device: Notify core of device suspend
-+ *
-+ * @dev: Device being suspended.
-+ *
-+ * In order to ensure that the entire audio subsystem is suspended in a
-+ * coordinated fashion ASoC devices should suspend themselves when
-+ * called by ASoC.  When the standard kernel suspend process asks the
-+ * device to suspend it should call this function to initiate a suspend
-+ * of the entire ASoC card.
-+ *
-+ * \note Currently this function is stubbed out.
-+ */
-+int snd_soc_suspend_device(struct device *dev)
-+{
-+	return 0;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_suspend_device);
-+
-+/**
-+ * snd_soc_resume_device: Notify core of device resume
-+ *
-+ * @dev: Device being resumed.
-+ *
-+ * In order to ensure that the entire audio subsystem is resumed in a
-+ * coordinated fashion ASoC devices should resume themselves when called
-+ * by ASoC.  When the standard kernel resume process asks the device
-+ * to resume it should call this function.  Once all the components of
-+ * the card have notified that they are ready to be resumed the card
-+ * will be resumed.
-+ *
-+ * \note Currently this function is stubbed out.
-+ */
-+int snd_soc_resume_device(struct device *dev)
-+{
-+	return 0;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_resume_device);
- #else
- #define soc_suspend	NULL
- #define soc_resume	NULL
-@@ -979,16 +1022,39 @@
- 	return 0;
- }
- 
-+static int soc_poweroff(struct device *dev)
-+{
-+	struct platform_device *pdev = to_platform_device(dev);
-+	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
-+	struct snd_soc_card *card = socdev->card;
-+
-+	if (!card->instantiated)
-+		return 0;
-+
-+	/* Flush out pmdown_time work - we actually do want to run it
-+	 * now, we're shutting down so no imminent restart. */
-+	run_delayed_work(&card->delayed_work);
-+
-+	snd_soc_dapm_shutdown(socdev);
-+
-+	return 0;
-+}
-+
-+static struct dev_pm_ops soc_pm_ops = {
-+	.suspend = soc_suspend,
-+	.resume = soc_resume,
-+	.poweroff = soc_poweroff,
-+};
-+
- /* ASoC platform driver */
- static struct platform_driver soc_driver = {
- 	.driver		= {
- 		.name		= "soc-audio",
- 		.owner		= THIS_MODULE,
-+		.pm		= &soc_pm_ops,
- 	},
- 	.probe		= soc_probe,
- 	.remove		= soc_remove,
--	.suspend	= soc_suspend,
--	.resume		= soc_resume,
- };
- 
- /* create a new pcm */
-@@ -1060,6 +1126,23 @@
- 	return ret;
- }
- 
-+/**
-+ * snd_soc_codec_volatile_register: Report if a register is volatile.
-+ *
-+ * @codec: CODEC to query.
-+ * @reg: Register to query.
-+ *
-+ * Boolean function indiciating if a CODEC register is volatile.
-+ */
-+int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, int reg)
-+{
-+	if (codec->volatile_register)
-+		return codec->volatile_register(reg);
-+	else
-+		return 0;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_codec_volatile_register);
-+
- /* codec register dump */
- static ssize_t soc_codec_reg_show(struct snd_soc_codec *codec, char *buf)
- {
-@@ -1073,6 +1156,9 @@
- 
- 	count += sprintf(buf, "%s registers\n", codec->name);
- 	for (i = 0; i < codec->reg_cache_size; i += step) {
-+		if (codec->readable_register && !codec->readable_register(i))
-+			continue;
-+
- 		count += sprintf(buf + count, "%2x: ", i);
- 		if (count >= PAGE_SIZE - 1)
- 			break;
-@@ -1168,25 +1254,49 @@
- 
- static void soc_init_codec_debugfs(struct snd_soc_codec *codec)
- {
-+	char codec_root[128];
-+
-+	if (codec->dev)
-+		snprintf(codec_root, sizeof(codec_root),
-+			"%s.%s", codec->name, dev_name(codec->dev));
-+	else
-+		snprintf(codec_root, sizeof(codec_root),
-+			"%s", codec->name);
-+
-+	codec->debugfs_codec_root = debugfs_create_dir(codec_root,
-+						       debugfs_root);
-+	if (!codec->debugfs_codec_root) {
-+		printk(KERN_WARNING
-+		       "ASoC: Failed to create codec debugfs directory\n");
-+		return;
-+	}
-+
- 	codec->debugfs_reg = debugfs_create_file("codec_reg", 0644,
--						 debugfs_root, codec,
--						 &codec_reg_fops);
-+						 codec->debugfs_codec_root,
-+						 codec, &codec_reg_fops);
- 	if (!codec->debugfs_reg)
- 		printk(KERN_WARNING
- 		       "ASoC: Failed to create codec register debugfs file\n");
- 
- 	codec->debugfs_pop_time = debugfs_create_u32("dapm_pop_time", 0744,
--						     debugfs_root,
-+						     codec->debugfs_codec_root,
- 						     &codec->pop_time);
- 	if (!codec->debugfs_pop_time)
- 		printk(KERN_WARNING
- 		       "Failed to create pop time debugfs file\n");
-+
-+	codec->debugfs_dapm = debugfs_create_dir("dapm",
-+						 codec->debugfs_codec_root);
-+	if (!codec->debugfs_dapm)
-+		printk(KERN_WARNING
-+		       "Failed to create DAPM debugfs directory\n");
-+
-+	snd_soc_dapm_debugfs_init(codec);
- }
- 
- static void soc_cleanup_codec_debugfs(struct snd_soc_codec *codec)
- {
--	debugfs_remove(codec->debugfs_pop_time);
--	debugfs_remove(codec->debugfs_reg);
-+	debugfs_remove_recursive(codec->debugfs_codec_root);
- }
- 
- #else
-@@ -1262,10 +1372,10 @@
-  * Returns 1 for change else 0.
-  */
- int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg,
--				unsigned short mask, unsigned short value)
-+				unsigned int mask, unsigned int value)
- {
- 	int change;
--	unsigned short old, new;
-+	unsigned int old, new;
- 
- 	mutex_lock(&io_mutex);
- 	old = snd_soc_read(codec, reg);
-@@ -1292,10 +1402,10 @@
-  * Returns 1 for change else 0.
-  */
- int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg,
--				unsigned short mask, unsigned short value)
-+				unsigned int mask, unsigned int value)
- {
- 	int change;
--	unsigned short old, new;
-+	unsigned int old, new;
- 
- 	mutex_lock(&io_mutex);
- 	old = snd_soc_read(codec, reg);
-@@ -1334,6 +1444,7 @@
- 		return ret;
- 	}
- 
-+	codec->socdev = socdev;
- 	codec->card->dev = socdev->dev;
- 	codec->card->private_data = codec;
- 	strncpy(codec->card->driver, codec->name, sizeof(codec->card->driver));
-@@ -1378,14 +1489,20 @@
- 				continue;
- 			}
- 		}
--		if (card->dai_link[i].codec_dai->ac97_control)
-+		if (card->dai_link[i].codec_dai->ac97_control) {
- 			ac97 = 1;
-+			snd_ac97_dev_add_pdata(codec->ac97,
-+				card->dai_link[i].cpu_dai->ac97_pdata);
-+		}
- 	}
- 	snprintf(codec->card->shortname, sizeof(codec->card->shortname),
- 		 "%s",  card->name);
- 	snprintf(codec->card->longname, sizeof(codec->card->longname),
- 		 "%s (%s)", card->name, codec->name);
- 
-+	/* Make sure all DAPM widgets are instantiated */
-+	snd_soc_dapm_new_widgets(codec);
-+
- 	ret = snd_card_register(codec->card);
- 	if (ret < 0) {
- 		printk(KERN_ERR "asoc: failed to register soundcard for %s\n",
-@@ -1580,7 +1697,7 @@
- {
- 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short val, bitmask;
-+	unsigned int val, bitmask;
- 
- 	for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
- 		;
-@@ -1609,8 +1726,8 @@
- {
- 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short val;
--	unsigned short mask, bitmask;
-+	unsigned int val;
-+	unsigned int mask, bitmask;
- 
- 	for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
- 		;
-@@ -1646,7 +1763,7 @@
- {
- 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short reg_val, val, mux;
-+	unsigned int reg_val, val, mux;
- 
- 	reg_val = snd_soc_read(codec, e->reg);
- 	val = (reg_val >> e->shift_l) & e->mask;
-@@ -1685,8 +1802,8 @@
- {
- 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short val;
--	unsigned short mask;
-+	unsigned int val;
-+	unsigned int mask;
- 
- 	if (ucontrol->value.enumerated.item[0] > e->max - 1)
- 		return -EINVAL;
-@@ -1744,7 +1861,7 @@
- {
- 	int max = kcontrol->private_value;
- 
--	if (max == 1)
-+	if (max == 1 && !strstr(kcontrol->id.name, " Volume"))
- 		uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
- 	else
- 		uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
-@@ -1774,7 +1891,7 @@
- 	unsigned int shift = mc->shift;
- 	unsigned int rshift = mc->rshift;
- 
--	if (max == 1)
-+	if (max == 1 && !strstr(kcontrol->id.name, " Volume"))
- 		uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
- 	else
- 		uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
-@@ -1846,7 +1963,7 @@
- 	int max = mc->max;
- 	unsigned int mask = (1 << fls(max)) - 1;
- 	unsigned int invert = mc->invert;
--	unsigned short val, val2, val_mask;
-+	unsigned int val, val2, val_mask;
- 
- 	val = (ucontrol->value.integer.value[0] & mask);
- 	if (invert)
-@@ -1881,7 +1998,7 @@
- 		(struct soc_mixer_control *)kcontrol->private_value;
- 	int max = mc->max;
- 
--	if (max == 1)
-+	if (max == 1 && !strstr(kcontrol->id.name, " Volume"))
- 		uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
- 	else
- 		uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
-@@ -1912,7 +2029,7 @@
- 	unsigned int reg2 = mc->rreg;
- 	unsigned int shift = mc->shift;
- 	int max = mc->max;
--	unsigned int mask = (1<<fls(max))-1;
-+	unsigned int mask = (1 << fls(max)) - 1;
- 	unsigned int invert = mc->invert;
- 
- 	ucontrol->value.integer.value[0] =
-@@ -1952,7 +2069,7 @@
- 	unsigned int mask = (1 << fls(max)) - 1;
- 	unsigned int invert = mc->invert;
- 	int err;
--	unsigned short val, val2, val_mask;
-+	unsigned int val, val2, val_mask;
- 
- 	val_mask = mask << shift;
- 	val = (ucontrol->value.integer.value[0] & mask);
-@@ -2044,7 +2161,7 @@
- 	struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- 	unsigned int reg = mc->reg;
- 	int min = mc->min;
--	unsigned short val;
-+	unsigned int val;
- 
- 	val = (ucontrol->value.integer.value[0]+min) & 0xff;
- 	val |= ((ucontrol->value.integer.value[1]+min) & 0xff) << 8;
-@@ -2065,7 +2182,7 @@
- int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id,
- 	unsigned int freq, int dir)
- {
--	if (dai->ops->set_sysclk)
-+	if (dai->ops && dai->ops->set_sysclk)
- 		return dai->ops->set_sysclk(dai, clk_id, freq, dir);
- 	else
- 		return -EINVAL;
-@@ -2085,7 +2202,7 @@
- int snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai,
- 	int div_id, int div)
- {
--	if (dai->ops->set_clkdiv)
-+	if (dai->ops && dai->ops->set_clkdiv)
- 		return dai->ops->set_clkdiv(dai, div_id, div);
- 	else
- 		return -EINVAL;
-@@ -2096,16 +2213,18 @@
-  * snd_soc_dai_set_pll - configure DAI PLL.
-  * @dai: DAI
-  * @pll_id: DAI specific PLL ID
-+ * @source: DAI specific source for the PLL
-  * @freq_in: PLL input clock frequency in Hz
-  * @freq_out: requested PLL output clock frequency in Hz
-  *
-  * Configures and enables PLL to generate output clock based on input clock.
-  */
--int snd_soc_dai_set_pll(struct snd_soc_dai *dai,
--	int pll_id, unsigned int freq_in, unsigned int freq_out)
-+int snd_soc_dai_set_pll(struct snd_soc_dai *dai, int pll_id, int source,
-+	unsigned int freq_in, unsigned int freq_out)
- {
--	if (dai->ops->set_pll)
--		return dai->ops->set_pll(dai, pll_id, freq_in, freq_out);
-+	if (dai->ops && dai->ops->set_pll)
-+		return dai->ops->set_pll(dai, pll_id, source,
-+					 freq_in, freq_out);
- 	else
- 		return -EINVAL;
- }
-@@ -2120,7 +2239,7 @@
-  */
- int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
- {
--	if (dai->ops->set_fmt)
-+	if (dai->ops && dai->ops->set_fmt)
- 		return dai->ops->set_fmt(dai, fmt);
- 	else
- 		return -EINVAL;
-@@ -2130,23 +2249,50 @@
- /**
-  * snd_soc_dai_set_tdm_slot - configure DAI TDM.
-  * @dai: DAI
-- * @mask: DAI specific mask representing used slots.
-+ * @tx_mask: bitmask representing active TX slots.
-+ * @rx_mask: bitmask representing active RX slots.
-  * @slots: Number of slots in use.
-+ * @slot_width: Width in bits for each slot.
-  *
-  * Configures a DAI for TDM operation. Both mask and slots are codec and DAI
-  * specific.
-  */
- int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai,
--	unsigned int mask, int slots)
-+	unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width)
- {
--	if (dai->ops->set_sysclk)
--		return dai->ops->set_tdm_slot(dai, mask, slots);
-+	if (dai->ops && dai->ops->set_tdm_slot)
-+		return dai->ops->set_tdm_slot(dai, tx_mask, rx_mask,
-+				slots, slot_width);
- 	else
- 		return -EINVAL;
- }
- EXPORT_SYMBOL_GPL(snd_soc_dai_set_tdm_slot);
- 
- /**
-+ * snd_soc_dai_set_channel_map - configure DAI audio channel map
-+ * @dai: DAI
-+ * @tx_num: how many TX channels
-+ * @tx_slot: pointer to an array which imply the TX slot number channel
-+ *           0~num-1 uses
-+ * @rx_num: how many RX channels
-+ * @rx_slot: pointer to an array which imply the RX slot number channel
-+ *           0~num-1 uses
-+ *
-+ * configure the relationship between channel number and TDM slot number.
-+ */
-+int snd_soc_dai_set_channel_map(struct snd_soc_dai *dai,
-+	unsigned int tx_num, unsigned int *tx_slot,
-+	unsigned int rx_num, unsigned int *rx_slot)
-+{
-+	if (dai->ops && dai->ops->set_channel_map)
-+		return dai->ops->set_channel_map(dai, tx_num, tx_slot,
-+			rx_num, rx_slot);
-+	else
-+		return -EINVAL;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_dai_set_channel_map);
-+
-+/**
-  * snd_soc_dai_set_tristate - configure DAI system or master clock.
-  * @dai: DAI
-  * @tristate: tristate enable
-@@ -2155,7 +2301,7 @@
-  */
- int snd_soc_dai_set_tristate(struct snd_soc_dai *dai, int tristate)
- {
--	if (dai->ops->set_sysclk)
-+	if (dai->ops && dai->ops->set_tristate)
- 		return dai->ops->set_tristate(dai, tristate);
- 	else
- 		return -EINVAL;
-@@ -2171,7 +2317,7 @@
-  */
- int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute)
- {
--	if (dai->ops->digital_mute)
-+	if (dai->ops && dai->ops->digital_mute)
- 		return dai->ops->digital_mute(dai, mute);
- 	else
- 		return -EINVAL;
-@@ -2352,6 +2498,39 @@
- }
- EXPORT_SYMBOL_GPL(snd_soc_unregister_platform);
- 
-+static u64 codec_format_map[] = {
-+	SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE,
-+	SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_U16_BE,
-+	SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE,
-+	SNDRV_PCM_FMTBIT_U24_LE | SNDRV_PCM_FMTBIT_U24_BE,
-+	SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE,
-+	SNDRV_PCM_FMTBIT_U32_LE | SNDRV_PCM_FMTBIT_U32_BE,
-+	SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_U24_3BE,
-+	SNDRV_PCM_FMTBIT_U24_3LE | SNDRV_PCM_FMTBIT_U24_3BE,
-+	SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S20_3BE,
-+	SNDRV_PCM_FMTBIT_U20_3LE | SNDRV_PCM_FMTBIT_U20_3BE,
-+	SNDRV_PCM_FMTBIT_S18_3LE | SNDRV_PCM_FMTBIT_S18_3BE,
-+	SNDRV_PCM_FMTBIT_U18_3LE | SNDRV_PCM_FMTBIT_U18_3BE,
-+	SNDRV_PCM_FMTBIT_FLOAT_LE | SNDRV_PCM_FMTBIT_FLOAT_BE,
-+	SNDRV_PCM_FMTBIT_FLOAT64_LE | SNDRV_PCM_FMTBIT_FLOAT64_BE,
-+	SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE
-+	| SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_BE,
-+};
-+
-+/* Fix up the DAI formats for endianness: codecs don't actually see
-+ * the endianness of the data but we're using the CPU format
-+ * definitions which do need to include endianness so we ensure that
-+ * codec DAIs always have both big and little endian variants set.
-+ */
-+static void fixup_codec_formats(struct snd_soc_pcm_stream *stream)
-+{
-+	int i;
-+
-+	for (i = 0; i < ARRAY_SIZE(codec_format_map); i++)
-+		if (stream->formats & codec_format_map[i])
-+			stream->formats |= codec_format_map[i];
-+}
-+
- /**
-  * snd_soc_register_codec - Register a codec with the ASoC core
-  *
-@@ -2359,6 +2538,8 @@
-  */
- int snd_soc_register_codec(struct snd_soc_codec *codec)
- {
-+	int i;
-+
- 	if (!codec->name)
- 		return -EINVAL;
- 
-@@ -2368,6 +2549,11 @@
- 
- 	INIT_LIST_HEAD(&codec->list);
- 
-+	for (i = 0; i < codec->num_dai; i++) {
-+		fixup_codec_formats(&codec->dai[i].playback);
-+		fixup_codec_formats(&codec->dai[i].capture);
-+	}
-+
- 	mutex_lock(&client_mutex);
- 	list_add(&codec->list, &codec_list);
- 	snd_soc_instantiate_cards();
-Index: linux-2.6.30/sound/soc/soc-dapm.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/soc-dapm.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/soc-dapm.c	2011-02-01 16:40:30.193007582 +0100
-@@ -12,7 +12,7 @@
-  *  Features:
-  *    o Changes power status of internal codec blocks depending on the
-  *      dynamic configuration of codec internal audio paths and active
-- *      DAC's/ADC's.
-+ *      DACs/ADCs.
-  *    o Platform power domain - can support external components i.e. amps and
-  *      mic/meadphone insertion events.
-  *    o Automatic Mic Bias support
-@@ -37,6 +37,7 @@
- #include <linux/bitops.h>
- #include <linux/platform_device.h>
- #include <linux/jiffies.h>
-+#include <linux/debugfs.h>
- #include <sound/core.h>
- #include <sound/pcm.h>
- #include <sound/pcm_params.h>
-@@ -52,23 +53,43 @@
- 
- /* dapm power sequences - make this per codec in the future */
- static int dapm_up_seq[] = {
--	snd_soc_dapm_pre, snd_soc_dapm_micbias, snd_soc_dapm_mic,
--	snd_soc_dapm_mux, snd_soc_dapm_value_mux, snd_soc_dapm_dac,
--	snd_soc_dapm_mixer, snd_soc_dapm_mixer_named_ctl, snd_soc_dapm_pga,
--	snd_soc_dapm_adc, snd_soc_dapm_hp, snd_soc_dapm_spk, snd_soc_dapm_post
-+	[snd_soc_dapm_pre] = 0,
-+	[snd_soc_dapm_supply] = 1,
-+	[snd_soc_dapm_micbias] = 2,
-+	[snd_soc_dapm_aif_in] = 3,
-+	[snd_soc_dapm_aif_out] = 3,
-+	[snd_soc_dapm_mic] = 4,
-+	[snd_soc_dapm_mux] = 5,
-+	[snd_soc_dapm_value_mux] = 5,
-+	[snd_soc_dapm_dac] = 6,
-+	[snd_soc_dapm_mixer] = 7,
-+	[snd_soc_dapm_mixer_named_ctl] = 7,
-+	[snd_soc_dapm_pga] = 8,
-+	[snd_soc_dapm_adc] = 9,
-+	[snd_soc_dapm_hp] = 10,
-+	[snd_soc_dapm_spk] = 10,
-+	[snd_soc_dapm_post] = 11,
- };
- 
- static int dapm_down_seq[] = {
--	snd_soc_dapm_pre, snd_soc_dapm_adc, snd_soc_dapm_hp, snd_soc_dapm_spk,
--	snd_soc_dapm_pga, snd_soc_dapm_mixer_named_ctl, snd_soc_dapm_mixer,
--	snd_soc_dapm_dac, snd_soc_dapm_mic, snd_soc_dapm_micbias,
--	snd_soc_dapm_mux, snd_soc_dapm_value_mux, snd_soc_dapm_post
-+	[snd_soc_dapm_pre] = 0,
-+	[snd_soc_dapm_adc] = 1,
-+	[snd_soc_dapm_hp] = 2,
-+	[snd_soc_dapm_spk] = 2,
-+	[snd_soc_dapm_pga] = 4,
-+	[snd_soc_dapm_mixer_named_ctl] = 5,
-+	[snd_soc_dapm_mixer] = 5,
-+	[snd_soc_dapm_dac] = 6,
-+	[snd_soc_dapm_mic] = 7,
-+	[snd_soc_dapm_micbias] = 8,
-+	[snd_soc_dapm_mux] = 9,
-+	[snd_soc_dapm_value_mux] = 9,
-+	[snd_soc_dapm_aif_in] = 10,
-+	[snd_soc_dapm_aif_out] = 10,
-+	[snd_soc_dapm_supply] = 11,
-+	[snd_soc_dapm_post] = 12,
- };
- 
--static int dapm_status = 1;
--module_param(dapm_status, int, 0);
--MODULE_PARM_DESC(dapm_status, "enable DPM sysfs entries");
--
- static void pop_wait(u32 pop_time)
- {
- 	if (pop_time)
-@@ -96,6 +117,52 @@
- 	return kmemdup(_widget, sizeof(*_widget), GFP_KERNEL);
- }
- 
-+/**
-+ * snd_soc_dapm_set_bias_level - set the bias level for the system
-+ * @socdev: audio device
-+ * @level: level to configure
-+ *
-+ * Configure the bias (power) levels for the SoC audio device.
-+ *
-+ * Returns 0 for success else error.
-+ */
-+static int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev,
-+				       enum snd_soc_bias_level level)
-+{
-+	struct snd_soc_card *card = socdev->card;
-+	struct snd_soc_codec *codec = socdev->card->codec;
-+	int ret = 0;
-+
-+	switch (level) {
-+	case SND_SOC_BIAS_ON:
-+		dev_dbg(socdev->dev, "Setting full bias\n");
-+		break;
-+	case SND_SOC_BIAS_PREPARE:
-+		dev_dbg(socdev->dev, "Setting bias prepare\n");
-+		break;
-+	case SND_SOC_BIAS_STANDBY:
-+		dev_dbg(socdev->dev, "Setting standby bias\n");
-+		break;
-+	case SND_SOC_BIAS_OFF:
-+		dev_dbg(socdev->dev, "Setting bias off\n");
-+		break;
-+	default:
-+		dev_err(socdev->dev, "Setting invalid bias %d\n", level);
-+		return -EINVAL;
-+	}
-+
-+	if (card->set_bias_level)
-+		ret = card->set_bias_level(card, level);
-+	if (ret == 0) {
-+		if (codec->set_bias_level)
-+			ret = codec->set_bias_level(codec, level);
-+		else
-+			codec->bias_level = level;
-+	}
-+
-+	return ret;
-+}
-+
- /* set up initial codec paths */
- static void dapm_set_path_status(struct snd_soc_dapm_widget *w,
- 	struct snd_soc_dapm_path *p, int i)
-@@ -165,6 +232,9 @@
- 	case snd_soc_dapm_dac:
- 	case snd_soc_dapm_micbias:
- 	case snd_soc_dapm_vmid:
-+	case snd_soc_dapm_supply:
-+	case snd_soc_dapm_aif_in:
-+	case snd_soc_dapm_aif_out:
- 		p->connect = 1;
- 	break;
- 	/* does effect routing - dynamically connected */
-@@ -179,7 +249,7 @@
- 	}
- }
- 
--/* connect mux widget to it's interconnecting audio paths */
-+/* connect mux widget to its interconnecting audio paths */
- static int dapm_connect_mux(struct snd_soc_codec *codec,
- 	struct snd_soc_dapm_widget *src, struct snd_soc_dapm_widget *dest,
- 	struct snd_soc_dapm_path *path, const char *control_name,
-@@ -202,7 +272,7 @@
- 	return -ENODEV;
- }
- 
--/* connect mixer widget to it's interconnecting audio paths */
-+/* connect mixer widget to its interconnecting audio paths */
- static int dapm_connect_mixer(struct snd_soc_codec *codec,
- 	struct snd_soc_dapm_widget *src, struct snd_soc_dapm_widget *dest,
- 	struct snd_soc_dapm_path *path, const char *control_name)
-@@ -227,7 +297,7 @@
- static int dapm_update_bits(struct snd_soc_dapm_widget *widget)
- {
- 	int change, power;
--	unsigned short old, new;
-+	unsigned int old, new;
- 	struct snd_soc_codec *codec = widget->codec;
- 
- 	/* check for valid widgets */
-@@ -357,8 +427,9 @@
- 				path->long_name);
- 			ret = snd_ctl_add(codec->card, path->kcontrol);
- 			if (ret < 0) {
--				printk(KERN_ERR "asoc: failed to add dapm kcontrol %s\n",
--						path->long_name);
-+				printk(KERN_ERR "asoc: failed to add dapm kcontrol %s: %d\n",
-+				       path->long_name,
-+				       ret);
- 				kfree(path->long_name);
- 				path->long_name = NULL;
- 				return ret;
-@@ -434,8 +505,17 @@
- 	struct snd_soc_dapm_path *path;
- 	int con = 0;
- 
--	if (widget->id == snd_soc_dapm_adc && widget->active)
--		return 1;
-+	if (widget->id == snd_soc_dapm_supply)
-+		return 0;
-+
-+	switch (widget->id) {
-+	case snd_soc_dapm_adc:
-+	case snd_soc_dapm_aif_out:
-+		if (widget->active)
-+			return 1;
-+	default:
-+		break;
-+	}
- 
- 	if (widget->connected) {
- 		/* connected pin ? */
-@@ -444,7 +524,7 @@
- 
- 		/* connected jack or spk ? */
- 		if (widget->id == snd_soc_dapm_hp || widget->id == snd_soc_dapm_spk ||
--			widget->id == snd_soc_dapm_line)
-+		    (widget->id == snd_soc_dapm_line && !list_empty(&widget->sources)))
- 			return 1;
- 	}
- 
-@@ -470,9 +550,18 @@
- 	struct snd_soc_dapm_path *path;
- 	int con = 0;
- 
-+	if (widget->id == snd_soc_dapm_supply)
-+		return 0;
-+
- 	/* active stream ? */
--	if (widget->id == snd_soc_dapm_dac && widget->active)
--		return 1;
-+	switch (widget->id) {
-+	case snd_soc_dapm_dac:
-+	case snd_soc_dapm_aif_in:
-+		if (widget->active)
-+			return 1;
-+	default:
-+		break;
-+	}
- 
- 	if (widget->connected) {
- 		/* connected pin ? */
-@@ -484,7 +573,8 @@
- 			return 1;
- 
- 		/* connected jack ? */
--		if (widget->id == snd_soc_dapm_mic || widget->id == snd_soc_dapm_line)
-+		if (widget->id == snd_soc_dapm_mic ||
-+		    (widget->id == snd_soc_dapm_line && !list_empty(&widget->sinks)))
- 			return 1;
- 	}
- 
-@@ -521,84 +611,12 @@
- }
- EXPORT_SYMBOL_GPL(dapm_reg_event);
- 
--/*
-- * Scan a single DAPM widget for a complete audio path and update the
-- * power status appropriately.
-+/* Standard power change method, used to apply power changes to most
-+ * widgets.
-  */
--static int dapm_power_widget(struct snd_soc_codec *codec, int event,
--			     struct snd_soc_dapm_widget *w)
-+static int dapm_generic_apply_power(struct snd_soc_dapm_widget *w)
- {
--	int in, out, power_change, power, ret;
--
--	/* vmid - no action */
--	if (w->id == snd_soc_dapm_vmid)
--		return 0;
--
--	/* active ADC */
--	if (w->id == snd_soc_dapm_adc && w->active) {
--		in = is_connected_input_ep(w);
--		dapm_clear_walk(w->codec);
--		w->power = (in != 0) ? 1 : 0;
--		dapm_update_bits(w);
--		return 0;
--	}
--
--	/* active DAC */
--	if (w->id == snd_soc_dapm_dac && w->active) {
--		out = is_connected_output_ep(w);
--		dapm_clear_walk(w->codec);
--		w->power = (out != 0) ? 1 : 0;
--		dapm_update_bits(w);
--		return 0;
--	}
--
--	/* pre and post event widgets */
--	if (w->id == snd_soc_dapm_pre) {
--		if (!w->event)
--			return 0;
--
--		if (event == SND_SOC_DAPM_STREAM_START) {
--			ret = w->event(w,
--				       NULL, SND_SOC_DAPM_PRE_PMU);
--			if (ret < 0)
--				return ret;
--		} else if (event == SND_SOC_DAPM_STREAM_STOP) {
--			ret = w->event(w,
--				       NULL, SND_SOC_DAPM_PRE_PMD);
--			if (ret < 0)
--				return ret;
--		}
--		return 0;
--	}
--	if (w->id == snd_soc_dapm_post) {
--		if (!w->event)
--			return 0;
--
--		if (event == SND_SOC_DAPM_STREAM_START) {
--			ret = w->event(w,
--				       NULL, SND_SOC_DAPM_POST_PMU);
--			if (ret < 0)
--				return ret;
--		} else if (event == SND_SOC_DAPM_STREAM_STOP) {
--			ret = w->event(w,
--				       NULL, SND_SOC_DAPM_POST_PMD);
--			if (ret < 0)
--				return ret;
--		}
--		return 0;
--	}
--
--	/* all other widgets */
--	in = is_connected_input_ep(w);
--	dapm_clear_walk(w->codec);
--	out = is_connected_output_ep(w);
--	dapm_clear_walk(w->codec);
--	power = (out != 0 && in != 0) ? 1 : 0;
--	power_change = (w->power == power) ? 0 : 1;
--	w->power = power;
--
--	if (!power_change)
--		return 0;
-+	int ret;
- 
- 	/* call any power change event handlers */
- 	if (w->event)
-@@ -607,7 +625,7 @@
- 			 w->name, w->event_flags);
- 
- 	/* power up pre event */
--	if (power && w->event &&
-+	if (w->power && w->event &&
- 	    (w->event_flags & SND_SOC_DAPM_PRE_PMU)) {
- 		ret = w->event(w, NULL, SND_SOC_DAPM_PRE_PMU);
- 		if (ret < 0)
-@@ -615,7 +633,7 @@
- 	}
- 
- 	/* power down pre event */
--	if (!power && w->event &&
-+	if (!w->power && w->event &&
- 	    (w->event_flags & SND_SOC_DAPM_PRE_PMD)) {
- 		ret = w->event(w, NULL, SND_SOC_DAPM_PRE_PMD);
- 		if (ret < 0)
-@@ -623,17 +641,17 @@
- 	}
- 
- 	/* Lower PGA volume to reduce pops */
--	if (w->id == snd_soc_dapm_pga && !power)
--		dapm_set_pga(w, power);
-+	if (w->id == snd_soc_dapm_pga && !w->power)
-+		dapm_set_pga(w, w->power);
- 
- 	dapm_update_bits(w);
- 
- 	/* Raise PGA volume to reduce pops */
--	if (w->id == snd_soc_dapm_pga && power)
--		dapm_set_pga(w, power);
-+	if (w->id == snd_soc_dapm_pga && w->power)
-+		dapm_set_pga(w, w->power);
- 
- 	/* power up post event */
--	if (power && w->event &&
-+	if (w->power && w->event &&
- 	    (w->event_flags & SND_SOC_DAPM_POST_PMU)) {
- 		ret = w->event(w,
- 			       NULL, SND_SOC_DAPM_POST_PMU);
-@@ -642,7 +660,7 @@
- 	}
- 
- 	/* power down post event */
--	if (!power && w->event &&
-+	if (!w->power && w->event &&
- 	    (w->event_flags & SND_SOC_DAPM_POST_PMD)) {
- 		ret = w->event(w, NULL, SND_SOC_DAPM_POST_PMD);
- 		if (ret < 0)
-@@ -652,6 +670,278 @@
- 	return 0;
- }
- 
-+/* Generic check to see if a widget should be powered.
-+ */
-+static int dapm_generic_check_power(struct snd_soc_dapm_widget *w)
-+{
-+	int in, out;
-+
-+	in = is_connected_input_ep(w);
-+	dapm_clear_walk(w->codec);
-+	out = is_connected_output_ep(w);
-+	dapm_clear_walk(w->codec);
-+	return out != 0 && in != 0;
-+}
-+
-+/* Check to see if an ADC has power */
-+static int dapm_adc_check_power(struct snd_soc_dapm_widget *w)
-+{
-+	int in;
-+
-+	if (w->active) {
-+		in = is_connected_input_ep(w);
-+		dapm_clear_walk(w->codec);
-+		return in != 0;
-+	} else {
-+		return dapm_generic_check_power(w);
-+	}
-+}
-+
-+/* Check to see if a DAC has power */
-+static int dapm_dac_check_power(struct snd_soc_dapm_widget *w)
-+{
-+	int out;
-+
-+	if (w->active) {
-+		out = is_connected_output_ep(w);
-+		dapm_clear_walk(w->codec);
-+		return out != 0;
-+	} else {
-+		return dapm_generic_check_power(w);
-+	}
-+}
-+
-+/* Check to see if a power supply is needed */
-+static int dapm_supply_check_power(struct snd_soc_dapm_widget *w)
-+{
-+	struct snd_soc_dapm_path *path;
-+	int power = 0;
-+
-+	/* Check if one of our outputs is connected */
-+	list_for_each_entry(path, &w->sinks, list_source) {
-+		if (path->connected &&
-+		    !path->connected(path->source, path->sink))
-+			continue;
-+
-+		if (path->sink && path->sink->power_check &&
-+		    path->sink->power_check(path->sink)) {
-+			power = 1;
-+			break;
-+		}
-+	}
-+
-+	dapm_clear_walk(w->codec);
-+
-+	return power;
-+}
-+
-+static int dapm_seq_compare(struct snd_soc_dapm_widget *a,
-+			    struct snd_soc_dapm_widget *b,
-+			    int sort[])
-+{
-+	if (sort[a->id] != sort[b->id])
-+		return sort[a->id] - sort[b->id];
-+	if (a->reg != b->reg)
-+		return a->reg - b->reg;
-+
-+	return 0;
-+}
-+
-+/* Insert a widget in order into a DAPM power sequence. */
-+static void dapm_seq_insert(struct snd_soc_dapm_widget *new_widget,
-+			    struct list_head *list,
-+			    int sort[])
-+{
-+	struct snd_soc_dapm_widget *w;
-+
-+	list_for_each_entry(w, list, power_list)
-+		if (dapm_seq_compare(new_widget, w, sort) < 0) {
-+			list_add_tail(&new_widget->power_list, &w->power_list);
-+			return;
-+		}
-+
-+	list_add_tail(&new_widget->power_list, list);
-+}
-+
-+/* Apply the coalesced changes from a DAPM sequence */
-+static void dapm_seq_run_coalesced(struct snd_soc_codec *codec,
-+				   struct list_head *pending)
-+{
-+	struct snd_soc_dapm_widget *w;
-+	int reg, power, ret;
-+	unsigned int value = 0;
-+	unsigned int mask = 0;
-+	unsigned int cur_mask;
-+
-+	reg = list_first_entry(pending, struct snd_soc_dapm_widget,
-+			       power_list)->reg;
-+
-+	list_for_each_entry(w, pending, power_list) {
-+		cur_mask = 1 << w->shift;
-+		BUG_ON(reg != w->reg);
-+
-+		if (w->invert)
-+			power = !w->power;
-+		else
-+			power = w->power;
-+
-+		mask |= cur_mask;
-+		if (power)
-+			value |= cur_mask;
-+
-+		pop_dbg(codec->pop_time,
-+			"pop test : Queue %s: reg=0x%x, 0x%x/0x%x\n",
-+			w->name, reg, value, mask);
-+
-+		/* power up pre event */
-+		if (w->power && w->event &&
-+		    (w->event_flags & SND_SOC_DAPM_PRE_PMU)) {
-+			pop_dbg(codec->pop_time, "pop test : %s PRE_PMU\n",
-+				w->name);
-+			ret = w->event(w, NULL, SND_SOC_DAPM_PRE_PMU);
-+			if (ret < 0)
-+				pr_err("%s: pre event failed: %d\n",
-+				       w->name, ret);
-+		}
-+
-+		/* power down pre event */
-+		if (!w->power && w->event &&
-+		    (w->event_flags & SND_SOC_DAPM_PRE_PMD)) {
-+			pop_dbg(codec->pop_time, "pop test : %s PRE_PMD\n",
-+				w->name);
-+			ret = w->event(w, NULL, SND_SOC_DAPM_PRE_PMD);
-+			if (ret < 0)
-+				pr_err("%s: pre event failed: %d\n",
-+				       w->name, ret);
-+		}
-+
-+		/* Lower PGA volume to reduce pops */
-+		if (w->id == snd_soc_dapm_pga && !w->power)
-+			dapm_set_pga(w, w->power);
-+	}
-+
-+	if (reg >= 0) {
-+		pop_dbg(codec->pop_time,
-+			"pop test : Applying 0x%x/0x%x to %x in %dms\n",
-+			value, mask, reg, codec->pop_time);
-+		pop_wait(codec->pop_time);
-+		snd_soc_update_bits(codec, reg, mask, value);
-+	}
-+
-+	list_for_each_entry(w, pending, power_list) {
-+		/* Raise PGA volume to reduce pops */
-+		if (w->id == snd_soc_dapm_pga && w->power)
-+			dapm_set_pga(w, w->power);
-+
-+		/* power up post event */
-+		if (w->power && w->event &&
-+		    (w->event_flags & SND_SOC_DAPM_POST_PMU)) {
-+			pop_dbg(codec->pop_time, "pop test : %s POST_PMU\n",
-+				w->name);
-+			ret = w->event(w,
-+				       NULL, SND_SOC_DAPM_POST_PMU);
-+			if (ret < 0)
-+				pr_err("%s: post event failed: %d\n",
-+				       w->name, ret);
-+		}
-+
-+		/* power down post event */
-+		if (!w->power && w->event &&
-+		    (w->event_flags & SND_SOC_DAPM_POST_PMD)) {
-+			pop_dbg(codec->pop_time, "pop test : %s POST_PMD\n",
-+				w->name);
-+			ret = w->event(w, NULL, SND_SOC_DAPM_POST_PMD);
-+			if (ret < 0)
-+				pr_err("%s: post event failed: %d\n",
-+				       w->name, ret);
-+		}
-+	}
-+}
-+
-+/* Apply a DAPM power sequence.
-+ *
-+ * We walk over a pre-sorted list of widgets to apply power to.  In
-+ * order to minimise the number of writes to the device required
-+ * multiple widgets will be updated in a single write where possible.
-+ * Currently anything that requires more than a single write is not
-+ * handled.
-+ */
-+static void dapm_seq_run(struct snd_soc_codec *codec, struct list_head *list,
-+			 int event, int sort[])
-+{
-+	struct snd_soc_dapm_widget *w, *n;
-+	LIST_HEAD(pending);
-+	int cur_sort = -1;
-+	int cur_reg = SND_SOC_NOPM;
-+	int ret;
-+
-+	list_for_each_entry_safe(w, n, list, power_list) {
-+		ret = 0;
-+
-+		/* Do we need to apply any queued changes? */
-+		if (sort[w->id] != cur_sort || w->reg != cur_reg) {
-+			if (!list_empty(&pending))
-+				dapm_seq_run_coalesced(codec, &pending);
-+
-+			INIT_LIST_HEAD(&pending);
-+			cur_sort = -1;
-+			cur_reg = SND_SOC_NOPM;
-+		}
-+
-+		switch (w->id) {
-+		case snd_soc_dapm_pre:
-+			if (!w->event)
-+				list_for_each_entry_safe_continue(w, n, list,
-+								  power_list);
-+
-+			if (event == SND_SOC_DAPM_STREAM_START)
-+				ret = w->event(w,
-+					       NULL, SND_SOC_DAPM_PRE_PMU);
-+			else if (event == SND_SOC_DAPM_STREAM_STOP)
-+				ret = w->event(w,
-+					       NULL, SND_SOC_DAPM_PRE_PMD);
-+			break;
-+
-+		case snd_soc_dapm_post:
-+			if (!w->event)
-+				list_for_each_entry_safe_continue(w, n, list,
-+								  power_list);
-+
-+			if (event == SND_SOC_DAPM_STREAM_START)
-+				ret = w->event(w,
-+					       NULL, SND_SOC_DAPM_POST_PMU);
-+			else if (event == SND_SOC_DAPM_STREAM_STOP)
-+				ret = w->event(w,
-+					       NULL, SND_SOC_DAPM_POST_PMD);
-+			break;
-+
-+		case snd_soc_dapm_input:
-+		case snd_soc_dapm_output:
-+		case snd_soc_dapm_hp:
-+		case snd_soc_dapm_mic:
-+		case snd_soc_dapm_line:
-+		case snd_soc_dapm_spk:
-+			/* No register support currently */
-+			ret = dapm_generic_apply_power(w);
-+			break;
-+
-+		default:
-+			/* Queue it up for application */
-+			cur_sort = sort[w->id];
-+			cur_reg = w->reg;
-+			list_move(&w->power_list, &pending);
-+			break;
-+		}
-+
-+		if (ret < 0)
-+			pr_err("Failed to apply widget power: %d\n",
-+			       ret);
-+	}
-+
-+	if (!list_empty(&pending))
-+		dapm_seq_run_coalesced(codec, &pending);
-+}
-+
- /*
-  * Scan each dapm widget for complete audio path.
-  * A complete path is a route that has valid endpoints i.e.:-
-@@ -663,31 +953,97 @@
-  */
- static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
- {
-+	struct snd_soc_device *socdev = codec->socdev;
- 	struct snd_soc_dapm_widget *w;
--	int i, c = 1, *seq = NULL, ret = 0;
-+	LIST_HEAD(up_list);
-+	LIST_HEAD(down_list);
-+	int ret = 0;
-+	int power;
-+	int sys_power = 0;
- 
--	/* do we have a sequenced stream event */
--	if (event == SND_SOC_DAPM_STREAM_START) {
--		c = ARRAY_SIZE(dapm_up_seq);
--		seq = dapm_up_seq;
--	} else if (event == SND_SOC_DAPM_STREAM_STOP) {
--		c = ARRAY_SIZE(dapm_down_seq);
--		seq = dapm_down_seq;
--	}
-+	/* Check which widgets we need to power and store them in
-+	 * lists indicating if they should be powered up or down.
-+	 */
-+	list_for_each_entry(w, &codec->dapm_widgets, list) {
-+		switch (w->id) {
-+		case snd_soc_dapm_pre:
-+			dapm_seq_insert(w, &down_list, dapm_down_seq);
-+			break;
-+		case snd_soc_dapm_post:
-+			dapm_seq_insert(w, &up_list, dapm_up_seq);
-+			break;
- 
--	for (i = 0; i < c; i++) {
--		list_for_each_entry(w, &codec->dapm_widgets, list) {
-+		default:
-+			if (!w->power_check)
-+				continue;
- 
--			/* is widget in stream order */
--			if (seq && seq[i] && w->id != seq[i])
-+			power = w->power_check(w);
-+			if (power)
-+				sys_power = 1;
-+
-+			if (w->power == power)
- 				continue;
- 
--			ret = dapm_power_widget(codec, event, w);
--			if (ret != 0)
--				return ret;
-+			if (power)
-+				dapm_seq_insert(w, &up_list, dapm_up_seq);
-+			else
-+				dapm_seq_insert(w, &down_list, dapm_down_seq);
-+
-+			w->power = power;
-+			break;
-+		}
-+	}
-+
-+	/* If there are no DAPM widgets then try to figure out power from the
-+	 * event type.
-+	 */
-+	if (list_empty(&codec->dapm_widgets)) {
-+		switch (event) {
-+		case SND_SOC_DAPM_STREAM_START:
-+		case SND_SOC_DAPM_STREAM_RESUME:
-+			sys_power = 1;
-+			break;
-+		case SND_SOC_DAPM_STREAM_NOP:
-+			sys_power = codec->bias_level != SND_SOC_BIAS_STANDBY;
-+		default:
-+			break;
- 		}
- 	}
- 
-+	/* If we're changing to all on or all off then prepare */
-+	if ((sys_power && codec->bias_level == SND_SOC_BIAS_STANDBY) ||
-+	    (!sys_power && codec->bias_level == SND_SOC_BIAS_ON)) {
-+		ret = snd_soc_dapm_set_bias_level(socdev,
-+						  SND_SOC_BIAS_PREPARE);
-+		if (ret != 0)
-+			pr_err("Failed to prepare bias: %d\n", ret);
-+	}
-+
-+	/* Power down widgets first; try to avoid amplifying pops. */
-+	dapm_seq_run(codec, &down_list, event, dapm_down_seq);
-+
-+	/* Now power up. */
-+	dapm_seq_run(codec, &up_list, event, dapm_up_seq);
-+
-+	/* If we just powered the last thing off drop to standby bias */
-+	if (codec->bias_level == SND_SOC_BIAS_PREPARE && !sys_power) {
-+		ret = snd_soc_dapm_set_bias_level(socdev,
-+						  SND_SOC_BIAS_STANDBY);
-+		if (ret != 0)
-+			pr_err("Failed to apply standby bias: %d\n", ret);
-+	}
-+
-+	/* If we just powered up then move to active bias */
-+	if (codec->bias_level == SND_SOC_BIAS_PREPARE && sys_power) {
-+		ret = snd_soc_dapm_set_bias_level(socdev,
-+						  SND_SOC_BIAS_ON);
-+		if (ret != 0)
-+			pr_err("Failed to apply active bias: %d\n", ret);
-+	}
-+
-+	pop_dbg(codec->pop_time, "DAPM sequencing finished, waiting %dms\n",
-+		codec->pop_time);
-+
- 	return 0;
- }
- 
-@@ -723,6 +1079,9 @@
- 		case snd_soc_dapm_pga:
- 		case snd_soc_dapm_mixer:
- 		case snd_soc_dapm_mixer_named_ctl:
-+		case snd_soc_dapm_supply:
-+		case snd_soc_dapm_aif_in:
-+		case snd_soc_dapm_aif_out:
- 			if (w->name) {
- 				in = is_connected_input_ep(w);
- 				dapm_clear_walk(w->codec);
-@@ -748,10 +1107,103 @@
- }
- #endif
- 
-+#ifdef CONFIG_DEBUG_FS
-+static int dapm_widget_power_open_file(struct inode *inode, struct file *file)
-+{
-+	file->private_data = inode->i_private;
-+	return 0;
-+}
-+
-+static ssize_t dapm_widget_power_read_file(struct file *file,
-+					   char __user *user_buf,
-+					   size_t count, loff_t *ppos)
-+{
-+	struct snd_soc_dapm_widget *w = file->private_data;
-+	char *buf;
-+	int in, out;
-+	ssize_t ret;
-+	struct snd_soc_dapm_path *p = NULL;
-+
-+	buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
-+	if (!buf)
-+		return -ENOMEM;
-+
-+	in = is_connected_input_ep(w);
-+	dapm_clear_walk(w->codec);
-+	out = is_connected_output_ep(w);
-+	dapm_clear_walk(w->codec);
-+
-+	ret = snprintf(buf, PAGE_SIZE, "%s: %s  in %d out %d\n",
-+		       w->name, w->power ? "On" : "Off", in, out);
-+
-+	if (w->sname)
-+		ret += snprintf(buf + ret, PAGE_SIZE - ret, " stream %s %s\n",
-+				w->sname,
-+				w->active ? "active" : "inactive");
-+
-+	list_for_each_entry(p, &w->sources, list_sink) {
-+		if (p->connected && !p->connected(w, p->sink))
-+			continue;
-+
-+		if (p->connect)
-+			ret += snprintf(buf + ret, PAGE_SIZE - ret,
-+					" in  %s %s\n",
-+					p->name ? p->name : "static",
-+					p->source->name);
-+	}
-+	list_for_each_entry(p, &w->sinks, list_source) {
-+		if (p->connected && !p->connected(w, p->sink))
-+			continue;
-+
-+		if (p->connect)
-+			ret += snprintf(buf + ret, PAGE_SIZE - ret,
-+					" out %s %s\n",
-+					p->name ? p->name : "static",
-+					p->sink->name);
-+	}
-+
-+	ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
-+
-+	kfree(buf);
-+	return ret;
-+}
-+
-+static const struct file_operations dapm_widget_power_fops = {
-+	.open = dapm_widget_power_open_file,
-+	.read = dapm_widget_power_read_file,
-+};
-+
-+void snd_soc_dapm_debugfs_init(struct snd_soc_codec *codec)
-+{
-+	struct snd_soc_dapm_widget *w;
-+	struct dentry *d;
-+
-+	if (!codec->debugfs_dapm)
-+		return;
-+
-+	list_for_each_entry(w, &codec->dapm_widgets, list) {
-+		if (!w->name)
-+			continue;
-+
-+		d = debugfs_create_file(w->name, 0444,
-+					codec->debugfs_dapm, w,
-+					&dapm_widget_power_fops);
-+		if (!d)
-+			printk(KERN_WARNING
-+			       "ASoC: Failed to create %s debugfs file\n",
-+			       w->name);
-+	}
-+}
-+#else
-+void snd_soc_dapm_debugfs_init(struct snd_soc_codec *codec)
-+{
-+}
-+#endif
-+
- /* test and update the power status of a mux widget */
- static int dapm_mux_update_power(struct snd_soc_dapm_widget *widget,
--				 struct snd_kcontrol *kcontrol, int mask,
--				 int mux, int val, struct soc_enum *e)
-+				 struct snd_kcontrol *kcontrol, int change,
-+				 int mux, struct soc_enum *e)
- {
- 	struct snd_soc_dapm_path *path;
- 	int found = 0;
-@@ -760,7 +1212,7 @@
- 	    widget->id != snd_soc_dapm_value_mux)
- 		return -ENODEV;
- 
--	if (!snd_soc_test_bits(widget->codec, e->reg, mask, val))
-+	if (!change)
- 		return 0;
- 
- 	/* find dapm widget path assoc with kcontrol */
-@@ -851,6 +1303,7 @@
- 		case snd_soc_dapm_pga:
- 		case snd_soc_dapm_mixer:
- 		case snd_soc_dapm_mixer_named_ctl:
-+		case snd_soc_dapm_supply:
- 			if (w->name)
- 				count += sprintf(buf + count, "%s: %s\n",
- 					w->name, w->power ? "On":"Off");
-@@ -883,16 +1336,12 @@
- 
- int snd_soc_dapm_sys_add(struct device *dev)
- {
--	if (!dapm_status)
--		return 0;
- 	return device_create_file(dev, &dev_attr_dapm_widget);
- }
- 
- static void snd_soc_dapm_sys_remove(struct device *dev)
- {
--	if (dapm_status) {
--		device_remove_file(dev, &dev_attr_dapm_widget);
--	}
-+	device_remove_file(dev, &dev_attr_dapm_widget);
- }
- 
- /* free all dapm widgets and resources */
-@@ -948,10 +1397,13 @@
- EXPORT_SYMBOL_GPL(snd_soc_dapm_sync);
- 
- static int snd_soc_dapm_add_route(struct snd_soc_codec *codec,
--	const char *sink, const char *control, const char *source)
-+				  const struct snd_soc_dapm_route *route)
- {
- 	struct snd_soc_dapm_path *path;
- 	struct snd_soc_dapm_widget *wsource = NULL, *wsink = NULL, *w;
-+	const char *sink = route->sink;
-+	const char *control = route->control;
-+	const char *source = route->source;
- 	int ret = 0;
- 
- 	/* find src and dest widgets */
-@@ -975,6 +1427,7 @@
- 
- 	path->source = wsource;
- 	path->sink = wsink;
-+	path->connected = route->connected;
- 	INIT_LIST_HEAD(&path->list);
- 	INIT_LIST_HEAD(&path->list_source);
- 	INIT_LIST_HEAD(&path->list_sink);
-@@ -983,8 +1436,8 @@
- 	if (wsink->id == snd_soc_dapm_input) {
- 		if (wsource->id == snd_soc_dapm_micbias ||
- 			wsource->id == snd_soc_dapm_mic ||
--			wsink->id == snd_soc_dapm_line ||
--			wsink->id == snd_soc_dapm_output)
-+			wsource->id == snd_soc_dapm_line ||
-+			wsource->id == snd_soc_dapm_output)
- 			wsink->ext = 1;
- 	}
- 	if (wsource->id == snd_soc_dapm_output) {
-@@ -1015,6 +1468,9 @@
- 	case snd_soc_dapm_vmid:
- 	case snd_soc_dapm_pre:
- 	case snd_soc_dapm_post:
-+	case snd_soc_dapm_supply:
-+	case snd_soc_dapm_aif_in:
-+	case snd_soc_dapm_aif_out:
- 		list_add(&path->list, &codec->dapm_paths);
- 		list_add(&path->list_sink, &wsink->sources);
- 		list_add(&path->list_source, &wsource->sinks);
-@@ -1072,8 +1528,7 @@
- 	int i, ret;
- 
- 	for (i = 0; i < num; i++) {
--		ret = snd_soc_dapm_add_route(codec, route->sink,
--					     route->control, route->source);
-+		ret = snd_soc_dapm_add_route(codec, route);
- 		if (ret < 0) {
- 			printk(KERN_ERR "Failed to add route %s->%s\n",
- 			       route->source,
-@@ -1108,15 +1563,24 @@
- 		case snd_soc_dapm_switch:
- 		case snd_soc_dapm_mixer:
- 		case snd_soc_dapm_mixer_named_ctl:
-+			w->power_check = dapm_generic_check_power;
- 			dapm_new_mixer(codec, w);
- 			break;
- 		case snd_soc_dapm_mux:
- 		case snd_soc_dapm_value_mux:
-+			w->power_check = dapm_generic_check_power;
- 			dapm_new_mux(codec, w);
- 			break;
- 		case snd_soc_dapm_adc:
-+		case snd_soc_dapm_aif_out:
-+			w->power_check = dapm_adc_check_power;
-+			break;
- 		case snd_soc_dapm_dac:
-+		case snd_soc_dapm_aif_in:
-+			w->power_check = dapm_dac_check_power;
-+			break;
- 		case snd_soc_dapm_pga:
-+			w->power_check = dapm_generic_check_power;
- 			dapm_new_pga(codec, w);
- 			break;
- 		case snd_soc_dapm_input:
-@@ -1126,6 +1590,10 @@
- 		case snd_soc_dapm_hp:
- 		case snd_soc_dapm_mic:
- 		case snd_soc_dapm_line:
-+			w->power_check = dapm_generic_check_power;
-+			break;
-+		case snd_soc_dapm_supply:
-+			w->power_check = dapm_supply_check_power;
- 		case snd_soc_dapm_vmid:
- 		case snd_soc_dapm_pre:
- 		case snd_soc_dapm_post:
-@@ -1205,7 +1673,7 @@
- 	int max = mc->max;
- 	unsigned int mask = (1 << fls(max)) - 1;
- 	unsigned int invert = mc->invert;
--	unsigned short val, val2, val_mask;
-+	unsigned int val, val2, val_mask;
- 	int ret;
- 
- 	val = (ucontrol->value.integer.value[0] & mask);
-@@ -1269,7 +1737,7 @@
- {
- 	struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short val, bitmask;
-+	unsigned int val, bitmask;
- 
- 	for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
- 		;
-@@ -1297,8 +1765,8 @@
- {
- 	struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short val, mux;
--	unsigned short mask, bitmask;
-+	unsigned int val, mux, change;
-+	unsigned int mask, bitmask;
- 	int ret = 0;
- 
- 	for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
-@@ -1317,20 +1785,21 @@
- 
- 	mutex_lock(&widget->codec->mutex);
- 	widget->value = val;
--	dapm_mux_update_power(widget, kcontrol, mask, mux, val, e);
--	if (widget->event) {
--		if (widget->event_flags & SND_SOC_DAPM_PRE_REG) {
--			ret = widget->event(widget,
--				kcontrol, SND_SOC_DAPM_PRE_REG);
--			if (ret < 0)
--				goto out;
--		}
--		ret = snd_soc_update_bits(widget->codec, e->reg, mask, val);
--		if (widget->event_flags & SND_SOC_DAPM_POST_REG)
--			ret = widget->event(widget,
--				kcontrol, SND_SOC_DAPM_POST_REG);
--	} else
--		ret = snd_soc_update_bits(widget->codec, e->reg, mask, val);
-+	change = snd_soc_test_bits(widget->codec, e->reg, mask, val);
-+	dapm_mux_update_power(widget, kcontrol, change, mux, e);
-+
-+	if (widget->event_flags & SND_SOC_DAPM_PRE_REG) {
-+		ret = widget->event(widget,
-+				    kcontrol, SND_SOC_DAPM_PRE_REG);
-+		if (ret < 0)
-+			goto out;
-+	}
-+
-+	ret = snd_soc_update_bits(widget->codec, e->reg, mask, val);
-+
-+	if (widget->event_flags & SND_SOC_DAPM_POST_REG)
-+		ret = widget->event(widget,
-+				    kcontrol, SND_SOC_DAPM_POST_REG);
- 
- out:
- 	mutex_unlock(&widget->codec->mutex);
-@@ -1339,6 +1808,54 @@
- EXPORT_SYMBOL_GPL(snd_soc_dapm_put_enum_double);
- 
- /**
-+ * snd_soc_dapm_get_enum_virt - Get virtual DAPM mux
-+ * @kcontrol: mixer control
-+ * @ucontrol: control element information
-+ *
-+ * Returns 0 for success.
-+ */
-+int snd_soc_dapm_get_enum_virt(struct snd_kcontrol *kcontrol,
-+			       struct snd_ctl_elem_value *ucontrol)
-+{
-+	struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
-+
-+	ucontrol->value.enumerated.item[0] = widget->value;
-+
-+	return 0;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_dapm_get_enum_virt);
-+
-+/**
-+ * snd_soc_dapm_put_enum_virt - Set virtual DAPM mux
-+ * @kcontrol: mixer control
-+ * @ucontrol: control element information
-+ *
-+ * Returns 0 for success.
-+ */
-+int snd_soc_dapm_put_enum_virt(struct snd_kcontrol *kcontrol,
-+			       struct snd_ctl_elem_value *ucontrol)
-+{
-+	struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
-+	struct soc_enum *e =
-+		(struct soc_enum *)kcontrol->private_value;
-+	int change;
-+	int ret = 0;
-+
-+	if (ucontrol->value.enumerated.item[0] >= e->max)
-+		return -EINVAL;
-+
-+	mutex_lock(&widget->codec->mutex);
-+
-+	change = widget->value != ucontrol->value.enumerated.item[0];
-+	widget->value = ucontrol->value.enumerated.item[0];
-+	dapm_mux_update_power(widget, kcontrol, change, widget->value, e);
-+
-+	mutex_unlock(&widget->codec->mutex);
-+	return ret;
-+}
-+EXPORT_SYMBOL_GPL(snd_soc_dapm_put_enum_virt);
-+
-+/**
-  * snd_soc_dapm_get_value_enum_double - dapm semi enumerated double mixer get
-  *					callback
-  * @kcontrol: mixer control
-@@ -1356,7 +1873,7 @@
- {
- 	struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short reg_val, val, mux;
-+	unsigned int reg_val, val, mux;
- 
- 	reg_val = snd_soc_read(widget->codec, e->reg);
- 	val = (reg_val >> e->shift_l) & e->mask;
-@@ -1396,8 +1913,8 @@
- {
- 	struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol);
- 	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
--	unsigned short val, mux;
--	unsigned short mask;
-+	unsigned int val, mux, change;
-+	unsigned int mask;
- 	int ret = 0;
- 
- 	if (ucontrol->value.enumerated.item[0] > e->max - 1)
-@@ -1414,20 +1931,21 @@
- 
- 	mutex_lock(&widget->codec->mutex);
- 	widget->value = val;
--	dapm_mux_update_power(widget, kcontrol, mask, mux, val, e);
--	if (widget->event) {
--		if (widget->event_flags & SND_SOC_DAPM_PRE_REG) {
--			ret = widget->event(widget,
--				kcontrol, SND_SOC_DAPM_PRE_REG);
--			if (ret < 0)
--				goto out;
--		}
--		ret = snd_soc_update_bits(widget->codec, e->reg, mask, val);
--		if (widget->event_flags & SND_SOC_DAPM_POST_REG)
--			ret = widget->event(widget,
--				kcontrol, SND_SOC_DAPM_POST_REG);
--	} else
--		ret = snd_soc_update_bits(widget->codec, e->reg, mask, val);
-+	change = snd_soc_test_bits(widget->codec, e->reg, mask, val);
-+	dapm_mux_update_power(widget, kcontrol, change, mux, e);
-+
-+	if (widget->event_flags & SND_SOC_DAPM_PRE_REG) {
-+		ret = widget->event(widget,
-+				    kcontrol, SND_SOC_DAPM_PRE_REG);
-+		if (ret < 0)
-+			goto out;
-+	}
-+
-+	ret = snd_soc_update_bits(widget->codec, e->reg, mask, val);
-+
-+	if (widget->event_flags & SND_SOC_DAPM_POST_REG)
-+		ret = widget->event(widget,
-+				    kcontrol, SND_SOC_DAPM_POST_REG);
- 
- out:
- 	mutex_unlock(&widget->codec->mutex);
-@@ -1626,35 +2144,11 @@
- EXPORT_SYMBOL_GPL(snd_soc_dapm_stream_event);
- 
- /**
-- * snd_soc_dapm_set_bias_level - set the bias level for the system
-- * @socdev: audio device
-- * @level: level to configure
-- *
-- * Configure the bias (power) levels for the SoC audio device.
-- *
-- * Returns 0 for success else error.
-- */
--int snd_soc_dapm_set_bias_level(struct snd_soc_device *socdev,
--				enum snd_soc_bias_level level)
--{
--	struct snd_soc_card *card = socdev->card;
--	struct snd_soc_codec *codec = socdev->card->codec;
--	int ret = 0;
--
--	if (card->set_bias_level)
--		ret = card->set_bias_level(card, level);
--	if (ret == 0 && codec->set_bias_level)
--		ret = codec->set_bias_level(codec, level);
--
--	return ret;
--}
--
--/**
-  * snd_soc_dapm_enable_pin - enable pin.
-  * @codec: SoC codec
-  * @pin: pin name
-  *
-- * Enables input/output pin and it's parents or children widgets iff there is
-+ * Enables input/output pin and its parents or children widgets iff there is
-  * a valid audio route and active audio stream.
-  * NOTE: snd_soc_dapm_sync() needs to be called after this for DAPM to
-  * do any widget power switching.
-@@ -1670,7 +2164,7 @@
-  * @codec: SoC codec
-  * @pin: pin name
-  *
-- * Disables input/output pin and it's parents or children widgets.
-+ * Disables input/output pin and its parents or children widgets.
-  * NOTE: snd_soc_dapm_sync() needs to be called after this for DAPM to
-  * do any widget power switching.
-  */
-@@ -1737,6 +2231,36 @@
- }
- EXPORT_SYMBOL_GPL(snd_soc_dapm_free);
- 
-+/*
-+ * snd_soc_dapm_shutdown - callback for system shutdown
-+ */
-+void snd_soc_dapm_shutdown(struct snd_soc_device *socdev)
-+{
-+	struct snd_soc_codec *codec = socdev->card->codec;
-+	struct snd_soc_dapm_widget *w;
-+	LIST_HEAD(down_list);
-+	int powerdown = 0;
-+
-+	list_for_each_entry(w, &codec->dapm_widgets, list) {
-+		if (w->power) {
-+			dapm_seq_insert(w, &down_list, dapm_down_seq);
-+			w->power = 0;
-+			powerdown = 1;
-+		}
-+	}
-+
-+	/* If there were no widgets to power down we're already in
-+	 * standby.
-+	 */
-+	if (powerdown) {
-+		snd_soc_dapm_set_bias_level(socdev, SND_SOC_BIAS_PREPARE);
-+		dapm_seq_run(codec, &down_list, 0, dapm_down_seq);
-+		snd_soc_dapm_set_bias_level(socdev, SND_SOC_BIAS_STANDBY);
-+	}
-+
-+	snd_soc_dapm_set_bias_level(socdev, SND_SOC_BIAS_OFF);
-+}
-+
- /* Module information */
- MODULE_AUTHOR("Liam Girdwood, lrg at slimlogic.co.uk");
- MODULE_DESCRIPTION("Dynamic Audio Power Management core for ALSA SoC");
-Index: linux-2.6.30/sound/soc/soc-jack.c
-===================================================================
---- linux-2.6.30.orig/sound/soc/soc-jack.c	2009-06-10 05:05:27.000000000 +0200
-+++ linux-2.6.30/sound/soc/soc-jack.c	2011-02-01 16:40:30.193007582 +0100
-@@ -73,14 +73,15 @@
- 	oldstatus = jack->status;
- 
- 	jack->status &= ~mask;
--	jack->status |= status;
-+	jack->status |= status & mask;
- 
--	/* The DAPM sync is expensive enough to be worth skipping */
--	if (jack->status == oldstatus)
-+	/* The DAPM sync is expensive enough to be worth skipping.
-+	 * However, empty mask means pin synchronization is desired. */
-+	if (mask && (jack->status == oldstatus))
- 		goto out;
- 
- 	list_for_each_entry(pin, &jack->pins, list) {
--		enable = pin->mask & status;
-+		enable = pin->mask & jack->status;
- 
- 		if (pin->invert)
- 			enable = !enable;
-@@ -220,6 +221,9 @@
- 		if (ret)
- 			goto err;
- 
-+		INIT_WORK(&gpios[i].work, gpio_work);
-+		gpios[i].jack = jack;
-+
- 		ret = request_irq(gpio_to_irq(gpios[i].gpio),
- 				gpio_handler,
- 				IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
-@@ -228,8 +232,13 @@
- 		if (ret)
- 			goto err;
- 
--		INIT_WORK(&gpios[i].work, gpio_work);
--		gpios[i].jack = jack;
-+#ifdef CONFIG_GPIO_SYSFS
-+		/* Expose GPIO value over sysfs for diagnostic purposes */
-+		gpio_export(gpios[i].gpio, false);
-+#endif
-+
-+		/* Update initial jack status */
-+		snd_soc_jack_gpio_detect(&gpios[i]);
- 	}
- 
- 	return 0;
-@@ -258,6 +267,9 @@
- 	int i;
- 
- 	for (i = 0; i < count; i++) {
-+#ifdef CONFIG_GPIO_SYSFS
-+		gpio_unexport(gpios[i].gpio);
-+#endif
- 		free_irq(gpio_to_irq(gpios[i].gpio), &gpios[i]);
- 		gpio_free(gpios[i].gpio);
- 		gpios[i].jack = NULL;
-Index: linux-2.6.30/arch/arm/configs/at91sam9g10ek_defconfig
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/configs/at91sam9g10ek_defconfig	2011-02-01 16:40:30.197007464 +0100
-@@ -0,0 +1,1523 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.30
-+# Mon Oct 19 16:44:23 2009
-+#
-+CONFIG_ARM=y
-+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-+CONFIG_GENERIC_GPIO=y
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+CONFIG_MMU=y
-+# CONFIG_NO_IOPORT is not set
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+
-+#
-+# General setup
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_SYSVIPC_SYSCTL=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
-+# CONFIG_CGROUPS is not set
-+CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
-+# CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
-+CONFIG_BLK_DEV_INITRD=y
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+CONFIG_SHMEM=y
-+CONFIG_AIO=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
-+CONFIG_SLAB=y
-+# CONFIG_SLUB is not set
-+# CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
-+
-+#
-+# System Type
-+#
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+CONFIG_ARCH_AT91=y
-+# CONFIG_ARCH_CLPS711X is not set
-+# CONFIG_ARCH_EBSA110 is not set
-+# CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
-+# CONFIG_ARCH_FOOTBRIDGE is not set
-+# CONFIG_ARCH_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP13XX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X is not set
-+# CONFIG_ARCH_IXP23XX is not set
-+# CONFIG_ARCH_IXP2000 is not set
-+# CONFIG_ARCH_IXP4XX is not set
-+# CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
-+# CONFIG_ARCH_KS8695 is not set
-+# CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
-+# CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
-+# CONFIG_ARCH_PNX4008 is not set
-+# CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
-+# CONFIG_ARCH_RPC is not set
-+# CONFIG_ARCH_SA1100 is not set
-+# CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
-+# CONFIG_ARCH_SHARK is not set
-+# CONFIG_ARCH_LH7A40X is not set
-+# CONFIG_ARCH_DAVINCI is not set
-+# CONFIG_ARCH_OMAP is not set
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
-+
-+#
-+# Atmel AT91 System-on-Chip
-+#
-+# CONFIG_ARCH_AT91RM9200 is not set
-+# CONFIG_ARCH_AT91SAM9260 is not set
-+# CONFIG_ARCH_AT91SAM9261 is not set
-+CONFIG_ARCH_AT91SAM9G10=y
-+# CONFIG_ARCH_AT91SAM9263 is not set
-+# CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
-+# CONFIG_ARCH_AT91X40 is not set
-+CONFIG_AT91_PMC_UNIT=y
-+
-+#
-+# AT91SAM9G10 Board Type
-+#
-+CONFIG_MACH_AT91SAM9G10EK=y
-+
-+#
-+# AT91 Board Options
-+#
-+# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
-+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
-+
-+#
-+# AT91 Feature Selections
-+#
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+# CONFIG_AT91_SLOW_CLOCK is not set
-+CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
-+
-+#
-+# Processor Type
-+#
-+CONFIG_CPU_32=y
-+CONFIG_CPU_ARM926T=y
-+CONFIG_CPU_32v5=y
-+CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
-+CONFIG_CPU_CACHE_VIVT=y
-+CONFIG_CPU_COPY_V4WB=y
-+CONFIG_CPU_TLB_V4WBI=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-+
-+#
-+# Processor Features
-+#
-+CONFIG_ARM_THUMB=y
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-+# CONFIG_OUTER_CACHE is not set
-+
-+#
-+# Bus support
-+#
-+# CONFIG_PCI_SYSCALL is not set
-+# CONFIG_ARCH_SUPPORTS_MSI is not set
-+# CONFIG_PCCARD is not set
-+
-+#
-+# Kernel Features
-+#
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
-+# CONFIG_PREEMPT is not set
-+CONFIG_HZ=100
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
-+CONFIG_ALIGNMENT_TRAP=y
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZBOOT_ROM_TEXT=0x0
-+CONFIG_ZBOOT_ROM_BSS=0x0
-+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC is not set
-+
-+#
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
-+# Floating point emulation
-+#
-+
-+#
-+# At least one emulation must be selected
-+#
-+CONFIG_FPE_NWFPE=y
-+# CONFIG_FPE_NWFPE_XP is not set
-+# CONFIG_FPE_FASTFPE is not set
-+# CONFIG_VFP is not set
-+
-+#
-+# Userspace binary formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
-+# CONFIG_BINFMT_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options
-+#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_AF_RXRPC is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
-+# CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_CONNECTOR is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+# CONFIG_MTD_UBI is not set
-+# CONFIG_PARPORT is not set
-+CONFIG_BLK_DEV=y
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=4
-+CONFIG_BLK_DEV_RAM_SIZE=8192
-+# CONFIG_BLK_DEV_XIP is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+CONFIG_MISC_DEVICES=y
-+# CONFIG_ATMEL_TCLIB is not set
-+CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+# CONFIG_SCSI_SCAN_ASYNC is not set
-+CONFIG_SCSI_WAIT_SCAN=m
-+
-+#
-+# SCSI Transports
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_LIBSAS is not set
-+# CONFIG_SCSI_SRP_ATTRS is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+CONFIG_NETDEVICES=y
-+CONFIG_COMPAT_NET_DEV_OPS=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+# CONFIG_DAVICOM_PHY is not set
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+# CONFIG_AX88796 is not set
-+# CONFIG_SMC91X is not set
-+CONFIG_DM9000=y
-+CONFIG_DM9000_DEBUGLEVEL=4
-+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
-+# CONFIG_IBM_NEW_EMAC_ZMII is not set
-+# CONFIG_IBM_NEW_EMAC_RGMII is not set
-+# CONFIG_IBM_NEW_EMAC_TAH is not set
-+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-+# CONFIG_B44 is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+# CONFIG_LIBERTAS_SPI is not set
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+# CONFIG_USB_ZD1201 is not set
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+CONFIG_INPUT_POLLDEV=m
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
-+# CONFIG_INPUT_JOYDEV is not set
-+CONFIG_INPUT_EVDEV=y
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_GPIO=y
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+CONFIG_INPUT_TOUCHSCREEN=y
-+CONFIG_TOUCHSCREEN_ADS7846=y
-+# CONFIG_TOUCHSCREEN_AD7877 is not set
-+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
-+# CONFIG_TOUCHSCREEN_AD7879 is not set
-+# CONFIG_TOUCHSCREEN_FUJITSU is not set
-+# CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_INEXIO is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
-+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_ATMEL=y
-+CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
-+# CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=4
-+# CONFIG_IPMI_HANDLER is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
-+
-+#
-+# SPI Master Controller Drivers
-+#
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
-+
-+#
-+# SPI Protocol Masters
-+#
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+
-+#
-+# Multimedia devices
-+#
-+
-+#
-+# Multimedia core support
-+#
-+# CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_VGASTATE is not set
-+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-+CONFIG_FB=y
-+# CONFIG_FIRMWARE_EDID is not set
-+# CONFIG_FB_DDC is not set
-+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-+CONFIG_FB_CFB_FILLRECT=y
-+CONFIG_FB_CFB_COPYAREA=y
-+CONFIG_FB_CFB_IMAGEBLIT=y
-+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-+# CONFIG_FB_SYS_FILLRECT is not set
-+# CONFIG_FB_SYS_COPYAREA is not set
-+# CONFIG_FB_SYS_IMAGEBLIT is not set
-+# CONFIG_FB_FOREIGN_ENDIAN is not set
-+# CONFIG_FB_SYS_FOPS is not set
-+# CONFIG_FB_SVGALIB is not set
-+# CONFIG_FB_MACMODES is not set
-+# CONFIG_FB_BACKLIGHT is not set
-+# CONFIG_FB_MODE_HELPERS is not set
-+# CONFIG_FB_TILEBLITTING is not set
-+
-+#
-+# Frame buffer hardware drivers
-+#
-+# CONFIG_FB_S1D15605 is not set
-+# CONFIG_FB_S1D13XXX is not set
-+CONFIG_FB_ATMEL=y
-+# CONFIG_FB_ATMEL_STN is not set
-+# CONFIG_FB_VIRTUAL is not set
-+# CONFIG_FB_METRONOME is not set
-+# CONFIG_FB_MB862XX is not set
-+# CONFIG_FB_BROADSHEET is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+# CONFIG_LCD_CLASS_DEVICE is not set
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_ATMEL_LCDC=y
-+# CONFIG_BACKLIGHT_GENERIC is not set
-+
-+#
-+# Display device support
-+#
-+# CONFIG_DISPLAY_SUPPORT is not set
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+# CONFIG_FRAMEBUFFER_CONSOLE is not set
-+# CONFIG_LOGO is not set
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+# CONFIG_SND_ATMEL_AC97C is not set
-+CONFIG_SND_SPI=y
-+CONFIG_SND_AT73C213=y
-+CONFIG_SND_AT73C213_TARGET_BITRATE=48000
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_HID_SUPPORT=y
-+CONFIG_HID=y
-+# CONFIG_HID_DEBUG is not set
-+# CONFIG_HIDRAW is not set
-+
-+#
-+# USB Input Devices
-+#
-+# CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
-+
-+#
-+# Special HID drivers
-+#
-+CONFIG_USB_SUPPORT=y
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB_ARCH_HAS_EHCI is not set
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_SUSPEND is not set
-+# CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
-+
-+#
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-+#
-+
-+#
-+# also be needed; see USB_STORAGE Help for more info
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
-+# CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_ADUTUX is not set
-+# CONFIG_USB_SEVSEG is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_BERRY_CHARGE is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYPRESS_CY7C63 is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_FTDI_ELAN is not set
-+# CONFIG_USB_APPLEDISPLAY is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TRANCEVIBRATOR is not set
-+# CONFIG_USB_IOWARRIOR is not set
-+# CONFIG_USB_TEST is not set
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_ATMEL_USBA is not set
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+# CONFIG_USB_GADGET_DUALSPEED is not set
-+CONFIG_USB_ZERO=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
-+CONFIG_USB_FILE_STORAGE=m
-+# CONFIG_USB_FILE_STORAGE_TEST is not set
-+CONFIG_USB_G_SERIAL=m
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+CONFIG_MMC_AT91=m
-+# CONFIG_MMC_ATMELMCI is not set
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+# CONFIG_RTC_DRV_TEST is not set
-+
-+#
-+# SPI RTC drivers
-+#
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
-+
-+#
-+# Platform RTC drivers
-+#
-+# CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
-+# CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
-+# on-CPU RTC drivers
-+#
-+CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
-+# CONFIG_XFS_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+CONFIG_MISC_FILESYSTEMS=y
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+CONFIG_NLS_CODEPAGE_850=y
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+CONFIG_NLS_ISO8859_15=y
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+CONFIG_NLS_UTF8=y
-+# CONFIG_DLM is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+CONFIG_ENABLE_WARN_DEPRECATED=y
-+CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_HEADERS_CHECK is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+CONFIG_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
-+CONFIG_CRC32=y
-+CONFIG_CRC7=m
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
-Index: linux-2.6.30/arch/arm/configs/at91sam9xeek_defconfig
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30/arch/arm/configs/at91sam9xeek_defconfig	2011-02-01 16:40:30.200115764 +0100
-@@ -0,0 +1,1487 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.30
-+# Tue Oct 13 12:38:49 2009
-+#
-+CONFIG_ARM=y
-+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-+CONFIG_GENERIC_GPIO=y
-+CONFIG_GENERIC_TIME=y
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+CONFIG_MMU=y
-+# CONFIG_NO_IOPORT is not set
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+CONFIG_HARDIRQS_SW_RESEND=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-+CONFIG_VECTORS_BASE=0xffff0000
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+
-+#
-+# General setup
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+# CONFIG_SWAP is not set
-+CONFIG_SYSVIPC=y
-+CONFIG_SYSVIPC_SYSCTL=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+# CONFIG_TASKSTATS is not set
-+# CONFIG_AUDIT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_CLASSIC_RCU=y
-+# CONFIG_TREE_RCU is not set
-+# CONFIG_PREEMPT_RCU is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+# CONFIG_PREEMPT_RCU_TRACE is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_GROUP_SCHED is not set
-+# CONFIG_CGROUPS is not set
-+CONFIG_SYSFS_DEPRECATED=y
-+CONFIG_SYSFS_DEPRECATED_V2=y
-+# CONFIG_RELAY is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_IPC_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_NET_NS is not set
-+CONFIG_BLK_DEV_INITRD=y
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_RD_GZIP=y
-+CONFIG_RD_BZIP2=y
-+CONFIG_RD_LZMA=y
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_UID16=y
-+CONFIG_SYSCTL_SYSCALL=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_STRIP_ASM_SYMS=y
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+CONFIG_SHMEM=y
-+CONFIG_AIO=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_COMPAT_BRK=y
-+CONFIG_SLAB=y
-+# CONFIG_SLUB is not set
-+# CONFIG_SLOB is not set
-+# CONFIG_PROFILING is not set
-+# CONFIG_MARKERS is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_KPROBES is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_CLK=y
-+# CONFIG_SLOW_WORK is not set
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+CONFIG_MODULES=y
-+# CONFIG_MODULE_FORCE_LOAD is not set
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+CONFIG_FREEZER=y
-+
-+#
-+# System Type
-+#
-+# CONFIG_ARCH_AAEC2000 is not set
-+# CONFIG_ARCH_INTEGRATOR is not set
-+# CONFIG_ARCH_REALVIEW is not set
-+# CONFIG_ARCH_VERSATILE is not set
-+CONFIG_ARCH_AT91=y
-+# CONFIG_ARCH_CLPS711X is not set
-+# CONFIG_ARCH_EBSA110 is not set
-+# CONFIG_ARCH_EP93XX is not set
-+# CONFIG_ARCH_GEMINI is not set
-+# CONFIG_ARCH_FOOTBRIDGE is not set
-+# CONFIG_ARCH_NETX is not set
-+# CONFIG_ARCH_H720X is not set
-+# CONFIG_ARCH_IMX is not set
-+# CONFIG_ARCH_IOP13XX is not set
-+# CONFIG_ARCH_IOP32X is not set
-+# CONFIG_ARCH_IOP33X is not set
-+# CONFIG_ARCH_IXP23XX is not set
-+# CONFIG_ARCH_IXP2000 is not set
-+# CONFIG_ARCH_IXP4XX is not set
-+# CONFIG_ARCH_L7200 is not set
-+# CONFIG_ARCH_KIRKWOOD is not set
-+# CONFIG_ARCH_KS8695 is not set
-+# CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_LOKI is not set
-+# CONFIG_ARCH_MV78XX0 is not set
-+# CONFIG_ARCH_MXC is not set
-+# CONFIG_ARCH_ORION5X is not set
-+# CONFIG_ARCH_PNX4008 is not set
-+# CONFIG_ARCH_PXA is not set
-+# CONFIG_ARCH_MMP is not set
-+# CONFIG_ARCH_RPC is not set
-+# CONFIG_ARCH_SA1100 is not set
-+# CONFIG_ARCH_S3C2410 is not set
-+# CONFIG_ARCH_S3C64XX is not set
-+# CONFIG_ARCH_SHARK is not set
-+# CONFIG_ARCH_LH7A40X is not set
-+# CONFIG_ARCH_DAVINCI is not set
-+# CONFIG_ARCH_OMAP is not set
-+# CONFIG_ARCH_MSM is not set
-+# CONFIG_ARCH_W90X900 is not set
-+
-+#
-+# Atmel AT91 System-on-Chip
-+#
-+# CONFIG_ARCH_AT91RM9200 is not set
-+CONFIG_ARCH_AT91SAM9260=y
-+# CONFIG_ARCH_AT91SAM9261 is not set
-+# CONFIG_ARCH_AT91SAM9G10 is not set
-+# CONFIG_ARCH_AT91SAM9263 is not set
-+# CONFIG_ARCH_AT91SAM9RL is not set
-+# CONFIG_ARCH_AT91SAM9G20 is not set
-+# CONFIG_ARCH_AT91SAM9G45 is not set
-+# CONFIG_ARCH_AT91CAP9 is not set
-+# CONFIG_ARCH_AT572D940HF is not set
-+# CONFIG_ARCH_AT91X40 is not set
-+CONFIG_AT91_PMC_UNIT=y
-+
-+#
-+# AT91SAM9260 Variants
-+#
-+# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
-+
-+#
-+# AT91SAM9260 / AT91SAM9XE Board Type
-+#
-+CONFIG_MACH_AT91SAM9260EK=y
-+# CONFIG_MACH_CAM60 is not set
-+# CONFIG_MACH_SAM9_L9260 is not set
-+# CONFIG_MACH_AFEB9260 is not set
-+# CONFIG_MACH_USB_A9260 is not set
-+# CONFIG_MACH_QIL_A9260 is not set
-+# CONFIG_MACH_SBC35_A9260 is not set
-+
-+#
-+# AT91 Board Options
-+#
-+# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
-+# CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
-+
-+#
-+# AT91 Feature Selections
-+#
-+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-+# CONFIG_AT91_SLOW_CLOCK is not set
-+CONFIG_AT91_TIMER_HZ=100
-+CONFIG_AT91_EARLY_DBGU=y
-+# CONFIG_AT91_EARLY_USART0 is not set
-+# CONFIG_AT91_EARLY_USART1 is not set
-+# CONFIG_AT91_EARLY_USART2 is not set
-+# CONFIG_AT91_EARLY_USART3 is not set
-+# CONFIG_AT91_EARLY_USART4 is not set
-+# CONFIG_AT91_EARLY_USART5 is not set
-+
-+#
-+# Processor Type
-+#
-+CONFIG_CPU_32=y
-+CONFIG_CPU_ARM926T=y
-+CONFIG_CPU_32v5=y
-+CONFIG_CPU_ABRT_EV5TJ=y
-+CONFIG_CPU_PABRT_NOIFAR=y
-+CONFIG_CPU_CACHE_VIVT=y
-+CONFIG_CPU_COPY_V4WB=y
-+CONFIG_CPU_TLB_V4WBI=y
-+CONFIG_CPU_CP15=y
-+CONFIG_CPU_CP15_MMU=y
-+
-+#
-+# Processor Features
-+#
-+CONFIG_ARM_THUMB=y
-+# CONFIG_CPU_ICACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_DISABLE is not set
-+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-+# CONFIG_OUTER_CACHE is not set
-+
-+#
-+# Bus support
-+#
-+# CONFIG_PCI_SYSCALL is not set
-+# CONFIG_ARCH_SUPPORTS_MSI is not set
-+# CONFIG_PCCARD is not set
-+
-+#
-+# Kernel Features
-+#
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
-+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-+CONFIG_VMSPLIT_3G=y
-+# CONFIG_VMSPLIT_2G is not set
-+# CONFIG_VMSPLIT_1G is not set
-+CONFIG_PAGE_OFFSET=0xC0000000
-+# CONFIG_PREEMPT is not set
-+CONFIG_HZ=100
-+CONFIG_AEABI=y
-+CONFIG_OABI_COMPAT=y
-+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
-+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=4096
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_VIRT_TO_BUS=y
-+CONFIG_UNEVICTABLE_LRU=y
-+CONFIG_HAVE_MLOCK=y
-+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-+CONFIG_LEDS=y
-+CONFIG_LEDS_CPU=y
-+CONFIG_ALIGNMENT_TRAP=y
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZBOOT_ROM_TEXT=0x0
-+CONFIG_ZBOOT_ROM_BSS=0x0
-+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC is not set
-+
-+#
-+# CPU Power Management
-+#
-+# CONFIG_CPU_IDLE is not set
-+
-+#
-+# Floating point emulation
-+#
-+
-+#
-+# At least one emulation must be selected
-+#
-+CONFIG_FPE_NWFPE=y
-+# CONFIG_FPE_NWFPE_XP is not set
-+# CONFIG_FPE_FASTFPE is not set
-+# CONFIG_VFP is not set
-+
-+#
-+# Userspace binary formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_HAVE_AOUT=y
-+# CONFIG_BINFMT_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options
-+#
-+CONFIG_PM=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND=y
-+CONFIG_SUSPEND_FREEZER=y
-+# CONFIG_APM_EMULATION is not set
-+CONFIG_ARCH_SUSPEND_POSSIBLE=y
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-+# CONFIG_INET_XFRM_MODE_BEET is not set
-+# CONFIG_INET_LRO is not set
-+# CONFIG_INET_DIAG is not set
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_IP_DCCP is not set
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NET_DSA is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_PHONET is not set
-+# CONFIG_NET_SCHED is not set
-+# CONFIG_DCB is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_CAN is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_AF_RXRPC is not set
-+CONFIG_WIRELESS=y
-+CONFIG_CFG80211=y
-+# CONFIG_CFG80211_REG_DEBUG is not set
-+# CONFIG_WIRELESS_OLD_REGULATORY is not set
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_WIRELESS_EXT_SYSFS=y
-+CONFIG_LIB80211=y
-+# CONFIG_LIB80211_DEBUG is not set
-+CONFIG_MAC80211=y
-+
-+#
-+# Rate control algorithm selection
-+#
-+CONFIG_MAC80211_RC_MINSTREL=y
-+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-+CONFIG_MAC80211_RC_DEFAULT="minstrel"
-+# CONFIG_MAC80211_MESH is not set
-+# CONFIG_MAC80211_LEDS is not set
-+# CONFIG_MAC80211_DEBUG_MENU is not set
-+# CONFIG_WIMAX is not set
-+# CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+CONFIG_FIRMWARE_IN_KERNEL=y
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_CONNECTOR is not set
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+# CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_TESTS is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+CONFIG_MTD_CMDLINE_PARTS=y
-+# CONFIG_MTD_AFS_PARTS is not set
-+# CONFIG_MTD_AR7_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLKDEVS=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-+# CONFIG_SSFDC is not set
-+# CONFIG_MTD_OOPS is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+# CONFIG_MTD_CFI is not set
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_DATAFLASH=y
-+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-+# CONFIG_MTD_DATAFLASH_OTP is not set
-+# CONFIG_MTD_M25P80 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-+# CONFIG_MTD_NAND_GPIO is not set
-+CONFIG_MTD_NAND_IDS=y
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+CONFIG_MTD_NAND_ATMEL=y
-+CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
-+# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
-+# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
-+# CONFIG_MTD_NAND_NANDSIM is not set
-+# CONFIG_MTD_NAND_PLATFORM is not set
-+# CONFIG_MTD_ALAUDA is not set
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# LPDDR flash memory drivers
-+#
-+# CONFIG_MTD_LPDDR is not set
-+
-+#
-+# UBI - Unsorted block images
-+#
-+# CONFIG_MTD_UBI is not set
-+# CONFIG_PARPORT is not set
-+CONFIG_BLK_DEV=y
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=4
-+CONFIG_BLK_DEV_RAM_SIZE=8192
-+# CONFIG_BLK_DEV_XIP is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+CONFIG_MISC_DEVICES=y
-+CONFIG_ATMEL_TCLIB=y
-+CONFIG_ATMEL_TCB_CLKSRC=y
-+CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
-+CONFIG_ATMEL_SSC=y
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_AT25 is not set
-+CONFIG_EEPROM_93CX6=m
-+CONFIG_HAVE_IDE=y
-+# CONFIG_IDE is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+# CONFIG_SCSI_SCAN_ASYNC is not set
-+CONFIG_SCSI_WAIT_SCAN=m
-+
-+#
-+# SCSI Transports
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_LIBSAS is not set
-+# CONFIG_SCSI_SRP_ATTRS is not set
-+# CONFIG_SCSI_LOWLEVEL is not set
-+# CONFIG_SCSI_DH is not set
-+# CONFIG_SCSI_OSD_INITIATOR is not set
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+CONFIG_NETDEVICES=y
-+# CONFIG_COMPAT_NET_DEV_OPS is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_VETH is not set
-+CONFIG_PHYLIB=y
-+
-+#
-+# MII PHY device drivers
-+#
-+# CONFIG_MARVELL_PHY is not set
-+CONFIG_DAVICOM_PHY=y
-+# CONFIG_QSEMI_PHY is not set
-+# CONFIG_LXT_PHY is not set
-+# CONFIG_CICADA_PHY is not set
-+# CONFIG_VITESSE_PHY is not set
-+# CONFIG_SMSC_PHY is not set
-+# CONFIG_BROADCOM_PHY is not set
-+# CONFIG_ICPLUS_PHY is not set
-+# CONFIG_REALTEK_PHY is not set
-+# CONFIG_NATIONAL_PHY is not set
-+# CONFIG_STE10XP is not set
-+# CONFIG_LSI_ET1011C_PHY is not set
-+# CONFIG_FIXED_PHY is not set
-+# CONFIG_MDIO_BITBANG is not set
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+CONFIG_MACB=y
-+CONFIG_MACB_TX_SRAM=y
-+# CONFIG_AX88796 is not set
-+# CONFIG_SMC91X is not set
-+# CONFIG_DM9000 is not set
-+# CONFIG_ENC28J60 is not set
-+# CONFIG_ETHOC is not set
-+# CONFIG_SMC911X is not set
-+# CONFIG_SMSC911X is not set
-+# CONFIG_DNET is not set
-+# CONFIG_IBM_NEW_EMAC_ZMII is not set
-+# CONFIG_IBM_NEW_EMAC_RGMII is not set
-+# CONFIG_IBM_NEW_EMAC_TAH is not set
-+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-+# CONFIG_B44 is not set
-+# CONFIG_NETDEV_1000 is not set
-+# CONFIG_NETDEV_10000 is not set
-+
-+#
-+# Wireless LAN
-+#
-+# CONFIG_WLAN_PRE80211 is not set
-+CONFIG_WLAN_80211=y
-+CONFIG_LIBERTAS=m
-+CONFIG_LIBERTAS_USB=m
-+CONFIG_LIBERTAS_SDIO=m
-+# CONFIG_LIBERTAS_SPI is not set
-+# CONFIG_LIBERTAS_DEBUG is not set
-+# CONFIG_LIBERTAS_THINFIRM is not set
-+# CONFIG_AT76C50X_USB is not set
-+CONFIG_USB_ZD1201=m
-+# CONFIG_USB_NET_RNDIS_WLAN is not set
-+CONFIG_RTL8187=m
-+# CONFIG_MAC80211_HWSIM is not set
-+# CONFIG_P54_COMMON is not set
-+CONFIG_AR9170_USB=m
-+# CONFIG_HOSTAP is not set
-+# CONFIG_B43 is not set
-+# CONFIG_B43LEGACY is not set
-+CONFIG_ZD1211RW=m
-+# CONFIG_ZD1211RW_DEBUG is not set
-+CONFIG_RT2X00=m
-+CONFIG_RT2500USB=m
-+CONFIG_RT73USB=m
-+CONFIG_RT2X00_LIB_USB=m
-+CONFIG_RT2X00_LIB=m
-+CONFIG_RT2X00_LIB_FIRMWARE=y
-+CONFIG_RT2X00_LIB_CRYPTO=y
-+CONFIG_RT2X00_LIB_RFKILL=y
-+CONFIG_RT2X00_LIB_LEDS=y
-+# CONFIG_RT2X00_DEBUG is not set
-+
-+#
-+# Enable WiMAX (Networking options) to see the WiMAX drivers
-+#
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_WAN is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+# CONFIG_NETCONSOLE is not set
-+# CONFIG_NETPOLL is not set
-+# CONFIG_NET_POLL_CONTROLLER is not set
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+CONFIG_INPUT_POLLDEV=m
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
-+# CONFIG_INPUT_JOYDEV is not set
-+CONFIG_INPUT_EVDEV=y
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_STOWAWAY is not set
-+CONFIG_KEYBOARD_GPIO=y
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+CONFIG_SERIO_SERPORT=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_DEVKMEM=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_ATMEL=y
-+CONFIG_SERIAL_ATMEL_CONSOLE=y
-+CONFIG_SERIAL_ATMEL_PDC=y
-+# CONFIG_SERIAL_ATMEL_TTYAT is not set
-+# CONFIG_SERIAL_MAX3100 is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=4
-+# CONFIG_IPMI_HANDLER is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_I2C is not set
-+CONFIG_SPI=y
-+CONFIG_SPI_MASTER=y
-+
-+#
-+# SPI Master Controller Drivers
-+#
-+CONFIG_SPI_ATMEL=y
-+# CONFIG_SPI_BITBANG is not set
-+# CONFIG_SPI_GPIO is not set
-+
-+#
-+# SPI Protocol Masters
-+#
-+CONFIG_SPI_SPIDEV=y
-+# CONFIG_SPI_TLE62X0 is not set
-+CONFIG_ARCH_REQUIRE_GPIOLIB=y
-+CONFIG_GPIOLIB=y
-+# CONFIG_GPIO_SYSFS is not set
-+
-+#
-+# Memory mapped GPIO expanders:
-+#
-+
-+#
-+# I2C GPIO expanders:
-+#
-+
-+#
-+# PCI GPIO expanders:
-+#
-+
-+#
-+# SPI GPIO expanders:
-+#
-+# CONFIG_GPIO_MAX7301 is not set
-+# CONFIG_GPIO_MCP23S08 is not set
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_THERMAL_HWMON is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_MFD_ASIC3 is not set
-+# CONFIG_HTC_EGPIO is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_MFD_T7L66XB is not set
-+# CONFIG_MFD_TC6387XB is not set
-+# CONFIG_MFD_TC6393XB is not set
-+
-+#
-+# Multimedia devices
-+#
-+
-+#
-+# Multimedia core support
-+#
-+# CONFIG_VIDEO_DEV is not set
-+# CONFIG_DVB_CORE is not set
-+# CONFIG_VIDEO_MEDIA is not set
-+
-+#
-+# Multimedia drivers
-+#
-+# CONFIG_DAB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_VGASTATE is not set
-+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-+# CONFIG_FB is not set
-+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+
-+#
-+# Display device support
-+#
-+# CONFIG_DISPLAY_SUPPORT is not set
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+CONFIG_SOUND=y
-+CONFIG_SOUND_OSS_CORE=y
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
-+CONFIG_SND_HWDEP=m
-+CONFIG_SND_RAWMIDI=m
-+CONFIG_SND_SEQUENCER=y
-+# CONFIG_SND_SEQ_DUMMY is not set
-+CONFIG_SND_OSSEMUL=y
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
-+CONFIG_SND_PCM_OSS_PLUGINS=y
-+# CONFIG_SND_SEQUENCER_OSS is not set
-+# CONFIG_SND_DYNAMIC_MINORS is not set
-+# CONFIG_SND_SUPPORT_OLD_API is not set
-+# CONFIG_SND_VERBOSE_PROCFS is not set
-+# CONFIG_SND_VERBOSE_PRINTK is not set
-+# CONFIG_SND_DEBUG is not set
-+# CONFIG_SND_DRIVERS is not set
-+# CONFIG_SND_ARM is not set
-+
-+#
-+# Atmel devices (AVR32 and AT91)
-+#
-+# CONFIG_SND_ATMEL_AC97C is not set
-+CONFIG_SND_SPI=y
-+CONFIG_SND_AT73C213=y
-+CONFIG_SND_AT73C213_TARGET_BITRATE=48000
-+CONFIG_SND_USB=y
-+CONFIG_SND_USB_AUDIO=m
-+# CONFIG_SND_USB_CAIAQ is not set
-+# CONFIG_SND_SOC is not set
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_HID_SUPPORT=y
-+CONFIG_HID=y
-+# CONFIG_HID_DEBUG is not set
-+# CONFIG_HIDRAW is not set
-+
-+#
-+# USB Input Devices
-+#
-+# CONFIG_USB_HID is not set
-+# CONFIG_HID_PID is not set
-+
-+#
-+# Special HID drivers
-+#
-+CONFIG_USB_SUPPORT=y
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB_ARCH_HAS_EHCI is not set
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_DEVICE_CLASS is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_SUSPEND is not set
-+# CONFIG_USB_OTG is not set
-+# CONFIG_USB_MON is not set
-+# CONFIG_USB_WUSB is not set
-+# CONFIG_USB_WUSB_CBAF is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_C67X00_HCD is not set
-+# CONFIG_USB_OXU210HP_HCD is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+# CONFIG_USB_ISP1760_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-+# CONFIG_USB_HWA_HCD is not set
-+# CONFIG_USB_MUSB_HDRC is not set
-+# CONFIG_USB_GADGET_MUSB_HDRC is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+# CONFIG_USB_WDM is not set
-+# CONFIG_USB_TMC is not set
-+
-+#
-+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-+#
-+
-+#
-+# also be needed; see USB_STORAGE Help for more info
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_STORAGE_ONETOUCH is not set
-+# CONFIG_USB_STORAGE_KARMA is not set
-+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_ADUTUX is not set
-+# CONFIG_USB_SEVSEG is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_BERRY_CHARGE is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYPRESS_CY7C63 is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_FTDI_ELAN is not set
-+# CONFIG_USB_APPLEDISPLAY is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TRANCEVIBRATOR is not set
-+# CONFIG_USB_IOWARRIOR is not set
-+# CONFIG_USB_TEST is not set
-+# CONFIG_USB_ISIGHTFW is not set
-+# CONFIG_USB_VST is not set
-+CONFIG_USB_GADGET=y
-+# CONFIG_USB_GADGET_DEBUG_FILES is not set
-+CONFIG_USB_GADGET_VBUS_DRAW=2
-+CONFIG_USB_GADGET_SELECTED=y
-+CONFIG_USB_GADGET_AT91=y
-+CONFIG_USB_AT91=y
-+# CONFIG_USB_GADGET_ATMEL_USBA is not set
-+# CONFIG_USB_GADGET_FSL_USB2 is not set
-+# CONFIG_USB_GADGET_LH7A40X is not set
-+# CONFIG_USB_GADGET_OMAP is not set
-+# CONFIG_USB_GADGET_PXA25X is not set
-+# CONFIG_USB_GADGET_PXA27X is not set
-+# CONFIG_USB_GADGET_S3C2410 is not set
-+# CONFIG_USB_GADGET_IMX is not set
-+# CONFIG_USB_GADGET_M66592 is not set
-+# CONFIG_USB_GADGET_AMD5536UDC is not set
-+# CONFIG_USB_GADGET_FSL_QE is not set
-+# CONFIG_USB_GADGET_CI13XXX is not set
-+# CONFIG_USB_GADGET_NET2280 is not set
-+# CONFIG_USB_GADGET_GOKU is not set
-+# CONFIG_USB_GADGET_DUMMY_HCD is not set
-+# CONFIG_USB_GADGET_DUALSPEED is not set
-+CONFIG_USB_ZERO=m
-+CONFIG_USB_ETH=m
-+CONFIG_USB_ETH_RNDIS=y
-+# CONFIG_USB_GADGETFS is not set
-+CONFIG_USB_FILE_STORAGE=m
-+# CONFIG_USB_FILE_STORAGE_TEST is not set
-+CONFIG_USB_G_SERIAL=m
-+# CONFIG_USB_MIDI_GADGET is not set
-+# CONFIG_USB_G_PRINTER is not set
-+CONFIG_USB_CDC_COMPOSITE=m
-+
-+#
-+# OTG and related infrastructure
-+#
-+# CONFIG_USB_GPIO_VBUS is not set
-+# CONFIG_NOP_USB_XCEIV is not set
-+CONFIG_MMC=y
-+# CONFIG_MMC_DEBUG is not set
-+# CONFIG_MMC_UNSAFE_RESUME is not set
-+
-+#
-+# MMC/SD/SDIO Card Drivers
-+#
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-+CONFIG_SDIO_UART=m
-+# CONFIG_MMC_TEST is not set
-+
-+#
-+# MMC/SD/SDIO Host Controller Drivers
-+#
-+# CONFIG_MMC_SDHCI is not set
-+CONFIG_MMC_AT91=y
-+# CONFIG_MMC_ATMELMCI is not set
-+# CONFIG_MMC_SPI is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+
-+#
-+# LED drivers
-+#
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_GPIO_PLATFORM=y
-+# CONFIG_LEDS_DAC124S085 is not set
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-+CONFIG_LEDS_TRIGGER_GPIO=y
-+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-+
-+#
-+# iptables trigger is under Netfilter config (LED target)
-+#
-+CONFIG_RTC_LIB=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-+# CONFIG_RTC_DEBUG is not set
-+
-+#
-+# RTC interfaces
-+#
-+CONFIG_RTC_INTF_SYSFS=y
-+CONFIG_RTC_INTF_PROC=y
-+CONFIG_RTC_INTF_DEV=y
-+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-+# CONFIG_RTC_DRV_TEST is not set
-+
-+#
-+# SPI RTC drivers
-+#
-+# CONFIG_RTC_DRV_M41T94 is not set
-+# CONFIG_RTC_DRV_DS1305 is not set
-+# CONFIG_RTC_DRV_DS1390 is not set
-+# CONFIG_RTC_DRV_MAX6902 is not set
-+# CONFIG_RTC_DRV_R9701 is not set
-+# CONFIG_RTC_DRV_RS5C348 is not set
-+# CONFIG_RTC_DRV_DS3234 is not set
-+
-+#
-+# Platform RTC drivers
-+#
-+# CONFIG_RTC_DRV_CMOS is not set
-+# CONFIG_RTC_DRV_DS1286 is not set
-+# CONFIG_RTC_DRV_DS1511 is not set
-+# CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_DS1742 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
-+# CONFIG_RTC_DRV_M48T86 is not set
-+# CONFIG_RTC_DRV_M48T35 is not set
-+# CONFIG_RTC_DRV_M48T59 is not set
-+# CONFIG_RTC_DRV_BQ4802 is not set
-+# CONFIG_RTC_DRV_V3020 is not set
-+
-+#
-+# on-CPU RTC drivers
-+#
-+CONFIG_RTC_DRV_AT91SAM9=y
-+CONFIG_RTC_DRV_AT91SAM9_RTT=0
-+CONFIG_RTC_DRV_AT91SAM9_GPBR=0
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_UIO is not set
-+# CONFIG_STAGING is not set
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
-+# CONFIG_XFS_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+CONFIG_DNOTIFY=y
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_PROC_PAGE_MONITOR=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_TMPFS_POSIX_ACL is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+CONFIG_MISC_FILESYSTEMS=y
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=0
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-+CONFIG_JFFS2_SUMMARY=y
-+# CONFIG_JFFS2_FS_XATTR is not set
-+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-+CONFIG_JFFS2_ZLIB=y
-+# CONFIG_JFFS2_LZO is not set
-+CONFIG_JFFS2_RTIME=y
-+# CONFIG_JFFS2_RUBIN is not set
-+CONFIG_CRAMFS=m
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_EMBEDDED=y
-+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_OMFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+CONFIG_NETWORK_FILESYSTEMS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+CONFIG_NLS_CODEPAGE_850=y
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+CONFIG_NLS_ISO8859_15=y
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+CONFIG_NLS_UTF8=y
-+# CONFIG_DLM is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+CONFIG_ENABLE_WARN_DEPRECATED=y
-+CONFIG_ENABLE_MUST_CHECK=y
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_HEADERS_CHECK is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+CONFIG_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_MEMORY_INIT=y
-+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-+# CONFIG_LATENCYTOP is not set
-+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_TRACING_SUPPORT=y
-+
-+#
-+# Tracers
-+#
-+# CONFIG_FUNCTION_TRACER is not set
-+# CONFIG_IRQSOFF_TRACER is not set
-+# CONFIG_SCHED_TRACER is not set
-+# CONFIG_CONTEXT_SWITCH_TRACER is not set
-+# CONFIG_EVENT_TRACER is not set
-+# CONFIG_BOOT_TRACER is not set
-+# CONFIG_TRACE_BRANCH_PROFILING is not set
-+# CONFIG_STACK_TRACER is not set
-+# CONFIG_KMEMTRACE is not set
-+# CONFIG_WORKQUEUE_TRACER is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+CONFIG_ARM_UNWIND=y
-+CONFIG_DEBUG_USER=y
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-+CONFIG_CRYPTO=y
-+
-+#
-+# Crypto core or helper
-+#
-+# CONFIG_CRYPTO_FIPS is not set
-+CONFIG_CRYPTO_ALGAPI=y
-+CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD2=y
-+CONFIG_CRYPTO_BLKCIPHER=y
-+CONFIG_CRYPTO_BLKCIPHER2=y
-+CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG2=y
-+CONFIG_CRYPTO_PCOMP=y
-+CONFIG_CRYPTO_MANAGER=y
-+CONFIG_CRYPTO_MANAGER2=y
-+# CONFIG_CRYPTO_GF128MUL is not set
-+# CONFIG_CRYPTO_NULL is not set
-+CONFIG_CRYPTO_WORKQUEUE=y
-+# CONFIG_CRYPTO_CRYPTD is not set
-+# CONFIG_CRYPTO_AUTHENC is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Authenticated Encryption with Associated Data
-+#
-+# CONFIG_CRYPTO_CCM is not set
-+# CONFIG_CRYPTO_GCM is not set
-+# CONFIG_CRYPTO_SEQIV is not set
-+
-+#
-+# Block modes
-+#
-+# CONFIG_CRYPTO_CBC is not set
-+# CONFIG_CRYPTO_CTR is not set
-+# CONFIG_CRYPTO_CTS is not set
-+CONFIG_CRYPTO_ECB=y
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_PCBC is not set
-+# CONFIG_CRYPTO_XTS is not set
-+
-+#
-+# Hash modes
-+#
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_XCBC is not set
-+
-+#
-+# Digest
-+#
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+# CONFIG_CRYPTO_MD5 is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_RMD128 is not set
-+# CONFIG_CRYPTO_RMD160 is not set
-+# CONFIG_CRYPTO_RMD256 is not set
-+# CONFIG_CRYPTO_RMD320 is not set
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+
-+#
-+# Ciphers
-+#
-+CONFIG_CRYPTO_AES=y
-+# CONFIG_CRYPTO_ANUBIS is not set
-+CONFIG_CRYPTO_ARC4=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_CAMELLIA is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_SALSA20 is not set
-+# CONFIG_CRYPTO_SEED is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+
-+#
-+# Compression
-+#
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_ZLIB is not set
-+# CONFIG_CRYPTO_LZO is not set
-+
-+#
-+# Random Number Generation
-+#
-+# CONFIG_CRYPTO_ANSI_CPRNG is not set
-+# CONFIG_CRYPTO_HW is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+CONFIG_GENERIC_FIND_LAST_BIT=y
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+# CONFIG_CRC_T10DIF is not set
-+CONFIG_CRC_ITU_T=m
-+CONFIG_CRC32=y
-+# CONFIG_CRC7 is not set
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_DECOMPRESS_GZIP=y
-+CONFIG_DECOMPRESS_BZIP2=y
-+CONFIG_DECOMPRESS_LZMA=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-+CONFIG_HAS_DMA=y
-+CONFIG_NLATTR=y
diff --git a/recipes/linux/linux-2.6.30/ronetix-pm9g45/defconfig b/recipes/linux/linux-2.6.30/ronetix-pm9g45/defconfig
index 5612f45..e71bcd8 100644
--- a/recipes/linux/linux-2.6.30/ronetix-pm9g45/defconfig
+++ b/recipes/linux/linux-2.6.30/ronetix-pm9g45/defconfig
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.30.10
-# Wed Feb  2 12:51:47 2011
+# Linux kernel version: 2.6.30
+# Wed Jun 15 14:53:04 2011
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -67,7 +67,7 @@ CONFIG_NAMESPACES=y
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
 # CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
 # CONFIG_EMBEDDED is not set
@@ -186,6 +186,7 @@ CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_AT91SAM9RL is not set
 # CONFIG_ARCH_AT91SAM9G20 is not set
 CONFIG_ARCH_AT91SAM9G45=y
+# CONFIG_ARCH_AT91SAM9M10 is not set
 # CONFIG_ARCH_AT91CAP9 is not set
 # CONFIG_ARCH_AT572D940HF is not set
 # CONFIG_ARCH_AT91X40 is not set
@@ -196,6 +197,11 @@ CONFIG_AT91_PMC_UNIT=y
 #
 # CONFIG_MACH_AT91SAM9G45EKES is not set
 CONFIG_MACH_PM9G45=y
+CONFIG_MACH_BB9G45_V1_0=y
+# CONFIG_MACH_BB9263_V1_1 is not set
+# CONFIG_MACH_BB9G45_USB_OTG is not set
+# CONFIG_MACH_BB9G45_USB_HOST is not set
+CONFIG_MACH_BB9G45_USB_DEVICE=y
 # CONFIG_MACH_PM9G45_V1_1 is not set
 CONFIG_MACH_PM9G45_V1_2=y
 CONFIG_AUTO_VRAM_SIZE=y
@@ -210,7 +216,7 @@ CONFIG_PM9G45_LCD_GATW70SN8H1E0=y
 #
 # AT91 Board Options
 #
-CONFIG_MTD_AT91_DATAFLASH_CARD=y
+# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
 # CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16 is not set
 
 #
@@ -269,9 +275,8 @@ CONFIG_AT91_CF=y
 #
 # Kernel Features
 #
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_VMSPLIT_3G=y
 # CONFIG_VMSPLIT_2G is not set
@@ -280,7 +285,7 @@ CONFIG_PAGE_OFFSET=0xC0000000
 # CONFIG_PREEMPT is not set
 CONFIG_HZ=100
 CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
+CONFIG_OABI_COMPAT=y
 # CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
@@ -299,7 +304,6 @@ CONFIG_VIRT_TO_BUS=y
 CONFIG_UNEVICTABLE_LRU=y
 CONFIG_HAVE_MLOCK=y
 CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_LEDS=y
 CONFIG_LEDS_CPU=y
 CONFIG_ALIGNMENT_TRAP=y
@@ -309,7 +313,7 @@ CONFIG_ALIGNMENT_TRAP=y
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE=" debug "
+CONFIG_CMDLINE="mem=64M fbcon=rotate:3 root=/dev/mtdblock4 rw mtdparts=atmel_nand:128k(bootstrap)ro,256k(uboot)ro,1664k(env),2M(linux),-(root) rootfstype=jffs2"
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
 
@@ -325,6 +329,9 @@ CONFIG_CMDLINE=" debug "
 #
 # At least one emulation must be selected
 #
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
 # CONFIG_VFP is not set
 
 #
@@ -354,10 +361,7 @@ CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 # CONFIG_IP_ADVANCED_ROUTER is not set
 CONFIG_IP_FIB_HASH=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IP_PNP_RARP is not set
+# CONFIG_IP_PNP is not set
 # CONFIG_NET_IPIP is not set
 # CONFIG_NET_IPGRE is not set
 # CONFIG_IP_MROUTE is not set
@@ -408,7 +412,27 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 # CONFIG_IRDA is not set
 # CONFIG_BT is not set
 # CONFIG_AF_RXRPC is not set
-# CONFIG_WIRELESS is not set
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=y
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_WIRELESS_OLD_REGULATORY is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=y
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=y
+
+#
+# Rate control algorithm selection
+#
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+# CONFIG_MAC80211_MESH is not set
+# CONFIG_MAC80211_LEDS is not set
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
 # CONFIG_WIMAX is not set
 # CONFIG_RFKILL is not set
 # CONFIG_NET_9P is not set
@@ -481,9 +505,7 @@ CONFIG_MTD_CFI_I2=y
 #
 # Self-contained MTD device drivers
 #
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
-# CONFIG_MTD_DATAFLASH_OTP is not set
+# CONFIG_MTD_DATAFLASH is not set
 # CONFIG_MTD_M25P80 is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_PHRAM is not set
@@ -544,14 +566,18 @@ CONFIG_MISC_DEVICES=y
 CONFIG_ATMEL_TCLIB=y
 CONFIG_ATMEL_TCB_CLKSRC=y
 CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
+# CONFIG_ICS932S401 is not set
 CONFIG_ATMEL_SSC=y
 # CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_ISL29003 is not set
 # CONFIG_C2PORT is not set
 
 #
 # EEPROM support
 #
+# CONFIG_EEPROM_AT24 is not set
 # CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
 # CONFIG_EEPROM_93CX6 is not set
 CONFIG_HAVE_IDE=y
 CONFIG_IDE=y
@@ -675,7 +701,31 @@ CONFIG_MACB=y
 # Wireless LAN
 #
 # CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WLAN_80211 is not set
+CONFIG_WLAN_80211=y
+# CONFIG_PCMCIA_RAYCS is not set
+CONFIG_LIBERTAS=y
+# CONFIG_LIBERTAS_USB is not set
+# CONFIG_LIBERTAS_CS is not set
+CONFIG_LIBERTAS_SDIO=y
+CONFIG_LIBERTAS_SPI=y
+CONFIG_LIBERTAS_DEBUG=y
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_ATMEL is not set
+# CONFIG_AT76C50X_USB is not set
+# CONFIG_AIRO_CS is not set
+# CONFIG_PCMCIA_WL3501 is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_AR9170_USB is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_HERMES is not set
 
 #
 # Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -710,11 +760,11 @@ CONFIG_INPUT=y
 #
 CONFIG_INPUT_MOUSEDEV=y
 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
 CONFIG_INPUT_JOYDEV=y
 CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_EVBUG=y
+# CONFIG_INPUT_EVBUG is not set
 
 #
 # Input Device Drivers
@@ -726,7 +776,7 @@ CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_XTKBD is not set
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_GPIO is not set
+CONFIG_KEYBOARD_GPIO=y
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=y
 CONFIG_MOUSE_PS2_ALPS=y
@@ -743,8 +793,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TABLET is not set
 CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
 # CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 # CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_FUJITSU is not set
@@ -757,10 +808,10 @@ CONFIG_TOUCHSCREEN_ADS7846=y
 # CONFIG_TOUCHSCREEN_PENMOUNT is not set
 # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
 # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ATMEL_TSADCC is not set
-# CONFIG_TOUCHSCREEN_WM97XX is not set
+CONFIG_TOUCHSCREEN_ATMEL_TSADCC=y
 # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
 # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
 # CONFIG_INPUT_MISC is not set
 
 #
@@ -816,9 +867,51 @@ CONFIG_HW_RANDOM=y
 # CONFIG_IPWIRELESS is not set
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_TCG_TPM is not set
-# CONFIG_I2C is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=y
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_I2C_DEBUG_CORE=y
+# CONFIG_I2C_DEBUG_ALGO is not set
+CONFIG_I2C_DEBUG_BUS=y
+CONFIG_I2C_DEBUG_CHIP=y
 CONFIG_SPI=y
-CONFIG_SPI_DEBUG=y
+# CONFIG_SPI_DEBUG is not set
 CONFIG_SPI_MASTER=y
 
 #
@@ -845,6 +938,9 @@ CONFIG_GPIOLIB=y
 #
 # I2C GPIO expanders:
 #
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
 
 #
 # PCI GPIO expanders:
@@ -861,6 +957,7 @@ CONFIG_W1=y
 # 1-wire Bus Masters
 #
 # CONFIG_W1_MASTER_DS2490 is not set
+# CONFIG_W1_MASTER_DS2482 is not set
 # CONFIG_W1_MASTER_DS1WM is not set
 CONFIG_W1_MASTER_GPIO=y
 
@@ -869,12 +966,74 @@ CONFIG_W1_MASTER_GPIO=y
 #
 # CONFIG_W1_SLAVE_THERM is not set
 # CONFIG_W1_SLAVE_SMEM is not set
-# CONFIG_W1_SLAVE_DS2431 is not set
+CONFIG_W1_SLAVE_DS2431=y
 # CONFIG_W1_SLAVE_DS2433 is not set
 # CONFIG_W1_SLAVE_DS2760 is not set
 # CONFIG_W1_SLAVE_BQ27000 is not set
 # CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7473 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
 # CONFIG_THERMAL is not set
 # CONFIG_THERMAL_HWMON is not set
 # CONFIG_WATCHDOG is not set
@@ -893,11 +1052,16 @@ CONFIG_SSB_POSSIBLE=y
 # CONFIG_MFD_ASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
 # CONFIG_HTC_PASIC3 is not set
-# CONFIG_UCB1400_CORE is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TWL4030_CORE is not set
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_T7L66XB is not set
 # CONFIG_MFD_TC6387XB is not set
 # CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
 
 #
 # Multimedia devices
@@ -919,7 +1083,7 @@ CONFIG_SSB_POSSIBLE=y
 # Graphics support
 #
 # CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
 CONFIG_FB=y
 # CONFIG_FIRMWARE_EDID is not set
 # CONFIG_FB_DDC is not set
@@ -949,7 +1113,16 @@ CONFIG_FB_ATMEL=y
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+CONFIG_LCD_PLATFORM=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_ATMEL_LCDC=y
+# CONFIG_BACKLIGHT_GENERIC is not set
 
 #
 # Display device support
@@ -964,41 +1137,65 @@ CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
 CONFIG_FONT_8x16=y
-# CONFIG_LOGO is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
 CONFIG_SOUND=y
 CONFIG_SOUND_OSS_CORE=y
 CONFIG_SND=y
 CONFIG_SND_TIMER=y
 CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=y
+# CONFIG_SND_SEQ_DUMMY is not set
 CONFIG_SND_OSSEMUL=y
 CONFIG_SND_MIXER_OSS=y
 CONFIG_SND_PCM_OSS=y
 CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_DYNAMIC_MINORS=y
 CONFIG_SND_SUPPORT_OLD_API=y
 CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_AC97_CODEC=y
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_ARM is not set
+CONFIG_SND_VERBOSE_PRINTK=y
+CONFIG_SND_DEBUG=y
+CONFIG_SND_DEBUG_VERBOSE=y
+CONFIG_SND_PCM_XRUN_DEBUG=y
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_ARM=y
 
 #
 # Atmel devices (AVR32 and AT91)
 #
-CONFIG_SND_ATMEL_AC97C=y
-# CONFIG_SND_SPI is not set
+# CONFIG_SND_ATMEL_AC97C is not set
+CONFIG_SND_SPI=y
+# CONFIG_SND_AT73C213 is not set
 # CONFIG_SND_USB is not set
 # CONFIG_SND_PCMCIA is not set
-# CONFIG_SND_SOC is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_ATMEL_SOC=y
+CONFIG_SND_ATMEL_SOC_SSC=y
+CONFIG_SND_AT91_SOC_SAM9G20_WM8731=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_WM8731=y
 # CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=y
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=y
 CONFIG_HID_DEBUG=y
@@ -1046,17 +1243,17 @@ CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
 CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
+CONFIG_USB_DEBUG=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
 #
 # Miscellaneous USB options
 #
 CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DEVICE_CLASS=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_OTG is not set
-# CONFIG_USB_MON is not set
+CONFIG_USB_MON=y
 # CONFIG_USB_WUSB is not set
 # CONFIG_USB_WUSB_CBAF is not set
 
@@ -1065,8 +1262,8 @@ CONFIG_USB_DEVICEFS=y
 #
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 # CONFIG_USB_OXU210HP_HCD is not set
 # CONFIG_USB_ISP116X_HCD is not set
 # CONFIG_USB_ISP1760_HCD is not set
@@ -1083,7 +1280,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 #
 # USB Device Class drivers
 #
-# CONFIG_USB_ACM is not set
+CONFIG_USB_ACM=y
 # CONFIG_USB_PRINTER is not set
 # CONFIG_USB_WDM is not set
 # CONFIG_USB_TMC is not set
@@ -1119,7 +1316,9 @@ CONFIG_USB_STORAGE=y
 #
 # USB port drivers
 #
-# CONFIG_USB_SERIAL is not set
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
 
 #
 # USB Miscellaneous drivers
@@ -1173,7 +1372,7 @@ CONFIG_USB_GADGET_DUALSPEED=y
 # CONFIG_USB_ETH is not set
 # CONFIG_USB_GADGETFS is not set
 # CONFIG_USB_FILE_STORAGE is not set
-CONFIG_USB_G_SERIAL=y
+CONFIG_USB_SERIAL=y
 # CONFIG_USB_MIDI_GADGET is not set
 # CONFIG_USB_G_PRINTER is not set
 # CONFIG_USB_CDC_COMPOSITE is not set
@@ -1192,7 +1391,7 @@ CONFIG_MMC=y
 #
 CONFIG_MMC_BLOCK=y
 CONFIG_MMC_BLOCK_BOUNCE=y
-# CONFIG_SDIO_UART is not set
+CONFIG_SDIO_UART=y
 # CONFIG_MMC_TEST is not set
 
 #
@@ -1211,9 +1410,13 @@ CONFIG_LEDS_CLASS=y
 #
 # LED drivers
 #
+# CONFIG_LEDS_PCA9532 is not set
 CONFIG_LEDS_GPIO=y
 CONFIG_LEDS_GPIO_PLATFORM=y
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_PCA955X is not set
 # CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
 
 #
 # LED Triggers
@@ -1245,6 +1448,23 @@ CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_DRV_TEST is not set
 
 #
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+
+#
 # SPI RTC drivers
 #
 # CONFIG_RTC_DRV_M41T94 is not set
@@ -1304,10 +1524,10 @@ CONFIG_DMA_ENGINE=y
 # CONFIG_REISERFS_FS is not set
 # CONFIG_JFS_FS is not set
 # CONFIG_FS_POSIX_ACL is not set
+CONFIG_FILE_LOCKING=y
 # CONFIG_XFS_FS is not set
 # CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
-CONFIG_FILE_LOCKING=y
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
@@ -1371,7 +1591,9 @@ CONFIG_JFFS2_RTIME=y
 CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-# CONFIG_UBIFS_FS is not set
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -1388,13 +1610,9 @@ CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V3_ACL is not set
 # CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=y
-# CONFIG_NFSD_V3 is not set
-# CONFIG_NFSD_V4 is not set
+# CONFIG_NFSD is not set
 CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=y
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=y
 # CONFIG_RPCSEC_GSS_KRB5 is not set
@@ -1455,7 +1673,7 @@ CONFIG_NLS_ISO8859_1=y
 #
 # Kernel hacking
 #
-CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_TIME is not set
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -1526,7 +1744,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_ARM_UNWIND=y
 CONFIG_DEBUG_USER=y
-# CONFIG_DEBUG_ERRORS is not set
+CONFIG_DEBUG_ERRORS=y
 # CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_LL is not set
 
@@ -1642,9 +1860,9 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
 # CONFIG_CRC_CCITT is not set
 CONFIG_CRC16=y
 # CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC_ITU_T=y
 CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
+CONFIG_CRC7=y
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
diff --git a/recipes/linux/linux_2.6.30.bb b/recipes/linux/linux_2.6.30.bb
index a49246c..f979c19 100644
--- a/recipes/linux/linux_2.6.30.bb
+++ b/recipes/linux/linux_2.6.30.bb
@@ -78,27 +78,33 @@ do_apply_at91_exp_patch () {
 	done
 }
 
-
 SRC_URI_ronetix-pm9g45 = " \
 	   ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2;name=kernel \
-           ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${PV}.10.bz2;apply=yes;name=stablepatch \
-	   http://download.ronetix.info/boards/linux/kernel/2.6.30/2.6.30-at91.patch.gz;apply=yes \
-	   file://2.6.30-at91-exp.patch \
+	   http://maxim.org.za/AT91RM9200/2.6/2.6.30-at91.patch.gz;apply=yes;name=at91patch \
+	   ftp://www.at91.com/pub/buildroot/2.6.30-exp.2.patch.bz2;apply=yes;name=at91exp2 \
            file://0001-ads7846-.c-and-.h-add-swap_xy.patch \
-           file://0002-add-pm9g45-number-in-mach-types.patch \
-           file://0003-print-some-more-info-from-atmel_nand.c.patch \
-           file://0004-add-newline-at-the-end-of-uncorrectable-error.patch \
-           file://0005-Add-CompactFlash-to-at91sam9g45-architecture.patch \
-           file://0006-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch \
-           file://0007-add-pm9g45-board.patch \
-           file://0008-pm9g45-default-configuration-files.patch \
-           file://0009-add-float-flags-in-Makefile.patch \
-           file://0010-conditional-compile-if-DEDICATED_VRAM.patch \
-           file://0011-add-pm9g45-board-version-1.2-and-adjust-memory-sele.patch \
-	   file://defconfig"
-
-#	   http://download.ronetix.info/boards/linux/kernel/2.6.30/
-	
+           file://0002-print-some-more-info-from-atmel_nand.c.patch \
+           file://0003-add-newline-at-the-end-of-uncorrectable-error.patch \
+           file://0004-Add-CompactFlash-to-at91sam9g45-architecture.patch \
+           file://0005-pm9g45-system-ram-can-be-on-CS1-or-CS6.patch \
+           file://0006-add-board-pm9g45.patch \
+           file://0007-pm9g45-default-configuration-files.patch \
+           file://0008-add-float-flags-in-Makefile.patch \
+           file://0009-conditional-compile-if-DEDICATED_VRAM.patch \
+           file://0010-add-pm9g45-board-version-1.2-and-adjust-memory-selec.patch \
+           file://0011-enable-USB-Device-with-On-the-go-ability.patch \
+           file://0012-one-more-update-of-mach-types.patch \
+           file://0013-sam9g45-UHSDP-add-debug-info.patch \
+           file://0014-A-mix-of-changes-FIXME-to-choose-a-base-board-each-b.patch \
+           file://0015-Selects-CompactFlash-only-on-BB9263-v1.1-add-a-FIX-m.patch \
+           file://0016-enable-GAT.-LCD-backlight-capabilities.patch \
+           file://0017-pm9g45-change-GAT.-color-depth-and-wiring-mode.patch \
+           file://0018-RGB_BGR-fixes-of-LCD-on-bb9g45.patch \
+           file://0019-bb9g45-sound-now-works.patch \
+           file://0020-input-atmel_tsadcc-introduce-changes-needed-for-at91.patch \
+           file://0021-make-touchscreen-on-EB9G45-works.patch \
+           file://0022-bb9g45-USB-connector-J3-to-act-as-device.patch \
+           file://defconfig"
 
 SRC_URI_append_mpc8315e-rdb = " file://mpc8315erdb-add-msi-to-dts.patch"
 
-- 
1.7.0.4





More information about the Openembedded-devel mailing list