diff options
Diffstat (limited to 'packages/linux/linux-ezx-2.6.21')
14 files changed, 404 insertions, 99 deletions
diff --git a/packages/linux/linux-ezx-2.6.21/a1200/defconfig b/packages/linux/linux-ezx-2.6.21/a1200/defconfig index ea7475ced2..b40f2f6eba 100755 --- a/packages/linux/linux-ezx-2.6.21/a1200/defconfig +++ b/packages/linux/linux-ezx-2.6.21/a1200/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21.4 -# Sun Sep 9 16:54:53 2007 +# Sat Sep 15 18:27:06 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -592,7 +592,9 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 CONFIG_MTD_EZX=y CONFIG_MTD_EZX_A780=y # CONFIG_MTD_EZX_A780_ALTERNATE is not set +# CONFIG_MTD_EZX_A120 is not set # CONFIG_MTD_EZX_E2 is not set +# CONFIG_MTD_EZX_E6 is not set # CONFIG_MTD_PLATRAM is not set # @@ -793,7 +795,8 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set CONFIG_TOUCHSCREEN_PCAP=y -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=y # # Hardware I/O ports @@ -851,8 +854,8 @@ CONFIG_TS0710_MUX_USB=y # # I2C support # -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y # # I2C Algorithms @@ -864,8 +867,8 @@ CONFIG_I2C_CHARDEV=m # # I2C Hardware Bus support # -CONFIG_I2C_PXA=m -# CONFIG_I2C_PXA_SLAVE is not set +CONFIG_I2C_PXA=y +CONFIG_I2C_PXA_SLAVE=y # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set diff --git a/packages/linux/linux-ezx-2.6.21/a780/defconfig b/packages/linux/linux-ezx-2.6.21/a780/defconfig index 9ea8e88266..f79aaa7e7d 100755 --- a/packages/linux/linux-ezx-2.6.21/a780/defconfig +++ b/packages/linux/linux-ezx-2.6.21/a780/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21.4 -# Sun Sep 9 10:37:45 2007 +# Fri Sep 21 18:10:00 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -152,6 +152,7 @@ CONFIG_PXA_EZX_A780=y # CONFIG_PXA_EZX_E6 is not set CONFIG_EZX_BP=y CONFIG_EZX_PCAP=y +# CONFIG_EZX_EOC is not set CONFIG_EZX_EMU=y CONFIG_EZX_EMU_USB=y # CONFIG_EZX_EMU_UART is not set @@ -589,9 +590,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 # CONFIG_MTD_ARM_INTEGRATOR is not set # CONFIG_MTD_SHARP_SL is not set CONFIG_MTD_EZX=y -CONFIG_MTD_EZX_A780=y -# CONFIG_MTD_EZX_A780_ALTERNATE is not set +# CONFIG_MTD_EZX_A780 is not set +CONFIG_MTD_EZX_A780_ALTERNATE=y +# CONFIG_MTD_EZX_A1200 is not set # CONFIG_MTD_EZX_E2 is not set +# CONFIG_MTD_EZX_E6 is not set # CONFIG_MTD_PLATRAM is not set # @@ -792,7 +795,8 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set CONFIG_TOUCHSCREEN_PCAP=y -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=y # # Hardware I/O ports @@ -1018,6 +1022,9 @@ CONFIG_FB_CFB_IMAGEBLIT=y # # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y +CONFIG_FB_PXA_LCD_QVGA=y +# CONFIG_FB_PXA_LCD_VGA is not set +CONFIG_FB_PXA_OVERLAY=y CONFIG_FB_PXA_PARAMETERS=y # CONFIG_FB_MBX is not set # CONFIG_FB_VIRTUAL is not set diff --git a/packages/linux/linux-ezx-2.6.21/e680/defconfig b/packages/linux/linux-ezx-2.6.21/e680/defconfig index 770df7f34c..94947cceb3 100755 --- a/packages/linux/linux-ezx-2.6.21/e680/defconfig +++ b/packages/linux/linux-ezx-2.6.21/e680/defconfig @@ -792,7 +792,8 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set CONFIG_TOUCHSCREEN_PCAP=y -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=y # # Hardware I/O ports diff --git a/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX b/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX index 7e7e0f2898..c6d90c61b9 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX +++ b/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX @@ -8,12 +8,18 @@ # in your environment. # -PHONES = a780 e680 a1200 e2 e6 +PHONES = a780 e680 a1200 e6 e2 CROSS_COMPILE ?= /home/wyrm/ezx/dev/cross/bin/arm-angstrom-linux-gnueabi- QUILT_PATCHES ?= patches +LV ?= ezxdev # replace LOCALVERSION string +J ?= 2 # simultaneous jobs +SIG ?= 0 # BOOL sign md5sums file + DATE = $(shell date +%Y%m%d) +DEPLOY_SERVER ?= people.openezx.org +DEPLOY_DIR ?= public_html/images/$(DATE)/ all: $(foreach p, $(PHONES), zImage-$(p) modules-$(p).tar.gz) @@ -21,8 +27,27 @@ zImages: $(foreach p, $(PHONES), zImage-$(p)) modules: $(foreach p, $(PHONES), modules-$(p).tar.gz) +config: $(foreach p, $(PHONES), config-$(p)) + +config-%: $(QUILT_PATCHES)/defconfig-% + cp $< .config + make ARCH=arm oldconfig + cp .config $< + +deploy: release + ssh $(DEPLOY_SERVER) \ + mkdir -p $(DEPLOY_DIR) + scp ezxrelease-$(DATE).tar $(DEPLOY_SERVER):$(DEPLOY_DIR) + ssh $(DEPLOY_SERVER) \ + cd $(DEPLOY_DIR)\; \ + tar -xf ezxrelease-$(DATE).tar\; \ + rm -f ezxrelease-$(DATE).tar + release: $(foreach p, $(PHONES), tag-$(p)) - cat md5sums.tmp | gpg --clearsign > md5sums + cp md5sums.tmp md5sums + test "$(SIG)" = "1" && \ + cat md5sums.tmp | gpg --clearsign > md5sums \ + ; echo tar -rf ezxrelease.tar md5sums rm -f md5sums.tmp md5sums mv ezxrelease.tar ezxrelease-$(DATE).tar @@ -30,22 +55,23 @@ release: $(foreach p, $(PHONES), tag-$(p)) tag-%: zImage-% modules-%.tar.gz p=$(patsubst tag-%,%,$@) && \ tag=$(shell cat include/config/kernel.release)-$(DATE) && \ - cp zImage-$$p zImage-$$tag-$$p && \ - cp modules-$$p.tar.gz modules-$$tag-$$p.tar.gz && \ + mv zImage-$$p zImage-$$tag-$$p && \ + mv modules-$$p.tar.gz modules-$$tag-$$p.tar.gz && \ tar -rf ezxrelease.tar zImage-$$tag-$$p modules-$$tag-$$p.tar.gz && \ md5sum zImage-$$tag-$$p modules-$$tag-$$p.tar.gz >> md5sums.tmp && \ rm -f zImage-$$tag-$$p modules-$$tag-$$p.tar.gz zImage-%: $(QUILT_PATCHES)/defconfig-% - cp $< ./.config - make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) zImage + cat $< | sed 's/LOCALVERSION=".*"$$/LOCALVERSION="-$(LV)"/' > .config + make -j$(J) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) zImage mv arch/arm/boot/zImage $@ modules-%.tar.gz: $(QUILT_PATCHES)/defconfig-% - cp $< ./.config + cat $< | sed 's/LOCALVERSION=".*"$$/LOCALVERSION="-$(LV)"/' > .config -find . -name "*.ko" -print0 | xargs -r0 rm - mkdir /tmp/$@ - make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) \ - INSTALL_MOD_PATH=/tmp/$@ modules modules_install - tar -C /tmp/$@ -czf $@ . - rm -rf /tmp/$@ + mkdir -p Makefile.OpenEZX-tmp/$@ + make -j$(J) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules + make -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) \ + INSTALL_MOD_PATH=Makefile.OpenEZX-tmp/$@ modules_install + tar -C Makefile.OpenEZX-tmp/$@ -czf $@ . + rm -rf Makefile.OpenEZX-tmp/ diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch index 577aa66303..e6146058a0 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 22:15:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-09 13:29:56.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:38:52.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:48:23.000000000 -0300 @@ -25,6 +25,7 @@ #include <asm/arch/mmc.h> @@ -10,8 +10,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c extern void ezx_lcd_power(int, struct fb_var_screeninfo *); extern void ezx_backlight_power(int); -@@ -227,11 +228,69 @@ - .resource = pcap_ts_resources, +@@ -203,8 +204,65 @@ + }, }; + @@ -72,11 +72,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + static struct platform_device *devices[] __initdata = { &a1200_pcap_device, - &pcap_ts_device, + &a1200_eoc_device, }; -+ static void __init a1200_init(void) - { - set_pxa_fb_info(&a1200_fb_info); diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch index a8c8f2ee29..2327257507 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch @@ -1,8 +1,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:54:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:55:10.000000000 -0300 -@@ -203,8 +203,33 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:50:31.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:51:06.000000000 -0300 +@@ -260,9 +260,34 @@ }, }; @@ -32,6 +32,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + static struct platform_device *devices[] __initdata = { &a1200_pcap_device, + &a1200_eoc_device, + &pcap_ts_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch index 79c60c8ca2..f6e152c735 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-07 22:15:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-09 13:29:56.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:38:52.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:49:42.000000000 -0300 @@ -25,6 +25,7 @@ #include <asm/arch/mmc.h> @@ -10,8 +10,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c extern void ezx_lcd_power(int, struct fb_var_screeninfo *); extern void ezx_backlight_power(int); -@@ -227,11 +228,69 @@ - .resource = pcap_ts_resources, +@@ -203,8 +204,65 @@ + }, }; + @@ -72,11 +72,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + static struct platform_device *devices[] __initdata = { &e6_pcap_device, - &pcap_ts_device, + &e6_eoc_device, }; -+ static void __init e6_init(void) - { - set_pxa_fb_info(&e6_fb_info); diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch index 6472f77886..a39b782300 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch @@ -1,8 +1,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-07 11:54:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-07 11:55:10.000000000 -0300 -@@ -203,8 +203,33 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:50:31.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:51:40.000000000 -0300 +@@ -260,9 +260,34 @@ }, }; @@ -32,6 +32,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + static struct platform_device *devices[] __initdata = { &e6_pcap_device, + &e6_eoc_device, + &pcap_ts_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch index ff3413f062..05748e681c 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-06-28 19:44:28.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-06-28 19:44:58.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-09-21 23:57:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-09-21 23:57:49.000000000 -0300 @@ -22,6 +22,10 @@ #include <asm/arch/pxa-regs.h> #include <asm/arch/ohci.h> @@ -29,8 +29,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c } Index: linux-2.6.21/arch/arm/mach-pxa/pm.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-06-28 19:44:28.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-06-28 19:44:58.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-09-21 23:57:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-09-21 23:57:49.000000000 -0300 @@ -24,6 +24,10 @@ #include <asm/arch/lubbock.h> #include <asm/mach/time.h> @@ -58,8 +58,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pm.c RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-28 19:44:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 19:44:58.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-09-21 23:57:48.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-09-22 00:07:34.000000000 -0300 @@ -19,6 +19,7 @@ #include <asm/arch/pxa-regs.h> #include <asm/arch/ohci.h> @@ -68,49 +68,33 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c #include "generic.h" -@@ -122,8 +123,69 @@ +@@ -122,8 +123,53 @@ &ezxbp_device, }; +/* PM */ +extern int bp_handshake_passed(void); + -+#define POWER_OFF_TIMEOUT (2*60*HZ) -+ +static void ezx_reboot_poweroff(char mode) +{ -+#ifdef CONFIG_EZX_BP -+ unsigned long start = jiffies; -+ -+ printk("Waiting for BP to turn off. This can take some time...\n"); + *(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = NO_FLAG; + cpu_proc_fin(); + -+ do { -+ /* -+ * Turn off gracefully. Wait BP turn off first, and then -+ * properly turn off. -+ */ -+ if (pxa_gpio_get_value(GPIO_BB_WDI) == 0) { -+ *(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = WDI_FLAG; ++#ifdef CONFIG_EZX_BP ++ if (pxa_gpio_get_value(GPIO_BB_WDI) == 0) { ++ *(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = WDI_FLAG; + -+ /* reset BP */ -+ pxa_gpio_set_value(GPIO_BB_RESET, 0); -+ mdelay(1); -+ pxa_gpio_set_value(GPIO_BB_RESET, 1); ++ /* reset BP */ ++ pxa_gpio_set_value(GPIO_BB_RESET, 0); ++ mdelay(1); ++ pxa_gpio_set_value(GPIO_BB_RESET, 1); + -+ if (mode == 'z') -+ arch_reset('h'); -+ break; -+ } -+ /* Just turn it off! */ -+ if (!bp_handshake_passed() || !pxa_gpio_get_value(GPIO_BB_WDI2) -+ || (jiffies - start) >= POWER_OFF_TIMEOUT) { -+ break; ++ if (mode == 'z') { ++ arch_reset('h'); ++ while(1); + } -+ } while(1); ++ } +#endif -+ + if (mode == 'z') + /* Panic! Ask PCAP to turn both processors off */ + pxa_gpio_set_value(GPIO_WDI_AP, 0); diff --git a/packages/linux/linux-ezx-2.6.21/patches/index.html b/packages/linux/linux-ezx-2.6.21/patches/index.html index 4d57380e0c..bbbb40d590 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/index.html +++ b/packages/linux/linux-ezx-2.6.21/patches/index.html @@ -1,9 +1,10 @@ -<html><head><title>Revision 2047: /trunk/src/kernel-2.6/patches</title></head> +<html><head><title>Revision 2059: /trunk/src/kernel-2.6/patches</title></head> <body> - <h2>Revision 2047: /trunk/src/kernel-2.6/patches</h2> + <h2>Revision 2059: /trunk/src/kernel-2.6/patches</h2> <ul> <li><a href="../">..</a></li> <li><a href="Makefile.OpenEZX">Makefile.OpenEZX</a></li> + <li><a href="a1200-eoc.patch">a1200-eoc.patch</a></li> <li><a href="a1200-mci.patch">a1200-mci.patch</a></li> <li><a href="a1200-pcap.patch">a1200-pcap.patch</a></li> <li><a href="a1200-ts.patch">a1200-ts.patch</a></li> @@ -15,6 +16,7 @@ <li><a href="a780-pcap.patch">a780-pcap.patch</a></li> <li><a href="a780-ts.patch">a780-ts.patch</a></li> <li><a href="a780-vibrator.patch">a780-vibrator.patch</a></li> + <li><a href="asoc-fix-loopback.patch">asoc-fix-loopback.patch</a></li> <li><a href="asoc-pxa-ssp.patch">asoc-pxa-ssp.patch</a></li> <li><a href="defconfig-a1200">defconfig-a1200</a></li> <li><a href="defconfig-a780">defconfig-a780</a></li> @@ -22,6 +24,10 @@ <li><a href="defconfig-e6">defconfig-e6</a></li> <li><a href="defconfig-e680">defconfig-e680</a></li> <li><a href="dmesg-a780.log">dmesg-a780.log</a></li> + <li><a href="e6-eoc.patch">e6-eoc.patch</a></li> + <li><a href="e6-mci.patch">e6-mci.patch</a></li> + <li><a href="e6-pcap.patch">e6-pcap.patch</a></li> + <li><a href="e6-ts.patch">e6-ts.patch</a></li> <li><a href="e680-emu.patch">e680-emu.patch</a></li> <li><a href="e680-kbd.patch">e680-kbd.patch</a></li> <li><a href="e680-leds.patch">e680-leds.patch</a></li> @@ -35,10 +41,13 @@ <li><a href="ezx-core.patch">ezx-core.patch</a></li> <li><a href="ezx-emu.patch">ezx-emu.patch</a></li> <li><a href="ezx-enable-stuart.patch">ezx-enable-stuart.patch</a></li> + <li><a href="ezx-eoc.patch">ezx-eoc.patch</a></li> <li><a href="ezx-mtd-map.patch">ezx-mtd-map.patch</a></li> <li><a href="ezx-pcap.patch">ezx-pcap.patch</a></li> <li><a href="ezx-pm.patch">ezx-pm.patch</a></li> <li><a href="ezx-serial-bug-workaround.patch">ezx-serial-bug-workaround.patch</a></li> + <li><a href="i2c-core-fix-a1200.patch">i2c-core-fix-a1200.patch</a></li> + <li><a href="mtdfix.patch">mtdfix.patch</a></li> <li><a href="mux-fix-init-errorpath.patch">mux-fix-init-errorpath.patch</a></li> <li><a href="mux-fix-makefile.patch">mux-fix-makefile.patch</a></li> <li><a href="mux-fix-tty-driver.patch">mux-fix-tty-driver.patch</a></li> @@ -53,6 +62,7 @@ <li><a href="patch-2.6.21.4">patch-2.6.21.4</a></li> <li><a href="pcap-ts.patch">pcap-ts.patch</a></li> <li><a href="pxa-kbd.patch">pxa-kbd.patch</a></li> + <li><a href="pxa27x-udc-fix-a1200.patch">pxa27x-udc-fix-a1200.patch</a></li> <li><a href="pxa27x-udc-support.2.patch">pxa27x-udc-support.2.patch</a></li> <li><a href="series">series</a></li> </ul> diff --git a/packages/linux/linux-ezx-2.6.21/patches/lcd_18BPP_support.diff b/packages/linux/linux-ezx-2.6.21/patches/lcd_18BPP_support.diff new file mode 100644 index 0000000000..a0d89bfee5 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/lcd_18BPP_support.diff @@ -0,0 +1,270 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-08-18 18:35:12.000000000 +0800 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-08-18 18:36:38.000000000 +0800 +@@ -122,7 +122,7 @@ + .pixclock = 192308, + .xres = 240, + .yres = 320, +- .bpp = 8, ++ .bpp = 18, + .hsync_len = 10, + .left_margin = 20, + .right_margin = 10, +@@ -135,8 +135,8 @@ + static struct pxafb_mach_info a1200_fb_info = { + .modes = &mode_a1200, + .num_modes = 1, +- .lccr0 = 0x022008B8, +- .lccr3 = 0xC130FF13, ++ .lccr0 = 0x002008b8, ++ .lccr3 = 0xC630FF13, + .pxafb_backlight_power = ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, + }; +Index: linux-2.6.21/drivers/video/cfbfillrect.c +=================================================================== +--- linux-2.6.21.orig/drivers/video/cfbfillrect.c 2007-08-18 18:38:36.000000000 +0800 ++++ linux-2.6.21/drivers/video/cfbfillrect.c 2007-08-18 18:39:03.000000000 +0800 +@@ -87,7 +87,10 @@ + return 0x00001001ul*pixel; + case 16: + return 0x00010001ul*pixel; ++ case 18: ++ case 19: + case 24: ++ case 25: + return 0x00000001ul*pixel; + case 32: + return 0x00000001ul*pixel; +Index: linux-2.6.21/drivers/video/pxafb.c +=================================================================== +--- linux-2.6.21.orig/drivers/video/pxafb.c 2007-08-18 17:58:11.000000000 +0800 ++++ linux-2.6.21/drivers/video/pxafb.c 2007-08-18 18:46:50.000000000 +0800 +@@ -9,6 +9,8 @@ + * which in turn is + * Based on acornfb.c Copyright (C) Russell King. + * ++ * Added 18,19,24,25 BPP support by Alex Zhang <celeber2@gmail.com> ++ * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive for + * more details. +@@ -190,6 +192,10 @@ + case 4: ret = LCCR3_4BPP; break; + case 8: ret = LCCR3_8BPP; break; + case 16: ret = LCCR3_16BPP; break; ++ case 18: ret = LCCR3_18BPP; break; ++ case 19: ret = LCCR3_19BPP; break; ++ case 24: ret = LCCR3_24BPP; break; ++ case 25: ret = LCCR3_25BPP; break; + } + return ret; + } +@@ -274,6 +280,8 @@ + if (var->yres < MIN_YRES) + var->yres = MIN_YRES; + ++ if (var->bits_per_pixel == 32) var->bits_per_pixel = 18; // ALEX cheats Xserver ++ + if (inf->fixed_modes) { + struct pxafb_mode_info *mode; + +@@ -306,6 +314,26 @@ + var->green.offset = 5; var->green.length = 6; + var->blue.offset = 0; var->blue.length = 5; + var->transp.offset = var->transp.length = 0; ++ } else if (var->bits_per_pixel == 18) { ++ var->red.offset = 12; var->red.length = 6; ++ var->green.offset = 6; var->green.length = 6; ++ var->blue.offset = 0; var->blue.length = 6; ++ var->transp.offset = var->transp.length = 0; ++ } else if (var->bits_per_pixel == 19) { ++ var->red.offset = 12; var->red.length = 6; ++ var->green.offset = 6; var->green.length = 6; ++ var->blue.offset = 0; var->blue.length = 6; ++ var->transp.offset= 18; var->transp.length = 1; ++ } else if (var->bits_per_pixel == 24) { ++ var->red.offset = 16; var->red.length = 8; ++ var->green.offset = 8; var->green.length = 8; ++ var->blue.offset = 0; var->blue.length = 8; ++ var->transp.offset = var->transp.length = 0; ++ } else if (var->bits_per_pixel == 25) { ++ var->red.offset = 16; var->red.length = 8; ++ var->green.offset = 8; var->green.length = 8; ++ var->blue.offset = 0; var->blue.length = 8; ++ var->transp.offset= 24; var->transp.length = 1; + } else { + var->red.offset = var->green.offset = var->blue.offset = var->transp.offset = 0; + var->red.length = 8; +@@ -341,7 +369,12 @@ + + pr_debug("pxafb: set_par\n"); + +- if (var->bits_per_pixel == 16) ++ if (var->bits_per_pixel == 16 ++ || var->bits_per_pixel == 18 ++ || var->bits_per_pixel == 19 ++ || var->bits_per_pixel == 24 ++ || var->bits_per_pixel == 25 ++ ) + fbi->fb.fix.visual = FB_VISUAL_TRUECOLOR; + else if (!fbi->cmap_static) + fbi->fb.fix.visual = FB_VISUAL_PSEUDOCOLOR; +@@ -354,12 +387,25 @@ + fbi->fb.fix.visual = FB_VISUAL_STATIC_PSEUDOCOLOR; + } + +- fbi->fb.fix.line_length = var->xres_virtual * +- var->bits_per_pixel / 8; +- if (var->bits_per_pixel == 16) +- fbi->palette_size = 0; +- else +- fbi->palette_size = var->bits_per_pixel == 1 ? 4 : 1 << var->bits_per_pixel; ++ switch (var->bits_per_pixel) { ++ case 16: ++ fbi->fb.fix.line_length = var->xres_virtual * 2; ++ fbi->palette_size = 0; ++ break; ++ case 18: ++ case 19: ++ fbi->fb.fix.line_length = var->xres_virtual * 3; ++ fbi->palette_size = 0; ++ break; ++ case 24: ++ case 25: ++ fbi->fb.fix.line_length = var->xres_virtual * 4; ++ fbi->palette_size = 0; ++ break; ++ default: ++ fbi->fb.fix.line_length = var->xres_virtual * var->bits_per_pixel / 8; ++ fbi->palette_size = var->bits_per_pixel == 1 ? 4 : 1 << var->bits_per_pixel; ++ } + + palette_mem_size = fbi->palette_size * sizeof(u16); + +@@ -373,8 +419,13 @@ + */ + pxafb_set_truecolor(fbi->fb.fix.visual == FB_VISUAL_TRUECOLOR); + +- if (fbi->fb.var.bits_per_pixel == 16) +- fb_dealloc_cmap(&fbi->fb.cmap); ++ if (fbi->fb.var.bits_per_pixel == 16 ++ || fbi->fb.var.bits_per_pixel == 18 ++ || fbi->fb.var.bits_per_pixel == 19 ++ || fbi->fb.var.bits_per_pixel == 24 ++ || fbi->fb.var.bits_per_pixel == 25 ++ ) ++ fb_dealloc_cmap(&fbi->fb.cmap); + else + fb_alloc_cmap(&fbi->fb.cmap, 1<<fbi->fb.var.bits_per_pixel, 0); + +@@ -582,6 +633,9 @@ + case 4: + case 8: + case 16: ++ case 18: ++ case 24: ++ case 25: + break; + default: + printk(KERN_ERR "%s: invalid bit depth %d\n", +@@ -678,7 +732,12 @@ + fbi->dmadesc_palette_cpu->fidr = 0; + fbi->dmadesc_palette_cpu->ldcmd = (fbi->palette_size * 2) | LDCMD_PAL; + +- if (var->bits_per_pixel == 16) { ++ if (var->bits_per_pixel == 16 ++ || var->bits_per_pixel == 18 ++ || var->bits_per_pixel == 19 ++ || var->bits_per_pixel == 24 ++ || var->bits_per_pixel == 25 ++ ) { + /* palette shouldn't be loaded in true-color mode */ + fbi->dmadesc_fbhigh_cpu->fdadr = fbi->dmadesc_fbhigh_dma; + fbi->fdadr0 = fbi->dmadesc_fbhigh_dma; /* no pal just fbhigh */ +@@ -786,6 +845,11 @@ + + for (gpio = 58; ldd_bits; gpio++, ldd_bits--) + pxa_gpio_mode(gpio | GPIO_ALT_FN_2_OUT); ++ if (fbi->fb.var.bits_per_pixel == 18) { ++ pxa_gpio_mode(GPIO86_LDD_16_MD); ++ pxa_gpio_mode(GPIO87_LDD_17_MD); ++ } ++ + pxa_gpio_mode(GPIO74_LCD_FCLK_MD); + pxa_gpio_mode(GPIO75_LCD_LCLK_MD); + pxa_gpio_mode(GPIO76_LCD_PCLK_MD); +@@ -1154,9 +1218,17 @@ + fbi->task_state = (u_char)-1; + + for (i = 0; i < inf->num_modes; i++) { +- smemlen = mode[i].xres * mode[i].yres * mode[i].bpp / 8; ++ if (mode[i].bpp <= 16) /* 8, 16 bpp */ ++ smemlen = mode[i].xres * mode[i].yres * mode[i].bpp / 8; ++ else if (mode[i].bpp > 19) /* 24, 25 bpp */ ++ smemlen = mode[i].xres * mode[i].yres * 4; ++ else /* 18, 19 bpp */ ++ /* packed format */ ++ smemlen = mode[i].xres * mode[i].yres * 3; ++ + if (smemlen > fbi->fb.fix.smem_len) + fbi->fb.fix.smem_len = smemlen; ++ dev_dbg("ALEX::bpp=%d, smemlen=%d, fbi->fb.fix.smem_len=%d\n", mode[i].bpp, smemlen, fbi->fb.fix.smem_len); + } + + init_waitqueue_head(&fbi->ctrlr_wait); +@@ -1225,6 +1297,10 @@ + case 4: + case 8: + case 16: ++ case 18: ++ case 19: ++ case 24: ++ case 25: + inf->modes[0].bpp = bpp; + dev_info(dev, "overriding bit depth: %d\n", bpp); + break; +@@ -1423,6 +1499,9 @@ + */ + set_ctrlr_state(fbi, C_ENABLE); + ++ LCCR4 |= (1 << 31); ++ LCCR4 |= (5 << 17); ++ + return 0; + + failed: +Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h +=================================================================== +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-08-18 18:26:01.000000000 +0800 ++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-08-18 18:32:29.000000000 +0800 +@@ -1485,6 +1485,8 @@ + #define GPIO84_NSSP_TX (84 | GPIO_ALT_FN_1_OUT) + #define GPIO84_NSSP_RX (84 | GPIO_ALT_FN_2_IN) + #define GPIO85_nPCE_1_MD (85 | GPIO_ALT_FN_1_OUT) ++#define GPIO86_LDD_16_MD (86 | GPIO_ALT_FN_2_OUT) ++#define GPIO87_LDD_17_MD (87 | GPIO_ALT_FN_2_OUT) + #define GPIO88_SRXD2_MD (88 | GPIO_ALT_FN_2_IN) + #define GPIO89_SRXD3_MD (89 | GPIO_ALT_FN_1_IN) + #define GPIO90_USB_P3_5 (90 | GPIO_ALT_FN_2_IN) +@@ -1869,6 +1871,7 @@ + #define LCCR1 __REG(0x44000004) /* LCD Controller Control Register 1 */ + #define LCCR2 __REG(0x44000008) /* LCD Controller Control Register 2 */ + #define LCCR3 __REG(0x4400000C) /* LCD Controller Control Register 3 */ ++#define LCCR4 __REG(0x44000010) /* LCD Controller Control Register 4 */ + #define DFBR0 __REG(0x44000020) /* DMA Channel 0 Frame Branch Register */ + #define DFBR1 __REG(0x44000024) /* DMA Channel 1 Frame Branch Register */ + #define LCSR __REG(0x44000038) /* LCD Controller Status Register */ +@@ -1881,6 +1884,11 @@ + #define LCCR3_4BPP (2 << 24) + #define LCCR3_8BPP (3 << 24) + #define LCCR3_16BPP (4 << 24) ++#define LCCR3_18BPP_UNPACKED (5 << 24) ++#define LCCR3_18BPP (6 << 24) ++#define LCCR3_19BPP (8 << 24) ++#define LCCR3_24BPP (9 << 24) ++#define LCCR3_25BPP (10<< 24) + + #define FDADR0 __REG(0x44000200) /* DMA Channel 0 Frame Descriptor Address Register */ + #define FSADR0 __REG(0x44000204) /* DMA Channel 0 Frame Source Address Register */ diff --git a/packages/linux/linux-ezx-2.6.21/patches/series b/packages/linux/linux-ezx-2.6.21/patches/series index ecdc30b5fe..aa95fcbc78 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/series +++ b/packages/linux/linux-ezx-2.6.21/patches/series @@ -1,4 +1,5 @@ patch-2.6.21.4 +mtdfix.patch ezx-core.patch # ezx-core TODO: should be ezx-common @@ -25,10 +26,12 @@ ezx-pcap.patch a780-pcap.patch e680-pcap.patch a1200-pcap.patch +e6-pcap.patch a780-mci.patch e680-mci.patch a1200-mci.patch +e6-mci.patch pxa27x-udc-support.2.patch @@ -36,23 +39,18 @@ ezx-emu.patch # ezx-emu TODO: # userspace interface for controling emu # read adc to find which accessory is plugged - a780-emu.patch e680-emu.patch +ezx-eoc.patch +a1200-eoc.patch +e6-eoc.patch + ezx-mtd-map.patch -# ezx-mtd-map TODO: -# at least the original partition should go on the ezx-phone.c file ezx-serial-bug-workaround.patch -# ezx-serial-bug TODO: -# does anyone have a phone with this bug? pxa-kbd.patch -# pxa-kbd TODO: -# test multi-key presses -# ask Harald about driver status/sending mainline - a780-kbd.patch e680-kbd.patch @@ -60,6 +58,7 @@ pcap-ts.patch a780-ts.patch e680-ts.patch a1200-ts.patch +e6-ts.patch ezx-backlight.patch @@ -83,6 +82,11 @@ mux-fix-tty-driver.patch mux-linux-2.6.21-fix.patch #mux-ifdef-ezx-features.patch #mux_debug.patch + +asoc-pxa-ssp.patch +asoc-fix-loopback.patch +ezx-asoc.patch + # mux_cli TODO: # merge patches # try to understand the code and cleanup (painful) @@ -92,6 +96,8 @@ mux-linux-2.6.21-fix.patch # can NOT run as module (yet) # pxa-ohci, ts0710_mux, ts0710_mux_usb, ezx-bp +# the folowing break too much stuff on other phones. +# i2c-core-fix-a1200.patch (see ezx-eoc.c) +# pxa27x-udc-fix-a1200.patch (see ezx-a1200.c) + # incomplete -asoc-pxa-ssp.patch -ezx-asoc.patch diff --git a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig index d4a6e25c00..8d0f391c08 100755 --- a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig +++ b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig @@ -792,7 +792,8 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set CONFIG_TOUCHSCREEN_PCAP=y -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=y # # Hardware I/O ports diff --git a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig index 95a5a25297..6351d3a45b 100755 --- a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig +++ b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21.4 -# Sun Sep 9 16:52:39 2007 +# Sat Sep 15 19:35:32 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -592,7 +592,9 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 CONFIG_MTD_EZX=y CONFIG_MTD_EZX_A780=y # CONFIG_MTD_EZX_A780_ALTERNATE is not set +# CONFIG_MTD_EZX_A1200 is not set # CONFIG_MTD_EZX_E2 is not set +# CONFIG_MTD_EZX_E6 is not set # CONFIG_MTD_PLATRAM is not set # @@ -793,7 +795,8 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set CONFIG_TOUCHSCREEN_PCAP=y -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=y # # Hardware I/O ports @@ -851,8 +854,8 @@ CONFIG_TS0710_MUX_USB=y # # I2C support # -CONFIG_I2C=m -CONFIG_I2C_CHARDEV=m +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y # # I2C Algorithms @@ -864,8 +867,8 @@ CONFIG_I2C_CHARDEV=m # # I2C Hardware Bus support # -CONFIG_I2C_PXA=m -# CONFIG_I2C_PXA_SLAVE is not set +CONFIG_I2C_PXA=y +CONFIG_I2C_PXA_SLAVE=y # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set |