diff options
author | John Lee <john_lee@openmoko.org> | 2008-03-07 12:40:47 +0000 |
---|---|---|
committer | John Lee <john_lee@openmoko.org> | 2008-03-07 12:40:47 +0000 |
commit | b781aba534b1c5ba47a00fe9e2caaf8743536100 (patch) | |
tree | 2f6d5f780d0aeea2118ca212bb905d445313ee95 /packages | |
parent | bd4028cfd4a24a0c5875e7445bb115619830b947 (diff) | |
parent | e906546390539db91733531aa8007a59fcc3b60f (diff) |
merge of '211b2bf7086145ba83e7b54cebded9bb3025b075'
and 'cb58be96e7128aa032b10e0b9d369ca6f59af487'
Diffstat (limited to 'packages')
154 files changed, 13119 insertions, 940 deletions
diff --git a/packages/alsa/alsa-state/fic-gta02/asound.state b/packages/alsa/alsa-state/fic-gta02/asound.state index 04e6f60da9..3b46fc7223 100644 --- a/packages/alsa/alsa-state/fic-gta02/asound.state +++ b/packages/alsa/alsa-state/fic-gta02/asound.state @@ -495,6 +495,16 @@ state.neo1973gta02 { comment.access 'read write' comment.type ENUMERATED comment.count 1 + comment.item.0 'Non Inverted' + comment.item.1 Inverted + iface MIXER + name 'ROUT2 Phase' + value Inverted + } + control.53 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 comment.item.0 'Mic 1' comment.item.1 'Mic 2' comment.item.2 'Mic 3' @@ -502,7 +512,7 @@ state.neo1973gta02 { name 'Mic Selection Mux' value 'Mic 1' } - control.53 { + control.54 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -514,7 +524,7 @@ state.neo1973gta02 { name 'Rx Mixer' value 'RXP - RXN' } - control.54 { + control.55 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -526,7 +536,7 @@ state.neo1973gta02 { name 'Line Mixer' value 'Line 1 + 2' } - control.55 { + control.56 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -536,7 +546,7 @@ state.neo1973gta02 { name 'Line Mono Mux' value 'Line Mix' } - control.56 { + control.57 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -544,9 +554,9 @@ state.neo1973gta02 { comment.item.1 'Rx Mix' iface MIXER name 'Line Right Mux' - value 'Line 2' + value 'Rx Mix' } - control.57 { + control.58 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -554,9 +564,9 @@ state.neo1973gta02 { comment.item.1 'Rx Mix' iface MIXER name 'Line Left Mux' - value 'Line 1' + value 'Rx Mix' } - control.58 { + control.59 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -564,7 +574,7 @@ state.neo1973gta02 { name 'ALC Mixer Line Capture Switch' value false } - control.59 { + control.60 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -572,7 +582,7 @@ state.neo1973gta02 { name 'ALC Mixer Mic2 Capture Switch' value false } - control.60 { + control.61 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -580,7 +590,7 @@ state.neo1973gta02 { name 'ALC Mixer Mic1 Capture Switch' value false } - control.61 { + control.62 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -588,7 +598,7 @@ state.neo1973gta02 { name 'ALC Mixer Rx Capture Switch' value false } - control.62 { + control.63 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -600,7 +610,7 @@ state.neo1973gta02 { name 'Mic Sidetone Mux' value 'Left PGA' } - control.63 { + control.64 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -611,7 +621,7 @@ state.neo1973gta02 { name 'Capture Right Mux' value PGA } - control.64 { + control.65 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -622,7 +632,7 @@ state.neo1973gta02 { name 'Capture Left Mux' value PGA } - control.65 { + control.66 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -634,7 +644,7 @@ state.neo1973gta02 { name 'Capture Right Mixer' value Stereo } - control.66 { + control.67 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -646,7 +656,7 @@ state.neo1973gta02 { name 'Capture Left Mixer' value Stereo } - control.67 { + control.68 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -654,7 +664,7 @@ state.neo1973gta02 { name 'Playback Mixer Voice Capture Sw' value false } - control.68 { + control.69 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -662,7 +672,7 @@ state.neo1973gta02 { name 'Playback Mixer Left Capture Swi' value false } - control.69 { + control.70 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -670,7 +680,7 @@ state.neo1973gta02 { name 'Playback Mixer Right Capture Sw' value false } - control.70 { + control.71 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -681,7 +691,7 @@ state.neo1973gta02 { name 'Out4 Mux' value VREF } - control.71 { + control.72 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -692,7 +702,7 @@ state.neo1973gta02 { name 'Out3 Mux' value VREF } - control.72 { + control.73 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -704,7 +714,7 @@ state.neo1973gta02 { name 'Mono 2 Mux' value 'Inverted Mono 1' } - control.73 { + control.74 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -712,7 +722,7 @@ state.neo1973gta02 { name 'Mono Mixer Left Playback Switch' value false } - control.74 { + control.75 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -720,7 +730,7 @@ state.neo1973gta02 { name 'Mono Mixer Right Playback Switc' value false } - control.75 { + control.76 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -728,7 +738,7 @@ state.neo1973gta02 { name 'Mono Mixer Voice Playback Switc' value false } - control.76 { + control.77 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -736,7 +746,7 @@ state.neo1973gta02 { name 'Mono Mixer Sidetone Playback Sw' value false } - control.77 { + control.78 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -744,7 +754,7 @@ state.neo1973gta02 { name 'Mono Mixer Bypass Playback Swit' value false } - control.78 { + control.79 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -752,7 +762,7 @@ state.neo1973gta02 { name 'Right Mixer Voice Playback Swit' value false } - control.79 { + control.80 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -760,7 +770,7 @@ state.neo1973gta02 { name 'Right Mixer Sidetone Playback S' value false } - control.80 { + control.81 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -768,7 +778,7 @@ state.neo1973gta02 { name 'Right Mixer Right Playback Swit' value true } - control.81 { + control.82 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -776,7 +786,7 @@ state.neo1973gta02 { name 'Right Mixer Bypass Playback Swi' value false } - control.82 { + control.83 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -784,7 +794,7 @@ state.neo1973gta02 { name 'Left Mixer Voice Playback Switc' value false } - control.83 { + control.84 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -792,7 +802,7 @@ state.neo1973gta02 { name 'Left Mixer Sidetone Playback Sw' value false } - control.84 { + control.85 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -800,7 +810,7 @@ state.neo1973gta02 { name 'Left Mixer Left Playback Switch' value true } - control.85 { + control.86 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -808,7 +818,7 @@ state.neo1973gta02 { name 'Left Mixer Bypass Playback Swit' value false } - control.86 { + control.87 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -816,7 +826,7 @@ state.neo1973gta02 { name 'DAPM Stereo Out Switch' value true } - control.87 { + control.88 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -824,7 +834,7 @@ state.neo1973gta02 { name 'DAPM GSM Line Out Switch' value false } - control.88 { + control.89 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -832,7 +842,7 @@ state.neo1973gta02 { name 'DAPM GSM Line In Switch' value false } - control.89 { + control.90 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -840,7 +850,7 @@ state.neo1973gta02 { name 'DAPM Headset Mic Switch' value false } - control.90 { + control.91 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -848,7 +858,7 @@ state.neo1973gta02 { name 'DAPM Handset Mic Switch' value false } - control.91 { + control.92 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -856,7 +866,7 @@ state.neo1973gta02 { name 'DAPM Handset Spk Switch' value false } - control.92 { + control.93 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -864,7 +874,7 @@ state.neo1973gta02 { name 'Amp State Switch' value true } - control.93 { + control.94 { comment.access 'read write' comment.type BOOLEAN comment.count 1 diff --git a/packages/alsa/alsa-state/fic-gta02/stereoout.state b/packages/alsa/alsa-state/fic-gta02/stereoout.state index 04e6f60da9..3b46fc7223 100644 --- a/packages/alsa/alsa-state/fic-gta02/stereoout.state +++ b/packages/alsa/alsa-state/fic-gta02/stereoout.state @@ -495,6 +495,16 @@ state.neo1973gta02 { comment.access 'read write' comment.type ENUMERATED comment.count 1 + comment.item.0 'Non Inverted' + comment.item.1 Inverted + iface MIXER + name 'ROUT2 Phase' + value Inverted + } + control.53 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 comment.item.0 'Mic 1' comment.item.1 'Mic 2' comment.item.2 'Mic 3' @@ -502,7 +512,7 @@ state.neo1973gta02 { name 'Mic Selection Mux' value 'Mic 1' } - control.53 { + control.54 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -514,7 +524,7 @@ state.neo1973gta02 { name 'Rx Mixer' value 'RXP - RXN' } - control.54 { + control.55 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -526,7 +536,7 @@ state.neo1973gta02 { name 'Line Mixer' value 'Line 1 + 2' } - control.55 { + control.56 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -536,7 +546,7 @@ state.neo1973gta02 { name 'Line Mono Mux' value 'Line Mix' } - control.56 { + control.57 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -544,9 +554,9 @@ state.neo1973gta02 { comment.item.1 'Rx Mix' iface MIXER name 'Line Right Mux' - value 'Line 2' + value 'Rx Mix' } - control.57 { + control.58 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -554,9 +564,9 @@ state.neo1973gta02 { comment.item.1 'Rx Mix' iface MIXER name 'Line Left Mux' - value 'Line 1' + value 'Rx Mix' } - control.58 { + control.59 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -564,7 +574,7 @@ state.neo1973gta02 { name 'ALC Mixer Line Capture Switch' value false } - control.59 { + control.60 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -572,7 +582,7 @@ state.neo1973gta02 { name 'ALC Mixer Mic2 Capture Switch' value false } - control.60 { + control.61 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -580,7 +590,7 @@ state.neo1973gta02 { name 'ALC Mixer Mic1 Capture Switch' value false } - control.61 { + control.62 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -588,7 +598,7 @@ state.neo1973gta02 { name 'ALC Mixer Rx Capture Switch' value false } - control.62 { + control.63 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -600,7 +610,7 @@ state.neo1973gta02 { name 'Mic Sidetone Mux' value 'Left PGA' } - control.63 { + control.64 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -611,7 +621,7 @@ state.neo1973gta02 { name 'Capture Right Mux' value PGA } - control.64 { + control.65 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -622,7 +632,7 @@ state.neo1973gta02 { name 'Capture Left Mux' value PGA } - control.65 { + control.66 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -634,7 +644,7 @@ state.neo1973gta02 { name 'Capture Right Mixer' value Stereo } - control.66 { + control.67 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -646,7 +656,7 @@ state.neo1973gta02 { name 'Capture Left Mixer' value Stereo } - control.67 { + control.68 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -654,7 +664,7 @@ state.neo1973gta02 { name 'Playback Mixer Voice Capture Sw' value false } - control.68 { + control.69 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -662,7 +672,7 @@ state.neo1973gta02 { name 'Playback Mixer Left Capture Swi' value false } - control.69 { + control.70 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -670,7 +680,7 @@ state.neo1973gta02 { name 'Playback Mixer Right Capture Sw' value false } - control.70 { + control.71 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -681,7 +691,7 @@ state.neo1973gta02 { name 'Out4 Mux' value VREF } - control.71 { + control.72 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -692,7 +702,7 @@ state.neo1973gta02 { name 'Out3 Mux' value VREF } - control.72 { + control.73 { comment.access 'read write' comment.type ENUMERATED comment.count 1 @@ -704,7 +714,7 @@ state.neo1973gta02 { name 'Mono 2 Mux' value 'Inverted Mono 1' } - control.73 { + control.74 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -712,7 +722,7 @@ state.neo1973gta02 { name 'Mono Mixer Left Playback Switch' value false } - control.74 { + control.75 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -720,7 +730,7 @@ state.neo1973gta02 { name 'Mono Mixer Right Playback Switc' value false } - control.75 { + control.76 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -728,7 +738,7 @@ state.neo1973gta02 { name 'Mono Mixer Voice Playback Switc' value false } - control.76 { + control.77 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -736,7 +746,7 @@ state.neo1973gta02 { name 'Mono Mixer Sidetone Playback Sw' value false } - control.77 { + control.78 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -744,7 +754,7 @@ state.neo1973gta02 { name 'Mono Mixer Bypass Playback Swit' value false } - control.78 { + control.79 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -752,7 +762,7 @@ state.neo1973gta02 { name 'Right Mixer Voice Playback Swit' value false } - control.79 { + control.80 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -760,7 +770,7 @@ state.neo1973gta02 { name 'Right Mixer Sidetone Playback S' value false } - control.80 { + control.81 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -768,7 +778,7 @@ state.neo1973gta02 { name 'Right Mixer Right Playback Swit' value true } - control.81 { + control.82 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -776,7 +786,7 @@ state.neo1973gta02 { name 'Right Mixer Bypass Playback Swi' value false } - control.82 { + control.83 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -784,7 +794,7 @@ state.neo1973gta02 { name 'Left Mixer Voice Playback Switc' value false } - control.83 { + control.84 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -792,7 +802,7 @@ state.neo1973gta02 { name 'Left Mixer Sidetone Playback Sw' value false } - control.84 { + control.85 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -800,7 +810,7 @@ state.neo1973gta02 { name 'Left Mixer Left Playback Switch' value true } - control.85 { + control.86 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -808,7 +818,7 @@ state.neo1973gta02 { name 'Left Mixer Bypass Playback Swit' value false } - control.86 { + control.87 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -816,7 +826,7 @@ state.neo1973gta02 { name 'DAPM Stereo Out Switch' value true } - control.87 { + control.88 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -824,7 +834,7 @@ state.neo1973gta02 { name 'DAPM GSM Line Out Switch' value false } - control.88 { + control.89 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -832,7 +842,7 @@ state.neo1973gta02 { name 'DAPM GSM Line In Switch' value false } - control.89 { + control.90 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -840,7 +850,7 @@ state.neo1973gta02 { name 'DAPM Headset Mic Switch' value false } - control.90 { + control.91 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -848,7 +858,7 @@ state.neo1973gta02 { name 'DAPM Handset Mic Switch' value false } - control.91 { + control.92 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -856,7 +866,7 @@ state.neo1973gta02 { name 'DAPM Handset Spk Switch' value false } - control.92 { + control.93 { comment.access 'read write' comment.type BOOLEAN comment.count 1 @@ -864,7 +874,7 @@ state.neo1973gta02 { name 'Amp State Switch' value true } - control.93 { + control.94 { comment.access 'read write' comment.type BOOLEAN comment.count 1 diff --git a/packages/at76c503a/at76c503a-modules_0.17.bb b/packages/at76c503a/at76c503a-modules_0.17.bb index affffa39ef..58b782b483 100644 --- a/packages/at76c503a/at76c503a-modules_0.17.bb +++ b/packages/at76c503a/at76c503a-modules_0.17.bb @@ -1,7 +1,10 @@ +DESCRIPTION = "Driver for at76 based usb-wifi devices" SECTION = "base" LICENSE = "GPL" -SRCDATE = "20080116" +PR = "r1" + +RDEPENDS = "at76c503-firmware" SRC_URI = "http://download.berlios.de/at76c503a/at76_usb-0.17.tar.gz" S = "${WORKDIR}/at76_usb-${PV}/" diff --git a/packages/busybox/busybox-1.9.1/defconfig b/packages/busybox/busybox-1.9.1/defconfig index 40ec933361..770ef6eb12 100644 --- a/packages/busybox/busybox-1.9.1/defconfig +++ b/packages/busybox/busybox-1.9.1/defconfig @@ -300,7 +300,7 @@ CONFIG_WHICH=y # CONFIG_AWK=y CONFIG_FEATURE_AWK_MATH=y -# CONFIG_CMP is not set +CONFIG_CMP=y CONFIG_DIFF=y CONFIG_FEATURE_DIFF_BINARY=y CONFIG_FEATURE_DIFF_DIR=y diff --git a/packages/busybox/busybox_1.9.1.bb b/packages/busybox/busybox_1.9.1.bb index c25f453405..cec4af8d59 100644 --- a/packages/busybox/busybox_1.9.1.bb +++ b/packages/busybox/busybox_1.9.1.bb @@ -1,5 +1,5 @@ require busybox.inc -PR = "r3" +PR = "r4" SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \ http://busybox.net/downloads/fixes-1.9.1/busybox-1.9.1-lineedit.patch;patch=1 \ diff --git a/packages/curl/curl_7.16.4.bb b/packages/curl/curl_7.16.4.bb index 0053a12fdb..555e5bc643 100644 --- a/packages/curl/curl_7.16.4.bb +++ b/packages/curl/curl_7.16.4.bb @@ -2,9 +2,10 @@ DESCRIPTION = "Command line tool and library for client-side URL transfers." LICENSE = "MIT" DEPENDS = "zlib gnutls" SECTION = "console/network" -PR = "r1" +PR = "r2" -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2" +SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ + file://pkgconfig_fix.patch;patch=1" S = "${WORKDIR}/curl-${PV}" inherit autotools pkgconfig binconfig diff --git a/packages/gnutls/gnutls-1.4.4/.mtn2git_empty b/packages/curl/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gnutls/gnutls-1.4.4/.mtn2git_empty +++ b/packages/curl/files/.mtn2git_empty diff --git a/packages/curl/files/pkgconfig_fix.patch b/packages/curl/files/pkgconfig_fix.patch new file mode 100644 index 0000000000..a5730095d2 --- /dev/null +++ b/packages/curl/files/pkgconfig_fix.patch @@ -0,0 +1,14 @@ +Index: curl-7.16.4/libcurl.pc.in +=================================================================== +--- curl-7.16.4.orig/libcurl.pc.in 2007-02-18 09:41:27.000000000 +0000 ++++ curl-7.16.4/libcurl.pc.in 2008-02-29 12:19:32.000000000 +0000 +@@ -33,6 +33,7 @@ + URL: http://curl.haxx.se/ + Description: Library to transfer files with ftp, http, etc. + Version: @VERSION@ +-Libs: -L${libdir} -lcurl @LDFLAGS@ @LIBS@ +-Libs.private: @LIBCURL_LIBS@ @LIBS@ ++Requires.private: gnutls ++Libs: -L${libdir} -lcurl ++Libs.private: -ldl -lz + Cflags: -I${includedir} diff --git a/packages/djvulibre/djvulibre_3.5.20.bb b/packages/djvulibre/djvulibre_3.5.20.bb index 386eccc6cb..b8d49e0922 100644 --- a/packages/djvulibre/djvulibre_3.5.20.bb +++ b/packages/djvulibre/djvulibre_3.5.20.bb @@ -3,7 +3,7 @@ LICENSE = "GPL" DEPENDS = "jpeg libpng tiff" PR = "r1" -SRC_URI = "http://${SOURCEFORGE_MIRROR}/djvu/djvulibre-${PV}.tar.gz \ +SRC_URI = "${SOURCEFORGE_MIRROR}/djvu/djvulibre-${PV}.tar.gz \ file://fix-cross-configure.patch;patch=1" inherit qt4x11 autotools pkgconfig diff --git a/packages/pango/pango-1.13.3/.mtn2git_empty b/packages/dtnrg/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pango/pango-1.13.3/.mtn2git_empty +++ b/packages/dtnrg/files/.mtn2git_empty diff --git a/packages/dtnrg/files/configure_fix.patch b/packages/dtnrg/files/configure_fix.patch new file mode 100644 index 0000000000..95587c242c --- /dev/null +++ b/packages/dtnrg/files/configure_fix.patch @@ -0,0 +1,22 @@ +head no longer supports "-1" syntax + +Index: dtn-2.5.0/oasys/aclocal/gcc.ac +=================================================================== +--- dtn-2.5.0.orig/oasys/aclocal/gcc.ac 2008-02-27 22:38:22.000000000 +0000 ++++ dtn-2.5.0/oasys/aclocal/gcc.ac 2008-02-27 22:39:05.000000000 +0000 +@@ -83,13 +83,13 @@ + dnl Figure out the version and set version-specific options + dnl + AC_CACHE_CHECK(for the version of the GNU C compiler, oasys_cv_prog_gccver, [ +- oasys_cv_prog_gccver=`$CC --version | head -1` ++ oasys_cv_prog_gccver=`$CC --version | head -n 1` + oasys_cv_prog_gccver=`echo $oasys_cv_prog_gccver | sed 's/.*gcc.*(GCC) //'` + oasys_cv_prog_gccver=`echo $oasys_cv_prog_gccver | sed 's/ .*//'` + ]) + + AC_CACHE_CHECK(for the version of the GNU C++ compiler, oasys_cv_prog_gxxver, [ +- oasys_cv_prog_gxxver=`$CXX --version | head -1` ++ oasys_cv_prog_gxxver=`$CXX --version | head -n 1` + oasys_cv_prog_gxxver=`echo $oasys_cv_prog_gxxver | sed 's/.*g++.*(GCC) //'` + oasys_cv_prog_gxxver=`echo $oasys_cv_prog_gxxver | sed 's/ .*//'` + ]) diff --git a/packages/freesmartphone/enter_0.0.2.bb b/packages/freesmartphone/enter_0.0.2.bb new file mode 100644 index 0000000000..7f1dd09a25 --- /dev/null +++ b/packages/freesmartphone/enter_0.0.2.bb @@ -0,0 +1,10 @@ +DESCRIPTION="A easy-to-use virtual keyboard for small touchscreen displays" +SECTION = "openmoko/inputmethods" +DEPENDS = "ecore evas edje" +PR = "r0" + +inherit autotools + +SRC_URI = "http://gstaedtner.net/projects/enter/enter.tar.gz" + +FILES_${PN} += "${datadir}" diff --git a/packages/freesmartphone/pyneod_svn.bb b/packages/freesmartphone/pyneod_svn.bb index 68938ed424..1ca728afe1 100644 --- a/packages/freesmartphone/pyneod_svn.bb +++ b/packages/freesmartphone/pyneod_svn.bb @@ -4,11 +4,11 @@ SECTION = "console/network" DEPENDS = "python" LICENSE = "GPL" PV = "0.0+svnr${SRCREV}" -PR = "r2" +PR = "r3" inherit update-rc.d -INITSCRIPT_NAME = "init.d.pyneod" +INITSCRIPT_NAME = "pyneod" INITSCRIPT_PARAMS = "defaults 40" SRC_URI = "svn://projects.linuxtogo.org/svn/smartphones/trunk/software;module=pyneod" diff --git a/packages/freesmartphone/pyneog_svn.bb b/packages/freesmartphone/pyneog_svn.bb index b640426497..389c7369e5 100644 --- a/packages/freesmartphone/pyneog_svn.bb +++ b/packages/freesmartphone/pyneog_svn.bb @@ -15,12 +15,12 @@ do_compile() { do_install() { find . -name ".svn"|xargs rm -rf install -d ${D}${datadir}/pyneog - for i in media *.py Xsession.d.zadje; do + for i in media *.py; do cp -a $i ${D}${datadir}/pyneog/ done install -d ${D}${sysconfdir}/X11/Xsession.d/ - ln -sf ${datadir}/pyneog/Xsession.d.zadje ${D}${sysconfdir}/X11/Xsession.d/80zadje + install -m 0755 80pyneog ${D}${sysconfdir}/X11/Xsession.d/ } FILES_${PN} = "${datadir} ${bindir} ${sysconfdir}" diff --git a/packages/gcc/gcc-4.2.2/intermask-bigendian.patch b/packages/gcc/gcc-4.2.2/intermask-bigendian.patch new file mode 100644 index 0000000000..fdff3d3d86 --- /dev/null +++ b/packages/gcc/gcc-4.2.2/intermask-bigendian.patch @@ -0,0 +1,24 @@ +--- gcc-4.2.0/gcc/config/arm/bpabi.h ++++ gcc-4.2.0/gcc/config/arm/bpabi.h +@@ -33,9 +33,19 @@ + #undef FPUTYPE_DEFAULT + #define FPUTYPE_DEFAULT FPUTYPE_VFP + ++/* ++ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-* ++ * (big endian) configurations. ++ */ ++#if TARGET_BIG_ENDIAN_DEFAULT ++#define TARGET_ENDIAN_DEFAULT MASK_BIG_END ++#else ++#define TARGET_ENDIAN_DEFAULT 0 ++#endif ++ + /* EABI targets should enable interworking by default. */ + #undef TARGET_DEFAULT +-#define TARGET_DEFAULT MASK_INTERWORK ++#define TARGET_DEFAULT (MASK_INTERWORK | TARGET_ENDIAN_DEFAULT) + + /* The ARM BPABI functions return a boolean; they use no special + calling convention. */ + diff --git a/packages/gcc/gcc-cross_4.2.2.bb b/packages/gcc/gcc-cross_4.2.2.bb index c461245ec5..def16597e0 100644 --- a/packages/gcc/gcc-cross_4.2.2.bb +++ b/packages/gcc/gcc-cross_4.2.2.bb @@ -5,7 +5,7 @@ inherit cross FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" # NOTE: split PR. If the main .oe changes something that affects its *build* # remember to increment this one too. -PR = "r5" +PR = "r6" DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native" PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" diff --git a/packages/gcc/gcc3-build-cross.inc b/packages/gcc/gcc3-build-cross.inc index 1d744c1eae..33429e18ef 100644 --- a/packages/gcc/gcc3-build-cross.inc +++ b/packages/gcc/gcc3-build-cross.inc @@ -23,11 +23,6 @@ do_stage_append () { rm -rf ${CROSS_DIR}/$d done - # Hack to be removed when staging layout matches the target layout - if [ ! -e ${STAGING_DIR_TARGET}/usr ]; then - ln -s ${STAGING_DIR_TARGET} ${STAGING_DIR_TARGET}/usr - fi - # Fix a few include links so cross builds are happier if [ ! -e ${STAGING_INCDIR}/c++ ]; then mkdir -p ${STAGING_INCDIR} diff --git a/packages/gcc/gcc3-build-sdk.inc b/packages/gcc/gcc3-build-sdk.inc index aa540212c4..5bc187b745 100644 --- a/packages/gcc/gcc3-build-sdk.inc +++ b/packages/gcc/gcc3-build-sdk.inc @@ -5,6 +5,8 @@ SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1' STAGING_TARGET_INCDIR = "${STAGING_DIR_TARGET}${layout_includedir}" STAGING_TARGET_LIBDIR = "${STAGING_DIR_TARGET}${layout_libdir}" +EXTRA_OECONF += "--with-sysroot=${prefix}/${TARGET_SYS} --with-build-sysroot=${STAGING_DIR_TARGET}" + do_configure () { (cd ${S} && gnu-configize) || die "failure running gnu-configize" (cd ${S}/libstdc++-v3 && autoreconf) diff --git a/packages/gcc/gcc4-build-sdk.inc b/packages/gcc/gcc4-build-sdk.inc index 10526454c3..d6af5fe933 100644 --- a/packages/gcc/gcc4-build-sdk.inc +++ b/packages/gcc/gcc4-build-sdk.inc @@ -4,10 +4,6 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d EXTRA_OECONF += "--with-sysroot=${prefix}/${TARGET_SYS} --with-build-sysroot=${STAGING_DIR_TARGET}" do_configure () { - # Hack to be removed when staging layout matches the target layout - if [ ! -e ${STAGING_DIR_TARGET}/usr ]; then - ln -s ${STAGING_DIR_TARGET} ${STAGING_DIR_TARGET}/usr - fi (cd ${S} && gnu-configize) || die "failure running gnu-configize" (cd ${S}/libstdc++-v3 && autoreconf) oe_runconf diff --git a/packages/gcc/gcc_4.2.2.bb b/packages/gcc/gcc_4.2.2.bb index 1cfd085b27..0a0e9cdd16 100644 --- a/packages/gcc/gcc_4.2.2.bb +++ b/packages/gcc/gcc_4.2.2.bb @@ -2,7 +2,7 @@ DESCRIPTION = "The GNU cc and gcc C compilers." HOMEPAGE = "http://www.gnu.org/software/gcc/" SECTION = "devel" LICENSE = "GPL" -PR = "r5" +PR = "r6" inherit autotools gettext @@ -43,6 +43,7 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ file://gcc-4.0.2-e300c2c3.patch;patch=1 \ file://pr34130.patch;patch=1 \ file://fortran-static-linking.patch;patch=1 \ + file://intermask-bigendian.patch;patch=1 \ " SRC_URI_append_ep93xx = " \ diff --git a/packages/pango/pango-1.16.0/.mtn2git_empty b/packages/gdb/gdb-6.6/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pango/pango-1.16.0/.mtn2git_empty +++ b/packages/gdb/gdb-6.6/.mtn2git_empty diff --git a/packages/gdb/gdb-6.6/early_debug_in_nptl.patch b/packages/gdb/gdb-6.6/early_debug_in_nptl.patch new file mode 100644 index 0000000000..c53f0d8ad5 --- /dev/null +++ b/packages/gdb/gdb-6.6/early_debug_in_nptl.patch @@ -0,0 +1,306 @@ +http://sourceware.org/ml/gdb-patches/2007-06/msg00479.html + +Index: gdb/linux-thread-db.c +=================================================================== +--- gdb/linux-thread-db.c.orig 2006-10-20 03:08:14.000000000 +0200 ++++ gdb/linux-thread-db.c 2008-03-01 14:45:52.000000000 +0100 +@@ -213,6 +213,21 @@ + } + } + ++/* Return 1 if any threads have been registered. There may be none if ++ the threading library is not fully initialized yet. */ ++ ++static int ++have_threads_callback (struct thread_info *thread, void *dummy) ++{ ++ return 1; ++} ++ ++static int ++have_threads (void) ++{ ++ return iterate_over_threads (have_threads_callback, NULL) != NULL; ++} ++ + /* A callback function for td_ta_thr_iter, which we use to map all + threads to LWPs. + +@@ -700,23 +715,6 @@ + } + + static void +-thread_db_attach (char *args, int from_tty) +-{ +- target_beneath->to_attach (args, from_tty); +- +- /* Destroy thread info; it's no longer valid. */ +- init_thread_list (); +- +- /* The child process is now the actual multi-threaded +- program. Snatch its process ID... */ +- proc_handle.pid = GET_PID (inferior_ptid); +- +- /* ...and perform the remaining initialization steps. */ +- enable_thread_event_reporting (); +- thread_db_find_new_threads (); +-} +- +-static void + detach_thread (ptid_t ptid, int verbose) + { + struct thread_info *thread_info; +@@ -742,14 +740,13 @@ + disable_thread_event_reporting (); + + /* There's no need to save & restore inferior_ptid here, since the +- inferior is supposed to be survive this function call. */ ++ inferior is not supposed to survive this function call. */ + inferior_ptid = lwp_from_thread (inferior_ptid); + +- /* Forget about the child's process ID. We shouldn't need it +- anymore. */ +- proc_handle.pid = 0; +- + target_beneath->to_detach (args, from_tty); ++ ++ /* Should this be done by detach_command? */ ++ target_mourn_inferior (); + } + + static int +@@ -870,12 +867,6 @@ + + ptid = target_beneath->to_wait (ptid, ourstatus); + +- if (proc_handle.pid == 0) +- /* The current child process isn't the actual multi-threaded +- program yet, so don't try to do any special thread-specific +- post-processing and bail out early. */ +- return ptid; +- + if (ourstatus->kind == TARGET_WAITKIND_EXITED + || ourstatus->kind == TARGET_WAITKIND_SIGNALLED) + return pid_to_ptid (-1); +@@ -889,23 +880,32 @@ + return pid_to_ptid (GET_PID (ptid)); + } + ++ /* If we do not know about the main thread yet, this would be a good time to ++ find it. */ ++ if (ourstatus->kind == TARGET_WAITKIND_STOPPED && !have_threads ()) ++ thread_db_find_new_threads (); ++ + if (ourstatus->kind == TARGET_WAITKIND_STOPPED + && ourstatus->value.sig == TARGET_SIGNAL_TRAP) + /* Check for a thread event. */ + check_event (ptid); + +- if (!ptid_equal (trap_ptid, null_ptid)) +- trap_ptid = thread_from_lwp (trap_ptid); ++ if (have_threads ()) ++ { ++ /* Change ptids back into the higher level PID + TID format. If ++ the thread is dead and no longer on the thread list, we will ++ get back a dead ptid. This can occur if the thread death ++ event gets postponed by other simultaneous events. In such a ++ case, we want to just ignore the event and continue on. */ ++ ++ if (!ptid_equal (trap_ptid, null_ptid)) ++ trap_ptid = thread_from_lwp (trap_ptid); ++ ++ ptid = thread_from_lwp (ptid); ++ if (GET_PID (ptid) == -1) ++ ourstatus->kind = TARGET_WAITKIND_SPURIOUS; ++ } + +- /* Change the ptid back into the higher level PID + TID format. +- If the thread is dead and no longer on the thread list, we will +- get back a dead ptid. This can occur if the thread death event +- gets postponed by other simultaneous events. In such a case, +- we want to just ignore the event and continue on. */ +- ptid = thread_from_lwp (ptid); +- if (GET_PID (ptid) == -1) +- ourstatus->kind = TARGET_WAITKIND_SPURIOUS; +- + return ptid; + } + +@@ -944,30 +944,6 @@ + } + + static void +-thread_db_create_inferior (char *exec_file, char *allargs, char **env, +- int from_tty) +-{ +- unpush_target (&thread_db_ops); +- using_thread_db = 0; +- target_beneath->to_create_inferior (exec_file, allargs, env, from_tty); +-} +- +-static void +-thread_db_post_startup_inferior (ptid_t ptid) +-{ +- if (proc_handle.pid == 0) +- { +- /* The child process is now the actual multi-threaded +- program. Snatch its process ID... */ +- proc_handle.pid = GET_PID (ptid); +- +- /* ...and perform the remaining initialization steps. */ +- enable_thread_event_reporting (); +- thread_db_find_new_threads (); +- } +-} +- +-static void + thread_db_mourn_inferior (void) + { + /* Forget about the child's process ID. We shouldn't need it +@@ -1002,6 +978,22 @@ + + ptid = ptid_build (GET_PID (inferior_ptid), ti.ti_lid, ti.ti_tid); + ++ if (ti.ti_tid == 0) ++ { ++ /* A thread ID of zero means that this is the main thread, but ++ glibc has not yet initialized thread-local storage and the ++ pthread library. We do not know what the thread's TID will ++ be yet. Just enable event reporting and otherwise ignore ++ it. */ ++ ++ err = td_thr_event_enable_p (th_p, 1); ++ if (err != TD_OK) ++ error (_("Cannot enable thread event reporting for %s: %s"), ++ target_pid_to_str (ptid), thread_db_err_str (err)); ++ ++ return 0; ++ } ++ + if (!in_thread_list (ptid)) + attach_thread (ptid, th_p, &ti, 1); + +@@ -1058,6 +1050,16 @@ + return NULL; + } + ++/* Return 1 if this thread has the same LWP as the passed PTID. */ ++ ++static int ++same_ptid_callback (struct thread_info *thread, void *arg) ++{ ++ ptid_t *ptid_p = arg; ++ ++ return GET_LWP (thread->ptid) == GET_LWP (*ptid_p); ++} ++ + /* Get the address of the thread local variable in load module LM which + is stored at OFFSET within the thread local storage for thread PTID. */ + +@@ -1066,6 +1068,21 @@ + CORE_ADDR lm, + CORE_ADDR offset) + { ++ /* If we have not discovered any threads yet, check now. */ ++ if (!is_thread (ptid) && !have_threads ()) ++ thread_db_find_new_threads (); ++ ++ /* Try to find a matching thread if we still have the LWP ID instead ++ of the thread ID. */ ++ if (!is_thread (ptid)) ++ { ++ struct thread_info *thread; ++ ++ thread = iterate_over_threads (same_ptid_callback, &ptid); ++ if (thread != NULL) ++ ptid = thread->ptid; ++ } ++ + if (is_thread (ptid)) + { + td_err_e err; +@@ -1125,14 +1142,11 @@ + thread_db_ops.to_shortname = "multi-thread"; + thread_db_ops.to_longname = "multi-threaded child process."; + thread_db_ops.to_doc = "Threads and pthreads support."; +- thread_db_ops.to_attach = thread_db_attach; + thread_db_ops.to_detach = thread_db_detach; + thread_db_ops.to_resume = thread_db_resume; + thread_db_ops.to_wait = thread_db_wait; + thread_db_ops.to_xfer_partial = thread_db_xfer_partial; + thread_db_ops.to_kill = thread_db_kill; +- thread_db_ops.to_create_inferior = thread_db_create_inferior; +- thread_db_ops.to_post_startup_inferior = thread_db_post_startup_inferior; + thread_db_ops.to_mourn_inferior = thread_db_mourn_inferior; + thread_db_ops.to_find_new_threads = thread_db_find_new_threads; + thread_db_ops.to_pid_to_str = thread_db_pid_to_str; +Index: gdb/gdbserver/thread-db.c +=================================================================== +--- gdb/gdbserver/thread-db.c.orig 2006-10-17 18:02:27.000000000 +0200 ++++ gdb/gdbserver/thread-db.c 2008-03-01 14:44:41.000000000 +0100 +@@ -40,6 +40,7 @@ + /* Connection to the libthread_db library. */ + static td_thragent_t *thread_agent; + ++static void thread_db_find_new_threads (void); + static int find_new_threads_callback (const td_thrhandle_t *th_p, void *data); + + static char * +@@ -134,6 +135,8 @@ + td_event_msg_t msg; + td_err_e err; + struct inferior_linux_data *tdata; ++ struct thread_info *inferior; ++ struct process_info *process; + + if (debug_threads) + fprintf (stderr, "Thread creation event.\n"); +@@ -149,6 +152,14 @@ + fprintf (stderr, "thread getmsg err: %s\n", + thread_db_err_str (err)); + ++ /* If we do not know about the main thread yet, this would be a good time to ++ find it. We need to do this to pick up the main thread before any newly ++ created threads. */ ++ inferior = (struct thread_info *) all_threads.head; ++ process = get_thread_process (inferior); ++ if (process->thread_known == 0) ++ thread_db_find_new_threads (); ++ + /* msg.event == TD_EVENT_CREATE */ + + find_new_threads_callback (msg.th_p, NULL); +@@ -231,8 +242,24 @@ + { + inferior = (struct thread_info *) all_threads.head; + process = get_thread_process (inferior); ++ + if (process->thread_known == 0) + { ++ /* If the new thread ID is zero, a final thread ID will be ++ available later. Do not enable thread debugging yet. */ ++ if (ti_p->ti_tid == 0) ++ { ++ err = td_thr_event_enable (th_p, 1); ++ if (err != TD_OK) ++ error ("Cannot enable thread event reporting for %d: %s", ++ ti_p->ti_lid, thread_db_err_str (err)); ++ return; ++ } ++ ++ if (process->lwpid != ti_p->ti_lid) ++ fatal ("PID mismatch! Expected %ld, got %ld", ++ (long) process->lwpid, (long) ti_p->ti_lid); ++ + /* Switch to indexing the threads list by TID. */ + change_inferior_id (&all_threads, ti_p->ti_tid); + goto found; +@@ -331,6 +358,8 @@ + + process = get_thread_process (thread); + if (!process->thread_known) ++ thread_db_find_new_threads (); ++ if (!process->thread_known) + return TD_NOTHR; + + err = td_thr_tls_get_addr (&process->th, (psaddr_t) load_module, offset, diff --git a/packages/gdb/gdb-cross_6.6.bb b/packages/gdb/gdb-cross_6.6.bb index c6992e4b6a..0fbd11015c 100644 --- a/packages/gdb/gdb-cross_6.6.bb +++ b/packages/gdb/gdb-cross_6.6.bb @@ -1,7 +1,8 @@ require gdb-cross.inc SRC_URI += "file://sim-install-6.6.patch;patch=1" +SRC_URI += "file://early_debug_in_nptl.patch;patch=1;pnum=0" inherit cross -PR = "r1"
\ No newline at end of file +PR = "r2" diff --git a/packages/gdb/gdb_6.6.bb b/packages/gdb/gdb_6.6.bb index a558775ff4..c507a48aa8 100644 --- a/packages/gdb/gdb_6.6.bb +++ b/packages/gdb/gdb_6.6.bb @@ -1,3 +1,5 @@ require gdb.inc -PR = "r3" +PR = "r4" + +SRC_URI += "file://early_debug_in_nptl.patch;patch=1;pnum=0" diff --git a/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch b/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch index bab3747b1a..e137287dd1 100644 --- a/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch +++ b/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch @@ -1,44 +1,41 @@ ---- glibc-2.5.orig/debian/patches/any/local-dynamic-resolvconf.diff -+++ glibc-2.5/debian/patches/any/local-dynamic-resolvconf.diff -@@ -0,0 +1,41 @@ -+# All lines beginning with `# DP:' are a description of the patch. -+# DP: Description: allow dynamic long-running processes to -+# DP: re-read a dynamically updated resolv.conf on the fly -+# DP: Dpatch author: Adam Conrad <adconrad@ubuntu.com> -+# DP: Patch author: Thorsten Kukuk <kukuk@suse.de> -+# DP: Upstream status: Ubuntu-Specific -+# DP: Date: 2006-01-13 08:14:21 UTC +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: allow dynamic long-running processes to +# DP: re-read a dynamically updated resolv.conf on the fly +# DP: Dpatch author: Adam Conrad <adconrad@ubuntu.com> +# DP: Patch author: Thorsten Kukuk <kukuk@suse.de> +# DP: Upstream status: Ubuntu-Specific +# DP: Date: 2006-01-13 08:14:21 UTC + +Index: resolv/res_libc.c +=================================================================== +--- resolv/res_libc.c.orig ++++ resolv/res_libc.c +@@ -22,7 +22,7 @@ + #include <arpa/nameser.h> + #include <resolv.h> + #include <bits/libc-lock.h> +- ++#include <sys/stat.h> + + /* The following bit is copied from res_data.c (where it is #ifdef'ed + out) since res_init() should go into libc.so but the rest of that +@@ -94,8 +94,17 @@ + int + __res_maybe_init (res_state resp, int preinit) + { +- if (resp->options & RES_INIT) { +- if (__res_initstamp != resp->_u._ext.initstamp) { ++ static time_t last_mtime; ++ struct stat statbuf; ++ int ret; + -+Index: resolv/res_libc.c -+=================================================================== -+--- resolv/res_libc.c.orig -++++ resolv/res_libc.c -+@@ -22,7 +22,7 @@ -+ #include <arpa/nameser.h> -+ #include <resolv.h> -+ #include <bits/libc-lock.h> -+- -++#include <sys/stat.h> -+ -+ /* The following bit is copied from res_data.c (where it is #ifdef'ed -+ out) since res_init() should go into libc.so but the rest of that -+@@ -94,8 +94,17 @@ -+ int -+ __res_maybe_init (res_state resp, int preinit) -+ { -+- if (resp->options & RES_INIT) { -+- if (__res_initstamp != resp->_u._ext.initstamp) { -++ static time_t last_mtime; -++ struct stat statbuf; -++ int ret; -++ -++ -++ if (resp->options & RES_INIT) { -++ ret = stat (_PATH_RESCONF, &statbuf); -++ if (__res_initstamp != resp->_u._ext.initstamp -++ || (ret == 0) && (last_mtime != statbuf.st_mtime)) -++ { -++ last_mtime = statbuf.st_mtime; -+ if (resp->nscount > 0) { -+ __res_iclose (resp, true); -+ return __res_vinit (resp, 1); ++ ++ if (resp->options & RES_INIT) { ++ ret = stat (_PATH_RESCONF, &statbuf); ++ if (__res_initstamp != resp->_u._ext.initstamp ++ || (ret == 0) && (last_mtime != statbuf.st_mtime)) ++ { ++ last_mtime = statbuf.st_mtime; + if (resp->nscount > 0) { + __res_iclose (resp, true); + return __res_vinit (resp, 1); diff --git a/packages/glibc/glibc-package.bbclass b/packages/glibc/glibc-package.bbclass index 50fae44bf3..bd1cb4f4e4 100644 --- a/packages/glibc/glibc-package.bbclass +++ b/packages/glibc/glibc-package.bbclass @@ -271,7 +271,12 @@ python package_do_split_gconvs () { i18npath = base_path_join(treedir, datadir, "i18n") localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, name) - cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, treedir, localedef_opts) + + qemu_options = bb.data.getVar("QEMU_OPTIONS_%s" % bb.data.getVar('PACKAGE_ARCH', d, 1), d, 1) + if not qemu_options: + qemu_options = bb.data.getVar('QEMU_OPTIONS', d, 1) + + cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s %s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, qemu_options, treedir, localedef_opts) bb.note("generating locale %s (%s)" % (locale, encoding)) if os.system(cmd): raise bb.build.FuncFailed("localedef returned an error (command was %s)." % cmd) diff --git a/packages/glibc/glibc_2.5.bb b/packages/glibc/glibc_2.5.bb index f50c85b1d0..0dc1c41070 100644 --- a/packages/glibc/glibc_2.5.bb +++ b/packages/glibc/glibc_2.5.bb @@ -1,5 +1,5 @@ require glibc.inc -PR = "r9" +PR = "r10" ARM_INSTRUCTION_SET = "arm" @@ -44,7 +44,7 @@ SRC_URI = "\ file://dl-cache-libcmp.patch;patch=1 \ file://ldsocache-varrun.patch;patch=1 \ file://nptl-crosscompile.patch;patch=1 \ - file://glibc-2.5-local-dynamic-resolvconf.patch;patch=1 \ + file://glibc-2.5-local-dynamic-resolvconf.patch;patch=1;pnum=0 \ file://glibc-check_pf.patch;patch=1;pnum=0 \ file://zecke-sane-readelf.patch;patch=1 \ file://ldd-unbash.patch;patch=1 \ diff --git a/packages/glibc/glibc_2.6.1.bb b/packages/glibc/glibc_2.6.1.bb index 705fab6715..4c59bbdc13 100644 --- a/packages/glibc/glibc_2.6.1.bb +++ b/packages/glibc/glibc_2.6.1.bb @@ -1,5 +1,5 @@ require glibc.inc -PR = "r2" +PR = "r3" ARM_INSTRUCTION_SET = "arm" @@ -45,7 +45,7 @@ SRC_URI = "\ file://dl-cache-libcmp.patch;patch=1 \ file://ldsocache-varrun.patch;patch=1 \ file://nptl-crosscompile.patch;patch=1 \ - file://glibc-2.5-local-dynamic-resolvconf.patch;patch=1 \ + file://glibc-2.5-local-dynamic-resolvconf.patch;patch=1;pnum=0 \ file://glibc-check_pf.patch;patch=1;pnum=0 \ file://zecke-sane-readelf.patch;patch=1 \ file://ldd-unbash.patch;patch=1 \ diff --git a/packages/gnutls/gnutls-1.4.4/gnutls-openssl.patch b/packages/gnutls/gnutls-1.4.4/gnutls-openssl.patch deleted file mode 100644 index 6eca97efd7..0000000000 --- a/packages/gnutls/gnutls-1.4.4/gnutls-openssl.patch +++ /dev/null @@ -1,120 +0,0 @@ ---- gnutls-1.3.5/libextra/gnutls_openssl.c.orig 2006-04-28 20:01:40.000000000 +0100 -+++ gnutls-1.3.5/libextra/gnutls_openssl.c 2006-04-28 20:10:33.000000000 +0100 -@@ -252,12 +252,17 @@ - ssl->rfd = (gnutls_transport_ptr_t) - 1; - ssl->wfd = (gnutls_transport_ptr_t) - 1; - -+ ssl->ssl_peek_buffer = NULL; -+ ssl->ssl_peek_buffer_size = ssl->ssl_peek_avail = 0; -+ - return ssl; - } - - void - SSL_free (SSL * ssl) - { -+ if (ssl->ssl_peek_buffer) -+ free(ssl->ssl_peek_buffer); - gnutls_certificate_free_credentials (ssl->gnutls_cred); - gnutls_deinit (ssl->gnutls_state); - free (ssl); -@@ -281,6 +286,7 @@ - SSL_set_fd (SSL * ssl, int fd) - { - gnutls_transport_set_ptr (ssl->gnutls_state, (gnutls_transport_ptr_t) fd); -+ ssl->rfd = ssl->wfd = fd; - return 1; - } - -@@ -306,6 +312,17 @@ - return 1; - } - -+int SSL_get_rfd(SSL *ssl) -+{ -+ return ssl->rfd; -+} -+ -+int SSL_get_wfd(SSL *ssl) -+{ -+ return ssl->wfd; -+} -+ -+ - void - SSL_set_bio (SSL * ssl, BIO * rbio, BIO * wbio) - { -@@ -321,6 +338,8 @@ - int - SSL_pending (SSL * ssl) - { -+ if (ssl->ssl_peek_avail) -+ return ssl->ssl_peek_avail; - return gnutls_record_check_pending (ssl->gnutls_state); - } - -@@ -476,11 +495,50 @@ - return 1; - } - -+int SSL_peek(SSL *ssl, void *buf, int len) -+{ -+ if (len > ssl->ssl_peek_buffer_size) { -+ ssl->ssl_peek_buffer = realloc (ssl->ssl_peek_buffer, len); -+ ssl->ssl_peek_buffer_size = len; -+ } -+ -+ if (ssl->ssl_peek_avail == 0) { -+ -+ int ret; -+ -+ ret = gnutls_record_recv(ssl->gnutls_state, ssl->ssl_peek_buffer, len); -+ ssl->last_error = ret; -+ -+ if (ret > 0) -+ ssl->ssl_peek_avail += ret; -+ } -+ -+ if (len > ssl->ssl_peek_avail) -+ len = ssl->ssl_peek_avail; -+ -+ memcpy (buf, ssl->ssl_peek_buffer, len); -+ -+ return len; -+} -+ - int - SSL_read (SSL * ssl, void *buf, int len) - { - int ret; - -+ if (ssl->ssl_peek_avail) { -+ int n = (ssl->ssl_peek_avail > len) ? len : ssl->ssl_peek_avail; -+ -+ memcpy (buf, ssl->ssl_peek_buffer, n); -+ -+ if (ssl->ssl_peek_avail > n) -+ memmove (ssl->ssl_peek_buffer, ssl->ssl_peek_buffer + n, ssl->ssl_peek_avail - n); -+ -+ ssl->ssl_peek_avail -= n; -+ -+ return n; -+ } -+ - ret = gnutls_record_recv (ssl->gnutls_state, buf, len); - ssl->last_error = ret; - ---- gnutls-1.3.5/includes/gnutls/openssl.h.orig 2006-04-28 20:10:55.000000000 +0100 -+++ gnutls-1.3.5/includes/gnutls/openssl.h 2006-04-28 20:11:52.000000000 +0100 -@@ -164,6 +164,11 @@ - - gnutls_transport_ptr_t rfd; - gnutls_transport_ptr_t wfd; -+ -+ char *ssl_peek_buffer; -+ size_t ssl_peek_buffer_size; -+ size_t ssl_peek_avail; -+ - }; - - #define rbio gnutls_state diff --git a/packages/gnutls/gnutls-1.6.3/configure_madness.patch b/packages/gnutls/gnutls-1.6.3/configure_madness.patch index 26111dfe96..bdee81cc54 100644 --- a/packages/gnutls/gnutls-1.6.3/configure_madness.patch +++ b/packages/gnutls/gnutls-1.6.3/configure_madness.patch @@ -1,7 +1,7 @@ Index: gnutls-1.6.3/configure.in =================================================================== ---- gnutls-1.6.3.orig/configure.in 2007-05-25 12:28:59.000000000 +0000 -+++ gnutls-1.6.3/configure.in 2007-11-13 17:53:23.000000000 +0000 +--- gnutls-1.6.3.orig/configure.in 2008-02-29 09:58:12.000000000 +0000 ++++ gnutls-1.6.3/configure.in 2008-02-29 09:58:15.000000000 +0000 @@ -574,13 +574,13 @@ AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -20,3 +20,30 @@ Index: gnutls-1.6.3/configure.in AC_SUBST(LIBGNUTLS_EXTRA_LIBS) AC_SUBST(LIBGNUTLS_EXTRA_CFLAGS) export ac_full +Index: gnutls-1.6.3/lib/gnutls.pc.in +=================================================================== +--- gnutls-1.6.3.orig/lib/gnutls.pc.in 2008-02-29 09:58:23.000000000 +0000 ++++ gnutls-1.6.3/lib/gnutls.pc.in 2008-02-29 09:58:49.000000000 +0000 +@@ -18,6 +18,7 @@ + Name: GnuTLS + Description: Transport Security Layer implementation for the GNU system + Version: @VERSION@ ++Requires.private: gcrypt + Libs: -L${libdir} -lgnutls +-Libs.private: @LIBGNUTLS_LIBS@ ++Libs.private: -L${libdir} -lgnutls + Cflags: -I${includedir} +Index: gnutls-1.6.3/libextra/gnutls-extra.pc.in +=================================================================== +--- gnutls-1.6.3.orig/libextra/gnutls-extra.pc.in 2008-02-29 09:59:02.000000000 +0000 ++++ gnutls-1.6.3/libextra/gnutls-extra.pc.in 2008-02-29 09:59:31.000000000 +0000 +@@ -18,7 +18,8 @@ + Name: GnuTLS-extra + Description: Additional add-ons for GnuTLS licensed under GPL + Requires: gnutls ++Requires.private: gnutls + Version: @VERSION@ + Libs: -L${libdir} -lgnutls-extra +-Libs.private: @LIBGNUTLS_EXTRA_LIBS@ ++Libs.private: -L${libdir} -lgnutls-extra + Cflags: -I${includedir} diff --git a/packages/gnutls/gnutls.inc b/packages/gnutls/gnutls.inc index d08b0ca931..781267093c 100644 --- a/packages/gnutls/gnutls.inc +++ b/packages/gnutls/gnutls.inc @@ -1,7 +1,6 @@ DESCRIPTION = "GNU Transport Layer Security Library" HOMEPAGE = "http://www.gnu.org/software/gnutls/" DEPENDS = "zlib libgcrypt lzo" - LICENSE = "LGPL" SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2" @@ -10,6 +9,11 @@ inherit autotools binconfig pkgconfig EXTRA_OECONF="--with-included-opencdk --with-included-libtasn1" +# fix wrong dependency +do_configure_append() { + sed -i s,gcrypt,libgcrypt, lib/gnutls.pc.in +} + do_stage() { oe_libinstall -C lib/.libs -so -a libgnutls ${STAGING_LIBDIR} oe_libinstall -C libextra/.libs -so -a libgnutls-extra ${STAGING_LIBDIR} diff --git a/packages/gnutls/gnutls_1.4.5.bb b/packages/gnutls/gnutls_1.4.5.bb index 3337e0b370..4c247717ae 100644 --- a/packages/gnutls/gnutls_1.4.5.bb +++ b/packages/gnutls/gnutls_1.4.5.bb @@ -1,3 +1,3 @@ require gnutls.inc -PR = "r1" +PR = "r2" diff --git a/packages/gnutls/gnutls_1.6.3.bb b/packages/gnutls/gnutls_1.6.3.bb index ddaef1dea3..cc35d8b7a3 100644 --- a/packages/gnutls/gnutls_1.6.3.bb +++ b/packages/gnutls/gnutls_1.6.3.bb @@ -6,4 +6,4 @@ SRC_URI += "\ file://configure_madness.patch;patch=1 \ " -PR = "r3" +PR = "r5" diff --git a/packages/gsm/files/gsmd b/packages/gsm/files/gsmd index fadae76aee..31dbd34caf 100644 --- a/packages/gsm/files/gsmd +++ b/packages/gsm/files/gsmd @@ -20,7 +20,7 @@ case "$1" in [ -n "$GSM_RES" ] && ( echo "0" >$GSM_RES; sleep 2 ) echo -n "Starting GSM daemon: " - start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS >/tmp/gsm.log 2>&1 & + start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS -d -l syslog if [ $? = 0 ]; then echo "gsmd." diff --git a/packages/gtk-webcore/files/path_fixes.patch b/packages/gtk-webcore/files/path_fixes.patch new file mode 100644 index 0000000000..adb27bdd85 --- /dev/null +++ b/packages/gtk-webcore/files/path_fixes.patch @@ -0,0 +1,15 @@ +Index: NRCore/configure.in +=================================================================== +--- NRCore.orig/configure.in 2008-02-29 11:01:14.000000000 +0000 ++++ NRCore/configure.in 2008-02-29 12:45:18.000000000 +0000 +@@ -67,8 +67,8 @@ + AC_MSG_RESULT([found. Using prefix $jscore_prefix]) + JSCORE_ENABLE=yes + AC_SUBST(JSCORE_ENABLE) +- JSCORE_LIBS="-L$jscore_prefix/lib -ljscore" +- JSCORE_CFLAGS="-I$jscore_prefix/include/gtk-webcore-jscore/" ++ JSCORE_LIBS="-L$jscore_prefix/lib -lgtk_webcore_jscore" ++ JSCORE_CFLAGS="-I$jscore_prefix/include/gtk-webcore/" + jscore_pkgdatadir="$jscore_prefix/share/gtk-webcore-jscore" + else + AC_MSG_ERROR([JavaScriptCore not found. Use --with-javascriptcore-prefix=PREFIX]) diff --git a/packages/pango/pango-1.16.2/.mtn2git_empty b/packages/gtk-webcore/osb-nrcit/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pango/pango-1.16.2/.mtn2git_empty +++ b/packages/gtk-webcore/osb-nrcit/.mtn2git_empty diff --git a/packages/gtk-webcore/osb-nrcit/pkgconfig_fix.patch b/packages/gtk-webcore/osb-nrcit/pkgconfig_fix.patch new file mode 100644 index 0000000000..d26009bbb7 --- /dev/null +++ b/packages/gtk-webcore/osb-nrcit/pkgconfig_fix.patch @@ -0,0 +1,13 @@ +Index: NRCit/gtk-webcore-nrcit.pc.in +=================================================================== +--- NRCit.orig/gtk-webcore-nrcit.pc.in 2008-02-29 13:46:41.000000000 +0000 ++++ NRCit/gtk-webcore-nrcit.pc.in 2008-02-29 13:46:51.000000000 +0000 +@@ -6,6 +6,6 @@ + Name: gtk-webcore-nrcit + Description: Gtk+-WebCore HTML rendering engine, browser interface + Version: @VERSION@ +-Requires: gtk-webcore-jscore gtk-webcore-nrcore xft fontconfig gdk-2.0 gtk+-2.0 glib-2.0 +-Libs: -L${libdir} -lgtk_webcore_nrcore -lgtk_webcore_nrcit -lgthread-2.0 -lgobject-2.0 @LIBCURL_LIBS@ ++Requires: gtk-webcore-jscore gtk-webcore-nrcore xft fontconfig gdk-2.0 gtk+-2.0 glib-2.0 libcurl ++Libs: -L${libdir} -lgtk_webcore_nrcore -lgtk_webcore_nrcit -lgthread-2.0 -lgobject-2.0 + Cflags: -I${includedir}/gtk-webcore/webi -I${includedir}/gtk-webcore diff --git a/packages/gtk-webcore/osb-nrcit_svn.bb b/packages/gtk-webcore/osb-nrcit_svn.bb index 7ea8b3b6fa..57bb096183 100644 --- a/packages/gtk-webcore/osb-nrcit_svn.bb +++ b/packages/gtk-webcore/osb-nrcit_svn.bb @@ -5,11 +5,12 @@ PRIORITY = "optional" SECTION = "gpe" PV = "0.5.2+svnr${SRCREV}" -PR = "r0" +PR = "r1" DEPENDS = "curl librsvg osb-nrcore pango" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCit;proto=https \ + file://pkgconfig_fix.patch;patch=1 \ file://gcc4-fno-threadsafe-statics-NRCit.patch;patch=1" inherit autotools pkgconfig diff --git a/packages/gtk-webcore/osb-nrcore.inc b/packages/gtk-webcore/osb-nrcore.inc index 6fd1d22580..eca304959f 100644 --- a/packages/gtk-webcore/osb-nrcore.inc +++ b/packages/gtk-webcore/osb-nrcore.inc @@ -12,6 +12,8 @@ inherit autotools pkgconfig #/khtml/css/cssproperties.h failes to generate properly with high parallel makes PARALLEL_MAKE = "" +EXTRA_OECONF += "--with-javascriptcore-prefix=${STAGING_EXECPREFIXDIR}" + do_configure () { autotools_do_configure cd ${S} diff --git a/packages/gtk-webcore/osb-nrcore_svn.bb b/packages/gtk-webcore/osb-nrcore_svn.bb index 8e0b4b04b6..b85c06e422 100644 --- a/packages/gtk-webcore/osb-nrcore_svn.bb +++ b/packages/gtk-webcore/osb-nrcore_svn.bb @@ -1,11 +1,12 @@ require osb-nrcore.inc PV = "0.5.2+svnr${SRCREV}" -PR = "r1" +PR = "r3" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCore;proto=https \ file://gcc4-fno-threadsafe-statics-NRCore.patch;patch=1 \ - file://build_silence.patch;patch=0;maxdate=20070401" + file://build_silence.patch;patch=0;maxdate=20070401 \ + file://path_fixes.patch;patch=1" S = "${WORKDIR}/NRCore" diff --git a/packages/images/initramfs-bootmenu-image.bb b/packages/images/initramfs-bootmenu-image.bb index 6a4974fa9d..dd4f4d8ef6 100644 --- a/packages/images/initramfs-bootmenu-image.bb +++ b/packages/images/initramfs-bootmenu-image.bb @@ -4,9 +4,12 @@ IMAGE_INSTALL = "busybox-static initramfs-module-bootmenu initramfs-module-check-modules initramfs-module-kexecboot" IMAGE_LINGUAS = "" + # Remove any kernel-image that the kernel-module-* packages may have pulled in. PACKAGE_REMOVE = "kernel-image-* update-modules module-init-tools-depmod uclibc update-rc.d" ROOTFS_POSTPROCESS_COMMAND += "ipkg-cl ${IPKG_ARGS} -force-depends \ remove ${PACKAGE_REMOVE};" +IMAGE_FSTYPES += " cpio.gz " + inherit image diff --git a/packages/images/moko-underground-image.bb b/packages/images/moko-underground-image.bb index f86fcfba58..5752ce6037 100644 --- a/packages/images/moko-underground-image.bb +++ b/packages/images/moko-underground-image.bb @@ -4,38 +4,31 @@ IMAGE_LINGUAS = "" +ADD_INSTALL = "\ + fontconfig-utils \ + \ + ttf-dejavu-common \ + ttf-dejavu-sans \ + ttf-dejavu-serif \ + \ +" + + IMAGE_INSTALL = "\ ${MACHINE_TASK_PROVIDER} \ - task-base \ netbase \ sysfsutils \ - modutils-initscripts \ module-init-tools-depmod \ rsync \ screen \ fbset \ fbset-modes \ \ - matchbox-wm \ - ${XSERVER} \ - xserver-kdrive-common \ - xserver-nodm-init \ - xauth \ - xhost \ - xset \ - xrandr \ - \ - gsm0710muxd \ - pyneod \ - pyneog \ -" - -DEPENDS = "\ - ${MACHINE_TASK_PROVIDER} \ task-pyneo \ + \ + ${ADD_INSTALL} \ " - inherit image ROOTFS_POSTPROCESS_COMMAND += 'date "+%m%d%H%M%Y" >${IMAGE_ROOTFS}/etc/timestamp' diff --git a/packages/images/unslung-image.bb b/packages/images/unslung-image.bb index c258f4250a..cb2a20b75e 100644 --- a/packages/images/unslung-image.bb +++ b/packages/images/unslung-image.bb @@ -10,7 +10,7 @@ DEPENDS = "virtual/kernel \ ${UNSLUNG_EXTRA_DEPENDS}" IMAGE_INSTALL = "kernel update-modules unslung-rootfs \ - libc6-unslung slingbox ipkg libipkg \ + libc6-unslung slingbox ipkg libipkg libgcc \ kernel-module-netconsole \ ${UNSLUNG_EXTRA_INSTALL}" diff --git a/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb b/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb index 8c66521f30..02d696aa2e 100644 --- a/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb +++ b/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb @@ -1,7 +1,7 @@ SRC_URI = "file://30-bootmenu.sh" -PR = "r11" +PR = "r12" DESCRIPTION = "An initramfs module with UI for selection of boot device." -RDEPENDS = "klibc-utils-fstype initramfs-uniboot initramfs-module-block initramfs-module-loop initramfs-module-nfs" +RDEPENDS = "klibc-utils-fstype-static initramfs-uniboot initramfs-module-block initramfs-module-loop initramfs-module-nfs" # For VFAT mounting. RRECOMMENDS = "kernel-module-nls-cp437 kernel-module-nls-iso8859-1" diff --git a/packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch b/packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch new file mode 100644 index 0000000000..b52b3e309b --- /dev/null +++ b/packages/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch @@ -0,0 +1,63 @@ +Index: klibc-1.5/usr/kinit/fstype/fstype.c +=================================================================== +--- klibc-1.5.orig/usr/kinit/fstype/fstype.c 2008-02-28 00:48:35.319254938 +0100 ++++ klibc-1.5/usr/kinit/fstype/fstype.c 2008-02-28 00:52:20.583257793 +0100 +@@ -20,7 +20,7 @@ + #include <endian.h> + #include <netinet/in.h> + #include <sys/vfs.h> +- ++#include <linux/types.h> + #define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */ + + #include "romfs_fs.h" +@@ -33,6 +33,12 @@ + #include "lvm2_sb.h" + #include "iso9660_sb.h" + ++#if __BYTE_ORDER == __BIG_ENDIAN ++#include <linux/byteorder/big_endian.h> ++#else ++#include <linux/byteorder/little_endian.h> ++#endif ++ + /* + * Slightly cleaned up version of jfs_superblock to + * avoid pulling in other kernel header files. +@@ -54,6 +60,27 @@ + /* Swap needs the definition of block size */ + #include "swap_fs.h" + ++static int jffs2_image(const unsigned char *buf, unsigned long *blocks) ++{ ++ // Very sloppy! ;-E ++ if (*buf == 0x85 && buf[1] == 0x19) ++ return 1; ++ ++ return 0; ++} ++ ++static int vfat_image(const unsigned char *buf, unsigned long *blocks) ++{ ++ const struct romfs_super_block *sb = ++ (const struct romfs_super_block *)buf; ++ if (!strncmp(buf + 54, "FAT12 ", 8) ++ || !strncmp(buf + 54, "FAT16 ", 8) ++ || !strncmp(buf + 82, "FAT32 ", 8)) ++ return 1; ++ ++ return 0; ++} ++ + static int gzip_image(const void *buf, unsigned long long *bytes) + { + const unsigned char *p = buf; +@@ -277,6 +304,8 @@ + {1, "ext3", ext3_image}, + {1, "ext2", ext2_image}, + {1, "minix", minix_image}, ++ {0, "jffs2", jffs2_image}, ++ {0, "vfat", vfat_image}, + {8, "reiserfs", reiserfs_image}, + {64, "reiserfs", reiserfs_image}, + {32, "jfs", jfs_image}, diff --git a/packages/klibc/klibc-utils-fstype_1.1.1.bb b/packages/klibc/klibc-utils-fstype-static_1.1.1.bb index 2bcc0f6085..2bcc0f6085 100644 --- a/packages/klibc/klibc-utils-fstype_1.1.1.bb +++ b/packages/klibc/klibc-utils-fstype-static_1.1.1.bb diff --git a/packages/pango/pango-1.18.1/.mtn2git_empty b/packages/libgcrypt/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pango/pango-1.18.1/.mtn2git_empty +++ b/packages/libgcrypt/files/.mtn2git_empty diff --git a/packages/libgcrypt/files/add-pkgconfig-support.patch b/packages/libgcrypt/files/add-pkgconfig-support.patch new file mode 100644 index 0000000000..9b00e8262a --- /dev/null +++ b/packages/libgcrypt/files/add-pkgconfig-support.patch @@ -0,0 +1,62 @@ +diff -Nur libgcrypt-1.2.4/configure.ac libgcrypt11-1.2.4/configure.ac +--- libgcrypt-1.2.4/configure.ac 2007-02-01 19:41:06.000000000 +0100 ++++ libgcrypt11-1.2.4/configure.ac 2007-02-11 13:05:36.000000000 +0100 +@@ -808,6 +808,7 @@ + src/Makefile + src/gcrypt.h + src/libgcrypt-config ++src/libgcrypt.pc + tests/Makefile + w32-dll/Makefile + ]) +diff -Nur libgcrypt-1.2.4/src/libgcrypt.pc.in libgcrypt11-1.2.4/src/libgcrypt.pc.in +--- libgcrypt-1.2.4/src/libgcrypt.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ libgcrypt11-1.2.4/src/libgcrypt.pc.in 2007-02-11 13:03:30.000000000 +0100 +@@ -0,0 +1,32 @@ ++# Process this file with autoconf to produce a pkg-config metadata file. ++# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation ++# Author: Simon Josefsson ++# ++# This file is free software; as a special exception the author gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++# ++# This file is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the ++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++# API info ++api_version=@LIBGCRYPT_CONFIG_API_VERSION@ ++ ++# Misc information. ++symmetric_ciphers=@LIBGCRYPT_CIPHERS@ ++asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@ ++digests=@LIBGCRYPT_DIGESTS@ ++ ++Name: libgcrypt ++Description: GNU crypto library ++URL: http://www.gnupg.org ++Version: @VERSION@ ++Libs: -L${libdir} @LIBGCRYPT_CONFIG_LIBS@ ++Libs.private: @GPG_ERROR_LIBS@ ++Cflags: -I${includedir} @LIBGCRYPT_CONFIG_CFLAGS@ @GPG_ERROR_CFLAGS@ +diff -Nur libgcrypt-1.2.4/src/Makefile.am libgcrypt11-1.2.4/src/Makefile.am +--- libgcrypt-1.2.4/src/Makefile.am 2006-11-30 16:38:18.000000000 +0100 ++++ libgcrypt11-1.2.4/src/Makefile.am 2007-02-11 13:10:03.000000000 +0100 +@@ -27,6 +27,11 @@ + + lib_LTLIBRARIES = libgcrypt.la + ++# Pkg-config script. ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = libgcrypt.pc ++DISTCLEANFILES = $(pkgconfig_DATA) ++ + if HAVE_LD_VERSION_SCRIPT + libgcrypt_version_script_cmd = -Wl,--version-script=$(srcdir)/libgcrypt.vers + else diff --git a/packages/libgcrypt/libgcrypt-1.4.0/.mtn2git_empty b/packages/libgcrypt/libgcrypt-1.4.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libgcrypt/libgcrypt-1.4.0/.mtn2git_empty diff --git a/packages/libgcrypt/libgcrypt-1.4.0/add-pkgconfig-support.patch b/packages/libgcrypt/libgcrypt-1.4.0/add-pkgconfig-support.patch new file mode 100644 index 0000000000..dd5917e900 --- /dev/null +++ b/packages/libgcrypt/libgcrypt-1.4.0/add-pkgconfig-support.patch @@ -0,0 +1,49 @@ +Index: libgcrypt-1.4.0/configure.ac +=================================================================== +--- libgcrypt-1.4.0.orig/configure.ac ++++ libgcrypt-1.4.0/configure.ac +@@ -1072,6 +1072,7 @@ cipher/Makefile + doc/Makefile + src/Makefile + src/gcrypt.h ++src/libgcrypt.pc + src/libgcrypt-config + src/versioninfo.rc + tests/Makefile +Index: libgcrypt-1.4.0/src/libgcrypt.pc.in +=================================================================== +--- /dev/null ++++ libgcrypt-1.4.0/src/libgcrypt.pc.in +@@ -0,0 +1,32 @@ ++# Process this file with autoconf to produce a pkg-config metadata file. ++# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation ++# Author: Simon Josefsson ++# ++# This file is free software; as a special exception the author gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++# ++# This file is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the ++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++# API info ++api_version=@LIBGCRYPT_CONFIG_API_VERSION@ ++ ++# Misc information. ++symmetric_ciphers=@LIBGCRYPT_CIPHERS@ ++asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@ ++digests=@LIBGCRYPT_DIGESTS@ ++ ++Name: libgcrypt ++Description: GNU crypto library ++URL: http://www.gnupg.org ++Version: @VERSION@ ++Libs: -L${libdir} @LIBGCRYPT_CONFIG_LIBS@ ++Libs.private: @GPG_ERROR_LIBS@ ++Cflags: -I${includedir} @LIBGCRYPT_CONFIG_CFLAGS@ @GPG_ERROR_CFLAGS@ diff --git a/packages/libgcrypt/libgcrypt_1.2.3.bb b/packages/libgcrypt/libgcrypt.inc index 74205da673..65f78db647 100644 --- a/packages/libgcrypt/libgcrypt_1.2.3.bb +++ b/packages/libgcrypt/libgcrypt.inc @@ -3,15 +3,11 @@ SECTION = "libs" PRIORITY = "optional" LICENSE = "GPL LGPL FDL" DEPENDS = "libgpg-error" -PR = "r1" -# move libgcrypt-config into -dev package -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}" - -SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz" +SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \ + file://add-pkgconfig-support.patch;patch=1" -inherit autotools binconfig +inherit autotools binconfig pkgconfig EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities" @@ -20,3 +16,7 @@ ARM_INSTRUCTION_SET = "arm" do_stage() { autotools_stage_all } + +# move libgcrypt-config into -dev package +FILES_${PN} = "${libdir}/lib*.so.*" +FILES_${PN}-dev += "${bindir}" diff --git a/packages/libgcrypt/libgcrypt_1.2.0.bb b/packages/libgcrypt/libgcrypt_1.2.0.bb deleted file mode 100644 index be0ad787da..0000000000 --- a/packages/libgcrypt/libgcrypt_1.2.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -PR = "r2" -DESCRIPTION = "A general purpose cryptographic library based on the code from GnuPG" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPL LGPL FDL" -DEPENDS = "libgpg-error" - -# move libgcrypt-config into -dev package -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}" - -SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz" - -inherit autotools binconfig - -EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities" - -do_stage() { - oe_libinstall -so -C src libgcrypt ${STAGING_LIBDIR} - oe_libinstall -so -C src libgcrypt-pthread ${STAGING_LIBDIR} - install -m 0755 src/libgcrypt-config ${STAGING_BINDIR_CROSS}/ - - install -d ${STAGING_INCDIR}/ - for X in gcrypt.h gcrypt-module.h - do - install -m 0644 src/${X} ${STAGING_INCDIR}/${X} - done - -} diff --git a/packages/libgcrypt/libgcrypt_1.2.1.bb b/packages/libgcrypt/libgcrypt_1.2.1.bb deleted file mode 100644 index 3f4942cae5..0000000000 --- a/packages/libgcrypt/libgcrypt_1.2.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "A general purpose cryptographic library based on the code from GnuPG" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPL LGPL FDL" -DEPENDS = "libgpg-error" - -# move libgcrypt-config into -dev package -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}" - -SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz" - -inherit autotools binconfig - -EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities" - -do_stage() { - oe_libinstall -so -C src libgcrypt ${STAGING_LIBDIR} - oe_libinstall -so -C src libgcrypt-pthread ${STAGING_LIBDIR} - install -m 0755 src/libgcrypt-config ${STAGING_BINDIR_CROSS}/ - - install -d ${STAGING_INCDIR}/ - for X in gcrypt.h gcrypt-module.h - do - install -m 0644 src/${X} ${STAGING_INCDIR}/${X} - done - -} diff --git a/packages/libgcrypt/libgcrypt_1.2.2.bb b/packages/libgcrypt/libgcrypt_1.2.2.bb deleted file mode 100644 index 3f4942cae5..0000000000 --- a/packages/libgcrypt/libgcrypt_1.2.2.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "A general purpose cryptographic library based on the code from GnuPG" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPL LGPL FDL" -DEPENDS = "libgpg-error" - -# move libgcrypt-config into -dev package -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}" - -SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz" - -inherit autotools binconfig - -EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities" - -do_stage() { - oe_libinstall -so -C src libgcrypt ${STAGING_LIBDIR} - oe_libinstall -so -C src libgcrypt-pthread ${STAGING_LIBDIR} - install -m 0755 src/libgcrypt-config ${STAGING_BINDIR_CROSS}/ - - install -d ${STAGING_INCDIR}/ - for X in gcrypt.h gcrypt-module.h - do - install -m 0644 src/${X} ${STAGING_INCDIR}/${X} - done - -} diff --git a/packages/libgcrypt/libgcrypt_1.2.4.bb b/packages/libgcrypt/libgcrypt_1.2.4.bb new file mode 100644 index 0000000000..2fe98d62e3 --- /dev/null +++ b/packages/libgcrypt/libgcrypt_1.2.4.bb @@ -0,0 +1,3 @@ +require libgcrypt.inc + +PR = "r2" diff --git a/packages/libgcrypt/libgcrypt_1.4.0.bb b/packages/libgcrypt/libgcrypt_1.4.0.bb index 74205da673..2fe98d62e3 100644 --- a/packages/libgcrypt/libgcrypt_1.4.0.bb +++ b/packages/libgcrypt/libgcrypt_1.4.0.bb @@ -1,22 +1,3 @@ -DESCRIPTION = "A general purpose cryptographic library based on the code from GnuPG" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPL LGPL FDL" -DEPENDS = "libgpg-error" -PR = "r1" +require libgcrypt.inc -# move libgcrypt-config into -dev package -FILES_${PN} = "${libdir}/lib*.so.*" -FILES_${PN}-dev += "${bindir}" - -SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz" - -inherit autotools binconfig - -EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities" - -ARM_INSTRUCTION_SET = "arm" - -do_stage() { - autotools_stage_all -} +PR = "r2" diff --git a/packages/libmatchbox/files/configure_fixes.patch b/packages/libmatchbox/files/configure_fixes.patch new file mode 100644 index 0000000000..083d32a04f --- /dev/null +++ b/packages/libmatchbox/files/configure_fixes.patch @@ -0,0 +1,79 @@ +--- + configure.ac | 15 +++++++-------- + libmb.pc.in | 2 +- + 2 files changed, 8 insertions(+), 9 deletions(-) + +Index: libmatchbox-1.9/configure.ac +=================================================================== +--- libmatchbox-1.9.orig/configure.ac 2007-11-11 22:26:43.000000000 +0000 ++++ libmatchbox-1.9/configure.ac 2007-11-11 22:52:09.000000000 +0000 +@@ -84,6 +84,7 @@ if test $have_libx11pc = yes; then + xft_pkg=xft + SUPPORTS_XFT=1 + AC_DEFINE(USE_XFT, [1], [Use Xft]) ++ XFT_REQUIRED="xft" + fi + # XXX : xau is missing from x11.pc - workaround is too add here + PKG_CHECK_MODULES(XLIBS, x11 xext $xft_pkg) +@@ -108,6 +109,7 @@ if test x$enable_xft != xno; then + AC_DEFINE(USE_XFT, [1], [Use Xft]) + SUPPORTS_XFT=1 + AC_MSG_RESULT(yes) ++ XFT_REQUIRED="xft" + else + + AC_PATH_PROG(XFT_CONFIG, xft-config, no) +@@ -122,21 +124,17 @@ if test x$enable_xft != xno; then + AC_DEFINE(USE_XFT, [1], [Use Xft]) + SUPPORTS_XFT=1 + AC_MSG_RESULT(yes) ++ MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XFT_CFLAGS" ++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XFT_LIBS" + fi + fi + fi + + XLIBS_CFLAGS="$XLIBS_CLAGS $XFT_CFLAGS" +-XLIBS_LIBS="$X_LIBS $XFT_LIBS -lX11 -lXext" +- +-MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS" ++XLIBS_LIBS="$XLIBS_LIBS $XFT_LIBS -lX11 -lXext" + + fi + +-# do this here for freetype include +-MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XLIBS_CFLAGS" +- +- + dnl ------ Check for Pango --------------------------------------------------- + + if test x$enable_pango != xno; then +@@ -172,7 +170,7 @@ if test x$enable_png != xno; then + AC_DEFINE(USE_PNG, [1], [Use Png]) + SUPPORTS_PNG=1 + PNG_LIBS="-lpng -lz" +- MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS $PNG_LIBS" ++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $PNG_LIBS" + else + AC_MSG_WARN([*** Cannot find PNG, disabling support]) + enable_png=no +@@ -340,6 +338,7 @@ AC_SUBST(MB_EXTRA_CFLAGS) + AC_SUBST(XLIBS_REQUIRED) + AC_SUBST(PANGO_REQUIRED) + AC_SUBST(PNG_REQUIRED) ++AC_SUBST(XFT_REQUIRED) + + dnl ------ Below used for mbconfig.h ---------------------------------------- + +Index: libmatchbox-1.9/libmb.pc.in +=================================================================== +--- libmatchbox-1.9.orig/libmb.pc.in 2007-11-11 22:30:47.000000000 +0000 ++++ libmatchbox-1.9/libmb.pc.in 2007-11-11 22:31:01.000000000 +0000 +@@ -7,6 +7,6 @@ Name: libmb + Description: Utility Library used by Matchbox utilities. + Version: @VERSION@ + +-Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ ++Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ @XFT_REQUIRED@ + Libs: -L${libdir} -lmb @MB_EXTRA_LIBS@ + Cflags: -I${includedir} @MB_EXTRA_CFLAGS@ diff --git a/packages/libmatchbox/libmatchbox_1.2.bb b/packages/libmatchbox/libmatchbox_1.2.bb deleted file mode 100644 index 467a3b1d74..0000000000 --- a/packages/libmatchbox/libmatchbox_1.2.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmatchbox.inc - -PR = "r2" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/libmatchbox/${PV}/libmatchbox-${PV}.tar.bz2 \ - file://autofoo.patch;patch=1" diff --git a/packages/libmatchbox/libmatchbox_1.3.bb b/packages/libmatchbox/libmatchbox_1.3.bb deleted file mode 100644 index 7213e71542..0000000000 --- a/packages/libmatchbox/libmatchbox_1.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/libmatchbox/${PV}/libmatchbox-${PV}.tar.bz2 \ - file://autofoo.patch;patch=1" diff --git a/packages/libmatchbox/libmatchbox_1.4.bb b/packages/libmatchbox/libmatchbox_1.4.bb deleted file mode 100644 index 7213e71542..0000000000 --- a/packages/libmatchbox/libmatchbox_1.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/libmatchbox/${PV}/libmatchbox-${PV}.tar.bz2 \ - file://autofoo.patch;patch=1" diff --git a/packages/libmatchbox/libmatchbox_1.5.bb b/packages/libmatchbox/libmatchbox_1.5.bb deleted file mode 100644 index 2f63f7ee64..0000000000 --- a/packages/libmatchbox/libmatchbox_1.5.bb +++ /dev/null @@ -1,11 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \ - file://check.m4 \ - file://autofoo.patch;patch=1" - -do_configure_prepend () { - mv ${WORKDIR}/check.m4 ${S}/ -} diff --git a/packages/libmatchbox/libmatchbox_1.6.bb b/packages/libmatchbox/libmatchbox_1.6.bb deleted file mode 100644 index 29b04635ff..0000000000 --- a/packages/libmatchbox/libmatchbox_1.6.bb +++ /dev/null @@ -1,11 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \ - file://check.m4 \ - file://fix-configure-for-1.9.patch;patch=1" - -do_configure_prepend () { - mv ${WORKDIR}/check.m4 ${S}/ -} diff --git a/packages/libmatchbox/libmatchbox_1.9.bb b/packages/libmatchbox/libmatchbox_1.9.bb index b9044a1d60..a0c5e272c0 100644 --- a/packages/libmatchbox/libmatchbox_1.9.bb +++ b/packages/libmatchbox/libmatchbox_1.9.bb @@ -1,10 +1,12 @@ require libmatchbox.inc -PR = "r1" + +PR = "r5" SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \ - file://16bppfixes-2.patch;patch=1 \ + file://16bppfixes.patch;patch=1 \ + file://configure_fixes.patch;patch=1 \ file://check.m4" do_configure_prepend () { - mv ${WORKDIR}/check.m4 ${S}/ + cp ${WORKDIR}/check.m4 ${S}/ } diff --git a/packages/linux-libc-headers/linux-libc-headers.inc b/packages/linux-libc-headers/linux-libc-headers.inc index 43f0958863..d9f4d687ee 100644 --- a/packages/linux-libc-headers/linux-libc-headers.inc +++ b/packages/linux-libc-headers/linux-libc-headers.inc @@ -1,5 +1,3 @@ DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use." SECTION = "devel" LICENSE = "GPL" - -DEPENDS = "cross-linkage"
\ No newline at end of file diff --git a/packages/linux/linux-2.6.24/cm-x270/.mtn2git_empty b/packages/linux/linux-2.6.24/cm-x270/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/.mtn2git_empty diff --git a/packages/linux/linux-2.6.24/cm-x270/0001-cm-x270-match-type.patch b/packages/linux/linux-2.6.24/cm-x270/0001-cm-x270-match-type.patch new file mode 100644 index 0000000000..a731b4d370 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/0001-cm-x270-match-type.patch @@ -0,0 +1,25 @@ +From 1ae549fbb28ce1d57dc5201375b9f5bfa4a8c11d Mon Sep 17 00:00:00 2001 +From: Cliff Brake <cbrake@happy.dev.bec-systems.com> +Date: Fri, 20 Jul 2007 18:58:27 -0400 +Subject: [PATCH] cm-x270-match-type + +--- + arch/arm/boot/compressed/head-xscale.S | 5 +++++ + 1 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/boot/compressed/head-xscale.S b/arch/arm/boot/compressed/head-xscale.S +index 67ea99e..2e63ba2 100644 +--- a/arch/arm/boot/compressed/head-xscale.S ++++ b/arch/arm/boot/compressed/head-xscale.S +@@ -44,3 +44,8 @@ __XScale_start: + str r1, [r0, #0x18] + #endif + ++#if defined(CONFIG_MACH_ARMCORE) ++ mov r7, #(MACH_TYPE_ARMCORE & 0xFF00) ++ add r7, r7, #(MACH_TYPE_ARMCORE & 0xFF) ++#endif ++ +-- +1.5.4.rc4 + diff --git a/packages/linux/linux-2.6.24/cm-x270/0002-ramdisk_load.patch b/packages/linux/linux-2.6.24/cm-x270/0002-ramdisk_load.patch new file mode 100644 index 0000000000..4cc0c56a73 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/0002-ramdisk_load.patch @@ -0,0 +1,81 @@ +From e2e1f41847cdd2ec6cbcfa97ca47972301fec10e Mon Sep 17 00:00:00 2001 +From: Cliff Brake <cbrake@happy.dev.bec-systems.com> +Date: Fri, 20 Jul 2007 19:01:50 -0400 +Subject: [PATCH] ramdisk_load + +--- + arch/arm/mach-pxa/cm-x270.c | 6 ++++++ + include/asm-arm/arch-pxa/cm-x270.h | 4 ++++ + init/initramfs.c | 16 ++++++++++++++++ + 3 files changed, 26 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c +index 177664c..fb607e9 100644 +--- a/arch/arm/mach-pxa/cm-x270.c ++++ b/arch/arm/mach-pxa/cm-x270.c +@@ -239,6 +239,12 @@ static struct map_desc cmx270_io_desc[] __initdata = { + .length = SZ_64M, + .type = MT_DEVICE + }, ++ [2] = { /* NOR flash */ ++ .virtual = CMX270_FLASH_VIRT, ++ .pfn = __phys_to_pfn(PXA_CS0_PHYS), ++ .length = (8<<20), /* up to 8 MByte flash */ ++ .type = MT_DEVICE ++ }, + }; + + /* +diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h +index f8fac9e..70e0dce 100644 +--- a/include/asm-arm/arch-pxa/cm-x270.h ++++ b/include/asm-arm/arch-pxa/cm-x270.h +@@ -20,6 +20,10 @@ + #define CMX270_VIRT_BASE (0xe8000000) + #define CMX270_IT8152_VIRT (CMX270_VIRT_BASE) + #define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + SZ_64M) ++#define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + SZ_64M) ++ ++#define CMX270_FLASH_RAMDISK_VIRT (CMX270_FLASH_VIRT + 0x1c0000) ++ + + /* GPIO related definitions */ + #define GPIO_IT8152_IRQ (22) +diff --git a/init/initramfs.c b/init/initramfs.c +index 1db02a0..d875fbc 100644 +--- a/init/initramfs.c ++++ b/init/initramfs.c +@@ -7,6 +7,9 @@ + #include <linux/string.h> + #include <linux/syscalls.h> + ++// HACK for compulab cm-x270 ++#include <asm/arch/cm-x270.h> ++ + static __initdata char *message; + static void __init error(char *x) + { +@@ -550,7 +553,20 @@ static int __init populate_rootfs(void) + #ifdef CONFIG_BLK_DEV_INITRD + if (initrd_start) { + #ifdef CONFIG_BLK_DEV_RAM ++ ++ /* hack to make initramfs work because the ++ * compulab BL does not zero out the ++ * initrd memory. This only seems to affect loading ++ * initramfs (cpio.gz) archives. Does not seem to ++ * affect ramdisks. ++ */ ++ int initrd_size = *(int *)(CMX270_FLASH_RAMDISK_VIRT); + int fd; ++ ++ initrd_end = initrd_start + initrd_size; ++ //printk("CLIFF: initrd_start = 0x%x\n", initrd_start); ++ //printk("CLIFF: initrd_end = 0x%x\n", initrd_end); ++ + printk(KERN_INFO "checking if image is initramfs..."); + err = unpack_to_rootfs((char *)initrd_start, + initrd_end - initrd_start, 1); +-- +1.5.4.rc4 + diff --git a/packages/linux/linux-2.6.24/cm-x270/0003-mmcsd_large_cards-r0.patch b/packages/linux/linux-2.6.24/cm-x270/0003-mmcsd_large_cards-r0.patch new file mode 100644 index 0000000000..ed80fc1db1 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/0003-mmcsd_large_cards-r0.patch @@ -0,0 +1,36 @@ +From 549141e199a0ff0d2d6b12668da23581b4467aae Mon Sep 17 00:00:00 2001 +From: Cliff Brake <cbrake@happy.dev.bec-systems.com> +Date: Fri, 20 Jul 2007 19:02:55 -0400 +Subject: [PATCH] mmcsd_large_cards-r0 + +--- + drivers/mmc/card/block.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c +index aeb32a9..d854b0c 100644 +--- a/drivers/mmc/card/block.c ++++ b/drivers/mmc/card/block.c +@@ -423,6 +423,7 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) + { + struct mmc_blk_data *md; + int devidx, ret; ++ unsigned long cap; + + devidx = find_first_zero_bit(dev_use, MMC_NUM_MINORS); + if (devidx >= MMC_NUM_MINORS) +@@ -486,6 +487,11 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) + + sprintf(md->disk->disk_name, "mmcblk%d", devidx); + ++ if (card->csd.read_blkbits > 9) ++ md->block_bits = 9; ++ else ++ md->block_bits = card->csd.read_blkbits; ++ + blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits); + + if (!mmc_card_sd(card) && mmc_card_blockaddr(card)) { +-- +1.5.4.rc4 + diff --git a/packages/linux/linux-2.6.24/cm-x270/0004-cm-x270-nand-simplify-name.patch b/packages/linux/linux-2.6.24/cm-x270/0004-cm-x270-nand-simplify-name.patch new file mode 100644 index 0000000000..17a2579932 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/0004-cm-x270-nand-simplify-name.patch @@ -0,0 +1,25 @@ +From 3e1d0d66b6cb94fc06621fbd1af64d8bebb6046b Mon Sep 17 00:00:00 2001 +From: Cliff Brake <cbrake@happy.dev.bec-systems.com> +Date: Fri, 20 Jul 2007 19:04:12 -0400 +Subject: [PATCH] cm-x270-nand-simplify-name + +--- + drivers/mtd/nand/cmx270_nand.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/drivers/mtd/nand/cmx270_nand.c b/drivers/mtd/nand/cmx270_nand.c +index cb663ef..3654ce4 100644 +--- a/drivers/mtd/nand/cmx270_nand.c ++++ b/drivers/mtd/nand/cmx270_nand.c +@@ -191,6 +191,8 @@ static int cmx270_init(void) + cmx270_nand_mtd->owner = THIS_MODULE; + cmx270_nand_mtd->priv = this; + ++ cmx270_nand_mtd->name = "cm-x270-nand"; ++ + /* insert callbacks */ + this->IO_ADDR_R = cmx270_nand_io; + this->IO_ADDR_W = cmx270_nand_io; +-- +1.5.4.rc4 + diff --git a/packages/linux/linux-2.6.24/cm-x270/0005-add-display-set-default-16bpp.patch b/packages/linux/linux-2.6.24/cm-x270/0005-add-display-set-default-16bpp.patch new file mode 100644 index 0000000000..61bd70a530 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/0005-add-display-set-default-16bpp.patch @@ -0,0 +1,82 @@ +From fb2f97500aa492ed9b2d6a3a665bac13d14e44b4 Mon Sep 17 00:00:00 2001 +From: Cliff Brake <cbrake@bec-systems.com> +Date: Wed, 27 Feb 2008 16:44:42 -0500 +Subject: [PATCH] add-display-set-default-16bpp + +--- + arch/arm/mach-pxa/cm-x270.c | 31 +++++++++++++++++++++++++++++-- + 1 files changed, 29 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c +index fb607e9..915412a 100644 +--- a/arch/arm/mach-pxa/cm-x270.c ++++ b/arch/arm/mach-pxa/cm-x270.c +@@ -258,6 +258,7 @@ static struct map_desc cmx270_io_desc[] __initdata = { + #define MTYPE_CRT800x600 3 + #define MTYPE_TFT320x240 6 + #define MTYPE_STN640x480 7 ++#define MTYPE_TFT640x480_SHARP 8 + + static struct pxafb_mode_info generic_stn_320x240_mode = { + .pixclock = 76923, +@@ -288,7 +289,7 @@ static struct pxafb_mach_info generic_stn_320x240 = { + + static struct pxafb_mode_info generic_tft_640x480_mode = { + .pixclock = 38461, +- .bpp = 8, ++ .bpp = 16, + .xres = 640, + .yres = 480, + .hsync_len = 60, +@@ -314,7 +315,7 @@ static struct pxafb_mach_info generic_tft_640x480 = { + + static struct pxafb_mode_info generic_crt_640x480_mode = { + .pixclock = 38461, +- .bpp = 8, ++ .bpp = 16, + .xres = 640, + .yres = 480, + .hsync_len = 63, +@@ -416,6 +417,29 @@ static struct pxafb_mach_info generic_stn_640x480 = { + .cmap_static = 0, + }; + ++ ++static struct pxafb_mode_info sharp_vga_tft_mode = { ++ .pixclock = 38461, ++ .bpp = 16, ++ .xres = 640, ++ .yres = 480, ++ .hsync_len = 60, ++ .vsync_len = 2, ++ .left_margin = 72, ++ .upper_margin = 32, ++ .right_margin = 72, ++ .lower_margin = 10, ++ .sync = 0, ++}; ++ ++static struct pxafb_mach_info sharp_vga_tft = { ++ .modes = &sharp_vga_tft_mode, ++ .num_modes = 1, ++ .lccr0 = (LCCR0_PAS), ++ .lccr3 = (LCCR3_PixClkDiv(0x01) | ++ LCCR3_Acb(0xff)), ++}; ++ + static struct pxafb_mach_info *cmx270_display = &generic_crt_640x480; + + static int __init cmx270_set_display(char *str) +@@ -437,6 +461,9 @@ static int __init cmx270_set_display(char *str) + case MTYPE_TFT320x240: + cmx270_display = &generic_tft_320x240; + break; ++ case MTYPE_TFT640x480_SHARP: ++ cmx270_display = &sharp_vga_tft; ++ break; + case MTYPE_STN640x480: + cmx270_display = &generic_stn_640x480; + break; +-- +1.5.4.rc4 + diff --git a/packages/linux/linux-2.6.24/cm-x270/0006-updated-defconfig.patch b/packages/linux/linux-2.6.24/cm-x270/0006-updated-defconfig.patch new file mode 100644 index 0000000000..69c80b2f15 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/0006-updated-defconfig.patch @@ -0,0 +1,1325 @@ +From 0dc522d8bbae9defb121c462ee6f7268418e4afa Mon Sep 17 00:00:00 2001 +From: Cliff Brake <cbrake@bec-systems.com> +Date: Wed, 27 Feb 2008 15:57:02 -0500 +Subject: [PATCH] updated defconfig + +--- + arch/arm/configs/cm_x270_defconfig | 780 +++++++++++++----------------------- + 1 files changed, 286 insertions(+), 494 deletions(-) + +diff --git a/arch/arm/configs/cm_x270_defconfig b/arch/arm/configs/cm_x270_defconfig +index 5cab083..412c772 100644 +--- a/arch/arm/configs/cm_x270_defconfig ++++ b/arch/arm/configs/cm_x270_defconfig +@@ -1,13 +1,13 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.22 +-# Wed Jul 18 14:11:48 2007 ++# Linux kernel version: 2.6.24 ++# Wed Feb 27 16:38:09 2008 + # + CONFIG_ARM=y + CONFIG_SYS_SUPPORTS_APM_EMULATION=y + CONFIG_GENERIC_GPIO=y + CONFIG_GENERIC_TIME=y +-# CONFIG_GENERIC_CLOCKEVENTS is not set ++CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_MMU=y + # CONFIG_NO_IOPORT is not set + CONFIG_GENERIC_HARDIRQS=y +@@ -27,16 +27,13 @@ CONFIG_VECTORS_BASE=0xffff0000 + CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + + # +-# Code maturity level options ++# General setup + # + CONFIG_EXPERIMENTAL=y + CONFIG_BROKEN_ON_SMP=y ++CONFIG_LOCK_KERNEL=y + CONFIG_INIT_ENV_ARG_LIMIT=32 +- +-# +-# General setup +-# +-CONFIG_LOCALVERSION="" ++CONFIG_LOCALVERSION="-cm-x270" + # CONFIG_LOCALVERSION_AUTO is not set + CONFIG_SWAP=y + CONFIG_SYSVIPC=y +@@ -45,10 +42,15 @@ CONFIG_SYSVIPC_SYSCTL=y + # 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 + CONFIG_IKCONFIG=y + CONFIG_IKCONFIG_PROC=y +-CONFIG_LOG_BUF_SHIFT=17 ++CONFIG_LOG_BUF_SHIFT=14 ++# 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_RELAY is not set + CONFIG_BLK_DEV_INITRD=y +@@ -59,7 +61,6 @@ CONFIG_EMBEDDED=y + CONFIG_UID16=y + CONFIG_SYSCTL_SYSCALL=y + CONFIG_KALLSYMS=y +-# CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -68,21 +69,21 @@ CONFIG_ELF_CORE=y + CONFIG_BASE_FULL=y + CONFIG_FUTEX=y + CONFIG_ANON_INODES=y +-# CONFIG_EPOLL is not set +-# CONFIG_SIGNALFD is not set +-# CONFIG_TIMERFD is not set +-# CONFIG_EVENTFD is not set ++CONFIG_EPOLL=y ++CONFIG_SIGNALFD=y ++CONFIG_EVENTFD=y + CONFIG_SHMEM=y + CONFIG_VM_EVENT_COUNTERS=y + CONFIG_SLAB=y + # CONFIG_SLUB is not set + # CONFIG_SLOB is not set ++CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y + CONFIG_MODULE_UNLOAD=y +-CONFIG_MODULE_FORCE_UNLOAD=y ++# CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set + # CONFIG_MODULE_SRCVERSION_ALL is not set + CONFIG_KMOD=y +@@ -99,11 +100,11 @@ CONFIG_IOSCHED_NOOP=y + CONFIG_IOSCHED_AS=y + CONFIG_IOSCHED_DEADLINE=y + CONFIG_IOSCHED_CFQ=y +-CONFIG_DEFAULT_AS=y ++# CONFIG_DEFAULT_AS is not set + # CONFIG_DEFAULT_DEADLINE is not set +-# CONFIG_DEFAULT_CFQ is not set ++CONFIG_DEFAULT_CFQ=y + # CONFIG_DEFAULT_NOOP is not set +-CONFIG_DEFAULT_IOSCHED="anticipatory" ++CONFIG_DEFAULT_IOSCHED="cfq" + + # + # System Type +@@ -131,6 +132,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" + # CONFIG_ARCH_L7200 is not set + # CONFIG_ARCH_KS8695 is not set + # CONFIG_ARCH_NS9XXX is not set ++# CONFIG_ARCH_MXC is not set + # CONFIG_ARCH_PNX4008 is not set + CONFIG_ARCH_PXA=y + # CONFIG_ARCH_RPC is not set +@@ -140,10 +142,9 @@ CONFIG_ARCH_PXA=y + # CONFIG_ARCH_LH7A40X is not set + # CONFIG_ARCH_DAVINCI is not set + # CONFIG_ARCH_OMAP is not set +-CONFIG_DMABOUNCE=y + + # +-# Intel PXA2xx Implementations ++# Intel PXA2xx/PXA3xx Implementations + # + # CONFIG_ARCH_LUBBOCK is not set + # CONFIG_MACH_LOGICPD_PXA270 is not set +@@ -151,10 +152,20 @@ CONFIG_DMABOUNCE=y + # CONFIG_ARCH_PXA_IDP is not set + # CONFIG_PXA_SHARPSL is not set + # CONFIG_MACH_TRIZEPS4 is not set ++# CONFIG_MACH_EM_X270 is not set ++# CONFIG_MACH_ZYLONITE is not set + CONFIG_MACH_ARMCORE=y + CONFIG_PXA27x=y + + # ++# Boot options ++# ++ ++# ++# Power management ++# ++ ++# + # Processor Type + # + CONFIG_CPU_32=y +@@ -178,25 +189,22 @@ CONFIG_XSCALE_PMU=y + # + # Bus support + # +-CONFIG_PCI=y +-CONFIG_PCI_SYSCALL=y +-CONFIG_PCI_HOST_ITE8152=y ++# CONFIG_PCI is not set ++# CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set +-# CONFIG_PCI_DEBUG is not set +- +-# +-# PCCARD (PCMCIA/CardBus) support +-# + # CONFIG_PCCARD is not set + + # + # Kernel Features + # +-# CONFIG_TICK_ONESHOT is not set +-# CONFIG_PREEMPT is not set +-# CONFIG_NO_IDLE_HZ is not set ++CONFIG_TICK_ONESHOT=y ++# CONFIG_NO_HZ is not set ++CONFIG_HIGH_RES_TIMERS=y ++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y ++CONFIG_PREEMPT=y + CONFIG_HZ=100 +-# CONFIG_AEABI is not set ++CONFIG_AEABI=y ++CONFIG_OABI_COMPAT=y + # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set + CONFIG_SELECT_MEMORY_MODEL=y + CONFIG_FLATMEM_MANUAL=y +@@ -205,6 +213,7 @@ CONFIG_FLATMEM_MANUAL=y + CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set ++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set + CONFIG_SPLIT_PTLOCK_CPUS=4096 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 +@@ -217,7 +226,7 @@ CONFIG_ALIGNMENT_TRAP=y + # + CONFIG_ZBOOT_ROM_TEXT=0x0 + CONFIG_ZBOOT_ROM_BSS=0x0 +-CONFIG_CMDLINE="" ++CONFIG_CMDLINE="console=ttyS1,38400 monitor=1 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2" + # CONFIG_XIP_KERNEL is not set + # CONFIG_KEXEC is not set + +@@ -228,8 +237,7 @@ CONFIG_CMDLINE="" + # + # At least one emulation must be selected + # +-CONFIG_FPE_NWFPE=y +-# CONFIG_FPE_NWFPE_XP is not set ++# CONFIG_FPE_NWFPE is not set + # CONFIG_FPE_FASTFPE is not set + + # +@@ -238,16 +246,12 @@ CONFIG_FPE_NWFPE=y + CONFIG_BINFMT_ELF=y + # CONFIG_BINFMT_AOUT is not set + # CONFIG_BINFMT_MISC is not set +-# CONFIG_ARTHUR is not set + + # + # Power management options + # +-CONFIG_PM=y +-# CONFIG_PM_LEGACY is not set +-# CONFIG_PM_DEBUG is not set +-# CONFIG_PM_SYSFS_DEPRECATED is not set +-# CONFIG_APM_EMULATION is not set ++# CONFIG_PM is not set ++CONFIG_SUSPEND_UP_POSSIBLE=y + + # + # Networking +@@ -285,6 +289,7 @@ CONFIG_IP_PNP_BOOTP=y + CONFIG_INET_XFRM_MODE_TRANSPORT=y + CONFIG_INET_XFRM_MODE_TUNNEL=y + CONFIG_INET_XFRM_MODE_BEET=y ++# CONFIG_INET_LRO is not set + CONFIG_INET_DIAG=y + CONFIG_INET_TCP_DIAG=y + # CONFIG_TCP_CONG_ADVANCED is not set +@@ -310,10 +315,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_LAPB is not set + # CONFIG_ECONET is not set + # CONFIG_WAN_ROUTER is not set +- +-# +-# QoS and/or fair queueing +-# + # CONFIG_NET_SCHED is not set + + # +@@ -329,14 +330,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic" + # Wireless + # + # CONFIG_CFG80211 is not set +-CONFIG_WIRELESS_EXT=y ++# CONFIG_WIRELESS_EXT is not set + # CONFIG_MAC80211 is not set +-CONFIG_IEEE80211=m +-# CONFIG_IEEE80211_DEBUG is not set +-CONFIG_IEEE80211_CRYPT_WEP=m +-CONFIG_IEEE80211_CRYPT_CCMP=m +-# CONFIG_IEEE80211_CRYPT_TKIP is not set +-# CONFIG_IEEE80211_SOFTMAC is not set ++# CONFIG_IEEE80211 is not set + # CONFIG_RFKILL is not set + # CONFIG_NET_9P is not set + +@@ -347,38 +343,40 @@ CONFIG_IEEE80211_CRYPT_CCMP=m + # + # Generic Driver Options + # ++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" + CONFIG_STANDALONE=y + CONFIG_PREVENT_FIRMWARE_BUILD=y + CONFIG_FW_LOADER=y +-# 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=m ++CONFIG_MTD=y + # CONFIG_MTD_DEBUG is not set + # CONFIG_MTD_CONCAT is not set + CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set ++CONFIG_MTD_CMDLINE_PARTS=y + # CONFIG_MTD_AFS_PARTS is not set + + # + # User Modules And Translation Layers + # +-CONFIG_MTD_CHAR=m +-CONFIG_MTD_BLKDEVS=m +-CONFIG_MTD_BLOCK=m +-# CONFIG_MTD_BLOCK_RO is not set ++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_CFI=y + # CONFIG_MTD_JEDECPROBE is not set ++CONFIG_MTD_GEN_PROBE=y ++# CONFIG_MTD_CFI_ADV_OPTIONS is not set + CONFIG_MTD_MAP_BANK_WIDTH_1=y + CONFIG_MTD_MAP_BANK_WIDTH_2=y + CONFIG_MTD_MAP_BANK_WIDTH_4=y +@@ -389,21 +387,30 @@ 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_CFI_INTELEXT is not set ++CONFIG_MTD_CFI_AMDSTD=y ++# CONFIG_MTD_CFI_STAA is not set ++CONFIG_MTD_CFI_UTIL=y + # CONFIG_MTD_RAM is not set + # CONFIG_MTD_ROM is not set + # CONFIG_MTD_ABSENT is not set ++# CONFIG_MTD_XIP is not set + + # + # Mapping drivers for chip access + # + # CONFIG_MTD_COMPLEX_MAPPINGS is not set ++CONFIG_MTD_PHYSMAP=y ++CONFIG_MTD_PHYSMAP_START=0x0 ++CONFIG_MTD_PHYSMAP_LEN=0x400000 ++CONFIG_MTD_PHYSMAP_BANKWIDTH=2 ++# CONFIG_MTD_ARM_INTEGRATOR is not set + # CONFIG_MTD_SHARP_SL is not set + # CONFIG_MTD_PLATRAM is not set + + # + # Self-contained MTD device drivers + # +-# CONFIG_MTD_PMC551 is not set + # CONFIG_MTD_SLRAM is not set + # CONFIG_MTD_PHRAM is not set + # CONFIG_MTD_MTDRAM is not set +@@ -415,18 +422,18 @@ CONFIG_MTD_CFI_I2=y + # CONFIG_MTD_DOC2000 is not set + # CONFIG_MTD_DOC2001 is not set + # CONFIG_MTD_DOC2001PLUS is not set +-CONFIG_MTD_NAND=m ++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_H1900 is not set +-CONFIG_MTD_NAND_IDS=m ++CONFIG_MTD_NAND_IDS=y + # CONFIG_MTD_NAND_DISKONCHIP is not set + # CONFIG_MTD_NAND_SHARPSL is not set +-# CONFIG_MTD_NAND_CAFE is not set +-CONFIG_MTD_NAND_CM_X270=m ++CONFIG_MTD_NAND_CM_X270=y + # 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 + + # +@@ -435,48 +442,20 @@ CONFIG_MTD_NAND_CM_X270=m + # CONFIG_MTD_UBI is not set + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y +-# CONFIG_BLK_CPQ_DA is not set +-# CONFIG_BLK_CPQ_CISS_DA is not set +-# CONFIG_BLK_DEV_DAC960 is not set +-# CONFIG_BLK_DEV_UMEM is not set + # 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_SX8 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_SIZE=12000 ++CONFIG_BLK_DEV_RAM_SIZE=4096 + CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 + # CONFIG_CDROM_PKTCDVD is not set + # CONFIG_ATA_OVER_ETH is not set +-CONFIG_IDE=m +-CONFIG_IDE_MAX_HWIFS=4 +-CONFIG_BLK_DEV_IDE=m +- +-# +-# Please see Documentation/ide.txt for help/info on IDE drives +-# +-# CONFIG_BLK_DEV_IDE_SATA is not set +-CONFIG_BLK_DEV_IDEDISK=m +-# CONFIG_IDEDISK_MULTI_MODE is not set +-CONFIG_BLK_DEV_IDECD=m +-# CONFIG_BLK_DEV_IDETAPE is not set +-# CONFIG_BLK_DEV_IDEFLOPPY is not set +-# CONFIG_BLK_DEV_IDESCSI is not set +-# CONFIG_IDE_TASK_IOCTL is not set +-CONFIG_IDE_PROC_FS=y +- +-# +-# IDE chipset support/bugfixes +-# +-# CONFIG_IDE_GENERIC is not set +-# CONFIG_BLK_DEV_IDEPCI is not set +-# CONFIG_IDEPCI_PCIBUS_ORDER is not set +-# CONFIG_IDE_ARM is not set +-# CONFIG_BLK_DEV_IDEDMA is not set +-# CONFIG_BLK_DEV_HD is not set ++CONFIG_MISC_DEVICES=y ++# CONFIG_EEPROM_93CX6 is not set ++# CONFIG_IDE is not set + + # + # SCSI device support +@@ -486,7 +465,7 @@ CONFIG_SCSI=y + CONFIG_SCSI_DMA=y + # CONFIG_SCSI_TGT is not set + # CONFIG_SCSI_NETLINK is not set +-# CONFIG_SCSI_PROC_FS is not set ++CONFIG_SCSI_PROC_FS=y + + # + # SCSI support type (disk, tape, CD-ROM) +@@ -513,60 +492,13 @@ CONFIG_SCSI_WAIT_SCAN=m + # CONFIG_SCSI_SPI_ATTRS is not set + # CONFIG_SCSI_FC_ATTRS is not set + # CONFIG_SCSI_ISCSI_ATTRS is not set +-# CONFIG_SCSI_SAS_ATTRS is not set + # CONFIG_SCSI_SAS_LIBSAS is not set +- +-# +-# SCSI low-level drivers +-# ++# CONFIG_SCSI_SRP_ATTRS is not set ++CONFIG_SCSI_LOWLEVEL=y + # CONFIG_ISCSI_TCP is not set +-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +-# CONFIG_SCSI_3W_9XXX is not set +-# CONFIG_SCSI_ACARD is not set +-# CONFIG_SCSI_AACRAID is not set +-# CONFIG_SCSI_AIC7XXX is not set +-# CONFIG_SCSI_AIC7XXX_OLD is not set +-# CONFIG_SCSI_AIC79XX is not set +-# CONFIG_SCSI_AIC94XX is not set +-# CONFIG_SCSI_DPT_I2O is not set +-# CONFIG_SCSI_ARCMSR is not set +-# CONFIG_MEGARAID_NEWGEN is not set +-# CONFIG_MEGARAID_LEGACY is not set +-# CONFIG_MEGARAID_SAS is not set +-# CONFIG_SCSI_HPTIOP is not set +-# CONFIG_SCSI_DMX3191D is not set +-# CONFIG_SCSI_FUTURE_DOMAIN is not set +-# CONFIG_SCSI_IPS is not set +-# CONFIG_SCSI_INITIO is not set +-# CONFIG_SCSI_INIA100 is not set +-# CONFIG_SCSI_STEX is not set +-# CONFIG_SCSI_SYM53C8XX_2 is not set +-# CONFIG_SCSI_QLOGIC_1280 is not set +-# CONFIG_SCSI_QLA_FC is not set +-# CONFIG_SCSI_QLA_ISCSI is not set +-# CONFIG_SCSI_LPFC is not set +-# CONFIG_SCSI_DC395x is not set +-# CONFIG_SCSI_DC390T is not set +-# CONFIG_SCSI_NSP32 is not set + # CONFIG_SCSI_DEBUG is not set +-# CONFIG_SCSI_SRP is not set + # CONFIG_ATA is not set + # CONFIG_MD is not set +- +-# +-# Fusion MPT device support +-# +-# CONFIG_FUSION is not set +-# CONFIG_FUSION_SPI is not set +-# CONFIG_FUSION_FC is not set +-# CONFIG_FUSION_SAS is not set +- +-# +-# IEEE 1394 (FireWire) support +-# +-# CONFIG_FIREWIRE is not set +-# CONFIG_IEEE1394 is not set +-# CONFIG_I2O is not set + CONFIG_NETDEVICES=y + # CONFIG_NETDEVICES_MULTIQUEUE is not set + # CONFIG_DUMMY is not set +@@ -574,69 +506,21 @@ CONFIG_NETDEVICES=y + # CONFIG_MACVLAN is not set + # CONFIG_EQUALIZER is not set + # CONFIG_TUN is not set +-# CONFIG_ARCNET is not set ++# CONFIG_VETH is not set + # CONFIG_PHYLIB is not set + CONFIG_NET_ETHERNET=y + CONFIG_MII=y + # CONFIG_AX88796 is not set +-# CONFIG_HAPPYMEAL is not set +-# CONFIG_SUNGEM is not set +-# CONFIG_CASSINI is not set +-# CONFIG_NET_VENDOR_3COM is not set + # CONFIG_SMC91X is not set + CONFIG_DM9000=y + # CONFIG_SMC911X is not set +-# CONFIG_NET_TULIP is not set +-# CONFIG_HP100 is not set +-CONFIG_NET_PCI=y +-# CONFIG_PCNET32 is not set +-# CONFIG_AMD8111_ETH is not set +-# CONFIG_ADAPTEC_STARFIRE 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_B44 is not set +-# CONFIG_FORCEDETH is not set +-# CONFIG_DGRS is not set +-# CONFIG_EEPRO100 is not set +-# CONFIG_E100 is not set +-# CONFIG_FEALNX is not set +-# CONFIG_NATSEMI is not set +-# CONFIG_NE2K_PCI is not set +-# CONFIG_8139CP is not set +-CONFIG_8139TOO=m +-# CONFIG_8139TOO_PIO is not set +-# CONFIG_8139TOO_TUNE_TWISTER is not set +-# CONFIG_8139TOO_8129 is not set +-# CONFIG_8139_OLD_RX_RESET is not set +-# CONFIG_SIS900 is not set +-# CONFIG_EPIC100 is not set +-# CONFIG_SUNDANCE is not set +-# CONFIG_TLAN is not set +-# CONFIG_VIA_RHINE is not set +-# CONFIG_SC92031 is not set +-CONFIG_NETDEV_1000=y +-# CONFIG_ACENIC is not set +-# CONFIG_DL2K is not set +-# CONFIG_E1000 is not set +-# CONFIG_NS83820 is not set +-# CONFIG_HAMACHI is not set +-# CONFIG_YELLOWFIN is not set +-# CONFIG_R8169 is not set +-# CONFIG_SIS190 is not set +-# CONFIG_SKGE is not set +-# CONFIG_SKY2 is not set +-# CONFIG_VIA_VELOCITY is not set +-# CONFIG_TIGON3 is not set +-# CONFIG_BNX2 is not set +-# CONFIG_QLA3XXX is not set +-# CONFIG_ATL1 is not set +-CONFIG_NETDEV_10000=y +-# CONFIG_CHELSIO_T1 is not set +-# CONFIG_CHELSIO_T3 is not set +-# CONFIG_IXGB is not set +-# CONFIG_S2IO is not set +-# CONFIG_MYRI10GE is not set +-# CONFIG_NETXEN_NIC is not set +-# CONFIG_MLX4_CORE is not set +-# CONFIG_TR is not set ++# CONFIG_NETDEV_1000 is not set ++# CONFIG_NETDEV_10000 is not set + + # + # Wireless LAN +@@ -647,18 +531,24 @@ CONFIG_NETDEV_10000=y + # + # 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_MII is not set +-# CONFIG_USB_USBNET is not set ++CONFIG_USB_CATC=m ++CONFIG_USB_KAWETH=m ++CONFIG_USB_PEGASUS=m ++CONFIG_USB_RTL8150=m ++CONFIG_USB_USBNET=m ++CONFIG_USB_NET_AX8817X=m ++CONFIG_USB_NET_CDCETHER=m ++# CONFIG_USB_NET_DM9601 is not set ++CONFIG_USB_NET_GL620A=m ++CONFIG_USB_NET_NET1080=m ++CONFIG_USB_NET_PLUSB=m ++CONFIG_USB_NET_MCS7830=m ++# CONFIG_USB_NET_RNDIS_HOST is not set ++# CONFIG_USB_NET_CDC_SUBSET is not set ++# CONFIG_USB_NET_ZAURUS is not set + # CONFIG_WAN is not set +-# CONFIG_FDDI is not set +-# CONFIG_HIPPI is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +-# CONFIG_NET_FC is not set + # CONFIG_SHAPER is not set + # CONFIG_NETCONSOLE is not set + # CONFIG_NETPOLL is not set +@@ -675,20 +565,42 @@ CONFIG_INPUT=y + # + # Userland interfaces + # +-# CONFIG_INPUT_MOUSEDEV is not set ++CONFIG_INPUT_MOUSEDEV=y ++CONFIG_INPUT_MOUSEDEV_PSAUX=y ++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 ++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 + # CONFIG_INPUT_JOYDEV is not set +-# CONFIG_INPUT_TSDEV is not set +-CONFIG_INPUT_EVDEV=y ++CONFIG_INPUT_EVDEV=m + # CONFIG_INPUT_EVBUG is not set + + # + # Input Device Drivers + # +-# CONFIG_INPUT_KEYBOARD is not set +-# CONFIG_INPUT_MOUSE is not set ++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_PXA27x is not set ++# CONFIG_KEYBOARD_GPIO is not set ++CONFIG_INPUT_MOUSE=y ++CONFIG_MOUSE_PS2=y ++# CONFIG_MOUSE_PS2_ALPS is not set ++# CONFIG_MOUSE_PS2_LOGIPS2PP is not set ++# CONFIG_MOUSE_PS2_SYNAPTICS is not set ++# CONFIG_MOUSE_PS2_LIFEBOOK is not set ++# CONFIG_MOUSE_PS2_TRACKPOINT is not set ++# CONFIG_MOUSE_PS2_TOUCHKIT is not set ++# CONFIG_MOUSE_SERIAL is not set ++# CONFIG_MOUSE_APPLETOUCH 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_FUJITSU is not set + # CONFIG_TOUCHSCREEN_GUNZE is not set + # CONFIG_TOUCHSCREEN_ELO is not set + # CONFIG_TOUCHSCREEN_MTOUCH is not set +@@ -703,7 +615,10 @@ CONFIG_TOUCHSCREEN_UCB1400=m + # + # Hardware I/O ports + # +-# CONFIG_SERIO is not set ++CONFIG_SERIO=y ++CONFIG_SERIO_SERPORT=y ++CONFIG_SERIO_LIBPS2=y ++# CONFIG_SERIO_RAW is not set + # CONFIG_GAMEPORT is not set + + # +@@ -727,83 +642,141 @@ CONFIG_SERIAL_PXA=y + CONFIG_SERIAL_PXA_CONSOLE=y + CONFIG_SERIAL_CORE=y + CONFIG_SERIAL_CORE_CONSOLE=y +-# CONFIG_SERIAL_JSM is not set + CONFIG_UNIX98_PTYS=y +-CONFIG_LEGACY_PTYS=y +-CONFIG_LEGACY_PTY_COUNT=256 ++# CONFIG_LEGACY_PTYS is not set + # CONFIG_IPMI_HANDLER is not set +-# CONFIG_WATCHDOG is not set +-CONFIG_HW_RANDOM=m ++CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set + # CONFIG_R3964 is not set +-# CONFIG_APPLICOM is not set +-# CONFIG_DRM is not set + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set +-CONFIG_DEVPORT=y +-# CONFIG_I2C is not set ++CONFIG_I2C=m ++CONFIG_I2C_BOARDINFO=y ++CONFIG_I2C_CHARDEV=m + + # +-# SPI support ++# I2C Algorithms + # +-# CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set +-# CONFIG_W1 is not set +-# CONFIG_HWMON is not set +-CONFIG_MISC_DEVICES=y +-# CONFIG_PHANTOM is not set +-# CONFIG_EEPROM_93CX6 is not set +-# CONFIG_SGI_IOC4 is not set +-# CONFIG_TIFM_CORE is not set ++# CONFIG_I2C_ALGOBIT is not set ++# CONFIG_I2C_ALGOPCF is not set ++# CONFIG_I2C_ALGOPCA is not set + + # +-# Multifunction device drivers ++# I2C Hardware Bus support + # +-# CONFIG_MFD_SM501 is not set ++# CONFIG_I2C_GPIO is not set ++CONFIG_I2C_PXA=m ++# CONFIG_I2C_PXA_SLAVE is not set ++# 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 + + # +-# LED devices ++# Miscellaneous I2C Chip support + # +-CONFIG_NEW_LEDS=y +-CONFIG_LEDS_CLASS=y ++# CONFIG_SENSORS_DS1337 is not set ++# CONFIG_SENSORS_DS1374 is not set ++# CONFIG_DS1682 is not set ++# CONFIG_SENSORS_EEPROM 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 + + # +-# LED drivers ++# SPI support + # +-CONFIG_LEDS_CM_X270=y ++# CONFIG_SPI is not set ++# CONFIG_SPI_MASTER is not set ++# CONFIG_W1 is not set ++# CONFIG_POWER_SUPPLY is not set ++CONFIG_HWMON=y ++# CONFIG_HWMON_VID is not set ++# CONFIG_SENSORS_AD7418 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_ADT7470 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_GL518SM is not set ++# CONFIG_SENSORS_GL520SM is not set ++# CONFIG_SENSORS_IT87 is not set ++# CONFIG_SENSORS_LM63 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_MAX1619 is not set ++# CONFIG_SENSORS_MAX6650 is not set ++# CONFIG_SENSORS_PC87360 is not set ++# CONFIG_SENSORS_PC87427 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_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_W83627HF is not set ++# CONFIG_SENSORS_W83627EHF is not set ++# CONFIG_HWMON_DEBUG_CHIP is not set ++# CONFIG_WATCHDOG is not set + + # +-# LED Triggers ++# Sonics Silicon Backplane ++# ++CONFIG_SSB_POSSIBLE=y ++# CONFIG_SSB is not set ++ ++# ++# Multifunction device drivers + # +-CONFIG_LEDS_TRIGGERS=y +-# CONFIG_LEDS_TRIGGER_TIMER is not set +-# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +-CONFIG_LEDS_TRIGGER_HEARTBEAT=y ++# CONFIG_MFD_SM501 is not set + + # + # Multimedia devices + # + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set +-CONFIG_DAB=y +-# CONFIG_USB_DABUSB is not set ++# CONFIG_DAB is not set + + # + # Graphics support + # +-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +- +-# +-# Display device support +-# +-# CONFIG_DISPLAY_SUPPORT is not set + # 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_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 +@@ -818,33 +791,17 @@ CONFIG_FB_DEFERRED_IO=y + # + # Frame buffer hardware drivers + # +-# CONFIG_FB_CIRRUS is not set +-# CONFIG_FB_PM2 is not set +-# CONFIG_FB_CYBER2000 is not set +-# CONFIG_FB_ASILIANT is not set +-# CONFIG_FB_IMSTT is not set + # CONFIG_FB_S1D13XXX is not set +-# CONFIG_FB_NVIDIA is not set +-# CONFIG_FB_RIVA is not set +-# CONFIG_FB_MATROX is not set +-# CONFIG_FB_RADEON is not set +-# CONFIG_FB_ATY128 is not set +-# CONFIG_FB_ATY is not set +-# CONFIG_FB_S3 is not set +-# CONFIG_FB_SAVAGE is not set +-# CONFIG_FB_SIS is not set +-# CONFIG_FB_NEOMAGIC is not set +-# CONFIG_FB_KYRO is not set +-# CONFIG_FB_3DFX is not set +-# CONFIG_FB_VOODOO1 is not set +-# CONFIG_FB_VT8623 is not set +-# CONFIG_FB_TRIDENT is not set +-# CONFIG_FB_ARK is not set +-# CONFIG_FB_PM3 is not set + CONFIG_FB_PXA=y +-# CONFIG_FB_PXA_PARAMETERS is not set +-CONFIG_FB_MBX=m ++CONFIG_FB_PXA_PARAMETERS=y ++# CONFIG_FB_MBX is not set + # CONFIG_FB_VIRTUAL is not set ++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set ++ ++# ++# Display device support ++# ++# CONFIG_DISPLAY_SUPPORT is not set + + # + # Console display driver support +@@ -852,14 +809,14 @@ CONFIG_FB_MBX=m + # CONFIG_VGA_CONSOLE is not set + CONFIG_DUMMY_CONSOLE=y + CONFIG_FRAMEBUFFER_CONSOLE=y +-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set ++CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y + # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set + # CONFIG_FONTS is not set + CONFIG_FONT_8x8=y + CONFIG_FONT_8x16=y + CONFIG_LOGO=y +-CONFIG_LOGO_LINUX_MONO=y +-CONFIG_LOGO_LINUX_VGA16=y ++# CONFIG_LOGO_LINUX_MONO is not set ++# CONFIG_LOGO_LINUX_VGA16 is not set + CONFIG_LOGO_LINUX_CLUT224=y + + # +@@ -874,10 +831,8 @@ CONFIG_SND=m + CONFIG_SND_TIMER=m + CONFIG_SND_PCM=m + # CONFIG_SND_SEQUENCER is not set +-CONFIG_SND_OSSEMUL=y +-CONFIG_SND_MIXER_OSS=m +-CONFIG_SND_PCM_OSS=m +-CONFIG_SND_PCM_OSS_PLUGINS=y ++# 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 +@@ -894,66 +849,6 @@ CONFIG_SND_AC97_CODEC=m + # CONFIG_SND_MPU401 is not set + + # +-# PCI devices +-# +-# CONFIG_SND_AD1889 is not set +-# CONFIG_SND_ALS300 is not set +-# CONFIG_SND_ALI5451 is not set +-# CONFIG_SND_ATIIXP is not set +-# CONFIG_SND_ATIIXP_MODEM is not set +-# CONFIG_SND_AU8810 is not set +-# CONFIG_SND_AU8820 is not set +-# CONFIG_SND_AU8830 is not set +-# CONFIG_SND_AZT3328 is not set +-# CONFIG_SND_BT87X is not set +-# CONFIG_SND_CA0106 is not set +-# CONFIG_SND_CMIPCI is not set +-# CONFIG_SND_CS4281 is not set +-# CONFIG_SND_CS46XX is not set +-# CONFIG_SND_DARLA20 is not set +-# CONFIG_SND_GINA20 is not set +-# CONFIG_SND_LAYLA20 is not set +-# CONFIG_SND_DARLA24 is not set +-# CONFIG_SND_GINA24 is not set +-# CONFIG_SND_LAYLA24 is not set +-# CONFIG_SND_MONA is not set +-# CONFIG_SND_MIA is not set +-# CONFIG_SND_ECHO3G is not set +-# CONFIG_SND_INDIGO is not set +-# CONFIG_SND_INDIGOIO is not set +-# CONFIG_SND_INDIGODJ is not set +-# CONFIG_SND_EMU10K1 is not set +-# CONFIG_SND_EMU10K1X is not set +-# CONFIG_SND_ENS1370 is not set +-# CONFIG_SND_ENS1371 is not set +-# CONFIG_SND_ES1938 is not set +-# CONFIG_SND_ES1968 is not set +-# CONFIG_SND_FM801 is not set +-# CONFIG_SND_HDA_INTEL is not set +-# CONFIG_SND_HDSP is not set +-# CONFIG_SND_HDSPM is not set +-# CONFIG_SND_ICE1712 is not set +-# CONFIG_SND_ICE1724 is not set +-# CONFIG_SND_INTEL8X0 is not set +-# CONFIG_SND_INTEL8X0M is not set +-# CONFIG_SND_KORG1212 is not set +-# CONFIG_SND_MAESTRO3 is not set +-# CONFIG_SND_MIXART is not set +-# CONFIG_SND_NM256 is not set +-# CONFIG_SND_PCXHR is not set +-# CONFIG_SND_RIPTIDE is not set +-# CONFIG_SND_RME32 is not set +-# CONFIG_SND_RME96 is not set +-# CONFIG_SND_RME9652 is not set +-# CONFIG_SND_SONICVIBES is not set +-# CONFIG_SND_TRIDENT is not set +-# CONFIG_SND_VIA82XX is not set +-# CONFIG_SND_VIA82XX_MODEM is not set +-# CONFIG_SND_VX222 is not set +-# CONFIG_SND_YMFPCI is not set +-# CONFIG_SND_AC97_POWER_SAVE is not set +- +-# + # ALSA ARM devices + # + CONFIG_SND_PXA2XX_PCM=m +@@ -971,6 +866,10 @@ CONFIG_SND_PXA2XX_AC97=m + # CONFIG_SND_SOC is not set + + # ++# SoC Audio support for SuperH ++# ++ ++# + # Open Sound System + # + # CONFIG_SOUND_PRIME is not set +@@ -978,6 +877,7 @@ CONFIG_AC97_BUS=m + CONFIG_HID_SUPPORT=y + CONFIG_HID=y + # CONFIG_HID_DEBUG is not set ++# CONFIG_HIDRAW is not set + + # + # USB Input Devices +@@ -989,7 +889,7 @@ CONFIG_USB_HID=y + CONFIG_USB_SUPPORT=y + CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y +-CONFIG_USB_ARCH_HAS_EHCI=y ++# CONFIG_USB_ARCH_HAS_EHCI is not set + CONFIG_USB=y + # CONFIG_USB_DEBUG is not set + +@@ -999,20 +899,16 @@ CONFIG_USB=y + 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_PERSIST is not set + # CONFIG_USB_OTG is not set + + # + # USB Host Controller Drivers + # +-# CONFIG_USB_EHCI_HCD is not set + # CONFIG_USB_ISP116X_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_UHCI_HCD is not set + # CONFIG_USB_SL811_HCD is not set + # CONFIG_USB_R8A66597_HCD is not set + +@@ -1033,12 +929,14 @@ 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_LIBUSUAL is not set + +@@ -1098,59 +996,27 @@ CONFIG_MMC=m + # + CONFIG_MMC_BLOCK=m + CONFIG_MMC_BLOCK_BOUNCE=y ++# CONFIG_SDIO_UART is not set + + # + # MMC/SD Host Controller Drivers + # + CONFIG_MMC_PXA=m +-# CONFIG_MMC_SDHCI is not set +-# CONFIG_MMC_TIFM_SD is not set +- +-# +-# Real Time Clock +-# +-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 +- +-# +-# Platform RTC drivers +-# +-# CONFIG_RTC_DRV_CMOS is not set +-# CONFIG_RTC_DRV_DS1553 is not set +-# CONFIG_RTC_DRV_DS1742 is not set +-# CONFIG_RTC_DRV_M48T86 is not set +-# CONFIG_RTC_DRV_M48T59 is not set +-CONFIG_RTC_DRV_V3020=y +- +-# +-# on-CPU RTC drivers +-# +-CONFIG_RTC_DRV_SA1100=y +- +-# +-# DMA Engine support +-# +-# CONFIG_DMA_ENGINE is not set ++CONFIG_NEW_LEDS=y ++CONFIG_LEDS_CLASS=y + + # +-# DMA Clients ++# LED drivers + # ++# CONFIG_LEDS_GPIO is not set ++CONFIG_LEDS_CM_X270=y + + # +-# DMA Devices ++# LED Triggers + # ++# CONFIG_LEDS_TRIGGERS is not set ++CONFIG_RTC_LIB=y ++# CONFIG_RTC_CLASS is not set + + # + # File systems +@@ -1164,7 +1030,6 @@ CONFIG_EXT3_FS_XATTR=y + # CONFIG_EXT3_FS_SECURITY is not set + # CONFIG_EXT4DEV_FS is not set + CONFIG_JBD=y +-# CONFIG_JBD_DEBUG is not set + CONFIG_FS_MBCACHE=y + # CONFIG_REISERFS_FS is not set + # CONFIG_JFS_FS is not set +@@ -1207,7 +1072,6 @@ CONFIG_SYSFS=y + CONFIG_TMPFS=y + # CONFIG_TMPFS_POSIX_ACL is not set + # CONFIG_HUGETLB_PAGE is not set +-CONFIG_RAMFS=y + # CONFIG_CONFIGFS_FS is not set + + # +@@ -1220,33 +1084,27 @@ CONFIG_RAMFS=y + # 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_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 is not set + # CONFIG_VXFS_FS is not set + # CONFIG_HPFS_FS is not set + # CONFIG_QNX4FS_FS is not set + # CONFIG_SYSV_FS is not set + # CONFIG_UFS_FS is not set +- +-# +-# Network File Systems +-# +-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_NETWORK_FILESYSTEMS=y ++# CONFIG_NFS_FS 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=y +-# CONFIG_SMB_NLS_DEFAULT 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 +@@ -1257,10 +1115,6 @@ CONFIG_SMB_FS=y + # + # CONFIG_PARTITION_ADVANCED is not set + CONFIG_MSDOS_PARTITION=y +- +-# +-# Native Language Support +-# + CONFIG_NLS=y + CONFIG_NLS_DEFAULT="iso8859-1" + CONFIG_NLS_CODEPAGE_437=y +@@ -1301,98 +1155,34 @@ CONFIG_NLS_ISO8859_1=y + # CONFIG_NLS_KOI8_R is not set + # CONFIG_NLS_KOI8_U is not set + # CONFIG_NLS_UTF8 is not set +- +-# +-# Distributed Lock Manager +-# + # CONFIG_DLM is not set +- +-# +-# Profiling support +-# ++CONFIG_INSTRUMENTATION=y + # CONFIG_PROFILING is not set ++# CONFIG_MARKERS is not set + + # + # Kernel hacking + # + # CONFIG_PRINTK_TIME is not set ++CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y +-CONFIG_MAGIC_SYSRQ=y ++# 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 is not set +-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_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 is not set +-CONFIG_DEBUG_INFO=y +-# CONFIG_DEBUG_VM is not set +-# CONFIG_DEBUG_LIST is not set + CONFIG_FRAME_POINTER=y +-CONFIG_FORCED_INLINING=y +-# CONFIG_RCU_TORTURE_TEST is not set +-# CONFIG_FAULT_INJECTION is not set +-CONFIG_DEBUG_USER=y +-CONFIG_DEBUG_ERRORS=y +-CONFIG_DEBUG_LL=y +-# CONFIG_DEBUG_ICEDCC is not set ++# CONFIG_SAMPLES is not set ++# CONFIG_DEBUG_USER is not set + + # + # Security options + # + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set +-CONFIG_CRYPTO=y +-CONFIG_CRYPTO_ALGAPI=m +-CONFIG_CRYPTO_BLKCIPHER=m +-CONFIG_CRYPTO_MANAGER=m +-# CONFIG_CRYPTO_HMAC is not set +-# CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set +-# CONFIG_CRYPTO_MD4 is not set +-# CONFIG_CRYPTO_MD5 is not set +-# CONFIG_CRYPTO_SHA1 is not set +-# CONFIG_CRYPTO_SHA256 is not set +-# CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set +-# CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=m +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set +-CONFIG_CRYPTO_AES=m +-# CONFIG_CRYPTO_CAST5 is not set +-# CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-CONFIG_CRYPTO_ARC4=m +-# CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-CONFIG_CRYPTO_HW=y ++# CONFIG_SECURITY_FILE_CAPABILITIES is not set ++# CONFIG_CRYPTO is not set + + # + # Library routines +@@ -1404,6 +1194,8 @@ CONFIG_BITREVERSE=y + 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_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y +-- +1.5.4.rc4 + diff --git a/packages/linux/linux-2.6.24/cm-x270/defconfig b/packages/linux/linux-2.6.24/cm-x270/defconfig new file mode 100644 index 0000000000..412c772211 --- /dev/null +++ b/packages/linux/linux-2.6.24/cm-x270/defconfig @@ -0,0 +1,1202 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24 +# Wed Feb 27 16:38:09 2008 +# +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_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_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="-cm-x270" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +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_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +# 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_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +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_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +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 + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" + +# +# 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 is not set +# 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_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_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 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 + +# +# Intel PXA2xx/PXA3xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +# CONFIG_PXA_SHARPSL is not set +# CONFIG_MACH_TRIZEPS4 is not set +# CONFIG_MACH_EM_X270 is not set +# CONFIG_MACH_ZYLONITE is not set +CONFIG_MACH_ARMCORE=y +CONFIG_PXA27x=y + +# +# Boot options +# + +# +# Power management +# + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +CONFIG_IWMMXT=y +CONFIG_XSCALE_PMU=y + +# +# Bus support +# +# CONFIG_PCI is not set +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_PREEMPT=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS1,38400 monitor=1 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +# CONFIG_FPE_NWFPE is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +# CONFIG_PM is not set +CONFIG_SUSPEND_UP_POSSIBLE=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +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_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_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=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# 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 +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE 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_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO 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_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_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_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_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=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS 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_CFI_INTELEXT is not set +CONFIG_MTD_CFI_AMDSTD=y +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_XIP is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0x0 +CONFIG_MTD_PHYSMAP_LEN=0x400000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_SHARP_SL is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# 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_H1900 is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_SHARPSL is not set +CONFIG_MTD_NAND_CM_X270=y +# 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 + +# +# 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=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +CONFIG_MISC_DEVICES=y +# CONFIG_EEPROM_93CX6 is not set +# 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 is not set +# 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=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE 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 is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_AX88796 is not set +# CONFIG_SMC91X is not set +CONFIG_DM9000=y +# CONFIG_SMC911X 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_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 + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_DM9601 is not set +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# 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 +# 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=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +# +# 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_PXA27x is not set +# CONFIG_KEYBOARD_GPIO is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +# CONFIG_MOUSE_PS2_ALPS is not set +# CONFIG_MOUSE_PS2_LOGIPS2PP is not set +# CONFIG_MOUSE_PS2_SYNAPTICS is not set +# CONFIG_MOUSE_PS2_LIFEBOOK is not set +# CONFIG_MOUSE_PS2_TRACKPOINT is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH 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_FUJITSU is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH 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=m +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_GPIO is not set +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set +# 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 + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_DS1682 is not set +# CONFIG_SENSORS_EEPROM 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 +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_AD7418 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_ADT7470 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_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 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_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 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_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_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set +# CONFIG_WATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# 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_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_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 +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_PXA=y +CONFIG_FB_PXA_PARAMETERS=y +# CONFIG_FB_MBX is not set +# CONFIG_FB_VIRTUAL 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_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +# 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 + +# +# Generic devices +# +CONFIG_SND_AC97_CODEC=m +# CONFIG_SND_DUMMY 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_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set +# 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_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +# CONFIG_HIDRAW is not set + +# +# 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_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 + +# +# 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 + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_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 + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +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_LIBUSUAL is not set + +# +# USB Imaging devices +# +# 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 + +# +# USB Miscellaneous drivers +# +# 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_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_PHIDGET 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 + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_PXA=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_GPIO is not set +CONFIG_LEDS_CM_X270=y + +# +# LED Triggers +# +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS 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=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +CONFIG_FS_MBCACHE=y +# 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_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +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 + +# +# 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_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_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 is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +# CONFIG_NFS_FS is not set +# CONFIG_NFSD 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 is not set +# 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 +CONFIG_INSTRUMENTATION=y +# CONFIG_PROFILING is not set +# CONFIG_MARKERS is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +# 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 is not set +CONFIG_FRAME_POINTER=y +# CONFIG_SAMPLES is not set +# CONFIG_DEBUG_USER is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 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_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff --git a/packages/linux/linux-2.6.24/simpad/.mtn2git_empty b/packages/linux/linux-2.6.24/simpad/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-2.6.24/simpad/.mtn2git_empty diff --git a/packages/linux/linux-2.6.24/simpad/defconfig b/packages/linux/linux-2.6.24/simpad/defconfig new file mode 100644 index 0000000000..fb88e108fb --- /dev/null +++ b/packages/linux/linux-2.6.24/simpad/defconfig @@ -0,0 +1,1730 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24 +# Mon Mar 3 22:58:54 2008 +# +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_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_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_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +CONFIG_AUDIT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +# 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_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_EXTRA_PASS=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_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +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=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" + +# +# 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 is not set +# 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_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_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +CONFIG_ARCH_SA1100=y +# CONFIG_ARCH_S3C2410 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 + +# +# SA11x0 Implementations +# +# CONFIG_SA1100_ASSABET is not set +# CONFIG_SA1100_CERF is not set +# CONFIG_SA1100_COLLIE is not set +# CONFIG_SA1100_H3100 is not set +# CONFIG_SA1100_H3600 is not set +# CONFIG_SA1100_H3800 is not set +# CONFIG_SA1100_BADGE4 is not set +# CONFIG_SA1100_JORNADA720 is not set +# CONFIG_SA1100_HACKKIT is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_SHANNON is not set +CONFIG_SA1100_SIMPAD=y +# CONFIG_SA1100_SSP is not set + +# +# Boot options +# + +# +# Power management +# + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_SA1100=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4=y +CONFIG_CPU_CACHE_V4WB=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WB=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +CONFIG_ISA=y +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +# CONFIG_I82365 is not set +# CONFIG_TCIC is not set +CONFIG_PCMCIA_SA1100=y + +# +# Kernel Features +# +# CONFIG_TICK_ONESHOT is not set +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +# CONFIG_AEABI is not set +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_NODES_SHIFT=2 +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_LEDS=y +# CONFIG_LEDS_TIMER is not set +# CONFIG_LEDS_CPU is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_CMDLINE=" debug " +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +# CONFIG_FPE_NWFPE is not set +CONFIG_FPE_FASTFPE=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m +# CONFIG_ARTHUR is not set + +# +# 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_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_MIGRATE=y +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +# CONFIG_DEFAULT_BIC is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_WESTWOOD is not set +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK_ENABLED=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m + +# +# Bridge: Netfilter Configuration +# +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_IP_DCCP_ACKVEC=y + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +CONFIG_IP_DCCP_CCID2=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=m +CONFIG_IP_DCCP_TFRC_LIB=m +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_CCID3_RTO=100 + +# +# DCCP Kernel Hacking +# +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +# CONFIG_ATM is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set +CONFIG_LLC=m +CONFIG_LLC2=m +# 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_NET_SCHED is not set +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_SCH_FIFO=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +# CONFIG_DONGLE is not set +# CONFIG_KINGSUN_DONGLE is not set +# CONFIG_KSDAZZLE_DONGLE is not set +# CONFIG_KS959_DONGLE is not set + +# +# Old SIR device drivers +# +CONFIG_IRPORT_SIR=m + +# +# Old Serial dongle support +# +# CONFIG_DONGLE_OLD is not set + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +CONFIG_SA1100_FIR=m +# CONFIG_MCS_FIR is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +# CONFIG_AF_RXRPC is not set +CONFIG_FIB_RULES=y + +# +# Wireless +# +CONFIG_CFG80211=m +CONFIG_NL80211=y +CONFIG_WIRELESS_EXT=y +CONFIG_MAC80211=m +CONFIG_MAC80211_RCSIMPLE=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_DEBUG is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +# 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_DEBUG_DRIVER=y +CONFIG_DEBUG_DEVRES=y +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=2 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_REDBOOT_PARTS_READONLY=y +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_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=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +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 is not set +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_RAM=y +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m +CONFIG_MTD_XIP=y + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +CONFIG_MTD_SA1100=y +# CONFIG_MTD_IMPA7 is not set +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +CONFIG_MTD_BLOCK2MTD=m + +# +# 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 is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set +# CONFIG_PARPORT is not set +# CONFIG_PNP is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MISC_DEVICES is not set +CONFIG_IDE=m +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=m + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_IDEDISK_MULTI_MODE=y +CONFIG_BLK_DEV_IDECS=m +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +CONFIG_IDE_TASK_IOCTL=y +# CONFIG_IDE_PROC_FS is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +# CONFIG_IDE_ARM is not set + +# +# Other IDE chipsets support +# + +# +# Note: most of these also require special kernel boot parameters +# +# CONFIG_BLK_DEV_4DRIVES is not set +# CONFIG_BLK_DEV_ALI14XX is not set +# CONFIG_BLK_DEV_DTC2278 is not set +# CONFIG_BLK_DEV_HT6560B is not set +# CONFIG_BLK_DEV_QD65XX is not set +# CONFIG_BLK_DEV_UMC8672 is not set +# CONFIG_BLK_DEV_IDEDMA is not set +CONFIG_IDE_ARCH_OBSOLETE_INIT=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_DMA is not set +# CONFIG_SCSI_NETLINK is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +# CONFIG_VETH is not set +# CONFIG_ARCNET is not set +# CONFIG_NET_ETHERNET is not set +CONFIG_MII=m +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +CONFIG_WLAN_PRE80211=y +# CONFIG_STRIP is not set +# CONFIG_ARLAN is not set +# CONFIG_WAVELAN is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_LIBERTAS=m +# CONFIG_LIBERTAS_USB is not set +CONFIG_LIBERTAS_CS=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_USB_ZD1201 is not set +# CONFIG_RTL8187 is not set +CONFIG_P54_COMMON=m +# CONFIG_P54_USB is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCMCIA=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43_DMA=y +CONFIG_B43_PIO=y +CONFIG_B43_DMA_AND_PIO_MODE=y +# CONFIG_B43_DMA_MODE is not set +# CONFIG_B43_PIO_MODE is not set +CONFIG_B43LEGACY=m +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +# CONFIG_ZD1211RW is not set +CONFIG_RT2X00=m +# CONFIG_RT2500USB is not set +# CONFIG_RT73USB is not set + +# +# 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=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SHAPER=m +CONFIG_NETCONSOLE=m +# CONFIG_NETCONSOLE_DYNAMIC is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +# 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=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=800 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_VSXXXAA=m +# CONFIG_MOUSE_GPIO is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_ATI_REMOTE is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +CONFIG_INPUT_UINPUT=y + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_DIGIEPCA is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_MOXA_SMARTIO_NEW is not set +# CONFIG_N_HDLC is not set +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_RIO is not set +# CONFIG_STALDRV is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_IPMI_HANDLER=y +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_DTLK 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_RAW_DRIVER=m +CONFIG_MAX_RAW_DEVS=256 +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ELEKTOR is not set +# CONFIG_I2C_GPIO is not set +# 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_ISA 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_SENSORS_EEPROM 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 +# +# 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 is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_SA1100_WATCHDOG=y + +# +# ISA-based Watchdog Cards +# +# CONFIG_PCWATCHDOG is not set +# CONFIG_MIXCOMWD is not set +# CONFIG_WDT is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=m +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia Capabilities Port drivers +# +CONFIG_MCP=y +CONFIG_MCP_SA11X0=y +CONFIG_MCP_UCB1200=y +CONFIG_MCP_UCB1200_TS=y +CONFIG_MCP_UCB1200_SWITCHES=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# 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_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_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 +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frambuffer hardware drivers +# +# CONFIG_FB_SA1100 is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_MQ200=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_CORGI is not set +CONFIG_BACKLIGHT_SIMPAD=y +CONFIG_LCD_SIMPAD=y + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_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=y +CONFIG_FONT_ACORN_8x8=y +CONFIG_FONT_MINI_4x6=y +CONFIG_FONT_SUN8x16=y +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +# CONFIG_LOGO is not set + +# +# Sound +# +# CONFIG_SOUND is not set +# CONFIG_HID_SUPPORT is not set +CONFIG_HID=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +CONFIG_USB_DEVICE_CLASS=y +# 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 + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_CS is not set +# CONFIG_USB_R8A66597_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# 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_AUERSWALD 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_PHIDGET 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 + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set +# CONFIG_MMC is not set +# CONFIG_NEW_LEDS is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_DEBUG=y + +# +# 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 + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS 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_M48T86 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_SA1100=y + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_XATTR is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_MINIX_FS=m +CONFIG_ROMFS_FS=m +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# 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_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +# 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=y +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# 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_CRAMFS=m +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_BIND34=y +CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="utf8" +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_WEAK_PW_HASH is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_EXPERIMENTAL=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +# CONFIG_INSTRUMENTATION is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +CONFIG_HEADERS_CHECK=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_SHIRQ=y +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +CONFIG_DEBUG_PREEMPT=y +# 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_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_SAMPLES is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ABLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_LRW=m +# CONFIG_CRYPTO_XTS is not set +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +# CONFIG_CRYPTO_SEED is not set +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_TEST=m +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_HW is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff --git a/packages/linux/linux-hackndev-2.6_git.bb b/packages/linux/linux-hackndev-2.6_git.bb index 2d2a37f716..7fdf94f3ac 100644 --- a/packages/linux/linux-hackndev-2.6_git.bb +++ b/packages/linux/linux-hackndev-2.6_git.bb @@ -2,11 +2,11 @@ DESCRIPTION = "Hack&Dev's Linux kernel for Palm devices." HOMEPAGE = "http://www.hackndev.com/" SECTION = "kernel" LICENSE = "GPL" -PR = "r13" +PR = "r14" COMPATIBLE_MACHINE = "(palmld|palmtc|palmtt3|palmtt5|palmtx|palmz31|palmz72|palmt650)" -SRC_URI = "git://git.hackndev.com/git/linux-hnd;protocol=git \ +SRC_URI = "git://git.hackndev.com/linux-hnd;protocol=git \ file://defconfig" SRC_URI_append_palmtx += "http://www.busybox.net/downloads/busybox-1.1.0.tar.bz2 \ diff --git a/packages/linux/linux-handhelds-2.6.inc b/packages/linux/linux-handhelds-2.6.inc index c6bb6bae69..3bd9f78ea2 100644 --- a/packages/linux/linux-handhelds-2.6.inc +++ b/packages/linux/linux-handhelds-2.6.inc @@ -67,12 +67,17 @@ do_compile_prepend() { do_deploy() { install -d ${DEPLOY_DIR_IMAGE} install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_FILENAME} - + tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE}.tgz -C ${D} lib + #reflash.ctl is required to reflash using bootldr # format: # name file md5sumfile destination echo "${MACHINE}-kernel-${DATETIME} ${KERNEL_FILENAME} - kernel" >> ${DEPLOY_DIR_IMAGE}/reflash.ctl gen_haret_startup + + if [ -n "${KERNEL_INITRAMFS_PATH}" -a "${ANGSTROM_MODE}" == "glibc" ]; then + cp ${DEPLOY_DIR_IMAGE}/${KERNEL_FILENAME} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-$(basename ${KERNEL_INITRAMFS_PATH} | awk -F. '{print $1}')-${PV}-${PR}-${MACHINE}.bin + fi } do_deploy[dirs] = "${S}" diff --git a/packages/linux/linux-handhelds-2.6_2.6.21-hh20.bb b/packages/linux/linux-handhelds-2.6_2.6.21-hh20.bb index 8e3ab4d06d..066c17faed 100644 --- a/packages/linux/linux-handhelds-2.6_2.6.21-hh20.bb +++ b/packages/linux/linux-handhelds-2.6_2.6.21-hh20.bb @@ -1,7 +1,7 @@ SECTION = "kernel" DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices." LICENSE = "GPL" -PR = "r13" +PR = "r14" DEFAULT_PREFERENCE = "-1" diff --git a/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch b/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch new file mode 100644 index 0000000000..d8b4d2d017 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch @@ -0,0 +1,44 @@ +Index: linux-2.6.24.3/arch/powerpc/kernel/idle.c +=================================================================== +--- linux-2.6.24.3.orig/arch/powerpc/kernel/idle.c 2008-02-29 14:49:40.000000000 +0100 ++++ linux-2.6.24.3/arch/powerpc/kernel/idle.c 2008-02-29 16:29:23.000000000 +0100 +@@ -19,6 +19,7 @@ + * 2 of the License, or (at your option) any later version. + */ + ++#include <linux/leds.h> + #include <linux/sched.h> + #include <linux/kernel.h> + #include <linux/smp.h> +@@ -51,6 +52,12 @@ + __setup("powersave=off", powersave_off); + + /* ++ * CPU activity indicator. ++ */ ++void (*leds_idle)(int is_idle); ++EXPORT_SYMBOL(leds_idle); ++ ++/* + * The body of the idle task. + */ + void cpu_idle(void) +@@ -64,7 +71,8 @@ + while (!need_resched() && !need_resched_delayed() && + !cpu_should_die()) { + ppc64_runlatch_off(); +- ++ if (leds_idle) ++ leds_idle(1); + if (ppc_md.power_save) { + clear_thread_flag(TIF_POLLING_NRFLAG); + /* +@@ -99,6 +107,8 @@ + if (cpu_should_die()) + cpu_die(); + __preempt_enable_no_resched(); ++ if (leds_idle) ++ leds_idle(0); + schedule(); + preempt_disable(); + } diff --git a/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch b/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch new file mode 100644 index 0000000000..2495b9b3f7 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch @@ -0,0 +1,554 @@ +Index: linux-2.6.24.3/drivers/leds/Kconfig +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Kconfig 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Kconfig 2008-02-29 13:56:11.000000000 +0100 +@@ -130,6 +130,15 @@ + This allows LEDs to be controlled by a programmable timer + via sysfs. If unsure, say Y. + ++config LEDS_TRIGGER_CPU_ACTIVITY ++ tristate "LED CPU Activity Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be set to show cpu activity via sysfs. ++ The LED will blink when the cpu is active and stay steady ++ (on or off according to the trigger selected) when idle. ++ Platform support is needed for this to work. If unsure, say Y. ++ + config LEDS_TRIGGER_IDE_DISK + bool "LED IDE Disk Trigger" + depends on LEDS_TRIGGERS && BLK_DEV_IDEDISK +Index: linux-2.6.24.3/drivers/leds/ledtrig-cpu.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.24.3/drivers/leds/ledtrig-cpu.c 2008-02-29 13:56:11.000000000 +0100 +@@ -0,0 +1,502 @@ ++/* ++ * LEDs CPU activity trigger ++ * ++ * Author: John Bowler <jbowler@acm.org> ++ * ++ * Copyright (c) 2006 John Bowler ++ * ++ * Permission is hereby granted, free of charge, to any ++ * person obtaining a copy of this software and associated ++ * documentation files (the "Software"), to deal in the ++ * Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, ++ * publish, distribute, sublicense, and/or sell copies of ++ * the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the ++ * following conditions: ++ * ++ * The above copyright notice and this permission notice ++ * shall be included in all copies or substantial portions ++ * of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ++ * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ++ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A ++ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT ++ * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ++ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ * ++ */ ++ ++#include <linux/ctype.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/spinlock.h> ++#include <linux/timer.h> ++#include <linux/device.h> ++ ++#include <linux/leds.h> ++#include "leds.h" ++ ++//#include <linux/list.h> ++//#include <linux/sysdev.h> ++ ++ ++/* ++ * To simplify this the LED state is given for each case of ++ * CPU state - idle or active. The LED can be: ++ * ++ * off ++ * flash - slow for idle, fast (flicker) for active ++ * on ++ * ++ * This gives two useless states - off/off and on/on ++ */ ++typedef enum cpu_trigger_led_state { ++ cpu_led_off, ++ cpu_led_flash, ++ cpu_led_on, ++ cpu_led_invalid ++} cpu_trigger_led_state; ++ ++static const char *const cpu_trigger_names[] = { ++ "off", ++ "flash", ++ "on", ++ "invalid" ++}; ++ ++/* Forward declaration - this is called back when an LED property ++ * is changed. ++ */ ++static void leds_cpu_trigger_state_change(void); ++ ++/* ++ * These constants define the actual mark/space of the flashing ++ * in jiffies. msecs_to_jiffies rounds up and is compile time ++ * evaluable for constant arguments. Writing the ?: stuff below ++ * this way ensures the compiler doesn't think it needs to ++ * compile in the math of msecs_to_jiffies. ++ * ++ * These values have been determined by experiment to work well ++ * for the ready/status LED on a LinkSys NSLU2 (light piped) and ++ * for the user LED on a Loft (Gateway Avila variant) board where ++ * the LED was directly visible. Light Output Varies Everywhere. ++ */ ++#define LEDS_CPU_ACTIVE_MARK msecs_to_jiffies(40) ++#define LEDS_CPU_IDLE_MARK msecs_to_jiffies(800) ++#define LEDS_CPU_ACTIVE_SPACE msecs_to_jiffies(60) ++#define LEDS_CPU_IDLE_SPACE msecs_to_jiffies(800) ++ ++ ++/* ++ * Individual LEDs ------------------------------------------------------------ ++ */ ++struct cpu_trigger_data { ++ cpu_trigger_led_state active; /* Behaviour when the CPU is active. */ ++ cpu_trigger_led_state idle; /* Behaviour when the CPU is idle. */ ++}; ++ ++/* ++ * LED state change - called when the state of a single LED might ++ * have changed. Returns true if the LED is blinking. The argument ++ * is the blink state - the brightness of the blinking LED. ++ */ ++static int leds_cpu_trigger_led_state_change(struct led_classdev *led, ++ int is_active, enum led_brightness brightness) ++{ ++ int is_blinking = 0; ++ ++ struct cpu_trigger_data *data = led->trigger_data; ++ ++ /* Find the new brightness for the LED, if the LED is ++ * set to flash then the brightness passed in is the ++ * required value. ++ */ ++ if (likely(data != 0)) ++ switch (is_active ? data->active : data->idle) { ++ case cpu_led_off: brightness = LED_OFF; break; ++ case cpu_led_flash: is_blinking = 1; break; ++ case cpu_led_on: brightness = LED_FULL; break; ++ } ++ else ++ brightness = is_active ? LED_FULL : LED_OFF; ++ ++ led_set_brightness(led, brightness); ++ ++ return is_blinking; ++} ++ ++/* ++ * sysfs properties, the property is output at an list of the ++ * values with the current setting enclosed in [] ++ */ ++static ssize_t leds_cpu_trigger_show_prop(struct device *dev, ++ struct device_attribute *attr, char *buf, size_t where) ++{ ++ struct led_classdev *led = dev_get_drvdata(dev); ++ cpu_trigger_led_state item = cpu_led_invalid, i; ++ char *next; ++ ++ if (likely(led->trigger_data != 0)) ++ item = *(const cpu_trigger_led_state*)( ++ led->trigger_data + where); ++ ++ for (i=0, next=buf; i<cpu_led_invalid; ++i) { ++ const char *name = cpu_trigger_names[i]; ++ size_t len = strlen(name); ++ ++ if (i == item) ++ *next++ = '['; ++ memcpy(next, name, len); ++ next += len; ++ if (i == item) ++ *next++ = ']'; ++ *next++ = ' '; ++ } ++ ++ next[-1] = '\n'; ++ *next++ = 0; ++ ++ return next - buf; ++} ++ ++static ssize_t leds_cpu_trigger_show_active(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return leds_cpu_trigger_show_prop(dev, attr, buf, ++ offsetof(struct cpu_trigger_data, active)); ++} ++ ++static ssize_t leds_cpu_trigger_show_idle(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return leds_cpu_trigger_show_prop(dev, attr, buf, ++ offsetof(struct cpu_trigger_data, idle)); ++} ++ ++/* ++ * Any matching leading substring selects a property - so "onoffonoff" ++ * sets the property to off. ++ */ ++static ssize_t leds_cpu_trigger_store_prop(struct device *dev, ++ struct device_attribute *attr, const char *buf, ++ size_t size, size_t where) ++{ ++ size_t rc = 0; ++ cpu_trigger_led_state value = 0/*sic*/; ++ struct led_classdev *led; ++ ++ /* ignore space characters before the value. */ ++ while (rc < size && isspace(buf[rc])) ++ ++rc; ++ if (rc >= size) ++ return rc; ++ ++ /* look for a simple match against the trigger name, case ++ * sensitive. ++ */ ++ do { ++ const char *name = cpu_trigger_names[value]; ++ size_t len = strlen(name); ++ if (len <= size && memcmp(buf+rc, name, len) == 0) { ++ rc = len; ++ break; ++ } ++ if (++value >= cpu_led_invalid) ++ return -EINVAL; ++ } while (1); ++ ++ led = dev_get_drvdata(dev); ++ if (likely(led->trigger_data != 0)) ++ *(cpu_trigger_led_state*)( ++ led->trigger_data + where) = value; ++ ++ return rc; ++} ++ ++static ssize_t leds_cpu_trigger_store_active(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ ssize_t rc = leds_cpu_trigger_store_prop(dev, attr, buf, size, ++ offsetof(struct cpu_trigger_data, active)); ++ /* ++ * At least one CPU must be active (otherwise who is doing this?) ++ * Call down into the global state below to cause an update ++ * to happen now. ++ */ ++ leds_cpu_trigger_state_change(); ++ return rc; ++} ++ ++static ssize_t leds_cpu_trigger_store_idle(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ return leds_cpu_trigger_store_prop(dev, attr, buf, size, ++ offsetof(struct cpu_trigger_data, idle)); ++} ++ ++static DEVICE_ATTR(active, 0644, leds_cpu_trigger_show_active, ++ leds_cpu_trigger_store_active); ++ ++static DEVICE_ATTR(idle, 0644, leds_cpu_trigger_show_idle, ++ leds_cpu_trigger_store_idle); ++ ++/* ++ * Activate and deactivate are called on individual LEDs when the ++ * LED trigger property is changed. ++ */ ++static void leds_cpu_trigger_activate(struct led_classdev *led) ++{ ++ /* ++ * The initial setting of the trigger is simple CPU activity ++ * with the LED off for idle and on for active. Consequently ++ * there is no need to mess with the global state initially, ++ * we know the CPU is active at this moment! ++ */ ++ int rc; ++ struct cpu_trigger_data *data = kmalloc(sizeof *data, GFP_KERNEL); ++ if (unlikely(data == 0)) ++ return; ++ ++ data->active = cpu_led_on; ++ data->idle = cpu_led_off; ++ led->trigger_data = data; ++ ++ rc = device_create_file(led->dev, &dev_attr_active); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led->dev, &dev_attr_idle); ++ if (rc) ++ goto err_out_active; ++ ++ led_set_brightness(led, LED_FULL); ++ return; ++ ++err_out_active: ++ device_remove_file(led->dev, &dev_attr_active); ++err_out: ++ led->trigger_data = NULL; ++ kfree(data); ++} ++ ++static void leds_cpu_trigger_deactivate(struct led_classdev *led) ++{ ++ struct cpu_trigger_data *data = led->trigger_data; ++ if (likely(data != 0)) { ++ led_set_brightness(led, LED_OFF); ++ ++ device_remove_file(led->dev, &dev_attr_idle); ++ device_remove_file(led->dev, &dev_attr_active); ++ ++ led->trigger_data = 0; ++ kfree(data); ++ } ++} ++ ++ ++/* ++ * Global state -------------------------------------------------------------- ++ * ++ * This is global because the CPU state is global and we only need one timer to ++ * do this stuff. ++ */ ++typedef struct leds_cpu_trigger_data { ++ struct led_trigger trigger; /* the lock in here protects everything */ ++ struct timer_list timer; ++ unsigned long last_active_time; /* record of last jiffies */ ++ unsigned long last_idle_time; /* record of last jiffies */ ++ int count_active; /* number of active CPUs */ ++} leds_cpu_trigger_data; ++ ++/* ++ * Mark state - uses the current time (jiffies) to work out ++ * whether this is a mark or space. ++ */ ++static int leds_cpu_trigger_mark(struct leds_cpu_trigger_data *data, ++ unsigned long now) { ++ if (data->count_active > 0) { ++ unsigned long elapsed = now - data->last_active_time; ++ elapsed %= LEDS_CPU_ACTIVE_SPACE + LEDS_CPU_ACTIVE_MARK; ++ data->last_active_time = now - elapsed; ++ return elapsed > LEDS_CPU_ACTIVE_SPACE; ++ } else { ++ unsigned long elapsed = now - data->last_idle_time; ++ elapsed %= LEDS_CPU_IDLE_SPACE + LEDS_CPU_IDLE_MARK; ++ data->last_idle_time = now - elapsed; ++ return elapsed > LEDS_CPU_IDLE_SPACE; ++ } ++} ++ ++ ++/* ++ * State change - given information about the nature of the ++ * (possible) state change call up to each LED to adjust its ++ * state. Returns true if any LED is blinking. The lock ++ * must be held (a read lock is adequate). ++ */ ++static int leds_cpu_trigger_scan_leds(struct leds_cpu_trigger_data *data, ++ unsigned long now) ++{ ++ int blinking = 0; ++ const int active = data->count_active > 0; ++ const enum led_brightness brightness = ++ leds_cpu_trigger_mark(data, now) ? LED_FULL : LED_OFF; ++ struct list_head *entry; ++ ++ list_for_each(entry, &data->trigger.led_cdevs) { ++ struct led_classdev *led = ++ list_entry(entry, struct led_classdev, trig_list); ++ ++ blinking |= leds_cpu_trigger_led_state_change(led, ++ active, brightness); ++ } ++ ++ return blinking; ++} ++ ++/* ++ * Set the timer correctly according to the current state, the lock ++ * must be held for write. ++ */ ++static void leds_cpu_trigger_set_timer(struct leds_cpu_trigger_data *state, ++ unsigned long now) ++{ ++ unsigned long next; ++ if (state->count_active > 0) { ++ next = state->last_active_time; ++ if (now - next > LEDS_CPU_ACTIVE_SPACE) ++ next += LEDS_CPU_ACTIVE_MARK; ++ next += LEDS_CPU_ACTIVE_SPACE; ++ } else { ++ next = state->last_idle_time; ++ if (now - next > LEDS_CPU_IDLE_SPACE) ++ next += LEDS_CPU_IDLE_MARK; ++ next += LEDS_CPU_IDLE_SPACE; ++ } ++ mod_timer(&state->timer, next); ++} ++ ++/* ++ * The timer callback if the LED is currently flashing, the callback ++ * calls the state change function and, if that returns true, meaning ++ * that at least one LED is still blinking, the timer is restarted ++ * with the correct timeout. ++ */ ++static void leds_cpu_trigger_timer_callback(unsigned long data) ++{ ++ struct leds_cpu_trigger_data *state = ++ (struct leds_cpu_trigger_data *)data; ++ ++ write_lock(&state->trigger.leddev_list_lock); ++ { ++ unsigned long now = jiffies; ++ ++ /* If at least one LED is set to flash; set the timer ++ * again (this won't reset the timer set within the ++ * idle loop). ++ */ ++ if (leds_cpu_trigger_scan_leds(state, now)) ++ leds_cpu_trigger_set_timer(state, now); ++ } ++ write_unlock(&state->trigger.leddev_list_lock); ++} ++ ++ ++/* ++ * There is one global control structure, one timer and one set ++ * of state for active CPUs shared across all the LEDs. Individual ++ * LEDs say how this state to be handled. It is currently *not* ++ * possible to show per-cpu activity on individual LEDs, the code ++ * maintains a count of active CPUs and the state is only 'idle' ++ * if all CPUs are idle. ++ */ ++static struct leds_cpu_trigger_data leds_cpu_trigger = { ++ .trigger = { ++ .name = "cpu", ++ .activate = leds_cpu_trigger_activate, ++ .deactivate = leds_cpu_trigger_deactivate, ++ } , ++ .timer = TIMER_INITIALIZER(leds_cpu_trigger_timer_callback, 0, ++ (unsigned long)&leds_cpu_trigger), ++ .last_active_time = 0, ++ .last_idle_time = 0, ++ .count_active = 0, ++}; ++ ++/* ++ * State change - callback from an individual LED on a property change which ++ * might require a redisplay. ++ */ ++static void leds_cpu_trigger_state_change() { ++ write_lock(&leds_cpu_trigger.trigger.leddev_list_lock); ++ { ++ unsigned long now = jiffies; ++ ++ if (leds_cpu_trigger_scan_leds(&leds_cpu_trigger, now) && ++ !timer_pending(&leds_cpu_trigger.timer)) ++ leds_cpu_trigger_set_timer(&leds_cpu_trigger, now); ++ } ++ write_unlock(&leds_cpu_trigger.trigger.leddev_list_lock); ++} ++ ++/* ++ * Called from every CPU at the start and end of the idle loop. ++ * The active count is initially 0, even though CPUs are running, ++ * so the code below must check for the resultant underflow. ++ * ++ * If the idle behaviour is 'flash' then when the timer times out ++ * it will take the CPU out of idle, set the active state (which ++ * may also be flash), drop back into idle and reset the timer to ++ * the idle timeout... ++ */ ++static void leds_cpu_trigger_idle(int is_idle) ++{ ++ write_lock(&leds_cpu_trigger.trigger.leddev_list_lock); ++ if ((is_idle && leds_cpu_trigger.count_active > 0 && ++ --leds_cpu_trigger.count_active == 0) || ++ (!is_idle && leds_cpu_trigger.count_active < num_online_cpus() && ++ ++leds_cpu_trigger.count_active == 1)) { ++ unsigned long now = jiffies; ++ ++ /* State change - the system just became idle or active, ++ * call the del_timer first in an attempt to minimise ++ * getting a timer interrupt which will take us unnecessarily ++ * out of idle (this doesn't matter). ++ */ ++ del_timer(&leds_cpu_trigger.timer); ++ if (leds_cpu_trigger_scan_leds(&leds_cpu_trigger, now)) ++ leds_cpu_trigger_set_timer(&leds_cpu_trigger, now); ++ } ++ write_unlock(&leds_cpu_trigger.trigger.leddev_list_lock); ++} ++ ++/* ++ * Module init and exit - register the trigger, then store ++ * the idle callback in the arch-specific global. For this ++ * module to link (into the kernel) or load (into a running ++ * kernel) the architecture must define the leds_idle global. ++ */ ++static int __init leds_cpu_trigger_init(void) ++{ ++ int rc = led_trigger_register(&leds_cpu_trigger.trigger); ++ leds_idle = leds_cpu_trigger_idle; ++ return rc; ++} ++module_init(leds_cpu_trigger_init); ++ ++static void __exit leds_cpu_trigger_exit(void) ++{ ++ leds_idle = 0; ++ del_timer_sync(&leds_cpu_trigger.timer); ++ led_trigger_unregister(&leds_cpu_trigger.trigger); ++} ++module_exit(leds_cpu_trigger_exit); ++ ++MODULE_AUTHOR("John Bowler <jbowler@acm.org>"); ++MODULE_DESCRIPTION("CPU activity LED trigger"); ++MODULE_LICENSE("Dual MIT/GPL"); +Index: linux-2.6.24.3/drivers/leds/Makefile +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Makefile 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Makefile 2008-02-29 13:56:11.000000000 +0100 +@@ -24,3 +24,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o + obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o + obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o ++obj-$(CONFIG_LEDS_TRIGGER_CPU_ACTIVITY) += ledtrig-cpu.o +Index: linux-2.6.24.3/include/linux/leds.h +=================================================================== +--- linux-2.6.24.3.orig/include/linux/leds.h 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/include/linux/leds.h 2008-02-29 13:56:11.000000000 +0100 +@@ -124,4 +124,13 @@ + }; + + ++/* ++ * CPU activity indication. ++ */ ++/* Idle callback - call with is_idle==1 at the start of the idle loop ++ * and with is_idle==0 at the end. This symbol must be defined by ++ * the arch core to be able to use LEDS_TRIGGER_CPU_ACTIVITY ++ */ ++extern void (*leds_idle)(int is_idle); ++ + #endif /* __LINUX_LEDS_H_INCLUDED */ diff --git a/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig b/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig index 11b37d3ec1..a49497ccb2 100644 --- a/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig +++ b/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.24.3-rt3 -# Fri Feb 29 00:48:47 2008 +# Fri Feb 29 13:59:05 2008 # # CONFIG_PPC64 is not set @@ -1356,6 +1356,7 @@ CONFIG_LEDS_MPC8313E_RDB=m # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_CPU_ACTIVITY=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set diff --git a/packages/linux/linux-rt_2.6.24.bb b/packages/linux/linux-rt_2.6.24.bb index 61fd734632..8081f44e93 100644 --- a/packages/linux/linux-rt_2.6.24.bb +++ b/packages/linux/linux-rt_2.6.24.bb @@ -13,6 +13,8 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.24.3.tar.bz2 \ http://kamikaze.waninkoko.info/patches/2.6.24/kamikaze1/broken-out/squashfs-lzma-2.6.24.patch;patch=1 \ file://sysctl_missing_include.patch;patch=1 \ file://powerpc-clockres.patch;patch=1 \ + file://leds-cpu-activity.patch;patch=1 \ + file://leds-cpu-activity-powerpc.patch;patch=1 \ file://defconfig" S = "${WORKDIR}/linux-2.6.24.3" diff --git a/packages/linux/linux/simpad/collie-kexec.patch b/packages/linux/linux/simpad/collie-kexec.patch new file mode 100644 index 0000000000..2c8fa9352b --- /dev/null +++ b/packages/linux/linux/simpad/collie-kexec.patch @@ -0,0 +1,13 @@ +--- linux-2.6.20.4.orig/include/asm-arm/kexec.h 2007-04-10 19:16:39.000000000 +0200 ++++ linux-2.6.20.4/include/asm-arm/kexec.h 2007-04-03 05:01:09.000000000 +0200 +@@ -8,8 +8,8 @@ + /* Maximum address we can reach in physical address mode */ + #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) + /* Maximum address we can use for the control code buffer */ +-#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE +- ++//#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE ++#define KEXEC_CONTROL_MEMORY_LIMIT (-1UL) + #define KEXEC_CONTROL_CODE_SIZE 4096 + + #define KEXEC_ARCH KEXEC_ARCH_ARM diff --git a/packages/linux/linux/simpad/export_atags-r2.patch b/packages/linux/linux/simpad/export_atags-r2.patch new file mode 100644 index 0000000000..e6fd85cf20 --- /dev/null +++ b/packages/linux/linux/simpad/export_atags-r2.patch @@ -0,0 +1,320 @@ +[PATCH] Export atags to userspace and allow kexec to use customised atags + +Currently, the atags used by kexec are fixed to the ones originally used +to boot the kernel. This is less than ideal as changing the commandline, +initrd and other options would be a useful feature. + +This patch exports the atags used for the current kernel to userspace +through an "atags" file in procfs. The presence of the file is +controlled by its own Kconfig option and cleans up several ifdef blocks +into a separate file. The tags for the new kernel are assumed to be at +a fixed location before the kernel image itself. The location of the +tags used to boot the original kernel is unimportant and no longer +saved. + +Based on a patch from Uli Luckas <u.luckas@road.de> + +Signed-off-by: Richard Purdie <rpurdie@rpsys.net> + +--- + arch/arm/Kconfig | 7 +++ + arch/arm/kernel/Makefile | 1 + arch/arm/kernel/atags.c | 86 ++++++++++++++++++++++++++++++++++++++ + arch/arm/kernel/atags.h | 5 ++ + arch/arm/kernel/machine_kexec.c | 2 + arch/arm/kernel/relocate_kernel.S | 30 +------------ + arch/arm/kernel/setup.c | 32 -------------- + include/asm-arm/kexec.h | 3 + + 8 files changed, 110 insertions(+), 56 deletions(-) + +Index: linux-2.6.23/arch/arm/kernel/atags.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.23/arch/arm/kernel/atags.c 2008-01-20 15:56:02.000000000 +0000 +@@ -0,0 +1,86 @@ ++#include <linux/slab.h> ++#include <linux/kexec.h> ++#include <linux/proc_fs.h> ++#include <asm/setup.h> ++#include <asm/types.h> ++#include <asm/page.h> ++ ++struct buffer { ++ size_t size; ++ char *data; ++}; ++static struct buffer tags_buffer; ++ ++static int ++read_buffer(char* page, char** start, off_t off, int count, ++ int* eof, void* data) ++{ ++ struct buffer *buffer = (struct buffer *)data; ++ ++ if (off >= buffer->size) { ++ *eof = 1; ++ return 0; ++ } ++ ++ count = min((int) (buffer->size - off), count); ++ ++ memcpy(page, &buffer->data[off], count); ++ ++ return count; ++} ++ ++ ++static int ++create_proc_entries(void) ++{ ++ struct proc_dir_entry* tags_entry; ++ ++ tags_entry = create_proc_read_entry("atags", 0400, &proc_root, read_buffer, &tags_buffer); ++ if (!tags_entry) ++ return -ENOMEM; ++ ++ return 0; ++} ++ ++ ++static char __initdata atags_copy_buf[KEXEC_BOOT_PARAMS_SIZE]; ++static char __initdata *atags_copy; ++ ++void __init save_atags(const struct tag *tags) ++{ ++ atags_copy = atags_copy_buf; ++ memcpy(atags_copy, tags, KEXEC_BOOT_PARAMS_SIZE); ++} ++ ++ ++static int __init init_atags_procfs(void) ++{ ++ struct tag *tag; ++ int error; ++ ++ if (!atags_copy) { ++ printk(KERN_WARNING "Exporting ATAGs: No saved tags found\n"); ++ return -EIO; ++ } ++ ++ for (tag = (struct tag *) atags_copy; tag->hdr.size; tag = tag_next(tag)) ++ ; ++ ++ tags_buffer.size = ((char *) tag - atags_copy) + sizeof(tag->hdr); ++ tags_buffer.data = kmalloc(tags_buffer.size, GFP_KERNEL); ++ if (tags_buffer.data == NULL) ++ return -ENOMEM; ++ memcpy(tags_buffer.data, atags_copy, tags_buffer.size); ++ ++ error = create_proc_entries(); ++ if (error) { ++ printk(KERN_ERR "Exporting ATAGs: not enough memory\n"); ++ kfree(tags_buffer.data); ++ tags_buffer.size = 0; ++ tags_buffer.data = NULL; ++ } ++ ++ return error; ++} ++ ++arch_initcall(init_atags_procfs); +Index: linux-2.6.23/arch/arm/kernel/atags.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.23/arch/arm/kernel/atags.h 2008-01-20 15:56:02.000000000 +0000 +@@ -0,0 +1,5 @@ ++#ifdef CONFIG_ATAGS_PROC ++extern void save_atags(struct tag *tags); ++#else ++static inline void save_atags(struct tag *tags) { } ++#endif +Index: linux-2.6.23/arch/arm/kernel/Makefile +=================================================================== +--- linux-2.6.23.orig/arch/arm/kernel/Makefile 2007-10-09 21:31:38.000000000 +0100 ++++ linux-2.6.23/arch/arm/kernel/Makefile 2008-01-20 15:56:02.000000000 +0000 +@@ -19,6 +19,7 @@ obj-$(CONFIG_ISA_DMA) += dma-isa.o + obj-$(CONFIG_PCI) += bios32.o isa.o + obj-$(CONFIG_SMP) += smp.o + obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o ++obj-$(CONFIG_ATAGS_PROC) += atags.o + obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o + + obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o +Index: linux-2.6.23/arch/arm/kernel/setup.c +=================================================================== +--- linux-2.6.23.orig/arch/arm/kernel/setup.c 2008-01-20 15:55:43.000000000 +0000 ++++ linux-2.6.23/arch/arm/kernel/setup.c 2008-01-20 15:56:02.000000000 +0000 +@@ -24,7 +24,6 @@ + #include <linux/interrupt.h> + #include <linux/smp.h> + #include <linux/fs.h> +-#include <linux/kexec.h> + + #include <asm/cpu.h> + #include <asm/elf.h> +@@ -39,6 +38,7 @@ + #include <asm/mach/time.h> + + #include "compat.h" ++#include "atags.h" + + #ifndef MEM_SIZE + #define MEM_SIZE (16*1024*1024) +@@ -784,23 +784,6 @@ static int __init customize_machine(void + } + arch_initcall(customize_machine); + +-#ifdef CONFIG_KEXEC +- +-/* Physical addr of where the boot params should be for this machine */ +-extern unsigned long kexec_boot_params_address; +- +-/* Physical addr of the buffer into which the boot params are copied */ +-extern unsigned long kexec_boot_params_copy; +- +-/* Pointer to the boot params buffer, for manipulation and display */ +-unsigned long kexec_boot_params; +-EXPORT_SYMBOL(kexec_boot_params); +- +-/* The buffer itself - make sure it is sized correctly */ +-static unsigned long kexec_boot_params_buf[(KEXEC_BOOT_PARAMS_SIZE + 3) / 4]; +- +-#endif +- + void __init setup_arch(char **cmdline_p) + { + struct tag *tags = (struct tag *)&init_tags; +@@ -819,18 +802,6 @@ void __init setup_arch(char **cmdline_p) + else if (mdesc->boot_params) + tags = phys_to_virt(mdesc->boot_params); + +-#ifdef CONFIG_KEXEC +- kexec_boot_params_copy = virt_to_phys(kexec_boot_params_buf); +- kexec_boot_params = (unsigned long)kexec_boot_params_buf; +- if (__atags_pointer) { +- kexec_boot_params_address = __atags_pointer; +- memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE); +- } else if (mdesc->boot_params) { +- kexec_boot_params_address = mdesc->boot_params; +- memcpy((void *)kexec_boot_params, tags, KEXEC_BOOT_PARAMS_SIZE); +- } +-#endif +- + /* + * If we have the old style parameters, convert them to + * a tag list. +@@ -846,6 +817,7 @@ void __init setup_arch(char **cmdline_p) + if (tags->hdr.tag == ATAG_CORE) { + if (meminfo.nr_banks != 0) + squash_mem_tags(tags); ++ save_atags(tags); + parse_tags(tags); + } + +Index: linux-2.6.23/arch/arm/Kconfig +=================================================================== +--- linux-2.6.23.orig/arch/arm/Kconfig 2008-01-20 15:55:43.000000000 +0000 ++++ linux-2.6.23/arch/arm/Kconfig 2008-01-20 15:58:52.000000000 +0000 +@@ -865,6 +865,13 @@ config KEXEC + initially work for you. It may help to enable device hotplugging + support. + ++config ATAGS_PROC ++ bool "Export atags in procfs" ++ default n ++ help ++ Should the atags used to boot the kernel be exported in an "atags" ++ file in procfs. Useful with kexec. ++ + endmenu + + if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX ) +Index: linux-2.6.23/arch/arm/kernel/machine_kexec.c +=================================================================== +--- linux-2.6.23.orig/arch/arm/kernel/machine_kexec.c 2007-10-09 21:31:38.000000000 +0100 ++++ linux-2.6.23/arch/arm/kernel/machine_kexec.c 2008-01-20 15:56:03.000000000 +0000 +@@ -21,6 +21,7 @@ extern void setup_mm_for_reboot(char mod + extern unsigned long kexec_start_address; + extern unsigned long kexec_indirection_page; + extern unsigned long kexec_mach_type; ++extern unsigned long kexec_boot_atags; + + /* + * Provide a dummy crash_notes definition while crash dump arrives to arm. +@@ -62,6 +63,7 @@ void machine_kexec(struct kimage *image) + kexec_start_address = image->start; + kexec_indirection_page = page_list; + kexec_mach_type = machine_arch_type; ++ kexec_boot_atags = image->start - KEXEC_ARM_ZIMAGE_OFFSET + KEXEC_ARM_ATAGS_OFFSET; + + /* copy our kernel relocation code to the control code page */ + memcpy(reboot_code_buffer, +Index: linux-2.6.23/arch/arm/kernel/relocate_kernel.S +=================================================================== +--- linux-2.6.23.orig/arch/arm/kernel/relocate_kernel.S 2008-01-20 15:55:43.000000000 +0000 ++++ linux-2.6.23/arch/arm/kernel/relocate_kernel.S 2008-01-20 15:56:03.000000000 +0000 +@@ -7,23 +7,6 @@ + .globl relocate_new_kernel + relocate_new_kernel: + +- /* Move boot params back to where the kernel expects them */ +- +- ldr r0,kexec_boot_params_address +- teq r0,#0 +- beq 8f +- +- ldr r1,kexec_boot_params_copy +- mov r6,#KEXEC_BOOT_PARAMS_SIZE/4 +-7: +- ldr r5,[r1],#4 +- str r5,[r0],#4 +- subs r6,r6,#1 +- bne 7b +- +-8: +- /* Boot params moved, now go on with the kernel */ +- + ldr r0,kexec_indirection_page + ldr r1,kexec_start_address + +@@ -67,7 +50,7 @@ relocate_new_kernel: + mov lr,r1 + mov r0,#0 + ldr r1,kexec_mach_type +- ldr r2,kexec_boot_params_address ++ ldr r2,kexec_boot_atags + mov pc,lr + + .globl kexec_start_address +@@ -82,14 +65,9 @@ kexec_indirection_page: + kexec_mach_type: + .long 0x0 + +- /* phy addr where new kernel will expect to find boot params */ +- .globl kexec_boot_params_address +-kexec_boot_params_address: +- .long 0x0 +- +- /* phy addr where old kernel put a copy of orig boot params */ +- .globl kexec_boot_params_copy +-kexec_boot_params_copy: ++ /* phy addr of the atags for the new kernel */ ++ .globl kexec_boot_atags ++kexec_boot_atags: + .long 0x0 + + relocate_new_kernel_end: +Index: linux-2.6.23/include/asm-arm/kexec.h +=================================================================== +--- linux-2.6.23.orig/include/asm-arm/kexec.h 2008-01-20 15:55:57.000000000 +0000 ++++ linux-2.6.23/include/asm-arm/kexec.h 2008-01-20 15:56:03.000000000 +0000 +@@ -16,6 +16,9 @@ + + #define KEXEC_BOOT_PARAMS_SIZE 1536 + ++#define KEXEC_ARM_ATAGS_OFFSET 0x1000 ++#define KEXEC_ARM_ZIMAGE_OFFSET 0x8000 ++ + #ifndef __ASSEMBLY__ + + struct kimage; diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-GPIO-MMC-mod.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-GPIO-MMC-mod.patch new file mode 100644 index 0000000000..70a1555158 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-GPIO-MMC-mod.patch @@ -0,0 +1,1699 @@ +diff -Nur linux-2.6.24.vanilla/drivers/mmc/card/Makefile linux-2.6.24/drivers/mmc/card/Makefile +--- linux-2.6.24.vanilla/drivers/mmc/card/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mmc/card/Makefile 2008-02-23 03:10:45.000000000 +0100 +@@ -6,8 +6,11 @@ + EXTRA_CFLAGS += -DDEBUG + endif + ++ifeq ($(CONFIG_SA1100_SIMPAD),y) ++# nothing to do ++else + obj-$(CONFIG_MMC_BLOCK) += mmc_block.o + mmc_block-objs := block.o queue.o + + obj-$(CONFIG_SDIO_UART) += sdio_uart.o +- ++endif +diff -Nur linux-2.6.24.vanilla/drivers/mmc/core/Makefile linux-2.6.24/drivers/mmc/core/Makefile +--- linux-2.6.24.vanilla/drivers/mmc/core/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mmc/core/Makefile 2008-02-23 03:10:45.000000000 +0100 +@@ -6,9 +6,13 @@ + EXTRA_CFLAGS += -DDEBUG + endif + ++ifeq ($(CONFIG_SA1100_SIMPAD),y) ++# nothing to do ++else + obj-$(CONFIG_MMC) += mmc_core.o + mmc_core-y := core.o sysfs.o bus.o host.o \ + mmc.o mmc_ops.o sd.o sd_ops.o \ + sdio.o sdio_ops.o sdio_bus.o \ + sdio_cis.o sdio_io.o sdio_irq.o ++endif + +diff -Nur linux-2.6.24.vanilla/drivers/mmc/host/Kconfig linux-2.6.24/drivers/mmc/host/Kconfig +--- linux-2.6.24.vanilla/drivers/mmc/host/Kconfig 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mmc/host/Kconfig 2008-02-23 03:10:45.000000000 +0100 +@@ -4,6 +4,7 @@ + + comment "MMC/SD Host Controller Drivers" + ++ + config MMC_ARMMMCI + tristate "ARM AMBA Multimedia Card Interface support" + depends on ARM_AMBA +@@ -130,3 +131,9 @@ + + If unsure, or if your system has no SPI master driver, say N. + ++config MMC_SPI_BLOCK ++ tristate "MMC/SD over GPIO (Software SPI) for SIMpad (EXPERIMENTAL)" ++ depends on SA1100_SIMPAD && EXPERIMENTAL ++ help ++ Say Y here to enable MMC block device over GPIO ++ if you have done the MMC-Mod. For Module say M. +diff -Nur linux-2.6.24.vanilla/drivers/mmc/host/Makefile linux-2.6.24/drivers/mmc/host/Makefile +--- linux-2.6.24.vanilla/drivers/mmc/host/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mmc/host/Makefile 2008-02-23 03:10:45.000000000 +0100 +@@ -6,6 +6,9 @@ + EXTRA_CFLAGS += -DDEBUG + endif + ++ifeq ($(CONFIG_SA1100_SIMPAD),y) ++obj-$(CONFIG_MMC_SPI_BLOCK) += mmc_spi_block.o ++else + obj-$(CONFIG_MMC_ARMMMCI) += mmci.o + obj-$(CONFIG_MMC_PXA) += pxamci.o + obj-$(CONFIG_MMC_IMX) += imxmmc.o +@@ -17,4 +20,4 @@ + obj-$(CONFIG_MMC_AT91) += at91_mci.o + obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o + obj-$(CONFIG_MMC_SPI) += mmc_spi.o +- ++endif +diff -Nur linux-2.6.24.vanilla/drivers/mmc/host/mmc_spi_block.c linux-2.6.24/drivers/mmc/host/mmc_spi_block.c +--- linux-2.6.24.vanilla/drivers/mmc/host/mmc_spi_block.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/mmc/host/mmc_spi_block.c 2008-02-23 03:10:45.000000000 +0100 +@@ -0,0 +1,1622 @@ ++/* ++ * Copyright (c) Cl�ent Ballabriga, 2005 - GPL ++ * Copyright (c) Guylhem Aznar, 2005 - GPL ++ * ++ * Please check http://externe.net/zaurus/simpad-bluetooth reference design first. ++ * ++ * Based on Madsuk/Rohde work on a MMC driver for the WRT54G. ++ * ++ * This is an ugly hack of a driver. I am surprised if it ever works! ++ * So please use a real driver or contribute one to the 2.4/2.6 mmc framework ++ * ++ * mrdata: ported to 2.6 ++ */ ++ ++#include <linux/module.h> ++#include <linux/init.h> ++ ++#include <linux/sched.h> ++#include <linux/kernel.h> ++#include <linux/fs.h> ++#include <linux/errno.h> ++#include <linux/hdreg.h> ++#include <linux/kdev_t.h> ++#include <linux/blkdev.h> ++#include <linux/spinlock.h> ++#include <linux/time.h> ++#include <linux/delay.h> ++#include <linux/timer.h> ++ ++#include <linux/platform_device.h> ++ ++#include <asm/hardware.h> ++#include <asm/arch/simpad.h> ++#include <asm/arch/gpio.h> ++ ++static int major = 121; ++ ++#define DEVICE_NAME "mmc_spi" ++ ++static int hd_sizes[1<<6]; ++static int hd_blocksizes[1<<6]; ++static int hd_hardsectsizes[1<<6]; ++static int hd_maxsect[1<<6]; ++static struct hd_struct hd[1<<6]; ++ ++static struct gendisk *mmc_disk; ++ ++static struct platform_device *mmc_dev; /* the one and only instance */ ++ ++static spinlock_t mmc_spi_lock; ++ ++/* ++ * ******************************************************************* ++ * ++ * This is the only configurable part. ++ * ++ * ******************************************************************* ++ * ++ */ ++ ++// #define DEBUG 1 ++// #define DEBUG_HD 1 ++// #define CHECK_MEDIA_CHANGE // for developement ONLY, not working yet ++ ++/* Let that include where it is or compilation fails on INIT_REQUEST/CURRENT */ ++ ++ ++/* ++ * If you are using different GPIOs in your hardware hack, you must ++ * first make sure they are unused for other functions and then ++ * configure them here. ++ * ++ * On the simpad I use spare pins from the UART1 (internal serial port -> DECT 20-polig): ++ * ++ * Funktion PIN ## Original direction GPIO ## SPI function New direction SD/MMC ++ * - DCD PIN 08 (in) GPIO 23 DO - new name: DI -> MISO (in) PIN 7 Data Out ++ * - DTR PIN 11 (out) GPIO 07 CS (out) PIN 1 Chip Select ++ * - RI PIN 14 (in) GPIO 19 CLK (out) PIN 5 Clock ++ * - DSR PIN 16 (in) GPIO 06 DI - new name: DO -> MOSI (out) PIN 2 Data In ++ * ++ * ++ * SPI: MISO = Master In / Slave OUT MOSI = Master Out / Slave In ++ * ++ * Don't worry about in/out original function - the GPIOs will be ++ * reprogrammed. ++ */ ++ ++#define GPIO_SD_DI 23 ++#define GPIO_SD_CS 7 ++#define GPIO_SD_CLK 19 ++#define GPIO_SD_DO 6 ++ ++// #define FAST_GPIO_SD_DI GPIO_GPIO23 ++// #define FAST_GPIO_SD_CS GPIO_GPIO7 ++// #define FAST_GPIO_SD_CLK GPIO_GPIO19 ++// #define FAST_GPIO_SD_DO GPIO_GPIO6 ++ ++#define FAST_GPIO_SD_DI GPIO_UART1_DCD ++#define FAST_GPIO_SD_CS GPIO_UART1_DTR ++#define FAST_GPIO_SD_CLK GPIO_UART1_RI ++#define FAST_GPIO_SD_DO GPIO_UART1_DSR ++ ++/* ++ * ******************************************************************* ++ * ++ * Do not change anything below ! ++ * ++ * ******************************************************************* ++ * ++ */ ++ ++/* GPIO states */ ++#define LOW 0 ++#define HIGH 1 ++ ++#define INPUT 0 ++#define OUTPUT 1 ++ ++#define PRESENT 1 ++#define ABSENT 0 ++ ++typedef unsigned int uint32; ++typedef unsigned long u32_t; ++typedef unsigned short u16_t; ++typedef unsigned char u8_t; ++ ++// static struct timer_list mmc_timer; ++ ++// static struct timeval s_zeit, e_zeit; ++ ++/* start with no card */ ++static int mmc_media_detect = 0; ++// static int mmc_media_changed = 1; ++ ++ ++///////////////////// ++// prototypes ++static int mmc_open(struct inode *inode, struct file *filp); ++static int mmc_release(struct inode *inode, struct file *filp); ++static int mmc_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); ++static void mmc_spi_request(struct request_queue *q); ++ ++ ++/* ++ * ******************************************************************* ++ * ++ * Begin GPIO hardware access functions. ++ * ++ * ******************************************************************* ++ * ++ */ ++ ++#define gpio_read(a) ((GPLR & a) ? 1 : 0) ++#define gpio_write_high(a) GPSR = a ++#define gpio_write_low(a) GPCR = a ++ ++/* set MMC_Chip_Select to HIGH (MMC/SD-Card inactiv) */ ++#define MMC_Disable() gpio_write_high( FAST_GPIO_SD_CS) ++ ++/* set MMC_Chip_Select to LOW (MMC/SD-Card activ) */ ++#define MMC_Enable() gpio_write_low( FAST_GPIO_SD_CS) ++ ++/* ++ * ******************************************************************* ++ * ++ * Begin SPI hardware access functions. ++ * ++ * ******************************************************************* ++ * ++ */ ++static int mmc_spi_media_detect(void) ++{ ++// FIXME: add card detection/test by SPI ++ ++ return 1; ++} ++ ++static int mmc_spi_hardware_init(void) ++{ ++ printk("\nmmc: GPIO init\n"); ++ ++ /* cut existing functions */ ++ gpio_set_alternative_function(GPIO_SD_CLK, 0); ++ gpio_set_alternative_function(GPIO_SD_DI, 0); ++ gpio_set_alternative_function(GPIO_SD_DO, 0); ++ gpio_set_alternative_function(GPIO_SD_CS, 0); ++ ++ /* remap directions and set state of spi pins */ ++ gpio_direction_output(GPIO_SD_CLK, 0); ++ gpio_direction_input(GPIO_SD_DI); ++ gpio_direction_output(GPIO_SD_DO, 0); ++ gpio_direction_output(GPIO_SD_CS, 0); ++ ++ printk("mmc: initialising MMC\n"); ++ ++ /* Start */ ++ MMC_Disable(); ++ gpio_write_low( FAST_GPIO_SD_CLK); ++ gpio_write_high( FAST_GPIO_SD_DO); ++ return 0; ++} ++ ++/* return what has been read, write the parameter */ ++/* Clockrate round about 1,2 MHz */ ++ ++static unsigned char mmc_spi_readwrite(unsigned char data_out) ++{ ++ unsigned char i; ++ unsigned char result = 0; ++ ++ for(i = 0x80 ; i != 0 ; i >>= 1) ++ { ++ if (data_out & i) ++ { ++ gpio_write_high( FAST_GPIO_SD_DO); ++ } ++ else ++ { ++ gpio_write_low( FAST_GPIO_SD_DO); ++ } ++ ++ gpio_write_high( FAST_GPIO_SD_CLK); ++ ++ if (gpio_read( FAST_GPIO_SD_DI) == 1) ++ { ++ result |= i; ++ } ++ ++ gpio_write_low( FAST_GPIO_SD_CLK); ++ ++ } ++ ++ gpio_write_high( FAST_GPIO_SD_DO); ++ ++ return (result); ++} ++ ++/* return what has been read, write the parameter */ ++/* Clockrate round 200 kHz */ ++ ++static unsigned char mmc_spi_readwrite_slow(unsigned char data_out) ++{ ++ unsigned char i; ++ unsigned char result = 0; ++ ++ for(i = 0x80 ; i != 0 ; i >>= 1) ++ { ++ if (data_out & i) ++ { ++ gpio_write_high( FAST_GPIO_SD_DO); ++ } ++ else ++ { ++ gpio_write_low( FAST_GPIO_SD_DO); ++ } ++ ++ udelay(10); ++ ++ gpio_write_high( FAST_GPIO_SD_CLK); ++ ++ udelay(10); ++ ++ if (gpio_read( FAST_GPIO_SD_DI) == 1) ++ { ++ result |= i; ++ } ++ ++ udelay(10); ++ ++ gpio_write_low( FAST_GPIO_SD_CLK); ++ ++ udelay(10); ++ ++ } ++ ++ gpio_write_high( FAST_GPIO_SD_DO); ++ ++ udelay(10); ++ ++ // printk("Send Byte = 0x%2X Receive Byte = 0x%2X \n", data_out, result); ++ ++ return (result); ++} ++ ++/* return what has been read */ ++ ++static unsigned char mmc_spi_read_only(void) ++{ ++ unsigned char i; ++ unsigned char result = 0; ++ ++ for(i = 0x80 ; i != 0 ; i >>= 1) ++ { ++ ++ gpio_write_high( FAST_GPIO_SD_CLK); ++ ++ if (gpio_read( FAST_GPIO_SD_DI) == 1) ++ { ++ result |= i; ++ } ++ ++ gpio_write_low( FAST_GPIO_SD_CLK); ++ ++ } ++ ++ return (result); ++} ++ ++/* write the parameter */ ++/* Clockrate round about 3,6 MHz */ ++ ++static unsigned char mmc_spi_write_only(unsigned char data_out) ++{ ++ unsigned char i; ++ unsigned char result = 0; ++ ++ for(i = 0x80 ; i != 0 ; i >>= 1) ++ { ++ ++ if (data_out & i) ++ { ++ gpio_write_high( FAST_GPIO_SD_DO); ++ } ++ else ++ { ++ gpio_write_low( FAST_GPIO_SD_DO); ++ } ++ ++ gpio_write_high( FAST_GPIO_SD_CLK); ++ ++ gpio_write_low( FAST_GPIO_SD_CLK); ++ ++ } ++ ++ gpio_write_high( FAST_GPIO_SD_DO); ++ ++ return (result); ++} ++ ++ ++/** ++ * this function was contributed by: rcichielo from openwrt forums ++ * ++ * Comments added by Marc DENTY on 2007-03-20 ++ * ++ * Sequence to read a card's "CID" bytes (name, serial number etc) ++ * ++ * Send: 4ah,00h,00h,00h,00h,00h - CMD10, no args, null CRC ++ * Read: xx - NCR Time ++ * Read: xx - Command Response (Should be 00h) ++ * Read: until FEh is received - Wait for Data token ++ * Read: yy * 16 - Get 16 bytes from CID ++ * Read: zz - Read CRC lo byte ++ * Read: zz - Read CRC hi byte ++ * ++ * Useful locations in the returned data packet: ++ * ++ * 03h-08h Manufacturers's name in ascii ++ * 0ah-0dh Card's 32 bit serial number ++ */ ++/** ++ * Comments added by Cyril CATTIAUX on 2007-03-21 ++ * ++ * CID format specification (from Sandisk SD Product Manual v1.9) ++ * ++ * cid[00 ] Manufacturer ID (unsigned byte) ++ * cid[01-02] OEM/Application ID (ASCII) ++ * cid[03-07] Product Name (ASCII) ++ * cid[08 ] Product Revistion (BCD coded number) ++ * cid[09-12] Serial Number (32-bit unsigned int) ++ * cid[13-14] Reserved(bit 12->15) - Manufacture Date(bit 0->11) ++ * cid[15 ] CRC7(bit 1->7) - Not used, allways 1 (bit 0) ++*/ ++static int mmc_read_cid(unsigned char *cid) ++{ ++ unsigned char result = 0; ++ int i; ++ ++ MMC_Enable(); ++ ++ /* wait */ ++ for (i = 0; i < 4; i++) ++ { ++ result=mmc_spi_readwrite(0xff); ++ } ++ ++ /* issue CID (card identification data) read request */ ++ mmc_spi_readwrite(0xff); ++ mmc_spi_readwrite(0x40 | 10); ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0x00); ++ mmc_spi_readwrite(0x95); ++ ++ for (i = 0; i < 8; i++) ++ { ++ result=mmc_spi_readwrite(0xff); ++ ++ if(result == 0x00) ++ break; ++ } ++ ++ if (result != 0x00) { ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return(1); ++ } ++ ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0xfe) break; ++ } ++ ++ if (result != 0xfe) { ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return(2); ++ } ++ ++ for (i = 0; i < 16; i++) { ++ result = mmc_spi_readwrite(0xff); ++ cid[i] = result; ++ } ++ ++ mmc_spi_readwrite(0xff); ++ mmc_spi_readwrite(0xff); ++ ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ ++ return 0; ++} ++ ++ ++/** ++ * Comments added by Cyril CATTIAUX on 2007-03-21 ++ * ++ * CID format specification (from Sandisk SD Product Manual v1.9) ++ * ++ * cid[00 ] Manufacturer ID (unsigned byte) ++ * cid[01-02] OEM/Application ID (ASCII) ++ * cid[03-07] Product Name (ASCII) ++ * cid[08 ] Product Revision (BCD coded 2 digit number) ++ * cid[09-12] Serial Number (32-bit unsigned int) ++ * cid[13-14] Manufacture Date(bit 0->11) (BCD coded 3 digit number YYM offset from 2000) - Reserved(bit 12->15) ++ * cid[15 ] Not used, allways 1 (bit 0) - CRC7(bit 1->7) ++*/ ++static void mmc_show_cid_info(void) ++{ ++ int i, result; ++ unsigned short tmps; ++ unsigned char cid[16]; ++ ++ char manufacturer_id; ++ char oem_id[3]; ++ char product_name[6]; ++ unsigned char product_revision_h, product_revision_l; ++ unsigned int product_sn; ++ unsigned short product_date_y; ++ unsigned char product_date_m; ++ ++ result = mmc_read_cid(cid); ++ ++ if (result == 0) ++ { ++ printk("mmc_init: MMC/SD Card ID: "); ++ for (i=0; i<16; i++) { ++ printk("%02X ", cid[i]); ++ } ++ manufacturer_id=cid[0]; ++ strncpy(oem_id, &cid[1], 2); ++ oem_id[2]='\0'; ++ strncpy(product_name, &cid[3], 5); ++ product_name[5]='\0'; ++ product_revision_h=(cid[8] >> 4) & 0xf; ++ product_revision_l=cid[8] & 0xf; ++ product_sn=(cid[9]<<24) + (cid[10]<<16) + (cid[11]<<8) + cid[12]; ++ tmps=((cid[13]<<8) + cid[14]) & 0x0fff; ++ product_date_y=2000 + (((tmps >> 8) & 0xf) * 10) + ((tmps >> 4) & 0xf); ++ product_date_m=tmps & 0xf; ++ ++ printk("\nManufacturer ID : %02X\n", manufacturer_id); ++ printk("OEM/Application ID: %s\n", oem_id); ++ printk("Product name : %s\n", product_name); ++ printk("Product revision : %d.%d\n", product_revision_h, product_revision_l); ++ printk("Product SN : %08X\n", product_sn); ++ printk("Product Date : %d-%d\n", product_date_y, product_date_m); ++ ++ } else { ++ printk("mmc_init: impossible to get card indentification info for reason code: %02x", result); ++ } ++} ++ ++ ++/* ++static int mmc_spi_hw_test(void) ++{ ++ unsigned char result, k; ++ ++ unsigned int i, j, t; ++ ++ printk("mmc_spi_hw_test -> \n\n"); ++ k = 0x55; ++ for ( i = 0 ; i < 5; i++) { ++ ++ printk("\n0x%2X - ", k); ++ for ( j = 0 ; j < 8; j++ ) { ++ do_gettimeofday( &s_zeit ); ++ result = mmc_spi_readwrite_slow(k); ++ do_gettimeofday( &e_zeit ); ++ ++ if ( result != k ) { ++ printk("!>ERROR<! Transfer = 0x%2X Receive = 0x%2X Trail = %d \n", k, result, j); ++ // i = 255; j = 1000; ++ } ++ ++ t = (e_zeit.tv_sec-s_zeit.tv_sec)*1000000+(e_zeit.tv_usec-s_zeit.tv_usec); ++ printk("Durchlauf: %i Versuch: %i von 8 -> Laufzeit: 0x%X s\n", i , j, t); ++ udelay(200); ++ } ++ printk("ready "); ++ ++ // k++; ++ } ++ printk("ready "); ++ printk("\n\n"); ++ return (0); ++} ++*/ ++ ++/* ++static int mmc_spi_speed_test(void) ++{ ++ unsigned int i, j, k, l, t; ++ ++ MMC_Disable(); ++ ++ for (k = 1; k < 6; k++) ++ { ++ l = 10000 * k; ++ for (j = 0; j < 5; j++) ++ { ++ do_gettimeofday( &s_zeit ); ++ for (i = 0; i < l; i++) ++ mmc_spi_readwrite(0xff); ++ do_gettimeofday( &e_zeit ); ++ t = (e_zeit.tv_sec-s_zeit.tv_sec)*1000000+(e_zeit.tv_usec-s_zeit.tv_usec); ++ printk("mmc_spi_readwrite: Laufzeit %u x : 0x%X \n", l, t); ++ } ++ } ++ ++ for (k = 1; k < 1; k++) ++ { ++ l = 10000 * k; ++ for (j = 0; j < 1; j++) ++ { ++ do_gettimeofday( &s_zeit ); ++ for (i = 0; i < l; i++) ++ mmc_spi_readwrite_slow(0xff); ++ do_gettimeofday( &e_zeit ); ++ t = (e_zeit.tv_sec-s_zeit.tv_sec)*1000000+(e_zeit.tv_usec-s_zeit.tv_usec); ++ printk("mmc_spi_readwrite_slow: Laufzeit %u x : 0x%X \n", l, t); ++ } ++ } ++ ++ for (k = 1; k < 6; k++) ++ { ++ l = 10000 * k; ++ for (j = 0; j < 5; j++) ++ { ++ do_gettimeofday( &s_zeit ); ++ for (i = 0; i < l; i++) ++ mmc_spi_read_only(); ++ do_gettimeofday( &e_zeit ); ++ t = (e_zeit.tv_sec-s_zeit.tv_sec)*1000000+(e_zeit.tv_usec-s_zeit.tv_usec); ++ printk("mmc_spi_read_only: Laufzeit %u x : 0x%X \n", l, t); ++ } ++ } ++ ++ for (k = 1; k < 6; k++) ++ { ++ l = 10000 * k; ++ for (j = 0; j < 5; j++) ++ { ++ do_gettimeofday( &s_zeit ); ++ for (i = 0; i < l; i++) ++ mmc_spi_write_only(0xff); ++ do_gettimeofday( &e_zeit ); ++ t = (e_zeit.tv_sec-s_zeit.tv_sec)*1000000+(e_zeit.tv_usec-s_zeit.tv_usec); ++ printk("mmc_spi_write_only: Laufzeit %u x : 0x%X \n", l, t); ++ } ++ } ++ ++ return (1); ++ ++} ++*/ ++ ++ ++static int mmc_spi_card_init(void) ++{ ++ unsigned char result = 0; ++ short i, j; ++ ++// unsigned long flags; ++ ++ // save_flags(flags); ++ // cli(); ++ ++/* ++ printk("GPIO_SD_CS dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_CS), gpio_getalt(&gp, GPIO_SD_CS)); ++ printk("GPIO_SD_DI dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_DI), gpio_getalt(&gp, GPIO_SD_DI)); ++ printk("GPIO_SD_DO dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_DO), gpio_getalt(&gp, GPIO_SD_DO)); ++ printk("GPIO_SD_CS dir: %u alt: %u\n", gpio_getdir(&gp, GPIO_SD_CLK), gpio_getalt(&gp, GPIO_SD_CLK)); ++*/ ++ ++ // printk("\nmmc: mmc_spi_hw_test() *START*\n"); ++ ++ // mmc_spi_hw_test(); ++ ++ printk("\nmmc: card init 1/2 (CMD0)\n"); ++ ++ for (j = 0; j < 10; j++) ++ { ++ MMC_Disable(); ++ ++ for (i = 0; i < 10; i++) ++ mmc_spi_readwrite_slow(0xff); ++ ++ MMC_Enable(); ++ ++ mmc_spi_readwrite_slow(0xff); ++ ++ mmc_spi_readwrite_slow(0x40); ++ ++ for (i = 0; i < 4; i++) { ++ ++ mmc_spi_readwrite_slow(0x00); ++ ++ } ++ ++ mmc_spi_readwrite_slow(0x95); ++ ++ for (i = 0; i < 8; i++) { ++ ++ result = mmc_spi_readwrite_slow(0xff); ++ ++#ifdef DEBUG_HD ++ if (result != 0xff) { ++ if (result > 0x1F && result < 0x80) ++ printk("mmc: resp. (CMD0) Versuch(%d) BYTE: %d result = 0x%X Zeichen = %c\n", j, i, result, result); ++ else ++ printk("mmc: resp. (CMD0) Versuch(%d) BYTE: %d result = 0x%X\n", j, i, result); ++ } ++#endif ++ if (result == 0x01) ++ break; ++ } ++ ++ if (result == 0x01) ++ break; ++ ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ ++ mdelay(60); ++ } ++ ++ if (result != 0x01) { ++ ++ printk("mmc: card init 1/2 error: %d (CMD0) failed\n", result); ++ printk(" -> Hint: MMC/SD-Card realy (fully) inserted ?\n"); ++ ++ return (1); ++ } ++ ++ printk("mmc: card init 1/2 (CMD0) success\n\n"); ++ ++ mdelay(1); ++ ++ printk("mmc: card init 2/2 (CMD1)\n"); ++ for (j = 0; j < 10; j++) { ++ ++ mmc_spi_readwrite_slow(0xff); ++ mmc_spi_readwrite_slow(0x41); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x95); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++#ifdef DEBUG_HD ++ // if (result >= 32 && result <= 127) ++ // printk("mmc: response (CMD1) Versuch(%d) start token BYTE: %d result = 0x%X Zeichen = %c\n", j, i, result, result); ++ // else ++ // printk("mmc: response (CMD1) Versuch(%d) start token BYTE: %d result = 0x%X\n", j, i, result); ++#endif ++ if (result == 0x00) ++ break; ++ } ++ ++ mmc_spi_readwrite_slow(0xff); ++ ++ if (result == 0x00) { ++ printk("mmc: card init 2/2 (CMD1) success\n\n"); ++ ++ mmc_spi_readwrite_slow(0xff); ++ mmc_spi_readwrite_slow(0x4d); ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x95); ++ for (i = 0; i < 6; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++#ifdef DEBUG_HD ++ // if (result > 31 && result < 128) ++ // printk("mmc: response (CMD13) Versuch(%d) start token BYTE: %d result = 0x%X Zeichen = %c\n", j, i, result, result); ++ // else ++ // printk("mmc: response (CMD13) Versuch(%d) start token BYTE: %d result = 0x%X\n", j, i, result); ++#endif ++ // if (result == 0x00) ++ // break; ++ } ++ // mdelay(60); ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ // mmc_spi_readwrite_slow(0xff); ++ // mdelay(10); ++ ++ // restore_flags(flags); ++ ++ return (0); ++ } ++ mdelay(60); ++ } ++ return (2); ++} ++ ++ ++static int mmc_spi_card_config(void) ++{ ++ unsigned char result = 0; ++ short i, j; ++ unsigned char csd[32]; ++ unsigned int c_size; ++ unsigned int c_size_mult; ++ unsigned int mult; ++ unsigned int read_bl_len; ++ unsigned int blocknr = 0; ++ unsigned int block_len = 0; ++ unsigned int size = 0; ++ unsigned char rd_buffer[528]; ++// unsigned long flags; ++ ++ MMC_Enable(); ++ ++ mmc_spi_readwrite_slow(0xff); ++ result = mmc_spi_readwrite_slow(0x51); ++ // mmc_spi_readwrite_slow(0x4A); ++ // mmc_spi_readwrite_slow(0x40+0x0D); ++ // mmc_spi_readwrite_slow(0x42); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x95); ++ ++ // printk("mmc: (CMD17) response von 0x51 result = 0x%X\n", result); ++ ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++#ifdef DEBUG_HD ++ // printk("mmc: (CMD17) response (start token) result = 0x%X\n", result); ++#endif ++ if (result == 0x00) ++ break; ++ } ++ if (result != 0x00) { ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ // restore_flags(flags); ++ // mmc_spi_readwrite_slow(0xff); ++ return (1); ++ } ++ // restore_flags(flags); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++ rd_buffer[i] = result; ++#ifdef DEBUG_HD ++ /* ++ if (result >= 32 && result <= 127) ++ printk("mmc: CMD17 response (start token) result = 0x%X Zeichen = %c\n", result, result); ++ else ++ printk("mmc: CMD17 response (start token) result = 0x%X\n", result); ++ */ ++#endif ++ // if (result == 0xfe) ++ // break; ++ } ++ /* ++ if (result != 0xfe) { ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ mmc_spi_readwrite_slow(0xff); ++ return(1); ++ } ++ */ ++ ++ for (i = 8; i < 520; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++ rd_buffer[i] = result; ++ } ++ for (i = 0; i < 2; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++ } ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ // mmc_spi_readwrite_slow(0xff); ++ ++ printk("Buffer - Start\n"); ++ ++ for ( i = 0 ; i < 33 ; i++) { ++ printk("\r\n%4X - ", i*16); ++ for ( j = 0 ; j < 16 ; j++) { ++ if ( rd_buffer[i*16+j] < 16) ++ printk("0%X ", rd_buffer[i*16+j]); ++ else ++ printk("%2X ", rd_buffer[i*16+j]); ++ } ++ for ( j = 0 ; j < 16 ; j++) { ++ if ( rd_buffer[i*16+j] < ' ') ++ printk("."); ++ else ++ printk("%c", rd_buffer[i*16+j]); ++ } ++ } ++ ++ printk("\nBuffer - Ende\n"); ++ ++ mmc_show_cid_info(); ++ ++ for(j = 0 ; j < 1; j++) { ++ MMC_Enable(); ++ ++ // mdelay(1); ++ ++ // save_flags(flags); ++ // cli(); ++ mmc_spi_readwrite_slow(0xff); ++ mmc_spi_readwrite_slow(0x49); ++ // mmc_spi_readwrite_slow(0x4A); ++ // mmc_spi_readwrite_slow(0x40+0x0D); ++ // mmc_spi_readwrite_slow(0x42); ++ for (i = 0; i < 4; i++) ++ mmc_spi_readwrite_slow(0x00); ++ mmc_spi_readwrite_slow(0x95); ++ for (i = 0; i < 8; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++#ifdef DEBUG_HD ++ // printk("mmc: (CMD9) response (start token) result = 0x%X\n", result); ++#endif ++ if (result == 0x00) ++ break; ++ } ++ // restore_flags(flags); ++ if (result != 0x00) { ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ // mmc_spi_readwrite_slow(0xff); ++ return (1); ++ } ++ for (i = 0; i < 22; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++#ifdef DEBUG_HD ++ if (result >= 32 && result <= 127) ++ printk("mmc: response (start token) result = 0x%X Zeichen = %c\n", result, result); ++ else ++ printk("mmc: response (start token) result = 0x%X\n", result); ++#endif ++ if (result == 0xfe) ++ break; ++ } ++ if (result == 0xfe) ++ break; ++ ++ if (result != 0xfe) { ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ // mmc_spi_readwrite_slow(0xff); ++ } ++ mdelay(60); ++ } ++ ++ if (result != 0xfe) { ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ printk("mmc: mmc card config (CMD9) failed result = 0x%X\n\n", result); ++ return (2); ++ } ++ for (i = 0; i < 16; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++ csd[i] = result; ++ } ++ for (i = 0; i < 2; i++) { ++ result = mmc_spi_readwrite_slow(0xff); ++ } ++ MMC_Disable(); ++ mmc_spi_readwrite_slow(0xff); ++ // mmc_spi_readwrite_slow(0xff); ++ ++ if (result == 0x00) ++ return (3); ++ ++ c_size = (csd[8] & 0xC0) + (csd[7] << 8) + ((csd[6] & 0x03) << 16); ++ c_size >>= 6; ++ c_size_mult = (csd[10] & 0x80) + ((csd[9] & 0x03) << 8); ++ c_size_mult >>= 7; ++ read_bl_len = csd[5] & 0x0f; ++ mult = 1; ++ mult <<= c_size_mult + 2; ++ blocknr = (c_size + 1) * mult; ++ block_len = 1; ++ block_len <<= read_bl_len; ++ size = block_len * blocknr; ++ size >>= 10; ++ ++ for (i = 0; i < (1 << 6); i++) { ++ hd_blocksizes[i] = 1024; ++ hd_hardsectsizes[i] = block_len; ++ hd_maxsect[i] = 256; ++ } ++ hd_sizes[0] = size; ++ hd[0].nr_sects = blocknr; ++ ++ printk("Size = %d, hardsectsize = %d, sectors = %d\n", ++ size, block_len, blocknr); ++ ++ return 0; ++} ++ ++ ++/* ++ * ******************************************************************* ++ * ++ * End of SPI hardware access functions. ++ * ++ * ******************************************************************* ++ */ ++ ++ ++static int mmc_spi_write_block(unsigned int dest_addr, unsigned char *data) ++{ ++ unsigned int address; ++ unsigned char result = 0; ++ unsigned char ab0, ab1, ab2, ab3; ++ int i; ++ ++ address = dest_addr; ++ ++ ab3 = 0xff & (address >> 24); ++ ab2 = 0xff & (address >> 16); ++ ab1 = 0xff & (address >> 8); ++ ab0 = 0xff & address; ++ ++ MMC_Enable(); ++ ++ mmc_spi_readwrite(0xff); ++ ++ mmc_spi_readwrite(0x58); ++ mmc_spi_readwrite(ab3); /* msb */ ++ mmc_spi_readwrite(ab2); ++ mmc_spi_readwrite(ab1); ++ mmc_spi_readwrite(ab0); /* lsb */ ++ mmc_spi_readwrite(0xff); ++ ++ for (i = 0; i < 8; i++) ++ { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ { ++ break; ++ } ++ } ++ ++ if (result != 0x00) ++ { ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return (1); ++ } ++ ++ mmc_spi_readwrite(0xfe); ++ ++ for (i = 0; i < 512; i += 32) ++ { ++ mmc_spi_write_only(data[i]); ++ mmc_spi_write_only(data[i+1]); ++ mmc_spi_write_only(data[i+2]); ++ mmc_spi_write_only(data[i+3]); ++ mmc_spi_write_only(data[i+4]); ++ mmc_spi_write_only(data[i+5]); ++ mmc_spi_write_only(data[i+6]); ++ mmc_spi_write_only(data[i+7]); ++ mmc_spi_write_only(data[i+8]); ++ mmc_spi_write_only(data[i+9]); ++ mmc_spi_write_only(data[i+10]); ++ mmc_spi_write_only(data[i+11]); ++ mmc_spi_write_only(data[i+12]); ++ mmc_spi_write_only(data[i+13]); ++ mmc_spi_write_only(data[i+14]); ++ mmc_spi_write_only(data[i+15]); ++ mmc_spi_write_only(data[i+16]); ++ mmc_spi_write_only(data[i+17]); ++ mmc_spi_write_only(data[i+18]); ++ mmc_spi_write_only(data[i+19]); ++ mmc_spi_write_only(data[i+20]); ++ mmc_spi_write_only(data[i+21]); ++ mmc_spi_write_only(data[i+22]); ++ mmc_spi_write_only(data[i+23]); ++ mmc_spi_write_only(data[i+24]); ++ mmc_spi_write_only(data[i+25]); ++ mmc_spi_write_only(data[i+26]); ++ mmc_spi_write_only(data[i+27]); ++ mmc_spi_write_only(data[i+28]); ++ mmc_spi_write_only(data[i+29]); ++ mmc_spi_write_only(data[i+30]); ++ mmc_spi_write_only(data[i+31]); ++ } ++ ++ mmc_spi_readwrite(0xff); ++ mmc_spi_readwrite(0xff); ++ ++ for (i = 0; i < 1000000; i++) ++ { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0xff) ++ { ++ break; ++ } ++ } ++ ++ if (result != 0xff) ++ { ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return (3); ++ } ++ ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return (0); ++} ++ ++static int mmc_spi_read_block(unsigned char *data, unsigned int src_addr) ++{ ++ unsigned int address; ++ unsigned char result = 0; ++ unsigned char ab0, ab1, ab2, ab3; ++ // unsigned long flags; ++ // int i, j; ++ int i; ++ ++ address = src_addr; ++ ++ ab3 = 0xff & (address >> 24); ++ ab2 = 0xff & (address >> 16); ++ ab1 = 0xff & (address >> 8); ++ ab0 = 0xff & address; ++ ++ MMC_Enable(); ++ ++ mmc_spi_readwrite(0xff); ++ ++ mmc_spi_readwrite(0x51); ++ mmc_spi_readwrite(ab3); /* msb */ ++ mmc_spi_readwrite(ab2); ++ mmc_spi_readwrite(ab1); ++ mmc_spi_readwrite(ab0); /* lsb */ ++ mmc_spi_readwrite(0xff); ++ ++ for (i = 0; i < 8; i++) ++ { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0x00) ++ { ++ break; ++ } ++ } ++ ++ if (result != 0x00) ++ { ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return (1); ++ } ++ ++ for (i = 0; i < 100000; i++) ++ { ++ result = mmc_spi_readwrite(0xff); ++ if (result == 0xfe) ++ { ++ break; ++ } ++ } ++ ++ if (result != 0xfe) ++ { ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ return (2); ++ } ++ ++ for (i = 0; i < 512; i += 32 ) ++ { ++ data[i] = mmc_spi_read_only(); ++ data[i+1] = mmc_spi_read_only(); ++ data[i+2] = mmc_spi_read_only(); ++ data[i+3] = mmc_spi_read_only(); ++ data[i+4] = mmc_spi_read_only(); ++ data[i+5] = mmc_spi_read_only(); ++ data[i+6] = mmc_spi_read_only(); ++ data[i+7] = mmc_spi_read_only(); ++ data[i+8] = mmc_spi_read_only(); ++ data[i+9] = mmc_spi_read_only(); ++ data[i+10] = mmc_spi_read_only(); ++ data[i+11] = mmc_spi_read_only(); ++ data[i+12] = mmc_spi_read_only(); ++ data[i+13] = mmc_spi_read_only(); ++ data[i+14] = mmc_spi_read_only(); ++ data[i+15] = mmc_spi_read_only(); ++ data[i+16] = mmc_spi_read_only(); ++ data[i+17] = mmc_spi_read_only(); ++ data[i+18] = mmc_spi_read_only(); ++ data[i+19] = mmc_spi_read_only(); ++ data[i+20] = mmc_spi_read_only(); ++ data[i+21] = mmc_spi_read_only(); ++ data[i+22] = mmc_spi_read_only(); ++ data[i+23] = mmc_spi_read_only(); ++ data[i+24] = mmc_spi_read_only(); ++ data[i+25] = mmc_spi_read_only(); ++ data[i+26] = mmc_spi_read_only(); ++ data[i+27] = mmc_spi_read_only(); ++ data[i+28] = mmc_spi_read_only(); ++ data[i+29] = mmc_spi_read_only(); ++ data[i+30] = mmc_spi_read_only(); ++ data[i+31] = mmc_spi_read_only(); ++ } ++ ++ result = mmc_spi_readwrite(0xff); ++ result = mmc_spi_readwrite(0xff); ++ ++ MMC_Disable(); ++ mmc_spi_readwrite(0xff); ++ ++ return (0); ++} ++ ++/* ++static int mmc_revalidate(kdev_t dev) ++{ ++ int target, max_p, start, i; ++ ++ mmc_media_detect = mmc_spi_media_detect(); ++ ++ if (mmc_media_detect == 0) ++ { ++ return -ENODEV; ++ } ++ ++ target = DEVICE_NR(dev); ++ ++ max_p = hd_gendisk.max_p; ++ start = target << 6; ++ for (i = max_p - 1; i >= 0; i--) ++ { ++ int minor = start + i; ++ invalidate_device(MKDEV(MAJOR_NR, minor), 1); ++ hd_gendisk.part[minor].start_sect = 0; ++ hd_gendisk.part[minor].nr_sects = 0; ++ } ++ ++ grok_partitions(&hd_gendisk, target, 1 << 6, hd_sizes[0] * 2); ++ ++ return 0; ++} ++*/ ++ ++ ++static int mmc_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, ++ unsigned long arg) ++{ ++ if (!inode || !inode->i_rdev) ++ return -EINVAL; ++ ++ switch (cmd) { ++#if 0 ++ case BLKGETSIZE: ++ return put_user(hd[MINOR(inode->i_rdev)].nr_sects, ++ (unsigned long *)arg); ++ case BLKGETSIZE64: ++ return put_user((u64) hd[MINOR(inode->i_rdev)]. ++ nr_sects, (u64 *) arg); ++ case BLKRRPART: ++ if (!capable(CAP_SYS_ADMIN)) ++ return -EACCES; ++ ++ return mmc_revalidate(inode->i_rdev); ++#endif ++ case HDIO_GETGEO: ++ { ++ struct block_device *bdev = inode->i_bdev; ++ struct hd_geometry *loc, g; ++ loc = (struct hd_geometry *)arg; ++ if (!loc) ++ return -EINVAL; ++ memset(loc, 0, sizeof(struct hd_geometry)); ++ g.heads = 4; ++ g.sectors = 16; ++ g.cylinders = get_capacity(bdev->bd_disk) / (4*16); ++ g.start = get_start_sect(bdev); ++ return copy_to_user(loc, &g, sizeof(g)) ? -EFAULT : 0; ++ } ++ default: ++ return -ENOTTY; ++ } ++} ++ ++ ++/* ++static int mmc_check_media_change(kdev_t dev) ++{ ++ (void) dev; ++ if (mmc_media_changed == 1) ++ { ++ mmc_media_changed = 0; ++ return 1; ++ } ++ else ++ { ++ return 0; ++ } ++} ++*/ ++ ++ ++/* ++static int mmc_init(void) ++{ ++ int result; ++ ++ result = mmc_spi_hardware_init(); ++ ++ if (result != 0) ++ { ++ printk("mmc: error %d in mmc_spi_hardware_init\n", result); ++ return -1; ++ } ++ ++ ++ result = mmc_spi_hw_test(); ++ ++ if (result != 0) ++ { ++ printk("\n mmc: mmc_spi_hw_test i.O. \n\n"); ++ return -1; ++ } ++ ++ ++ result = mmc_spi_speed_test(); ++ ++ if (result != 0) ++ { ++ printk("\n mmc: mmc_spi_speed_test i.O. \n\n"); ++ return -1; ++ } ++ ++ ++ result = mmc_spi_card_init(); ++ mdelay(50); ++ if (result != 0) ++ { ++ // Give it an extra shot ++ // result = mmc_spi_card_init(); ++ if (result != 0) ++ { ++ printk("mmc: error %d in mmc_card_init\n", result); ++ return -1; ++ } ++ } ++ ++ result = mmc_spi_card_config(); ++ if (result != 0) ++ { ++ printk("mmc: error %d in mmc_card_config\n", result); ++ return -1; ++ } ++ ++ ++ return 0; ++} ++*/ ++ ++/* ++static void mmc_exit(void) ++{ ++} ++*/ ++ ++ ++/* ++static void mmc_check_media(void) ++{ ++ int old_state, new_state; ++ int result; ++ ++ old_state = mmc_media_detect; ++ new_state = mmc_spi_media_detect(); ++ ++ if (old_state != new_state) ++ { ++ mmc_media_changed = 1; ++ if (new_state == PRESENT) ++ { ++ result = mmc_init(); ++ if (result != 0) ++ { ++ printk("mmc: error %d in mmc_init\n", result); ++ } ++ else ++ { ++ mmc_exit(); ++ } ++ } ++ } ++ ++#ifdef CHECK_MEDIA_CHANGE ++ del_timer(&mmc_timer); ++ mmc_timer.expires = jiffies + 10*HZ; ++ add_timer(&mmc_timer); ++#endif ++ ++} ++*/ ++ ++ ++/* NB: There might be several requests in the queue, simply dequeuing only one ++ and not checking for more will cause a stall because the block subsystem ++ will not call this function again unless the queue is "plugged" which can ++ only happen if it runs empty... */ ++static void mmc_spi_request(struct request_queue *q) ++{ ++ struct request *req; ++ int ret; ++ ++ unsigned int mmc_address; ++ unsigned char *buffer_address; ++ int nr_sectors; ++ int i; ++ int result, success; ++ ++ if (blk_queue_plugged(q)) { ++ return; ++ } ++ ++ spin_lock(&mmc_spi_lock); ++ for(;;) { ++ req = elv_next_request(q); ++ if (!req) ++ break; ++ ++ if (!blk_fs_request(req)) { ++ printk("not a blk_fs_request\n"); ++ spin_unlock(&mmc_spi_lock); ++ continue; ++ } ++ ++ mmc_address = req->sector * hd_hardsectsizes[0]; ++ buffer_address = req->buffer; ++ nr_sectors = req->current_nr_sectors; ++ success = 1; ++ if (rq_data_dir(req) == READ) { ++ spin_unlock_irq(q->queue_lock); ++ for (i = 0; i < nr_sectors; i++) { ++ result = mmc_spi_read_block(buffer_address, mmc_address); ++ if (unlikely(result < 0)) { ++ printk(KERN_ERR "mmi_spi_block: error reading block (%d)\n", result); ++ success = 0; ++ break; ++ } ++ mmc_address += hd_hardsectsizes[0]; ++ buffer_address += hd_hardsectsizes[0]; ++ } ++ spin_lock_irq(q->queue_lock); ++ } else { ++ spin_unlock_irq(q->queue_lock); ++ for (i = 0; i < nr_sectors; i++) { ++ result = mmc_spi_write_block(mmc_address, buffer_address); ++ if (unlikely(result < 0)) { ++ printk(KERN_ERR "mmi_spi_block: error writing block (%d)\n", result); ++ success = 0; ++ break; ++ } ++ mmc_address += hd_hardsectsizes[0]; ++ buffer_address += hd_hardsectsizes[0]; ++ } ++ spin_lock_irq(q->queue_lock); ++ } ++ ret = end_that_request_chunk(req, success, nr_sectors * hd_hardsectsizes[0]); ++ if (!ret) { ++ blkdev_dequeue_request(req); ++ end_that_request_last(req, 0); ++ } ++ } ++ spin_unlock(&mmc_spi_lock); ++} ++ ++ ++static int mmc_open(struct inode *inode, struct file *filp) ++{ ++ // int device; ++ (void) filp; ++ mmc_media_detect = mmc_spi_media_detect(); ++ ++ if (mmc_media_detect == 0) ++ return -ENODEV; ++ ++ return 0; ++} ++ ++static int mmc_release(struct inode *inode, struct file *filp) ++{ ++ return 0; ++} ++ ++ ++static struct block_device_operations mmc_spi_bdops = { ++ .open = mmc_open, ++ .release = mmc_release, ++ .ioctl = mmc_ioctl, ++ .owner = THIS_MODULE, ++#if 0 ++ .check_media_change = mmc_check_media_change, ++ .revalidate = mmc_revalidate, ++#endif ++}; ++ ++static int detect_card(void) ++{ ++ int result; ++ ++ result = mmc_spi_card_init(); ++ if (result != 0) { ++ // Give it an extra shot ++ result = mmc_spi_card_init(); ++ if (result != 0) { ++ printk(KERN_ERR "mmc_spi_block: error in mmc_card_init (%d)\n", result); ++ return -ENODEV; ++ } ++ } ++ ++ result = mmc_spi_card_config(); ++ // result = mmc_spi_speed_test(); ++ if (result != 0) { ++ printk(KERN_ERR "mmc_spi_block: error in mmc_card_config (%d)\n", result); ++ return -ENODEV; ++ } ++ ++ return 0; ++} ++ ++/* Fills in the gendisk structure from the received card ++ data. */ ++static int gendisk_init(struct device *dev, struct gendisk *gd) ++{ ++ if (!gd) ++ return -EINVAL; ++ ++ gd->major = major; ++ gd->first_minor = 0; /* only one device supported */ ++ gd->fops = &mmc_spi_bdops; ++ gd->driverfs_dev = dev; ++ ++ gd->queue = blk_init_queue(mmc_spi_request,NULL); ++ ++ if (!gd->queue) ++ return -ENOMEM; ++ ++ sprintf(gd->disk_name, "mmcblk"); ++ ++ blk_queue_hardsect_size(gd->queue, hd_hardsectsizes[0]); ++ ++ set_capacity(gd, hd_sizes[0]<<1); ++ ++ return 0; ++} ++ ++static int gendisk_fini(struct gendisk *gd) ++{ ++ BUG_ON(!gd); ++ ++ if (gd->queue) ++ blk_cleanup_queue(gd->queue); ++ ++ del_gendisk(gd); ++ ++ return 0; ++} ++ ++/* platform driver device instance routines */ ++static int mmc_spi_probe(struct platform_device *pdev) ++{ ++ int result; ++ printk("$Id: mmc_spi_block.c,v 1.05 2008/01/04 01:02:10 mrdata Exp $\n"); ++ ++ result = mmc_spi_hardware_init(); ++ if (result != 0) { ++ printk(KERN_ERR "mmc_spi_block: error in mmc_spi_hardware_init (%d)\n", result); ++ result = -ENODEV; ++ return result; ++ } ++ ++ result = detect_card(); ++ if (result < 0) ++ return result; ++ ++ mmc_media_detect = 1; ++ ++ result = register_blkdev(major, DEVICE_NAME); ++ if (result < 0) ++ return result; ++ ++ if (!major) ++ major = result; ++ ++ /* allow 8 partitions per device */ ++ BUG_ON(mmc_disk!=NULL); ++ mmc_disk = alloc_disk(1 << 3); ++ if (!mmc_disk) { ++ result = -ENOMEM; ++ goto out; ++ } ++ ++ result = gendisk_init(&pdev->dev, mmc_disk); ++ if (result < 0) ++ goto out; ++ ++ add_disk(mmc_disk); ++ ++ /*init_timer(&mmc_timer); ++ mmc_timer.expires = jiffies + HZ; ++ mmc_timer.function = (void *)mmc_check_media; ++ add_timer(&mmc_timer); */ ++ return 0; ++ ++out: ++ if (mmc_disk) ++ put_disk(mmc_disk); ++ ++ unregister_blkdev(major, DEVICE_NAME); ++ return result; ++} ++ ++static int mmc_spi_remove(struct platform_device *dev) ++{ ++ // int ret; ++ ++ if (mmc_disk) { ++ gendisk_fini(mmc_disk); ++ put_disk(mmc_disk); ++ } ++ ++ // ret = unregister_blkdev(major, DEVICE_NAME); ++ unregister_blkdev(major, DEVICE_NAME); ++ return 0; ++} ++ ++struct platform_driver mmc_spi_driver = { ++ .probe = mmc_spi_probe, ++ .remove = mmc_spi_remove, ++ .driver = { ++ .name = "mmc_spi_block", ++ .owner = THIS_MODULE, ++ }, ++}; ++ ++ ++/* module init/exit */ ++static int __init mmc_spi_block_init(void) ++{ ++ int ret; ++ spin_lock_init(&mmc_spi_lock); ++ ++ ret = platform_driver_register(&mmc_spi_driver); ++ if (ret < 0) ++ return ret; ++ ++ /* we just support one device */ ++ mmc_dev = platform_device_register_simple("mmc_spi_block", -1, NULL, 0); ++ if (IS_ERR(mmc_dev)) ++ return PTR_ERR(mmc_dev); ++ ++ return 0; ++} ++ ++ ++static void __exit mmc_spi_block_exit(void) ++{ ++ platform_driver_unregister(&mmc_spi_driver); ++ if (mmc_dev) ++ platform_device_unregister(mmc_dev); ++} ++ ++ ++module_init(mmc_spi_block_init); ++module_exit(mmc_spi_block_exit); ++ ++MODULE_AUTHOR("Madsuk,Rohde,TaGana,Carsten Juttner <carjay@gmx.net>,Guylhem Aznar <mmc-driver@externe.net>,mrdata"); ++MODULE_DESCRIPTION("Driver for MMC/SD-Cards in SPI mode over GPIO (Software SPI)"); ++MODULE_SUPPORTED_DEVICE("SIMpad"); ++MODULE_LICENSE("GPL"); ++ ++module_param(major, int, 0444); ++MODULE_PARM_DESC(major, "specify the major device number for the MMC/SD SPI driver"); diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-battery-old-way-but-also-with-sysfs.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-battery-old-way-but-also-with-sysfs.patch new file mode 100644 index 0000000000..35f192ada2 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-battery-old-way-but-also-with-sysfs.patch @@ -0,0 +1,571 @@ +diff -Nur linux-2.6.24.vanilla/drivers/mfd/Makefile linux-2.6.24/drivers/mfd/Makefile +--- linux-2.6.24.vanilla/drivers/mfd/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/Makefile 2008-02-20 21:27:39.000000000 +0100 +@@ -12,3 +12,7 @@ + ifeq ($(CONFIG_SA1100_ASSABET),y) + obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o + endif ++ ++ifeq ($(CONFIG_SA1100_SIMPAD),y) ++obj-$(CONFIG_MCP_UCB1200) += ucb1x00-simpad.o ++endif +diff -Nur linux-2.6.24.vanilla/drivers/mfd/ucb1x00-simpad.c linux-2.6.24/drivers/mfd/ucb1x00-simpad.c +--- linux-2.6.24.vanilla/drivers/mfd/ucb1x00-simpad.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/ucb1x00-simpad.c 2008-02-20 21:27:39.000000000 +0100 +@@ -0,0 +1,226 @@ ++/* ++ * linux/drivers/mfd/ucb1x00-simpad.c ++ * ++ * Copyright (C) 2001-2003 Russell King, All Rights Reserved. ++ * 2007/03/18 mrdata: ++ * - adapted ucb1x00-assabet.c ++ * - transfer ucb1x00-simpad.c from kernel24 ++ * to new structur of kernel26 ++ * ++ * 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. ++ * ++ * We handle the machine-specific bits of the UCB1x00 driver here. ++ */ ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/fs.h> ++#include <linux/proc_fs.h> ++#include <linux/device.h> ++ ++#include <linux/apm-emulation.h> ++ ++#include <asm/dma.h> ++ ++#include <asm/arch/simpad.h> ++#include <asm/arch-sa1100/simpad_pm.h> ++ ++#include "ucb1x00.h" ++#include "ucb1x00-simpad.h" ++ ++#define UCB1X00_ATTR(name,input,designation) \ ++static ssize_t name##_show(struct class_device *dev, char *buf) \ ++{ \ ++ struct ucb1x00 *ucb = classdev_to_ucb1x00(dev); \ ++ int val; \ ++ ucb1x00_adc_enable(ucb); \ ++ val = ucb1x00_adc_read(ucb, input, UCB_NOSYNC); \ ++ ucb1x00_adc_disable(ucb); \ ++ return sprintf(buf, "%d\n", CALIBRATE_##designation(val)); \ ++} \ ++static CLASS_DEVICE_ATTR(name,0444,name##_show,NULL) ++ ++UCB1X00_ATTR(vbatt, UCB_ADC_INP_AD1, BATTERY); ++UCB1X00_ATTR(vcharger, UCB_ADC_INP_AD2, SUPPLY); ++UCB1X00_ATTR(icharger, UCB_ADC_INP_AD3, CHARGING); ++ ++static struct ucb1x00 *ucb_alt; ++ ++#define UCB1X00_WERT(name,input,designation) \ ++static int ucb1x00_simpad_read_##name(struct ucb1x00 *ucb_alt) \ ++{ \ ++ int val; \ ++ ucb1x00_adc_enable(ucb_alt); \ ++ val = ucb1x00_adc_read(ucb_alt, input, UCB_NOSYNC); \ ++ ucb1x00_adc_disable(ucb_alt); \ ++ return CALIBRATE_##designation(val); \ ++} ++ ++UCB1X00_WERT(vbatt, UCB_ADC_INP_AD1, BATTERY); ++UCB1X00_WERT(vcharger, UCB_ADC_INP_AD2, SUPPLY); ++UCB1X00_WERT(icharger, UCB_ADC_INP_AD3, CHARGING); ++ ++static int ucb1x00_simpad_add(struct ucb1x00_dev *dev) ++{ ++ class_device_create_file(&dev->ucb->cdev, &class_device_attr_vbatt); ++ class_device_create_file(&dev->ucb->cdev, &class_device_attr_vcharger); ++ class_device_create_file(&dev->ucb->cdev, &class_device_attr_icharger); ++ ucb_alt = dev->ucb; ++ return 0; ++} ++ ++static void ucb1x00_simpad_remove(struct ucb1x00_dev *dev) ++{ ++ class_device_remove_file(&dev->ucb->cdev, &class_device_attr_icharger); ++ class_device_remove_file(&dev->ucb->cdev, &class_device_attr_vcharger); ++ class_device_remove_file(&dev->ucb->cdev, &class_device_attr_vbatt); ++} ++ ++static struct ucb1x00_driver ucb1x00_simpad_driver = { ++ .add = ucb1x00_simpad_add, ++ .remove = ucb1x00_simpad_remove, ++}; ++ ++static int __init ucb1x00_simpad_init(void) ++{ ++ apm_get_power_status = simpad_apm_get_power_status; ++ return ucb1x00_register_driver(&ucb1x00_simpad_driver); ++} ++ ++static void __exit ucb1x00_simpad_exit(void) ++{ ++ apm_get_power_status = NULL; ++ ucb1x00_unregister_driver(&ucb1x00_simpad_driver); ++} ++ ++/****************************************************************************/ ++/* Functions exported for use by the kernel and kernel modules */ ++/****************************************************************************/ ++ ++int simpad_get_battery(struct simpad_battery_apm *bstat) ++{ ++ int icharger, vcharger, vbatt; ++ ++ if ( ucb_alt ) { ++ icharger = ucb1x00_simpad_read_icharger( ucb_alt ); ++ vcharger = ucb1x00_simpad_read_vcharger( ucb_alt ); ++ vbatt = ucb1x00_simpad_read_vbatt( ucb_alt ); ++ } else { ++ bstat->ac_status = SIMPAD_AC_STATUS_AC_UNKNOWN; ++ bstat->status = SIMPAD_BATT_STATUS_UNKNOWN; ++ bstat->percentage = 0x64; // lets say 100% ++ bstat->life = 330; // lets say a long time ++ return 0; ++ } ++ ++ /* AC status */ ++ bstat->ac_status = SIMPAD_AC_STATUS_AC_OFFLINE; ++ if ( vcharger>MIN_SUPPLY ) { ++ bstat->ac_status = SIMPAD_AC_STATUS_AC_ONLINE; ++ } ++ ++ /* charging */ ++ bstat->status = 0x0; ++ if ( icharger >= CHARGING_LED_LEVEL ) ++ bstat->status = SIMPAD_BATT_STATUS_CHARGING; ++ ++ if ( vbatt > BATT_LOW ) ++ bstat->status |= SIMPAD_BATT_STATUS_HIGH; ++ else if ( vbatt < BATT_CRITICAL ) ++ bstat->status |= SIMPAD_BATT_STATUS_CRITICAL; ++ else ++ bstat->status |= SIMPAD_BATT_STATUS_LOW; ++ ++ if (bstat->status & SIMPAD_BATT_STATUS_CHARGING) { ++ if (icharger > CHARGING_MAX_LEVEL) ++ icharger = CHARGING_MAX_LEVEL; ++ if (icharger < CHARGING_LED_LEVEL) ++ icharger = CHARGING_LED_LEVEL; ++ ++ bstat->percentage = 100 - 100 * (icharger - CHARGING_LED_LEVEL) / ++ (CHARGING_MAX_LEVEL - CHARGING_LED_LEVEL); ++ } else { ++ if (vbatt > BATT_FULL) ++ vbatt = BATT_FULL; ++ if (vbatt < BATT_EMPTY) ++ vbatt = BATT_EMPTY; ++ ++ bstat->percentage = 100 * (vbatt - BATT_EMPTY) / (BATT_FULL - BATT_EMPTY); ++ } ++ ++ /* let's assume: full load is 7h */ ++ /* bstat->life = 420*bstat->percentage/100; */ ++ /* mrdata: think, 4h is more realistic */ ++ bstat->life = 240*(bstat->percentage)/100; ++ ++#if 0 ++ printk("get_battery: ac: %02x / ch: %02x / perc: %02x / life: %d \n", ++ bstat->ac_status, bstat->status, ++ bstat->percentage, bstat->life ); ++#endif ++ ++ return 0; ++} ++ ++void simpad_apm_get_power_status(struct apm_power_info *info) ++{ ++ struct simpad_battery_apm bstat; ++ unsigned char ac = APM_AC_UNKNOWN; ++ unsigned char level = APM_BATTERY_STATUS_UNKNOWN; ++ int status, result; ++ ++ result = simpad_get_battery(&bstat); ++ if (result) { ++ printk("%s: unable to access battery information: result=%d\n", __FUNCTION__, result); ++ return; ++ } ++ ++ switch (bstat.ac_status) { ++ case SIMPAD_AC_STATUS_AC_OFFLINE: ++ ac = APM_AC_OFFLINE; ++ break; ++ case SIMPAD_AC_STATUS_AC_ONLINE: ++ ac = APM_AC_ONLINE; ++ break; ++ case SIMPAD_AC_STATUS_AC_BACKUP: ++ ac = APM_AC_BACKUP; ++ break; ++ } ++ ++ info->ac_line_status = ac; ++ ++ status = bstat.status; ++ if (status & (SIMPAD_BATT_STATUS_CHARGING | SIMPAD_BATT_STATUS_CHARGE_MAIN)) ++ level = APM_BATTERY_STATUS_CHARGING; ++ else if (status & (SIMPAD_BATT_STATUS_HIGH | SIMPAD_BATT_STATUS_FULL)) ++ level = APM_BATTERY_STATUS_HIGH; ++ else if (status & SIMPAD_BATT_STATUS_LOW) ++ level = APM_BATTERY_STATUS_LOW; ++ else if (status & SIMPAD_BATT_STATUS_CRITICAL) ++ level = APM_BATTERY_STATUS_CRITICAL; ++ ++ info->battery_status = level; ++ info->battery_flag = info->battery_status; ++ ++ info->battery_life = bstat.percentage; ++ ++ /* we have a dumb battery - so we know nothing */ ++ info->time = bstat.life; ++ info->units = APM_UNITS_MINS; ++ ++#if 0 ++ printk("apm_get_power: ac: %02x / bs: %02x / bf: %02x / perc: %02x / life: %d\n", ++ info->ac_line_status, info->battery_status, info->battery_flag, ++ info->battery_life, info->time ); ++#endif ++ return; ++} ++ ++module_init(ucb1x00_simpad_init); ++module_exit(ucb1x00_simpad_exit); ++ ++ ++MODULE_AUTHOR("Juergen Messerer <juergen.messerer@freesurf.ch>"); ++MODULE_DESCRIPTION("SIMpad noddy testing only example ADC driver"); ++MODULE_LICENSE("GPL"); +diff -Nur linux-2.6.24.vanilla/drivers/mfd/ucb1x00-simpad.h linux-2.6.24/drivers/mfd/ucb1x00-simpad.h +--- linux-2.6.24.vanilla/drivers/mfd/ucb1x00-simpad.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/ucb1x00-simpad.h 2008-02-20 21:27:39.000000000 +0100 +@@ -0,0 +1,86 @@ ++/* ++ * linux/drivers/mfd/ucb1x00-simpad.h ++ * ++ * Copyright (C) 2001 Russell King, All Rights Reserved. ++ * ++ * 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. ++ */ ++#ifndef UCB1300_SIMPAD_H ++#define UCB1300_SIMPAD_H ++ ++/* ++ * Conversion from AD -> mV ++ * 7.5V = 1023 7.33137mV/Digit ++ * ++ * 400 Units == 9.7V ++ * a = ADC value ++ * 2007/03/24 mrdata: ++ * according UCB1300 datasheet ADC error max. 3 LSB ++ * 5-95% of full scale -> 3*7.33137mV = 21.99mV ++ * // old ++ * 21 = ADC error ++ * 12600 = Divident to get 2*7.3242 ++ * 860 = Divider to get 2*7.3242 ++ * 170 = Voltagedrop over ++ * ++ * // new ++ * 3 = ADC error ++ * 12610 = Divident to get 2*7.33139 ++ * 860 = Divider to get 2*7.33139 ++ * 170 = Voltagedrop over ++ */ ++// #define CALIBRATE_BATTERY(a) ((((a + 21)*12600)/860) + 170) ++#define CALIBRATE_BATTERY(a) ((((a + 3)*12610)/860) + 170) ++ ++/* ++ * We have two types of batteries a small and a large one ++ * To get the right value we to distinguish between those two ++ * 450 Units == 15 V ++ */ ++#ifdef SMALL_BATTERY ++#define CALIBRATE_SUPPLY(a) (((a) * 1500) / 51) ++#define MIN_SUPPLY 8500 /* Less then 8.5V means no powersupply */ ++#else ++#define CALIBRATE_SUPPLY(a) (((a) * 1500) / 45) ++//#define MIN_SUPPLY 14000 /* Less then 14V means no powersupply */ ++#define MIN_SUPPLY 12000 /* Less then 12V means no powersupply */ ++#endif ++ ++/* ++ * Charging Current ++ * if value is >= 50 then charging is on ++ */ ++// #define CALIBRATE_CHARGING(a) (((a) * 1000) / (152/4)) ++#define CALIBRATE_CHARGING(a) (a) ++//#define CHARGING_LED_LEVEL 50 ++ ++#ifdef CONFIG_SA1100_SIMPAD_SINUSPAD ++ ++// type small battery ++#define CHARGING_LED_LEVEL 12 ++#define CHARGING_MAX_LEVEL 120 ++#define BATT_FULL 8100 ++#define BATT_LOW 7300 ++#define BATT_CRITICAL 6700 ++#define BATT_EMPTY 6400 ++ ++#else // CONFIG_SA1100_SIMPAD_SINUSPAD ++ ++// type large battery ++// because of ADC error CHARGING_LED_LEVEL can changed ++// from 27 to 28 ++#define CHARGING_LED_LEVEL 27 ++#define CHARGING_MAX_LEVEL 265 ++// BATT_FULL with SIMPAD_AC_STATUS_AC_OFFLINE ++#define BATT_FULL 8100 ++#define BATT_LOW 7400 ++#define BATT_CRITICAL 6800 ++#define BATT_EMPTY 6500 ++ ++#endif // CONFIG_SA1100_SIMPAD_SINUSPAD ++ ++// int simpad_get_battery(struct simpad_battery_apm *bstat); ++ ++#endif +diff -Nur linux-2.6.24.vanilla/include/asm-arm/arch-sa1100/simpad_pm.h linux-2.6.24/include/asm-arm/arch-sa1100/simpad_pm.h +--- linux-2.6.24.vanilla/include/asm-arm/arch-sa1100/simpad_pm.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/include/asm-arm/arch-sa1100/simpad_pm.h 2008-02-20 21:27:39.000000000 +0100 +@@ -0,0 +1,236 @@ ++/* ++* Abstraction interface for microcontroller connection to rest of system ++* ++* Copyright 2003 Peter Pregler ++* Copyright 2000,1 Compaq Computer Corporation. ++* ++* Use consistent with the GNU GPL is permitted, ++* provided that this copyright notice is ++* preserved in its entirety in all copies and derived works. ++* ++* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, ++* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS ++* FITNESS FOR ANY PARTICULAR PURPOSE. ++* ++* Author: Peter Pregler (based on work for ipaq by Andrew Christian) ++* ++*/ ++ ++#ifndef __SIMPAD_HAL_H ++#define __SIMPAD_HAL_H ++ ++#include <linux/apm-emulation.h> ++ ++struct simpad_battery_apm { ++ unsigned char ac_status; /* line connected yes/no */ ++ unsigned char status; /* battery loading yes/no */ ++ unsigned char percentage; /* percentage loaded */ ++ unsigned short life; /* life till empty */ ++}; ++ ++extern void simpad_apm_get_power_status(struct apm_power_info *); ++ ++// extern int simpad_get_battery(struct simpad_battery_apm *bstat); ++ ++/* These should match the apm_bios.h definitions */ ++#define SIMPAD_AC_STATUS_AC_OFFLINE 0x00 ++#define SIMPAD_AC_STATUS_AC_ONLINE 0x01 ++#define SIMPAD_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */ ++#define SIMPAD_AC_STATUS_AC_UNKNOWN 0xff ++ ++ ++/* These bitfields are rarely "or'd" together */ ++#define SIMPAD_BATT_STATUS_HIGH 0x01 ++#define SIMPAD_BATT_STATUS_LOW 0x02 ++#define SIMPAD_BATT_STATUS_CRITICAL 0x04 ++#define SIMPAD_BATT_STATUS_CHARGING 0x08 ++#define SIMPAD_BATT_STATUS_CHARGE_MAIN 0x10 ++#define SIMPAD_BATT_STATUS_DEAD 0x20 /* Battery will not charge */ ++#define SIMPAD_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */ ++#define SIMPAD_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */ ++#define SIMPAD_BATT_STATUS_NOBATT 0x80 ++#define SIMPAD_BATT_STATUS_UNKNOWN 0xff ++ ++#if 0 // FIXME ++#include <linux/simpad_ts.h> ++ ++enum simpad_asset_type { ++ ASSET_TCHAR = 0, ++ ASSET_SHORT, ++ ASSET_LONG ++}; ++ ++#define TTYPE(_type) (((unsigned int)_type) << 8) ++#define TCHAR(_len) (TTYPE(ASSET_TCHAR) | (_len)) ++#define TSHORT TTYPE(ASSET_SHORT) ++#define TLONG TTYPE(ASSET_LONG) ++#define ASSET(_type,_num) ((((unsigned int)_type)<<16) | (_num)) ++ ++#define ASSET_HM_VERSION ASSET( TCHAR(10), 0 ) /* 1.1, 1.2 */ ++#define ASSET_SERIAL_NUMBER ASSET( TCHAR(40), 1 ) /* Unique iPAQ serial number */ ++#define ASSET_MODULE_ID ASSET( TCHAR(20), 2 ) /* E.g., "iPAQ 3700" */ ++#define ASSET_PRODUCT_REVISION ASSET( TCHAR(10), 3 ) /* 1.0, 2.0 */ ++#define ASSET_PRODUCT_ID ASSET( TSHORT, 4 ) /* 2 = Palm-sized computer */ ++#define ASSET_FRAME_RATE ASSET( TSHORT, 5 ) ++#define ASSET_PAGE_MODE ASSET( TSHORT, 6 ) /* 0 = Flash memory */ ++#define ASSET_COUNTRY_ID ASSET( TSHORT, 7 ) /* 0 = USA */ ++#define ASSET_IS_COLOR_DISPLAY ASSET( TSHORT, 8 ) /* Boolean, 1 = yes */ ++#define ASSET_ROM_SIZE ASSET( TSHORT, 9 ) /* 16, 32 */ ++#define ASSET_RAM_SIZE ASSET( TSHORT, 10 ) /* 32768 */ ++#define ASSET_HORIZONTAL_PIXELS ASSET( TSHORT, 11 ) /* 240 */ ++#define ASSET_VERTICAL_PIXELS ASSET( TSHORT, 12 ) /* 320 */ ++ ++#define ASSET_TYPE(_asset) (((_asset)&0xff000000)>>24) ++#define ASSET_TCHAR_LEN(_asset) (((_asset)&0x00ff0000)>>16) ++#define ASSET_NUMBER(_asset) ((_asset)&0x0000ffff) ++ ++#define MAX_TCHAR_LEN 40 ++ ++struct simpad_asset { ++ unsigned int type; ++ union { ++ unsigned char tchar[ MAX_TCHAR_LEN ]; ++ unsigned short vshort; ++ unsigned long vlong; ++ } a; ++}; ++ ++/******************************************************************** ++ * Interface to the hardware-type specific functions ++ * ++ * get_version Read the version number of the microcontroller on the option pack SPI bus ++ * spi_read Reads from the serial EEPROM memory on the option pack SPI bus ++ * spi_write Write to the serial EEPROM memory on the option pack SPI bus ++ * get_option_detect Returns whether or not an option pack is present ++ * ++ * get_thermal_sensor Return measured temperature of the unit, in units of 0.125 deg C ++ * set_notify_led Turns on, off, or blinks the Green LED ++ * read_light_sensor Returns the value of the front light sensor ++ * get_battery Returns the current voltage and charging state of all batteries ++ * audio_clock Sets the audio CODEC to run at a particular rate ++ * audio_power Turns on/off audio CODEC (internally calls audio_clock) ++ * audio_mute Mutes the audio CODEC ++ * asset_read Extracts PocketPC-style asset information from persistent memory ++ * backlight_control Adjusts the backlight level (only on/off for 3100) ++ * ++ * ++ * iPAQ 3100 only ++ * ============== ++ * codec_control Reset/mute/control level of 3100 audio codec ++ * contrast_control Adjusts the contrast level (only for 3100) ++ * ++ * iPAQ 3600, 3700 only ++ * ==================== ++ * eeprom_read Reads from the asset information on the eeprom of a 3600 (deprecated) ++ * eeprom_write Writes to the asset information on the eeprom (deprecated) ++ * ++ * The interfaces to the EEPROM functions are maintained only because the simpad_ts driver has ++ * a deprecated ioctl call for them. They are used internally by the "asset_read" function. ++ * ++ * iPAQ 3800, 3900 only ++ * ==================== ++ * set_ebat Tells enhanced PCMCIA sleeves that this iPAQ can handle ++ * a wider voltage range (applies to 3800, 3900) ++ * ++ *********************************************************************/ ++ ++struct simpad_hal_ops { ++ /* Functions provided by the underlying hardware */ ++ int (*get_version)( struct simpad_ts_version * ); ++ int (*eeprom_read)( unsigned short address, unsigned char *data, unsigned short len ); ++ int (*eeprom_write)( unsigned short address, unsigned char *data, unsigned short len ); ++ int (*get_thermal_sensor)( unsigned short * ); ++ int (*set_notify_led)( unsigned char mode, unsigned char duration, ++ unsigned char ontime, unsigned char offtime ); ++ int (*read_light_sensor)( unsigned char *result ); ++ int (*get_battery)( struct simpad_battery * ); ++ int (*spi_read)( unsigned short address, unsigned char *data, unsigned short len ); ++ int (*spi_write)( unsigned short address, unsigned char *data, unsigned short len ); ++ int (*codec_control)( unsigned char, unsigned char ); ++ int (*get_option_detect)( int *result ); ++ int (*audio_clock)( long samplerate ); ++ int (*audio_power)( long samplerate ); ++ int (*audio_mute)( int mute ); ++ int (*asset_read)( struct simpad_asset *asset ); ++ int (*set_ebat)( void ); ++ ++ /* Functions indirectly provided by the underlying hardware */ ++ int (*backlight_control)( enum flite_pwr power, unsigned char level ); ++ int (*contrast_control)( unsigned char level ); ++ ++ /* for module use counting */ ++ struct module *owner; ++}; ++ ++/* Used by the device-specific hardware module to register itself */ ++extern int simpad_hal_register_interface( struct simpad_hal_ops *ops ); ++extern void simpad_hal_unregister_interface( struct simpad_hal_ops *ops ); ++ ++/* ++ * Calls into HAL from the device-specific hardware module ++ * These run at interrupt time ++ */ ++extern void simpad_hal_keypress( unsigned char key ); ++extern void simpad_hal_touchpanel( unsigned short x, unsigned short y, int down ); ++extern void simpad_hal_option_detect( int present ); ++ ++/* Callbacks registered by device drivers */ ++struct simpad_driver_ops { ++ void (*keypress)( unsigned char key ); ++ void (*touchpanel)( unsigned short x, unsigned short y, int down ); ++ void (*option_detect)( int present ); ++}; ++ ++extern int simpad_hal_register_driver( struct simpad_driver_ops * ); ++extern void simpad_hal_unregister_driver( struct simpad_driver_ops * ); ++ ++ ++/* Calls into HAL from device drivers and other kernel modules */ ++extern void simpad_get_flite( struct simpad_ts_backlight *bl ); ++extern void simpad_get_contrast( unsigned char *contrast ); ++extern int simpad_set_flite( enum flite_pwr pwr, unsigned char brightness ); ++extern int simpad_set_contrast( unsigned char contrast ); ++extern int simpad_toggle_frontlight( void ); ++ ++extern int simpad_apm_get_power_status(unsigned char *ac_line_status, unsigned char *battery_status, ++ unsigned char *battery_flag, unsigned char *battery_percentage, ++ unsigned short *battery_life); ++ ++extern struct simpad_hal_ops *simpad_hal_ops; ++ ++/* Do not use this macro in driver files - instead, use the inline functions defined below */ ++#define CALL_HAL( f, args... ) \ ++ { int __result = -EIO; \ ++ if ( simpad_hal_ops && simpad_hal_ops->f ) { \ ++ __MOD_INC_USE_COUNT(simpad_hal_ops->owner); \ ++ __result = simpad_hal_ops->f(args); \ ++ __MOD_DEC_USE_COUNT(simpad_hal_ops->owner); \ ++ } \ ++ return __result; } ++ ++#define HFUNC static __inline__ int ++ ++/* The eeprom_read/write address + len has a maximum value of 512. Both must be even numbers */ ++HFUNC simpad_eeprom_read( u16 addr, u8 *data, u16 len ) CALL_HAL(eeprom_read,addr,data,len) ++HFUNC simpad_eeprom_write( u16 addr, u8 *data, u16 len) CALL_HAL(eeprom_write,addr,data,len) ++HFUNC simpad_spi_read( u8 addr, u8 *data, u16 len) CALL_HAL(spi_read,addr,data,len) ++HFUNC simpad_spi_write( u8 addr, u8 *data, u16 len) CALL_HAL(spi_write,addr,data,len) ++HFUNC simpad_get_version( struct simpad_ts_version *v ) CALL_HAL(get_version,v) ++HFUNC simpad_get_thermal_sensor( u16 *thermal ) CALL_HAL(get_thermal_sensor,thermal) ++HFUNC simpad_set_led( u8 mode, u8 dur, u8 ont, u8 offt ) CALL_HAL(set_notify_led, mode, dur, ont, offt) ++HFUNC simpad_get_light_sensor( u8 *result ) CALL_HAL(read_light_sensor,result) ++HFUNC simpad_get_battery( struct simpad_battery *bat ) CALL_HAL(get_battery,bat) ++HFUNC simpad_get_option_detect( int *result) CALL_HAL(get_option_detect,result) ++HFUNC simpad_audio_clock( long samplerate ) CALL_HAL(audio_clock,samplerate) ++HFUNC simpad_audio_power( long samplerate ) CALL_HAL(audio_power,samplerate) ++HFUNC simpad_audio_mute( int mute ) CALL_HAL(audio_mute,mute) ++HFUNC simpad_asset_read( struct simpad_asset *asset ) CALL_HAL(asset_read,asset) ++HFUNC simpad_set_ebat( void ) CALL_HAL(set_ebat) ++ ++/* Don't use these functions directly - rather, call {get,set}_{flite,contrast} */ ++ /* Functions indirectly provided by the underlying hardware */ ++HFUNC simpad_backlight_control( enum flite_pwr p, u8 v ) CALL_HAL(backlight_control,p,v) ++HFUNC simpad_contrast_control( u8 level ) CALL_HAL(contrast_control,level) ++ ++#endif ++#endif diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-cs3-simpad.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-cs3-simpad.patch new file mode 100644 index 0000000000..51232d55cd --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-cs3-simpad.patch @@ -0,0 +1,184 @@ +diff -uNr linux-2.6.24.vanilla/arch/arm/mach-sa1100/Makefile linux-2.6.24/arch/arm/mach-sa1100/Makefile +--- linux-2.6.24.vanilla/arch/arm/mach-sa1100/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/arch/arm/mach-sa1100/Makefile 2008-02-20 20:49:57.000000000 +0100 +@@ -41,6 +41,7 @@ + obj-$(CONFIG_SA1100_SHANNON) += shannon.o + + obj-$(CONFIG_SA1100_SIMPAD) += simpad.o ++obj-$(CONFIG_SA1100_SIMPAD) += cs3-simpad.o + led-$(CONFIG_SA1100_SIMPAD) += leds-simpad.o + + # LEDs support +diff -uNr linux-2.6.24.vanilla/arch/arm/mach-sa1100/cs3-simpad.c linux-2.6.24/arch/arm/mach-sa1100/cs3-simpad.c +--- linux-2.6.24.vanilla/arch/arm/mach-sa1100/cs3-simpad.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/arch/arm/mach-sa1100/cs3-simpad.c 2008-02-20 20:49:57.000000000 +0100 +@@ -0,0 +1,169 @@ ++/* ++ * simpad-cs3.c ++ * ++ * This driver shows the GPIO states of the cs3 latch. You can also ++ * switch some GPIOS. ++ * ++ * (c) 2007 Bernhard Guillon <Bernhard.Guillon@OpenSIMpad.org> ++ * ++ * You may use this code as per GPL version 2 ++ * ++ * Some parts are based on battery.c ++ * ++ * mrdata: -added cs3_ro support ++ * -added preprocessor stuff ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/types.h> ++#include <linux/init.h> ++#include <linux/device.h> ++ ++#include <asm/arch/simpad.h> ++ ++extern long get_cs3_ro(void); ++extern long get_cs3_shadow(void); ++extern void set_cs3_bit(int value); ++extern void clear_cs3_bit(int value); ++ ++struct cs3 { ++ struct class_device class_dev; ++ const char *name; ++ char *id; ++ int type; ++}; ++ ++struct cs3 cs3 ={ ++ .name = "latch_cs3", ++}; ++ ++ ++#define CS3_STORE_ATTR(namek,nameg) \ ++static ssize_t namek##_store (struct class_device *cdev, const char * buf, size_t count) \ ++{ \ ++ char val; \ ++ if (sscanf(buf, "%c",&val) != 1) \ ++ return -EINVAL; \ ++ if (val == '1') \ ++ set_cs3_bit(nameg); \ ++ else if (val == '0') \ ++ clear_cs3_bit(nameg); \ ++ return strlen(buf); \ ++} ++ ++CS3_STORE_ATTR(display_on, DISPLAY_ON); ++CS3_STORE_ATTR(dect_power_on, DECT_POWER_ON); ++CS3_STORE_ATTR(irda_sd, IRDA_SD); ++CS3_STORE_ATTR(sd_mediaq, SD_MEDIAQ); ++CS3_STORE_ATTR(led2_on, LED2_ON); ++CS3_STORE_ATTR(irda_mode, IRDA_MODE); ++CS3_STORE_ATTR(reset_simcard, RESET_SIMCARD); ++ ++ ++#define CS3_ATTR(shadro,namek,nameg,mode,store) \ ++static ssize_t namek##_show(struct class_device *class_dev, char *buf) \ ++{ \ ++ if (get_cs3_##shadro() & nameg ) \ ++ return sprintf(buf, "1\n"); \ ++ else \ ++ return sprintf(buf, "0\n"); \ ++} \ ++static CLASS_DEVICE_ATTR(namek, mode, namek##_show, store) ++ ++CS3_ATTR(shadow, vcc_5v_en, VCC_5V_EN, 0444, NULL); ++CS3_ATTR(shadow, vcc_3v_en, VCC_3V_EN, 0444, NULL); ++CS3_ATTR(shadow, en1, EN1, 0444, NULL); ++CS3_ATTR(shadow, en0, EN0, 0444, NULL); ++CS3_ATTR(shadow, display_on, DISPLAY_ON, 0664, display_on_store); ++CS3_ATTR(shadow, pcmcia_buff_dis, PCMCIA_BUFF_DIS, 0444, NULL); ++CS3_ATTR(shadow, mq_reset, MQ_RESET, 0444, NULL); ++CS3_ATTR(shadow, pcmcia_reset, PCMCIA_RESET, 0444, NULL); ++CS3_ATTR(shadow, dect_power_on, DECT_POWER_ON, 0664, dect_power_on_store); ++CS3_ATTR(shadow, irda_sd, IRDA_SD, 0664, irda_sd_store); ++CS3_ATTR(shadow, rs232_on, RS232_ON, 0444, NULL); ++CS3_ATTR(shadow, sd_mediaq, SD_MEDIAQ, 0664, sd_mediaq_store); ++CS3_ATTR(shadow, led2_on, LED2_ON, 0664, led2_on_store); ++CS3_ATTR(shadow, irda_mode, IRDA_MODE, 0664, irda_mode_store); ++CS3_ATTR(shadow, enable_5v, ENABLE_5V, 0444, NULL); ++CS3_ATTR(shadow, reset_simcard, RESET_SIMCARD, 0664, reset_simcard_store); ++CS3_ATTR(ro, pcmcia_bvd1, PCMCIA_BVD1, 0444, NULL); ++CS3_ATTR(ro, pcmcia_bvd2, PCMCIA_BVD2, 0444, NULL); ++CS3_ATTR(ro, pcmcia_vs1, PCMCIA_VS1, 0444, NULL); ++CS3_ATTR(ro, pcmcia_vs2, PCMCIA_VS2, 0444, NULL); ++CS3_ATTR(ro, lock_ind, LOCK_IND, 0444, NULL); ++CS3_ATTR(ro, charging_state, CHARGING_STATE, 0444, NULL); ++CS3_ATTR(ro, pcmcia_short, PCMCIA_SHORT, 0444, NULL); ++ ++static struct class simpad_gpios_class = { ++ .name = "simpad", ++}; ++ ++#define create_entry_conditional(namek) \ ++ rc = class_device_create_file(&cs3->class_dev, &class_device_attr_##namek); \ ++ if (rc) goto out; \ ++ ++static int register_cs3_latch(struct cs3 *cs3) ++{ ++ int rc = 0; ++ cs3->class_dev.class = &simpad_gpios_class; ++ strcpy(cs3->class_dev.class_id, cs3->name); ++ rc = class_device_register(&cs3->class_dev); ++ if(rc) ++ goto out; ++ ++ create_entry_conditional(vcc_5v_en); ++ create_entry_conditional(vcc_3v_en); ++ create_entry_conditional(en1); ++ create_entry_conditional(en0); ++ create_entry_conditional(display_on); ++ create_entry_conditional(pcmcia_buff_dis); ++ create_entry_conditional(mq_reset); ++ create_entry_conditional(pcmcia_reset); ++ create_entry_conditional(dect_power_on); ++ create_entry_conditional(irda_sd); ++ create_entry_conditional(rs232_on); ++ create_entry_conditional(sd_mediaq); ++ create_entry_conditional(led2_on); ++ create_entry_conditional(irda_mode); ++ create_entry_conditional(enable_5v); ++ create_entry_conditional(reset_simcard); ++ create_entry_conditional(pcmcia_bvd1); ++ create_entry_conditional(pcmcia_bvd2); ++ create_entry_conditional(pcmcia_vs1); ++ create_entry_conditional(pcmcia_vs2); ++ create_entry_conditional(lock_ind); ++ create_entry_conditional(charging_state); ++ create_entry_conditional(pcmcia_short); ++ ++out: ++ return rc; ++} ++ ++static int __init simpad_gpios_class_init(void) ++{ ++ int rc = 0; ++ ++ rc = class_register(&simpad_gpios_class); ++ ++ if(rc != 0) ++ { ++ printk(KERN_ERR "cs3 latch class failed to register properly\n"); ++ return rc; ++ } ++ ++ rc = register_cs3_latch(&cs3); ++ return rc; ++} ++ ++static void __exit simpad_gpios_class_exit(void) ++{ ++ class_unregister(&simpad_gpios_class); ++} ++ ++module_init(simpad_gpios_class_init); ++module_exit(simpad_gpios_class_exit); ++ ++MODULE_AUTHOR("Bernhard Guillon"); ++MODULE_DESCRIPTION("CS3_latch driver"); ++MODULE_LICENSE("GPL"); diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-hostap_cs-shared-irq.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-hostap_cs-shared-irq.patch new file mode 100644 index 0000000000..758ddae7f7 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-hostap_cs-shared-irq.patch @@ -0,0 +1,106 @@ +diff -Nur linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_cs.c linux-2.6.24/drivers/net/wireless/hostap/hostap_cs.c +--- linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_cs.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/net/wireless/hostap/hostap_cs.c 2008-02-28 12:00:27.000000000 +0100 +@@ -1,3 +1,8 @@ ++/* ++ * ++ * mrdata: -added shared irq ++ */ ++ + #define PRISM2_PCCARD + + #include <linux/module.h> +@@ -35,7 +40,7 @@ + module_param(ignore_cis_vcc, int, 0444); + MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry"); + +- ++int activar=0; + /* struct local_info::hw_priv */ + struct hostap_cs_priv { + dev_node_t node; +@@ -499,11 +504,13 @@ + + PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info); + p_dev->conf.IntType = INT_MEMORY_AND_IO; +- ++ ++ activar=0; + ret = prism2_config(p_dev); + if (ret) { + PDEBUG(DEBUG_EXTRA, "prism2_config() failed\n"); + } ++ activar=1; + + return ret; + } +@@ -693,7 +700,7 @@ + * irq structure is initialized. + */ + if (link->conf.Attributes & CONF_ENABLE_IRQ) { +- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; ++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_FIRST_SHARED | IRQ_HANDLE_PRESENT; + link->irq.IRQInfo1 = IRQ_LEVEL_ID; + link->irq.Handler = prism2_interrupt; + link->irq.Instance = dev; +diff -Nur linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.24/drivers/net/wireless/hostap/hostap_hw.c +--- linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_hw.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/net/wireless/hostap/hostap_hw.c 2008-02-28 12:00:27.000000000 +0100 +@@ -54,6 +54,7 @@ + #include "hostap.h" + #include "hostap_ap.h" + ++extern int activar; + + /* #define final_version */ + +@@ -1497,6 +1498,8 @@ + if (local->hw_downloading) + return 1; + ++ activar=1; ++ + if (prism2_hw_init(dev, initial)) { + return local->no_pri ? 0 : 1; + } +@@ -2630,8 +2633,15 @@ + int events = 0; + u16 ev; + +- iface = netdev_priv(dev); +- local = iface->local; ++ ++ // Todos los parametros de entrada son correctos (no son nulos). De momento esta es la unica forma que conozco de detectar el problema. ++ if (!activar) { ++ printk("hostap_hw.c: INTERRUPT BEFORE DEVICE INIT!\n"); ++ return IRQ_HANDLED; ++ } ++ ++ iface = netdev_priv(dev); ++ local = iface->local; + + prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0); + +diff -Nur linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_pci.c linux-2.6.24/drivers/net/wireless/hostap/hostap_pci.c +--- linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_pci.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/net/wireless/hostap/hostap_pci.c 2008-02-28 12:00:27.000000000 +0100 +@@ -19,6 +19,7 @@ + + #include "hostap_wlan.h" + ++int activar=1; + + static char *dev_info = "hostap_pci"; + +diff -Nur linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_plx.c linux-2.6.24/drivers/net/wireless/hostap/hostap_plx.c +--- linux-2.6.24.vanilla/drivers/net/wireless/hostap/hostap_plx.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/net/wireless/hostap/hostap_plx.c 2008-02-28 12:00:27.000000000 +0100 +@@ -21,7 +21,7 @@ + #include <asm/io.h> + + #include "hostap_wlan.h" +- ++int activar=1; + + static char *dev_info = "hostap_plx"; + diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-mq200.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-mq200.patch new file mode 100644 index 0000000000..ac9fdfbfcf --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-mq200.patch @@ -0,0 +1,2513 @@ +diff -Nur linux-2.6.24.vanilla/drivers/video/Kconfig linux-2.6.24/drivers/video/Kconfig +--- linux-2.6.24.vanilla/drivers/video/Kconfig 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/video/Kconfig 2008-02-20 21:51:22.000000000 +0100 +@@ -198,7 +198,7 @@ + This is particularly important to one driver, matroxfb. If + unsure, say N. + +-comment "Frame buffer hardware drivers" ++comment "Frambuffer hardware drivers" + depends on FB + + config FB_CIRRUS +@@ -1389,6 +1389,15 @@ + ---help--- + Driver for graphics boards with S3 Trio / S3 Virge chip. + ++config FB_MQ200 ++ bool "MQ200 Driver" ++ depends on (FB = y) && ARM && ARCH_SA1100 ++ select FB_CFB_FILLRECT ++ select FB_CFB_COPYAREA ++ select FB_CFB_IMAGEBLIT ++ help ++ This is a MQ200 driver tested only on Siemens SIMpads. ++ + config FB_SAVAGE + tristate "S3 Savage support" + depends on FB && PCI && EXPERIMENTAL +diff -Nur linux-2.6.24.vanilla/drivers/video/Makefile linux-2.6.24/drivers/video/Makefile +--- linux-2.6.24.vanilla/drivers/video/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/video/Makefile 2008-02-20 21:51:22.000000000 +0100 +@@ -35,6 +35,7 @@ + obj-$(CONFIG_FB_PM2) += pm2fb.o + obj-$(CONFIG_FB_PM3) += pm3fb.o + ++obj-$(CONFIG_FB_MQ200) += mq200/ + obj-$(CONFIG_FB_MATROX) += matrox/ + obj-$(CONFIG_FB_RIVA) += riva/ + obj-$(CONFIG_FB_NVIDIA) += nvidia/ +diff -Nur linux-2.6.24.vanilla/drivers/video/backlight/Kconfig linux-2.6.24/drivers/video/backlight/Kconfig +--- linux-2.6.24.vanilla/drivers/video/backlight/Kconfig 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/video/backlight/Kconfig 2008-02-20 21:51:22.000000000 +0100 +@@ -90,3 +90,20 @@ + help + If you have a Intel LE80578 (Carillo Ranch) say Y to enable the + backlight driver. ++ ++config BACKLIGHT_SIMPAD ++ tristate "SIMpad MQ200 Backlight driver" ++ depends on SA1100_SIMPAD && BACKLIGHT_CLASS_DEVICE ++ default y ++ help ++ If you have a Siemens SIMpad say Y to enable the ++ backlight driver. ++ ++config LCD_SIMPAD ++ tristate "SIMpad MQ200 LCD driver" ++ depends on SA1100_SIMPAD && LCD_CLASS_DEVICE ++ default y ++ help ++ If you have a Siemens SIMpad say Y to enable the ++ LCD driver. ++ +diff -Nur linux-2.6.24.vanilla/drivers/video/backlight/Makefile linux-2.6.24/drivers/video/backlight/Makefile +--- linux-2.6.24.vanilla/drivers/video/backlight/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/video/backlight/Makefile 2008-02-20 21:51:22.000000000 +0100 +@@ -9,3 +9,5 @@ + obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o + obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o + obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o ++obj-$(CONFIG_BACKLIGHT_SIMPAD) += simpad_bl.o ++obj-$(CONFIG_LCD_SIMPAD) += simpad_lcd.o +diff -Nur linux-2.6.24.vanilla/drivers/video/backlight/simpad_bl.c linux-2.6.24/drivers/video/backlight/simpad_bl.c +--- linux-2.6.24.vanilla/drivers/video/backlight/simpad_bl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/video/backlight/simpad_bl.c 2008-02-20 21:51:22.000000000 +0100 +@@ -0,0 +1,208 @@ ++/* ++ * GPLv2 <zecke@handhelds.org ++ * ++ * Implementation of the backlight_driver for ++ * the mq200 framebuffer ++ * ++ * 2007/03/17 mrdata: ++ * - small changes simpad_bl_get_brightness() ++ * simpad_bl_set_brightness() ++ * - new function simpad_bl_update_status() ++ * - changed struct backlight_properties simpad_bl_props() ++ * to new one ++ * - changed __init simpad_bl_init() -> backlight_device_register ++ * ++ * 2007/03/24 mrdata ++ * - added .brightness=127 in ++ * struct backlight_properties simpad_bl_props() ++ */ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/spinlock.h> ++#include <linux/fb.h> ++#include <linux/backlight.h> ++ ++#include <asm/types.h> ++#include <asm/hardware.h> ++#include <asm/io.h> ++ ++#include "../mq200/mq200_data.h" ++ ++#define SIMPAD_BACKLIGHT_MASK 0x00a10044 ++#define SIMPAD_DEFAULT_INTENSITY 127 ++#define SIMPAD_MAX_INTENSITY 254 ++#define REGISTER_BASE 0xf2e00000 ++ ++static int simpad_bl_suspended; ++static int current_intensity = 0; ++ ++static void simpad_bl_send_intensity(struct backlight_device *bd) ++{ ++ int intensity = bd->props.brightness; ++ ++ union fp0fr fp0fr; ++ unsigned long dutyCycle, pwmcontrol; ++ ++ if (intensity > SIMPAD_MAX_INTENSITY) ++ intensity = SIMPAD_MAX_INTENSITY; ++ ++ if (bd->props.power != FB_BLANK_UNBLANK) ++ intensity = 0; ++ ++ if (bd->props.fb_blank != FB_BLANK_UNBLANK) ++ intensity = 0; ++ ++ if (simpad_bl_suspended) ++ intensity = 0; ++ ++ if (intensity != current_intensity) ++ { ++ /* ++ * Determine dutyCycle. ++ * Note: the lower the value, the brighter the display! ++ */ ++ ++ dutyCycle = SIMPAD_MAX_INTENSITY - intensity; ++ ++ /* ++ * Configure PWM0 (source clock = oscillator clock, pwm always enabled, ++ * zero, clock pre-divider = 4) pwm frequency = 12.0kHz ++ */ ++ ++ fp0fr.whole = readl(FP0FR(REGISTER_BASE)); ++ pwmcontrol = fp0fr.whole & 0xffff00ff; ++ fp0fr.whole &= 0xffffff00; ++ fp0fr.whole |= 0x00000044; ++ writel(fp0fr.whole, FP0FR(REGISTER_BASE)); ++ ++ /* Write to pwm duty cycle register. */ ++ fp0fr.whole = dutyCycle << 8; ++ fp0fr.whole &= 0x0000ff00; ++ fp0fr.whole |= pwmcontrol; ++ writel(fp0fr.whole, FP0FR(REGISTER_BASE)); ++ ++ current_intensity = intensity; ++ } ++} ++ ++ ++#ifdef CONFIG_PM ++static int simpad_bl_suspend(struct platform_device *pdev, pm_message_t state) ++{ ++ struct backlight_device *bd = platform_get_drvdata(pdev); ++ ++ simpad_bl_suspended = 1; ++ simpad_bl_send_intensity(bd); ++ return 0; ++} ++ ++static int simpad_bl_resume(struct platform_device *pdev) ++{ ++ struct backlight_device *bd = platform_get_drvdata(pdev); ++ ++ simpad_bl_suspended = 0; ++ simpad_bl_send_intensity(bd); ++ return 0; ++} ++#else ++#define simpad_bl_suspend NULL ++#define simpad_bl_resume NULL ++#endif ++ ++ ++static int simpad_bl_set_intensity(struct backlight_device *bd) ++{ ++ simpad_bl_send_intensity(bd); ++ return 0; ++} ++ ++ ++static int simpad_bl_get_intensity(struct backlight_device *bd) ++{ ++ return current_intensity; ++} ++ ++ ++static struct backlight_ops simpad_bl_ops = { ++ .get_brightness = simpad_bl_get_intensity, ++ .update_status = simpad_bl_set_intensity, ++}; ++ ++ ++static int __init simpad_bl_probe(struct platform_device *pdev) ++{ ++ struct backlight_device *bd; ++ ++ bd = backlight_device_register("simpad-mq200-bl", &pdev->dev, NULL, &simpad_bl_ops); ++ ++ if (IS_ERR (bd)) ++ return PTR_ERR (bd); ++ ++ platform_set_drvdata(pdev, bd); ++ ++ bd->props.max_brightness = SIMPAD_MAX_INTENSITY; ++ bd->props.brightness = SIMPAD_DEFAULT_INTENSITY; ++ simpad_bl_send_intensity(bd); ++ ++ return 0; ++} ++ ++ ++static int simpad_bl_remove(struct platform_device *pdev) ++{ ++ struct backlight_device *bd = platform_get_drvdata(pdev); ++ ++ bd->props.brightness = 0; ++ bd->props.power = 0; ++ simpad_bl_send_intensity(bd); ++ ++ backlight_device_unregister(bd); ++ ++ return 0; ++} ++ ++static struct platform_driver simpad_bl_driver = { ++ .probe = simpad_bl_probe, ++ .remove = simpad_bl_remove, ++ .suspend = simpad_bl_suspend, ++ .resume = simpad_bl_resume, ++ .driver = { ++ .name = "simpad-mq200-bl", ++ }, ++}; ++ ++static struct platform_device *simpad_bl_device = NULL; ++ ++static int __init simpad_bl_init(void) ++{ ++ int ret; ++ ++ ret = platform_driver_register(&simpad_bl_driver); ++ if (!ret) { ++ simpad_bl_device = platform_device_alloc("simpad-mq200-bl", -1); ++ if (!simpad_bl_device) ++ return -ENOMEM; ++ ++ ret = platform_device_add(simpad_bl_device); ++ ++ if (ret) { ++ platform_device_put(simpad_bl_device); ++ platform_driver_unregister(&simpad_bl_driver); ++ } ++ } ++ return ret; ++} ++ ++static void __exit simpad_bl_exit(void) ++{ ++ platform_device_unregister(simpad_bl_device); ++ platform_driver_unregister(&simpad_bl_driver); ++} ++ ++ ++module_init(simpad_bl_init); ++module_exit(simpad_bl_exit); ++MODULE_AUTHOR("Holger Hans Peter Freyther"); ++MODULE_LICENSE("GPL"); +diff -Nur linux-2.6.24.vanilla/drivers/video/backlight/simpad_lcd.c linux-2.6.24/drivers/video/backlight/simpad_lcd.c +--- linux-2.6.24.vanilla/drivers/video/backlight/simpad_lcd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/video/backlight/simpad_lcd.c 2008-02-20 21:51:22.000000000 +0100 +@@ -0,0 +1,172 @@ ++/* ++ * GPLv2 <zecke@handhelds.org ++ * ++ * Implementation of the lcd_driver for the mq200 framebuffer ++ * ++ * 2007/03/24 mrdata: ++ * - added simpad_lcd_get_contrast() ++ * - added simpad_lcd_set_contrast() ++ * - modify struct lcd_properties simpad_lcd_props ++ */ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/fb.h> ++#include <linux/lcd.h> ++ ++#include <asm/arch/simpad.h> ++#include <asm/hardware.h> ++ ++extern long get_cs3_shadow(void); ++extern void set_cs3_bit(int); ++extern void clear_cs3_bit(int); ++ ++#define UNUSED(x) x=x ++ ++static int simpad_lcd_get_power(struct lcd_device* dev) ++{ ++ UNUSED(dev); ++ ++ return (get_cs3_shadow() & DISPLAY_ON) ? 0 : 4; ++} ++ ++static int simpad_lcd_set_power(struct lcd_device* dev, int power) ++{ ++ UNUSED(dev); ++ ++ if( power == 4 ) ++ clear_cs3_bit(DISPLAY_ON); ++ else ++ set_cs3_bit(DISPLAY_ON); ++ ++ return 0; ++} ++ ++static int simpad_lcd_get_contrast(struct lcd_device* dev) ++{ ++ UNUSED(dev); ++ ++ return 0; ++} ++ ++static int simpad_lcd_set_contrast(struct lcd_device* dev, int contrast) ++{ ++ UNUSED(dev); ++ ++ UNUSED(contrast); ++ ++ return 0; ++} ++ ++#ifdef CONFIG_PM ++static int simpad_lcd_suspend(struct platform_device *pdev, pm_message_t state) ++{ ++ static int ret; ++ struct lcd_device* ld; ++ ++ UNUSED(state); ++ ++ ld = platform_get_drvdata(pdev); ++ ++ ret = simpad_lcd_set_power(ld, 4); ++ ++ return ret; ++} ++ ++static int simpad_lcd_resume(struct platform_device *pdev) ++{ ++ struct lcd_device *ld; ++ static int ret; ++ ++ ld = platform_get_drvdata(pdev); ++ ++ ret = simpad_lcd_set_power(ld, 0); ++ ++ return ret; ++} ++#else ++#define simpad_lcd_suspend NULL ++#define simpad_lcd_resume NULL ++#endif ++ ++ ++/*FIXME ++static struct lcd_properties simpad_lcd_props = { ++ .max_contrast = 0, ++}; ++*/ ++ ++static struct lcd_ops simpad_lcd_ops = { ++ .get_power = simpad_lcd_get_power, ++ .set_power = simpad_lcd_set_power, ++ .get_contrast = simpad_lcd_get_contrast, ++ .set_contrast = simpad_lcd_set_contrast, ++}; ++ ++static int __init simpad_lcd_probe(struct platform_device *pdev) ++{ ++ struct lcd_device *ld; ++ ++ ld = lcd_device_register ("simpad-mq200-lcd", &pdev->dev, NULL, &simpad_lcd_ops); ++ ++ if (IS_ERR(ld)) ++ return PTR_ERR(ld); ++ ++ platform_set_drvdata(pdev, ld); ++ ++ ld->props.max_contrast = 0; ++ ++ return 0; ++} ++ ++static int simpad_lcd_remove(struct platform_device *pdev) ++{ ++ struct lcd_device *ld = platform_get_drvdata(pdev); ++ ++ lcd_device_unregister(ld); ++ ++ return 0; ++} ++ ++static struct platform_driver simpad_lcd_driver = { ++ .probe = simpad_lcd_probe, ++ .remove = simpad_lcd_remove, ++ .suspend = simpad_lcd_suspend, ++ .resume = simpad_lcd_resume, ++ .driver = { ++ .name = "simpad-mq200-lcd", ++ }, ++}; ++ ++static struct platform_device *simpad_lcd_device = NULL; ++ ++static int __init simpad_lcd_init(void) ++{ ++ int ret; ++ ++ ret = platform_driver_register(&simpad_lcd_driver); ++ if (!ret) { ++ simpad_lcd_device = platform_device_alloc("simpad-mq200-lcd", -1); ++ if (!simpad_lcd_device) ++ return -ENOMEM; ++ ++ ret = platform_device_add(simpad_lcd_device); ++ ++ if (ret) { ++ platform_device_put(simpad_lcd_device); ++ platform_driver_unregister(&simpad_lcd_driver); ++ } ++ } ++ return ret; ++} ++ ++static void __exit simpad_lcd_exit(void) { ++ platform_driver_unregister(&simpad_lcd_driver); ++ platform_device_unregister(simpad_lcd_device); ++} ++ ++module_init(simpad_lcd_init); ++module_exit(simpad_lcd_exit); ++MODULE_AUTHOR("Holger Hans Peter Freyther"); ++MODULE_LICENSE("GPL"); +diff -Nur linux-2.6.24.vanilla/drivers/video/mq200/Makefile linux-2.6.24/drivers/video/mq200/Makefile +--- linux-2.6.24.vanilla/drivers/video/mq200/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/video/mq200/Makefile 2008-02-20 21:51:22.000000000 +0100 +@@ -0,0 +1,6 @@ ++# Makefile for mq200 video driver ++# 4 Aug 2003, Holger Hans Peter Freyther ++# ++ ++obj-$(CONFIG_FB_MQ200) += mq_skeleton.o mq_external.o ++ +diff -Nur linux-2.6.24.vanilla/drivers/video/mq200/mq200_data.h linux-2.6.24/drivers/video/mq200/mq200_data.h +--- linux-2.6.24.vanilla/drivers/video/mq200/mq200_data.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/video/mq200/mq200_data.h 2008-02-20 21:51:22.000000000 +0100 +@@ -0,0 +1,1120 @@ ++/* ++ * From ucLinux mq200fb.c and mq200fb.h ++ * ++ * 2007/03/11 mrdata: ++ * insert registers for graphics controller 2 module ++ */ ++ ++#ifndef __MQ200_FB_H__ ++#define __MQ200_FB_H__ ++ ++struct mq200_io_regions { ++ u32 fb_size; /* framebuffer size */ ++ unsigned long phys_mmio_base; /* physical register memory base */ ++ unsigned long virt_mmio_base; /* virtual start of registers */ ++ unsigned long phys_fb_base; /* physical address of frame buffer */ ++ unsigned long virt_fb_base; /* virtual start of the framebuffer */ ++}; ++ ++#define MQ200_MONITOR_HORI_RES(info) info->monitor_info.horizontal_res ++#define MQ200_MONITOR_VERT_RES(info) info->monitor_info.vertical_res ++#define MQ200_MONITOR_DEPTH(info) info->monitor_info.depth ++#define MQ200_MONITOR_LINE_LENGTH(info) info->monitor_info.line_length ++ ++struct mq200_monitor_info { ++ unsigned int horizontal_res; ++ unsigned int vertical_res; ++ unsigned int depth; ++ unsigned int refresh; ++ unsigned int line_length; ++ unsigned long flags; ++}; ++ ++ ++/** ++ * Addresses of Module ++ */ ++#define MQ200_FB_BASE (x) (x + 0x1800000) /* framebuffer */ ++#define MQ200_FB_SIZE 0x200000 /* framebuffer size in bytes */ ++#define MQ200_REGS_BASE(x) (x + 0x1e00000) /* start of registers area */ ++#define MQ200_REGS_SIZE 0x200000 /* registers area size */ ++ ++#define PMU_OFFSET 0x00000 /* power management */ ++#define CPU_OFFSET 0x02000 /* CPU interface */ ++#define MIU_OFFSET 0x04000 /* memory controller */ ++#define IN_OFFSET 0x08000 /* interrupt controller */ ++#define GC_OFFSET 0x0a000 /* graphics controller 1&2 */ ++#define GE_OFFSET 0x0c000 /* graphics engine */ ++#define FPI_OFFSET 0x0e000 /* flat panel controller */ ++#define CP1_OFFSET 0x10000 /* color palette 1 */ ++#define DC_OFFSET 0x14000 /* device configuration */ ++#define PCI_OFFSET 0x16000 /* PCI configuration */ ++#define PSF_OFFSET 0x18000 /* ??? */ ++ ++ ++/**** ++ * Registers ++ */ ++ ++/* power management unit */ ++#define PMR(addr) (addr + PCI_OFFSET + 0x40)/* power management ++ register */ ++#define PMR_VALUE 0x06210001 /* expected read value of PMR register */ ++#define PM00R(addr) (addr + PMU_OFFSET + 0x00) /* power management unit ++ configuration ++ register */ ++#define PM01R(addr) (addr + PMU_OFFSET + 0x04) /* D1 state control */ ++#define PM02R(addr) (addr + PMU_OFFSET + 0x08) /* d2 state control */ ++#define PM06R(addr) (addr + PMU_OFFSET + 0x18) /* PLL 2 programming */ ++#define PM07R(addr) (addr + PMU_OFFSET + 0x1c) /* PLL 3 programming */ ++ ++#define PMCSR(addr) (addr + PCI_OFFSET + 0x44) /* power management ++ control/status ++ register */ ++ ++/* memory interface unit */ ++#define MM00R(addr) (addr + MIU_OFFSET + 0x00)/* MIU interface control ++ 0 */ ++#define MM01R(addr) (addr + MIU_OFFSET + 0x04) /* MIU interface control ++ 1 */ ++#define MM02R(addr) (addr + MIU_OFFSET + 0x08) /* memory interface ++ control 2 */ ++#define MM03R(addr) (addr + MIU_OFFSET + 0x0c) /* memory interface ++ control 3 */ ++#define MM04R(addr) (addr + MIU_OFFSET + 0x10) /* memory interface ++ control 4 */ ++/* graphics controller 1 module */ ++#define GC00R(addr) (addr + GC_OFFSET + 0x00) /* graphics controller 1 ++ control */ ++#define GC01R(addr) (addr + GC_OFFSET + 0x04) /* graphics controller ++ CRT control */ ++#define GC02R(addr) (addr + GC_OFFSET + 0x08) /* horizontal display 1 ++ control */ ++#define GC03R(addr) (addr + GC_OFFSET + 0x0c) /* vertical display 1 ++ control */ ++#define GC04R(addr) (addr + GC_OFFSET + 0x10) /* horizontal sync 1 ++ control */ ++#define GC05R(addr) (addr + GC_OFFSET + 0x14) /* vertical sync 1 ++ control */ ++#define GC07R(addr) (addr + GC_OFFSET + 0x1c) /* vertical display 1 ++ count */ ++#define GC08R(addr) (addr + GC_OFFSET + 0x20) /* horizontal window 1 ++ control */ ++#define GC09R(addr) (addr + GC_OFFSET + 0x24) /* vertical window 1 ++ control */ ++#define GC0AR(addr) (addr + GC_OFFSET + 0x28) /* alternate horizontal ++ window 1 control */ ++#define GC0BR(addr) (addr + GC_OFFSET + 0x2c) /* alternate vertical ++ window 1 control */ ++#define GC0CR(addr) (addr + GC_OFFSET + 0x30) /* window 1 ++ start address */ ++#define GC0DR(addr) (addr + GC_OFFSET + 0x34) /* alternate window 1 ++ start address */ ++#define GC0ER(addr) (addr + GC_OFFSET + 0x38) /* alternate window 1 ++ stride */ ++#define GC0FR(addr) (addr + GC_OFFSET + 0x3c) /* alternate window 1 ++ line size */ ++#define GC10R(addr) (addr + GC_OFFSET + 0x40) /* hardware cursor 1 ++ position */ ++#define GC11R(addr) (addr + GC_OFFSET + 0x44) /* hardware cursor 1 ++ start address and ++ offset */ ++#define GC12R(addr) (addr + GC_OFFSET + 0x48) /* hardware cursor 1 ++ foreground color */ ++#define GC13R(addr) (addr + GC_OFFSET + 0x4c) /* hardware cursor 1 ++ background color */ ++ ++/* graphics controller 2 module */ ++#define GC20R(addr) (addr + GC_OFFSET + 0x80) /* graphics controller 2 ++ control */ ++#define GC21R(addr) (addr + GC_OFFSET + 0x84) /* graphics controller ++ CRC control */ ++#define GC22R(addr) (addr + GC_OFFSET + 0x88) /* horizontal display 2 ++ control */ ++#define GC23R(addr) (addr + GC_OFFSET + 0x8c) /* vertical display 2 ++ control */ ++#define GC24R(addr) (addr + GC_OFFSET + 0x90) /* horizontal sync 2 ++ control */ ++#define GC25R(addr) (addr + GC_OFFSET + 0x94) /* vertical sync 2 ++ control */ ++#define GC27R(addr) (addr + GC_OFFSET + 0x9c) /* vertical display 2 ++ count */ ++#define GC28R(addr) (addr + GC_OFFSET + 0xa0) /* horizontal window 2 ++ control */ ++#define GC29R(addr) (addr + GC_OFFSET + 0xa4) /* vertical window 2 ++ control */ ++#define GC2AR(addr) (addr + GC_OFFSET + 0xa8) /* alternate horizontal ++ window 2 control */ ++#define GC2BR(addr) (addr + GC_OFFSET + 0xac) /* alternate vertical ++ window 2 control */ ++#define GC2CR(addr) (addr + GC_OFFSET + 0xb0) /* window 2 ++ start address */ ++#define GC2DR(addr) (addr + GC_OFFSET + 0xb4) /* alternate window 2 ++ start address */ ++#define GC2ER(addr) (addr + GC_OFFSET + 0xb8) /* alternate window 2 ++ stride */ ++#define GC2FR(addr) (addr + GC_OFFSET + 0xbc) /* alternate window 2 ++ line size */ ++#define GC30R(addr) (addr + GC_OFFSET + 0xc0) /* hardware cursor 2 ++ position */ ++#define GC31R(addr) (addr + GC_OFFSET + 0xc4) /* hardware cursor 2 ++ start address and ++ offset */ ++#define GC32R(addr) (addr + GC_OFFSET + 0xc8) /* hardware cursor 2 ++ foreground color */ ++#define GC33R(addr) (addr + GC_OFFSET + 0xcc) /* hardware cursor 2 ++ background color */ ++ ++/* graphics engine */ ++#define ROP_SRCCOPY 0xCC /* dest = source */ ++#define ROP_SRCPAINT 0xEE /* dest = source OR dest */ ++#define ROP_SRCAND 0x88 /* dest = source AND dest */ ++#define ROP_SRCINVERT 0x66 /* dest = source XOR dest */ ++#define ROP_SRCERASE 0x44 /* dest = source AND (NOT dest) */ ++#define ROP_NOTSRCCOPY 0x33 /* dest = NOT source */ ++#define ROP_NOTSRCERASE 0x11 /* dest = (NOT source) AND (NOT dest) */ ++#define ROP_MERGECOPY 0xC0 /* dest = source AND pattern */ ++#define ROP_MERGEPAINT 0xBB /* dest = (NOT source) OR dest */ ++#define ROP_PATCOPY 0xF0 /* dest = pattern */ ++#define ROP_PATPAINT 0xFB /* dest = DPSnoo */ ++#define ROP_PATINVERT 0x5A /* dest = pattern XOR dest */ ++#define ROP_DSTINVERT 0x55 /* dest = NOT dest */ ++#define ROP_BLACKNESS 0x00 /* dest = BLACK */ ++#define ROP_WHITENESS 0xFF /* dest = WHITE */ ++ ++#define GE00R(addr) (addr + GE_OFFSET + 0x00) /* primary drawing command ++ register */ ++#define GE01R(addr) (addr + GE_OFFSET + 0x04) /* primary width and ++ height register */ ++#define GE02R(addr) (addr + GE_OFFSET + 0x08) /* primary destination ++ address register */ ++#define GE03R(addr) (addr + GE_OFFSET + 0x0c) /* primary source XY ++ register */ ++#define GE04R(addr) (addr + GE_OFFSET + 0x10) /* primary color compare ++ register */ ++#define GE05R(addr) (addr + GE_OFFSET + 0x14) /* primary clip left/top ++ register */ ++#define GE06R(addr) (addr + GE_OFFSET + 0x18) /* primary clip ++ right/bottom register ++ */ ++#define GE07R(addr) (addr + GE_OFFSET + 0x1c) /* primary source and ++ pattern offset ++ register */ ++#define GE08R(addr) (addr + GE_OFFSET + 0x20) /* primary foreground ++ color ++ register/rectangle ++ fill register */ ++#define GE09R(addr) (addr + GE_OFFSET + 0x24) /* source stride/offset ++ register */ ++#define GE0AR(addr) (addr + GE_OFFSET + 0x28) /* destination stride ++ register and color ++ depth */ ++#define GE0BR(addr) (addr + GE_OFFSET + 0x2c) /* image base address ++ register */ ++#define GE40R(addr) (addr + GE_OFFSET + 0x100) /* mono pattern register ++ 0 */ ++#define GE41R(addr) (addr + GE_OFFSET + 0x104) /* mono pattern register ++ 1 */ ++#define GE42R(addr) (addr + GE_OFFSET + 0x108) /* foreground color ++ register */ ++#define GE43R(addr) (addr + GE_OFFSET + 0x10c) /* background color ++ register */ ++/* color palette */ ++#define C1xxR(addr, regno) \ ++ (addr + CP1_OFFSET + (regno) * 4) /* graphics controller color ++ palette 1 */ ++/* device configuration */ ++#define DC00R(addr) (addr + DC_OFFSET + 0x00) /* device configuration ++ register 0 */ ++#define DC_RESET 0x4000 ++/* PCI configuration space */ ++#define PC00R(addr) (addr + PCI_OFFSET + 0x00)/* device ID/vendor ID ++ register */ ++/* Flatpanel Control */ ++#define FP00R(addr) (addr + FPI_OFFSET + 0x00) /* Flat Panel Control 0 */ ++#define FP01R(addr) (addr + FPI_OFFSET + 0x04) /* Flat Panel Output Pin */ ++#define FP02R(addr) (addr + FPI_OFFSET + 0x08) /* Flat Panel Gener Purpose ++ Outout Control Register */ ++#define FP03R(addr) (addr + FPI_OFFSET + 0x0c) /* General Purpose I/O Port ++ Control Register */ ++#define FP04R(addr) (addr + FPI_OFFSET + 0x10) /* STN Panel Control Register */ ++#define FP05R(addr) (addr + FPI_OFFSET + 0x14) /* D-STN Half Frame Buffer ++ Control Register -By Guess */ ++#define FP0FR(addr) (addr + FPI_OFFSET + 0x3c) /* Pulse Width Modulation ++ Control Register */ ++#define FRCTL_PATTERN_COUNT 32 ++#define FP10R(addr) (addr + FPI_OFFSET + 0x40) /* Frame-Rate Control Pattern ++ Register */ ++#define FP11R(addr) (addr + FPI_OFFSET + 0x44) ++#define FP2FR(addr) (addr + FPI_OFFSET + 0xc0) /* Frame-Rate Control Weight ++ Registers */ ++ ++ ++ ++ ++/* power management miscellaneous control */ ++union pm00r { ++ struct { ++ u32 pll1_n_b5 :1; /* PLL 1 N parameter bit 5 is 0 */ ++ u32 reserved_1 :1; ++ u32 pll2_enbl :1; /* PLL 2 enable */ ++ u32 pll3_enbl :1; /* PLL 3 enable */ ++ u32 reserved_2 :1; ++ u32 pwr_st_ctrl :1; /* power state status control */ ++ u32 reserved_3 :2; ++ ++ u32 ge_enbl :1; /* graphics engine enable */ ++ u32 ge_bsy_gl :1; /* graphics engine force busy (global) */ ++ u32 ge_bsy_lcl :1; /* graphics engine force busy (local) */ ++ u32 ge_clock :2; /* graphics engine clock select */ ++ u32 ge_cmd_fifo :1; /* graphics engine command FIFO reset */ ++ u32 ge_src_fifo :1; /* graphics engine CPU source FIFO reset */ ++ u32 miu_pwr_seq :1; /* memory interface unit power sequencing ++ enable */ ++ ++ u32 d3_mem_rfsh :1; /* D3 memory refresh */ ++ u32 d4_mem_rfsh :1; /* D4 memory refresh */ ++ u32 gpwr_intrvl :2; /* general power sequencing interval */ ++ u32 fppwr_intrvl:2; /* flat panel power sequencing interval */ ++ u32 gpwr_seq_ctr:1; /* general power sequencing interval control */ ++ u32 pmu_tm :1; /* PMU test mode */ ++ ++ u32 pwr_state :2; /* power state (read only) */ ++ u32 pwr_seq_st :1; /* power sequencing active status (read ++ only) */ ++ u32 reserved_4 :5; ++ } part; ++ u32 whole; ++}; ++ ++/* D1 state control */ ++union pm01r { ++ struct { ++ u32 osc_enbl :1; /* D1 oscillator enable */ ++ u32 pll1_enbl :1; /* D1 PLL 1 enable */ ++ u32 pll2_enbl :1; /* D1 PLL 2 enable */ ++ u32 pll3_enbl :1; /* D1 PLL 3 enable */ ++ u32 miu_enbl :1; /* D1 Memory Interface Unit (MIU) enable */ ++ u32 mem_rfsh :1; /* D1 memory refresh enable */ ++ u32 ge_enbl :1; /* D1 Graphics Engine (GE) enable */ ++ u32 reserved_1 :1; ++ ++ u32 crt_enbl :1; /* D1 CRT enable */ ++ u32 fpd_enbl :1; /* D1 Flat Panel enable */ ++ u32 reserved_2 :6; ++ ++ u32 ctl1_enbl :1; /* D1 controller 1 enable */ ++ u32 win1_enbl :1; /* D1 window 1 enable */ ++ u32 awin1_enbl :1; /* D1 alternate window 1 enable */ ++ u32 cur1_enbl :1; /* D1 cursor 1 enable */ ++ u32 reserved_3 :4; ++ ++ u32 ctl2_enbl :1; /* D1 controller 2 enable */ ++ u32 win2_enbl :1; /* D1 window 2 enable */ ++ u32 awin2_enbl :1; /* D1 alternate window 2 enable */ ++ u32 cur2_enbl :1; /* D1 cursor 2 enable */ ++ u32 reserved_4 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* D2 state control */ ++union pm02r { ++ struct { ++ u32 osc_enbl :1; /* D2 oscillator enable */ ++ u32 pll1_enbl :1; /* D2 PLL 1 enable */ ++ u32 pll2_enbl :1; /* D2 PLL 2 enable */ ++ u32 pll3_enbl :1; /* D2 PLL 3 enable */ ++ u32 miu_enbl :1; /* D2 Memory Interface Unit (MIU) enable */ ++ u32 mem_rfsh :1; /* D2 memory refresh enable */ ++ u32 ge_enbl :1; /* D2 Graphics Engine (GE) enable */ ++ u32 reserved_1 :1; ++ ++ u32 crt_enbl :1; /* D2 CRT enable */ ++ u32 fpd_enbl :1; /* D2 Flat Panel enable */ ++ u32 reserved_2 :6; ++ ++ u32 ctl1_enbl :1; /* D2 controller 1 enable */ ++ u32 win1_enbl :1; /* D2 window 1 enable */ ++ u32 awin1_enbl :1; /* D2 alternate window 1 enable */ ++ u32 cur1_enbl :1; /* D2 cursor 1 enable */ ++ u32 reserved_3 :4; ++ ++ u32 ctl2_enbl :1; /* D2 controller 2 enable */ ++ u32 win2_enbl :1; /* D2 window 2 enable */ ++ u32 awin2_enbl :1; /* D2 alternate window 2 enable */ ++ u32 cur2_enbl :1; /* D2 cursor 2 enable */ ++ u32 reserved_4 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* PLL 2 programming */ ++union pm06r { ++ struct { ++ u32 clk_src :1; /* PLL 2 reference clock source */ ++ u32 bypass :1; /* PLL 2 bypass */ ++ u32 reserved_1 :2; ++ u32 p_par :3; /* PLL 2 P parameter */ ++ u32 reserved_2 :1; ++ ++ u32 n_par :5; /* PLL 2 N parameter */ ++ u32 reserved_3 :3; ++ ++ u32 m_par :8; /* PLL 2 M parameter */ ++ ++ u32 reserved_4 :4; ++ u32 trim :4; /* PLL 2 trim value */ ++ } part; ++ u32 whole; ++}; ++ ++/* PLL 3 programming */ ++union pm07r { ++ struct { ++ u32 clk_src :1; /* PLL 3 reference clock source */ ++ u32 bypass :1; /* PLL 3 bypass */ ++ u32 reserved_1 :2; ++ u32 p_par :3; /* PLL 3 P parameter */ ++ u32 reserved_2 :1; ++ ++ u32 n_par :5; /* PLL 3 N parameter */ ++ u32 reserved_3 :3; ++ ++ u32 m_par :8; /* PLL 3 M parameter */ ++ ++ u32 reserved_4 :4; ++ u32 trim :4; /* PLL 3 trim value */ ++ } part; ++ u32 whole; ++}; ++ ++ ++ ++/* MIU interface control 1 */ ++union mm00r { ++ struct { ++ u32 miu_enbl :1; /* MIU enable bit */ ++ u32 mr_dsbl :1; /* MIU reset disable bit */ ++ u32 edr_dsbl :1; /* embedded DRAM reset disable bit */ ++ u32 reserved_1 :29; ++ } part; ++ u32 whole; ++}; ++ ++/* MIU interface control 2 */ ++union mm01r { ++ struct { ++ u32 mc_src :1; /* memory clock source */ ++ u32 msr_enbl :1; /* memory slow refresh enable bit */ ++ u32 pb_cpu :1; /* page break enable for CPU */ ++ u32 pb_gc1 :1; /* page break enable for GC1 */ ++ u32 pb_gc2 :1; /* page break enable for GC2 */ ++ u32 pb_stn_r :1; /* page break enable for STN read */ ++ u32 pb_stn_w :1; /* page break enable for STN write */ ++ u32 pb_ge :1; /* page break enable for GE */ ++ u32 reserved_1 :4; ++ u32 mr_interval :14; /* normal memory refresh time interval */ ++ u32 reserved_2 :4; ++ u32 edarm_enbl :1; /* embedded DRAM auto-refresh mode enable */ ++ u32 eds_enbl :1; /* EDRAM standby enable for EDRAM normal ++ mode operation */ ++ } part; ++ u32 whole; ++}; ++ ++/* memory interface control 3 */ ++union mm02r { ++ struct { ++ u32 bs_ :2; ++ u32 bs_stnr :2; /* burst count for STN read memory cycles */ ++ u32 bs_stnw :2; /* burst count for STN write memroy cycles */ ++ u32 bs_ge :2; /* burst count for graphics engine ++ read/write memroy cycles */ ++ u32 bs_cpuw :2; /* burst count for CPU write memory cycles */ ++ u32 fifo_gc1 :4; /* GC1 display refresh FIFO threshold */ ++ u32 fifo_gc2 :4; /* GC2 display refresh FIFO threshold */ ++ u32 fifo_stnr :4; /* STN read FIFO threshold */ ++ u32 fifo_stnw :4; /* STN write FIFO threshold */ ++ u32 fifo_ge_src :3; /* GE source read FIFO threshold */ ++ u32 fifo_ge_dst :3; /* GE destination read FIFO threshold */ ++ } part; ++ u32 whole; ++}; ++ ++/* memory interface control 4 */ ++union mm03r { ++ struct { ++ u32 rd_late_req :1; /* read latency request */ ++ u32 reserved_1 :31; ++ } part; ++ u32 whole; ++}; ++ ++/* memory interface control 5 */ ++union mm04r { ++ struct { ++ u32 latency :3; /* EDRAM latency */ ++ u32 dmm_cyc :1; /* enable for the dummy cycle insertion ++ between read and write cycles */ ++ u32 pre_dmm_cyc :1; /* enable for the dummy cycle insertion ++ between read/write and precharge cycles ++ for the same bank */ ++ u32 reserved_1 :3; ++ u32 bnk_act_cls :2; /* bank activate command to bank close ++ command timing interval control */ ++ u32 bnk_act_rw :1; /* bank activate command to read/wirte ++ command timing interval control */ ++ u32 bnk_cls_act :1; /* bank close command to bank activate ++ command timing interval control */ ++ u32 trc :1; /* row cycle time */ ++ u32 reserved_2 :3; ++ u32 delay_r :2; /* programmable delay for read clock */ ++ u32 delay_m :2; /* programmable delay for internal memory ++ clock */ ++ } part; ++ u32 whole; ++}; ++ ++/* graphics controller 1 register */ ++union gc00r { ++ struct { ++ u32 ctl_enbl :1; /* Controller 1 Enable */ ++ u32 hc_reset :1; /* Horizontal Counter 1 Reset */ ++ u32 vc_reset :1; /* Vertical Counter 1 Reset */ ++ u32 iwin_enbl :1; /* Image Window 1 Enable */ ++ u32 gcd :4; /* Graphics Color Depth (GCD) */ ++ ++ u32 hc_enbl :1; /* Hardware Cursor 1 Enable */ ++ u32 reserved_1 :2; ++ u32 aiwin_enbl :1; /* Alternate Image Window Enable */ ++ u32 agcd :4; /* Alternate Graphics Color Depth (AGCD) */ ++ ++ u32 g1rclk_src :2; /* G1RCLK Source */ ++ u32 tm0 :1; /* Test Mode 0 */ ++ u32 tm1 :1; /* Test Mode 1 */ ++ u32 fd :3; /* G1MCLK First Clock Divisor (FD1) */ ++ u32 reserved_2 :1; ++ ++ u32 sd :8; /* G1MCLK Second Clock Divisor (SD1) */ ++ } part; ++ u32 whole; ++}; ++ ++/* graphics controller CRT control */ ++union gc01r { ++ struct { ++ u32 dac_enbl :2; /* CRT DAC enable */ ++ u32 hsync_out :1; /* CRT HSYNC output during power down mode */ ++ u32 vsync_out :1; /* CRT VSYNC output during power down mode */ ++ u32 hsync_ctl :2; /* CRT HSYNC control */ ++ u32 vsync_ctl :2; /* CRT VSYNC control */ ++ /**/ ++ u32 hsync_pol :1; /* CRT HSYNC polarity */ ++ u32 vsync_pol :1; /* CRT VSYNC polarity */ ++ u32 sync_p_enbl :1; /* sync pedestal enable */ ++ u32 blnk_p_enbl :1; /* blank pedestal enable */ ++ u32 c_sync_enbl :1; /* composite sync enable */ ++ u32 vref_sel :1; /* VREF select */ ++ u32 mn_sns_enbl :1; /* monitor sense enable */ ++ u32 ct_out_enbl :1; /* constant output enable */ ++ /**/ ++ u32 dac_out_lvl :8; /* monitor sense DAC output level */ ++ /**/ ++ u32 blue_dac_r :1; /* blue DAC sense result */ ++ u32 green_dac_r :1; /* green DAC sense result */ ++ u32 red_dac_r :1; /* red DAC sense result */ ++ u32 reserved_1 :1; ++ u32 mon_col_sel :1; /* mono/color monitor select */ ++ u32 reserved_2 :3; ++ } part; ++ u32 whole; ++}; ++ ++/* horizontal display 1 control */ ++union gc02r { ++ struct { ++ u32 hd1t :12; /* horizontal display 1 total */ ++ u32 reserved_1 :4; ++ ++ u32 hd1e :12; /* horizontal display 1 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* vertical display 1 control */ ++union gc03r { ++ struct { ++ u32 vd1t :12; /* vertical display 1 total */ ++ u32 reserved_1 :4; ++ ++ u32 vd1e :12; /* vertical display 1 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* horizontal sync 1 control */ ++union gc04r { ++ struct { ++ u32 hs1s :12; /* horizontal sync 1 start */ ++ u32 reserved_1 :4; ++ ++ u32 hs1e :12; /* horizontal sync 1 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* vertical sync 1 control */ ++union gc05r { ++ struct { ++ u32 vs1s :12; /* vertical sync 1 start */ ++ u32 reserved_1 :4; ++ ++ u32 vs1e :12; /* vertical sync 1 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* vertical display 1 count */ ++union gc07r { ++ struct { ++ u32 vd_cnt :12; /* vertical display 1 count */ ++ u32 reverved_1 :20; ++ } part; ++ u32 whole; ++}; ++ ++/* horizontal window 1 control */ ++union gc08r { ++ struct { ++ u32 hw1s :12; /* horizontal window 1 start (HW1S) */ ++ u32 reserved_1 :4; ++ ++ u32 hw1w :12; /* horizontal window 1 width (HW1W) */ ++ u32 w1ald :4; /* window 1 additional line data */ ++ } part; ++ u32 whole; ++}; ++ ++/* vertical window 1 control */ ++union gc09r { ++ struct { ++ u32 vw1s :12; /* vertical window 1 start */ ++ u32 reserved_1 :4; ++ u32 vw1h :12; /* vertical window 1 height */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* window 1 start address */ ++union gc0cr { ++ struct { ++ u32 w1sa :21; /* window 1 start address */ ++ u32 reserved_1 :11; ++ } part; ++ u32 whole; ++}; ++ ++/* window 1 stride */ ++union gc0er { ++ struct { ++ s16 w1st; /* window 1 stride */ ++ s16 aw1st; /* alternate window 1 stride */ ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 1 position */ ++union gc10r { ++ struct { ++ u32 hc1s :12; /* horizontal cursor 1 start */ ++ u32 reserved_1 :4; ++ u32 vc1s :12; /* vertical cursor 1 start */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 1 start address and offset */ ++union gc11r { ++ struct { ++ u32 hc1sa :11; /* hardware cursor 1 start address */ ++ u32 reserved_1 :5; ++ u32 hc1o :6; /* horizontal cursor 1 offset */ ++ u32 reserved_2 :2; ++ u32 vc1o :6; /* vertical cursor 1 offset */ ++ u32 reserved_3 :2; ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 1 foreground color */ ++union gc12r { ++ struct { ++ u32 hc1fc :24; /* hardware cursor 1 foreground color */ ++ u32 reserved_1 :8; ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 1 background color */ ++union gc13r { ++ struct { ++ u32 hc1bc :24; /* hardware cursor 1 background color */ ++ u32 reserved_1 :8; ++ } part; ++ u32 whole; ++}; ++ ++ ++/* graphics controller 2 register */ ++union gc20r { ++ struct { ++ u32 ctl_enbl :1; /* Controller 2 Enable */ ++ u32 hc_reset :1; /* Horizontal Counter 2 Reset */ ++ u32 vc_reset :1; /* Vertical Counter 2 Reset */ ++ u32 iwin_enbl :1; /* Image Window 2 Enable */ ++ u32 gcd :4; /* Graphics Color Depth (GCD) */ ++ ++ u32 hc_enbl :1; /* Hardware Cursor 2 Enable */ ++ u32 reserved_1 :2; ++ u32 aiwin_enbl :1; /* Alternate Image Window Enable */ ++ u32 agcd :4; /* Alternate Graphics Color Depth (AGCD) */ ++ ++ u32 g2rclk_src :2; /* G2RCLK Source */ ++ u32 tm0 :1; /* Test Mode 0 */ ++ u32 tm1 :1; /* Test Mode 1 */ ++ u32 fd :3; /* G2MCLK First Clock Divisor (FD1) */ ++ u32 reserved_2 :1; ++ ++ u32 sd :8; /* G2MCLK Second Clock Divisor (SD1) */ ++ } part; ++ u32 whole; ++}; ++ ++/* graphics controller CRC control */ ++union gc21r { ++ struct { ++ u32 crc_enbl :1; /* CRC enable */ ++ u32 vsync_wait :1; /* CRC input data control waitime of VSYNC */ ++ u32 crc_o_sel :2; /* CRC output select */ ++ u32 reserved_1 :4; ++ u32 crc_result :22; /* CRC result (read only) */ ++ u32 reserved_2 :2; ++ } part; ++ u32 whole; ++}; ++ ++/* horizontal display 2 control */ ++union gc22r { ++ struct { ++ u32 hd2t :12; /* horizontal display 2 total */ ++ u32 reserved_1 :4; ++ ++ u32 hd2e :12; /* horizontal display 2 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* vertical display 2 control */ ++union gc23r { ++ struct { ++ u32 vd2t :12; /* vertical display 2 total */ ++ u32 reserved_1 :4; ++ ++ u32 vd2e :12; /* vertical display 2 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* horizontal sync 2 control */ ++union gc24r { ++ struct { ++ u32 hs2s :12; /* horizontal sync 2 start */ ++ u32 reserved_1 :4; ++ ++ u32 hs2e :12; /* horizontal sync 2 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* vertical sync 2 control */ ++union gc25r { ++ struct { ++ u32 vs2s :12; /* vertical sync 2 start */ ++ u32 reserved_1 :4; ++ ++ u32 vs2e :12; /* vertical sync 2 end */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* vertical display 2 count */ ++union gc27r { ++ struct { ++ u32 vd_cnt :12; /* vertical display 2 count */ ++ u32 reverved_1 :20; ++ } part; ++ u32 whole; ++}; ++ ++/* horizontal window 2 control */ ++union gc28r { ++ struct { ++ u32 hw2s :12; /* horizontal window 2 start (HW2S) */ ++ u32 reserved_1 :4; ++ ++ u32 hw2w :12; /* horizontal window 2 width (HW2W) */ ++ u32 w2ald :4; /* window 2 additional line data */ ++ } part; ++ u32 whole; ++}; ++ ++/* vertical window 2 control */ ++union gc29r { ++ struct { ++ u32 vw2s :12; /* vertical window 2 start */ ++ u32 reserved_1 :4; ++ u32 vw2h :12; /* vertical window 2 height */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* window 2 start address */ ++union gc2cr { ++ struct { ++ u32 w2sa :21; /* window 2 start address */ ++ u32 reserved_1 :11; ++ } part; ++ u32 whole; ++}; ++ ++/* window 2 stride */ ++union gc2er { ++ struct { ++ s16 w2st; /* window 2 stride */ ++ s16 aw2st; /* alternate window 2 stride */ ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 2 position */ ++union gc30r { ++ struct { ++ u32 hc2s :12; /* horizontal cursor 2 start */ ++ u32 reserved_1 :4; ++ u32 vc2s :12; /* vertical cursor 2 start */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 2 start address and offset */ ++union gc31r { ++ struct { ++ u32 hc2sa :11; /* hardware cursor 2 start address */ ++ u32 reserved_1 :5; ++ u32 hc2o :6; /* horizontal cursor 2 offset */ ++ u32 reserved_2 :2; ++ u32 vc2o :6; /* vertical cursor 2 offset */ ++ u32 reserved_3 :2; ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 2 foreground color */ ++union gc32r { ++ struct { ++ u32 hc2fc :24; /* hardware cursor 2 foreground color */ ++ u32 reserved_1 :8; ++ } part; ++ u32 whole; ++}; ++ ++/* hardware cursor 2 background color */ ++union gc33r { ++ struct { ++ u32 hc2bc :24; /* hardware cursor 2 background color */ ++ u32 reserved_1 :8; ++ } part; ++ u32 whole; ++}; ++ ++ ++/* primary drawing command register */ ++union ge00r { ++ struct { ++ u32 rop :8; /* raster operation */ ++ /**/ ++ u32 cmd_typ :3; /* command type */ ++ u32 x_dir :1; /* x direction */ ++ u32 y_dir :1; /* y direction */ ++ u32 src_mem :1; /* source memory */ ++ u32 mon_src :1; /* mono source */ ++ u32 mon_ptn :1; /* mono pattern */ ++ /**/ ++ u32 dst_trns_e :1; /* destination transparency enable */ ++ u32 dst_trns_p :1; /* destination transparency polarity */ ++ u32 mon_trns_e :1; /* mono source or mono pattern transparency ++ enable */ ++ u32 mon_trns_p :1; /* mono transparency polarity */ ++ u32 mod_sel :1; /* memory to screen or off screen to screen ++ mode select */ ++ u32 alpha_sel :2; /* Alpha byte mask selection */ ++ u32 sol_col :1; /* solid color */ ++ /**/ ++ u32 stride_eq :1; /* source stride is equal to destination ++ stride */ ++ u32 rop2_sel :1; /* ROP2 code selection */ ++ u32 clipping :1; /* enable clipping */ ++ u32 auto_exec :1; /* auto execute */ ++ u32 reserved_1 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* primary width and height register */ ++union ge01r { ++ struct { ++ u32 width :12; /* source/destination window width */ ++ u32 reserved_1 :4; ++ ++ u32 height :12; /* source/destination window height */ ++ u32 reserved_2 :1; ++ u32 reserved_3 :3; ++ } bitblt; ++ struct { ++ u32 dm :17; ++ u32 axis_major :12; ++ u32 x_y :1; /* x-major or y-major */ ++ u32 last_pix :1; /* decision to draw or not to draw the last ++ pixel of the line */ ++ u32 reserved_1 :1; ++ } bresenham; ++ u32 whole; ++}; ++ ++/* primary destination address register */ ++union ge02r { ++ struct { ++ u32 dst_x :12; /* destination x position */ ++ u32 reserved_1 :1; ++ u32 h_offset :3; /* mono/color pattern horizontal offset */ ++ ++ u32 dst_y :12; /* destination y position */ ++ u32 reserved_2 :1; ++ u32 v_offset :3; /* mono/color pattern vertical offset */ ++ } window; ++ struct { ++ u32 x :12; /* starting x coordinate */ ++ u32 dm :17; /* 17 bits major-axis delta */ ++ u32 reserved_1 :3; ++ } line; ++ u32 whole; ++}; ++ ++/* source XY register/line draw starting Y coordinate and mintor axis delta */ ++union ge03r { ++ struct { ++ u32 src_x :12; /* source X position */ ++ u32 reserved_1 :4; ++ ++ u32 src_y :12; /* source Y position */ ++ u32 reserved_2 :4; ++ } window; ++ struct { ++ u32 start_y :12; /* starting Y coordinate */ ++ u32 dn :17; /* 17 bits minor-axis delta */ ++ u32 reserved_1 :3; ++ } line; ++ u32 whole; ++}; ++ ++/* clip left/top register */ ++union ge05r { ++ struct { ++ u32 left :12; /* left edge of clipping rectangle */ ++ u32 reserved_1 :4; ++ ++ u32 top :12; /* top edge of clipping rectangle */ ++ u32 reserved_2 :4; ++ } part; ++ u32 whole; ++}; ++ ++/* source stride/offset register */ ++union ge09r { ++ struct { ++ u32 src_strid :12; /* source line stride */ ++ u32 reserved_1 :13; ++ u32 strt_bit :3; /* initial mono source bit offset */ ++ u32 strt_byte :3; /* initial mono/color source byte offset */ ++ u32 reserved_2 :1; ++ } line; ++ struct { ++ u32 strt_bit :5; /* initial mono source bit offset */ ++ u32 reserved_1 :1; ++ u32 amount :10; /* number of 16 bytes amount that MIU need ++ to fetch from frame buffer */ ++ ++ u32 reserved_2 :9; ++ u32 bit_spc :7; /* bit space between lines */ ++ } pack_mono; ++ struct { ++ u32 strt_bit :3; /* initial mono source bit offset */ ++ u32 strt_byte :3; /* initial mono/color source byte offset */ ++ u32 amount :10; /* number of 16 bytes amount that MIU need ++ to fetch from frame buffer */ ++ ++ u32 reserved_1 :9; ++ u32 bit_spc :3; /* bit space between lines */ ++ u32 byt_spc :4; /* byte space between lines */ ++ } pack_color; ++ u32 whole; ++}; ++ ++/* destination stride register and color depth */ ++union ge0ar { ++ struct { ++ u32 dst_strid :12; /* destination line stride and color depth */ ++ u32 reserved_1 :18; ++ u32 col_dpth :2; /* color depth */ ++ } part; ++ u32 whole; ++}; ++ ++/* graphics controller color pallete */ ++union c1xxr { ++ struct { ++ u8 red; /* red color pallete */ ++ u8 green; /* green/gray color pallete */ ++ u8 blue; /* blue color palette */ ++ u8 reserved_1; ++ } part; ++ u32 whole; ++}; ++ ++/* devicee configuration register 0 */ ++union dc00r { ++ struct { ++ u32 osc_bypass :1; /* oscillator bypass */ ++ u32 osc_enbl :1; /* oscillator enable */ ++ u32 pll1_bypass :1; /* PLL1 bypass */ ++ u32 pll1_enbl :1; /* PLL1 enable */ ++ u32 pll1_p_par :3; /* PLL1 P parameter */ ++ u32 cpu_div :1; /* CPU interface clock divisor */ ++ u32 pll1_n_par :5; /* PLL1 N parameter */ ++ u32 saisc :1; /* StrongARM interface synchronizer control */ ++ u32 s_chp_reset :1; /* software chip reset */ ++ u32 mem_enbl :1; /* memory standby enable */ ++ u32 pll1_m_par :8; /* PLL 1 M parameter */ ++ u32 osc_shaper :1; /* oscillator shaper disable */ ++ u32 fast_pwr :1; /* fast power sequencing */ ++ u32 osc_frq :2; /* oscillator frequency select */ ++ u32 pll1_trim :4; /* PLL 1 trim value */ ++ } part; ++ u32 whole; ++}; ++ ++/* device ID/vendor ID register */ ++union pc00r { ++ struct { ++ u16 device; /* device ID */ ++ u16 vendor; /* vendor ID */ ++ } part; ++ u32 whole; ++}; ++ ++/* Flat Panel Control Register */ ++union fp00r { ++ struct { ++ u32 flatp_enbl : 2; /* Flat Panel Interface Enable */ ++ u32 flatp_type : 2; /* Flat Panel Type */ ++ u32 mono : 1; /* Mono/Color Panel Select */ ++ u32 flatp_intf : 3; /* Flat Panel Interface */ ++ u32 dither_pat : 2; /* Dither Pattern */ ++ u32 reserved : 2; /* Reserved Must Be 0*/ ++ u32 dither_col : 3; /* Dither Base Color */ ++ u32 alt_win_ctl: 1; /* Alternate Window Control */ ++ u32 frc_ctl : 2; /* FRC Control */ ++ u32 dither_adj1: 6; /* Dither Pattern Adjust 1 */ ++ u32 dither_adj2: 3; /* Dither Pattern Adjust 2 */ ++ u32 dither_adj3: 1; /* Dither Pattern Adjust 3 */ ++ u32 test_mode0 : 1; /* Test Mode 0 */ ++ u32 test_mode1 : 1; /* Test Mode 1 */ ++ u32 test_mode2 : 1; /* Test Mode 2 */ ++ u32 test_mode3 : 1; /* Test Mode 3 */ ++ } part; ++ u32 whole; ++}; ++ ++union fp01r { ++ struct { ++ u32 dummy; ++ } part; ++ u32 whole; ++}; ++ ++union fp02r { ++ struct { ++ u32 dummy; ++ } part; ++ u32 whole; ++}; ++ ++union fp03r { ++ struct { ++ u32 dummy; ++ } part; ++ u32 whole; ++}; ++ ++union fp04r { ++ struct { ++ u32 dummy; ++ } part; ++ u32 whole; ++}; ++ ++union fp05r { ++ struct { ++ u32 dummy; ++ } part; ++ u32 whole; ++}; ++ ++union fp0fr { ++ struct { ++ u32 dummy; ++ } part; ++ u32 whole; ++}; ++ ++ ++ ++ ++/**** ++ * Others ++ */ ++ ++#define CHIPNAME "MQ-200" ++ ++extern void mq200_external_setpal(unsigned regno, unsigned long color, unsigned long addr); ++extern void mq200_external_setqmode(struct mq200_monitor_info*, unsigned long, spinlock_t *); ++extern void mq200_external_offdisplay(unsigned long); ++extern void mq200_external_ondisplay (unsigned long); ++extern int mq200_external_probe(unsigned long); ++ ++ ++ ++#endif +diff -Nur linux-2.6.24.vanilla/drivers/video/mq200/mq_external.c linux-2.6.24/drivers/video/mq200/mq_external.c +--- linux-2.6.24.vanilla/drivers/video/mq200/mq_external.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/video/mq200/mq_external.c 2008-02-20 21:51:22.000000000 +0100 +@@ -0,0 +1,513 @@ ++/* ++ * Copyright (C) 2005 Holger Hans Peter Freyther ++ * ++ * Based ON: ++ * ++ * linux/drivers/video/mq200fb.c -- MQ-200 for a frame buffer device ++ * based on linux/driver/video/pm2fb.c ++ * ++ * 2007/03/11 mrdata: ++ * bug found in gc1_reset(), renaming to gc1_gc2_reset() ++ * extend mq200_external_ondisplay() -> LCD for GC2 and CRT for GC1 ++ * ++ * Copyright (C) 2000 Lineo, Japan ++ * ++ * 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 <asm/types.h> ++#include <asm/io.h> ++#include <linux/delay.h> ++#include <linux/spinlock.h> ++ ++#include <asm/hardware.h> ++ ++#include "mq200_data.h" ++ ++ ++#if 1 ++#define PRINTK(args...) printk(args) ++#else ++#define PRINTK(args...) ++#endif ++ ++ ++/**** ++ * power state transition to "state". ++ */ ++static void ++power_state_transition(unsigned long register_base, int state) ++{ ++ int i; ++ writel(state, PMCSR(register_base)); ++ mdelay(300); ++ for (i = 1; ; i++) { ++ udelay(100); ++ if ((readl(PMCSR(register_base)) & 0x3) == state) { ++ break; ++ } ++ } ++} ++ ++ ++/**** ++ * device configuration initialization. ++ */ ++static void ++dc_reset(unsigned long register_base) ++{ ++ union dc00r dc00r; ++ ++ /* Reset First */ ++ dc00r.whole = DC_RESET; ++ writel(dc00r.whole, DC00R(register_base)); ++ mdelay(100); ++ ++ dc00r.whole = 0xEF2082A; ++ writel(dc00r.whole, DC00R(register_base)); ++ mdelay(300); ++ PRINTK(CHIPNAME ": DC00R = 0x%08X\n", readl(DC00R(register_base))); ++} ++ ++ ++/**** ++ * initialize memory interface unit. ++ */ ++static void ++miu_reset(unsigned long register_base) ++{ ++ union mm00r mm00r; ++ union mm01r mm01r; ++ union mm02r mm02r; ++ union mm03r mm03r; ++ union mm04r mm04r; ++ ++ /* MIU interface control 1 */ ++ mm00r.whole = 0x4; ++ writel(mm00r.whole, MM00R(register_base)); ++ mdelay(50); ++ writel(0, MM00R(register_base)); ++ mdelay(50); ++ ++ /* MIU interface control 2 ++ * o PLL 1 output is used as memory clock source. ++ */ ++ mm01r.whole = 0x4143e086; ++ writel(mm01r.whole, MM01R(register_base)); ++ ++ /* memory interface control 3 */ ++ mm02r.whole = 0x6d6aabff; ++ writel(mm02r.whole, MM02R(register_base)); ++ ++ /* memory interface control 5 */ ++ mm04r.whole = 0x10d; ++ writel(mm04r.whole, MM04R(register_base)); ++ ++ /* memory interface control 4 */ ++ mm03r.whole = 0x1; ++ writel(mm03r.whole, MM03R(register_base)); ++ mdelay(50); ++ ++ /* MIU interface control 1 */ ++ mm00r.whole = 0x3; ++ writel(mm00r.whole, MM00R(register_base)); ++ mdelay(50); ++} ++ ++/**** ++ * ++ */ ++static ++void fpctrl_reset(unsigned long addr) ++{ ++ /* ++ * We're in D0 State, let us set the FPCTRL ++ */ ++ union fp00r fp00r; ++ union fp01r fp01r; ++ union fp02r fp02r; ++ union fp03r fp03r; ++ union fp04r fp04r; ++ union fp0fr fp0fr; ++ ++ fp00r.whole = 0x6320; ++ writel(fp00r.whole, FP00R(addr)); ++ ++ fp01r.whole = 0x20; ++ writel(fp01r.whole, FP01R(addr)); ++ ++ fp04r.whole = 0xBD0001; ++ writel(fp04r.whole, FP04R(addr)); ++ ++ /* Set Flat Panel General Purpose register first */ ++ fp02r.whole = 0x0; ++ writel(fp02r.whole, FP02R(addr)); ++ ++ fp03r.whole = 0x0; ++ writel(fp03r.whole, FP03R(addr)); ++ ++ fp0fr.whole = 0xA16c44; ++ writel(fp0fr.whole, FP0FR(addr)); ++ ++ /* Set them again */ ++ fp02r.whole = 0x0; ++ writel(fp02r.whole, FP02R(addr)); ++ ++ fp03r.whole = 0x0; ++ writel(fp03r.whole, FP03R(addr)); ++} ++ ++ ++/**** ++ * initialize power management unit. ++ */ ++static void ++pmu_reset(unsigned long register_base) ++{ ++ union pm00r pm00r; ++ union pm01r pm01r; ++ union pm02r pm02r; ++ ++ /* power management miscellaneous control ++ * o GE is driven by PLL 1 clock. ++ */ ++ pm00r.whole = 0xc0900; ++ writel(pm00r.whole, PM00R(register_base)); ++ ++ /* D1 state control */ ++ pm01r.whole = 0x5000271; ++ writel(pm01r.whole, PM01R(register_base)); ++ ++ /* D2 state control */ ++ pm02r.whole = 0x271; ++ writel(pm02r.whole, PM02R(register_base)); ++} ++ ++/**** ++ * initialize graphics controller 1 ++ * and graphics controller 2 ++ */ ++static void ++gc1_gc2_reset(unsigned long register_base, spinlock_t *lock ) ++{ ++ unsigned long flags; ++ union gc00r gc00r; ++ union gc01r gc01r; ++ union gc02r gc02r; ++ union gc03r gc03r; ++ union gc04r gc04r; ++ union gc05r gc05r; ++ union gc08r gc08r; ++ union gc09r gc09r; ++ union gc0cr gc0cr; ++ union gc0er gc0er; ++ union gc20r gc20r; ++ union gc22r gc22r; ++ union gc23r gc23r; ++ union gc24r gc24r; ++ union gc25r gc25r; ++ union gc28r gc28r; ++ union gc29r gc29r; ++ union gc2cr gc2cr; ++ union gc2er gc2er; ++ ++ union pm00r pm00r; ++ union pm06r pm06r; ++ union pm06r pm07r; ++ ++ spin_lock_irqsave(lock, flags); ++ ++ /* alternate window 1 stride */ ++ gc0er.whole = 0x640; ++ writel(gc0er.whole, GC0ER(register_base)); ++ ++ /* image window 1 start address */ ++ gc0cr.whole = 0x0; ++ writel(gc0cr.whole, GC0CR(register_base)); ++ ++ /* alternate window 2 stride */ ++ gc2er.whole = 0x640; ++ writel(gc0er.whole, GC2ER(register_base)); ++ ++ /* image window 2 start address */ ++ gc2cr.whole = 0x0; ++ writel(gc2cr.whole, GC2CR(register_base)); ++ ++ /* read PM Register */ ++ pm00r.whole = readl(PM00R(register_base)); ++ ++ /* horizontal window 1 control */ ++ gc08r.whole = 0x131f0000; ++ writel(gc08r.whole, GC08R(register_base)); ++ ++ /* vertical window 1 control */ ++ gc09r.whole = 0x12570000; ++ writel(gc09r.whole, GC09R(register_base)); ++ ++ /* horizontal display 1 control */ ++ gc02r.whole = 0x320041e; ++ writel(gc02r.whole, GC02R(register_base)); ++ ++ /* vertical display 1 control */ ++ gc03r.whole = 0x2570273; ++ writel(gc03r.whole, GC03R(register_base)); ++ ++ /* horizontal sync 1 control */ ++ gc04r.whole = 0x3c70347; ++ writel(gc04r.whole, GC04R(register_base)); ++ ++ /* vertical sync 1 control */ ++ gc05r.whole = 0x25d0259; ++ writel(gc05r.whole, GC05R(register_base)); ++ ++ /* graphics controller CRT control */ ++ gc01r.whole = 0x800; ++ writel(gc01r.whole, GC01R(register_base)); ++ ++ /* PLL 2 programming */ ++ pm06r.whole = 0xE90830; ++ writel(pm06r.whole, PM06R(register_base)); ++ ++ /* graphics controller 1 register ++ * o GC1 clock source is PLL 2. ++ * o hardware cursor is disabled. ++ */ ++ gc00r.whole = 0x10000C8 | 0x20000; ++ writel(gc00r.whole, GC00R(register_base)); ++ ++#if 0 ++ /* alternate horizontal window 1 control */ ++ writel(0, GC0AR(register_base)); ++ ++ /* alternate vertical window 1 control */ ++ writel(0, GC0BR(register_base)); ++ ++ /* window 1 start address */ ++ writel(0x2004100, GC0CR(register_base)); ++ ++ /* alternate window 1 start address */ ++ writel(0, GC0DR(register_base)); ++ ++ /* window 1 stride */ ++ gc0er.whole = 0x5100048; ++ writel(gc0er.whole, GC0ER(register_base)); ++ ++ /* reserved register - ??? - */ ++ writel(0x31f, GC0FR(register_base)); ++#endif ++ ++#if 0 ++ /* hardware cursor 1 position */ ++ writel(0, GC10R(register_base)); ++ ++ /* hardware cursor 1 start address and offset */ ++ gc11r.whole = 0x5100048; ++ writel(gc11r.whole, GC11R(register_base)); ++ ++ /* hardware cursor 1 foreground color */ ++ writel(0x00ffffff, GC12R(register_base)); ++ ++ /* hardware cursor 1 background color */ ++ writel(0x00000000, GC13R(register_base)); ++#endif ++ ++ /* horizontal window 2 control */ ++ gc28r.whole = 0x31f0000; ++ writel(gc28r.whole, GC28R(register_base)); ++ ++ /* vertical window 2 control */ ++ gc29r.whole = 0x2570000; ++ writel(gc29r.whole, GC29R(register_base)); ++ ++ /* horizontal display 2 control */ ++ gc22r.whole = 0x320041e; ++ writel(gc22r.whole, GC22R(register_base)); ++ ++ /* vertical display 2 control */ ++ gc23r.whole = 0x2570273; ++ writel(gc23r.whole, GC23R(register_base)); ++ ++ /* horizontal sync 2 control */ ++ gc24r.whole = 0x3c70347; ++ writel(gc24r.whole, GC24R(register_base)); ++ ++ /* vertical sync 2 control */ ++ gc25r.whole = 0x25d0259; ++ writel(gc25r.whole, GC25R(register_base)); ++ ++ /* graphics controller CRT control */ ++ gc01r.whole = 0x800; ++ writel(gc01r.whole, GC01R(register_base)); ++ ++ /* PLL 3 programming */ ++ pm07r.whole = 0xE90830; ++ writel(pm07r.whole, PM07R(register_base)); ++ ++ /* graphics controller 2 register ++ * o GC2 clock source is PLL 3. ++ * o hardware cursor is disabled. ++ */ ++ gc20r.whole = 0x10000C8 | 0x30000; ++ writel(gc20r.whole, GC20R(register_base)); ++ ++ /* ++ * Enable PLL2 and PLL3 in the PM Register ++ */ ++ pm00r.part.pll2_enbl = 0x1; ++ pm00r.part.pll3_enbl = 0x1; ++ writel(pm00r.whole, PM00R(register_base)); ++ ++ spin_unlock_irqrestore(lock, flags); ++} ++ ++ ++/**** ++ * initialize graphics engine. ++ */ ++static void ++ge_reset(unsigned long register_base) ++{ ++ /* drawing command register */ ++ writel(0, GE00R(register_base)); ++ ++ /* promary width and height register */ ++ writel(0, GE01R(register_base)); ++ ++ /* primary destination address register */ ++ writel(0, GE02R(register_base)); ++ ++ /* primary source XY register */ ++ writel(0, GE03R(register_base)); ++ ++ /* primary color compare register */ ++ writel(0, GE04R(register_base)); ++ ++ /* primary clip left/top register */ ++ writel(0, GE05R(register_base)); ++ ++ /* primary clip right/bottom register */ ++ writel(0, GE06R(register_base)); ++ ++ /* primary source and pattern offset register */ ++ writel(0, GE07R(register_base)); ++ ++ /* primary foreground color register/rectangle fill color depth */ ++ writel(0, GE08R(register_base)); ++ ++ /* source stride/offset register */ ++ writel(0, GE09R(register_base)); ++ ++ /* destination stride register and color depth */ ++ writel(0, GE0AR(register_base)); ++ ++ /* image base address register */ ++ writel(0, GE0BR(register_base)); ++} ++ ++/**** ++ * initialize Color Palette 1. ++ */ ++static void ++cp1_reset(unsigned long addr_info) ++{ ++ int i; ++ ++ for (i = 0; i < 256; i++) ++ writel(0, C1xxR(addr_info, i)); ++} ++ ++ ++/* ++ * Below functions are called from the skeleton ++ */ ++void mq200_external_setpal(unsigned regno, unsigned long color, unsigned long addr) ++{ ++ writel(color,C1xxR(addr,regno)); ++} ++ ++void mq200_external_setqmode(struct mq200_monitor_info* info, ++ unsigned long addr, spinlock_t *lock) ++{ ++ dc_reset(addr); /* device configuration */ ++ ++ power_state_transition(addr, 0); /* transition to D0 state */ ++ ++ pmu_reset(addr); /* power management unit */ ++ ++ miu_reset(addr); /* memory interface unit */ ++ ++ ge_reset(addr); /* graphics engine */ ++ ++ fpctrl_reset(addr); /* reset the panel settings */ ++ ++ gc1_gc2_reset(addr, lock); /* graphics controller 1 and 2 */ ++ ++ cp1_reset(addr); /* color palette 1 */ ++ ++ mq200_external_ondisplay(addr); /* LCD and CRT */ ++} ++ ++void mq200_external_offdisplay(unsigned long addr) ++{ ++ /* ++ * Move the MQ200 to D3 mode ++ */ ++ power_state_transition(addr, 3); ++} ++ ++/** ++ * to be called after mq200_external_setqmode ++ */ ++void mq200_external_ondisplay (unsigned long addr) ++{ ++ /* ++ * Set the framebuffer details ++ */ ++ union gc00r gc00r; ++ union gc01r gc01r; ++ union gc20r gc20r; ++ union fp00r fp00r; ++ ++ /* enable LCD for GC2 */ ++ fp00r.whole = readl(FP00R(addr)); ++ fp00r.whole &= 0xfffffffc; ++ ++ gc20r.whole = readl(GC20R(addr)); ++ ++ if(!(gc20r.whole & 0x1)) { ++ gc20r.whole |= 0x1; ++ writel(gc20r.whole, GC20R(addr)); ++ } ++ ++ fp00r.whole |= 0x3; ++ writel(fp00r.whole, FP00R(addr)); ++ ++ /* enable CRT for GC1 */ ++ gc00r.whole = readl(GC00R(addr)); ++ ++ if(!(gc00r.whole & 0x1)) { ++ gc00r.whole |= 0x1; ++ writel(gc00r.whole, GC00R(addr)); ++ } ++ ++ gc01r.whole = readl(GC01R(addr)); ++ gc01r.whole &= 0xfffffffc; ++ ++ gc01r.whole |= 0x1; ++ writel(gc01r.whole, GC01R(addr)); ++ ++} ++ ++int mq200_external_probe(unsigned long addr) ++{ ++ union pc00r pc00r; ++ if(readl(PMR(addr)) != PMR_VALUE) ++ return 0; ++ ++ pc00r.whole = readl(PC00R(addr)); ++ printk(KERN_INFO "mq200 video driver found Vendor: 0x%X Device: 0x%X\n", ++ pc00r.part.device, pc00r.part.vendor); ++ return 1; ++} +diff -Nur linux-2.6.24.vanilla/drivers/video/mq200/mq_skeleton.c linux-2.6.24/drivers/video/mq200/mq_skeleton.c +--- linux-2.6.24.vanilla/drivers/video/mq200/mq_skeleton.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/video/mq200/mq_skeleton.c 2008-02-20 21:51:22.000000000 +0100 +@@ -0,0 +1,398 @@ ++/* ++ * Author: Holger Hans Peter Freyther ++ * ++ * ++ * This implements the frame buffer driver interface to communicate ++ * with the kernel. ++ * It uses the mq200 routines from the ucLinux driver from Lineo ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/autoconf.h> ++#include <linux/platform_device.h> ++#include <linux/module.h> ++#include <linux/fb.h> ++#include <linux/types.h> ++#include <linux/spinlock.h> ++ ++#include "mq200_data.h" ++ ++#if CONFIG_SA1100_SIMPAD ++/* ++ * Siemens SIMpad specefic data ++ */ ++#include <asm/arch/simpad.h> ++#include <asm/arch/hardware.h> ++ ++#define MQ200_REGIONS simpad_mq200_regions ++#define MQ200_MONITOR simpad_mq200_panel ++ ++static struct mq200_io_regions simpad_mq200_regions = { ++ .fb_size = MQ200_FB_SIZE, ++ .phys_mmio_base = 0x4be00000, ++ .virt_mmio_base = 0xf2e00000, ++ .phys_fb_base = 0x4b800000, ++ .virt_fb_base = 0xf2800000, ++}; ++ ++static struct mq200_monitor_info simpad_mq200_panel = { ++ .horizontal_res = 800, ++ .vertical_res = 600, ++ .depth = 16, ++ .refresh = 60, ++ .line_length = 1600, ++ .flags = 0x00130004, ++}; ++ ++extern long get_cs3_shadow(void); ++extern void set_cs3_bit(int value); ++extern void clear_cs3_bit(int value); ++#endif ++ ++ ++ ++struct mq200_info { ++ struct fb_info fb_info; ++ struct mq200_io_regions io_regions; ++ struct mq200_monitor_info monitor_info; ++ ++ /* palette */ ++ u32 pseudo_palette[17]; /* 16 colors + 1 in reserve not that well documented... */ ++ spinlock_t lock; ++}; ++ ++ ++ ++static int mq200_blank( int blank_mode, struct fb_info *info ) ++{ ++#ifdef CONFIG_SA1100_SIMPAD ++ if(blank_mode ){ ++ clear_cs3_bit(DISPLAY_ON); ++ }else { ++ set_cs3_bit(DISPLAY_ON); ++ } ++#endif ++ return 0; ++} ++ ++ ++static int mq200_check_var(struct fb_var_screeninfo *var, ++ struct fb_info *info ) ++{ /* TODO do we need sanity checks here */ ++ return 0; ++} ++ ++ ++static int mq200_set_par( struct fb_info *info ) ++{ ++ /* TODO set paraemeter */ ++ return 0; ++} ++ ++static int mq200_setcolreg(unsigned regno, unsigned red, unsigned green, ++ unsigned blue, unsigned transp, ++ struct fb_info *info ) ++{ ++ struct mq200_info *p; ++ unsigned long color; ++ u32* pal = info->pseudo_palette; ++ ++ p = info->par; ++ ++ if(regno > 255 ) ++ return 1; ++ ++ switch( info->var.bits_per_pixel ){ ++ case 16: ++ pal[regno] = ++ ((red & 0xf800) >> 0) | ++ ((green & 0xf800) >> 5) | ((blue & 0xf800) >> 11); ++ break; ++ case 24: ++ pal[regno] = ++ ((red & 0xff00) << 8) | ++ ((green & 0xff00)) | ((blue & 0xff00) >> 8); ++ break; ++ case 32: ++ pal[regno] = ++ ((red & 0xff00) >> 8) | ++ ((green & 0xff00)) | ((blue & 0xff00) << 8); ++ break; ++ default: ++ break; ++ } ++ ++ red &= 0xFF; ++ green &= 0xFF; ++ blue &= 0xFF; ++ ++ color = red | (green << 8) | (blue << 16); ++ mq200_external_setpal(regno, color, p->io_regions.virt_mmio_base); ++ ++ return 0; ++} ++ ++ ++static struct fb_ops mq200_ops = { ++ .owner = THIS_MODULE, ++ .fb_check_var = mq200_check_var, ++ .fb_set_par = mq200_set_par, ++ .fb_setcolreg = mq200_setcolreg, ++#ifdef FB_SOFT_CURSOR ++ .fb_cursor = soft_cursor, /* FIXME use hardware cursor */ ++#endif ++ .fb_fillrect = cfb_fillrect, ++ .fb_copyarea = cfb_copyarea, ++ .fb_imageblit = cfb_imageblit, ++ .fb_blank = mq200_blank, ++}; ++ ++ ++/********************************************************************* ++ * ++ * Device driver and module init code ++ * this will register to the fb layer later ++ * ++ *********************************************************************/ ++static void mq200_internal_init_color( struct fb_bitfield* red, ++ struct fb_bitfield* green, ++ struct fb_bitfield* blue, ++ int bpp ) ++{ ++ switch ( bpp ) ++ { ++ case 16: ++ red->offset = 11; ++ green->offset = 5; ++ blue->offset = 0; ++ ++ red->length = 5; ++ green->length = 6; ++ blue->length = 5; ++ break; ++ case 24: ++ red->offset = 16; ++ green->offset = 8; ++ blue->offset = 0; ++ ++ red->length = 8; ++ green->length = 8; ++ blue->length = 8; ++ break; ++ case 32: ++ red->offset = 0; ++ green->offset = 8; ++ blue->offset = 16; ++ ++ red->length = 8; ++ green->length = 8; ++ blue->length = 8; ++ case 8: /* fall through */ ++ default: ++ red->offset = green->offset = blue->offset = 0; ++ red->length = green->length = blue->length = bpp; ++ break; ++ } ++ ++} ++ ++ ++static struct mq200_info* __init mq200_internal_init_fbinfo(void) ++{ ++ struct mq200_info *info = NULL; ++ ++ info = (struct mq200_info*)kmalloc(sizeof(*info), GFP_KERNEL); ++ if(!info) ++ return NULL; ++ ++ /* ++ * Initialize memory ++ */ ++ memset(info, 0, sizeof(struct mq200_info) ); ++ spin_lock_init(&info->lock); ++ ++ /* set the base IO addresses */ ++ info->io_regions = MQ200_REGIONS; ++ info->monitor_info = MQ200_MONITOR; ++ ++ info->fb_info.screen_base = (char *)info->io_regions.virt_fb_base; ++ ++ /* fb_fix_screeninfo filling */ ++ strcpy(info->fb_info.fix.id, "MQ200_FB" ); ++ info->fb_info.fix.smem_start = info->io_regions.phys_fb_base; ++ info->fb_info.fix.smem_len = info->io_regions.fb_size; /* - CURSOR_IMAGE */ ++ info->fb_info.fix.mmio_start = info->io_regions.phys_mmio_base; ++ info->fb_info.fix.mmio_len = MQ200_REGS_SIZE; ++ info->fb_info.fix.type = FB_TYPE_PACKED_PIXELS; ++ info->fb_info.fix.accel = FB_ACCEL_NONE; ++ info->fb_info.fix.line_length = MQ200_MONITOR_LINE_LENGTH(info); ++ ++ if(MQ200_MONITOR_DEPTH(info) <= 8 ) ++ info->fb_info.fix.visual = FB_VISUAL_PSEUDOCOLOR; ++ else if( MQ200_MONITOR_DEPTH(info) >= 16 ) ++ info->fb_info.fix.visual = FB_VISUAL_DIRECTCOLOR; ++ else ++ panic("Calling mq200 with wrong display data\n"); ++ ++ /* set the variable screen info */ ++ info->fb_info.var.xres = MQ200_MONITOR_HORI_RES(info); ++ info->fb_info.var.yres = MQ200_MONITOR_VERT_RES(info); ++ info->fb_info.var.xres_virtual = MQ200_MONITOR_HORI_RES(info); ++ info->fb_info.var.yres_virtual = MQ200_MONITOR_VERT_RES(info); ++ info->fb_info.var.bits_per_pixel = MQ200_MONITOR_DEPTH(info); ++ ++ mq200_internal_init_color(&info->fb_info.var.red, ++ &info->fb_info.var.green, ++ &info->fb_info.var.blue, ++ MQ200_MONITOR_DEPTH(info) ); ++ ++ info->fb_info.var.transp.length = info->fb_info.var.transp.offset = 0; ++ info->fb_info.var.height = info->fb_info.var.width = -1; ++ ++ info->fb_info.var.vmode = FB_VMODE_NONINTERLACED; ++ info->fb_info.var.pixclock = 10000; ++ info->fb_info.var.left_margin = info->fb_info.var.right_margin = 16; ++ info->fb_info.var.upper_margin = info->fb_info.var.lower_margin = 16; ++ info->fb_info.var.hsync_len = info->fb_info.var.vsync_len = 8; ++ ++ info->fb_info.var.nonstd = 0; ++ info->fb_info.var.activate = FB_ACTIVATE_NOW; ++ info->fb_info.var.accel_flags = 0; ++ ++ return info; ++} ++ ++ ++extern void mq200_register_attributes(struct device* ); ++/* ++ * gets called from the bus ++ * we will register our framebuffer from here ++ */ ++static int __init mq200_probe(struct device *dev) ++{ ++ struct mq200_info *info = NULL; ++ int retv= 0; ++ ++ info = mq200_internal_init_fbinfo(); ++ if(!mq200_external_probe(info->io_regions.virt_mmio_base)) ++ goto error_out; ++ ++ GPDR |= (1<<3); ++ GAFR &= ~(1<<3); ++ GPSR |= (1<<3); ++ ++ mq200_external_setqmode(&info->monitor_info, ++ info->io_regions.virt_mmio_base, ++ &info->lock); ++ ++ info->fb_info.fbops = &mq200_ops; ++ info->fb_info.flags = FBINFO_FLAG_DEFAULT; ++ ++ mq200_check_var(&info->fb_info.var, &info->fb_info ); ++ ++ fb_alloc_cmap(&info->fb_info.cmap, 1 << MQ200_MONITOR_DEPTH(info), 0 ); ++ ++ info->fb_info.pseudo_palette = (void*)info->pseudo_palette; ++ ++ /* save the pointer to the mq200 struct in var */ ++ info->fb_info.par = info; ++ ++ retv = register_framebuffer(&info->fb_info ); ++ if(retv < 0) ++ goto error_out; ++ ++ ++ /* will get unset if retv != 0 */ ++ dev_set_drvdata(dev, info ); ++ return retv; ++ ++/* ++ * Free the info and exit ++ */ ++error_out: ++ kfree(info); ++ return -EINVAL; ++} ++ ++#ifdef CONFIG_PM ++static struct mq200_info* get_mq200_info( struct device *dev) ++{ ++ return dev_get_drvdata(dev); ++} ++ ++static unsigned long get_mmio_base( struct device *dev ) ++{ ++ struct mq200_info *info = get_mq200_info(dev); ++ return info->io_regions.virt_mmio_base; ++} ++ ++static struct mq200_monitor_info* get_monitor_info( struct device *dev) ++{ ++ struct mq200_info *info = get_mq200_info(dev); ++ return &info->monitor_info; ++} ++ ++static spinlock_t* get_spinlock( struct device *dev) ++{ ++ return &get_mq200_info(dev)->lock; ++} ++ ++/* ++ * FIXME: make sure we only call mq200_external_offdisplay only once ++ * a 2nd time will hang the kernel -zecke ++ * ++ * FIXME: save the content of the framebuffer inside dev->saved_state ++ * so on resume we can memcpy it back into the buffer and userspace ++ * does not need to redraw ++ * ++ * functions for suspending and resuming ++ */ ++static int mq200_suspend(struct device *dev, pm_message_t state) ++{ ++ ++ mq200_external_offdisplay( get_mmio_base(dev) ); ++ clear_cs3_bit(DISPLAY_ON); ++ ++ ++ return 0; ++} ++ ++static int mq200_resume(struct device *dev) ++{ ++ unsigned long mem = get_mmio_base(dev); ++ struct mq200_monitor_info *monitor = get_monitor_info(dev); ++ mq200_external_setqmode(monitor, mem, get_spinlock(dev) ); ++ ++ ++ /* ++ * Set display on if it was on ++ */ ++ set_cs3_bit(DISPLAY_ON); ++ ++ return 0; ++} ++ ++ ++#endif ++ ++ ++static struct device_driver mq200fb_driver = { ++ .name = "simpad-mq200", ++ .bus = &platform_bus_type, ++ .probe = mq200_probe, /* will be called after we've registered the driver */ ++ .suspend = mq200_suspend, ++ .resume = mq200_resume ++}; ++ ++int __devinit mq200_init(void) ++{ ++ return driver_register(&mq200fb_driver); ++} ++ ++module_init(mq200_init); ++MODULE_DESCRIPTION("MQ200 framebuffer driver"); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Holger Hans Peter Freyther"); diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-orinoco_cs-shared-irq.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-orinoco_cs-shared-irq.patch new file mode 100644 index 0000000000..2568093020 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-orinoco_cs-shared-irq.patch @@ -0,0 +1,21 @@ +diff -Nur linux-2.6.24.vanilla/drivers/net/wireless/orinoco_cs.c linux-2.6.24/drivers/net/wireless/orinoco_cs.c +--- linux-2.6.24.vanilla/drivers/net/wireless/orinoco_cs.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/net/wireless/orinoco_cs.c 2008-02-22 21:23:51.000000000 +0100 +@@ -8,6 +8,8 @@ + * cards such as the 3Com AirConnect and Ericsson WLAN. + * + * Copyright notice & release notes in file orinoco.c ++ * ++ * mrdata: added shared irq + */ + + #define DRIVER_NAME "orinoco_cs" +@@ -120,7 +122,7 @@ + link->priv = dev; + + /* Interrupt setup */ +- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; ++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_FIRST_SHARED | IRQ_HANDLE_PRESENT; + link->irq.IRQInfo1 = IRQ_LEVEL_ID; + link->irq.Handler = orinoco_interrupt; + link->irq.Instance = dev; diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-pcmcia.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-pcmcia.patch new file mode 100644 index 0000000000..5560d67494 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-pcmcia.patch @@ -0,0 +1,209 @@ +diff -Nur linux-2.6.24.vanilla/drivers/pcmcia/cs.c linux-2.6.24/drivers/pcmcia/cs.c +--- linux-2.6.24.vanilla/drivers/pcmcia/cs.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/pcmcia/cs.c 2008-02-22 20:53:06.000000000 +0100 +@@ -10,6 +10,8 @@ + * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. + * + * (C) 1999 David A. Hinds ++ * ++ * mrdata: -added suspend fix + */ + + #include <linux/module.h> +@@ -59,6 +61,10 @@ + INT_MODULE_PARM(unreset_delay, 10); /* centiseconds */ + INT_MODULE_PARM(unreset_check, 10); /* centiseconds */ + INT_MODULE_PARM(unreset_limit, 30); /* unreset_check's */ ++// INT_MODULE_PARM(unreset_delay, 20); /* centiseconds */ ++// INT_MODULE_PARM(unreset_check, 100); /* centiseconds */ ++// INT_MODULE_PARM(unreset_limit, 300); /* unreset_check's */ ++ + + /* Access speed for attribute memory windows */ + INT_MODULE_PARM(cis_speed, 300); /* ns */ +@@ -366,6 +372,7 @@ + skt->ops->set_socket(skt, &skt->socket); + + msleep(unreset_delay * 10); ++ + for (i = 0; i < unreset_limit; i++) { + skt->ops->get_status(skt, &status); + +@@ -434,7 +441,7 @@ + + msleep(initial_delay * 10); + +- for (i = 0; i < 100; i++) { ++ for (i = 0; i < 100; i++) { + skt->ops->get_status(skt, &status); + if (!(status & SS_DETECT)) + return CS_NO_CARD; +diff -Nur linux-2.6.24.vanilla/drivers/pcmcia/sa1100_generic.c linux-2.6.24/drivers/pcmcia/sa1100_generic.c +--- linux-2.6.24.vanilla/drivers/pcmcia/sa1100_generic.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/pcmcia/sa1100_generic.c 2008-02-22 20:53:06.000000000 +0100 +@@ -28,6 +28,9 @@ + the provisions above, a recipient may use your version of this + file under either the MPL or the GPL. + ++ 2007 mrnice: added thesings changes from device_driver ++ to platform_driver - many thx to thesing ++ + ======================================================================*/ + + #include <linux/module.h> +@@ -81,13 +84,15 @@ + return ret; + } + +-static struct device_driver sa11x0_pcmcia_driver = { +- .probe = sa11x0_drv_pcmcia_probe, +- .remove = soc_common_drv_pcmcia_remove, +- .name = "sa11x0-pcmcia", +- .bus = &platform_bus_type, +- .suspend = pcmcia_socket_dev_suspend, +- .resume = pcmcia_socket_dev_resume, ++static struct platform_driver sa11x0_pcmcia_driver = { ++ .driver = { ++ .name = "sa11x0-pcmcia", ++ .probe = sa11x0_drv_pcmcia_probe, ++ .remove = soc_common_drv_pcmcia_remove, ++ .suspend= pcmcia_socket_dev_suspend, ++ .resume = pcmcia_socket_dev_resume, ++ //.bus = &platform_bus_type, ++ }, + }; + + /* sa11x0_pcmcia_init() +@@ -100,7 +105,7 @@ + */ + static int __init sa11x0_pcmcia_init(void) + { +- return driver_register(&sa11x0_pcmcia_driver); ++ return platform_driver_register(&sa11x0_pcmcia_driver); + } + + /* sa11x0_pcmcia_exit() +@@ -110,7 +115,7 @@ + */ + static void __exit sa11x0_pcmcia_exit(void) + { +- driver_unregister(&sa11x0_pcmcia_driver); ++ platform_driver_unregister(&sa11x0_pcmcia_driver); + } + + MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>"); +diff -Nur linux-2.6.24.vanilla/drivers/pcmcia/sa1100_simpad.c linux-2.6.24/drivers/pcmcia/sa1100_simpad.c +--- linux-2.6.24.vanilla/drivers/pcmcia/sa1100_simpad.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/pcmcia/sa1100_simpad.c 2008-02-22 20:53:32.000000000 +0100 +@@ -8,13 +8,15 @@ + #include <linux/kernel.h> + #include <linux/device.h> + #include <linux/init.h> ++#include <linux/delay.h> + + #include <asm/hardware.h> + #include <asm/mach-types.h> + #include <asm/irq.h> + #include <asm/arch/simpad.h> + #include "sa1100_generic.h" +- ++ ++extern long get_cs3_ro(void); + extern long get_cs3_shadow(void); + extern void set_cs3_bit(int value); + extern void clear_cs3_bit(int value); +@@ -25,8 +27,15 @@ + + static int simpad_pcmcia_hw_init(struct soc_pcmcia_socket *skt) + { +- +- clear_cs3_bit(VCC_3V_EN|VCC_5V_EN|EN0|EN1); ++ clear_cs3_bit(VCC_3V_EN|VCC_5V_EN|EN0|EN1|PCMCIA_RESET); ++ ++ set_cs3_bit(PCMCIA_BUFF_DIS); ++ ++ msleep(10); ++ ++ clear_cs3_bit(PCMCIA_BUFF_DIS); ++ ++ msleep(5); + + skt->irq = IRQ_GPIO_CF_IRQ; + +@@ -38,7 +47,7 @@ + soc_pcmcia_free_irqs(skt, irqs, ARRAY_SIZE(irqs)); + + /* Disable CF bus: */ +- //set_cs3_bit(PCMCIA_BUFF_DIS); ++ set_cs3_bit(PCMCIA_BUFF_DIS); + clear_cs3_bit(PCMCIA_RESET); + } + +@@ -47,21 +56,17 @@ + struct pcmcia_state *state) + { + unsigned long levels = GPLR; +- long cs3reg = get_cs3_shadow(); +- +- state->detect=((levels & GPIO_CF_CD)==0)?1:0; +- state->ready=(levels & GPIO_CF_IRQ)?1:0; +- state->bvd1=1; /* Not available on Simpad. */ +- state->bvd2=1; /* Not available on Simpad. */ +- state->wrprot=0; /* Not available on Simpad. */ +- +- if((cs3reg & 0x0c) == 0x0c) { +- state->vs_3v=0; +- state->vs_Xv=0; +- } else { +- state->vs_3v=1; +- state->vs_Xv=0; +- } ++ ++ state->detect = ((levels & GPIO_CF_CD) == 0) ? 1 : 0 ; ++ state->ready = (levels & GPIO_CF_IRQ) ? 1 : 0 ; ++ ++ long cs3_ro_reg = get_cs3_ro(); ++ ++ state->bvd1 = (cs3_ro_reg & PCMCIA_BVD1) ? 1 : 0 ; /* old: =1 Not available on Simpad. */ ++ state->bvd2 = (cs3_ro_reg & PCMCIA_BVD2) ? 1 : 0 ; /* old: =1 Not available on Simpad. */ ++ state->wrprot = 0 ; /* Not available on Simpad. */ ++ state->vs_3v = (cs3_ro_reg & PCMCIA_VS1) ? 0 : 1 ; ++ state->vs_Xv = (cs3_ro_reg & PCMCIA_VS2) ? 0 : 1 ; + } + + static int +@@ -95,7 +100,11 @@ + local_irq_restore(flags); + return -1; + } +- ++ ++ if (state->flags & SS_RESET) ++ set_cs3_bit(PCMCIA_RESET); ++ else ++ clear_cs3_bit(PCMCIA_RESET); + + local_irq_restore(flags); + +@@ -104,6 +113,7 @@ + + static void simpad_pcmcia_socket_init(struct soc_pcmcia_socket *skt) + { ++ clear_cs3_bit(PCMCIA_RESET); + soc_pcmcia_enable_irqs(skt, irqs, ARRAY_SIZE(irqs)); + } + +diff -Nur linux-2.6.24.vanilla/drivers/pcmcia/soc_common.c linux-2.6.24/drivers/pcmcia/soc_common.c +--- linux-2.6.24.vanilla/drivers/pcmcia/soc_common.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/pcmcia/soc_common.c 2008-02-22 20:53:06.000000000 +0100 +@@ -747,7 +747,9 @@ + + add_timer(&skt->poll_timer); + +- device_create_file(&skt->socket.dev, &dev_attr_status); ++ ret = device_create_file(&skt->socket.dev, &dev_attr_status); ++ if (ret) ++ goto out_err_7; + } + + dev_set_drvdata(dev, sinfo); diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-serial-gpio_keys-and-cs3-ro.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-serial-gpio_keys-and-cs3-ro.patch new file mode 100644 index 0000000000..156b87cdbd --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-serial-gpio_keys-and-cs3-ro.patch @@ -0,0 +1,332 @@ +diff -Nur linux-2.6.24.vanilla/arch/arm/mach-sa1100/simpad.c linux-2.6.24/arch/arm/mach-sa1100/simpad.c +--- linux-2.6.24.vanilla/arch/arm/mach-sa1100/simpad.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/arch/arm/mach-sa1100/simpad.c 2008-02-20 21:10:00.000000000 +0100 +@@ -1,5 +1,15 @@ + /* + * linux/arch/arm/mach-sa1100/simpad.c ++ * ++ * 2007/04/11 mrdata: ++ * - insert simpad_uart_set_mctrl() ++ * simpad_uart_get_mctrl() ++ * - internal RS232/DECT/Bluetooth ++ * works again (based on 2.4 simpad-serial.patch) ++ * - added cs3_ro ++ * ++ * 2007/04/12 Bernhard Guillon: ++ * -added gpio_keys (based on h3000.c from hh.org) + */ + + #include <linux/module.h> +@@ -9,6 +19,9 @@ + #include <linux/proc_fs.h> + #include <linux/string.h> + #include <linux/pm.h> ++ ++#include <linux/apm-emulation.h> ++ + #include <linux/platform_device.h> + #include <linux/mtd/mtd.h> + #include <linux/mtd/partitions.h> +@@ -27,12 +40,21 @@ + + #include <linux/serial_core.h> + #include <linux/ioport.h> ++#include <linux/input.h> ++#include <linux/gpio_keys.h> + #include <asm/io.h> + + #include "generic.h" + ++long cs3_ro; + long cs3_shadow; + ++long get_cs3_ro(void) ++{ ++ cs3_ro = *(CS3BUSTYPE *)(CS3_BASE); ++ return cs3_ro; ++} ++ + long get_cs3_shadow(void) + { + return cs3_shadow; +@@ -55,9 +77,12 @@ + *(CS3BUSTYPE *)(CS3_BASE) = cs3_shadow; + } + ++EXPORT_SYMBOL(get_cs3_ro); ++EXPORT_SYMBOL(get_cs3_shadow); + EXPORT_SYMBOL(set_cs3_bit); + EXPORT_SYMBOL(clear_cs3_bit); + ++ + static struct map_desc simpad_io_desc[] __initdata = { + { /* MQ200 */ + .virtual = 0xf2800000, +@@ -73,23 +98,71 @@ + }; + + ++static void simpad_uart_set_mctrl(struct uart_port *port, u_int mctrl) ++{ ++ if (port->mapbase == _Ser1UTCR0) { ++ /* internal serial port (ttySA1, DECT/Bluetooth) */ ++ if (mctrl & TIOCM_RTS) GPCR = GPIO_UART1_RTS; ++ else GPSR = GPIO_UART1_RTS; ++ ++ if (mctrl & TIOCM_DTR) GPCR = GPIO_UART1_DTR; ++ else GPSR = GPIO_UART1_DTR; ++ } ++ ++ else if (port->mapbase == _Ser3UTCR0) { ++ /* external serial port (ttySA0, RS232) */ ++ if (mctrl & TIOCM_RTS) GPCR = GPIO_UART3_RTS; ++ else GPSR = GPIO_UART3_RTS; ++ ++ if (mctrl & TIOCM_DTR) GPCR = GPIO_UART3_DTR; ++ else GPSR = GPIO_UART3_DTR; ++ } ++} ++ ++ ++static u_int simpad_uart_get_mctrl(struct uart_port *port) ++{ ++ u_int ret = TIOCM_CD | TIOCM_CTS | TIOCM_DSR; ++ ++ if (port->mapbase == _Ser1UTCR0) { ++ /* internal serial port (ttySA1, DECT/Bluetooth) */ ++ int gplr = GPLR; ++ if (gplr & GPIO_UART1_DCD) ret &= ~TIOCM_CD; ++ if (gplr & GPIO_UART1_CTS) ret &= ~TIOCM_CTS; ++ if (gplr & GPIO_UART1_DSR) ret &= ~TIOCM_DSR; ++ } ++ ++ else if (port->mapbase == _Ser3UTCR0) { ++ /* external serial port (ttySA0, RS232) */ ++ int gplr = GPLR; ++ if (gplr & GPIO_UART3_DCD) ret &= ~TIOCM_CD; ++ if (gplr & GPIO_UART3_CTS) ret &= ~TIOCM_CTS; ++ if (gplr & GPIO_UART3_DSR) ret &= ~TIOCM_DSR; ++ } ++ return ret; ++} ++ ++ + static void simpad_uart_pm(struct uart_port *port, u_int state, u_int oldstate) + { +- if (port->mapbase == (u_int)&Ser1UTCR0) { +- if (state) +- { +- clear_cs3_bit(RS232_ON); +- clear_cs3_bit(DECT_POWER_ON); +- }else +- { +- set_cs3_bit(RS232_ON); +- set_cs3_bit(DECT_POWER_ON); +- } +- } ++ if (port->mapbase == (u_int)&Ser3UTCR0) { ++ if (state) ++ { ++ clear_cs3_bit(RS232_ON); ++ /* clear_cs3_bit(DECT_POWER_ON); */ ++ }else ++ { ++ set_cs3_bit(RS232_ON); ++ /* set_cs3_bit(DECT_POWER_ON); */ ++ } ++ } + } + ++ + static struct sa1100_port_fns simpad_port_fns __initdata = { +- .pm = simpad_uart_pm, ++ .set_mctrl = simpad_uart_set_mctrl, ++ .get_mctrl = simpad_uart_get_mctrl, ++ .pm = simpad_uart_pm, + }; + + +@@ -135,7 +208,6 @@ + }; + + +- + static void __init simpad_map_io(void) + { + sa1100_map_io(); +@@ -144,13 +216,12 @@ + + set_cs3_bit (EN1 | EN0 | LED2_ON | DISPLAY_ON | RS232_ON | + ENABLE_5V | RESET_SIMCARD | DECT_POWER_ON); +- +- ++ + sa1100_register_uart_fns(&simpad_port_fns); + sa1100_register_uart(0, 3); /* serial interface */ + sa1100_register_uart(1, 1); /* DECT */ + +- // Reassign UART 1 pins ++ /* Reassign UART 1 pins */ + GAFR |= GPIO_UART_TXD | GPIO_UART_RXD; + GPDR |= GPIO_UART_TXD | GPIO_LDD13 | GPIO_LDD15; + GPDR &= ~GPIO_UART_RXD; +@@ -160,7 +231,6 @@ + * Set up registers for sleep mode. + */ + +- + PWER = PWER_GPIO0| PWER_RTC; + PGSR = 0x818; + PCFR = 0; +@@ -171,9 +241,10 @@ + sa11x0_set_mcp_data(&simpad_mcp_data); + } + ++ + static void simpad_power_off(void) + { +- local_irq_disable(); // was cli ++ local_irq_disable(); /* was cli */ + set_cs3(0x800); /* only SD_MEDIAQ */ + + /* disable internal oscillator, float CS lines */ +@@ -191,31 +262,52 @@ + while(1); + + local_irq_enable(); /* we won't ever call it */ ++} + + +-} ++/* ++ * gpio_keys ++*/ ++ ++static struct gpio_keys_button simpad_button_table[] = { ++ { KEY_POWER, IRQ_GPIO_POWER_BUTTON, 1, "power button" }, ++}; ++ ++static struct gpio_keys_platform_data simpad_keys_data = { ++ .buttons = simpad_button_table, ++ .nbuttons = ARRAY_SIZE(simpad_button_table), ++}; ++ ++static struct platform_device simpad_keys = { ++ .name = "gpio-keys", ++ .dev = { ++ .platform_data = &simpad_keys_data, ++ }, ++}; + + + /* + * MediaQ Video Device + */ ++ + static struct platform_device simpad_mq200fb = { + .name = "simpad-mq200", + .id = 0, + }; + ++ + static struct platform_device *devices[] __initdata = { +- &simpad_mq200fb ++ &simpad_keys, ++ &simpad_mq200fb, + }; + + +- + static int __init simpad_init(void) + { + int ret; + + pm_power_off = simpad_power_off; +- ++ + ret = platform_add_devices(devices, ARRAY_SIZE(devices)); + if(ret) + printk(KERN_WARNING "simpad: Unable to register mq200 framebuffer device"); +diff -Nur linux-2.6.24.vanilla/include/asm-arm/arch-sa1100/simpad.h linux-2.6.24/include/asm-arm/arch-sa1100/simpad.h +--- linux-2.6.24.vanilla/include/asm-arm/arch-sa1100/simpad.h 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/include/asm-arm/arch-sa1100/simpad.h 2008-02-20 21:10:00.000000000 +0100 +@@ -12,11 +12,12 @@ + #define __ASM_ARCH_SIMPAD_H + + +-#define GPIO_UART1_RTS GPIO_GPIO14 ++#define GPIO_UART1_RTS GPIO_GPIO9 + #define GPIO_UART1_DTR GPIO_GPIO7 + #define GPIO_UART1_CTS GPIO_GPIO8 + #define GPIO_UART1_DCD GPIO_GPIO23 + #define GPIO_UART1_DSR GPIO_GPIO6 ++#define GPIO_UART1_RI GPIO_GPIO19 + + #define GPIO_UART3_RTS GPIO_GPIO12 + #define GPIO_UART3_DTR GPIO_GPIO16 +@@ -48,9 +49,9 @@ + #define GPIO_SMART_CARD GPIO_GPIO10 + #define IRQ_GPIO_SMARD_CARD IRQ_GPIO10 + +-// CS3 Latch is write only, a shadow is necessary ++// CS3 Latch is write only 16-bit , a shadow is necessary + +-#define CS3BUSTYPE unsigned volatile long ++#define CS3BUSTYPE unsigned volatile long + #define CS3_BASE 0xf1000000 + + #define VCC_5V_EN 0x0001 // For 5V PCMCIA +@@ -70,43 +71,17 @@ + #define ENABLE_5V 0x4000 // Enable 5V circuit + #define RESET_SIMCARD 0x8000 + +-#define RS232_ENABLE 0x0440 +-#define PCMCIAMASK 0x402f ++// CS3 Latch is readable only 8-bit interest + ++#define PCMCIA_BVD1 0x0001 ++#define PCMCIA_BVD2 0x0002 ++#define PCMCIA_VS1 0x0004 // PCMCIA card voltage select ++#define PCMCIA_VS2 0x0008 // PCMCIA card voltage select, if both are in high state -> 5V PCMCIA card ++#define LOCK_IND 0x0010 ++#define CHARGING_STATE 0x0020 // Ladestatus ++#define PCMCIA_SHORT 0x0040 // low active + +-struct simpad_battery { +- unsigned char ac_status; /* line connected yes/no */ +- unsigned char status; /* battery loading yes/no */ +- unsigned char percentage; /* percentage loaded */ +- unsigned short life; /* life till empty */ +-}; +- +-/* These should match the apm_bios.h definitions */ +-#define SIMPAD_AC_STATUS_AC_OFFLINE 0x00 +-#define SIMPAD_AC_STATUS_AC_ONLINE 0x01 +-#define SIMPAD_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */ +-#define SIMPAD_AC_STATUS_AC_UNKNOWN 0xff +- +-/* These bitfields are rarely "or'd" together */ +-#define SIMPAD_BATT_STATUS_HIGH 0x01 +-#define SIMPAD_BATT_STATUS_LOW 0x02 +-#define SIMPAD_BATT_STATUS_CRITICAL 0x04 +-#define SIMPAD_BATT_STATUS_CHARGING 0x08 +-#define SIMPAD_BATT_STATUS_CHARGE_MAIN 0x10 +-#define SIMPAD_BATT_STATUS_DEAD 0x20 /* Battery will not charge */ +-#define SIMPAD_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */ +-#define SIMPAD_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */ +-#define SIMPAD_BATT_STATUS_NOBATT 0x80 +-#define SIMPAD_BATT_STATUS_UNKNOWN 0xff +- +-extern int simpad_get_battery(struct simpad_battery* ); ++#define RS232_ENABLE 0x0440 ++#define PCMCIAMASK 0x402f + + #endif // __ASM_ARCH_SIMPAD_H +- +- +- +- +- +- +- +- diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-switches.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-switches.patch new file mode 100644 index 0000000000..20cb56d11b --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-switches.patch @@ -0,0 +1,359 @@ +diff -Nur linux-2.6.24.vanilla/drivers/mfd/Kconfig linux-2.6.24/drivers/mfd/Kconfig +--- linux-2.6.24.vanilla/drivers/mfd/Kconfig 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/Kconfig 2008-02-20 21:17:07.000000000 +0100 +@@ -38,4 +38,7 @@ + tristate "Touchscreen interface support" + depends on MCP_UCB1200 && INPUT + ++config MCP_UCB1200_SWITCHES ++ tristate "SIMpad Switches support" ++ depends on MCP_UCB1200 && INPUT + endmenu +diff -Nur linux-2.6.24.vanilla/drivers/mfd/Makefile linux-2.6.24/drivers/mfd/Makefile +--- linux-2.6.24.vanilla/drivers/mfd/Makefile 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/Makefile 2008-02-20 21:17:07.000000000 +0100 +@@ -8,7 +8,7 @@ + obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o + obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o + obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o +- ++obj-$(CONFIG_MCP_UCB1200_SWITCHES) += ucb1x00-switches.o + ifeq ($(CONFIG_SA1100_ASSABET),y) + obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o + endif +diff -Nur linux-2.6.24.vanilla/drivers/mfd/ucb1x00-switches.c linux-2.6.24/drivers/mfd/ucb1x00-switches.c +--- linux-2.6.24.vanilla/drivers/mfd/ucb1x00-switches.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/ucb1x00-switches.c 2008-02-20 21:17:07.000000000 +0100 +@@ -0,0 +1,332 @@ ++/* ++ * linux/drivers/mfd/ucb1x00-switches.c ++ * ++ * Copyright (C) 2007 Bernhard Guillon. ++ * ++ * 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. ++ * ++ * This driver is for the Switches of Siemens SIMpad (CL4,SL4,SLC), T-Sinus-Pad and ++ * Swisscom WP50 devices. ++ * ++ * Six switches are routed to GPIO pins on the UCB1300: S3 -- S8. ++ * ++ * This driver is based on the 2.4 ucb1x00-switches, the 2.6 ucb1x00-assabet ++ * and the ucb1x00-ts driver. ++ * ++ * 2007/06/21 mrdata: ++ * - create new thread kswd() to handle irq_events for ucb1300-gpio's ++ * - found out, that not every key-press or key-release ++ * generate a irq_event ++ * -> establish key_state handling ++ * key_state, key_state_last <-> KEY_PRESS, KEY_RELEASE ++ * -> after irq_event polling the ucb1300-gpio's till all keys ++ * in key_state = KEY_RELEASE ++ * ++ */ ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/input.h> ++#include <linux/device.h> ++#include <linux/sched.h> ++#include <linux/freezer.h> ++#include <linux/kthread.h> ++ ++#include <asm/dma.h> ++ ++#include "ucb1x00.h" ++ ++#define KEY_PRESS 1 ++#define KEY_RELEASE 0 ++ ++static int key [6] = { KEY_PROG1,KEY_PROG2,KEY_UP,KEY_DOWN,KEY_LEFT,KEY_RIGHT }; ++ ++static unsigned short int key_state [6] = { 0, 0, 0, 0, 0, 0}; ++static unsigned short int key_state_last [6] = { 1, 1, 1, 1, 1, 1}; ++ ++struct ucb1x00_switches { ++ struct input_dev *idev; ++ struct ucb1x00 *ucb; ++ ++ wait_queue_head_t irq_wait; ++ struct task_struct *rtask; ++ ++ int idx; ++ ++ unsigned int valid:1; ++}; ++ ++static int ucb1x00_thread(void *_switches_id) ++{ ++ unsigned short int this; ++ int idx_tmp; ++ int i; ++ struct ucb1x00_switches *switches = _switches_id; ++ struct input_dev *idev = switches->idev; ++ struct task_struct *tsk = current; ++ DECLARE_WAITQUEUE(wait, tsk); ++ ++ add_wait_queue(&switches->irq_wait, &wait); ++ ++ while (!kthread_should_stop()) ++ { ++ signed long timeout; ++ ++ if ((switches->idx >= 0) && (switches->idx <= 5) && (switches->valid == 1)) ++ { ++ switches->valid = 0; ++ ++ idx_tmp = switches->idx; ++ ++ ucb1x00_enable(switches->ucb); ++ ++ this = ~ucb1x00_io_read(switches->ucb); ++ ++ ucb1x00_disable(switches->ucb); ++ ++ if (key_state[idx_tmp] == KEY_RELEASE) ++ { ++ key_state_last[idx_tmp] = KEY_RELEASE; ++ key_state[idx_tmp] = KEY_PRESS; ++ ++ input_report_key(idev, key[idx_tmp], KEY_PRESS); ++ input_sync(idev); ++ } ++ ++ for (i = 0; i < 6; i++) ++ { ++ if ((key_state[i] == KEY_RELEASE) && (((this & (1 << i)) ? 1 : 0) == KEY_PRESS)) ++ { ++ key_state_last[i] = KEY_RELEASE; ++ key_state[i] = KEY_PRESS; ++ ++ input_report_key(idev, key[i], KEY_PRESS); ++ input_sync(idev); ++ } ++ } ++ ++ for(;;) ++ { ++ ucb1x00_enable(switches->ucb); ++ this = ~ucb1x00_io_read(switches->ucb); ++ ucb1x00_disable(switches->ucb); ++ ++ for (i = 0; i < 6; i++) ++ { ++ if ((key_state[i] == KEY_PRESS) && (((this & (1 << i)) ? 1 : 0) == KEY_RELEASE)) ++ { ++ key_state_last[i] = KEY_PRESS; ++ key_state[i] = KEY_RELEASE; ++ ++ input_report_key(idev, key[i], KEY_RELEASE); ++ input_sync(idev); ++ } ++ ++ if ((key_state[i] == KEY_RELEASE) && (((this & (1 << i)) ? 1 : 0) == KEY_PRESS)) ++ { ++ key_state_last[i] = KEY_RELEASE; ++ key_state[i] = KEY_PRESS; ++ ++ input_report_key(idev, key[i], KEY_PRESS); ++ input_sync(idev); ++ } ++ ++ } ++ ++ // left loop, if no key press detect ++ if ((this | 0xff80) == 0xff80) ++ { ++ break; ++ } ++ ++ set_task_state(tsk, TASK_INTERRUPTIBLE); ++ ++ try_to_freeze(); ++ ++ timeout = HZ / 100; ++ ++ schedule_timeout(timeout); ++ } ++ } ++ ++ set_task_state(tsk, TASK_INTERRUPTIBLE); ++ ++ try_to_freeze(); ++ ++ timeout = MAX_SCHEDULE_TIMEOUT; ++ ++ schedule_timeout(timeout); ++ } ++ ++ remove_wait_queue(&switches->irq_wait, &wait); ++ ++ switches->rtask = NULL; ++ ++ return 0; ++} ++ ++ ++static void ucb1x00_dev_irq(int idx, void *id) ++{ ++ struct ucb1x00_switches *switches = id; ++ ++ switches->idx = idx; ++ switches->valid = 1; ++ ++ wake_up(&switches->irq_wait); ++} ++ ++static int ucb1x00_switches_add(struct ucb1x00_dev *dev) ++{ ++ struct ucb1x00_switches *switches; ++ struct input_dev *idev; ++ int err,i; ++ ++ switches = kzalloc(sizeof(struct ucb1x00_switches), GFP_KERNEL); ++ idev = input_allocate_device(); ++ ++ if (!switches || !idev) { ++ err = -ENOMEM; ++ goto fail; ++ } ++ ++ switches->ucb = dev->ucb; ++ ++ idev->private = switches; ++ idev->name = "SIMpad Switches"; ++ idev->id.product = switches->ucb->id; ++ ++ __set_bit(EV_KEY, idev->evbit); ++ __set_bit(EV_REP, idev->evbit); ++ __set_bit(KEY_PROG1, idev->keybit); ++ __set_bit(KEY_PROG2, idev->keybit); ++ __set_bit(KEY_UP, idev->keybit); ++ __set_bit(KEY_DOWN, idev->keybit); ++ __set_bit(KEY_LEFT, idev->keybit); ++ __set_bit(KEY_RIGHT, idev->keybit); ++ ++ err = input_register_device(idev); ++ if (err) ++ goto fail; ++ switches->idev = idev; ++ dev->priv = switches; ++ ++ BUG_ON(switches->rtask); ++ ++ init_waitqueue_head(&switches->irq_wait); ++ ++ ucb1x00_enable(switches->ucb); ++ ++ ucb1x00_io_set_dir(switches->ucb, ++ UCB_IO_0 | UCB_IO_1 | UCB_IO_2 | ++ UCB_IO_3 | UCB_IO_4 | UCB_IO_5, ++ UCB_IO_8 | UCB_IO_9); ++ ++ ucb1x00_disable(switches->ucb); ++ ++ for (i = 0; i < 6; ++i) { ++ ucb1x00_enable_irq(switches->ucb, i, UCB_RISING | UCB_FALLING); ++ ++ if (ucb1x00_hook_irq(switches->ucb, i, ucb1x00_dev_irq, switches) < 0) { ++ printk(KERN_ERR "unable to hook IRQ for " ++ "UCB1300 SWITCH_%d\n", i); ++ return -EBUSY; ++ } ++ } ++ ++ switches->rtask = kthread_run(ucb1x00_thread, switches, "kswd"); ++ if (!IS_ERR(switches->rtask)) ++ { ++ return 0; ++ } ++ else ++ { ++ input_unregister_device(switches->idev); ++ ++ for (i = 5; i >= 0; --i) { ++ ucb1x00_disable_irq(switches->ucb, i, UCB_RISING | UCB_FALLING); ++ ++ /* Only error conditions are ENOENT and EINVAL; silently ++ * ignore: ++ */ ++ ucb1x00_free_irq(switches->ucb, i, NULL); ++ } ++ switches->rtask = NULL; ++ ucb1x00_disable(switches->ucb); ++ kfree(switches); ++ ++ return -EFAULT; ++ } ++ ++fail: ++ input_free_device(idev); ++ kfree(switches); ++ return err; ++ ++} ++ ++static void ucb1x00_switches_remove(struct ucb1x00_dev *dev) ++{ ++ int i; ++ struct ucb1x00_switches *switches = dev->priv; ++ ++ if (switches->rtask) ++ kthread_stop(switches->rtask); ++ ++ switches->rtask = NULL; ++ ++ input_unregister_device(switches->idev); ++ ++ for (i = 5; i >= 0; --i) { ++ ucb1x00_disable_irq(switches->ucb, i, UCB_RISING | UCB_FALLING); ++ ++ /* Only error conditions are ENOENT and EINVAL; silently ++ * ignore: ++ */ ++ ucb1x00_free_irq(switches->ucb, i, NULL); ++ } ++ ucb1x00_disable(switches->ucb); ++ kfree(switches); ++} ++ ++#ifdef CONFIG_PM ++static int ucb1x00_switches_resume(struct ucb1x00_dev *dev) ++{ ++ struct ucb1x00_switches *switches = dev->priv; ++ ++ if (switches->rtask != NULL) ++ { ++ switches->valid = 0; ++ wake_up(&switches->irq_wait); ++ ++ printk(KERN_DEBUG "ucb1x00-switches.c -> _switches_resume() kswd - restart *DONE*\n"); ++ } ++ return 0; ++} ++#else ++#define ucb1x00_switches_resume NULL ++#endif ++ ++static struct ucb1x00_driver ucb1x00_switches_driver = { ++ .add = ucb1x00_switches_add, ++ .remove = ucb1x00_switches_remove, ++ .resume = ucb1x00_switches_resume, ++}; ++ ++static int __init ucb1x00_switches_init(void) ++{ ++ return ucb1x00_register_driver(&ucb1x00_switches_driver); ++} ++ ++static void __exit ucb1x00_switches_exit(void) ++{ ++ ucb1x00_unregister_driver(&ucb1x00_switches_driver); ++} ++ ++module_init(ucb1x00_switches_init); ++module_exit(ucb1x00_switches_exit); ++ ++MODULE_AUTHOR("Bernhard Guillon <Bernhard.Guillon@opensimpad.org>"); ++MODULE_DESCRIPTION("UCB1x00 Switches driver for Siemens SIMpad"); ++MODULE_LICENSE("GPL"); diff --git a/packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-ts-supend-and-accuracy.patch b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-ts-supend-and-accuracy.patch new file mode 100644 index 0000000000..702bbfbfba --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.24-SIMpad-ucb1x00-ts-supend-and-accuracy.patch @@ -0,0 +1,121 @@ +diff -Nur linux-2.6.24.vanilla/drivers/mfd/ucb1x00-ts.c linux-2.6.24/drivers/mfd/ucb1x00-ts.c +--- linux-2.6.24.vanilla/drivers/mfd/ucb1x00-ts.c 2008-01-24 23:58:37.000000000 +0100 ++++ linux-2.6.24/drivers/mfd/ucb1x00-ts.c 2008-02-20 21:21:51.000000000 +0100 +@@ -16,6 +16,10 @@ + * It is important to note that the signal connected to the ADCSYNC + * pin should provide pulses even when the LCD is blanked, otherwise + * a pen touch needed to unblank the LCD will never be read. ++ * ++ * mrdata: -added some accuracy improvement based on thesings collie patch ++ * -added suspend fix ++ * + */ + #include <linux/module.h> + #include <linux/moduleparam.h> +@@ -104,6 +108,8 @@ + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND | + UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); + ++ udelay(55); ++ + return ucb1x00_adc_read(ts->ucb, UCB_ADC_INP_TSPY, ts->adcsync); + } + } +@@ -130,7 +136,7 @@ + UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | + UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA); + +- udelay(55); ++ udelay(165); + + return ucb1x00_adc_read(ts->ucb, UCB_ADC_INP_TSPY, ts->adcsync); + } +@@ -158,7 +164,7 @@ + UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | + UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA); + +- udelay(55); ++ udelay(165); + + return ucb1x00_adc_read(ts->ucb, UCB_ADC_INP_TSPX, ts->adcsync); + } +@@ -216,13 +222,17 @@ + signed long timeout; + + ts->restart = 0; +- ++ + ucb1x00_adc_enable(ts->ucb); + + x = ucb1x00_ts_read_xpos(ts); ++ ucb1x00_adc_disable(ts->ucb); ++ ucb1x00_adc_enable(ts->ucb); + y = ucb1x00_ts_read_ypos(ts); ++ ucb1x00_adc_disable(ts->ucb); ++ ucb1x00_adc_enable(ts->ucb); + p = ucb1x00_ts_read_pressure(ts); +- ++ + /* + * Switch back to interrupt mode. + */ +@@ -231,15 +241,19 @@ + + msleep(10); + ++ if ((x < 60) || (y < 60)) { ++ p = 0; ++ } ++ + ucb1x00_enable(ts->ucb); + +- + if (ucb1x00_ts_pen_down(ts)) { ++ + set_task_state(tsk, TASK_INTERRUPTIBLE); + + ucb1x00_enable_irq(ts->ucb, UCB_IRQ_TSPX, machine_is_collie() ? UCB_RISING : UCB_FALLING); + ucb1x00_disable(ts->ucb); +- ++ + /* + * If we spat out a valid sample set last time, + * spit out a "pen off" sample here. +@@ -250,7 +264,9 @@ + } + + timeout = MAX_SCHEDULE_TIMEOUT; ++ + } else { ++ + ucb1x00_disable(ts->ucb); + + /* +@@ -269,6 +285,14 @@ + + try_to_freeze(); + ++ /* ++ * While suspend the ktsd-thread goes sleep -> try_to_freeze() ++ * While resume the ktsd-thread do wakup and must rune one time ++ * again to do a clean re-setup -> enable_irq: UCB_IRQ_TSPX ++ */ ++ if(ts->restart) ++ timeout = HZ / 100; ++ + schedule_timeout(timeout); + } + +@@ -351,8 +375,12 @@ + * TS interrupt mode is set up again + * after sleep. + */ ++ + ts->restart = 1; + wake_up(&ts->irq_wait); ++ ++ printk(KERN_INFO "ucb1x00-ts.c -> ucb1x00_ts_resume() ktsd - restart *DONE*\n"); ++ + } + return 0; + } diff --git a/packages/linux/linux_2.6.23.bb b/packages/linux/linux_2.6.23.bb index ffc1820229..d3989a42ef 100644 --- a/packages/linux/linux_2.6.23.bb +++ b/packages/linux/linux_2.6.23.bb @@ -2,7 +2,6 @@ require linux.inc # Mark archs/machines that this kernel supports DEFAULT_PREFERENCE = "-1" -DEFAULT_PREFERENCE_cm-x270 = "1" DEFAULT_PREFERENCE_mpc8313e-rdb = "1" DEFAULT_PREFERENCE_mpc8323e-rdb = "1" DEFAULT_PREFERENCE_avr32 = "1" diff --git a/packages/linux/linux_2.6.24.bb b/packages/linux/linux_2.6.24.bb index 04470bdf03..40ffef7d0b 100644 --- a/packages/linux/linux_2.6.24.bb +++ b/packages/linux/linux_2.6.24.bb @@ -3,20 +3,39 @@ require linux.inc # Mark archs/machines that this kernel supports DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_gesbc-9302 = "1" +DEFAULT_PREFERENCE_cm-x270 = "1" DEFAULT_PREFERENCE_mpc8313e-rdb = "1" +DEFAULT_PREFERENCE_simpad = "1" DEPENDS_append_mpc8313e-rdb = " dtc-native" -PR = "r6" +PR = "r7" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2 \ http://kamikaze.waninkoko.info/patches/2.6.24/kamikaze1/broken-out/squashfs-lzma-2.6.24.patch;patch=1 \ file://powerpc-clockres.patch;patch=1 \ + file://leds-cpu-activity.patch;patch=1 \ + file://leds-cpu-activity-powerpc.patch;patch=1 \ file://defconfig" # Real-time preemption. This is experimental and requires a different defconfig. #SRC_URI += " http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.24-rt1.bz2;patch=1" +SRC_URI_append_simpad = "\ + file://linux-2.6.24-SIMpad-GPIO-MMC-mod.patch;patch=1 \ + file://linux-2.6.24-SIMpad-battery-old-way-but-also-with-sysfs.patch;patch=1 \ + file://linux-2.6.24-SIMpad-cs3-simpad.patch;patch=1 \ + file://linux-2.6.24-SIMpad-mq200.patch;patch=1 \ + file://linux-2.6.24-SIMpad-pcmcia.patch;patch=1 \ + file://linux-2.6.24-SIMpad-serial-gpio_keys-and-cs3-ro.patch;patch=1 \ + file://linux-2.6.24-SIMpad-ucb1x00-switches.patch;patch=1 \ + file://linux-2.6.24-SIMpad-ucb1x00-ts-supend-and-accuracy.patch;patch=1 \ + file://linux-2.6.24-SIMpad-hostap_cs-shared-irq.patch;patch=1 \ + file://linux-2.6.24-SIMpad-orinoco_cs-shared-irq.patch;patch=1 \ + file://collie-kexec.patch;patch=1 \ + file://export_atags-r2.patch;patch=1 \ + " + SRC_URI_append_gesbc-9302 = " \ file://0001-gesbc-nand.patch;patch=1 \ file://0002-gesbc-eth-platform.patch;patch=1 \ @@ -30,10 +49,55 @@ SRC_URI_append_mpc8313e-rdb = "\ CMDLINE_gesbc-9302 = "console=ttyAM0 root=mtd5 rootfstype=jffs2 mtdparts=GESBC-NAND:64m(app),-(data)" +SRC_URI_append_cm-x270 = " \ + file://0001-cm-x270-match-type.patch;patch=1 \ + file://0002-ramdisk_load.patch;patch=1 \ + file://0003-mmcsd_large_cards-r0.patch;patch=1 \ + file://0004-cm-x270-nand-simplify-name.patch;patch=1 \ + file://0005-add-display-set-default-16bpp.patch;patch=1 \ + " + +CMDLINE_cm-x270 = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=1 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2" + FILES_kernel-image_gesbc-9302 = "" DEVICETREE_mpc8313e-rdb = "arch/${ARCH}/boot/dts/mpc8313erdb.dts" DEVICETREE_FLAGS_mpc8313e-rdb = "-R 8 -S 0x3000" +python do_compulab_image() { + import os + import os.path + import struct + + machine = bb.data.getVar('MACHINE', d, 1) + if machine == "cm-x270": + deploy_dir = bb.data.getVar('DEPLOY_DIR_IMAGE', d, 1) + kernel_file = os.path.join(deploy_dir, bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.bin') + img_file = os.path.join(deploy_dir, bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.cmx270') + + fo = open(img_file, 'wb') + + image_data = open(kernel_file, 'rb').read() + + # first write size into first 4 bytes + size_s = struct.pack('i', len(image_data)) + + # truncate size if we are running on a 64-bit host + size_s = size_s[:4] + + fo.write(size_s) + fo.write(image_data) + fo.close() + + os.chdir(deploy_dir) + link_file = bb.data.expand('${KERNEL_IMAGE_SYMLINK_NAME}', d) + '.cmx270' + img_file = bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.cmx270' + try: + os.unlink(link_file) + except: + pass + os.symlink(img_file, link_file) +} + do_devicetree_image() { if test -n "${DEVICETREE}" ; then @@ -45,5 +109,6 @@ do_devicetree_image() { fi } +addtask compulab_image after do_deploy before do_package addtask devicetree_image after do_deploy before do_package diff --git a/packages/ltp/ltp-20080229/.mtn2git_empty b/packages/ltp/ltp-20080229/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ltp/ltp-20080229/.mtn2git_empty diff --git a/packages/ltp/ltp-20080229/ballista.patch b/packages/ltp/ltp-20080229/ballista.patch new file mode 100644 index 0000000000..d318480208 --- /dev/null +++ b/packages/ltp/ltp-20080229/ballista.patch @@ -0,0 +1,22 @@ +Index: ltp-full-20080229/testcases/ballista/Makefile +=================================================================== +--- ltp-full-20080229.orig/testcases/ballista/Makefile 2008-02-29 08:55:46.000000000 +0100 ++++ ltp-full-20080229/testcases/ballista/Makefile 2008-03-01 01:21:16.000000000 +0100 +@@ -1,4 +1,4 @@ +-ifeq ($(shell perl -v &> /dev/null && echo yes),yes) ++ifeq ($(shell perl -v > /dev/null && echo yes),yes) + + all: bal + +Index: ltp-full-20080229/testcases/ballista/ballista/Makefile +=================================================================== +--- ltp-full-20080229.orig/testcases/ballista/ballista/Makefile 2008-03-01 01:21:16.000000000 +0100 ++++ ltp-full-20080229/testcases/ballista/ballista/Makefile 2008-03-01 01:22:22.000000000 +0100 +@@ -37,6 +37,7 @@ + + # build everything by default + all : callGen callGen_standAlone genCodeCreator replacer ballista ++ rm blexer bparser mut.out + + # run-of-of-the-mill rules for utility programs + callGen: callGen.cpp diff --git a/packages/ltp/ltp-20080229/cross-compile.patch b/packages/ltp/ltp-20080229/cross-compile.patch new file mode 100644 index 0000000000..456bf4f135 --- /dev/null +++ b/packages/ltp/ltp-20080229/cross-compile.patch @@ -0,0 +1,57 @@ +Index: ltp-full-20080229/Makefile +=================================================================== +--- ltp-full-20080229.orig/Makefile 2008-02-29 08:55:41.000000000 +0100 ++++ ltp-full-20080229/Makefile 2008-03-01 01:14:35.000000000 +0100 +@@ -33,11 +33,12 @@ + endif + ifdef CROSS_COMPILER + CC=$(CROSS_COMPILER)gcc ++CPP=$(CROSS_COMPILER)g++ + AR=$(CROSS_COMPILER)ar + endif + + export CFLAGS += -Wall $(CROSS_CFLAGS) +-export CC AR LDFLAGS ++export CC AR LDFLAGS CPP + + -include config.mk + +Index: ltp-full-20080229/testcases/ballista/ballista/Makefile +=================================================================== +--- ltp-full-20080229.orig/testcases/ballista/ballista/Makefile 2008-02-29 08:55:46.000000000 +0100 ++++ ltp-full-20080229/testcases/ballista/ballista/Makefile 2008-03-01 01:14:35.000000000 +0100 +@@ -24,7 +24,7 @@ + ######################## + + # compiler info for the host +-CC = g++ -Wno-deprecated ++CC = $(CPP) -Wno-deprecated + CFLAGS = -w -O ${TARGET_DEF} + CLIBS = -lpthread -ldl -lnsl -rdynamic + TEST_MAN_FILE = selfHost +Index: ltp-full-20080229/testcases/kernel/security/filecaps/Makefile +=================================================================== +--- ltp-full-20080229.orig/testcases/kernel/security/filecaps/Makefile 2008-03-01 01:14:49.000000000 +0100 ++++ ltp-full-20080229/testcases/kernel/security/filecaps/Makefile 2008-03-01 01:15:05.000000000 +0100 +@@ -20,7 +20,6 @@ + + SCRIPTS = filecapstest.sh checkforlibcap.sh checkforfilecaps.sh + ifeq ($(shell sh checkforlibcap.sh yesno),yes) +-CC=gcc + + CFLAGS += -I../../../../include -Wall + LDLIBS += -L../../../../lib -lltp -lcap +@@ -29,11 +28,11 @@ + TARGETS = $(patsubst %.c,%,$(SRCS)) + INSTALLTARGETS = $(TARGETS) $(SCRIPTS) + all: $(TARGETS) +- gcc -o checkforlibcap gotlibcap.c ++ $(CC) -o checkforlibcap gotlibcap.c + else + all: + @echo "setcap or xattr headers not installed. Please install libcap from"; echo "ftp://ftp.kernel.org/pub/linux/libs/security/linux-privs/libcap2"; echo "Then make clean in ltp or ltp/testcases/kernel/security/filecaps, and recompile ltp." +- gcc -o checkforlibcap nolibcap.c ++ $(CC) -o checkforlibcap nolibcap.c + TARGETS = + endif + diff --git a/packages/ltp/ltp-20080229/ltp-run b/packages/ltp/ltp-20080229/ltp-run new file mode 100644 index 0000000000..5d97f00532 --- /dev/null +++ b/packages/ltp/ltp-20080229/ltp-run @@ -0,0 +1,4 @@ +#!/bin/sh +/usr/libexec/ltp/runltp -t 180s > /home/root/testlog.txt +echo "Benchmark run finished...." +touch /home/root/testfinished.flag diff --git a/packages/ltp/ltp-20080229/posix_shell_compat.patch b/packages/ltp/ltp-20080229/posix_shell_compat.patch new file mode 100644 index 0000000000..b88d598deb --- /dev/null +++ b/packages/ltp/ltp-20080229/posix_shell_compat.patch @@ -0,0 +1,33 @@ +Index: ltp-full-20080229/testcases/network/generate.sh +=================================================================== +--- ltp-full-20080229.orig/testcases/network/generate.sh 2008-03-01 00:34:24.000000000 +0100 ++++ ltp-full-20080229/testcases/network/generate.sh 2008-03-01 00:35:13.000000000 +0100 +@@ -53,22 +53,24 @@ + $makeit $data_dir/$jumbo_file $jumbo_size + + if [ ! -e $data_dir/bin.sm ] ; then +- cnt=6 +- while [ $((cnt=cnt-1)) -ge 0 ] ; do ++ cnt=5 ++ while [ $cnt -ge 0 ] ; do + gzip -1 -c datafiles/ascii.sm >> $data_dir/bin.sm ++ cnt=$(($cnt-1)) + done + fi + + genfile() { + local input=$data_dir/$1 output=$data_dir/$2 +- local cnt=20 ++ local cnt=19 + + if [ -e $output ] ; then + return 0 + fi + +- while [ $((cnt=cnt-1)) -ge 0 ] ; do ++ while [ $cnt -ge 0 ] ; do + cat $input >> $output ++ cnt=$(($cnt-1)) + done + } + diff --git a/packages/ltp/ltp-20080229/runltp-path.patch b/packages/ltp/ltp-20080229/runltp-path.patch new file mode 100644 index 0000000000..d117b3c24e --- /dev/null +++ b/packages/ltp/ltp-20080229/runltp-path.patch @@ -0,0 +1,24 @@ +Index: runltp +=================================================================== +--- ltp-full-20060412.orig/runltp 2005-03-12 03:26:14.000000000 +0800 ++++ ltp-full-20060412/runltp 2006-04-26 16:42:13.000000000 +0800 +@@ -43,7 +43,7 @@ + echo "FATAL: unable to change directory to $(dirname $0)" + exit 1 + } +- export LTPROOT=${PWD} ++ export LTPROOT=/usr/libexec/ltp + export TMPBASE="/tmp" + export TMP="${TMPBASE}/ltp-$$" + export PATH="${PATH}:${LTPROOT}/testcases/bin" +--- ltp-full-20060412.orig/runltp 2007-02-28 20:40:17.000000000 -0800 ++++ ltp-full-20060412/runltp 2007-04-01 11:38:38.000000000 -0700 +@@ -285,7 +285,7 @@ + ${LTPROOT}/runtest/sched ${LTPROOT}/runtest/math \ + ${LTPROOT}/runtest/nptl ${LTPROOT}/runtest/pty + do +- [ -a "$SCENFILES" ] || \ ++ [ -e "$SCENFILES" ] || \ + { + echo "FATAL: missing scenario file $SCENFILES" + exit 1 diff --git a/packages/ltp/ltp_20080229.bb b/packages/ltp/ltp_20080229.bb new file mode 100644 index 0000000000..6ad102023b --- /dev/null +++ b/packages/ltp/ltp_20080229.bb @@ -0,0 +1,67 @@ +DESCRIPTION = "Linux Test Project" +HOMEPAGE = "http://ltp.sourceforge.net" +LICENSE = "GPL" +SECTION = "console/utils" + +SRC_URI = "${SOURCEFORGE_MIRROR}/ltp/ltp-full-${PV}.tgz \ + file://cross-compile.patch;patch=1 \ + file://runltp-path.patch;patch=1 \ + file://ltp-run \ + file://posix_shell_compat.patch;patch=1 \ + file://ballista.patch;patch=1" + +S = "${WORKDIR}/ltp-full-${PV}" + +EXTRA_OEMAKE_append = " CROSS_COMPILE=${HOST_PREFIX}" + +FILES_${PN}-dbg = "${libexecdir}/ltp/*/*/*/*/*/.debug" +FILES_${PN}-dbg += "${libexecdir}/ltp/*/*/*/*/.debug" +FILES_${PN}-dbg += "${libexecdir}/ltp/*/*/*/.debug" +FILES_${PN}-dbg += "${libexecdir}/ltp/*/*/.debug" +FILES_${PN}-dbg += "${libexecdir}/ltp/*/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/float/trigo/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/float/iperb/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/float/exp_log/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/float/power/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/float/bessel/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/abs/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/atof/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/nextafter/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/math/fptests/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/f00f/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/misc/crash/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/pan/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/network/ipv6/*/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/network/rpc/rpc01/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/bin/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/kernel/syscalls/*/.debug" +#FILES_${PN}-dbg += "${libexecdir}/ltp/testcases/kernel/mem/*/.debug" + +do_compile(){ + oe_runmake CROSS_COMPILE=${HOST_PREFIX} +} + +do_install(){ + export CREATE=0 + export LTPROOT=${D}/usr/libexec/ltp/testcases + + oe_runmake install + + install -d ${D}/usr/libexec/ltp/testcases + install -d ${D}/usr/libexec/ltp/pan + + #install testcases + #install -m 0755 ${WORKDIR}/testcases ${D}/usr/libexec/ltp/testcases + #install -m 0755 ${WORKDIR}/testcases ${D}/usr/libexec/ltp/ + + # treecopy testcases pan/pan runtest ver_linux IDcheck.sh \ + # ${D}/usr/libexec/ltp + cp testcases ${D}/usr/libexec/ltp/ -rfp + rm ${D}/usr/libexec/ltp/ballista -rf + cp pan/pan ${D}/usr/libexec/ltp/pan -p + cp runtest ${D}/usr/libexec/ltp/ -rfp + cp ver_linux ${D}/usr/libexec/ltp/ -p + cp runltp ${D}/usr/libexec/ltp/ -p + cp IDcheck.sh ${D}/usr/libexec/ltp/ -p +} + diff --git a/packages/madwifi/madwifi-ng_r.inc b/packages/madwifi/madwifi-ng_r.inc index 22cf332420..c6bee78e22 100644 --- a/packages/madwifi/madwifi-ng_r.inc +++ b/packages/madwifi/madwifi-ng_r.inc @@ -55,6 +55,6 @@ else fi } -PACKAGES = "${PN}-dbg ${PN}-modules ${PN}-tools" +PACKAGES += "${PN}-modules ${PN}-tools" FILES_${PN}-modules = "/lib/modules/" FILES_${PN}-tools = "/usr/" diff --git a/packages/maemo4/hildon-control-panel_2.0.1.bb b/packages/maemo4/hildon-control-panel_2.0.1.bb new file mode 100644 index 0000000000..d7dd6c3e90 --- /dev/null +++ b/packages/maemo4/hildon-control-panel_2.0.1.bb @@ -0,0 +1,20 @@ +LICENSE = "GPL" + +DEPENDS = "libosso libhildon gnome-vfs libhildonhelp" + +SRC_URI = "http://repository.maemo.org/pool/os2008/free/source/h/hildon-control-panel/hildon-control-panel_2.0.1-1.tar.gz" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/dbus-1.0 ${datadir}/applications" + +do_stage() { + autotools_stage_all +} + +# pkg-config file will get broken after pkgconfig.bbclass work +# +# This code will fix it +# +# sed -i -e 's:${STAGING_LIBDIR}/hildon:${libdir}/hildon:g' -e 's:${STAGING_DATADIR}/applications/hildon:${datadir}/applications/hildon:g' ${PKG_CONFIG_DIR}/hildon-control-panel.pc +# diff --git a/packages/matchbox-desktop/matchbox-desktop-0.9.1/pkgconfig_fix.patch b/packages/matchbox-desktop/matchbox-desktop-0.9.1/pkgconfig_fix.patch new file mode 100644 index 0000000000..5ca98a9164 --- /dev/null +++ b/packages/matchbox-desktop/matchbox-desktop-0.9.1/pkgconfig_fix.patch @@ -0,0 +1,15 @@ +Index: matchbox-desktop-0.9.1/matchbox-desktop.pc.in +=================================================================== +--- matchbox-desktop-0.9.1.orig/matchbox-desktop.pc.in 2008-02-29 13:48:39.000000000 +0000 ++++ matchbox-desktop-0.9.1/matchbox-desktop.pc.in 2008-02-29 13:49:07.000000000 +0000 +@@ -6,5 +6,6 @@ + Name: matchbox-desktop + Description: Matchbox Desktop module dependencies. + Version: @VERSION@ +-Libs: -L${libdir} @LIBMB_LIBS@ +-Cflags: -I${includedir}/matchbox-desktop @LIBMB_CFLAGS@ +\ No newline at end of file ++Requires: libmb ++Libs: -L${libdir} ++Cflags: -I${includedir}/matchbox-desktop +\ No newline at end of file diff --git a/packages/matchbox-desktop/matchbox-desktop_0.9.1.bb b/packages/matchbox-desktop/matchbox-desktop_0.9.1.bb index 4aba935386..d3be3b166e 100644 --- a/packages/matchbox-desktop/matchbox-desktop_0.9.1.bb +++ b/packages/matchbox-desktop/matchbox-desktop_0.9.1.bb @@ -2,9 +2,10 @@ DESCRIPTION = "Matchbox Window Manager Desktop" LICENSE = "GPL" DEPENDS = "libmatchbox startup-notification" SECTION = "x11/wm" -PR = "r2" +PR = "r3" SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-desktop/0.9/matchbox-desktop-${PV}.tar.bz2 \ + file://pkgconfig_fix.patch;patch=1 \ file://mb-desktop-multi-category-matching.patch;patch=1" EXTRA_OECONF = "--enable-startup-notification --enable-dnotify" diff --git a/packages/matchbox-wm/matchbox-wm/configure_fix.patch b/packages/matchbox-wm/matchbox-wm/configure_fix.patch new file mode 100644 index 0000000000..52cea0e8f7 --- /dev/null +++ b/packages/matchbox-wm/matchbox-wm/configure_fix.patch @@ -0,0 +1,13 @@ +Index: matchbox-window-manager/configure.ac +=================================================================== +--- matchbox-window-manager.orig/configure.ac 2007-11-14 12:02:28.000000000 +0000 ++++ matchbox-window-manager/configure.ac 2007-11-14 12:18:55.000000000 +0000 +@@ -283,7 +283,7 @@ + yes) + + case "$expat" in +- yes) ++ yes|"") + EXPAT_LIBS="-lexpat" + ;; + *) diff --git a/packages/matchbox-wm/matchbox-wm_0.8.3.bb b/packages/matchbox-wm/matchbox-wm_0.8.3.bb deleted file mode 100644 index 58da385674..0000000000 --- a/packages/matchbox-wm/matchbox-wm_0.8.3.bb +++ /dev/null @@ -1,26 +0,0 @@ -require matchbox-wm.inc - -DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf " -RDEPENDS = "" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/0.8/matchbox-window-manager-${PV}.tar.bz2 \ - file://kbdconfig_keylaunch_simpad.patch;patch=1;pnum=0" -S = "${WORKDIR}/matchbox-window-manager-${PV}" - -inherit autotools pkgconfig - -FILES_${PN} = "${bindir} \ - ${datadir}/matchbox \ - ${datadir}/themes/blondie/matchbox \ - ${datadir}/themes/bluebox/matchbox \ - ${datadir}/themes/borillo/matchbox" - -EXTRA_OECONF = "--enable-composite --enable-startup-notification --enable-expat" - -pkg_postinst() { -update-alternatives --install ${bindir}/x-window-manager x-window-manager ${bindir}/matchbox-session 10 -} - -pkg_postrm() { -update-alternatives --remove x-window-manager ${bindir}/matchbox-session -} diff --git a/packages/matchbox-wm/matchbox-wm_0.8.4.bb b/packages/matchbox-wm/matchbox-wm_0.8.4.bb deleted file mode 100644 index 58da385674..0000000000 --- a/packages/matchbox-wm/matchbox-wm_0.8.4.bb +++ /dev/null @@ -1,26 +0,0 @@ -require matchbox-wm.inc - -DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf " -RDEPENDS = "" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/0.8/matchbox-window-manager-${PV}.tar.bz2 \ - file://kbdconfig_keylaunch_simpad.patch;patch=1;pnum=0" -S = "${WORKDIR}/matchbox-window-manager-${PV}" - -inherit autotools pkgconfig - -FILES_${PN} = "${bindir} \ - ${datadir}/matchbox \ - ${datadir}/themes/blondie/matchbox \ - ${datadir}/themes/bluebox/matchbox \ - ${datadir}/themes/borillo/matchbox" - -EXTRA_OECONF = "--enable-composite --enable-startup-notification --enable-expat" - -pkg_postinst() { -update-alternatives --install ${bindir}/x-window-manager x-window-manager ${bindir}/matchbox-session 10 -} - -pkg_postrm() { -update-alternatives --remove x-window-manager ${bindir}/matchbox-session -} diff --git a/packages/matchbox-wm/matchbox-wm_0.9.2.bb b/packages/matchbox-wm/matchbox-wm_0.9.2.bb deleted file mode 100644 index a85e4b23c4..0000000000 --- a/packages/matchbox-wm/matchbox-wm_0.9.2.bb +++ /dev/null @@ -1,30 +0,0 @@ -require matchbox-wm.inc - -DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf " -RDEPENDS = "" -PR = "r2" - - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/0.9/matchbox-window-manager-${PV}.tar.gz" - -S = "${WORKDIR}/matchbox-window-manager-${PV}" - -inherit autotools pkgconfig - -FILES_${PN} = "${bindir} \ - ${datadir}/matchbox \ - ${sysconfdir}/matchbox \ - ${datadir}/themes/blondie/matchbox \ - ${datadir}/themes/Default/matchbox \ - ${datadir}/themes/MBOpus/matchbox" - -EXTRA_OECONF = "--enable-composite --enable-startup-notification --disable-xrm" - -pkg_postinst() { -update-alternatives --install ${bindir}/x-window-manager x-window-manager ${bindir}/matchbox-session 10 -} - -pkg_postrm() { -update-alternatives --remove x-window-manager ${bindir}/matchbox-session -} - diff --git a/packages/matchbox-wm/matchbox-wm_0.9.3.bb b/packages/matchbox-wm/matchbox-wm_0.9.3.bb deleted file mode 100644 index c2016cab66..0000000000 --- a/packages/matchbox-wm/matchbox-wm_0.9.3.bb +++ /dev/null @@ -1,32 +0,0 @@ -require matchbox-wm.inc - -DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf " -RDEPENDS = "" -PR = "r3" - - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/0.9/matchbox-window-manager-${PV}.tar.gz \ - file://kbdconfig" - -S = "${WORKDIR}/matchbox-window-manager-${PV}" - -inherit autotools pkgconfig update-alternatives - -FILES_${PN} = "${bindir} \ - ${datadir}/matchbox \ - ${sysconfdir}/matchbox \ - ${datadir}/themes/blondie/matchbox \ - ${datadir}/themes/Default/matchbox \ - ${datadir}/themes/MBOpus/matchbox" - -ALTERNATIVE_NAME = "x-window-manager" -ALTERNATIVE_LINK = "${bindir}/x-window-manager" -ALTERNATIVE_PATH = "${bindir}/matchbox-session" -ALTERNATIVE_PRIORITY = "10" - -EXTRA_OECONF = "--enable-composite --enable-startup-notification --disable-xrm" - -do_install_prepend() { - install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig -} - diff --git a/packages/matchbox-wm/matchbox-wm_0.9.4.bb b/packages/matchbox-wm/matchbox-wm_0.9.4.bb deleted file mode 100644 index 80b6dc7e19..0000000000 --- a/packages/matchbox-wm/matchbox-wm_0.9.4.bb +++ /dev/null @@ -1,30 +0,0 @@ -require matchbox-wm.inc - -DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf " -RDEPENDS = "" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/0.9/matchbox-window-manager-${PV}.tar.gz \ - file://kbdconfig" - -S = "${WORKDIR}/matchbox-window-manager-${PV}" - -inherit autotools pkgconfig update-alternatives - -FILES_${PN} = "${bindir} \ - ${datadir}/matchbox \ - ${sysconfdir}/matchbox \ - ${datadir}/themes/blondie/matchbox \ - ${datadir}/themes/Default/matchbox \ - ${datadir}/themes/MBOpus/matchbox" - -ALTERNATIVE_NAME = "x-window-manager" -ALTERNATIVE_LINK = "${bindir}/x-window-manager" -ALTERNATIVE_PATH = "${bindir}/matchbox-session" -ALTERNATIVE_PRIORITY = "10" - -EXTRA_OECONF = "--enable-composite --enable-startup-notification --disable-xrm" - -do_install_prepend() { - install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig -} - diff --git a/packages/matchbox-wm/matchbox-wm_0.9.bb b/packages/matchbox-wm/matchbox-wm_0.9.bb deleted file mode 100644 index 700fb15eeb..0000000000 --- a/packages/matchbox-wm/matchbox-wm_0.9.bb +++ /dev/null @@ -1,25 +0,0 @@ -require matchbox-wm.inc - -DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf " -RDEPENDS = "" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/${PV}/matchbox-window-manager-${PV}.tar.gz" -S = "${WORKDIR}/matchbox-window-manager-${PV}" - -inherit autotools pkgconfig - -FILES_${PN} = "${bindir} \ - ${datadir}/matchbox \ - ${datadir}/themes/blondie/matchbox \ - ${datadir}/themes/bluebox/matchbox \ - ${datadir}/themes/borillo/matchbox" - -EXTRA_OECONF = "--enable-composite --enable-startup-notification --enable-expat" - -pkg_postinst() { -update-alternatives --install ${bindir}/x-window-manager x-window-manager ${bindir}/matchbox-session 10 -} - -pkg_postrm() { -update-alternatives --remove x-window-manager ${bindir}/matchbox-session -} diff --git a/packages/matchbox-wm/matchbox-wm_1.2.bb b/packages/matchbox-wm/matchbox-wm_1.2.bb index bf57441815..78795f7a40 100644 --- a/packages/matchbox-wm/matchbox-wm_1.2.bb +++ b/packages/matchbox-wm/matchbox-wm_1.2.bb @@ -3,9 +3,10 @@ require matchbox-wm.inc DEPENDS = "libmatchbox virtual/libx11 libxext libxcomposite libxfixes libxdamage libxrender startup-notification expat gconf gconf-native " RDEPENDS = "" -PR="r3" +PR="r4" -SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-window-manager/1.2/matchbox-window-manager-${PV}.tar.bz2 \ +SRC_URI = "http://matchbox-project.org/sources/matchbox-window-manager/1.2/matchbox-window-manager-${PV}.tar.bz2 \ + file://configure_fix.patch;patch=1 \ file://gconf-2.m4 \ file://kbdconfig" @@ -29,7 +30,8 @@ ALTERNATIVE_PRIORITY = "10" EXTRA_OECONF = " \ --enable-startup-notification\ --enable-gconf \ - --enable-expat \ + --with-expat-lib=${STAGING_LIBDIR} \ + --with-expat-includes=${STAGING_INCDIR} \ --disable-xrm" do_configure_prepend () { diff --git a/packages/meta/external-toolchain.bb b/packages/meta/external-toolchain.bb index 47d9a93a15..03e4403dbe 100644 --- a/packages/meta/external-toolchain.bb +++ b/packages/meta/external-toolchain.bb @@ -12,7 +12,6 @@ PROVIDES = "\ virtual/libintl \ virtual/libiconv \ glibc-thread-db \ - virtual/linux-libc-headers \ " RPROVIDES = "glibc-utils libsegfault glibc-thread-db libgcc-dev libstdc++-dev libstdc++" diff --git a/packages/meta/staging-linkage_1.0.bb b/packages/meta/staging-linkage_1.0.bb new file mode 100644 index 0000000000..b718868138 --- /dev/null +++ b/packages/meta/staging-linkage_1.0.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "staging-linkage sets up symlinks in staging so old compilers continue to work with the sysroot staging layout changes" +SECTION = "devel" +PACKAGES = "" + +INHIBIT_DEFAULT_DEPS = "1" +PR = "r0" + +SRC_URI = "" + +do_configure() { + : +} + +do_compile () { + : +} + +do_install() { + : +} + +do_stage () { + if [ -e ${STAGING_DIR_HOST}${layout_base_libdir} ]; then + cp -pPRr ${STAGING_DIR_HOST}${layout_base_libdir}/* ${STAGING_LIBDIR} + mv ${STAGING_DIR_HOST}${layout_base_libdir}/ ${STAGING_DIR_HOST}${layout_libdir}-oldbackup/ + fi + ln -s ${STAGING_LIBDIR}/ ${STAGING_DIR_HOST}${layout_base_libdir} +} diff --git a/packages/misc-binary-only/at76c503-firmware_1.3.bb b/packages/misc-binary-only/at76c503-firmware_1.3.bb new file mode 100644 index 0000000000..161badf318 --- /dev/null +++ b/packages/misc-binary-only/at76c503-firmware_1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Atmel At76c503 802.11b wireless firmware." +SECTION = "base" +LICENSE = "Unknown" + +SRC_URI = "http://www.thekelleys.org.uk/atmel/atmel-firmware-${PV}.tar.gz" + +FILES_${PN} = "/lib" + +do_install() { + install -d ${D}/lib/firmware/ + install -m 0644 ${WORKDIR}/atmel-firmware-1.3/images.usb/atmel_at76c503-rfmd.bin ${D}/lib/firmware/atmel_at76c503-rfmd.bin +} + diff --git a/packages/mtd/mtd-utils-native.inc b/packages/mtd/mtd-utils-native.inc index 8ac4673524..28696b46d5 100644 --- a/packages/mtd/mtd-utils-native.inc +++ b/packages/mtd/mtd-utils-native.inc @@ -11,4 +11,3 @@ do_stage () { install -m 0755 $binary ${STAGING_BINDIR} done } - diff --git a/packages/mtd/mtd-utils-native_1.1.0.bb b/packages/mtd/mtd-utils-native_1.1.0.bb new file mode 100644 index 0000000000..2b8d925c90 --- /dev/null +++ b/packages/mtd/mtd-utils-native_1.1.0.bb @@ -0,0 +1,5 @@ +# scheduled to enable 15-03-2008 +DEFAULT_PREFERENCE = "-1" + +require mtd-utils_${PV}.bb +require mtd-utils-native.inc diff --git a/packages/mtd/mtd-utils_1.0.0+git.bb b/packages/mtd/mtd-utils_1.0.0+git.bb index d4e67f3aae..42d92edd9a 100644 --- a/packages/mtd/mtd-utils_1.0.0+git.bb +++ b/packages/mtd/mtd-utils_1.0.0+git.bb @@ -3,7 +3,7 @@ SECTION = "base" DEPENDS = "zlib lzo" HOMEPAGE = "http://www.linux-mtd.infradead.org/" LICENSE = "GPLv2" -PR = "r7" +PR = "r8" # This is the default package, thus we lock to a specific git version so # upstream changes will not break builds. @@ -36,11 +36,16 @@ mtd_utils = "ftl_format flash_erase flash_eraseall nanddump doc_loadbios \ do_install () { install -d ${D}${bindir} + install -d ${D}${includedir} for binary in ${mtd_utils}; do install -m 0755 $binary ${D}${bindir} done + for f in ${S}/include/mtd/*.h; do + install -m 0644 $f ${D}${includedir} + done } PACKAGES =+ "mkfs-jffs mkfs-jffs2" FILES_mkfs-jffs = "${bindir}/mkfs.jffs" FILES_mkfs-jffs2 = "${bindir}/mkfs.jffs2" + diff --git a/packages/mtd/mtd-utils_1.1.0.bb b/packages/mtd/mtd-utils_1.1.0.bb new file mode 100644 index 0000000000..679fc7e79e --- /dev/null +++ b/packages/mtd/mtd-utils_1.1.0.bb @@ -0,0 +1,48 @@ +DESCRIPTION = "Tools for managing memory technology devices." +SECTION = "base" +DEPENDS = "zlib lzo" +HOMEPAGE = "http://www.linux-mtd.infradead.org/" +LICENSE = "GPLv2" +PR = "r1" + +# scheduled to enable 15-03-2008 +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.1.0.tar.bz2 \ + file://add-exclusion-to-mkfs-jffs2-git.patch;patch=1 \ + file://fix-ignoreerrors-git.patch;patch=1 \ + file://lzo_1x.patch;patch=1" + +S = "${WORKDIR}/mtd-utils-${PV}/" + +EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR'" + +do_stage () { + install -d ${STAGING_INCDIR}/mtd + for f in ${S}/include/mtd/*.h; do + install -m 0644 $f ${STAGING_INCDIR}/mtd/ + done + for binary in ${mtd_utils}; do + install -m 0755 $binary ${STAGING_BINDIR} + done +} + +mtd_utils = "ftl_format flash_erase flash_eraseall nanddump doc_loadbios \ + mkfs.jffs ftl_check mkfs.jffs2 flash_lock flash_unlock flash_info mtd_debug \ + flashcp nandwrite jffs2dump sumtool" + +do_install () { + install -d ${D}${bindir} + install -d ${D}${includedir} + for binary in ${mtd_utils}; do + install -m 0755 $binary ${D}${bindir} + done + for f in ${S}/include/mtd/*.h; do + install -m 0644 $f ${D}${includedir} + done +} + +PACKAGES =+ "mkfs-jffs mkfs-jffs2" +FILES_mkfs-jffs = "${bindir}/mkfs.jffs" +FILES_mkfs-jffs2 = "${bindir}/mkfs.jffs2" + diff --git a/packages/ode/files/install.patch b/packages/ode/files/install.patch new file mode 100644 index 0000000000..d63229f8ec --- /dev/null +++ b/packages/ode/files/install.patch @@ -0,0 +1,22 @@ +Index: ode-0.9/Makefile.am +=================================================================== +--- ode-0.9.orig/Makefile.am ++++ ode-0.9/Makefile.am +@@ -25,13 +25,13 @@ dist-zip: ${PACKAGE}-${VERSION}.tar.gz + + if USE_SONAME + install-exec-hook: +- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \ ++ ln -sf ./@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \ + $(libdir)/libode.so +- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \ ++ ln -sf ./@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \ + $(libdir)/@ODE_SONAME@ +- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \ ++ ln -sf ./@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \ + $(libdir)/@ODE_SONAME@.@ODE_REVISION@ +- /sbin/ldconfig ++ echo /sbin/ldconfig + else + install-exec-hook: + endif diff --git a/packages/ode/ode_0.9.bb b/packages/ode/ode_0.9.bb index 9055681a36..31eed3b884 100644 --- a/packages/ode/ode_0.9.bb +++ b/packages/ode/ode_0.9.bb @@ -5,26 +5,30 @@ LICENSE = "LGPL" PR = "r0" SRC_URI = "${SOURCEFORGE_MIRROR}/opende/ode-src-${PV}.zip \ - file://config.h" + file://install.patch;patch=1" -inherit autotools +inherit autotools binconfig -#do_configure() { -# touch configurator.exe -# chmod a+rx configurator.exe -# install -m 0644 ${WORKDIR}/config.h include/ode/ -#} +EXTRA_OECONF = "--disable-demos --enable-soname" -#do_compile() { -# oe_runmake CC="${CC}" CFLAGS="${CFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" RANLIB="${RANLIB}" AR="${AR} qf " ode-lib -#} +do_configure_append() { + echo "#define dInfinity DBL_MAX" >>include/ode/config.h +} -#do_stage() { -# install -d ${STAGING_INCDIR}/ode/ -# install -m 0644 include/ode/*.h ${STAGING_INCDIR}/ode/ -# oe_libinstall -C lib -a libode ${STAGING_LIBDIR} -#} +do_stage() { + oe_runmake install \ + bindir=${STAGING_BINDIR_CROSS} \ + libdir=${STAGING_LIBDIR} \ + includedir=${STAGING_INCDIR} \ + datadir=${STAGING_DATADIR} +} -#do_install() { -# : -#} +do_install() { + oe_runmake install \ + bindir=${D}${bindir} \ + libdir=${D}${libdir} \ + includedir=${D}${incdir} \ + datadir=${D}${datadir} +} + +FILES_${PN} = "${libdir}/lib*.so*" diff --git a/packages/openssl/openssl.inc b/packages/openssl/openssl.inc index 8e3f33a96e..9fb8b343b6 100644 --- a/packages/openssl/openssl.inc +++ b/packages/openssl/openssl.inc @@ -14,7 +14,7 @@ export CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}" export CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}" export DIRS = "crypto ssl apps" -export EX_LIBS = "-lgcc -ldl ${TARGET_LDFLAGS}" +export EX_LIBS = "-lgcc -ldl" export AS = "${CC} -c" PACKAGES =+ "libcrypto libssl" diff --git a/packages/pango/pango-1.13.3/opentype-makefile.patch b/packages/pango/pango-1.13.3/opentype-makefile.patch deleted file mode 100644 index 9f68420bc5..0000000000 --- a/packages/pango/pango-1.13.3/opentype-makefile.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- pango/opentype/Makefile.am~ 2006-07-05 14:49:28.000000000 +0200 -+++ pango/opentype/Makefile.am 2006-07-05 14:49:28.000000000 +0200 -@@ -5,7 +5,7 @@ - - noinst_LTLIBRARIES = libharfbuzz-1.la - --SOURCES = \ -+MAIN_SOURCES = \ - ftglue.c \ - harfbuzz-buffer.c \ - harfbuzz-dump.c \ -@@ -34,7 +34,7 @@ - harfbuzz-open-private.h - - libharfbuzz_1_la_SOURCES = \ -- $(SOURCES) \ -+ $(MAIN_SOURCES) \ - $(PUBLICHEADERS) \ - $(PRIVATEHEADERS) - diff --git a/packages/pango/pango-1.16.0/no-tests.patch b/packages/pango/pango-1.16.0/no-tests.patch deleted file mode 100644 index dafcb20c3b..0000000000 --- a/packages/pango/pango-1.16.0/no-tests.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- /tmp/Makefile.am 2007-03-01 13:29:37.000000000 +0100 -+++ pango-1.16.0/Makefile.am 2007-03-01 13:29:52.545251000 +0100 -@@ -1,6 +1,6 @@ - ## Process this file with automake to create Makefile.in. - --SUBDIRS= pango modules pango-view examples docs tools tests -+SUBDIRS= pango modules pango-view examples docs tools - - EXTRA_DIST = \ - autogen.sh \ diff --git a/packages/pango/pango-1.16.2/no-tests.patch b/packages/pango/pango-1.16.2/no-tests.patch deleted file mode 100644 index dafcb20c3b..0000000000 --- a/packages/pango/pango-1.16.2/no-tests.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- /tmp/Makefile.am 2007-03-01 13:29:37.000000000 +0100 -+++ pango-1.16.0/Makefile.am 2007-03-01 13:29:52.545251000 +0100 -@@ -1,6 +1,6 @@ - ## Process this file with automake to create Makefile.in. - --SUBDIRS= pango modules pango-view examples docs tools tests -+SUBDIRS= pango modules pango-view examples docs tools - - EXTRA_DIST = \ - autogen.sh \ diff --git a/packages/pango/pango-1.18.1/no-tests.patch b/packages/pango/pango-1.18.1/no-tests.patch deleted file mode 100644 index dafcb20c3b..0000000000 --- a/packages/pango/pango-1.18.1/no-tests.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- /tmp/Makefile.am 2007-03-01 13:29:37.000000000 +0100 -+++ pango-1.16.0/Makefile.am 2007-03-01 13:29:52.545251000 +0100 -@@ -1,6 +1,6 @@ - ## Process this file with automake to create Makefile.in. - --SUBDIRS= pango modules pango-view examples docs tools tests -+SUBDIRS= pango modules pango-view examples docs tools - - EXTRA_DIST = \ - autogen.sh \ diff --git a/packages/pango/pango-1.18.3/pkgconfig_fixes.patch b/packages/pango/pango-1.18.3/pkgconfig_fixes.patch new file mode 100644 index 0000000000..f021591a91 --- /dev/null +++ b/packages/pango/pango-1.18.3/pkgconfig_fixes.patch @@ -0,0 +1,79 @@ +Index: pango-1.18.1/configure.in +=================================================================== +--- pango-1.18.1.orig/configure.in 2007-08-28 00:29:54.000000000 +0000 ++++ pango-1.18.1/configure.in 2007-11-12 19:21:22.000000000 +0000 +@@ -226,13 +226,9 @@ + # + # Checks for FreeType + # +- FREETYPE_LIBS= +- FREETYPE_CFLAGS= +- AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) +- if test "x$FREETYPE_CONFIG" != "xno" ; then +- FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags` +- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` ++ PKG_CHECK_MODULES(FREETYPE, freetype2 >= 1.0.1, have_freetype=true, AC_MSG_RESULT([no])) + ++ if $have_freetype ; then + pango_save_ldflags=$LDFLAGS + LDFLAGS="$LDFLAGS $FREETYPE_LIBS" + AC_CHECK_LIB(freetype, FT_Get_Next_Char, have_freetype=true, :) +Index: pango-1.18.1/pangoft2-uninstalled.pc.in +=================================================================== +--- pango-1.18.1.orig/pangoft2-uninstalled.pc.in 2007-07-05 21:30:28.000000000 +0000 ++++ pango-1.18.1/pangoft2-uninstalled.pc.in 2007-11-12 19:23:44.000000000 +0000 +@@ -1,7 +1,7 @@ + Name: Pango FT2 Uninstalled + Description: Freetype 2.0 font support for Pango, Not Installed + Version: @VERSION@ +-Requires: pango +-Libs: ${pc_top_builddir}/${pcfiledir}/pango/libpangoft2-@PANGO_API_VERSION@.la @FREETYPE_LIBS@ +-Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@ @FREETYPE_CFLAGS@ ++Requires: pango freetype2 ++Libs: ${pc_top_builddir}/${pcfiledir}/pango/libpangoft2-@PANGO_API_VERSION@.la ++Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@ + +Index: pango-1.18.1/pangoft2.pc.in +=================================================================== +--- pango-1.18.1.orig/pangoft2.pc.in 2007-07-05 21:30:28.000000000 +0000 ++++ pango-1.18.1/pangoft2.pc.in 2007-11-12 19:27:05.000000000 +0000 +@@ -6,7 +6,7 @@ + Name: Pango FT2 + Description: Freetype 2.0 font support for Pango + Version: @VERSION@ +-Requires: pango +-Libs: -L${libdir} -lpangoft2-@PANGO_API_VERSION@ @PKGCONFIG_FREETYPE_LIBS@ +-Cflags: -I${includedir}/pango-1.0 @FONTCONFIG_CFLAGS@ @FREETYPE_CFLAGS@ ++Requires: pango freetype2 fontconfig ++Libs: -L${libdir} -lpangoft2-@PANGO_API_VERSION@ ++Cflags: -I${includedir}/pango-1.0 + +Index: pango-1.18.1/pangoxft-uninstalled.pc.in +=================================================================== +--- pango-1.18.1.orig/pangoxft-uninstalled.pc.in 2007-07-05 21:30:28.000000000 +0000 ++++ pango-1.18.1/pangoxft-uninstalled.pc.in 2007-11-12 19:22:24.000000000 +0000 +@@ -1,7 +1,7 @@ + Name: Pango Xft Uninstalled + Description: Xft font support for Pango, Not Installed + Version: @VERSION@ +-Requires: pango +-Libs: ${pc_top_builddir}/${pcfiledir}/pango/libpangoxft-@PANGO_API_VERSION@.la @XFT_LIBS@ +-Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@ @X_CFLAGS@ @FREETYPE_CFLAGS@ ++Requires: pango xft ++Libs: ${pc_top_builddir}/${pcfiledir}/pango/libpangoxft-@PANGO_API_VERSION@.la ++Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@ @X_CFLAGS@ + +Index: pango-1.18.1/pangoxft.pc.in +=================================================================== +--- pango-1.18.1.orig/pangoxft.pc.in 2007-07-05 21:30:28.000000000 +0000 ++++ pango-1.18.1/pangoxft.pc.in 2007-11-12 19:21:57.000000000 +0000 +@@ -6,6 +6,6 @@ + Name: Pango Xft + Description: Xft font support for Pango + Version: @VERSION@ +-Requires: pango pangoft2 +-Libs: -L${libdir} -lpangoxft-@PANGO_API_VERSION@ @PKGCONFIG_XFT_LIBS@ +-Cflags: -I${includedir}/pango-1.0 @XFT_CFLAGS@ ++Requires: pango pangoft2 xft ++Libs: -L${libdir} -lpangoxft-@PANGO_API_VERSION@ ++Cflags: -I${includedir}/pango-1.0 diff --git a/packages/pango/pango_1.13.3.bb b/packages/pango/pango_1.13.3.bb deleted file mode 100644 index 90e4acbf50..0000000000 --- a/packages/pango/pango_1.13.3.bb +++ /dev/null @@ -1,54 +0,0 @@ -LICENSE = "LGPL" -SECTION = "x11/libs" -DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libx11 libxft gtk-doc cairo" -DESCRIPTION = "The goal of the Pango project is to provide an \ -Open Source framework for the layout and rendering of \ -internationalized text." -PR = "r2" - -RRECOMMENDS_${PN} = "pango-module-basic-x pango-module-basic-fc" - -# seems to go wrong with default cflags -FULL_OPTIMIZATION_arm = "-O2" - -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pango/1.13/pango-${PV}.tar.bz2 \ - file://no-tests.patch;patch=1 \ - file://opentype-makefile.patch;patch=1;pnum=0" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-glibtest \ - --enable-explicit-deps=no \ - --disable-debug" - -LEAD_SONAME = "libpango-1.0*" -LIBV = "1.5.0" - -FILES_${PN} = "/etc ${bindir}/* ${libdir}/libpango*.so.*" -FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug" -FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la" - -do_stage () { - for lib in pango pangox pangoft2 pangoxft pangocairo; do - oe_libinstall -so -C pango lib$lib-1.0 ${STAGING_LIBDIR}/ - done - install -d ${STAGING_INCDIR}/pango - install -m 0644 ${S}/pango/pango*.h ${STAGING_INCDIR}/pango/ -} - -postinst_prologue() { -if [ "x$D" != "x" ]; then - exit 1 -fi - -} - -PACKAGES_DYNAMIC = "pango-module-*" - -python populate_packages_prepend () { - prologue = bb.data.getVar("postinst_prologue", d, 1) - - modules_root = bb.data.expand('${libdir}/pango/${LIBV}/modules', d) - - do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules') -} diff --git a/packages/pango/pango_1.14.0.bb b/packages/pango/pango_1.14.0.bb deleted file mode 100644 index caa09c610a..0000000000 --- a/packages/pango/pango_1.14.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -LICENSE = "LGPL" -SECTION = "x11/libs" -DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libx11 libxft gtk-doc cairo" -DESCRIPTION = "The goal of the Pango project is to provide an \ -Open Source framework for the layout and rendering of \ -internationalized text." -PR = "r2" - -PACKAGES_DYNAMIC = "pango-module-*" - -RRECOMMENDS_${PN} = "pango-module-basic-x pango-module-basic-fc" - -# seems to go wrong with default cflags -FULL_OPTIMIZATION_arm = "-O2" - -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pango/1.14/pango-${PV}.tar.bz2 \ - file://no-tests.patch;patch=1 \ - " -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-glibtest \ - --enable-explicit-deps=no \ - --disable-debug" - -LEAD_SONAME = "libpango-1.0*" -LIBV = "1.5.0" - -FILES_${PN} = "/etc ${bindir}/* ${libdir}/libpango*.so.*" -FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug" -FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la" - -do_stage () { - autotools_stage_all -} - -postinst_prologue() { -if [ "x$D" != "x" ]; then - exit 1 -fi - -} - -python populate_packages_prepend () { - prologue = bb.data.getVar("postinst_prologue", d, 1) - - modules_root = bb.data.expand('${libdir}/pango/${LIBV}/modules', d) - - do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules') -} diff --git a/packages/pango/pango_1.15.1.bb b/packages/pango/pango_1.15.1.bb deleted file mode 100644 index 82d1ad2b66..0000000000 --- a/packages/pango/pango_1.15.1.bb +++ /dev/null @@ -1,51 +0,0 @@ -DESCRIPTION = "The goal of the Pango project is to provide an \ -Open Source framework for the layout and rendering of \ -internationalized text." -LICENSE = "LGPL" -SECTION = "x11/libs" - -DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libx11 libxft gtk-doc cairo" - -PR = "r0" - -PACKAGES_DYNAMIC = "pango-module-*" - -RRECOMMENDS_${PN} = "pango-module-basic-x pango-module-basic-fc" - -# seems to go wrong with default cflags -FULL_OPTIMIZATION_arm = "-O2" - -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pango/1.15/pango-${PV}.tar.bz2 \ - file://no-tests.patch;patch=1 \ - " -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-glibtest \ - --enable-explicit-deps=no \ - --disable-debug" - -LEAD_SONAME = "libpango-1.0*" -LIBV = "1.6.0" - -FILES_${PN} = "/etc ${bindir}/* ${libdir}/libpango*.so.*" -FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug" -FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la" - -do_stage () { - autotools_stage_all -} - -postinst_prologue() { -if [ "x$D" != "x" ]; then - exit 1 -fi - -} - -python populate_packages_prepend () { - prologue = bb.data.getVar("postinst_prologue", d, 1) - - modules_root = bb.data.expand('${libdir}/pango/${LIBV}/modules', d) - - do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules') -} diff --git a/packages/pango/pango_1.15.2.bb b/packages/pango/pango_1.15.2.bb deleted file mode 100644 index 8e3e8e7d3a..0000000000 --- a/packages/pango/pango_1.15.2.bb +++ /dev/null @@ -1 +0,0 @@ -require pango.inc diff --git a/packages/pango/pango_1.16.0.bb b/packages/pango/pango_1.16.0.bb deleted file mode 100644 index 8e3e8e7d3a..0000000000 --- a/packages/pango/pango_1.16.0.bb +++ /dev/null @@ -1 +0,0 @@ -require pango.inc diff --git a/packages/pango/pango_1.16.2.bb b/packages/pango/pango_1.16.2.bb deleted file mode 100644 index 8e3e8e7d3a..0000000000 --- a/packages/pango/pango_1.16.2.bb +++ /dev/null @@ -1 +0,0 @@ -require pango.inc diff --git a/packages/pango/pango_1.16.4.bb b/packages/pango/pango_1.16.4.bb index 2749b0ba1e..ce81d89263 100644 --- a/packages/pango/pango_1.16.4.bb +++ b/packages/pango/pango_1.16.4.bb @@ -1,4 +1,2 @@ -DEFAULT_PREFERENCE = "-1" - require pango.inc diff --git a/packages/pango/pango_1.18.1.bb b/packages/pango/pango_1.18.1.bb deleted file mode 100644 index 8e3e8e7d3a..0000000000 --- a/packages/pango/pango_1.18.1.bb +++ /dev/null @@ -1 +0,0 @@ -require pango.inc diff --git a/packages/pango/pango_1.18.3.bb b/packages/pango/pango_1.18.3.bb index 9656f30376..4069cecebd 100644 --- a/packages/pango/pango_1.18.3.bb +++ b/packages/pango/pango_1.18.3.bb @@ -1,4 +1,4 @@ require pango.inc -DEFAULT_PREFERENCE = "-1" +SRC_URI += "file://pkgconfig_fixes.patch;patch=1" diff --git a/packages/pango/pango_1.9.1.bb b/packages/pango/pango_1.9.1.bb deleted file mode 100644 index 66a6a84d22..0000000000 --- a/packages/pango/pango_1.9.1.bb +++ /dev/null @@ -1,52 +0,0 @@ -LICENSE = "LGPL" -SECTION = "x11/libs" -DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libx11 libxft gtk-doc" -RRECOMMENDS_${PN} = "pango-module-basic-x pango-module-basic-fc" -DESCRIPTION = "The goal of the Pango project is to provide an \ -Open Source framework for the layout and rendering of \ -internationalized text." -PR = "r1" - -# seems to go wrong with default cflags -FULL_OPTIMIZATION_arm = "-O2" - -SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.7/pango-${PV}.tar.bz2 \ - file://no-tests.patch;patch=1" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-glibtest \ - --enable-explicit-deps=no \ - --disable-debug" - -LEAD_SONAME = "libpango-1.0*" -LIBV = "1.4.0" - -FILES_${PN} = "/etc ${bindir}/* ${libdir}/libpango*.so.*" -FILES_${PN}-dbg += "${libdir}/pango/${LIBV}/modules/.debug" -FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la" - -do_stage () { - for lib in pango pangox pangoft2 pangoxft; do - oe_libinstall -so -C pango lib$lib-1.0 ${STAGING_LIBDIR}/ - done - install -d ${STAGING_INCDIR}/pango - install -m 0644 ${S}/pango/pango*.h ${STAGING_INCDIR}/pango/ -} - -postinst_prologue() { -if [ "x$D" != "x" ]; then - exit 1 -fi - -} - -PACKAGES_DYNAMIC = "pango-module-*" - -python populate_packages_prepend () { - prologue = bb.data.getVar("postinst_prologue", d, 1) - - modules_root = bb.data.expand('${libdir}/pango/${LIBV}/modules', d) - - do_split_packages(d, modules_root, '^pango-(.*)\.so$', 'pango-module-%s', 'Pango module %s', prologue + 'pango-querymodules > /etc/pango/pango.modules') -} diff --git a/packages/python/python-pyode/.mtn2git_empty b/packages/python/python-pyode/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/python/python-pyode/.mtn2git_empty diff --git a/packages/python/python-pyode/install.patch b/packages/python/python-pyode/install.patch new file mode 100644 index 0000000000..6f230972c7 --- /dev/null +++ b/packages/python/python-pyode/install.patch @@ -0,0 +1,16 @@ +Index: PyODE-1.2.0/setup.py +=================================================================== +--- PyODE-1.2.0.orig/setup.py ++++ PyODE-1.2.0/setup.py +@@ -39,11 +39,6 @@ if sys.platform=="win32": + # Linux (and other) specific settings + ###################################################################### + else: +- +- for base in ["/usr", "/usr/local", "/opt/local"]: +- INC_DIRS += [os.path.join(base, "include")] +- LIB_DIRS += [os.path.join(base, "lib")] +- + LIBS += ["ode", "stdc++"] + + diff --git a/packages/python/python_2.5.2.bb b/packages/python/python_2.5.2.bb index 24b49f37ed..e6667cc04b 100644 --- a/packages/python/python_2.5.2.bb +++ b/packages/python/python_2.5.2.bb @@ -82,8 +82,11 @@ do_install() { require python-${PYTHON_MAJMIN}-manifest.inc +# manual additions RPROVIDES_python-core = "python" RRECOMMENDS_python-core = "python-readline" +RRECOMMENDS_python-crypt = "openssl" +PR_python-crypt = "ml1" # add sitecustomize FILES_python-core += "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py" diff --git a/packages/rt-tests/.mtn2git_empty b/packages/rt-tests/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/rt-tests/.mtn2git_empty diff --git a/packages/rt-tests/rt-tests_0.19.bb b/packages/rt-tests/rt-tests_0.19.bb new file mode 100644 index 0000000000..e2c9e17846 --- /dev/null +++ b/packages/rt-tests/rt-tests_0.19.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Real-time tests, such as cyclictest." +HOMEPAGE = "http://rt.wiki.kernel.org/index.php/Cyclictest" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://www.kernel.org/pub/linux/kernel/people/tglx/rt-tests/rt-tests-${PV}.tar.bz2" + +S = "${WORKDIR}/rt-tests" + +do_install() { + install -d ${D}${bindir} + for binary in `find . -perm 0755 -type f` + do + install -m 0755 $binary ${D}${bindir} + done +} + + diff --git a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb index 051279e33f..e52ab34392 100644 --- a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb +++ b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb @@ -2,14 +2,13 @@ DESCRIPTION = "Precompiled SharpROM toolchain glue package" LICENSE = "GPL" SECTION = "base" # see bug 2199 for the reason the following line is in here -DEPENDS = "virtual/linux-libc-headers" +DEPENDS = "linux-libc-headers cross-linkage staging-linkage" PROVIDES_sharprom-compatible = "\ virtual/arm-linux-gcc-2.95 \ virtual/arm-linux-libc-for-gcc \ virtual/arm-linux-binutils \ virtual/libc \ virtual/arm-linux-gcc \ - virtual/linux-libc-headers \ virtual/arm-linux-gcc-initial " PR = "r1" diff --git a/packages/u-boot/u-boot-openmoko-devel_git.bb b/packages/u-boot/u-boot-openmoko-devel_git.bb index c2e21658ac..c1a5cefe77 100644 --- a/packages/u-boot/u-boot-openmoko-devel_git.bb +++ b/packages/u-boot/u-boot-openmoko-devel_git.bb @@ -6,14 +6,16 @@ PRIORITY = "optional" PROVIDES = "virtual/bootloader" LOCALVERSION = "+git${SRCREV}" PV = "1.3.1${LOCALVERSION}" -PR = "r0" +PR = "r1" -UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v1 gta02v2 gta02v3 gta02v4" +UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v2 gta02v4 gta02v5" DEFAULT_PREFERENCE = "-1" SRCREV_FORMAT = "git.openmoko.org" +SRCREV = "1dd080c17b105da5cd4720307fa62de38276796a" + SRC_URI = "git://git.openmoko.org/git/u-boot.git;protocol=git;branch=andy \ file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \ file://makefile-no-dirafter.patch;patch=1 \ diff --git a/packages/u-boot/u-boot-openmoko_svn.bb b/packages/u-boot/u-boot-openmoko_svn.bb index ca21f54f8a..ba172c094e 100644 --- a/packages/u-boot/u-boot-openmoko_svn.bb +++ b/packages/u-boot/u-boot-openmoko_svn.bb @@ -6,11 +6,11 @@ PRIORITY = "optional" PROVIDES = "virtual/bootloader" LOCALVERSION = "+git${SRCDATE}+svnr${SRCREV}" PV = "1.3.1${LOCALVERSION}" -PR = "r0" +PR = "r1" SRCREV_FORMAT = "patches" -UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v1 gta02v2 gta02v3 gta02v4" +UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v2 gta02v4 gta02v5" DEFAULT_PREFERENCE = "-1" diff --git a/packages/ukeyboard/.mtn2git_empty b/packages/ukeyboard/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ukeyboard/.mtn2git_empty diff --git a/packages/ukeyboard/ukeyboard_1.2.bb b/packages/ukeyboard/ukeyboard_1.2.bb new file mode 100644 index 0000000000..354a737b09 --- /dev/null +++ b/packages/ukeyboard/ukeyboard_1.2.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Additional keyboard layouts for Nokia N800/N810" +SECTION = "user/other" +DEPENDS = "gtk+ libosso gconf hildon-control-panel" + +SRC_URI = "http://upir.cz/maemo/dists/chinook/main/source/ukeyboard_${PV}.tar.gz " + +do_install() { + oe_runmake install DESTDIR=${D} +} + +FILES_${PN} += "${datadir}/X11/xkb \ + ${datadir}/scv_layouts \ + ${libdir}/hildon-control-panel/libukeyboard-prefs.so" +FILES_${PN}-dbg += "${libdir}/hildon-control-panel/.debug/" diff --git a/packages/util-linux-ng/util-linux-ng.inc b/packages/util-linux-ng/util-linux-ng.inc index c01458d626..fa02f35356 100644 --- a/packages/util-linux-ng/util-linux-ng.inc +++ b/packages/util-linux-ng/util-linux-ng.inc @@ -9,7 +9,8 @@ inherit autotools # @todo Remove $RC later. See if patches are needed. Move files from /usr/*. # -- Leon 'likewise' Woestenberg -RC="-rc2" +#RC="-rc2" +RC="" DEFAULT_PREFERENCE = "-1" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/util-linux-ng/v2.13/util-linux-ng-${PV}${RC}.tar.bz2" diff --git a/packages/vagalume/.mtn2git_empty b/packages/vagalume/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/vagalume/.mtn2git_empty diff --git a/packages/vagalume/vagalume_0.5.1.bb b/packages/vagalume/vagalume_0.5.1.bb new file mode 100644 index 0000000000..a2d5c5889a --- /dev/null +++ b/packages/vagalume/vagalume_0.5.1.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "Last.fm client" +AUTHOR = "agarcia@igalia.com" +HOMEPAGE = "http://people.igalia.com/berto/" +SECTION = "x11" +DEPENDS = "gtk+" + +SRC_URI = "http://people.igalia.com/berto/files/vagalume/source/vagalume_0.5.1-1.tar.gz" + +inherit autotools diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/pkgconfig_fix.patch b/packages/xorg-xserver/xserver-kdrive-1.4/pkgconfig_fix.patch new file mode 100644 index 0000000000..0790d4c32b --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.4/pkgconfig_fix.patch @@ -0,0 +1,13 @@ +Index: xorg-server-1.4/xorg-server.pc.in +=================================================================== +--- xorg-server-1.4.orig/xorg-server.pc.in 2008-02-29 12:29:02.000000000 +0000 ++++ xorg-server-1.4/xorg-server.pc.in 2008-02-29 12:27:36.000000000 +0000 +@@ -7,6 +7,7 @@ + + Name: xorg-server + Description: Modular X.Org X Server ++Requires: pixman + Version: @PACKAGE_VERSION@ +-Cflags: -I${sdkdir} @PIXMAN_CFLAGS@ ++Cflags: -I${sdkdir} + Libs: -L${libdir} diff --git a/packages/xorg-xserver/xserver-kdrive_1.4.bb b/packages/xorg-xserver/xserver-kdrive_1.4.bb index c87090197c..30ae4a2e3d 100644 --- a/packages/xorg-xserver/xserver-kdrive_1.4.bb +++ b/packages/xorg-xserver/xserver-kdrive_1.4.bb @@ -3,7 +3,7 @@ require xserver-kdrive-common.inc DEPENDS += "hal libxkbfile libxcalibrate pixman" PE = "1" -PR = "r3" +PR = "r4" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ ${KDRIVE_COMMON_PATCHES} \ @@ -22,6 +22,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://fbdev-evdev.patch;patch=1 \ file://keyboard-resume-workaround.patch;patch=1 \ file://xorg-avr32-support.diff;patch=1 \ + file://pkgconfig_fix.patch;patch=1 \ " S = "${WORKDIR}/xorg-server-${PV}" |