diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2008-10-19 00:43:17 +0200 |
---|---|---|
committer | Stefan Schmidt <stefan@datenfreihafen.org> | 2008-10-19 00:43:17 +0200 |
commit | 14bf8220ea36950431c7d521a9ab47dace33ba9d (patch) | |
tree | 04a23c0f7bbea0d4142747143f355e256aaa1055 /packages | |
parent | 310ccc10715067a20f96c87c4e78553193060c90 (diff) | |
parent | f5908addf3671abab19e1e43763b3b0ca60a451b (diff) |
Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into org.openembedded.dev
Diffstat (limited to 'packages')
86 files changed, 2109 insertions, 468 deletions
diff --git a/packages/base-files/base-files/collie/fstab b/packages/base-files/base-files/collie/fstab deleted file mode 100644 index c2e3f3c189..0000000000 --- a/packages/base-files/base-files/collie/fstab +++ /dev/null @@ -1,13 +0,0 @@ -/dev/mtdblock4 / jffs2 defaults 1 1 -proc /proc proc defaults 0 0 -/dev/hda1 /media/cf auto defaults,sync,noauto,noatime,user,exec,suid,gid=100,umask=0002 0 0 -tmpfs /var/volatile tmpfs mode=0755 0 0 -tmpfs /dev/shm tmpfs mode=0777 0 0 - -# we use a non-volatile ramdisk, see /etc/init.d/ramdisk -#tmpfs /media/ram tmpfs defaults 0 0 - -# SD/MMC in kernel 2.4 -#/dev/mmcda1 /media/card auto defaults,sync,noauto 0 0 -# SD/MMC in kernel 2.6 -/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0 diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb index 4a7a41ac57..31164e4bc1 100644 --- a/packages/base-files/base-files_3.0.14.bb +++ b/packages/base-files/base-files_3.0.14.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Miscellaneous files for the base system." SECTION = "base" PRIORITY = "required" -FILE_PR = "r81" +FILE_PR = "r82" LICENSE = "GPL" SRC_URI = " \ diff --git a/packages/boost/boost-36.inc b/packages/boost/boost-36.inc index 826ad81299..3ccb66f4b6 100644 --- a/packages/boost/boost-36.inc +++ b/packages/boost/boost-36.inc @@ -15,59 +15,52 @@ BOOST_VER = "${@"_".join(bb.data.getVar("PV",d,1).split("."))}" BOOST_MAJ = "${@"_".join(bb.data.getVar("PV",d,1).split(".")[0:2])}" BOOST_P = "boost_${BOOST_VER}" -S = "${WORKDIR}/${BOOST_P}" - -# Make a package for each library, plus -dev and -python -PACKAGES = "${PN}-dbg" -BOOSTLIBS = "" - -PACKAGES += "boost-date-time" -FILES_boost-date-time = "${libdir}/libboost_date_time*.so*" - -BOOSTLIBS += "boost-filesystem" -FILES_boost-filesystem = "${libdir}/libboost_filesystem*.so*" - -BOOSTLIBS += "boost-prg-exec-monitor" -FILES_boost-prg-exec-monitor = "${libdir}/libboost_prg_exec_monitor*.so*" - -BOOSTLIBS += "boost-program-options" -FILES_boost-program-options = "${libdir}/libboost_program_options*.so*" - -BOOSTLIBS += "boost-regex" -FILES_boost-regex = "${libdir}/libboost_regex*.so*" - -BOOSTLIBS += "boost-signals" -FILES_boost-signals = "${libdir}/libboost_signals*.so*" - -BOOSTLIBS += "boost-test-exec-monitor" -FILES_boost-test-exec-monitor = "${libdir}/libboost_test_exec_monitor*.so*" +BOOST_LIBS = "\ + date_time \ + filesystem \ + graph \ + iostreams \ + program_options \ + regex \ + signals \ + system \ + test \ + thread \ + " + +# FIXME: for some reason this fails on powerpc +#BOOST_LIBS += "serialization" + +# To enable python, uncomment the following: +#BOOST_LIBS += "python" +#DEPENDS += "python" +#PYTHON_ROOT = "${STAGING_DIR_HOST}/${layout_prefix}" +#PYTHON_VERSION = "2.5" -BOOSTLIBS += "boost-thread-mt" -FILES_boost-thread-mt = "${libdir}/libboost_thread-mt.so*" - -BOOSTLIBS += "boost-unit-test-framework" -FILES_boost-unit-test-framework = "${libdir}/libboost_unit_test_framework*.so*" - -BOOSTLIBS += "boost-iostreams" -FILES_boost-iostreams = "${libdir}/libboost_iostreams*.so*" - -BOOSTLIBS += "boost-serialization" -FILES_boost-serialization = "${libdir}/libboost_serialization*.so*" - -BOOSTLIBS += "boost-wserialization" -FILES_boost-wserialization = "${libdir}/libboost_wserialization*.so*" - -# Python - remove this and set: -#PYTHON_ROOT = "/dev/null" -# to remove the python build -DEPENDS += "python" -PYTHON_ROOT = "${STAGING_DIR_HOST}/${layout_prefix}" -PYTHON_VERSION = "2.5" +S = "${WORKDIR}/${BOOST_P}" -BOOSTLIBS += "boost-python" -FILES_boost-python = "${libdir}/libboost_python*.so*" +# Make a package for each library, plus -dev +PACKAGES = "${PN}-dbg ${BOOST_PACKAGES}" +python __anonymous () { + import bb + + packages = [] + extras = [] + for lib in bb.data.getVar('BOOST_LIBS', d, 1).split( ): + pkg = "boost-%s" % lib.replace("_", "-") + extras.append("--with-%s" % lib) + packages.append(pkg) + if not bb.data.getVar("FILES_%s" % pkg, d, 1): + bb.data.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so*" % lib, d) + bb.data.setVar("BOOST_PACKAGES", " ".join(packages), d) + bb.data.setVar("BJAM_EXTRA", " ".join(extras), d) +} -PACKAGES += "${BOOSTLIBS}" +# Override the contents of specific packages +FILES_boost-serialization = "${libdir}/libboost_serialization*.so* \ + ${libdir}/libboost_wserialization*.so*" +FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so \ + ${libdir}/libboost_unit_test_framework*.so*" # -dev last to pick up the remaining stuff PACKAGES += "${PN}-dev" @@ -75,7 +68,7 @@ FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a" # "boost" is a metapackage which pulls in all boost librabries PACKAGES += "${PN}" -RRECOMMENDS_${PN} += "${BOOSTLIBS}" +RRECOMMENDS_${PN} += "${BOOST_PACKAGES}" # Oh yippee, a new build system, it's sooo cooool I could eat my own # foot. inlining=on lets the compiler choose, I think. At least this @@ -122,12 +115,6 @@ BJAM_TOOLS = "-sTOOLS=gcc \ '--layout=system' \ " -BJAM_EXTRA = '\ - --with-thread \ - --with-date_time \ - --with-filesystem \ - ' - BJAM_OPTS = '${BJAM_TOOLS} \ --builddir=${S}/${TARGET_SYS} \ --with-python-root=${PYTHON_ROOT} \ diff --git a/packages/boost/boost_1.36.0.bb b/packages/boost/boost_1.36.0.bb index 20a8f0ad47..17fddb06b4 100644 --- a/packages/boost/boost_1.36.0.bb +++ b/packages/boost/boost_1.36.0.bb @@ -2,7 +2,7 @@ include boost-36.inc DEFAULT_PREFERENCE = "-1" -FILE_PR = "r1" +FILE_PR = "r3" SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \ file://arm-intrinsics.patch;patch=1 \ diff --git a/packages/duke3d/duke3d_svn.bb b/packages/duke3d/duke3d_svn.bb index 11c33b1fad..36e46df513 100644 --- a/packages/duke3d/duke3d_svn.bb +++ b/packages/duke3d/duke3d_svn.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Duke Nukem 3D game engine" LICENSE = "GPLv2" -DEPENDS = "libsdl libsdl-mixer" +DEPENDS = "virtual/libsdl libsdl-mixer" SRCREV = "185" PV = "0.0+svnr${SRCREV}" diff --git a/packages/freesmartphone/frameworkd_git.bb b/packages/freesmartphone/frameworkd_git.bb index 3ad398b5e7..2fd8a480fd 100644 --- a/packages/freesmartphone/frameworkd_git.bb +++ b/packages/freesmartphone/frameworkd_git.bb @@ -4,7 +4,7 @@ AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de> et. al." SECTION = "console/network" DEPENDS = "python-cython-native python-pyrex-native" LICENSE = "GPL" -PV = "0.8.4.0+gitr${SRCREV}" +PV = "0.8.4.2+gitr${SRCREV}" FILE_PR = "r0" inherit distutils update-rc.d @@ -35,6 +35,7 @@ RDEPENDS_${PN} += "\ python-shell \ python-subprocess \ python-syslog \ + python-textutils \ \ ${PN}-config \ " @@ -49,10 +50,21 @@ RRECOMMENDS_${PN}_append_om-gta01 = "gsm0710muxd" RRECOMMENDS_${PN}_append_om-gta02 = "gsm0710muxd" PACKAGES =+ "${PN}-config" - PACKAGE_ARCH_${PN}-config = "${MACHINE_ARCH}" -FILES_${PN}-config = "${sysconfdir}/frameworkd.conf" -CONFFILES_${PN}-config = "${sysconfdir}/frameworkd.conf" + +FILES_${PN}-config = "\ + ${sysconfdir}/frameworkd.conf \ + ${sysconfdir}/freesmartphone \ +" +CONFFILES_${PN}-config = "\ + ${sysconfdir}/frameworkd.conf \ + ${sysconfdir}/freesmartphone/opreferences/conf/phone/silent.yaml \ + ${sysconfdir}/freesmartphone/opreferences/conf/phone/default.yaml \ + ${sysconfdir}/freesmartphone/opreferences/conf/profiles/default.yaml \ + ${sysconfdir}/freesmartphone/opreferences/conf/rules/silent.yaml \ + ${sysconfdir}/freesmartphone/opreferences/conf/rules/default.yaml \ + ${sysconfdir}/freesmartphone/oevents/rules.yaml \ +" PACKAGE_ARCH_${PN} = "${BASE_PACKAGE_ARCH}" FILES_${PN} += "${sysconfdir}/dbus-1 ${sysconfdir}/freesmartphone ${sysconfdir}/init.d ${datadir}" diff --git a/packages/gcc/gcc-4.1.1.inc b/packages/gcc/gcc-4.1.1.inc index 92ee2d7bb8..ac8a4a8a71 100644 --- a/packages/gcc/gcc-4.1.1.inc +++ b/packages/gcc/gcc-4.1.1.inc @@ -29,6 +29,7 @@ SRC_URI = "http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2 \ file://gcc-ignore-cache.patch;patch=1 \ file://gcc-4.1.1-e300cx.patch;patch=1 \ file://pr34130.patch;patch=1 \ + file://sed-fixinc-backslash.patch;patch=1 \ " SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " diff --git a/packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch b/packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch new file mode 100644 index 0000000000..9aff951bdc --- /dev/null +++ b/packages/gcc/gcc-4.1.1/sed-fixinc-backslash.patch @@ -0,0 +1,18 @@ +2006-09-06 Matthias Klose <doko@debian.org> + + * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted + strings. + +--- s/gcc/Makefile.in~ 2008-10-18 08:53:56.000000000 +0100 ++++ s/gcc/Makefile.in 2008-10-18 08:55:16.000000000 +0100 +@@ -3146,8 +3146,8 @@ + macro_list: s-macro_list; @true + s-macro_list : $(GCC_PASSES) + echo | $(GCC_FOR_TARGET) -E -dM - | \ +- sed -n 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p ; \ +- s/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \ ++ sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \ ++ -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \ + sort -u > tmp-macro_list + $(SHELL) $(srcdir)/../move-if-change tmp-macro_list macro_list + $(STAMP) s-macro_list diff --git a/packages/gcc/gcc-configure-common.inc b/packages/gcc/gcc-configure-common.inc index 795911db74..e88cee5cb2 100644 --- a/packages/gcc/gcc-configure-common.inc +++ b/packages/gcc/gcc-configure-common.inc @@ -75,6 +75,13 @@ do_configure () { export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}" export ARCH_FLAGS_FOR_TARGET="${ARCH_FLAGS_FOR_TARGET}" (cd ${S} && gnu-configize) || die "failure running gnu-configize" + + # splice our idea of where the headers live into gcc's world + echo "NATIVE_SYSTEM_HEADER_DIR = ${layout_includedir}" > ${T}/t-oe + sed 's%^tmake_file=.*$%& ${T}/t-oe%' < ${S}/gcc/Makefile.in >${S}/gcc/Makefile.in.new + mv ${S}/gcc/Makefile.in.new ${S}/gcc/Makefile.in + + echo "#define STANDARD_INCLUDE_DIR \"${layout_includedir}\"" >> ${S}/gcc/defaults.h + oe_runconf } - diff --git a/packages/gcc/gcc-cross-kernel.inc b/packages/gcc/gcc-cross-kernel.inc index a567c60119..c0a8de77cc 100644 --- a/packages/gcc/gcc-cross-kernel.inc +++ b/packages/gcc/gcc-cross-kernel.inc @@ -9,6 +9,13 @@ do_install () { : } +do_compile () { + # This compiler is only for the kernel. Don't bother running fixincludes. + mkdir -p gcc + touch gcc/stmp-fixinc + oe_runmake +} + do_stage () { cd gcc oe_runmake installdirs install-common install-headers install-libgcc diff --git a/packages/gettext/gettext-0.17/use_open_properly.patch b/packages/gettext/gettext-0.17/use_open_properly.patch new file mode 100644 index 0000000000..111714b543 --- /dev/null +++ b/packages/gettext/gettext-0.17/use_open_properly.patch @@ -0,0 +1,15 @@ +Index: gettext-0.17/gettext-tools/src/write-catalog.c +=================================================================== +--- gettext-0.17.orig/gettext-tools/src/write-catalog.c 2008-10-16 15:18:16.000000000 +0200 ++++ gettext-0.17/gettext-tools/src/write-catalog.c 2008-10-16 18:17:13.000000000 +0200 +@@ -220,7 +220,9 @@ + /* Open the output file. */ + if (!to_stdout) + { +- fd = open (filename, O_WRONLY | O_CREAT); ++ fd = open (filename, O_WRONLY | O_CREAT, ++ /* 0666 in portable POSIX notation: */ ++ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + if (fd < 0) + { + const char *errno_description = strerror (errno); diff --git a/packages/gettext/gettext-native_0.17.bb b/packages/gettext/gettext-native_0.17.bb index 9f6cb861bd..c07302bc2b 100644 --- a/packages/gettext/gettext-native_0.17.bb +++ b/packages/gettext/gettext-native_0.17.bb @@ -1,5 +1,5 @@ require gettext_${PV}.bb -FILE_PR = "r2" +FILE_PR = "r3" DEPENDS = "" PROVIDES = "" diff --git a/packages/gettext/gettext_0.17.bb b/packages/gettext/gettext_0.17.bb index 13ac5b9373..fe48080085 100644 --- a/packages/gettext/gettext_0.17.bb +++ b/packages/gettext/gettext_0.17.bb @@ -2,13 +2,14 @@ DESCRIPTION = "The GNU internationalization library." HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html" SECTION = "libs" LICENSE = "GPL" -FILE_PR = "r1" +FILE_PR = "r2" DEPENDS = "gettext-native virtual/libiconv ncurses expat" PROVIDES = "virtual/libintl" SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \ file://autotools.patch;patch=1 \ file://wchar-uclibc.patch;patch=1 \ + file://use_open_properly.patch;patch=1 \ " SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1" diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch b/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch index 6dad0027c6..750be8ecf3 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch +++ b/packages/kexecboot/linux-kexecboot-2.6.26/collie.patch @@ -1,8 +1,8 @@ -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index c7ad324..daa2e0a 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -998,7 +998,7 @@ config CPU_FREQ_SA1100 +Index: linux-2.6.26/arch/arm/Kconfig +=================================================================== +--- linux-2.6.26.orig/arch/arm/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/arch/arm/Kconfig 2008-10-17 18:15:31.391792839 +0200 +@@ -967,7 +967,7 @@ config CPU_FREQ_SA1110 bool @@ -11,11 +11,24 @@ index c7ad324..daa2e0a 100644 default y config CPU_FREQ_INTEGRATOR -diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c -index e508028..36f726c 100644 ---- a/arch/arm/mach-sa1100/dma.c -+++ b/arch/arm/mach-sa1100/dma.c -@@ -39,7 +39,7 @@ typedef struct { +Index: linux-2.6.26/arch/arm/mach-sa1100/collie.c +=================================================================== +--- linux-2.6.26.orig/arch/arm/mach-sa1100/collie.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/arch/arm/mach-sa1100/collie.c 2008-10-17 18:15:31.391792839 +0200 +@@ -206,7 +206,7 @@ + } + + static struct flash_platform_data collie_flash_data = { +- .map_name = "cfi_probe", ++ .map_name = "sharp", + .set_vpp = collie_set_vpp, + .parts = collie_partitions, + .nr_parts = ARRAY_SIZE(collie_partitions), +Index: linux-2.6.26/arch/arm/mach-sa1100/dma.c +=================================================================== +--- linux-2.6.26.orig/arch/arm/mach-sa1100/dma.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/arch/arm/mach-sa1100/dma.c 2008-10-17 18:15:31.399789199 +0200 +@@ -39,7 +39,7 @@ static sa1100_dma_t dma_chan[SA1100_DMA_CHANNELS]; @@ -24,11 +37,11 @@ index e508028..36f726c 100644 static irqreturn_t dma_irq_handler(int irq, void *dev_id) -diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c -index 9caed30..79e19bf 100644 ---- a/drivers/input/keyboard/locomokbd.c -+++ b/drivers/input/keyboard/locomokbd.c -@@ -265,6 +265,7 @@ static int __devinit locomokbd_probe(struct locomo_dev *dev) +Index: linux-2.6.26/drivers/input/keyboard/locomokbd.c +=================================================================== +--- linux-2.6.26.orig/drivers/input/keyboard/locomokbd.c 2008-10-17 18:13:16.000000000 +0200 ++++ linux-2.6.26/drivers/input/keyboard/locomokbd.c 2008-10-17 18:15:31.403791239 +0200 +@@ -272,6 +272,7 @@ for (i = 0; i < LOCOMOKBD_NUMKEYS; i++) set_bit(locomokbd->keycode[i], input_dev->keybit); clear_bit(0, input_dev->keybit); @@ -36,11 +49,11 @@ index 9caed30..79e19bf 100644 /* attempt to get the interrupt */ err = request_irq(dev->irq[0], locomokbd_interrupt, 0, "locomokbd", locomokbd); -diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index 9f93c29..33fc5d6 100644 ---- a/drivers/mfd/Kconfig -+++ b/drivers/mfd/Kconfig -@@ -72,4 +72,10 @@ config MCP_UCB1200_TS +Index: linux-2.6.26/drivers/mfd/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/Kconfig 2008-10-17 18:13:21.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/Kconfig 2008-10-17 18:15:31.403791239 +0200 +@@ -77,4 +77,10 @@ tristate "Touchscreen interface support" depends on MCP_UCB1200 && INPUT @@ -51,11 +64,11 @@ index 9f93c29..33fc5d6 100644 + Driver for touchscreen on collie - sharp sl-5500. + endmenu -diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index 33daa2f..0885ccd 100644 ---- a/drivers/mfd/Makefile -+++ b/drivers/mfd/Makefile -@@ -16,7 +16,7 @@ obj-$(CONFIG_MCP) += mcp-core.o +Index: linux-2.6.26/drivers/mfd/Makefile +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/Makefile 2008-10-17 18:13:21.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/Makefile 2008-10-17 18:15:31.407791679 +0200 +@@ -14,7 +14,7 @@ obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o @@ -64,11 +77,10 @@ index 33daa2f..0885ccd 100644 ifeq ($(CONFIG_SA1100_ASSABET),y) obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o endif -diff --git a/drivers/mfd/collie-ts.c b/drivers/mfd/collie-ts.c -new file mode 100644 -index 0000000..ddde5fc ---- /dev/null -+++ b/drivers/mfd/collie-ts.c +Index: linux-2.6.26/drivers/mfd/collie-ts.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/mfd/collie-ts.c 2008-10-17 18:15:31.415790559 +0200 @@ -0,0 +1,449 @@ +/* + * Touchscreen driver for UCB1x00-based touchscreens @@ -103,9 +115,9 @@ index 0000000..ddde5fc +#include <linux/freezer.h> +#include <linux/slab.h> +#include <linux/kthread.h> ++#include <linux/semaphore.h> + +#include <asm/dma.h> -+#include <asm/semaphore.h> +#include <asm/arch/collie.h> +#include <asm/mach-types.h> + @@ -519,10 +531,10 @@ index 0000000..ddde5fc +MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>"); +MODULE_DESCRIPTION("UCB1x00 touchscreen driver"); +MODULE_LICENSE("GPL"); -diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h -index a8ad8a0..137b043 100644 ---- a/drivers/mfd/ucb1x00.h -+++ b/drivers/mfd/ucb1x00.h +Index: linux-2.6.26/drivers/mfd/ucb1x00.h +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/ucb1x00.h 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/ucb1x00.h 2008-10-17 18:15:31.415790559 +0200 @@ -34,7 +34,10 @@ #define UCB_IE_TCLIP (1 << 14) #define UCB_IE_ACLIP (1 << 15) @@ -534,28 +546,719 @@ index a8ad8a0..137b043 100644 #define UCB_TC_A 0x05 #define UCB_TC_A_LOOP (1 << 7) /* UCB1200 */ -diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c -index c7d5a52..215bec2 100644 ---- a/drivers/mtd/maps/sa1100-flash.c -+++ b/drivers/mtd/maps/sa1100-flash.c -@@ -210,6 +210,12 @@ static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *r +Index: linux-2.6.26/drivers/mtd/chips/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/chips/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/chips/Kconfig 2008-10-17 18:15:31.419791479 +0200 +@@ -239,5 +239,13 @@ + used for XIP purposes. If you're not sure what this is all about + then say N. + ++config MTD_SHARP ++ tristate "pre-CFI Sharp chip support" ++ depends on MTD ++ help ++ This option enables support for flash chips using Sharp-compatible ++ commands, including some which are not CFI-compatible and hence ++ cannot be used with the CONFIG_MTD_CFI_INTELxxx options. ++ + endmenu + +Index: linux-2.6.26/drivers/mtd/chips/Makefile +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/chips/Makefile 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/chips/Makefile 2008-10-17 18:15:31.419791479 +0200 +@@ -12,4 +12,5 @@ + obj-$(CONFIG_MTD_JEDECPROBE) += jedec_probe.o + obj-$(CONFIG_MTD_RAM) += map_ram.o + obj-$(CONFIG_MTD_ROM) += map_rom.o ++obj-$(CONFIG_MTD_SHARP) += sharp.o + obj-$(CONFIG_MTD_ABSENT) += map_absent.o +Index: linux-2.6.26/drivers/mtd/chips/sharp.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/mtd/chips/sharp.c 2008-10-17 18:15:31.423790399 +0200 +@@ -0,0 +1,645 @@ ++/* ++ * MTD chip driver for pre-CFI Sharp flash chips ++ * ++ * Copyright 2000,2001 David A. Schleef <ds@schleef.org> ++ * 2000,2001 Lineo, Inc. ++ * ++ * $Id: sharp.c,v 1.17 2005/11/29 14:28:28 gleixner Exp $ ++ * ++ * Devices supported: ++ * LH28F016SCT Symmetrical block flash memory, 2Mx8 ++ * LH28F008SCT Symmetrical block flash memory, 1Mx8 ++ * ++ * Documentation: ++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/ ++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/01symf/16m/016sctl9.pdf ++ * 016sctl9.pdf ++ * ++ * Limitations: ++ * This driver only supports 4x1 arrangement of chips. ++ * Not tested on anything but PowerPC. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/types.h> ++#include <linux/sched.h> ++#include <linux/errno.h> ++#include <linux/init.h> ++#include <linux/interrupt.h> ++#include <linux/mtd/map.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/cfi.h> ++#include <linux/delay.h> ++#include <linux/init.h> ++ ++#define CMD_RESET 0xffffffff ++#define CMD_READ_ID 0x90909090 ++#define CMD_READ_STATUS 0x70707070 ++#define CMD_CLEAR_STATUS 0x50505050 ++#define CMD_BLOCK_ERASE_1 0x20202020 ++#define CMD_BLOCK_ERASE_2 0xd0d0d0d0 ++#define CMD_BYTE_WRITE 0x40404040 ++#define CMD_SUSPEND 0xb0b0b0b0 ++#define CMD_RESUME 0xd0d0d0d0 ++#define CMD_SET_BLOCK_LOCK_1 0x60606060 ++#define CMD_SET_BLOCK_LOCK_2 0x01010101 ++#define CMD_SET_MASTER_LOCK_1 0x60606060 ++#define CMD_SET_MASTER_LOCK_2 0xf1f1f1f1 ++#define CMD_CLEAR_BLOCK_LOCKS_1 0x60606060 ++#define CMD_CLEAR_BLOCK_LOCKS_2 0xd0d0d0d0 ++ ++#define SR_READY 0x80808080 // 1 = ready ++#define SR_ERASE_SUSPEND 0x40404040 // 1 = block erase suspended ++#define SR_ERROR_ERASE 0x20202020 // 1 = error in block erase or clear lock bits ++#define SR_ERROR_WRITE 0x10101010 // 1 = error in byte write or set lock bit ++#define SR_VPP 0x08080808 // 1 = Vpp is low ++#define SR_WRITE_SUSPEND 0x04040404 // 1 = byte write suspended ++#define SR_PROTECT 0x02020202 // 1 = lock bit set ++#define SR_RESERVED 0x01010101 ++ ++#define SR_ERRORS (SR_ERROR_ERASE|SR_ERROR_WRITE|SR_VPP|SR_PROTECT) ++ ++#define BLOCK_MASK 0xfffe0000 ++ ++/* Configuration options */ ++ ++#define AUTOUNLOCK /* automatically unlocks blocks before erasing */ ++ ++static struct mtd_info *sharp_probe(struct map_info *); ++ ++static int sharp_probe_map(struct map_info *map, struct mtd_info *mtd); ++ ++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len, ++ size_t *retlen, u_char *buf); ++static int sharp_write(struct mtd_info *mtd, loff_t from, size_t len, ++ size_t *retlen, const u_char *buf); ++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr); ++static void sharp_sync(struct mtd_info *mtd); ++static int sharp_suspend(struct mtd_info *mtd); ++static void sharp_resume(struct mtd_info *mtd); ++static void sharp_destroy(struct mtd_info *mtd); ++ ++static int sharp_write_oneword(struct map_info *map, struct flchip *chip, ++ unsigned long adr, __u32 datum); ++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr); ++#ifdef AUTOUNLOCK ++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr); ++#endif ++ ++ ++struct sharp_info{ ++ struct flchip *chip; ++ int bogus; ++ int chipshift; ++ int numchips; ++ struct flchip chips[1]; ++}; ++ ++static void sharp_destroy(struct mtd_info *mtd); ++ ++static struct mtd_chip_driver sharp_chipdrv = { ++ .probe = sharp_probe, ++ .destroy = sharp_destroy, ++ .name = "sharp", ++ .module = THIS_MODULE ++}; ++ ++static void sharp_udelay(unsigned long i) { ++ if (in_interrupt()) { ++ udelay(i); ++ } else { ++ schedule(); ++ } ++} ++ ++static struct mtd_info *sharp_probe(struct map_info *map) ++{ ++ struct mtd_info *mtd = NULL; ++ struct sharp_info *sharp = NULL; ++ int width; ++ ++ mtd = kzalloc(sizeof(*mtd), GFP_KERNEL); ++ if(!mtd) ++ return NULL; ++ ++ sharp = kzalloc(sizeof(*sharp), GFP_KERNEL); ++ if(!sharp) { ++ kfree(mtd); ++ return NULL; ++ } ++ ++ width = sharp_probe_map(map,mtd); ++ if(!width){ ++ kfree(mtd); ++ kfree(sharp); ++ return NULL; ++ } ++ ++ mtd->priv = map; ++ mtd->type = MTD_NORFLASH; ++ mtd->erase = sharp_erase; ++ mtd->read = sharp_read; ++ mtd->write = sharp_write; ++ mtd->sync = sharp_sync; ++ mtd->suspend = sharp_suspend; ++ mtd->resume = sharp_resume; ++ mtd->flags = MTD_CAP_NORFLASH; ++ mtd->writesize = 1; ++ mtd->name = map->name; ++ ++ sharp->chipshift = 24; ++ sharp->numchips = 1; ++ sharp->chips[0].start = 0; ++ sharp->chips[0].state = FL_READY; ++ sharp->chips[0].mutex = &sharp->chips[0]._spinlock; ++ sharp->chips[0].word_write_time = 0; ++ init_waitqueue_head(&sharp->chips[0].wq); ++ spin_lock_init(&sharp->chips[0]._spinlock); ++ ++ map->fldrv = &sharp_chipdrv; ++ map->fldrv_priv = sharp; ++ ++ __module_get(THIS_MODULE); ++ return mtd; ++} ++ ++static inline void sharp_send_cmd(struct map_info *map, unsigned long cmd, unsigned long adr) ++{ ++ map_word map_cmd; ++ map_cmd.x[0] = cmd; ++ map_write(map, map_cmd, adr); ++} ++ ++static int sharp_probe_map(struct map_info *map,struct mtd_info *mtd) ++{ ++ map_word tmp, read0, read4; ++ unsigned long base = 0; ++ int width = 4; ++ ++ tmp = map_read(map, base+0); ++ ++ sharp_send_cmd(map, CMD_READ_ID, base+0); ++ ++ read0 = map_read(map, base+0); ++ read4 = map_read(map, base+4); ++ if (read0.x[0] == 0x00b000b0) { ++ printk("Sharp chip, %lx, %lx, width = %d\n", read0.x[0], read4.x[0], width); ++ /* Prints b000b0, b000b0, width = 4 on collie */ ++ switch(read4.x[0]){ ++ case 0xaaaaaaaa: ++ case 0xa0a0a0a0: ++ /* aa - LH28F016SCT-L95 2Mx8, 32 64k blocks*/ ++ /* a0 - LH28F016SCT-Z4 2Mx8, 32 64k blocks*/ ++ mtd->erasesize = 0x10000 * width; ++ mtd->size = 0x200000 * width; ++ return width; ++ case 0xa6a6a6a6: ++ /* a6 - LH28F008SCT-L12 1Mx8, 16 64k blocks*/ ++ /* a6 - LH28F008SCR-L85 1Mx8, 16 64k blocks*/ ++ mtd->erasesize = 0x10000 * width; ++ mtd->size = 0x100000 * width; ++ return width; ++ case 0x00b000b0: ++ /* a6 - LH28F640BFHE 8 64k * 2 chip blocks*/ ++ mtd->erasesize = 0x10000 * width / 2; ++ mtd->size = 0x800000 * width / 2; ++ return width; ++ default: ++ printk("Sort-of looks like sharp flash, 0x%08lx 0x%08lx\n", ++ read0.x[0], read4.x[0]); ++ } ++ } else if ((map_read(map, base+0).x[0] == CMD_READ_ID)){ ++ /* RAM, probably */ ++ printk("Looks like RAM\n"); ++ map_write(map, tmp, base+0); ++ }else{ ++ printk("Doesn't look like sharp flash, 0x%08lx 0x%08lx\n", ++ read0.x[0], read4.x[0]); ++ } ++ ++ return 0; ++} ++ ++/* This function returns with the chip->mutex lock held. */ ++static int sharp_wait(struct map_info *map, struct flchip *chip) ++{ ++ map_word status; ++ unsigned long timeo = jiffies + HZ; ++ DECLARE_WAITQUEUE(wait, current); ++ int adr = 0; ++ ++retry: ++ spin_lock_bh(chip->mutex); ++ ++ switch (chip->state) { ++ case FL_READY: ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ chip->state = FL_STATUS; ++ case FL_STATUS: ++ status = map_read(map, adr); ++ if ((status.x[0] & SR_READY) == SR_READY) ++ break; ++ spin_unlock_bh(chip->mutex); ++ if (time_after(jiffies, timeo)) { ++ printk("Waiting for chip to be ready timed out in erase\n"); ++ return -EIO; ++ } ++ sharp_udelay(1); ++ goto retry; ++ default: ++ set_current_state(TASK_INTERRUPTIBLE); ++ add_wait_queue(&chip->wq, &wait); ++ ++ spin_unlock_bh(chip->mutex); ++ ++ sharp_udelay(1); ++ ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&chip->wq, &wait); ++ ++ if(signal_pending(current)) ++ return -EINTR; ++ ++ timeo = jiffies + HZ; ++ ++ goto retry; ++ } ++ ++ sharp_send_cmd(map, CMD_RESET, adr); ++ ++ chip->state = FL_READY; ++ ++ return 0; ++} ++ ++static void sharp_release(struct flchip *chip) ++{ ++ wake_up(&chip->wq); ++ spin_unlock_bh(chip->mutex); ++} ++ ++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len, ++ size_t *retlen, u_char *buf) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int chipnum; ++ int ret = 0; ++ int ofs = 0; ++ ++ chipnum = (from >> sharp->chipshift); ++ ofs = from & ((1 << sharp->chipshift)-1); ++ ++ *retlen = 0; ++ ++ while(len){ ++ unsigned long thislen; ++ ++ if(chipnum>=sharp->numchips) ++ break; ++ ++ thislen = len; ++ if(ofs+thislen >= (1<<sharp->chipshift)) ++ thislen = (1<<sharp->chipshift) - ofs; ++ ++ ret = sharp_wait(map,&sharp->chips[chipnum]); ++ if(ret<0) ++ break; ++ ++ map_copy_from(map,buf,ofs,thislen); ++ ++ sharp_release(&sharp->chips[chipnum]); ++ ++ *retlen += thislen; ++ len -= thislen; ++ buf += thislen; ++ ++ ofs = 0; ++ chipnum++; ++ } ++ return ret; ++} ++ ++static int sharp_write(struct mtd_info *mtd, loff_t to, size_t len, ++ size_t *retlen, const u_char *buf) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int ret = 0; ++ int i,j; ++ int chipnum; ++ unsigned long ofs; ++ union { u32 l; unsigned char uc[4]; } tbuf; ++ ++ *retlen = 0; ++ ++ while(len){ ++ tbuf.l = 0xffffffff; ++ chipnum = to >> sharp->chipshift; ++ ofs = to & ((1<<sharp->chipshift)-1); ++ ++ j=0; ++ for(i=ofs&3;i<4 && len;i++){ ++ tbuf.uc[i] = *buf; ++ buf++; ++ to++; ++ len--; ++ j++; ++ } ++ sharp_write_oneword(map, &sharp->chips[chipnum], ofs&~3, tbuf.l); ++ if(ret<0) ++ return ret; ++ (*retlen)+=j; ++ } ++ ++ return 0; ++} ++ ++static int sharp_write_oneword(struct map_info *map, struct flchip *chip, ++ unsigned long adr, __u32 datum) ++{ ++ int ret; ++ int try; ++ int i; ++ map_word data, status; ++ ++ status.x[0] = 0; ++ ret = sharp_wait(map,chip); ++ if (ret < 0) ++ return ret; ++ ++ for (try=0; try<10; try++) { ++ long timeo; ++ ++ sharp_send_cmd(map, CMD_BYTE_WRITE, adr); ++ /* cpu_to_le32 -> hack to fix the writel be->le conversion */ ++ data.x[0] = cpu_to_le32(datum); ++ map_write(map, data, adr); ++ ++ chip->state = FL_WRITING; ++ timeo = jiffies + (HZ/2); ++ ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ for(i=0;i<100;i++){ ++ status = map_read(map, adr); ++ if((status.x[0] & SR_READY) == SR_READY) ++ break; ++ } ++#ifdef AUTOUNLOCK ++ if (status.x[0] & SR_PROTECT) { /* lock block */ ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ sharp_unlock_oneblock(map,chip,adr); ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ sharp_send_cmd(map, CMD_RESET, adr); ++ continue; ++ } ++#endif ++ if(i==100){ ++ printk("sharp: timed out writing\n"); ++ } ++ ++ if (!(status.x[0] & SR_ERRORS)) ++ break; ++ ++ printk("sharp: error writing byte at addr=%08lx status=%08lx\n", adr, status.x[0]); ++ ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ } ++ sharp_send_cmd(map, CMD_RESET, adr); ++ chip->state = FL_READY; ++ ++ sharp_release(chip); ++ ++ return 0; ++} ++ ++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ unsigned long adr,len; ++ int chipnum, ret=0; ++ ++ if(instr->addr & (mtd->erasesize - 1)) ++ return -EINVAL; ++ if(instr->len & (mtd->erasesize - 1)) ++ return -EINVAL; ++ if(instr->len + instr->addr > mtd->size) ++ return -EINVAL; ++ ++ chipnum = instr->addr >> sharp->chipshift; ++ adr = instr->addr & ((1<<sharp->chipshift)-1); ++ len = instr->len; ++ ++ while(len){ ++ ret = sharp_erase_oneblock(map, &sharp->chips[chipnum], adr); ++ if(ret)return ret; ++ ++ if (adr >= 0xfe0000) { ++ adr += mtd->erasesize / 8; ++ len -= mtd->erasesize / 8; ++ } else { ++ adr += mtd->erasesize; ++ len -= mtd->erasesize; ++ } ++ if(adr >> sharp->chipshift){ ++ adr = 0; ++ chipnum++; ++ if(chipnum>=sharp->numchips) ++ break; ++ } ++ } ++ ++ instr->state = MTD_ERASE_DONE; ++ mtd_erase_callback(instr); ++ ++ return 0; ++} ++ ++static inline int sharp_do_wait_for_ready(struct map_info *map, struct flchip *chip, ++ unsigned long adr) ++{ ++ int ret; ++ unsigned long timeo; ++ map_word status; ++ DECLARE_WAITQUEUE(wait, current); ++ ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ status = map_read(map, adr); ++ ++ timeo = jiffies + HZ * 10; ++ ++ while (time_before(jiffies, timeo)) { ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ status = map_read(map, adr); ++ if ((status.x[0] & SR_READY) == SR_READY) { ++ ret = 0; ++ goto out; ++ } ++ set_current_state(TASK_INTERRUPTIBLE); ++ add_wait_queue(&chip->wq, &wait); ++ ++ spin_unlock_bh(chip->mutex); ++ ++ schedule_timeout(1); ++ schedule(); ++ ++ spin_lock_bh(chip->mutex); ++ ++ remove_wait_queue(&chip->wq, &wait); ++ set_current_state(TASK_RUNNING); ++ } ++ ret = -ETIME; ++out: ++ return ret; ++} ++ ++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr) ++{ ++ int ret; ++ map_word status; ++ ++ ret = sharp_wait(map,chip); ++ if (ret < 0) ++ return ret; ++ ++#ifdef AUTOUNLOCK ++ /* This seems like a good place to do an unlock */ ++ sharp_unlock_oneblock(map,chip,adr); ++#endif ++ ++ sharp_send_cmd(map, CMD_BLOCK_ERASE_1, adr); ++ sharp_send_cmd(map, CMD_BLOCK_ERASE_2, adr); ++ ++ chip->state = FL_ERASING; ++ ++ ret = sharp_do_wait_for_ready(map,chip,adr); ++ if(ret<0) { ++ spin_unlock_bh(chip->mutex); ++ return ret; ++ } ++ ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ status = map_read(map, adr); ++ ++ if (!(status.x[0] & SR_ERRORS)) { ++ sharp_send_cmd(map, CMD_RESET, adr); ++ chip->state = FL_READY; ++ spin_unlock_bh(chip->mutex); ++ return 0; ++ } ++ ++ printk("sharp: error erasing block at addr=%08lx status=%08lx\n", adr, status.x[0]); ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ ++ sharp_release(chip); ++ ++ return -EIO; ++} ++ ++#ifdef AUTOUNLOCK ++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr) ++{ ++ map_word status; ++ ++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_1, adr & BLOCK_MASK); ++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_2, adr & BLOCK_MASK); ++ ++ sharp_do_wait_for_ready(map,chip,adr); ++ ++ status = map_read(map, adr); ++ ++ if (!(status.x[0] & SR_ERRORS)) { ++ sharp_send_cmd(map, CMD_RESET, adr); ++ chip->state = FL_READY; ++ return; ++ } ++ ++ printk("sharp: error unlocking block at addr=%08lx status=%08lx\n", adr, status.x[0]); ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++} ++#endif ++ ++static void sharp_sync(struct mtd_info *mtd) ++{ ++} ++ ++static int sharp_suspend(struct mtd_info *mtd) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int i; ++ struct flchip *chip; ++ int ret = 0; ++ ++ for (i = 0; !ret && i < sharp->numchips; i++) { ++ chip = &sharp->chips[i]; ++ ret = sharp_wait(map,chip); ++ ++ if (ret) { ++ ret = -EAGAIN; ++ } else { ++ chip->state = FL_PM_SUSPENDED; ++ spin_unlock_bh(chip->mutex); ++ } ++ } ++ return ret; ++} ++ ++static void sharp_resume(struct mtd_info *mtd) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int i; ++ struct flchip *chip; ++ ++ for (i = 0; i < sharp->numchips; i++) { ++ chip = &sharp->chips[i]; ++ ++ spin_lock_bh(chip->mutex); ++ ++ if (chip->state == FL_PM_SUSPENDED) { ++ /* We need to force it back to a known state */ ++ sharp_send_cmd(map, CMD_RESET, chip->start); ++ chip->state = FL_READY; ++ wake_up(&chip->wq); ++ } ++ ++ spin_unlock_bh(chip->mutex); ++ } ++} ++ ++static void sharp_destroy(struct mtd_info *mtd) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ ++ kfree(sharp); ++} ++ ++static int __init sharp_probe_init(void) ++{ ++ printk("MTD Sharp chip driver <ds@lineo.com>\n"); ++ ++ register_mtd_chip_driver(&sharp_chipdrv); ++ ++ return 0; ++} ++ ++static void __exit sharp_probe_exit(void) ++{ ++ unregister_mtd_chip_driver(&sharp_chipdrv); ++} ++ ++module_init(sharp_probe_init); ++module_exit(sharp_probe_exit); ++ ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("David Schleef <ds@schleef.org>"); ++MODULE_DESCRIPTION("Old MTD chip driver for pre-CFI Sharp flash chips"); +Index: linux-2.6.26/drivers/mtd/maps/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/maps/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/maps/Kconfig 2008-10-17 18:15:31.431789839 +0200 +@@ -392,7 +392,7 @@ + + config MTD_SA1100 + tristate "CFI Flash device mapped on StrongARM SA11x0" +- depends on MTD_CFI && ARCH_SA1100 && MTD_PARTITIONS ++ depends on (MTD_CFI || MTD_SHARP) && ARCH_SA1100 && MTD_PARTITIONS + help + This enables access to the flash chips on most platforms based on + the SA1100 and SA1110, including the Assabet and the Compaq iPAQ. +Index: linux-2.6.26/drivers/mtd/maps/sa1100-flash.c +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/maps/sa1100-flash.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/maps/sa1100-flash.c 2008-10-17 18:15:31.431789839 +0200 +@@ -210,6 +210,12 @@ goto err; } subdev->mtd->owner = THIS_MODULE; + +#ifdef CONFIG_SA1100_COLLIE + /* collie flash starts locked */ -+ if (subdev->mtd->unlock) -+ subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000); ++// if (subdev->mtd->unlock) ++// subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000); +#endif printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %dMiB, " "%d-bit\n", phys, subdev->mtd->size >> 20, -diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c -index 3b4e55c..0ae741d 100644 ---- a/drivers/net/wireless/hostap/hostap_cs.c -+++ b/drivers/net/wireless/hostap/hostap_cs.c -@@ -35,7 +35,7 @@ static int ignore_cis_vcc; +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_cs.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c 2008-10-17 18:15:31.435790279 +0200 +@@ -35,7 +35,7 @@ module_param(ignore_cis_vcc, int, 0444); MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry"); @@ -564,7 +1267,7 @@ index 3b4e55c..0ae741d 100644 /* struct local_info::hw_priv */ struct hostap_cs_priv { dev_node_t node; -@@ -499,11 +499,13 @@ static int hostap_cs_probe(struct pcmcia_device *p_dev) +@@ -499,11 +499,13 @@ PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info); p_dev->conf.IntType = INT_MEMORY_AND_IO; @@ -579,10 +1282,10 @@ index 3b4e55c..0ae741d 100644 return ret; } -diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c -index 13d5882..6f24d66 100644 ---- a/drivers/net/wireless/hostap/hostap_hw.c -+++ b/drivers/net/wireless/hostap/hostap_hw.c +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:13:21.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:15:31.443789719 +0200 @@ -54,6 +54,7 @@ #include "hostap.h" #include "hostap_ap.h" @@ -591,7 +1294,7 @@ index 13d5882..6f24d66 100644 /* #define final_version */ -@@ -1497,6 +1498,8 @@ static int prism2_hw_config(struct net_device *dev, int initial) +@@ -1534,6 +1535,8 @@ if (local->hw_downloading) return 1; @@ -600,7 +1303,7 @@ index 13d5882..6f24d66 100644 if (prism2_hw_init(dev, initial)) { return local->no_pri ? 0 : 1; } -@@ -2628,8 +2631,15 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id) +@@ -2665,8 +2668,15 @@ int events = 0; u16 ev; @@ -616,12 +1319,12 @@ index 13d5882..6f24d66 100644 + iface = netdev_priv(dev); + local = iface->local; - prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0); - -diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c -index 3a874fc..df58aa3 100644 ---- a/drivers/net/wireless/hostap/hostap_pci.c -+++ b/drivers/net/wireless/hostap/hostap_pci.c + if(dev->base_addr == 0) + { +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:13:18.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:15:31.447790279 +0200 @@ -19,6 +19,7 @@ #include "hostap_wlan.h" @@ -630,10 +1333,10 @@ index 3a874fc..df58aa3 100644 static char *dev_info = "hostap_pci"; -diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c -index cbf15d7..4475174 100644 ---- a/drivers/net/wireless/hostap/hostap_plx.c -+++ b/drivers/net/wireless/hostap/hostap_plx.c +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:13:18.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:15:31.451790719 +0200 @@ -21,7 +21,7 @@ #include <asm/io.h> @@ -643,11 +1346,11 @@ index cbf15d7..4475174 100644 static char *dev_info = "hostap_plx"; -diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c -index c5b2a44..eecbe8c 100644 ---- a/drivers/pcmcia/sa1100_generic.c -+++ b/drivers/pcmcia/sa1100_generic.c -@@ -81,13 +81,14 @@ static int sa11x0_drv_pcmcia_probe(struct device *dev) +Index: linux-2.6.26/drivers/pcmcia/sa1100_generic.c +=================================================================== +--- linux-2.6.26.orig/drivers/pcmcia/sa1100_generic.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/pcmcia/sa1100_generic.c 2008-10-17 18:15:31.459789719 +0200 +@@ -81,13 +81,14 @@ return ret; } @@ -669,7 +1372,7 @@ index c5b2a44..eecbe8c 100644 }; /* sa11x0_pcmcia_init() -@@ -100,7 +101,7 @@ static struct device_driver sa11x0_pcmcia_driver = { +@@ -100,7 +101,7 @@ */ static int __init sa11x0_pcmcia_init(void) { @@ -678,7 +1381,7 @@ index c5b2a44..eecbe8c 100644 } /* sa11x0_pcmcia_exit() -@@ -110,7 +111,7 @@ static int __init sa11x0_pcmcia_init(void) +@@ -110,7 +111,7 @@ */ static void __exit sa11x0_pcmcia_exit(void) { @@ -687,11 +1390,11 @@ index c5b2a44..eecbe8c 100644 } MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>"); -diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig -index 66ec5d8..aba38d7 100644 ---- a/drivers/spi/Kconfig -+++ b/drivers/spi/Kconfig -@@ -123,6 +123,10 @@ config SPI_MPC52xx_PSC +Index: linux-2.6.26/drivers/spi/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/spi/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/spi/Kconfig 2008-10-17 18:15:31.463790519 +0200 +@@ -123,6 +123,10 @@ This enables using the Freescale MPC52xx Programmable Serial Controller in master SPI mode. @@ -702,11 +1405,11 @@ index 66ec5d8..aba38d7 100644 config SPI_MPC83xx tristate "Freescale MPC83xx/QUICC Engine SPI controller" depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL -diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile -index 7fca043..b89992b 100644 ---- a/drivers/spi/Makefile -+++ b/drivers/spi/Makefile -@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o +Index: linux-2.6.26/drivers/spi/Makefile +=================================================================== +--- linux-2.6.26.orig/drivers/spi/Makefile 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/spi/Makefile 2008-10-17 18:15:31.463790519 +0200 +@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_TXX9) += spi_txx9.o obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o @@ -714,11 +1417,10 @@ index 7fca043..b89992b 100644 # ... add above this line ... # SPI protocol drivers (device/link on bus) -diff --git a/drivers/spi/locomo_spi.c b/drivers/spi/locomo_spi.c -new file mode 100644 -index 0000000..d3a4bd9 ---- /dev/null -+++ b/drivers/spi/locomo_spi.c +Index: linux-2.6.26/drivers/spi/locomo_spi.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/spi/locomo_spi.c 2008-10-17 18:15:31.471790439 +0200 @@ -0,0 +1,1097 @@ +#include <asm/io.h> +#include <asm/irq.h> @@ -1817,11 +2519,10 @@ index 0000000..d3a4bd9 +MODULE_AUTHOR("Thomas Kunze thommy@tabao.de"); +MODULE_DESCRIPTION("Collie mmc driver"); +MODULE_LICENSE("GPL"); -diff --git a/drivers/spi/locomo_spi.h b/drivers/spi/locomo_spi.h -new file mode 100644 -index 0000000..7e1c0ce ---- /dev/null -+++ b/drivers/spi/locomo_spi.h +Index: linux-2.6.26/drivers/spi/locomo_spi.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/spi/locomo_spi.h 2008-10-17 18:15:31.471790439 +0200 @@ -0,0 +1,75 @@ +#include <asm/hardware/locomo.h> +#ifndef __LOCOMO_SPI_H__ diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig b/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig index a65552fbbb..4434962a64 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig +++ b/packages/kexecboot/linux-kexecboot-2.6.26/collie/defconfig @@ -327,13 +327,8 @@ CONFIG_MTD_BLOCK=y # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=y +# CONFIG_MTD_CFI is not set # CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -# CONFIG_MTD_CFI_NOSWAP is not set -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y @@ -344,14 +339,10 @@ 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=y -# CONFIG_MTD_CFI_AMDSTD is not set -# 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 +CONFING_MTD_SHARP=y # # Mapping drivers for chip access diff --git a/packages/kexecboot/linux-kexecboot_2.6.26.bb b/packages/kexecboot/linux-kexecboot_2.6.26.bb index 6dec914cc6..7d000ff2e1 100644 --- a/packages/kexecboot/linux-kexecboot_2.6.26.bb +++ b/packages/kexecboot/linux-kexecboot_2.6.26.bb @@ -1,6 +1,6 @@ require linux-kexecboot.inc -FILE_PR = "r4" +FILE_PR = "r5" DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_qemuarm = "-1" DEFAULT_PREFERENCE_qemux86 = "-1" diff --git a/packages/libsdl/files/fixmfour.patch b/packages/libsdl/files/fixmfour.patch new file mode 100644 index 0000000000..0d534bd9a1 --- /dev/null +++ b/packages/libsdl/files/fixmfour.patch @@ -0,0 +1,14 @@ +Index: SDL-1.2.11/sdl.m4 +=================================================================== +--- SDL-1.2.11.orig/sdl.m4 2008-10-18 21:20:13.482478928 +0200 ++++ SDL-1.2.11/sdl.m4 2008-10-18 21:20:28.979441480 +0200 +@@ -32,9 +32,6 @@ + fi + fi + +- if test "x$prefix" != xNONE; then +- PATH="$prefix/bin:$prefix/usr/bin:$PATH" +- fi + AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) + min_sdl_version=ifelse([$1], ,0.11.0,$1) + AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) diff --git a/packages/libsdl/libsdl-image_1.2.6.bb b/packages/libsdl/libsdl-image_1.2.6.bb index 27b5aa7d1a..b458e19dba 100644 --- a/packages/libsdl/libsdl-image_1.2.6.bb +++ b/packages/libsdl/libsdl-image_1.2.6.bb @@ -1,8 +1,12 @@ require libsdl-image.inc +FILE_PR= "r1" + +DEPENDS += "tiff" do_unpackpost() { # Removing this file fixes a libtool version mismatch. rm acinclude/libtool.m4 + rm acinclude/sdl.m4 } addtask unpackpost after do_unpack before do_patch diff --git a/packages/libsdl/libsdl-x11_1.2.11.bb b/packages/libsdl/libsdl-x11_1.2.11.bb index 809c9852f8..e9628d9e07 100644 --- a/packages/libsdl/libsdl-x11_1.2.11.bb +++ b/packages/libsdl/libsdl-x11_1.2.11.bb @@ -3,7 +3,7 @@ require libsdl.inc # extra-keys.patch is missing DEFAULT_PREFERENCE = "-1" -FILE_PR = "r6" +FILE_PR = "r7" SRC_URI = "\ http://www.libsdl.org/release/SDL-${PV}.tar.gz \ @@ -12,6 +12,7 @@ SRC_URI = "\ file://pagesize.patch;patch=1 \ file://kernel-asm-page.patch;patch=1 \ file://sdl-cdfix.patch;patch=1 \ + file://fixmfour.patch;patch=1 \ " EXTRA_OECONF = "--disable-static --disable-debug --enable-cdrom --enable-threads --enable-timers --enable-endian \ diff --git a/packages/linux/linux-openmoko_2.6.24+git.bb b/packages/linux/linux-openmoko_2.6.24+git.bb index 7c65d6c112..524b22a311 100644 --- a/packages/linux/linux-openmoko_2.6.24+git.bb +++ b/packages/linux/linux-openmoko_2.6.24+git.bb @@ -7,7 +7,7 @@ KERNEL_RELEASE = "2.6.24" KERNEL_VERSION = "${KERNEL_RELEASE}" PV = "${KERNEL_RELEASE}+${PR}+gitr${SRCREV}" -FILE_PR = "r9" +FILE_PR = "r10" SRC_URI = "\ git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \ diff --git a/packages/linux/linux-rp-2.6.26/collie-ucbfix.patch b/packages/linux/linux-rp-2.6.26/collie-ucbfix.patch new file mode 100644 index 0000000000..ea87e12197 --- /dev/null +++ b/packages/linux/linux-rp-2.6.26/collie-ucbfix.patch @@ -0,0 +1,28 @@ +commit 7f4ecbe6bd6515f65f2720117e5b7d69e1648960 +Author: Thomas Kunze <thommycheck@gmx.de> +Date: Sat Oct 18 00:27:36 2008 +0200 + + fix ucb driver + +Index: linux-2.6.26/drivers/mfd/mcp-sa11x0.c +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/mcp-sa11x0.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/mcp-sa11x0.c 2008-10-18 01:48:40.964009879 +0200 +@@ -27,6 +27,7 @@ + #include <asm/arch/mcp.h> + + #include <asm/arch/assabet.h> ++#include <asm/arch/collie.h> + + #include "mcp.h" + +@@ -169,6 +170,9 @@ + if (machine_is_assabet()) { + ASSABET_BCR_set(ASSABET_BCR_CODEC_RST); + } ++ if (machine_is_collie()) { ++ GPSR |= COLLIE_GPIO_UCB1x00_RESET; ++ } + + /* + * Setup the PPC unit correctly. diff --git a/packages/linux/linux-rp-2.6.26/collie.patch b/packages/linux/linux-rp-2.6.26/collie.patch index 6dad0027c6..750be8ecf3 100644 --- a/packages/linux/linux-rp-2.6.26/collie.patch +++ b/packages/linux/linux-rp-2.6.26/collie.patch @@ -1,8 +1,8 @@ -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index c7ad324..daa2e0a 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -998,7 +998,7 @@ config CPU_FREQ_SA1100 +Index: linux-2.6.26/arch/arm/Kconfig +=================================================================== +--- linux-2.6.26.orig/arch/arm/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/arch/arm/Kconfig 2008-10-17 18:15:31.391792839 +0200 +@@ -967,7 +967,7 @@ config CPU_FREQ_SA1110 bool @@ -11,11 +11,24 @@ index c7ad324..daa2e0a 100644 default y config CPU_FREQ_INTEGRATOR -diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c -index e508028..36f726c 100644 ---- a/arch/arm/mach-sa1100/dma.c -+++ b/arch/arm/mach-sa1100/dma.c -@@ -39,7 +39,7 @@ typedef struct { +Index: linux-2.6.26/arch/arm/mach-sa1100/collie.c +=================================================================== +--- linux-2.6.26.orig/arch/arm/mach-sa1100/collie.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/arch/arm/mach-sa1100/collie.c 2008-10-17 18:15:31.391792839 +0200 +@@ -206,7 +206,7 @@ + } + + static struct flash_platform_data collie_flash_data = { +- .map_name = "cfi_probe", ++ .map_name = "sharp", + .set_vpp = collie_set_vpp, + .parts = collie_partitions, + .nr_parts = ARRAY_SIZE(collie_partitions), +Index: linux-2.6.26/arch/arm/mach-sa1100/dma.c +=================================================================== +--- linux-2.6.26.orig/arch/arm/mach-sa1100/dma.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/arch/arm/mach-sa1100/dma.c 2008-10-17 18:15:31.399789199 +0200 +@@ -39,7 +39,7 @@ static sa1100_dma_t dma_chan[SA1100_DMA_CHANNELS]; @@ -24,11 +37,11 @@ index e508028..36f726c 100644 static irqreturn_t dma_irq_handler(int irq, void *dev_id) -diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c -index 9caed30..79e19bf 100644 ---- a/drivers/input/keyboard/locomokbd.c -+++ b/drivers/input/keyboard/locomokbd.c -@@ -265,6 +265,7 @@ static int __devinit locomokbd_probe(struct locomo_dev *dev) +Index: linux-2.6.26/drivers/input/keyboard/locomokbd.c +=================================================================== +--- linux-2.6.26.orig/drivers/input/keyboard/locomokbd.c 2008-10-17 18:13:16.000000000 +0200 ++++ linux-2.6.26/drivers/input/keyboard/locomokbd.c 2008-10-17 18:15:31.403791239 +0200 +@@ -272,6 +272,7 @@ for (i = 0; i < LOCOMOKBD_NUMKEYS; i++) set_bit(locomokbd->keycode[i], input_dev->keybit); clear_bit(0, input_dev->keybit); @@ -36,11 +49,11 @@ index 9caed30..79e19bf 100644 /* attempt to get the interrupt */ err = request_irq(dev->irq[0], locomokbd_interrupt, 0, "locomokbd", locomokbd); -diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index 9f93c29..33fc5d6 100644 ---- a/drivers/mfd/Kconfig -+++ b/drivers/mfd/Kconfig -@@ -72,4 +72,10 @@ config MCP_UCB1200_TS +Index: linux-2.6.26/drivers/mfd/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/Kconfig 2008-10-17 18:13:21.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/Kconfig 2008-10-17 18:15:31.403791239 +0200 +@@ -77,4 +77,10 @@ tristate "Touchscreen interface support" depends on MCP_UCB1200 && INPUT @@ -51,11 +64,11 @@ index 9f93c29..33fc5d6 100644 + Driver for touchscreen on collie - sharp sl-5500. + endmenu -diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index 33daa2f..0885ccd 100644 ---- a/drivers/mfd/Makefile -+++ b/drivers/mfd/Makefile -@@ -16,7 +16,7 @@ obj-$(CONFIG_MCP) += mcp-core.o +Index: linux-2.6.26/drivers/mfd/Makefile +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/Makefile 2008-10-17 18:13:21.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/Makefile 2008-10-17 18:15:31.407791679 +0200 +@@ -14,7 +14,7 @@ obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o @@ -64,11 +77,10 @@ index 33daa2f..0885ccd 100644 ifeq ($(CONFIG_SA1100_ASSABET),y) obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o endif -diff --git a/drivers/mfd/collie-ts.c b/drivers/mfd/collie-ts.c -new file mode 100644 -index 0000000..ddde5fc ---- /dev/null -+++ b/drivers/mfd/collie-ts.c +Index: linux-2.6.26/drivers/mfd/collie-ts.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/mfd/collie-ts.c 2008-10-17 18:15:31.415790559 +0200 @@ -0,0 +1,449 @@ +/* + * Touchscreen driver for UCB1x00-based touchscreens @@ -103,9 +115,9 @@ index 0000000..ddde5fc +#include <linux/freezer.h> +#include <linux/slab.h> +#include <linux/kthread.h> ++#include <linux/semaphore.h> + +#include <asm/dma.h> -+#include <asm/semaphore.h> +#include <asm/arch/collie.h> +#include <asm/mach-types.h> + @@ -519,10 +531,10 @@ index 0000000..ddde5fc +MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>"); +MODULE_DESCRIPTION("UCB1x00 touchscreen driver"); +MODULE_LICENSE("GPL"); -diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h -index a8ad8a0..137b043 100644 ---- a/drivers/mfd/ucb1x00.h -+++ b/drivers/mfd/ucb1x00.h +Index: linux-2.6.26/drivers/mfd/ucb1x00.h +=================================================================== +--- linux-2.6.26.orig/drivers/mfd/ucb1x00.h 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mfd/ucb1x00.h 2008-10-17 18:15:31.415790559 +0200 @@ -34,7 +34,10 @@ #define UCB_IE_TCLIP (1 << 14) #define UCB_IE_ACLIP (1 << 15) @@ -534,28 +546,719 @@ index a8ad8a0..137b043 100644 #define UCB_TC_A 0x05 #define UCB_TC_A_LOOP (1 << 7) /* UCB1200 */ -diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c -index c7d5a52..215bec2 100644 ---- a/drivers/mtd/maps/sa1100-flash.c -+++ b/drivers/mtd/maps/sa1100-flash.c -@@ -210,6 +210,12 @@ static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *r +Index: linux-2.6.26/drivers/mtd/chips/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/chips/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/chips/Kconfig 2008-10-17 18:15:31.419791479 +0200 +@@ -239,5 +239,13 @@ + used for XIP purposes. If you're not sure what this is all about + then say N. + ++config MTD_SHARP ++ tristate "pre-CFI Sharp chip support" ++ depends on MTD ++ help ++ This option enables support for flash chips using Sharp-compatible ++ commands, including some which are not CFI-compatible and hence ++ cannot be used with the CONFIG_MTD_CFI_INTELxxx options. ++ + endmenu + +Index: linux-2.6.26/drivers/mtd/chips/Makefile +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/chips/Makefile 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/chips/Makefile 2008-10-17 18:15:31.419791479 +0200 +@@ -12,4 +12,5 @@ + obj-$(CONFIG_MTD_JEDECPROBE) += jedec_probe.o + obj-$(CONFIG_MTD_RAM) += map_ram.o + obj-$(CONFIG_MTD_ROM) += map_rom.o ++obj-$(CONFIG_MTD_SHARP) += sharp.o + obj-$(CONFIG_MTD_ABSENT) += map_absent.o +Index: linux-2.6.26/drivers/mtd/chips/sharp.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/mtd/chips/sharp.c 2008-10-17 18:15:31.423790399 +0200 +@@ -0,0 +1,645 @@ ++/* ++ * MTD chip driver for pre-CFI Sharp flash chips ++ * ++ * Copyright 2000,2001 David A. Schleef <ds@schleef.org> ++ * 2000,2001 Lineo, Inc. ++ * ++ * $Id: sharp.c,v 1.17 2005/11/29 14:28:28 gleixner Exp $ ++ * ++ * Devices supported: ++ * LH28F016SCT Symmetrical block flash memory, 2Mx8 ++ * LH28F008SCT Symmetrical block flash memory, 1Mx8 ++ * ++ * Documentation: ++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/ ++ * http://www.sharpmeg.com/datasheets/memic/flashcmp/01symf/16m/016sctl9.pdf ++ * 016sctl9.pdf ++ * ++ * Limitations: ++ * This driver only supports 4x1 arrangement of chips. ++ * Not tested on anything but PowerPC. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/types.h> ++#include <linux/sched.h> ++#include <linux/errno.h> ++#include <linux/init.h> ++#include <linux/interrupt.h> ++#include <linux/mtd/map.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/cfi.h> ++#include <linux/delay.h> ++#include <linux/init.h> ++ ++#define CMD_RESET 0xffffffff ++#define CMD_READ_ID 0x90909090 ++#define CMD_READ_STATUS 0x70707070 ++#define CMD_CLEAR_STATUS 0x50505050 ++#define CMD_BLOCK_ERASE_1 0x20202020 ++#define CMD_BLOCK_ERASE_2 0xd0d0d0d0 ++#define CMD_BYTE_WRITE 0x40404040 ++#define CMD_SUSPEND 0xb0b0b0b0 ++#define CMD_RESUME 0xd0d0d0d0 ++#define CMD_SET_BLOCK_LOCK_1 0x60606060 ++#define CMD_SET_BLOCK_LOCK_2 0x01010101 ++#define CMD_SET_MASTER_LOCK_1 0x60606060 ++#define CMD_SET_MASTER_LOCK_2 0xf1f1f1f1 ++#define CMD_CLEAR_BLOCK_LOCKS_1 0x60606060 ++#define CMD_CLEAR_BLOCK_LOCKS_2 0xd0d0d0d0 ++ ++#define SR_READY 0x80808080 // 1 = ready ++#define SR_ERASE_SUSPEND 0x40404040 // 1 = block erase suspended ++#define SR_ERROR_ERASE 0x20202020 // 1 = error in block erase or clear lock bits ++#define SR_ERROR_WRITE 0x10101010 // 1 = error in byte write or set lock bit ++#define SR_VPP 0x08080808 // 1 = Vpp is low ++#define SR_WRITE_SUSPEND 0x04040404 // 1 = byte write suspended ++#define SR_PROTECT 0x02020202 // 1 = lock bit set ++#define SR_RESERVED 0x01010101 ++ ++#define SR_ERRORS (SR_ERROR_ERASE|SR_ERROR_WRITE|SR_VPP|SR_PROTECT) ++ ++#define BLOCK_MASK 0xfffe0000 ++ ++/* Configuration options */ ++ ++#define AUTOUNLOCK /* automatically unlocks blocks before erasing */ ++ ++static struct mtd_info *sharp_probe(struct map_info *); ++ ++static int sharp_probe_map(struct map_info *map, struct mtd_info *mtd); ++ ++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len, ++ size_t *retlen, u_char *buf); ++static int sharp_write(struct mtd_info *mtd, loff_t from, size_t len, ++ size_t *retlen, const u_char *buf); ++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr); ++static void sharp_sync(struct mtd_info *mtd); ++static int sharp_suspend(struct mtd_info *mtd); ++static void sharp_resume(struct mtd_info *mtd); ++static void sharp_destroy(struct mtd_info *mtd); ++ ++static int sharp_write_oneword(struct map_info *map, struct flchip *chip, ++ unsigned long adr, __u32 datum); ++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr); ++#ifdef AUTOUNLOCK ++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr); ++#endif ++ ++ ++struct sharp_info{ ++ struct flchip *chip; ++ int bogus; ++ int chipshift; ++ int numchips; ++ struct flchip chips[1]; ++}; ++ ++static void sharp_destroy(struct mtd_info *mtd); ++ ++static struct mtd_chip_driver sharp_chipdrv = { ++ .probe = sharp_probe, ++ .destroy = sharp_destroy, ++ .name = "sharp", ++ .module = THIS_MODULE ++}; ++ ++static void sharp_udelay(unsigned long i) { ++ if (in_interrupt()) { ++ udelay(i); ++ } else { ++ schedule(); ++ } ++} ++ ++static struct mtd_info *sharp_probe(struct map_info *map) ++{ ++ struct mtd_info *mtd = NULL; ++ struct sharp_info *sharp = NULL; ++ int width; ++ ++ mtd = kzalloc(sizeof(*mtd), GFP_KERNEL); ++ if(!mtd) ++ return NULL; ++ ++ sharp = kzalloc(sizeof(*sharp), GFP_KERNEL); ++ if(!sharp) { ++ kfree(mtd); ++ return NULL; ++ } ++ ++ width = sharp_probe_map(map,mtd); ++ if(!width){ ++ kfree(mtd); ++ kfree(sharp); ++ return NULL; ++ } ++ ++ mtd->priv = map; ++ mtd->type = MTD_NORFLASH; ++ mtd->erase = sharp_erase; ++ mtd->read = sharp_read; ++ mtd->write = sharp_write; ++ mtd->sync = sharp_sync; ++ mtd->suspend = sharp_suspend; ++ mtd->resume = sharp_resume; ++ mtd->flags = MTD_CAP_NORFLASH; ++ mtd->writesize = 1; ++ mtd->name = map->name; ++ ++ sharp->chipshift = 24; ++ sharp->numchips = 1; ++ sharp->chips[0].start = 0; ++ sharp->chips[0].state = FL_READY; ++ sharp->chips[0].mutex = &sharp->chips[0]._spinlock; ++ sharp->chips[0].word_write_time = 0; ++ init_waitqueue_head(&sharp->chips[0].wq); ++ spin_lock_init(&sharp->chips[0]._spinlock); ++ ++ map->fldrv = &sharp_chipdrv; ++ map->fldrv_priv = sharp; ++ ++ __module_get(THIS_MODULE); ++ return mtd; ++} ++ ++static inline void sharp_send_cmd(struct map_info *map, unsigned long cmd, unsigned long adr) ++{ ++ map_word map_cmd; ++ map_cmd.x[0] = cmd; ++ map_write(map, map_cmd, adr); ++} ++ ++static int sharp_probe_map(struct map_info *map,struct mtd_info *mtd) ++{ ++ map_word tmp, read0, read4; ++ unsigned long base = 0; ++ int width = 4; ++ ++ tmp = map_read(map, base+0); ++ ++ sharp_send_cmd(map, CMD_READ_ID, base+0); ++ ++ read0 = map_read(map, base+0); ++ read4 = map_read(map, base+4); ++ if (read0.x[0] == 0x00b000b0) { ++ printk("Sharp chip, %lx, %lx, width = %d\n", read0.x[0], read4.x[0], width); ++ /* Prints b000b0, b000b0, width = 4 on collie */ ++ switch(read4.x[0]){ ++ case 0xaaaaaaaa: ++ case 0xa0a0a0a0: ++ /* aa - LH28F016SCT-L95 2Mx8, 32 64k blocks*/ ++ /* a0 - LH28F016SCT-Z4 2Mx8, 32 64k blocks*/ ++ mtd->erasesize = 0x10000 * width; ++ mtd->size = 0x200000 * width; ++ return width; ++ case 0xa6a6a6a6: ++ /* a6 - LH28F008SCT-L12 1Mx8, 16 64k blocks*/ ++ /* a6 - LH28F008SCR-L85 1Mx8, 16 64k blocks*/ ++ mtd->erasesize = 0x10000 * width; ++ mtd->size = 0x100000 * width; ++ return width; ++ case 0x00b000b0: ++ /* a6 - LH28F640BFHE 8 64k * 2 chip blocks*/ ++ mtd->erasesize = 0x10000 * width / 2; ++ mtd->size = 0x800000 * width / 2; ++ return width; ++ default: ++ printk("Sort-of looks like sharp flash, 0x%08lx 0x%08lx\n", ++ read0.x[0], read4.x[0]); ++ } ++ } else if ((map_read(map, base+0).x[0] == CMD_READ_ID)){ ++ /* RAM, probably */ ++ printk("Looks like RAM\n"); ++ map_write(map, tmp, base+0); ++ }else{ ++ printk("Doesn't look like sharp flash, 0x%08lx 0x%08lx\n", ++ read0.x[0], read4.x[0]); ++ } ++ ++ return 0; ++} ++ ++/* This function returns with the chip->mutex lock held. */ ++static int sharp_wait(struct map_info *map, struct flchip *chip) ++{ ++ map_word status; ++ unsigned long timeo = jiffies + HZ; ++ DECLARE_WAITQUEUE(wait, current); ++ int adr = 0; ++ ++retry: ++ spin_lock_bh(chip->mutex); ++ ++ switch (chip->state) { ++ case FL_READY: ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ chip->state = FL_STATUS; ++ case FL_STATUS: ++ status = map_read(map, adr); ++ if ((status.x[0] & SR_READY) == SR_READY) ++ break; ++ spin_unlock_bh(chip->mutex); ++ if (time_after(jiffies, timeo)) { ++ printk("Waiting for chip to be ready timed out in erase\n"); ++ return -EIO; ++ } ++ sharp_udelay(1); ++ goto retry; ++ default: ++ set_current_state(TASK_INTERRUPTIBLE); ++ add_wait_queue(&chip->wq, &wait); ++ ++ spin_unlock_bh(chip->mutex); ++ ++ sharp_udelay(1); ++ ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&chip->wq, &wait); ++ ++ if(signal_pending(current)) ++ return -EINTR; ++ ++ timeo = jiffies + HZ; ++ ++ goto retry; ++ } ++ ++ sharp_send_cmd(map, CMD_RESET, adr); ++ ++ chip->state = FL_READY; ++ ++ return 0; ++} ++ ++static void sharp_release(struct flchip *chip) ++{ ++ wake_up(&chip->wq); ++ spin_unlock_bh(chip->mutex); ++} ++ ++static int sharp_read(struct mtd_info *mtd, loff_t from, size_t len, ++ size_t *retlen, u_char *buf) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int chipnum; ++ int ret = 0; ++ int ofs = 0; ++ ++ chipnum = (from >> sharp->chipshift); ++ ofs = from & ((1 << sharp->chipshift)-1); ++ ++ *retlen = 0; ++ ++ while(len){ ++ unsigned long thislen; ++ ++ if(chipnum>=sharp->numchips) ++ break; ++ ++ thislen = len; ++ if(ofs+thislen >= (1<<sharp->chipshift)) ++ thislen = (1<<sharp->chipshift) - ofs; ++ ++ ret = sharp_wait(map,&sharp->chips[chipnum]); ++ if(ret<0) ++ break; ++ ++ map_copy_from(map,buf,ofs,thislen); ++ ++ sharp_release(&sharp->chips[chipnum]); ++ ++ *retlen += thislen; ++ len -= thislen; ++ buf += thislen; ++ ++ ofs = 0; ++ chipnum++; ++ } ++ return ret; ++} ++ ++static int sharp_write(struct mtd_info *mtd, loff_t to, size_t len, ++ size_t *retlen, const u_char *buf) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int ret = 0; ++ int i,j; ++ int chipnum; ++ unsigned long ofs; ++ union { u32 l; unsigned char uc[4]; } tbuf; ++ ++ *retlen = 0; ++ ++ while(len){ ++ tbuf.l = 0xffffffff; ++ chipnum = to >> sharp->chipshift; ++ ofs = to & ((1<<sharp->chipshift)-1); ++ ++ j=0; ++ for(i=ofs&3;i<4 && len;i++){ ++ tbuf.uc[i] = *buf; ++ buf++; ++ to++; ++ len--; ++ j++; ++ } ++ sharp_write_oneword(map, &sharp->chips[chipnum], ofs&~3, tbuf.l); ++ if(ret<0) ++ return ret; ++ (*retlen)+=j; ++ } ++ ++ return 0; ++} ++ ++static int sharp_write_oneword(struct map_info *map, struct flchip *chip, ++ unsigned long adr, __u32 datum) ++{ ++ int ret; ++ int try; ++ int i; ++ map_word data, status; ++ ++ status.x[0] = 0; ++ ret = sharp_wait(map,chip); ++ if (ret < 0) ++ return ret; ++ ++ for (try=0; try<10; try++) { ++ long timeo; ++ ++ sharp_send_cmd(map, CMD_BYTE_WRITE, adr); ++ /* cpu_to_le32 -> hack to fix the writel be->le conversion */ ++ data.x[0] = cpu_to_le32(datum); ++ map_write(map, data, adr); ++ ++ chip->state = FL_WRITING; ++ timeo = jiffies + (HZ/2); ++ ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ for(i=0;i<100;i++){ ++ status = map_read(map, adr); ++ if((status.x[0] & SR_READY) == SR_READY) ++ break; ++ } ++#ifdef AUTOUNLOCK ++ if (status.x[0] & SR_PROTECT) { /* lock block */ ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ sharp_unlock_oneblock(map,chip,adr); ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ sharp_send_cmd(map, CMD_RESET, adr); ++ continue; ++ } ++#endif ++ if(i==100){ ++ printk("sharp: timed out writing\n"); ++ } ++ ++ if (!(status.x[0] & SR_ERRORS)) ++ break; ++ ++ printk("sharp: error writing byte at addr=%08lx status=%08lx\n", adr, status.x[0]); ++ ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ } ++ sharp_send_cmd(map, CMD_RESET, adr); ++ chip->state = FL_READY; ++ ++ sharp_release(chip); ++ ++ return 0; ++} ++ ++static int sharp_erase(struct mtd_info *mtd, struct erase_info *instr) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ unsigned long adr,len; ++ int chipnum, ret=0; ++ ++ if(instr->addr & (mtd->erasesize - 1)) ++ return -EINVAL; ++ if(instr->len & (mtd->erasesize - 1)) ++ return -EINVAL; ++ if(instr->len + instr->addr > mtd->size) ++ return -EINVAL; ++ ++ chipnum = instr->addr >> sharp->chipshift; ++ adr = instr->addr & ((1<<sharp->chipshift)-1); ++ len = instr->len; ++ ++ while(len){ ++ ret = sharp_erase_oneblock(map, &sharp->chips[chipnum], adr); ++ if(ret)return ret; ++ ++ if (adr >= 0xfe0000) { ++ adr += mtd->erasesize / 8; ++ len -= mtd->erasesize / 8; ++ } else { ++ adr += mtd->erasesize; ++ len -= mtd->erasesize; ++ } ++ if(adr >> sharp->chipshift){ ++ adr = 0; ++ chipnum++; ++ if(chipnum>=sharp->numchips) ++ break; ++ } ++ } ++ ++ instr->state = MTD_ERASE_DONE; ++ mtd_erase_callback(instr); ++ ++ return 0; ++} ++ ++static inline int sharp_do_wait_for_ready(struct map_info *map, struct flchip *chip, ++ unsigned long adr) ++{ ++ int ret; ++ unsigned long timeo; ++ map_word status; ++ DECLARE_WAITQUEUE(wait, current); ++ ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ status = map_read(map, adr); ++ ++ timeo = jiffies + HZ * 10; ++ ++ while (time_before(jiffies, timeo)) { ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ status = map_read(map, adr); ++ if ((status.x[0] & SR_READY) == SR_READY) { ++ ret = 0; ++ goto out; ++ } ++ set_current_state(TASK_INTERRUPTIBLE); ++ add_wait_queue(&chip->wq, &wait); ++ ++ spin_unlock_bh(chip->mutex); ++ ++ schedule_timeout(1); ++ schedule(); ++ ++ spin_lock_bh(chip->mutex); ++ ++ remove_wait_queue(&chip->wq, &wait); ++ set_current_state(TASK_RUNNING); ++ } ++ ret = -ETIME; ++out: ++ return ret; ++} ++ ++static int sharp_erase_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr) ++{ ++ int ret; ++ map_word status; ++ ++ ret = sharp_wait(map,chip); ++ if (ret < 0) ++ return ret; ++ ++#ifdef AUTOUNLOCK ++ /* This seems like a good place to do an unlock */ ++ sharp_unlock_oneblock(map,chip,adr); ++#endif ++ ++ sharp_send_cmd(map, CMD_BLOCK_ERASE_1, adr); ++ sharp_send_cmd(map, CMD_BLOCK_ERASE_2, adr); ++ ++ chip->state = FL_ERASING; ++ ++ ret = sharp_do_wait_for_ready(map,chip,adr); ++ if(ret<0) { ++ spin_unlock_bh(chip->mutex); ++ return ret; ++ } ++ ++ sharp_send_cmd(map, CMD_READ_STATUS, adr); ++ status = map_read(map, adr); ++ ++ if (!(status.x[0] & SR_ERRORS)) { ++ sharp_send_cmd(map, CMD_RESET, adr); ++ chip->state = FL_READY; ++ spin_unlock_bh(chip->mutex); ++ return 0; ++ } ++ ++ printk("sharp: error erasing block at addr=%08lx status=%08lx\n", adr, status.x[0]); ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++ ++ sharp_release(chip); ++ ++ return -EIO; ++} ++ ++#ifdef AUTOUNLOCK ++static inline void sharp_unlock_oneblock(struct map_info *map, struct flchip *chip, ++ unsigned long adr) ++{ ++ map_word status; ++ ++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_1, adr & BLOCK_MASK); ++ sharp_send_cmd(map, CMD_CLEAR_BLOCK_LOCKS_2, adr & BLOCK_MASK); ++ ++ sharp_do_wait_for_ready(map,chip,adr); ++ ++ status = map_read(map, adr); ++ ++ if (!(status.x[0] & SR_ERRORS)) { ++ sharp_send_cmd(map, CMD_RESET, adr); ++ chip->state = FL_READY; ++ return; ++ } ++ ++ printk("sharp: error unlocking block at addr=%08lx status=%08lx\n", adr, status.x[0]); ++ sharp_send_cmd(map, CMD_CLEAR_STATUS, adr); ++} ++#endif ++ ++static void sharp_sync(struct mtd_info *mtd) ++{ ++} ++ ++static int sharp_suspend(struct mtd_info *mtd) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int i; ++ struct flchip *chip; ++ int ret = 0; ++ ++ for (i = 0; !ret && i < sharp->numchips; i++) { ++ chip = &sharp->chips[i]; ++ ret = sharp_wait(map,chip); ++ ++ if (ret) { ++ ret = -EAGAIN; ++ } else { ++ chip->state = FL_PM_SUSPENDED; ++ spin_unlock_bh(chip->mutex); ++ } ++ } ++ return ret; ++} ++ ++static void sharp_resume(struct mtd_info *mtd) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ int i; ++ struct flchip *chip; ++ ++ for (i = 0; i < sharp->numchips; i++) { ++ chip = &sharp->chips[i]; ++ ++ spin_lock_bh(chip->mutex); ++ ++ if (chip->state == FL_PM_SUSPENDED) { ++ /* We need to force it back to a known state */ ++ sharp_send_cmd(map, CMD_RESET, chip->start); ++ chip->state = FL_READY; ++ wake_up(&chip->wq); ++ } ++ ++ spin_unlock_bh(chip->mutex); ++ } ++} ++ ++static void sharp_destroy(struct mtd_info *mtd) ++{ ++ struct map_info *map = mtd->priv; ++ struct sharp_info *sharp = map->fldrv_priv; ++ ++ kfree(sharp); ++} ++ ++static int __init sharp_probe_init(void) ++{ ++ printk("MTD Sharp chip driver <ds@lineo.com>\n"); ++ ++ register_mtd_chip_driver(&sharp_chipdrv); ++ ++ return 0; ++} ++ ++static void __exit sharp_probe_exit(void) ++{ ++ unregister_mtd_chip_driver(&sharp_chipdrv); ++} ++ ++module_init(sharp_probe_init); ++module_exit(sharp_probe_exit); ++ ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("David Schleef <ds@schleef.org>"); ++MODULE_DESCRIPTION("Old MTD chip driver for pre-CFI Sharp flash chips"); +Index: linux-2.6.26/drivers/mtd/maps/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/maps/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/maps/Kconfig 2008-10-17 18:15:31.431789839 +0200 +@@ -392,7 +392,7 @@ + + config MTD_SA1100 + tristate "CFI Flash device mapped on StrongARM SA11x0" +- depends on MTD_CFI && ARCH_SA1100 && MTD_PARTITIONS ++ depends on (MTD_CFI || MTD_SHARP) && ARCH_SA1100 && MTD_PARTITIONS + help + This enables access to the flash chips on most platforms based on + the SA1100 and SA1110, including the Assabet and the Compaq iPAQ. +Index: linux-2.6.26/drivers/mtd/maps/sa1100-flash.c +=================================================================== +--- linux-2.6.26.orig/drivers/mtd/maps/sa1100-flash.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/mtd/maps/sa1100-flash.c 2008-10-17 18:15:31.431789839 +0200 +@@ -210,6 +210,12 @@ goto err; } subdev->mtd->owner = THIS_MODULE; + +#ifdef CONFIG_SA1100_COLLIE + /* collie flash starts locked */ -+ if (subdev->mtd->unlock) -+ subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000); ++// if (subdev->mtd->unlock) ++// subdev->mtd->unlock(subdev->mtd, 0xc0000, subdev->mtd->size - 0xc0000); +#endif printk(KERN_INFO "SA1100 flash: CFI device at 0x%08lx, %dMiB, " "%d-bit\n", phys, subdev->mtd->size >> 20, -diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c -index 3b4e55c..0ae741d 100644 ---- a/drivers/net/wireless/hostap/hostap_cs.c -+++ b/drivers/net/wireless/hostap/hostap_cs.c -@@ -35,7 +35,7 @@ static int ignore_cis_vcc; +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_cs.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_cs.c 2008-10-17 18:15:31.435790279 +0200 +@@ -35,7 +35,7 @@ module_param(ignore_cis_vcc, int, 0444); MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry"); @@ -564,7 +1267,7 @@ index 3b4e55c..0ae741d 100644 /* struct local_info::hw_priv */ struct hostap_cs_priv { dev_node_t node; -@@ -499,11 +499,13 @@ static int hostap_cs_probe(struct pcmcia_device *p_dev) +@@ -499,11 +499,13 @@ PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info); p_dev->conf.IntType = INT_MEMORY_AND_IO; @@ -579,10 +1282,10 @@ index 3b4e55c..0ae741d 100644 return ret; } -diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c -index 13d5882..6f24d66 100644 ---- a/drivers/net/wireless/hostap/hostap_hw.c -+++ b/drivers/net/wireless/hostap/hostap_hw.c +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:13:21.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_hw.c 2008-10-17 18:15:31.443789719 +0200 @@ -54,6 +54,7 @@ #include "hostap.h" #include "hostap_ap.h" @@ -591,7 +1294,7 @@ index 13d5882..6f24d66 100644 /* #define final_version */ -@@ -1497,6 +1498,8 @@ static int prism2_hw_config(struct net_device *dev, int initial) +@@ -1534,6 +1535,8 @@ if (local->hw_downloading) return 1; @@ -600,7 +1303,7 @@ index 13d5882..6f24d66 100644 if (prism2_hw_init(dev, initial)) { return local->no_pri ? 0 : 1; } -@@ -2628,8 +2631,15 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id) +@@ -2665,8 +2668,15 @@ int events = 0; u16 ev; @@ -616,12 +1319,12 @@ index 13d5882..6f24d66 100644 + iface = netdev_priv(dev); + local = iface->local; - prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0); - -diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c -index 3a874fc..df58aa3 100644 ---- a/drivers/net/wireless/hostap/hostap_pci.c -+++ b/drivers/net/wireless/hostap/hostap_pci.c + if(dev->base_addr == 0) + { +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:13:18.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_pci.c 2008-10-17 18:15:31.447790279 +0200 @@ -19,6 +19,7 @@ #include "hostap_wlan.h" @@ -630,10 +1333,10 @@ index 3a874fc..df58aa3 100644 static char *dev_info = "hostap_pci"; -diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c -index cbf15d7..4475174 100644 ---- a/drivers/net/wireless/hostap/hostap_plx.c -+++ b/drivers/net/wireless/hostap/hostap_plx.c +Index: linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c +=================================================================== +--- linux-2.6.26.orig/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:13:18.000000000 +0200 ++++ linux-2.6.26/drivers/net/wireless/hostap/hostap_plx.c 2008-10-17 18:15:31.451790719 +0200 @@ -21,7 +21,7 @@ #include <asm/io.h> @@ -643,11 +1346,11 @@ index cbf15d7..4475174 100644 static char *dev_info = "hostap_plx"; -diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c -index c5b2a44..eecbe8c 100644 ---- a/drivers/pcmcia/sa1100_generic.c -+++ b/drivers/pcmcia/sa1100_generic.c -@@ -81,13 +81,14 @@ static int sa11x0_drv_pcmcia_probe(struct device *dev) +Index: linux-2.6.26/drivers/pcmcia/sa1100_generic.c +=================================================================== +--- linux-2.6.26.orig/drivers/pcmcia/sa1100_generic.c 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/pcmcia/sa1100_generic.c 2008-10-17 18:15:31.459789719 +0200 +@@ -81,13 +81,14 @@ return ret; } @@ -669,7 +1372,7 @@ index c5b2a44..eecbe8c 100644 }; /* sa11x0_pcmcia_init() -@@ -100,7 +101,7 @@ static struct device_driver sa11x0_pcmcia_driver = { +@@ -100,7 +101,7 @@ */ static int __init sa11x0_pcmcia_init(void) { @@ -678,7 +1381,7 @@ index c5b2a44..eecbe8c 100644 } /* sa11x0_pcmcia_exit() -@@ -110,7 +111,7 @@ static int __init sa11x0_pcmcia_init(void) +@@ -110,7 +111,7 @@ */ static void __exit sa11x0_pcmcia_exit(void) { @@ -687,11 +1390,11 @@ index c5b2a44..eecbe8c 100644 } MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>"); -diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig -index 66ec5d8..aba38d7 100644 ---- a/drivers/spi/Kconfig -+++ b/drivers/spi/Kconfig -@@ -123,6 +123,10 @@ config SPI_MPC52xx_PSC +Index: linux-2.6.26/drivers/spi/Kconfig +=================================================================== +--- linux-2.6.26.orig/drivers/spi/Kconfig 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/spi/Kconfig 2008-10-17 18:15:31.463790519 +0200 +@@ -123,6 +123,10 @@ This enables using the Freescale MPC52xx Programmable Serial Controller in master SPI mode. @@ -702,11 +1405,11 @@ index 66ec5d8..aba38d7 100644 config SPI_MPC83xx tristate "Freescale MPC83xx/QUICC Engine SPI controller" depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL -diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile -index 7fca043..b89992b 100644 ---- a/drivers/spi/Makefile -+++ b/drivers/spi/Makefile -@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o +Index: linux-2.6.26/drivers/spi/Makefile +=================================================================== +--- linux-2.6.26.orig/drivers/spi/Makefile 2008-07-13 23:51:29.000000000 +0200 ++++ linux-2.6.26/drivers/spi/Makefile 2008-10-17 18:15:31.463790519 +0200 +@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_TXX9) += spi_txx9.o obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o @@ -714,11 +1417,10 @@ index 7fca043..b89992b 100644 # ... add above this line ... # SPI protocol drivers (device/link on bus) -diff --git a/drivers/spi/locomo_spi.c b/drivers/spi/locomo_spi.c -new file mode 100644 -index 0000000..d3a4bd9 ---- /dev/null -+++ b/drivers/spi/locomo_spi.c +Index: linux-2.6.26/drivers/spi/locomo_spi.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/spi/locomo_spi.c 2008-10-17 18:15:31.471790439 +0200 @@ -0,0 +1,1097 @@ +#include <asm/io.h> +#include <asm/irq.h> @@ -1817,11 +2519,10 @@ index 0000000..d3a4bd9 +MODULE_AUTHOR("Thomas Kunze thommy@tabao.de"); +MODULE_DESCRIPTION("Collie mmc driver"); +MODULE_LICENSE("GPL"); -diff --git a/drivers/spi/locomo_spi.h b/drivers/spi/locomo_spi.h -new file mode 100644 -index 0000000..7e1c0ce ---- /dev/null -+++ b/drivers/spi/locomo_spi.h +Index: linux-2.6.26/drivers/spi/locomo_spi.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.26/drivers/spi/locomo_spi.h 2008-10-17 18:15:31.471790439 +0200 @@ -0,0 +1,75 @@ +#include <asm/hardware/locomo.h> +#ifndef __LOCOMO_SPI_H__ diff --git a/packages/linux/linux-rp-2.6.26/defconfig-collie b/packages/linux/linux-rp-2.6.26/defconfig-collie index c0e3e3b448..e21cc21da2 100644 --- a/packages/linux/linux-rp-2.6.26/defconfig-collie +++ b/packages/linux/linux-rp-2.6.26/defconfig-collie @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.26 -# Sat Jul 26 11:34:02 2008 +# Fri Oct 17 18:46:51 2008 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -157,25 +157,6 @@ CONFIG_ARCH_SA1100=y # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_MSM7X00A is not set -# CONFIG_ARCH_GUMSTIX is not set -# 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_ARCH_PXA_ESERIES is not set -# CONFIG_MACH_TRIZEPS4 is not set -# CONFIG_MACH_HX2750 is not set -# CONFIG_MACH_EM_X270 is not set -# CONFIG_MACH_COLIBRI is not set -# CONFIG_MACH_ZYLONITE is not set -# CONFIG_MACH_LITTLETON is not set -# CONFIG_MACH_ARMCORE is not set -# CONFIG_MACH_MAGICIAN is not set -# CONFIG_MACH_PCM027 is not set -# CONFIG_MACH_HTCUNIVERSAL is not set -# CONFIG_PXA_SHARPSL_25x is not set -# CONFIG_PXA_SHARPSL_27x is not set # # SA11x0 Implementations @@ -283,7 +264,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw fbcon=rotate:1 dyntick=enable debug" +CONFIG_CMDLINE="console=ttySA0,115200n8 console=tty1 noinitrd root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=3 rw mem=64M fbcon=rotate:1 dyntick=enable debug" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y CONFIG_ATAGS_PROC=y @@ -586,10 +567,8 @@ CONFIG_MTD_BLOCK=y # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=y +# CONFIG_MTD_CFI is not set # 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 @@ -600,21 +579,15 @@ 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=y -# CONFIG_MTD_CFI_AMDSTD is not set -# 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 +CONFIG_MTD_SHARP=y # # Mapping drivers for chip access # CONFIG_MTD_COMPLEX_MAPPINGS=y -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set CONFIG_MTD_SA1100=y # CONFIG_MTD_PLATRAM is not set @@ -1072,26 +1045,6 @@ CONFIG_FONT_8x8=y # CONFIG_HID_SUPPORT is not set CONFIG_HID=m # CONFIG_USB_SUPPORT is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_ATMEL_USBA is not set -# CONFIG_USB_GADGET_FSL_USB2 is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_PXA27X is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_S3C2410 is not set -# CONFIG_USB_GADGET_AT91 is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_ZERO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_UNSAFE_RESUME=y @@ -1489,10 +1442,10 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y CONFIG_CRC7=y CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=m -CONFIG_ZLIB_DEFLATE=m -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-rp_2.6.26.bb b/packages/linux/linux-rp_2.6.26.bb index 8ff6fc4c0d..0c76704cc5 100644 --- a/packages/linux/linux-rp_2.6.26.bb +++ b/packages/linux/linux-rp_2.6.26.bb @@ -1,6 +1,6 @@ require linux-rp.inc -FILE_PR = "r2" +FILE_PR = "r4" DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_qemuarm = "-1" @@ -81,6 +81,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2 \ SRC_URI_append_collie = "\ file://collie.patch;patch=1 \ file://collie_keymap.patch;patch=1 \ + file://collie-ucbfix.patch;patch=1 \ " SRC_URI_append_poodle = "\ diff --git a/packages/lirc/lirc_0.8.1+cvs20070307.bb b/packages/lirc/lirc_0.8.1+cvs20070307.bb index dc276b66cb..03397f46bd 100644 --- a/packages/lirc/lirc_0.8.1+cvs20070307.bb +++ b/packages/lirc/lirc_0.8.1+cvs20070307.bb @@ -15,7 +15,7 @@ RDEPENDS_lirc-x = "lirc" RDEPENDS_lirc-exec = "lirc" RDEPENDS_lirc-nslu2example = "lirc lirc-exec" RRECOMMENDS_lirc = "lirc-exec" -FILE_PR = "r1" +FILE_PR = "r2" # enable cvs version since until compilation issues for other packages have been fixed (cf. bug 2284 et al). #DEFAULT_PREFERENCE = "-1" @@ -65,7 +65,7 @@ PACKAGES =+ "lirc-x lirc-exec lirc-remotes" PACKAGES_prepend_nslu2 = "lirc-nslu2example " FILES_${PN}-dbg += "${bindir}/.debug ${sbindir}/.debug" -FILES_${PN} = "${bindir} ${sbindir} ${libdir} ${sysconfdir}/init.d" +FILES_${PN} = "${bindir} ${sbindir} ${libdir}/*.so.* ${sysconfdir}/init.d" FILES_lirc-x = "${bindir}/irxevent ${bindir}/xmode2" FILES_lirc-exec = "${bindir}/irexec ${sysconfdir}/init.d/lircexec" FILES_lirc-remotes = "${datadir}/lirc/remotes" diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb index c69e20d679..740677eddb 100644 --- a/packages/meta/slugos-packages.bb +++ b/packages/meta/slugos-packages.bb @@ -5,7 +5,7 @@ DESCRIPTION = "Packages that are compatible with the SlugOS firmware" HOMEPAGE = "http://www.nslu2-linux.org" LICENSE = "MIT" -FILE_PR = "r58" +FILE_PR = "r59" CONFLICTS = "db3" COMPATIBLE_MACHINE = "nslu2|ixp4xx" @@ -92,7 +92,6 @@ SLUGOS_PACKAGES = "\ fuse \ gawk \ gcc \ - gdb \ gdbm \ glib-2.0 \ gnu-config \ @@ -255,6 +254,7 @@ SLUGOS_BROKEN_PACKAGES = "\ ctorrent \ dsniff \ eciadsl \ + gdb \ gspcav1 \ linphone \ lirc-modules lirc \ diff --git a/packages/pointercal/files/collie/pointercal b/packages/pointercal/files/collie/pointercal new file mode 100755 index 0000000000..59a9f67251 --- /dev/null +++ b/packages/pointercal/files/collie/pointercal @@ -0,0 +1 @@ +24730 148 -1698140 -78 -18069 17111372 65536 diff --git a/packages/pointercal/pointercal_0.0.bb b/packages/pointercal/pointercal_0.0.bb index 00cdc12ad6..06a718b6ac 100644 --- a/packages/pointercal/pointercal_0.0.bb +++ b/packages/pointercal/pointercal_0.0.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Touchscreen calibration data" SECTION = "base" -FILE_PR = "r7" +FILE_PR = "r8" SRC_URI = "file://pointercal" S = "${WORKDIR}" diff --git a/packages/tasks/task-fso-compliance.bb b/packages/tasks/task-fso-compliance.bb new file mode 100644 index 0000000000..c331d7a8d0 --- /dev/null +++ b/packages/tasks/task-fso-compliance.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "The freesmartphone.org framework -- install this task to make your distribution FSO-compliant." +SECTION = "fso/base" +LICENSE = "MIT" +PV = "1.0" +FILE_PR = "r0" + +inherit task + +RDEPENDS_${PN} = "\ + frameworkd \ + fso-gpsd \ +" + +RRECOMMENDS_${PN} = "\ + gsm0710muxd \ +" diff --git a/packages/tasks/task-x11-illume.bb b/packages/tasks/task-x11-illume.bb index a477c6e8c5..b84efec516 100644 --- a/packages/tasks/task-x11-illume.bb +++ b/packages/tasks/task-x11-illume.bb @@ -2,7 +2,7 @@ DESCRIPTION = "The Illume Windowing Environment -- install this task to get the SECTION = "x11/wm" LICENSE = "MIT" PV = "1.0" -PR = "r0" +FILE_PR = "r0" # WORK IN PROGRESS diff --git a/packages/tasks/task-x11.bb b/packages/tasks/task-x11.bb index ad5ca3a412..ce1fa79bba 100644 --- a/packages/tasks/task-x11.bb +++ b/packages/tasks/task-x11.bb @@ -2,7 +2,7 @@ DESCRIPTION = "The X Window System -- install this task to get a client/server b SECTION = "x11/server" LICENSE = "MIT" PV = "1.0" -PR = "r0" +FILE_PR = "r0" # WORK IN PROGRESS diff --git a/packages/tasks/task-xfce-base.bb b/packages/tasks/task-xfce-base.bb index bf6813a4ef..b734341c54 100644 --- a/packages/tasks/task-xfce-base.bb +++ b/packages/tasks/task-xfce-base.bb @@ -4,12 +4,31 @@ DESCRIPTION = "All packages required for an base XFCE installation" LICENSE = "MIT" -FILE_PR = "r3" +FILE_PR = "r4" inherit task -RDEPENDS_${PN} = "xfce-mcs-manager xfwm4 xfwm4-theme-default xfce-utils xfdesktop \ - xfce4-panel xfce4-panel-plugins xfce-mcs-plugins xfwm4-mcs-plugins \ - xfce4-panel-mcs-plugins \ - xfdesktop-mcs-plugins" +RDEPENDS_${PN} = " \ + xfce-mcs-manager \ + xfwm4 \ + xfwm4-theme-default \ + xfce-utils \ + xfdesktop \ + xfce4-panel \ + xfce4-panel-plugin-actions \ + xfce4-panel-plugin-clock \ + xfce4-panel-plugin-iconbox \ + xfce4-panel-plugin-launcher \ + xfce4-panel-plugin-pager \ + xfce4-panel-plugin-separator \ + xfce4-panel-plugin-showdesktop \ + xfce4-panel-plugin-systray \ + xfce4-panel-plugin-tasklist \ + xfce4-panel-plugin-windowlist \ + xfce-mcs-plugins \ + xfwm4-mcs-plugins \ + xfce4-panel-mcs-plugins \ + xfdesktop-mcs-plugins \ +" + RRECOMMENDS_${PN} = "xfce-utils-mcs-plugins" diff --git a/packages/telepathy/libtelepathy_0.3.3.bb b/packages/telepathy/libtelepathy_0.3.3.bb index fdd310366c..23d7fc9cdf 100644 --- a/packages/telepathy/libtelepathy_0.3.3.bb +++ b/packages/telepathy/libtelepathy_0.3.3.bb @@ -1,5 +1,5 @@ HOMEPAGE = "http://telepathy.freedesktop.org/wiki/" -DEPENDS = "glib-2.0 dbus" +DEPENDS = "telepathy-glib glib-2.0 dbus" LICENSE = "LGPL" FILE_PR = "r0" diff --git a/packages/uclibc/bfin-uclibc_svn.bb b/packages/uclibc/bfin-uclibc_svn.bb index f05a2deb37..891ff87328 100644 --- a/packages/uclibc/bfin-uclibc_svn.bb +++ b/packages/uclibc/bfin-uclibc_svn.bb @@ -7,7 +7,7 @@ # on whether the base patches apply to the selected (SRCDATE) svn release. # UCLIBC_BASE ?= "0.9.29" -FILE_PR = "r3" +FILE_PR = "r4" PV = "${UCLIBC_BASE}+svnr${SRCREV}" require uclibc.inc diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc index f20caa29f1..9b27e1f323 100644 --- a/packages/uclibc/uclibc.inc +++ b/packages/uclibc/uclibc.inc @@ -155,11 +155,6 @@ do_stage() { RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ install_dev install_runtime - # Install into the staging dir - oe_runmake PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ - RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ - install_utils - # We don't really need this rm -f ${UCLIBC_STAGE_PREFIX}/include/.cvsignore diff --git a/packages/uclibc/uclibc_0.9.26.bb b/packages/uclibc/uclibc_0.9.26.bb index ee741a893c..f4b7aa3c28 100644 --- a/packages/uclibc/uclibc_0.9.26.bb +++ b/packages/uclibc/uclibc_0.9.26.bb @@ -1,4 +1,4 @@ -FILE_PR = "r11" +FILE_PR = "r12" require uclibc.inc diff --git a/packages/uclibc/uclibc_0.9.27.bb b/packages/uclibc/uclibc_0.9.27.bb index 367964a2e1..049017b2fb 100644 --- a/packages/uclibc/uclibc_0.9.27.bb +++ b/packages/uclibc/uclibc_0.9.27.bb @@ -1,5 +1,5 @@ DEFAULT_PREFERENCE = "1" -FILE_PR = "r11" +FILE_PR = "r12" require uclibc.inc diff --git a/packages/uclibc/uclibc_0.9.28.bb b/packages/uclibc/uclibc_0.9.28.bb index d4c3b174ee..9b6c342080 100644 --- a/packages/uclibc/uclibc_0.9.28.bb +++ b/packages/uclibc/uclibc_0.9.28.bb @@ -1,5 +1,5 @@ DEFAULT_PREFERENCE = "1" -FILE_PR = "r16" +FILE_PR = "r17" require uclibc.inc diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb index bd350dd144..7d659160f4 100644 --- a/packages/uclibc/uclibc_0.9.29.bb +++ b/packages/uclibc/uclibc_0.9.29.bb @@ -7,7 +7,7 @@ # on whether the base patches apply to the selected (SRCDATE) svn release. # UCLIBC_BASE ?= "0.9.29" -FILE_PR = "r28" +FILE_PR = "r29" DEFAULT_PREFERENCE = "1" require uclibc.inc diff --git a/packages/uclibc/uclibc_nptl.bb b/packages/uclibc/uclibc_nptl.bb index c1506bc7b6..b441cb821f 100644 --- a/packages/uclibc/uclibc_nptl.bb +++ b/packages/uclibc/uclibc_nptl.bb @@ -8,7 +8,7 @@ # UCLIBC_BASE ?= "0.9.29" PV = "${UCLIBC_BASE}+svnr${SRCREV}" -FILE_PR = "r2" +FILE_PR = "r3" #DEFAULT_PREFERENCE = "2" #DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take # precedence. diff --git a/packages/uclibc/uclibc_svn.bb b/packages/uclibc/uclibc_svn.bb index ee30f20396..d643b43769 100644 --- a/packages/uclibc/uclibc_svn.bb +++ b/packages/uclibc/uclibc_svn.bb @@ -8,7 +8,7 @@ # UCLIBC_BASE ?= "0.9.29" PV = "${UCLIBC_BASE}+svnr${SRCREV}" -FILE_PR = "r16" +FILE_PR = "r17" #DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take # precedence. diff --git a/packages/unicap/ucview_0.22.bb b/packages/unicap/ucview_0.22.bb new file mode 100644 index 0000000000..dde8fd1be5 --- /dev/null +++ b/packages/unicap/ucview_0.22.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Simple camera capture GUI based on unicap." +SECTION = "graphics" +LICENSE = "GPL" +DEPENDS = "intltool-native gtk+ libpng unicap gconf libglade gdk-pixbuf-csource-native" +PR = "r0" + +SRC_URI = "http://www.unicap-imaging.org/downloads/${P}.tar.gz" + +inherit autotools pkgconfig + +FILES_${PN} += " ${datadir}/dbus-1 ${datadir}/icons" +FILES_${PN}-dbg += " ${libdir}/ucview/plugins/.debug" diff --git a/packages/unicap/unicap-0.9.3/pkgconfig.patch b/packages/unicap/unicap-0.9.3/pkgconfig.patch new file mode 100644 index 0000000000..ce5ac2085f --- /dev/null +++ b/packages/unicap/unicap-0.9.3/pkgconfig.patch @@ -0,0 +1,9 @@ +--- unicap-0.9.3/libucil/libucil.pc.in~ 2008-10-17 21:40:01.000000000 +0200 ++++ unicap-0.9.3/libucil/libucil.pc.in 2008-10-17 21:40:01.000000000 +0200 +@@ -5,5 +5,5 @@ + Description: Unicap Imaging Library is a set of simple image processing functions + Version: @dist_version@ + Libs: -L@libdir@ -lucil @GLIB_PACKAGE_LIBS@ @PANGO_PACKAGE_LIBS@ @AVCODEC_PACKAGE_LIBS@ @THEORA_PACKAGE_LIBS@ @PNG_PACKAGE_LIBS@ -lm +-Cflags: -I@includedir@/unicap @GLIB_PACKAGE_CFLAGS@ @PANGO_PACKAGE_CFLAGS@ @AVCODEC_PACKAGE_CFLAGS@ @THEORA_PACKAGE_CFLAGS@ @PNG_PACKAGE_CFLAGS@ ++Cflags: -I@includedir@/unicap + Requires: libunicap pangoft2 glib-2.0 diff --git a/packages/unicap/unicap_0.9.3.bb b/packages/unicap/unicap_0.9.3.bb new file mode 100644 index 0000000000..c527c80819 --- /dev/null +++ b/packages/unicap/unicap_0.9.3.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A uniform interface to video capture devices." +SECTION = "graphics" +LICENSE = "GPL" +DEPENDS = "intltool-native gtk+ libpng libxv" +PR = "r0" + +SRC_URI = "http://www.unicap-imaging.org/downloads/unicap-${PV}.tar.gz \ + file://pkgconfig.patch;patch=1" + +inherit autotools pkgconfig + +do_stage () { + autotools_stage_all +} + +PACKAGES += "libucil libunicapgtk" + +FILES_${PN} = "${libdir}/libunicap.*so.* ${libdir}/unicap2/cpi/lib*.*so.*" +FILES_${PN}-dev += " ${libdir}/unicap2/cpi/lib*.*so ${libdir}/unicap2/cpi/lib*.*a" +FILES_${PN}-dbg += " ${libdir}/unicap2/cpi/.debug" +FILES_libucil = "${libdir}/libucil*so.*" +FILES_libunicapgtk = "${libdir}/libunicapgtk*so.*" diff --git a/packages/wt/files/cmakelist.patch b/packages/wt/files/cmakelist.patch new file mode 100644 index 0000000000..9e1eab1835 --- /dev/null +++ b/packages/wt/files/cmakelist.patch @@ -0,0 +1,26 @@ +diff -urN wt-2.2.0.orig/src/CMakeLists.txt wt-2.2.0/src/CMakeLists.txt +--- wt-2.2.0.orig/src/CMakeLists.txt 2008-09-10 15:58:34.000000000 +0200 ++++ wt-2.2.0/src/CMakeLists.txt 2008-10-18 11:12:20.000000000 +0200 +@@ -33,8 +33,12 @@ + + LINK_DIRECTORIES(${BOOST_LIB_DIRS}) + +-ADD_EXECUTABLE(filetostring web/skeleton/FileToString.C) +-GET_TARGET_PROPERTY(FILE_TO_STRING_EXE filetostring LOCATION) ++IF(CMAKE_CROSSCOMPILING) ++ ADD_EXECUTABLE(filetostring web/skeleton/FileToString.C) ++ GET_TARGET_PROPERTY(FILE_TO_STRING_EXE filetostring LOCATION) ++ELSE(CMAKE_CROSSCOMPILING) ++ SET(FILE_TO_STRING_EXE ${CMAKE_CURRENT_SOURCE_DIR}/filetostring) ++ENDIF(CMAKE_CROSSCOMPILING) + + MACRO (FILE_TO_STRING infile outfile var) + ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${outfile} +diff -urN wt-2.2.0.orig/src/Wt/Ext/CMakeLists.txt wt-2.2.0/src/Wt/Ext/CMakeLists.txt +--- wt-2.2.0.orig/src/Wt/Ext/CMakeLists.txt 2008-07-15 08:25:54.000000000 +0200 ++++ wt-2.2.0/src/Wt/Ext/CMakeLists.txt 2008-10-17 22:37:38.000000000 +0200 +@@ -1,2 +1,3 @@ +-INSTALL_FILES(/include/Wt/Ext "...+[^Ch~]$") ++# avoid CMake* getting included ++INSTALL_FILES(/include/Wt/Ext "^[A-Z][a-z].*[^Ch~]$") + INSTALL_FILES(/include/Wt/Ext ExtDllDefs.h) diff --git a/packages/wt/wt_2.2.0.bb b/packages/wt/wt_2.2.0.bb new file mode 100644 index 0000000000..16d8c55d2e --- /dev/null +++ b/packages/wt/wt_2.2.0.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "A C++ Web Toolkit" +PRIORITY = "optional" +SECTION = "devel" +LICENSE = "GPL" +DEPENDS = "boost" +FILE_PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/witty/wt-${PV}.tar.gz \ + file://cmakelist.patch;patch=1" + +FILES_${PN} += "${datadir}/Wt" +FILES_${PN}-dev += "${datadir}/cmake-2.*" + +inherit cmake + +STAGE_TEMP = "${WORKDIR}/temp-staging" + +do_configure_append() { + ${BUILD_CXX} ${BUILD_CXXFLAGS} -o src/filetostring src/web/skeleton/FileToString.C +} + +do_stage() { + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + oe_runmake DESTDIR="${STAGE_TEMP}" install + cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} + cp -pPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR} + cp -pPR ${STAGE_TEMP}/${datadir}/cmake-2.* ${STAGING_DATADIR} + rm -rf ${STAGE_TEMP} +} + diff --git a/packages/xfce/exo/configure.patch b/packages/xfce/exo/configure.patch new file mode 100644 index 0000000000..2ccfcfc994 --- /dev/null +++ b/packages/xfce/exo/configure.patch @@ -0,0 +1,43 @@ +--- exo-0.3.4/configure.in~ 2007-12-02 10:37:06.000000000 -0200 ++++ exo-0.3.4/configure.in 2008-06-05 17:21:42.000000000 -0300 +@@ -127,22 +127,24 @@ + dnl *************************************** + dnl *** Check for strftime() extensions *** + dnl *************************************** +-AC_TRY_RUN([ +- #include <string.h> +- #include <time.h> +- int +- main (int argc, char **argv) +- { +- struct tm tm; +- char buffer[16]; +- tm.tm_year = 81; +- if (strftime (buffer, 16, "%EY", &tm) == 4 && strcmp (buffer, "1981") == 0) +- return 0; +- return 1; +- } +-], [ +- AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.]) +-]) ++dnl grrrr... this doesn't work for cross compiling, define it for OE ++AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.]) ++dnl AC_TRY_RUN([ ++dnl #include <string.h> ++dnl #include <time.h> ++dnl int ++dnl main (int argc, char **argv) ++dnl { ++dnl struct tm tm; ++dnl char buffer[16]; ++dnl tm.tm_year = 81; ++dnl if (strftime (buffer, 16, "%EY", &tm) == 4 && strcmp (buffer, "1981") == 0) ++dnl return 0; ++dnl return 1; ++dnl } ++dnl ], [ ++dnl AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.]) ++dnl ]) + + dnl ****************************** + dnl *** Check for i18n support *** diff --git a/packages/xfce/exo_0.3.2.bb b/packages/xfce/exo_0.3.4.bb index b48eeba645..49ab44582c 100644 --- a/packages/xfce/exo_0.3.2.bb +++ b/packages/xfce/exo_0.3.4.bb @@ -1,9 +1,9 @@ - DEPENDS = "libxfce4util xfce-mcs-manager hal liburi-perl-native python-native" -inherit xfce +inherit xfce +XFCE_VERSION = 4.4.2 -SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/exo-0.3.2.tar.bz2" +SRC_URI += " file://configure.patch;patch=1" # Note: Python checking is broken diff --git a/packages/xfce/gtk-xfce-engine_2.4.1.bb b/packages/xfce/gtk-xfce-engine_2.4.2.bb index bcfecaf53b..fda9b9d833 100644 --- a/packages/xfce/gtk-xfce-engine_2.4.1.bb +++ b/packages/xfce/gtk-xfce-engine_2.4.2.bb @@ -1,8 +1,7 @@ DESCRIPTION = "XFCE theme for GTK" inherit xfce - -SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/gtk-xfce-engine-${PV}.tar.bz2" +XFCE_VERSION = 4.4.2 FILES_${PN} += "${libdir}/gtk-2.0/*/engines/libxfce.so \ ${datadir}/themes/" diff --git a/packages/xfce/libxfce4mcs_4.4.1.bb b/packages/xfce/libxfce4mcs_4.4.1.bb deleted file mode 100644 index 8e2d522962..0000000000 --- a/packages/xfce/libxfce4mcs_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# libxfce4mcs OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/libxfce4mcs.inc b/packages/xfce/libxfce4mcs_4.4.2.bb index 6ecbc8db58..20448240e2 100644 --- a/packages/xfce/libxfce4mcs.inc +++ b/packages/xfce/libxfce4mcs_4.4.2.bb @@ -6,7 +6,7 @@ DESCRIPTION="Settings management library used by most XFce 4 modules" DEPENDS="libxfce4util" SECTION = "x11/libs" -inherit xfce +inherit xfce pkgconfig do_stage() { install -d ${STAGING_INCDIR}/xfce4/libxfce4mcs diff --git a/packages/xfce/libxfce4util_4.4.1.bb b/packages/xfce/libxfce4util_4.4.1.bb deleted file mode 100644 index a53a83e861..0000000000 --- a/packages/xfce/libxfce4util_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# libxfce4util OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/libxfce4util.inc b/packages/xfce/libxfce4util_4.4.2.bb index ee7b886f20..3386ad57e3 100644 --- a/packages/xfce/libxfce4util.inc +++ b/packages/xfce/libxfce4util_4.4.2.bb @@ -7,7 +7,7 @@ SECTION = "x11/libs" LICENSE = "GPL" DEPENDS = "glib-2.0 xfce4-dev-tools" -inherit xfce +inherit xfce pkgconfig MACROS="m4/X11.m4 m4/debug.m4 m4/depends.m4 m4/i18n.m4" diff --git a/packages/xfce/libxfcegui4_4.4.1.bb b/packages/xfce/libxfcegui4_4.4.1.bb deleted file mode 100644 index a36897f822..0000000000 --- a/packages/xfce/libxfcegui4_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# libxfcegui4 OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/libxfcegui4.inc b/packages/xfce/libxfcegui4_4.4.2.bb index 1b7703abf9..d38269d6f8 100644 --- a/packages/xfce/libxfcegui4.inc +++ b/packages/xfce/libxfcegui4_4.4.2.bb @@ -6,8 +6,7 @@ DESCRIPTION = "XFCE Widget library and X Window System interaction" DEPENDS = "libxfce4util dbh libxml2 gtk+" SECTION = "x11/libs" -inherit xfce - +inherit xfce do_stage() { autotools_stage_all diff --git a/packages/xfce/mousepad_0.2.12.bb b/packages/xfce/mousepad_0.2.13.bb index 670a28dbd7..c55ce5a047 100644 --- a/packages/xfce/mousepad_0.2.12.bb +++ b/packages/xfce/mousepad_0.2.13.bb @@ -2,5 +2,4 @@ DESCRIPTION = "Text editor for Xfce based on Leafpad" DEPENDS = "libxfce4util xfce-mcs-manager hal liburi-perl-native python-native" inherit xfce - -SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/mousepad-${PV}.tar.bz2" +XFCE_VERSION = 4.4.2 diff --git a/packages/xfce/orage_4.4.1.bb b/packages/xfce/orage_4.4.2.bb index b8f5284454..b8f5284454 100644 --- a/packages/xfce/orage_4.4.1.bb +++ b/packages/xfce/orage_4.4.2.bb diff --git a/packages/xfce/thunar_0.8.0.bb b/packages/xfce/thunar_0.9.0.bb index ea739e4cde..4c5f02565e 100644 --- a/packages/xfce/thunar_0.8.0.bb +++ b/packages/xfce/thunar_0.9.0.bb @@ -1,9 +1,10 @@ DESCRIPTION = "File manager for the Xfce Desktop Environment" DEPENDS = "libxfcegui4 exo dbus-glib libexif xfce4-panel libice libsm" -inherit xfce +inherit xfce pkgconfig -SRC_URI = "http://thunar.xfce.org/download/sources/Thunar/0.8.0/Thunar-0.8.0.tar.bz2" +SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.2/src/Thunar-${PV}.tar.bz2" +FILE_PR = 'r1' S = "${WORKDIR}/Thunar-${PV}/" @@ -12,4 +13,8 @@ FILES_${PN} += "${libdir}/thunarx-1/*.so \ ${datadir}/thumbnailers \ ${datadir}/Thunar \ ${datadir}/xfce4" -FILES_${PN}-dbg += "${libdir}/thunarx-1/.debug/" +FILES_${PN}-dbg += "${libdir}/thunarx-1/.debug/ ${libexecdir}/xfce4/panel-plugins/.debug/" + +do_stage () { + autotools_stage_all +} diff --git a/packages/xfce/xfce-mcs-manager.inc b/packages/xfce/xfce-mcs-manager.inc index de12b14b05..8ad747b3bc 100644 --- a/packages/xfce/xfce-mcs-manager.inc +++ b/packages/xfce/xfce-mcs-manager.inc @@ -14,3 +14,7 @@ do_stage() { } +do_stage_append () { + install -d ${PKG_CONFIG_DIR} + sed -e 's:^includedir=.*:includedir="/usr/include":;' ${S}/xfce-mcs-manager/xfce-mcs-manager.pc >${PKG_CONFIG_DIR}/xfce-mcs-manager.pc +} diff --git a/packages/xfce/xfce-mcs-manager_4.4.1.bb b/packages/xfce/xfce-mcs-manager_4.4.1.bb deleted file mode 100644 index 76e0452ad8..0000000000 --- a/packages/xfce/xfce-mcs-manager_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# xfce-mcs-manager OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/xfce-mcs-manager_4.4.2.bb b/packages/xfce/xfce-mcs-manager_4.4.2.bb new file mode 100644 index 0000000000..0b9fc43f70 --- /dev/null +++ b/packages/xfce/xfce-mcs-manager_4.4.2.bb @@ -0,0 +1,25 @@ +# xfce-mcs-manager OE build file +# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved +# Released under the MIT license (see COPYING.MIT) + +DESCRIPTION="XFCE4 Settings manager." +DEPENDS="libxfcegui4 libxfce4mcs intltool-native" +SECTION = "x11" +PR = "r1" + +inherit xfce + +do_stage() { + install -d ${STAGING_INCDIR}/xfce4 + install -d ${STAGING_INCDIR}/xfce4/xfce-mcs-manager + install -m 644 xfce-mcs-manager/manager-plugin.h ${STAGING_INCDIR}/xfce4/xfce-mcs-manager +} + +# xfce-mcs-manager.pc uses ${libdir} to indicate where the mcs plugins live +# the standard pkgconfig mangling was confusing us. Mangling is not required +# for this particular .pc, so the following will suffice: + +do_stage_append () { + install -d ${PKG_CONFIG_DIR} + sed -e 's:^includedir=.*:includedir="/usr/include":;' ${S}/xfce-mcs-manager/xfce-mcs-manager.pc >${PKG_CONFIG_DIR}/xfce-mcs-manager.pc +} diff --git a/packages/xfce/xfce-mcs-plugins_4.4.1.bb b/packages/xfce/xfce-mcs-plugins_4.4.1.bb deleted file mode 100644 index bd41458757..0000000000 --- a/packages/xfce/xfce-mcs-plugins_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# xfce-mcs-plugins OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/xfce-mcs-plugins.inc b/packages/xfce/xfce-mcs-plugins_4.4.2.bb index 80037841fa..80037841fa 100644 --- a/packages/xfce/xfce-mcs-plugins.inc +++ b/packages/xfce/xfce-mcs-plugins_4.4.2.bb diff --git a/packages/xfce/xfce-terminal_0.2.6.bb b/packages/xfce/xfce-terminal_0.2.8.bb index 07a8eb6eb5..9a36c69237 100644 --- a/packages/xfce/xfce-terminal_0.2.6.bb +++ b/packages/xfce/xfce-terminal_0.2.8.bb @@ -3,6 +3,6 @@ DEPENDS = "exo vte dbus-glib gtk+" inherit xfce -SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.1/src/Terminal-${PV}.tar.bz2" +SRC_URI = "http://www.us.xfce.org/archive/xfce-4.4.2/src/Terminal-${PV}.tar.bz2" S = "${WORKDIR}/Terminal-${PV}" diff --git a/packages/xfce/xfce-utils_4.4.1.bb b/packages/xfce/xfce-utils_4.4.1.bb deleted file mode 100644 index c48026b190..0000000000 --- a/packages/xfce/xfce-utils_4.4.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -# xfce-utils OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -FILE_PR = "r1" -require ${PN}.inc diff --git a/packages/xfce/xfce-utils.inc b/packages/xfce/xfce-utils_4.4.2.bb index d681fd7adb..d681fd7adb 100644 --- a/packages/xfce/xfce-utils.inc +++ b/packages/xfce/xfce-utils_4.4.2.bb diff --git a/packages/xfce/xfce4-appfinder_4.4.1.bb b/packages/xfce/xfce4-appfinder_4.4.1.bb deleted file mode 100644 index 471122ea02..0000000000 --- a/packages/xfce/xfce4-appfinder_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# xfce4-appfinder build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/xfce4-appfinder.inc b/packages/xfce/xfce4-appfinder_4.4.2.bb index ddfa3e1e4e..ddfa3e1e4e 100644 --- a/packages/xfce/xfce4-appfinder.inc +++ b/packages/xfce/xfce4-appfinder_4.4.2.bb diff --git a/packages/xfce/xfce4-dev-tools.inc b/packages/xfce/xfce4-dev-tools_4.4.0.1.bb index 2116b1d414..67c2d341de 100644 --- a/packages/xfce/xfce4-dev-tools.inc +++ b/packages/xfce/xfce4-dev-tools_4.4.0.1.bb @@ -2,7 +2,8 @@ DESCRIPTION = "Xfce4 development tools" SECTION = "x11/libs" LICENSE = "GPL" -inherit xfce +inherit xfce +XFCE_VERSION = 4.4.2 do_stage() { install -d ${STAGING_DATADIR}/aclocal diff --git a/packages/xfce/xfce4-dev-tools_4.4.0.bb b/packages/xfce/xfce4-dev-tools_4.4.0.bb deleted file mode 100644 index bd54419686..0000000000 --- a/packages/xfce/xfce4-dev-tools_4.4.0.bb +++ /dev/null @@ -1 +0,0 @@ -require ${PN}.inc diff --git a/packages/xfce/xfce4-icon-theme_4.4.1.bb b/packages/xfce/xfce4-icon-theme_4.4.2.bb index 69d9dacbac..69d9dacbac 100644 --- a/packages/xfce/xfce4-icon-theme_4.4.1.bb +++ b/packages/xfce/xfce4-icon-theme_4.4.2.bb diff --git a/packages/xfce/xfce4-mixer_4.4.1.bb b/packages/xfce/xfce4-mixer_4.4.1.bb deleted file mode 100644 index 13ba0f32e3..0000000000 --- a/packages/xfce/xfce4-mixer_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# xfce-mixer-plugin OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/xfce4-mixer.inc b/packages/xfce/xfce4-mixer_4.4.2.bb index 4d3faed14c..60bb012810 100644 --- a/packages/xfce/xfce4-mixer.inc +++ b/packages/xfce/xfce4-mixer_4.4.2.bb @@ -7,3 +7,6 @@ SECTION = "x11" DEPENDS="xfce4-panel" inherit xfce + +FILES_${PN}-dev += "${libdir}/xfce4/modules/libxfce4mixer.so" +FILES_${PN}-dbg += "${libexecdir}/xfce4/panel-plugins/.debug/" diff --git a/packages/xfce/xfce4-panel.inc b/packages/xfce/xfce4-panel.inc deleted file mode 100644 index be7092ab9e..0000000000 --- a/packages/xfce/xfce4-panel.inc +++ /dev/null @@ -1,26 +0,0 @@ -# xfce4-panel OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -DESCRIPTION = "XFCE4 Panel" -SECTION = "x11" -DEPENDS = "startup-notification virtual/libx11 libxfcegui4 libxfce4mcs xfce-mcs-manager libxml2" - -inherit xfce - -EXTRA_OECONF += " --enable-startup-notification" - - -do_stage() { -autotools_stage_all -} - -do_install() { - oe_runmake DESTDIR=${D} install -} - -PACKAGES += "${PN}-plugins ${PN}-mcs-plugins" -FILES_${PN}-plugins += "${libdir}/xfce4/panel-plugins/*.so* \ - ${datadir}/xfce4/panel-plugins/*.desktop" -FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/" -FILES_${PN}-dbg += "${libdir}/xfce4/mcs-plugins/.debug" diff --git a/packages/xfce/xfce4-panel_4.4.1.bb b/packages/xfce/xfce4-panel_4.4.1.bb deleted file mode 100644 index d855f35f49..0000000000 --- a/packages/xfce/xfce4-panel_4.4.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -# xfce4-panel OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -FILE_PR ="r2" -require ${PN}.inc diff --git a/packages/xfce/xfce4-panel_4.4.2.bb b/packages/xfce/xfce4-panel_4.4.2.bb new file mode 100644 index 0000000000..2fd087733e --- /dev/null +++ b/packages/xfce/xfce4-panel_4.4.2.bb @@ -0,0 +1,37 @@ +# xfce4-panel OE build file +# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved +# Released under the MIT license (see COPYING.MIT) + +DESCRIPTION = "XFCE4 Panel" +SECTION = "x11" +DEPENDS = "startup-notification virtual/libx11 libxfcegui4 libxfce4mcs xfce-mcs-manager libxml2" + +inherit pkgconfig xfce + +EXTRA_OECONF += " --enable-startup-notification" + + +do_stage() { +autotools_stage_all +} + +do_install() { + oe_runmake DESTDIR=${D} install +} + +python populate_packages_prepend() { + plugin_dir = bb.data.expand('${libdir}/xfce4/panel-plugins/', d) + plugin_name = bb.data.expand('${PN}-plugin-%s', d) + do_split_packages(d, plugin_dir, '^lib(.*).so$', plugin_name, + '${PN} plugin for %s', extra_depends='', prepend=True, + aux_files_pattern=['${datadir}/xfce4/panel-plugins/%s.desktop', + '${sysconfdir}/xdg/xfce/panel/%s-*', + '${datadir}/icons/hicolor/48x48/apps/*-%s.png', + '${bindir}/*%s*']) +} + +PACKAGES += "${PN}-mcs-plugins" +PACKAGES_DYNAMIC = "${PN}-plugin-*" + +FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/" +FILES_${PN}-dbg += "${libdir}/xfce4/mcs-plugins/.debug" diff --git a/packages/xfce/xfce4-session_4.4.1.bb b/packages/xfce/xfce4-session_4.4.2.bb index a572b80f55..a572b80f55 100644 --- a/packages/xfce/xfce4-session_4.4.1.bb +++ b/packages/xfce/xfce4-session_4.4.2.bb diff --git a/packages/xfce/xfdesktop/relocation-and-memleak.patch b/packages/xfce/xfdesktop/relocation-and-memleak.patch new file mode 100644 index 0000000000..df9011d8da --- /dev/null +++ b/packages/xfce/xfdesktop/relocation-and-memleak.patch @@ -0,0 +1,49 @@ +Patch taken from Gentoo at http://overlays.gentoo.org/svn/proj/alt/trunk/prefix-overlay/xfce-base/xfdesktop/files/ + +Included by: Otavio Salvador <otavio@ossystems.com.br> + +diff -ur xfdesktop-4.4.2.orig/modules/menu/desktop-menu-dentry.c xfdesktop-4.4.2/modules/menu/desktop-menu-dentry.c +--- xfdesktop-4.4.2.orig/modules/menu/desktop-menu-dentry.c 2007-11-17 21:31:43.000000000 +0200 ++++ xfdesktop-4.4.2/modules/menu/desktop-menu-dentry.c 2008-03-21 11:18:59.000000000 +0200 +@@ -173,7 +173,8 @@ + if(cmpname && g_ascii_strcasecmp(name, cmpname) < 0) + break; + } +- ++ g_list_free(items); ++ + gtk_menu_shell_insert(menu_shell, mi, i); + + return i; +diff -ur xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.c xfdesktop-4.4.2/modules/menu/desktop-menuspec.c +--- xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.c 2007-11-17 21:31:43.000000000 +0200 ++++ xfdesktop-4.4.2/modules/menu/desktop-menuspec.c 2008-03-21 11:18:59.000000000 +0200 +@@ -203,7 +203,7 @@ + else + foundcat = NULL; + if(!foundcat) { +- g_ptr_array_free(revpath, FALSE); ++ g_ptr_array_free(revpath, TRUE); + revpath = NULL; + break; + } +@@ -220,7 +220,7 @@ + newpath[totlen] = 0; + + g_ptr_array_add(mtfpi->paths, newpath); +- g_ptr_array_free(revpath, FALSE); ++ g_ptr_array_free(revpath, TRUE); + } + } + } +diff -ur xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.h xfdesktop-4.4.2/modules/menu/desktop-menuspec.h +--- xfdesktop-4.4.2.orig/modules/menu/desktop-menuspec.h 2007-11-17 21:31:43.000000000 +0200 ++++ xfdesktop-4.4.2/modules/menu/desktop-menuspec.h 2008-03-21 11:18:56.000000000 +0200 +@@ -82,6 +82,6 @@ + * @param paths A GPtrArray obtained from either menuspec_get_path_simple() or + * menuspec_get_path_multilevel(). + */ +-G_INLINE_FUNC void desktop_menuspec_path_free(GPtrArray *paths); ++void desktop_menuspec_path_free(GPtrArray *paths); + + #endif /* ifdef __MENUSPEC_H__ */ diff --git a/packages/xfce/xfdesktop_4.4.1.bb b/packages/xfce/xfdesktop_4.4.1.bb deleted file mode 100644 index bc35acad2a..0000000000 --- a/packages/xfce/xfdesktop_4.4.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -# xfdesktop OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -FILE_PR = "r2" -require ${PN}.inc diff --git a/packages/xfce/xfdesktop.inc b/packages/xfce/xfdesktop_4.4.2.bb index 35c5ff5954..5b01c16e34 100644 --- a/packages/xfce/xfdesktop.inc +++ b/packages/xfce/xfdesktop_4.4.2.bb @@ -4,9 +4,13 @@ DESCRIPTION="xfce4 Desktop Background Manager" SECTION = "x11/base" -DEPENDS = "virtual/libx11 libxfcegui4 libxfce4mcs libxml2 xfce4-panel" +DEPENDS = "virtual/libx11 libxfcegui4 libxfce4mcs libxml2 xfce4-panel thunar" +FILE_PR = "r1" inherit xfce + +SRC_URI += " file://relocation-and-memleak.patch;patch=1 " + PACKAGES += "xfdesktop-backdrops ${PN}-mcs-plugins" FILES_xfdesktop-backdrops="${datadir}/xfce4/backdrops/*" diff --git a/packages/xfce/xfprint_4.4.1.bb b/packages/xfce/xfprint_4.4.2.bb index 19bfa0dde3..19bfa0dde3 100644 --- a/packages/xfce/xfprint_4.4.1.bb +++ b/packages/xfce/xfprint_4.4.2.bb diff --git a/packages/xfce/xfwm4-themes_4.4.1.bb b/packages/xfce/xfwm4-themes_4.4.1.bb deleted file mode 100644 index c7f45d2b09..0000000000 --- a/packages/xfce/xfwm4-themes_4.4.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -# xfwm4-themes OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -require ${PN}.inc diff --git a/packages/xfce/xfwm4-themes.inc b/packages/xfce/xfwm4-themes_4.4.2.bb index 63c5ab0296..63c5ab0296 100644 --- a/packages/xfce/xfwm4-themes.inc +++ b/packages/xfce/xfwm4-themes_4.4.2.bb diff --git a/packages/xfce/xfwm4_4.4.1.bb b/packages/xfce/xfwm4_4.4.1.bb deleted file mode 100644 index 1d8a176d8a..0000000000 --- a/packages/xfce/xfwm4_4.4.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -# xfwm4 OE build file -# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved -# Released under the MIT license (see COPYING.MIT) - -FILE_PR ="r1" -require ${PN}.inc diff --git a/packages/xfce/xfwm4.inc b/packages/xfce/xfwm4_4.4.2.bb index 211853aa18..8d1a1835cf 100644 --- a/packages/xfce/xfwm4.inc +++ b/packages/xfce/xfwm4_4.4.2.bb @@ -4,7 +4,7 @@ DESCRIPTION="XFCE4 Window Manager" SECTION = "x11/wm" -inherit xfce +inherit xfce update-alternatives FILES_${PN} += "${datadir}/xfwm4/defaults ${datadir}/xfwm4/themes/default.keys/*" @@ -14,7 +14,7 @@ RDEPENDS = "xfwm4-theme-default" EXTRA_OECONF += " --enable-startup-notification" -PACKAGES_DYNAMIC = "xfwm4-theme-*" +PACKAGES_DYNAMIC += "xfwm4-theme-*" python populate_packages_prepend () { themedir = bb.data.expand('${datadir}/themes', d) @@ -25,3 +25,7 @@ PACKAGES += " ${PN}-mcs-plugins" FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/*.so" +ALTERNATIVE_PATH = "${bindir}/xfce4-session" +ALTERNATIVE_NAME = "x-window-manager" +ALTERNATIVE_LINK = "${bindir}/x-window-manager" +ALTERNATIVE_PRIORITY = "10" diff --git a/packages/xorg-xserver/xorg-xserver-common.inc b/packages/xorg-xserver/xorg-xserver-common.inc index 666946b71a..2c16eeacc9 100644 --- a/packages/xorg-xserver/xorg-xserver-common.inc +++ b/packages/xorg-xserver/xorg-xserver-common.inc @@ -13,7 +13,7 @@ resourceproto xineramaproto xtrans evieext libxkbfile libxfont libxau \ libfontenc libxdmcp libxxf86vm libxaw libxmu libxt libxpm libxext libx11 \ libxkbui libxxf86misc libxi libdmx libxtst libxres mesa" -RDEPENDS_${PN} = "hal" +RECOMMENDS_${PN} = "hal" XORG_PN = "xorg-server" SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2 \ |