diff options
Diffstat (limited to 'packages/linux')
-rw-r--r-- | packages/linux/linux-handhelds-2.6-2.6.16/hx4700/defconfig | 2 | ||||
-rw-r--r-- | packages/linux/linux-handhelds-2.6_2.6.19-hh5.bb (renamed from packages/linux/linux-handhelds-2.6_2.6.19-hh4.bb) | 0 | ||||
-rw-r--r-- | packages/linux/linux-handhelds-2.6_2.6.19-hh6.bb | 11 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/.mtn2git_empty (renamed from packages/linux/linux-rp-2.6.18+git/.mtn2git_empty) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/add-oz-release-string.patch (renamed from packages/linux/linux-rp-2.6.18+git/add-oz-release-string.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/connectplus-remove-ide-HACK.patch (renamed from packages/linux/linux-rp-2.6.18+git/connectplus-remove-ide-HACK.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-akita (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-akita) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-c7x0 (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-c7x0) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-collie (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-collie) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-hx2000 (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-hx2000) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-poodle (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-poodle) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-qemuarm (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-qemuarm) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-qemux86 (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-qemux86) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-spitz (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-spitz) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/defconfig-tosa (renamed from packages/linux/linux-rp-2.6.18+git/defconfig-tosa) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/hrw-pcmcia-ids-r5.patch (renamed from packages/linux/linux-rp-2.6.18+git/hrw-pcmcia-ids-r5.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/pxa-serial-hack.patch (renamed from packages/linux/linux-rp-2.6.18+git/pxa-serial-hack.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch (renamed from packages/linux/linux-rp-2.6.18+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/sharpsl-pm-postresume-r1.patch (renamed from packages/linux/linux-rp-2.6.18+git/sharpsl-pm-postresume-r1.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/squashfs3.0-2.6.15.patch (renamed from packages/linux/linux-rp-2.6.18+git/squashfs3.0-2.6.15.patch) | 2 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/tmio-nand-r7.patch (renamed from packages/linux/linux-rp-2.6.18+git/tmio-nand-r7.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/tmio-ohci-r6.patch (renamed from packages/linux/linux-rp-2.6.18+git/tmio-ohci-r6.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/tmio-tc6393-r8.patch (renamed from packages/linux/linux-rp-2.6.18+git/tmio-tc6393-r8.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/tosa-keyboard-r18.patch (renamed from packages/linux/linux-rp-2.6.18+git/tosa-keyboard-r18.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/tosa-lcdnoise-r1.patch (renamed from packages/linux/linux-rp-2.6.18+git/tosa-lcdnoise-r1.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/tosa-tmio-lcd-r10.patch (renamed from packages/linux/linux-rp-2.6.18+git/tosa-tmio-lcd-r10.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/wm9712-reset-loop-r2.patch (renamed from packages/linux/linux-rp-2.6.18+git/wm9712-reset-loop-r2.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/wm9712-suspend-cold-res-r2.patch (renamed from packages/linux/linux-rp-2.6.18+git/wm9712-suspend-cold-res-r2.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp-2.6.19+git/wm97xx-lcdnoise-r0.patch (renamed from packages/linux/linux-rp-2.6.18+git/wm97xx-lcdnoise-r0.patch) | 0 | ||||
-rw-r--r-- | packages/linux/linux-rp_2.6.19+git.bb (renamed from packages/linux/linux-rp_2.6.18+git.bb) | 14 | ||||
-rw-r--r-- | packages/linux/linux-rp_2.6.19.bb | 8 | ||||
-rw-r--r-- | packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch | 532 | ||||
-rw-r--r-- | packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch | 529 | ||||
-rw-r--r-- | packages/linux/linux-smdk2440_2.6.19.bb (renamed from packages/linux/linux-smdk2440_2.6.18.bb) | 5 | ||||
-rw-r--r-- | packages/linux/mnci-ramses_2.4.21-rmk2-pxa1.bb | 2 |
36 files changed, 1090 insertions, 15 deletions
diff --git a/packages/linux/linux-handhelds-2.6-2.6.16/hx4700/defconfig b/packages/linux/linux-handhelds-2.6-2.6.16/hx4700/defconfig index 7fadc7ae3a..ea1a929163 100644 --- a/packages/linux/linux-handhelds-2.6-2.6.16/hx4700/defconfig +++ b/packages/linux/linux-handhelds-2.6-2.6.16/hx4700/defconfig @@ -1405,7 +1405,7 @@ CONFIG_CLASS_LEDS=y # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y # CONFIG_EXT2_FS_SECURITY is not set diff --git a/packages/linux/linux-handhelds-2.6_2.6.19-hh4.bb b/packages/linux/linux-handhelds-2.6_2.6.19-hh5.bb index b34d4630a0..b34d4630a0 100644 --- a/packages/linux/linux-handhelds-2.6_2.6.19-hh4.bb +++ b/packages/linux/linux-handhelds-2.6_2.6.19-hh5.bb diff --git a/packages/linux/linux-handhelds-2.6_2.6.19-hh6.bb b/packages/linux/linux-handhelds-2.6_2.6.19-hh6.bb new file mode 100644 index 0000000000..b34d4630a0 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6_2.6.19-hh6.bb @@ -0,0 +1,11 @@ +SECTION = "kernel" +DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices." +LICENSE = "GPL" +PR = "r0" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \ + file://defconfig" + +require linux-handhelds-2.6.inc diff --git a/packages/linux/linux-rp-2.6.18+git/.mtn2git_empty b/packages/linux/linux-rp-2.6.19+git/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-rp-2.6.18+git/.mtn2git_empty +++ b/packages/linux/linux-rp-2.6.19+git/.mtn2git_empty diff --git a/packages/linux/linux-rp-2.6.18+git/add-oz-release-string.patch b/packages/linux/linux-rp-2.6.19+git/add-oz-release-string.patch index a80a1d5528..a80a1d5528 100644 --- a/packages/linux/linux-rp-2.6.18+git/add-oz-release-string.patch +++ b/packages/linux/linux-rp-2.6.19+git/add-oz-release-string.patch diff --git a/packages/linux/linux-rp-2.6.18+git/connectplus-remove-ide-HACK.patch b/packages/linux/linux-rp-2.6.19+git/connectplus-remove-ide-HACK.patch index 4414b21191..4414b21191 100644 --- a/packages/linux/linux-rp-2.6.18+git/connectplus-remove-ide-HACK.patch +++ b/packages/linux/linux-rp-2.6.19+git/connectplus-remove-ide-HACK.patch diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-akita b/packages/linux/linux-rp-2.6.19+git/defconfig-akita index 249466ac87..249466ac87 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-akita +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-akita diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-c7x0 b/packages/linux/linux-rp-2.6.19+git/defconfig-c7x0 index 1d702f60c0..1d702f60c0 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-c7x0 +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-c7x0 diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-collie b/packages/linux/linux-rp-2.6.19+git/defconfig-collie index f488d42d93..f488d42d93 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-collie +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-collie diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-hx2000 b/packages/linux/linux-rp-2.6.19+git/defconfig-hx2000 index ea56989b75..ea56989b75 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-hx2000 +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-hx2000 diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-poodle b/packages/linux/linux-rp-2.6.19+git/defconfig-poodle index deacd170f2..deacd170f2 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-poodle +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-poodle diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-qemuarm b/packages/linux/linux-rp-2.6.19+git/defconfig-qemuarm index abb6726556..abb6726556 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-qemuarm +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-qemuarm diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-qemux86 b/packages/linux/linux-rp-2.6.19+git/defconfig-qemux86 index fb66874b90..fb66874b90 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-qemux86 +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-qemux86 diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-spitz b/packages/linux/linux-rp-2.6.19+git/defconfig-spitz index 824fd57aaa..824fd57aaa 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-spitz +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-spitz diff --git a/packages/linux/linux-rp-2.6.18+git/defconfig-tosa b/packages/linux/linux-rp-2.6.19+git/defconfig-tosa index 4144e5cf38..4144e5cf38 100644 --- a/packages/linux/linux-rp-2.6.18+git/defconfig-tosa +++ b/packages/linux/linux-rp-2.6.19+git/defconfig-tosa diff --git a/packages/linux/linux-rp-2.6.18+git/hrw-pcmcia-ids-r5.patch b/packages/linux/linux-rp-2.6.19+git/hrw-pcmcia-ids-r5.patch index b09acacadd..b09acacadd 100644 --- a/packages/linux/linux-rp-2.6.18+git/hrw-pcmcia-ids-r5.patch +++ b/packages/linux/linux-rp-2.6.19+git/hrw-pcmcia-ids-r5.patch diff --git a/packages/linux/linux-rp-2.6.18+git/pxa-serial-hack.patch b/packages/linux/linux-rp-2.6.19+git/pxa-serial-hack.patch index 9ece71331a..9ece71331a 100644 --- a/packages/linux/linux-rp-2.6.18+git/pxa-serial-hack.patch +++ b/packages/linux/linux-rp-2.6.19+git/pxa-serial-hack.patch diff --git a/packages/linux/linux-rp-2.6.18+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch b/packages/linux/linux-rp-2.6.19+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch index 18bf4268fc..18bf4268fc 100644 --- a/packages/linux/linux-rp-2.6.18+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch +++ b/packages/linux/linux-rp-2.6.19+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch diff --git a/packages/linux/linux-rp-2.6.18+git/sharpsl-pm-postresume-r1.patch b/packages/linux/linux-rp-2.6.19+git/sharpsl-pm-postresume-r1.patch index 409daf03e6..409daf03e6 100644 --- a/packages/linux/linux-rp-2.6.18+git/sharpsl-pm-postresume-r1.patch +++ b/packages/linux/linux-rp-2.6.19+git/sharpsl-pm-postresume-r1.patch diff --git a/packages/linux/linux-rp-2.6.18+git/squashfs3.0-2.6.15.patch b/packages/linux/linux-rp-2.6.19+git/squashfs3.0-2.6.15.patch index 097659abad..405d4ec124 100644 --- a/packages/linux/linux-rp-2.6.18+git/squashfs3.0-2.6.15.patch +++ b/packages/linux/linux-rp-2.6.19+git/squashfs3.0-2.6.15.patch @@ -2182,7 +2182,7 @@ Index: git/fs/squashfs/inode.c +static struct inode *squashfs_alloc_inode(struct super_block *sb) +{ + struct squashfs_inode_info *ei; -+ ei = kmem_cache_alloc(squashfs_inode_cachep, SLAB_KERNEL); ++ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); + if (!ei) + return NULL; + return &ei->vfs_inode; diff --git a/packages/linux/linux-rp-2.6.18+git/tmio-nand-r7.patch b/packages/linux/linux-rp-2.6.19+git/tmio-nand-r7.patch index b6ce56eea4..b6ce56eea4 100644 --- a/packages/linux/linux-rp-2.6.18+git/tmio-nand-r7.patch +++ b/packages/linux/linux-rp-2.6.19+git/tmio-nand-r7.patch diff --git a/packages/linux/linux-rp-2.6.18+git/tmio-ohci-r6.patch b/packages/linux/linux-rp-2.6.19+git/tmio-ohci-r6.patch index 9fdd2962c9..9fdd2962c9 100644 --- a/packages/linux/linux-rp-2.6.18+git/tmio-ohci-r6.patch +++ b/packages/linux/linux-rp-2.6.19+git/tmio-ohci-r6.patch diff --git a/packages/linux/linux-rp-2.6.18+git/tmio-tc6393-r8.patch b/packages/linux/linux-rp-2.6.19+git/tmio-tc6393-r8.patch index 2f1b47d783..2f1b47d783 100644 --- a/packages/linux/linux-rp-2.6.18+git/tmio-tc6393-r8.patch +++ b/packages/linux/linux-rp-2.6.19+git/tmio-tc6393-r8.patch diff --git a/packages/linux/linux-rp-2.6.18+git/tosa-keyboard-r18.patch b/packages/linux/linux-rp-2.6.19+git/tosa-keyboard-r18.patch index 00bac40db5..00bac40db5 100644 --- a/packages/linux/linux-rp-2.6.18+git/tosa-keyboard-r18.patch +++ b/packages/linux/linux-rp-2.6.19+git/tosa-keyboard-r18.patch diff --git a/packages/linux/linux-rp-2.6.18+git/tosa-lcdnoise-r1.patch b/packages/linux/linux-rp-2.6.19+git/tosa-lcdnoise-r1.patch index 624098bc64..624098bc64 100644 --- a/packages/linux/linux-rp-2.6.18+git/tosa-lcdnoise-r1.patch +++ b/packages/linux/linux-rp-2.6.19+git/tosa-lcdnoise-r1.patch diff --git a/packages/linux/linux-rp-2.6.18+git/tosa-tmio-lcd-r10.patch b/packages/linux/linux-rp-2.6.19+git/tosa-tmio-lcd-r10.patch index aef3a047c1..aef3a047c1 100644 --- a/packages/linux/linux-rp-2.6.18+git/tosa-tmio-lcd-r10.patch +++ b/packages/linux/linux-rp-2.6.19+git/tosa-tmio-lcd-r10.patch diff --git a/packages/linux/linux-rp-2.6.18+git/wm9712-reset-loop-r2.patch b/packages/linux/linux-rp-2.6.19+git/wm9712-reset-loop-r2.patch index 78e81ea83a..78e81ea83a 100644 --- a/packages/linux/linux-rp-2.6.18+git/wm9712-reset-loop-r2.patch +++ b/packages/linux/linux-rp-2.6.19+git/wm9712-reset-loop-r2.patch diff --git a/packages/linux/linux-rp-2.6.18+git/wm9712-suspend-cold-res-r2.patch b/packages/linux/linux-rp-2.6.19+git/wm9712-suspend-cold-res-r2.patch index 5179b47cc4..5179b47cc4 100644 --- a/packages/linux/linux-rp-2.6.18+git/wm9712-suspend-cold-res-r2.patch +++ b/packages/linux/linux-rp-2.6.19+git/wm9712-suspend-cold-res-r2.patch diff --git a/packages/linux/linux-rp-2.6.18+git/wm97xx-lcdnoise-r0.patch b/packages/linux/linux-rp-2.6.19+git/wm97xx-lcdnoise-r0.patch index 191de3af22..191de3af22 100644 --- a/packages/linux/linux-rp-2.6.18+git/wm97xx-lcdnoise-r0.patch +++ b/packages/linux/linux-rp-2.6.19+git/wm97xx-lcdnoise-r0.patch diff --git a/packages/linux/linux-rp_2.6.18+git.bb b/packages/linux/linux-rp_2.6.19+git.bb index c25307cdec..f5af2ae05e 100644 --- a/packages/linux/linux-rp_2.6.18+git.bb +++ b/packages/linux/linux-rp_2.6.19+git.bb @@ -14,31 +14,31 @@ DEFAULT_PREFERENCE = "-1" # Patches submitted upstream are towards top of this list # Hacks should clearly named and at the bottom -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ae99a78af33f00565a05dbbc6ca9b247fed002c5 \ +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=v2.6.20-rc1 \ http://opensource.wolfsonmicro.com/~lg/asoc/asoc-v0.12.4.patch;patch=1 \ + ${RPSRC}/pxafb_fix_params-r1.patch;patch=1 \ ${RPSRC}/hx2750_base-r27.patch;patch=1 \ ${RPSRC}/hx2750_bl-r7.patch;patch=1 \ ${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \ - ${RPSRC}/pxa_keys-r5.patch;patch=1 \ - ${RPSRC}/tsc2101-r14.patch;patch=1 \ + ${RPSRC}/pxa_keys-r6.patch;patch=1 \ + ${RPSRC}/tsc2101-r15.patch;patch=1 \ ${RPSRC}/hx2750_test1-r4.patch;patch=1 \ ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ ${RPSRC}/input_power-r6.patch;patch=1 \ - ${RPSRC}/pxa25x_cpufreq-r1.patch;patch=1 \ + ${RPSRC}/pxa25x_cpufreq-r2.patch;patch=1 \ ${RPSRC}/sharpsl_pm_fixes1-r0.patch;patch=1 \ ${RPSRC}/pm_changes-r1.patch;patch=1 \ - ${RPSRC}/usb_pxa27x_udc-r1.patch;patch=1 \ ${RPSRC}/usb_add_epalloc-r3.patch;patch=1 \ + ${RPSRC}/usb_pxa27x_udc-r3.patch;patch=1 \ ${DOSRC}/kexec-arm-r3.patch;patch=1 \ ${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \ ${RPSRC}/poodle_pm-r3.patch;patch=1 \ - ${RPSRC}/pxa27x_overlay-r3.patch;patch=1 \ + ${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \ ${RPSRC}/w100_extaccel-r0.patch;patch=1 \ file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \ ${RPSRC}/logo_oh-r0.patch.bz2;patch=1;status=unmergable \ ${RPSRC}/logo_oz-r2.patch.bz2;patch=1;status=unmergable \ ${RPSRC}/pxa-linking-bug.patch;patch=1;status=unmergable \ - file://add-oz-release-string.patch;patch=1;status=unmergable \ ${RPSRC}/mmcsd_large_cards-r0.patch;patch=1;status=hack \ ${RPSRC}/mmcsd_no_scr_check-r0.patch;patch=1;status=hack \ ${RPSRC}/integrator_rgb-r1.patch;patch=1;status=hack \ diff --git a/packages/linux/linux-rp_2.6.19.bb b/packages/linux/linux-rp_2.6.19.bb index b13b127722..3f0472ecdd 100644 --- a/packages/linux/linux-rp_2.6.19.bb +++ b/packages/linux/linux-rp_2.6.19.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r1" +PR = "r2" DEFAULT_PREFERENCE = "-1" @@ -16,6 +16,8 @@ DEFAULT_PREFERENCE = "-1" # Hacks should clearly named and at the bottom SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2 \ http://opensource.wolfsonmicro.com/~lg/asoc/asoc-v0.12.4.patch;patch=1 \ + ${RPSRC}/pxafb_fix_params-r1.patch;patch=1 \ + ${RPSRC}/pxa_irda_susres_fix-r0.patch;patch=1 \ ${RPSRC}/hx2750_base-r27.patch;patch=1 \ ${RPSRC}/hx2750_bl-r7.patch;patch=1 \ ${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \ @@ -27,12 +29,12 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2 \ ${RPSRC}/pxa25x_cpufreq-r1.patch;patch=1 \ ${RPSRC}/sharpsl_pm_fixes1-r0.patch;patch=1 \ ${RPSRC}/pm_changes-r1.patch;patch=1 \ - ${RPSRC}/usb_pxa27x_udc-r1.patch;patch=1 \ ${RPSRC}/usb_add_epalloc-r3.patch;patch=1 \ + ${RPSRC}/usb_pxa27x_udc-r2.patch;patch=1 \ ${DOSRC}/kexec-arm-r3.patch;patch=1 \ ${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \ ${RPSRC}/poodle_pm-r3.patch;patch=1 \ - ${RPSRC}/pxa27x_overlay-r3.patch;patch=1 \ + ${RPSRC}/pxa27x_overlay-r4.patch;patch=1 \ ${RPSRC}/w100_extaccel-r0.patch;patch=1 \ file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \ ${RPSRC}/logo_oh-r0.patch.bz2;patch=1;status=unmergable \ diff --git a/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty b/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-smdk2440-2.6.19/.mtn2git_empty diff --git a/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch b/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch new file mode 100644 index 0000000000..d785cb885f --- /dev/null +++ b/packages/linux/linux-smdk2440-2.6.19/smdk2440-touchscreen-r2.patch @@ -0,0 +1,532 @@ +Index: linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c +=================================================================== +--- /dev/null ++++ linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c +@@ -0,0 +1,351 @@ ++/* ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org> ++ * iPAQ H1940 touchscreen support ++ * ++ * ChangeLog ++ * ++ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at> ++ * - added clock (de-)allocation code ++ * ++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org> ++ * - h1940_ -> s3c2410 (this driver is now also used on the n30 ++ * machines :P) ++ * - Debug messages are now enabled with the config option ++ * TOUCHSCREEN_S3C2410_DEBUG ++ * - Changed the way the value are read ++ * - Input subsystem should now work ++ * - Use ioremap and readl/writel ++ * ++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org> ++ * - Make use of some undocumented features of the touchscreen ++ * controller ++ * ++ */ ++ ++#include <linux/errno.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++#include <linux/input.h> ++#include <linux/init.h> ++#include <linux/serio.h> ++#include <linux/delay.h> ++#include <linux/platform_device.h> ++#include <linux/clk.h> ++#include <asm/io.h> ++#include <asm/irq.h> ++ ++#include <asm/arch/regs-adc.h> ++#include <asm/arch/regs-gpio.h> ++#include <asm/arch/ts.h> ++ ++/* For ts.dev.id.version */ ++#define S3C2410TSVERSION 0x0101 ++ ++#define WAIT4INT(x) (((x)<<8) | \ ++ S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \ ++ S3C2410_ADCTSC_XY_PST(3)) ++ ++#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \ ++ S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0)) ++ ++#define DEBUG_LVL KERN_DEBUG ++ ++MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); ++MODULE_DESCRIPTION("s3c2410 touchscreen driver"); ++MODULE_LICENSE("GPL"); ++ ++/* ++ * Definitions & global arrays. ++ */ ++ ++ ++static char *s3c2410ts_name = "s3c2410 TouchScreen"; ++ ++/* ++ * Per-touchscreen data. ++ */ ++ ++struct s3c2410ts { ++ struct input_dev *dev; ++ long xp; ++ long yp; ++ int count; ++ int shift; ++}; ++ ++static struct s3c2410ts ts; ++static void __iomem *base_addr; ++ ++static inline void s3c2410_ts_connect(void) ++{ ++ s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON); ++ s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON); ++ s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON); ++ s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON); ++} ++ ++static void touch_timer_fire(unsigned long data) ++{ ++ unsigned long data0; ++ unsigned long data1; ++ int updown; ++ ++ data0 = readl(base_addr+S3C2410_ADCDAT0); ++ data1 = readl(base_addr+S3C2410_ADCDAT1); ++ ++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN)); ++ ++ if (updown) { ++ if (ts.count != 0) { ++ ts.xp >>= ts.shift; ++ ts.yp >>= ts.shift; ++ ++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG ++ { ++ struct timeval tv; ++ do_gettimeofday(&tv); ++ printk(DEBUG_LVL "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts.xp, ts.yp); ++ } ++#endif ++ ++ input_report_abs(ts.dev, ABS_Y, ts.xp); ++ input_report_abs(ts.dev, ABS_X, ts.yp); ++ ++ input_report_key(ts.dev, BTN_TOUCH, 1); ++ input_report_abs(ts.dev, ABS_PRESSURE, 1); ++ input_sync(ts.dev); ++ } ++ ++ ts.count = 0; ++ ++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC); ++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON); ++ } else { ++ ts.count = 0; ++ ++ input_report_abs(ts.dev, ABS_Y, ts.xp); ++ input_report_abs(ts.dev, ABS_X, ts.yp); ++ ++ input_report_key(ts.dev, BTN_TOUCH, 0); ++ input_report_abs(ts.dev, ABS_PRESSURE, 0); ++ input_sync(ts.dev); ++ ++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC); ++ } ++} ++ ++static struct timer_list touch_timer = ++ TIMER_INITIALIZER(touch_timer_fire, 0, 0); ++ ++static irqreturn_t stylus_updown(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ unsigned long data0; ++ unsigned long data1; ++ int updown; ++ ++ data0 = readl(base_addr+S3C2410_ADCDAT0); ++ data1 = readl(base_addr+S3C2410_ADCDAT1); ++ ++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN)); ++ ++ /* TODO we should never get an interrupt with updown set while ++ * the timer is running, but maybe we ought to verify that the ++ * timer isn't running anyways. */ ++ ++ if (updown) ++ touch_timer_fire(0); ++ ++ return IRQ_HANDLED; ++} ++ ++ ++static irqreturn_t stylus_action(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ unsigned long data0; ++ unsigned long data1; ++ ++ data0 = readl(base_addr+S3C2410_ADCDAT0); ++ data1 = readl(base_addr+S3C2410_ADCDAT1); ++ ++ ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK; ++ ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK; ++ ts.count++; ++ ++ if (ts.count < (1<<ts.shift)) { ++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC); ++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON); ++ } else { ++ mod_timer(&touch_timer, jiffies+1); ++ writel(WAIT4INT(1), base_addr+S3C2410_ADCTSC); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++static struct clk *adc_clock; ++ ++/* ++ * The functions for inserting/removing us as a module. ++ */ ++ ++static int __init s3c2410ts_probe(struct platform_device *pdev) ++{ ++ struct s3c2410_ts_mach_info *info; ++ struct input_dev *input_dev; ++ ++ info = ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data; ++ ++ if (!info) ++ { ++ printk(KERN_ERR "Hm... too bad : no platform data for ts\n"); ++ return -EINVAL; ++ } ++ ++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG ++ printk(DEBUG_LVL "Entering s3c2410ts_init\n"); ++#endif ++ ++ adc_clock = clk_get(NULL, "adc"); ++ if (!adc_clock) { ++ printk(KERN_ERR "failed to get adc clock source\n"); ++ return -ENOENT; ++ } ++ clk_enable(adc_clock); ++ ++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG ++ printk(DEBUG_LVL "got and enabled clock\n"); ++#endif ++ ++ base_addr=ioremap(S3C2410_PA_ADC,0x20); ++ if (base_addr == NULL) { ++ printk(KERN_ERR "Failed to remap register block\n"); ++ return -ENOMEM; ++ } ++ ++ ++ /* Configure GPIOs */ ++ s3c2410_ts_connect(); ++ ++ if ((info->presc&0xff) > 0) ++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\ ++ base_addr+S3C2410_ADCCON); ++ else ++ writel(0,base_addr+S3C2410_ADCCON); ++ ++ ++ /* Initialise registers */ ++ if ((info->delay&0xffff) > 0) ++ writel(info->delay & 0xffff, base_addr+S3C2410_ADCDLY); ++ ++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC); ++ ++ /* Initialise input stuff */ ++ memset(&ts, 0, sizeof(struct s3c2410ts)); ++ input_dev = input_allocate_device(); ++ ++ if (!input_dev) { ++ printk(KERN_ERR "Unable to allocate the input device !!\n"); ++ return -ENOMEM; ++ } ++ ++ ts.dev = input_dev; ++ ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) | BIT(EV_ABS); ++ ts.dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); ++ input_set_abs_params(ts.dev, ABS_X, 0x10, 0x3FF, 0, 0); ++ input_set_abs_params(ts.dev, ABS_Y, 0x10, 0x3FF, 0, 0); ++ input_set_abs_params(ts.dev, ABS_PRESSURE, 0, 1, 0, 0); ++ ++ ts.dev->private = &ts; ++ ts.dev->name = s3c2410ts_name; ++ ts.dev->id.bustype = BUS_RS232; ++ ts.dev->id.vendor = 0xDEAD; ++ ts.dev->id.product = 0xBEEF; ++ ts.dev->id.version = S3C2410TSVERSION; ++ ++ ts.shift = info->oversampling_shift; ++ ++ /* Get irqs */ ++ if (request_irq(IRQ_ADC, stylus_action, SA_SAMPLE_RANDOM, ++ "s3c2410_action", ts.dev)) { ++ printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC !\n"); ++ iounmap(base_addr); ++ return -EIO; ++ } ++ if (request_irq(IRQ_TC, stylus_updown, SA_SAMPLE_RANDOM, ++ "s3c2410_action", ts.dev)) { ++ printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC !\n"); ++ iounmap(base_addr); ++ return -EIO; ++ } ++ ++ printk(KERN_INFO "%s successfully loaded\n", s3c2410ts_name); ++ ++ /* All went ok, so register to the input system */ ++ input_register_device(ts.dev); ++ ++ return 0; ++} ++ ++static int s3c2410ts_remove(struct platform_device *pdev) ++{ ++ disable_irq(IRQ_ADC); ++ disable_irq(IRQ_TC); ++ free_irq(IRQ_TC,ts.dev); ++ free_irq(IRQ_ADC,ts.dev); ++ ++ if (adc_clock) { ++ clk_disable(adc_clock); ++ clk_put(adc_clock); ++ adc_clock = NULL; ++ } ++ ++ input_unregister_device(ts.dev); ++ iounmap(base_addr); ++ ++ return 0; ++} ++ ++static struct platform_driver s3c2410ts_driver = { ++ .driver = { ++ .name = "s3c2410-ts", ++ .owner = THIS_MODULE, ++ }, ++ .probe = s3c2410ts_probe, ++ .remove = s3c2410ts_remove, ++}; ++ ++ ++static int __init s3c2410ts_init(void) ++{ ++ return platform_driver_register(&s3c2410ts_driver); ++} ++ ++static void __exit s3c2410ts_exit(void) ++{ ++ platform_driver_unregister(&s3c2410ts_driver); ++} ++ ++module_init(s3c2410ts_init); ++module_exit(s3c2410ts_exit); ++ ++/* ++ Local variables: ++ compile-command: "make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- -k -C ../../.." ++ c-basic-offset: 8 ++ End: ++*/ +Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.c +=================================================================== +--- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.c ++++ linux-2.6.19/arch/arm/mach-s3c2410/devs.c +@@ -28,6 +28,7 @@ + #include <asm/irq.h> + + #include <asm/arch/regs-serial.h> ++#include <asm/arch/ts.h> + + #include "devs.h" + #include "cpu.h" +@@ -204,6 +205,23 @@ struct platform_device s3c_device_nand = + + EXPORT_SYMBOL(s3c_device_nand); + ++/* Touchscreen */ ++struct platform_device s3c_device_ts = { ++ .name = "s3c2410-ts", ++ .id = -1, ++}; ++ ++EXPORT_SYMBOL(s3c_device_ts); ++ ++static struct s3c2410_ts_mach_info s3c2410ts_info; ++ ++void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info) ++{ ++ memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info)); ++ s3c_device_ts.dev.platform_data = &s3c2410ts_info; ++} ++EXPORT_SYMBOL(set_s3c2410ts_info); ++ + /* USB Device (Gadget)*/ + + static struct resource s3c_usbgadget_resource[] = { +Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.h +=================================================================== +--- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.h ++++ linux-2.6.19/arch/arm/mach-s3c2410/devs.h +@@ -41,6 +41,8 @@ extern struct platform_device s3c_device + extern struct platform_device s3c_device_timer3; + + extern struct platform_device s3c_device_usbgadget; ++extern struct platform_device s3c_device_ts; ++ + + /* s3c2440 specific devices */ + +Index: linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c +=================================================================== +--- linux-2.6.19.orig/arch/arm/mach-s3c2410/mach-smdk2440.c ++++ linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c +@@ -38,6 +38,7 @@ + + #include <asm/arch/idle.h> + #include <asm/arch/fb.h> ++#include <asm/arch/ts.h> + + #include "s3c2410.h" + #include "s3c2440.h" +@@ -177,6 +178,7 @@ static struct platform_device *smdk2440_ + &s3c_device_wdt, + &s3c_device_i2c, + &s3c_device_iis, ++ &s3c_device_ts, + }; + + static struct s3c24xx_board smdk2440_board __initdata = { +@@ -184,6 +186,13 @@ static struct s3c24xx_board smdk2440_boa + .devices_count = ARRAY_SIZE(smdk2440_devices) + }; + ++static struct s3c2410_ts_mach_info smdk2440_ts_cfg __initdata = { ++ .delay = 10000, ++ .presc = 49, ++ .oversampling_shift = 2, ++}; ++ ++ + static void __init smdk2440_map_io(void) + { + s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)); +@@ -195,6 +204,7 @@ static void __init smdk2440_map_io(void) + static void __init smdk2440_machine_init(void) + { + s3c24xx_fb_set_platdata(&smdk2440_lcd_cfg); ++ set_s3c2410ts_info(&smdk2440_ts_cfg); + + smdk_machine_init(); + } +Index: linux-2.6.19/drivers/input/touchscreen/Kconfig +=================================================================== +--- linux-2.6.19.orig/drivers/input/touchscreen/Kconfig ++++ linux-2.6.19/drivers/input/touchscreen/Kconfig +@@ -49,6 +49,25 @@ config TOUCHSCREEN_CORGI + To compile this driver as a module, choose M here: the + module will be called corgi_ts. + ++config TOUCHSCREEN_S3C2410 ++ tristate "Samsung S3C2410 touchscreen input driver" ++ depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN ++ select SERIO ++ help ++ Say Y here if you have the s3c2410 touchscreen. ++ ++ If unsure, say N. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called s3c2410_ts. ++ ++config TOUCHSCREEN_S3C2410_DEBUG ++ boolean "Samsung S3C2410 touchscreen debug messages" ++ depends on TOUCHSCREEN_S3C2410 ++ help ++ Select this if you want debug messages ++ ++ + config TOUCHSCREEN_GUNZE + tristate "Gunze AHL-51S touchscreen" + select SERIO +Index: linux-2.6.19/drivers/input/touchscreen/Makefile +=================================================================== +--- linux-2.6.19.orig/drivers/input/touchscreen/Makefile ++++ linux-2.6.19/drivers/input/touchscreen/Makefile +@@ -15,3 +15,4 @@ obj-$(CONFIG_TOUCHSCREEN_HP600) += hp680 + obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o + obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o + obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o ++obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o +Index: linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h +=================================================================== +--- /dev/null ++++ linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h +@@ -0,0 +1,28 @@ ++/* linux/include/asm/arch-s3c2410/ts.h ++ * ++ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org> ++ * ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * ++ * Changelog: ++ * 24-Mar-2005 RTP Created file ++ * 03-Aug-2005 RTP Renamed to ts.h ++ */ ++ ++#ifndef __ASM_ARM_TS_H ++#define __ASM_ARM_TS_H ++ ++struct s3c2410_ts_mach_info { ++ int delay; ++ int presc; ++ int oversampling_shift; ++}; ++ ++void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info); ++ ++#endif /* __ASM_ARM_TS_H */ ++ +Index: linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h +=================================================================== +--- linux-2.6.19.orig/include/asm-arm/arch-s3c2410/regs-adc.h ++++ linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h +@@ -41,7 +41,7 @@ + #define S3C2410_ADCTSC_XP_SEN (1<<4) + #define S3C2410_ADCTSC_PULL_UP_DISABLE (1<<3) + #define S3C2410_ADCTSC_AUTO_PST (1<<2) +-#define S3C2410_ADCTSC_XY_PST (0x3<<0) ++#define S3C2410_ADCTSC_XY_PST(x) (((x)&0x3)<<0) + + /* ADCDAT0 Bits */ + #define S3C2410_ADCDAT0_UPDOWN (1<<15) diff --git a/packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch b/packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch new file mode 100644 index 0000000000..d03fd94017 --- /dev/null +++ b/packages/linux/linux-smdk2440/smdk2440-touchscreen-r3.patch @@ -0,0 +1,529 @@ +Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.c +=================================================================== +--- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.c ++++ linux-2.6.19/arch/arm/mach-s3c2410/devs.c +@@ -26,6 +26,7 @@ + #include <asm/hardware.h> + #include <asm/io.h> + #include <asm/irq.h> ++#include <asm/arch/ts.h> + + #include <asm/arch/regs-serial.h> + +@@ -204,6 +205,23 @@ struct platform_device s3c_device_nand = + + EXPORT_SYMBOL(s3c_device_nand); + ++/* Touchscreen */ ++struct platform_device s3c_device_ts = { ++ .name = "s3c2410-ts", ++ .id = -1, ++}; ++ ++EXPORT_SYMBOL(s3c_device_ts); ++ ++static struct s3c2410_ts_mach_info s3c2410ts_info; ++ ++void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info) ++{ ++ memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info)); ++ s3c_device_ts.dev.platform_data = &s3c2410ts_info; ++} ++EXPORT_SYMBOL(set_s3c2410ts_info); ++ + /* USB Device (Gadget)*/ + + static struct resource s3c_usbgadget_resource[] = { +Index: linux-2.6.19/arch/arm/mach-s3c2410/devs.h +=================================================================== +--- linux-2.6.19.orig/arch/arm/mach-s3c2410/devs.h ++++ linux-2.6.19/arch/arm/mach-s3c2410/devs.h +@@ -41,6 +41,7 @@ extern struct platform_device s3c_device + extern struct platform_device s3c_device_timer3; + + extern struct platform_device s3c_device_usbgadget; ++extern struct platform_device s3c_device_ts; + + /* s3c2440 specific devices */ + +Index: linux-2.6.19/drivers/input/touchscreen/Kconfig +=================================================================== +--- linux-2.6.19.orig/drivers/input/touchscreen/Kconfig ++++ linux-2.6.19/drivers/input/touchscreen/Kconfig +@@ -49,6 +49,24 @@ config TOUCHSCREEN_CORGI + To compile this driver as a module, choose M here: the + module will be called corgi_ts. + ++config TOUCHSCREEN_S3C2410 ++ tristate "Samsung S3C2410 touchscreen input driver" ++ depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN ++ select SERIO ++ help ++ Say Y here if you have the s3c2410 touchscreen. ++ ++ If unsure, say N. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called s3c2410_ts. ++ ++config TOUCHSCREEN_S3C2410_DEBUG ++ boolean "Samsung S3C2410 touchscreen debug messages" ++ depends on TOUCHSCREEN_S3C2410 ++ help ++ Select this if you want debug messages ++ + config TOUCHSCREEN_GUNZE + tristate "Gunze AHL-51S touchscreen" + select SERIO +Index: linux-2.6.19/drivers/input/touchscreen/Makefile +=================================================================== +--- linux-2.6.19.orig/drivers/input/touchscreen/Makefile ++++ linux-2.6.19/drivers/input/touchscreen/Makefile +@@ -15,3 +15,5 @@ obj-$(CONFIG_TOUCHSCREEN_HP600) += hp680 + obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o + obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o + obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o ++obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o ++ +Index: linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c +=================================================================== +--- /dev/null ++++ linux-2.6.19/drivers/input/touchscreen/s3c2410_ts.c +@@ -0,0 +1,350 @@ ++/* ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * Copyright (c) 2004 Arnaud Patard <arnaud.patard@rtp-net.org> ++ * iPAQ H1940 touchscreen support ++ * ++ * ChangeLog ++ * ++ * 2004-09-05: Herbert Pötzl <herbert@13thfloor.at> ++ * - added clock (de-)allocation code ++ * ++ * 2005-03-06: Arnaud Patard <arnaud.patard@rtp-net.org> ++ * - h1940_ -> s3c2410 (this driver is now also used on the n30 ++ * machines :P) ++ * - Debug messages are now enabled with the config option ++ * TOUCHSCREEN_S3C2410_DEBUG ++ * - Changed the way the value are read ++ * - Input subsystem should now work ++ * - Use ioremap and readl/writel ++ * ++ * 2005-03-23: Arnaud Patard <arnaud.patard@rtp-net.org> ++ * - Make use of some undocumented features of the touchscreen ++ * controller ++ * ++ */ ++ ++#include <linux/errno.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++#include <linux/input.h> ++#include <linux/init.h> ++#include <linux/serio.h> ++#include <linux/delay.h> ++#include <linux/platform_device.h> ++#include <linux/clk.h> ++#include <asm/io.h> ++#include <asm/irq.h> ++ ++#include <asm/arch/regs-adc.h> ++#include <asm/arch/regs-gpio.h> ++#include <asm/arch/ts.h> ++ ++/* For ts.dev.id.version */ ++#define S3C2410TSVERSION 0x0101 ++ ++#define WAIT4INT(x) (((x)<<8) | \ ++ S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \ ++ S3C2410_ADCTSC_XY_PST(3)) ++ ++#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \ ++ S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0)) ++ ++#define DEBUG_LVL KERN_DEBUG ++ ++MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); ++MODULE_DESCRIPTION("s3c2410 touchscreen driver"); ++MODULE_LICENSE("GPL"); ++ ++/* ++ * Definitions & global arrays. ++ */ ++ ++ ++static char *s3c2410ts_name = "s3c2410 TouchScreen"; ++ ++/* ++ * Per-touchscreen data. ++ */ ++ ++struct s3c2410ts { ++ struct input_dev *dev; ++ long xp; ++ long yp; ++ int count; ++ int shift; ++}; ++ ++static struct s3c2410ts ts; ++static void __iomem *base_addr; ++ ++static inline void s3c2410_ts_connect(void) ++{ ++ s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON); ++ s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON); ++ s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON); ++ s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON); ++} ++ ++static void touch_timer_fire(unsigned long data) ++{ ++ unsigned long data0; ++ unsigned long data1; ++ int updown; ++ ++ data0 = readl(base_addr+S3C2410_ADCDAT0); ++ data1 = readl(base_addr+S3C2410_ADCDAT1); ++ ++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN)); ++ ++ if (updown) { ++ if (ts.count != 0) { ++ ts.xp >>= ts.shift; ++ ts.yp >>= ts.shift; ++ ++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG ++ { ++ struct timeval tv; ++ do_gettimeofday(&tv); ++ printk(DEBUG_LVL "T: %06d, X: %03ld, Y: %03ld\n", (int)tv.tv_usec, ts.xp, ts.yp); ++ } ++#endif ++ ++ input_report_abs(ts.dev, ABS_X, ts.xp); ++ input_report_abs(ts.dev, ABS_Y, ts.yp); ++ ++ input_report_key(ts.dev, BTN_TOUCH, 1); ++ input_report_abs(ts.dev, ABS_PRESSURE, 1); ++ input_sync(ts.dev); ++ } ++ ++ ts.xp = 0; ++ ts.yp = 0; ++ ts.count = 0; ++ ++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC); ++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON); ++ } else { ++ ts.count = 0; ++ ++ input_report_key(ts.dev, BTN_TOUCH, 0); ++ input_report_abs(ts.dev, ABS_PRESSURE, 0); ++ input_sync(ts.dev); ++ ++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC); ++ } ++} ++ ++static struct timer_list touch_timer = ++ TIMER_INITIALIZER(touch_timer_fire, 0, 0); ++ ++static irqreturn_t stylus_updown(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ unsigned long data0; ++ unsigned long data1; ++ int updown; ++ ++ data0 = readl(base_addr+S3C2410_ADCDAT0); ++ data1 = readl(base_addr+S3C2410_ADCDAT1); ++ ++ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN)); ++ ++ /* TODO we should never get an interrupt with updown set while ++ * the timer is running, but maybe we ought to verify that the ++ * timer isn't running anyways. */ ++ ++ if (updown) ++ touch_timer_fire(0); ++ ++ return IRQ_HANDLED; ++} ++ ++ ++static irqreturn_t stylus_action(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ unsigned long data0; ++ unsigned long data1; ++ ++ data0 = readl(base_addr+S3C2410_ADCDAT0); ++ data1 = readl(base_addr+S3C2410_ADCDAT1); ++ ++ ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK; ++ ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK; ++ ts.count++; ++ ++ if (ts.count < (1<<ts.shift)) { ++ writel(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC); ++ writel(readl(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON); ++ } else { ++ mod_timer(&touch_timer, jiffies+1); ++ writel(WAIT4INT(1), base_addr+S3C2410_ADCTSC); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++static struct clk *adc_clock; ++ ++/* ++ * The functions for inserting/removing us as a module. ++ */ ++ ++static int __init s3c2410ts_probe(struct platform_device *pdev) ++{ ++ struct s3c2410_ts_mach_info *info; ++ struct input_dev *input_dev; ++ ++ info = ( struct s3c2410_ts_mach_info *)pdev->dev.platform_data; ++ ++ if (!info) ++ { ++ printk(KERN_ERR "Hm... too bad : no platform data for ts\n"); ++ return -EINVAL; ++ } ++ ++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG ++ printk(DEBUG_LVL "Entering s3c2410ts_init\n"); ++#endif ++ ++ adc_clock = clk_get(NULL, "adc"); ++ if (!adc_clock) { ++ printk(KERN_ERR "failed to get adc clock source\n"); ++ return -ENOENT; ++ } ++ clk_enable(adc_clock); ++ ++#ifdef CONFIG_TOUCHSCREEN_S3C2410_DEBUG ++ printk(DEBUG_LVL "got and enabled clock\n"); ++#endif ++ ++ base_addr=ioremap(S3C2410_PA_ADC,0x20); ++ if (base_addr == NULL) { ++ printk(KERN_ERR "Failed to remap register block\n"); ++ return -ENOMEM; ++ } ++ ++ ++ /* Configure GPIOs */ ++ s3c2410_ts_connect(); ++ ++ if ((info->presc&0xff) > 0) ++ writel(S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(info->presc&0xFF),\ ++ base_addr+S3C2410_ADCCON); ++ else ++ writel(0,base_addr+S3C2410_ADCCON); ++ ++ ++ /* Initialise registers */ ++ if ((info->delay&0xffff) > 0) ++ writel(info->delay & 0xffff, base_addr+S3C2410_ADCDLY); ++ ++ writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC); ++ ++ /* Initialise input stuff */ ++ memset(&ts, 0, sizeof(struct s3c2410ts)); ++ input_dev = input_allocate_device(); ++ ++ if (!input_dev) { ++ printk(KERN_ERR "Unable to allocate the input device !!\n"); ++ return -ENOMEM; ++ } ++ ++ ts.dev = input_dev; ++ ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) | BIT(EV_ABS); ++ ts.dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); ++ input_set_abs_params(ts.dev, ABS_X, 0, 0x3FF, 0, 0); ++ input_set_abs_params(ts.dev, ABS_Y, 0, 0x3FF, 0, 0); ++ input_set_abs_params(ts.dev, ABS_PRESSURE, 0, 1, 0, 0); ++ ++ ts.dev->private = &ts; ++ ts.dev->name = s3c2410ts_name; ++ ts.dev->id.bustype = BUS_RS232; ++ ts.dev->id.vendor = 0xDEAD; ++ ts.dev->id.product = 0xBEEF; ++ ts.dev->id.version = S3C2410TSVERSION; ++ ++ ts.shift = info->oversampling_shift; ++ ++ /* Get irqs */ ++ if (request_irq(IRQ_ADC, stylus_action, SA_SAMPLE_RANDOM, ++ "s3c2410_action", ts.dev)) { ++ printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC !\n"); ++ iounmap(base_addr); ++ return -EIO; ++ } ++ if (request_irq(IRQ_TC, stylus_updown, SA_SAMPLE_RANDOM, ++ "s3c2410_action", ts.dev)) { ++ printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC !\n"); ++ iounmap(base_addr); ++ return -EIO; ++ } ++ ++ printk(KERN_INFO "%s successfully loaded\n", s3c2410ts_name); ++ ++ /* All went ok, so register to the input system */ ++ input_register_device(ts.dev); ++ ++ return 0; ++} ++ ++static int s3c2410ts_remove(struct platform_device *pdev) ++{ ++ disable_irq(IRQ_ADC); ++ disable_irq(IRQ_TC); ++ free_irq(IRQ_TC,ts.dev); ++ free_irq(IRQ_ADC,ts.dev); ++ ++ if (adc_clock) { ++ clk_disable(adc_clock); ++ clk_put(adc_clock); ++ adc_clock = NULL; ++ } ++ ++ input_unregister_device(ts.dev); ++ iounmap(base_addr); ++ ++ return 0; ++} ++ ++static struct platform_driver s3c2410ts_driver = { ++ .driver = { ++ .name = "s3c2410-ts", ++ .owner = THIS_MODULE, ++ }, ++ .probe = s3c2410ts_probe, ++ .remove = s3c2410ts_remove, ++}; ++ ++ ++static int __init s3c2410ts_init(void) ++{ ++ return platform_driver_register(&s3c2410ts_driver); ++} ++ ++static void __exit s3c2410ts_exit(void) ++{ ++ platform_driver_unregister(&s3c2410ts_driver); ++} ++ ++module_init(s3c2410ts_init); ++module_exit(s3c2410ts_exit); ++ ++/* ++ Local variables: ++ compile-command: "make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux- -k -C ../../.." ++ c-basic-offset: 8 ++ End: ++*/ +Index: linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h +=================================================================== +--- linux-2.6.19.orig/include/asm-arm/arch-s3c2410/regs-adc.h ++++ linux-2.6.19/include/asm-arm/arch-s3c2410/regs-adc.h +@@ -41,7 +41,7 @@ + #define S3C2410_ADCTSC_XP_SEN (1<<4) + #define S3C2410_ADCTSC_PULL_UP_DISABLE (1<<3) + #define S3C2410_ADCTSC_AUTO_PST (1<<2) +-#define S3C2410_ADCTSC_XY_PST (0x3<<0) ++#define S3C2410_ADCTSC_XY_PST(x) (((x)&0x3)<<0) + + /* ADCDAT0 Bits */ + #define S3C2410_ADCDAT0_UPDOWN (1<<15) +Index: linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h +=================================================================== +--- /dev/null ++++ linux-2.6.19/include/asm-arm/arch-s3c2410/ts.h +@@ -0,0 +1,28 @@ ++/* linux/include/asm/arch-s3c2410/ts.h ++ * ++ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org> ++ * ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * ++ * Changelog: ++ * 24-Mar-2005 RTP Created file ++ * 03-Aug-2005 RTP Renamed to ts.h ++ */ ++ ++#ifndef __ASM_ARM_TS_H ++#define __ASM_ARM_TS_H ++ ++struct s3c2410_ts_mach_info { ++ int delay; ++ int presc; ++ int oversampling_shift; ++}; ++ ++void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info); ++ ++#endif /* __ASM_ARM_TS_H */ ++ +Index: linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c +=================================================================== +--- linux-2.6.19.orig/arch/arm/mach-s3c2410/mach-smdk2440.c ++++ linux-2.6.19/arch/arm/mach-s3c2410/mach-smdk2440.c +@@ -35,6 +35,7 @@ + #include <asm/arch/regs-serial.h> + #include <asm/arch/regs-gpio.h> + #include <asm/arch/regs-lcd.h> ++#include <asm/arch/ts.h> + + #include <asm/arch/idle.h> + #include <asm/arch/fb.h> +@@ -177,6 +178,7 @@ static struct platform_device *smdk2440_ + &s3c_device_wdt, + &s3c_device_i2c, + &s3c_device_iis, ++ &s3c_device_ts, + }; + + static struct s3c24xx_board smdk2440_board __initdata = { +@@ -184,6 +186,12 @@ static struct s3c24xx_board smdk2440_boa + .devices_count = ARRAY_SIZE(smdk2440_devices) + }; + ++static struct s3c2410_ts_mach_info qt2410_ts_cfg = { ++ .delay = 10000, ++ .presc = 49, ++ .oversampling_shift = 2, ++}; ++ + static void __init smdk2440_map_io(void) + { + s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc)); +@@ -195,6 +203,7 @@ static void __init smdk2440_map_io(void) + static void __init smdk2440_machine_init(void) + { + s3c24xx_fb_set_platdata(&smdk2440_lcd_cfg); ++ set_s3c2410ts_info(&qt2410_ts_cfg); + + smdk_machine_init(); + } diff --git a/packages/linux/linux-smdk2440_2.6.18.bb b/packages/linux/linux-smdk2440_2.6.19.bb index 701e08a7c4..039e412919 100644 --- a/packages/linux/linux-smdk2440_2.6.18.bb +++ b/packages/linux/linux-smdk2440_2.6.19.bb @@ -5,9 +5,10 @@ PR = "r1" GGSRC = "http://www.xora.org.uk/oe/patches/" -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ +SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ ${GGSRC}smdk2440-cs89x0-r1.patch;patch=1 \ - ${GGSRC}smdk2440-touchscreen-r1.patch;patch=1 \ + file://smdk2440-touchscreen-r3.patch;patch=1 \ + http://opensource.wolfsonmicro.com/~lg/asoc/asoc-v0.12.6.patch;patch=1 \ file://defconfig-smdk2440" S = "${WORKDIR}/linux-${PV}" diff --git a/packages/linux/mnci-ramses_2.4.21-rmk2-pxa1.bb b/packages/linux/mnci-ramses_2.4.21-rmk2-pxa1.bb index 381900e038..b001763710 100644 --- a/packages/linux/mnci-ramses_2.4.21-rmk2-pxa1.bb +++ b/packages/linux/mnci-ramses_2.4.21-rmk2-pxa1.bb @@ -9,7 +9,7 @@ PXAV = "1" PR = "r5" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.4/linux-${KV}.tar.bz2 \ - http://lorien.handhelds.org/ftp.arm.linux.org.uk/kernel/v2.4/patch-${KV}-rmk${RMKV}.bz2;patch=1 \ + http://ftp.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-${KV}-rmk${RMKV}.bz2;patch=1 \ file://diff-${KV}-rmk${RMKV}-pxa${PXAV}.gz;patch=1 \ file://mnci-combined.patch;patch=1" |