Permalink
Browse files

initial checkin

  • Loading branch information...
0 parents commit 845c7eb3bc06586b734e91492b51967259ff6fcf @mika mika committed Oct 22, 2006
Showing with 1,081,175 additions and 0 deletions.
  1. +78 −0 2.6.11/1900_lowmem-reserve-oops.patch
  2. +78 −0 2.6.11/2505_alsa-headphone-unplug.patch
  3. +160 −0 2.6.11/2900_alps-tapping.patch
  4. +6,431 −0 2.6.11/4100_skge-0.6.patch
  5. +3,765 −0 2.6.11/4300_2.6.11-rc3-udm2.patch
  6. +1,166 −0 2.6.11/4305_dm-bbr.patch
  7. +2,463 −0 2.6.11/4505_vesafb-tng-0.9-rc6-r2.patch
  8. +13,107 −0 2.6.11/4900_speakup-20050303.patch
  9. +1,484 −0 2.6.11/drivers-add-scsi_changer.patch
  10. +21 −0 2.6.11/drivers-ide-dma-blacklist-toshiba.patch
  11. +201 −0 2.6.11/drivers-media-video-v4l-mpeg-support.patch
  12. +5,266 −0 2.6.11/fs-asfs-2.patch
  13. +2,972 −0 2.6.11/grml_bootlogo.diff
  14. +7,398 −0 2.6.11/iteraid.patch
  15. +1,559 −0 2.6.11/linux-2.6.11-mppe-mppc-1.3.patch
  16. +938 −0 2.6.11/orinoco-2.6.11-rfmon-dragorn-1.diff
  17. +1,613 −0 2.6.11/patch-2.6.11.8
  18. +89,940 −0 2.6.11/reiser4.allinone
  19. +2,529 −0 2.6.11/squashfs2.1-patch
  20. +12 −0 2.6.11/tty-locking-fixes9.patch
  21. +2,745 −0 2.6.11/vesafb-tng-0.9-rc6-2.6.11-rc1.patch
  22. +27 −0 2.6.12/1900_pci-driver-typo.patch
  23. +28 −0 2.6.12/1905_mm-BUG.patch
  24. +25 −0 2.6.12/2100_e1000-spinlock.patch
  25. +154 −0 2.6.12/2300_qla2xxx-initialization.patch
  26. +90 −0 2.6.12/2305_sata-bridge-lockup.patch
  27. +25 −0 2.6.12/3c509-device-support.patch
  28. +83 −0 2.6.12/4300_via-vt6410.patch
  29. +1,167 −0 2.6.12/4305_dm-bbr.patch
  30. +125 −0 2.6.12/4320_promise-pdc2037x.patch
  31. +69 −0 2.6.12/4325_promise-pdc20619.patch
  32. +67 −0 2.6.12/4330_svw-broadcom.patch
  33. +2,463 −0 2.6.12/4505_vesafb-tng-0.9-rc6-r2.patch
  34. +13,151 −0 2.6.12/4900_speakup-20050622-dsd.patch
  35. +13 −0 2.6.12/4901_speakup-parport.patch
  36. +2,972 −0 2.6.12/grml_logo.diff
  37. +9,139 −0 2.6.12/iteraid.allinone
  38. +1,559 −0 2.6.12/linux-2.6.11-mppe-mppc-1.3.patch
  39. +938 −0 2.6.12/orinoco-2.6.12-rfmon-dragorn-1.diff
  40. +105 −0 2.6.12/patch-2.6.12.1
  41. +416 −0 2.6.12/patch-2.6.12.2
  42. +88,716 −0 2.6.12/reiser4_2.6.12_allinone
  43. +2,529 −0 2.6.12/squashfs2.1-patch
  44. +5,347 −0 2.6.13/2.6.13-rc7-libata1.patch
  45. +83 −0 2.6.13/4300_via-vt6410.patch
  46. +19 −0 2.6.13/4355_promise-tx4200.patch
  47. +2,592 −0 2.6.13/4705_squashfs-2.2.patch
  48. +14,201 −0 2.6.13/4900_speakup-20050825.patch
  49. +11 −0 2.6.13/grml.version
  50. +2,972 −0 2.6.13/grml_logo.diff
  51. +6,564 −0 2.6.13/iteraid.patch
  52. +1,559 −0 2.6.13/linux-2.6.11-mppe-mppc-1.3.patch
  53. +5,722 −0 2.6.13/linux-2.6.13_pwc-10.0.8.patch
  54. +1,182 −0 2.6.13/patch-2.6.13.3
  55. +1,551 −0 2.6.13/patch-2.6.13.4
  56. +14 −0 2.6.13/patches.applied
  57. +88,718 −0 2.6.13/reiser4_2.6.13-rc6-mm2
  58. +7,961 −0 2.6.13/usbvision_2.6.13.1.patch
  59. +2,507 −0 2.6.13/vesafb-tng-0.9-rc7-r1-2.6.13-rc6.patch
  60. +2,972 −0 2.6.14/4000_grml_logo.diff
  61. +2,592 −0 2.6.14/4001_squashfs2.2-patch
  62. +3,034 −0 2.6.14/4002_vesafb-tng-1.0-rc1-r2-2.6.14.patch
  63. +23 −0 2.6.14/5000_linux-2.6.13-commandline.patch
  64. +1,559 −0 2.6.14/5001_linux-2.6.13-mppe-mppc-1.3.patch
  65. +11,598 −0 2.6.14/5002_speakup-20051028.patch
  66. +83 −0 2.6.14/5003_via-vt6410.patch
  67. +6,564 −0 2.6.14/5004_iteraid.patch
  68. +84,821 −0 2.6.14/5005_reiser4-for-2.6.14-1.patch
  69. +124 −0 2.6.14/README
  70. +686 −0 2.6.14/patch-2.6.14.2
  71. +26 −0 2.6.15/1100_netlink-rcv-skb-dos.patch
  72. +30 −0 2.6.15/1105_netfilter-pptp-crash-1.patch
  73. +152 −0 2.6.15/1110_netfilter-pptp-crash2.patch
  74. +36 −0 2.6.15/1900_select-correct-bridge-id.patch
  75. +33 −0 2.6.15/1915_netlink-oops.patch
  76. +36 −0 2.6.15/1920_ufs-inode-sem.patch
  77. +225 −0 2.6.15/2100_skge-memory-on-ring-changes.patch
  78. +296 −0 2.6.15/2300_ata-piix-suspend.patch
  79. +42 −0 2.6.15/2500_vgacon-doublescan.patch
  80. +2,972 −0 2.6.15/4000_grml_logo.diff
  81. +199 −0 2.6.15/4000_intel-ich8.patch
  82. +11 −0 2.6.15/4001_grml-version
  83. +2,592 −0 2.6.15/4002_squashfs-2.2.patch
  84. +23 −0 2.6.15/4003_linux-2.6.15-commandline.patch
  85. +5,266 −0 2.6.15/4100_sky2-0.12.patch
  86. +1,167 −0 2.6.15/4305_dm-bbr.patch
  87. +125 −0 2.6.15/4320_promise-pdc2037x.patch
  88. +11,408 −0 2.6.15/4900_speakup-20060103.patch
  89. +84,204 −0 2.6.15/5003_reiser4-for-2.6.15
  90. +4,395 −0 2.6.15/5004_reiser4-bugfix-patch.patch
  91. +6,564 −0 2.6.15/5005_iteraid.patch
  92. +21 −0 2.6.15/patches.applied
  93. +2,972 −0 2.6.16/4000_grml_logo.diff
  94. +11 −0 2.6.16/4001_grml_kernelversion.diff
  95. +23 −0 2.6.16/4002_linux-2.6.15-commandline.patch
  96. +4,173 −0 2.6.16/4003_squashfs-3.0.patch
  97. +207,523 −0 2.6.16/5001_reiser4_for_2.6.16
  98. +1,722 −0 2.6.16/5002_mmc-secure-digital.patch
  99. +11 −0 2.6.16/5003_libata-enable-atapi.patch
  100. +6,564 −0 2.6.16/5004_iteraid.patch
  101. +20 −0 2.6.16/5005_iteraid_fix_struct.patch
  102. +11,456 −0 2.6.16/5006_speakup-20060103.patch
  103. +31 −0 2.6.16/5007_speakup-highlight-tracking-amd64.patch
  104. +12 −0 2.6.16/5008_speakup_fix_speakup_paste_selection.patch
  105. +1,171 −0 2.6.16/5009_dm-bbr.patch
  106. +462 −0 2.6.16/5010_patch-2.6.16.1
  107. +158 −0 2.6.17/0000_README
  108. +2,341 −0 2.6.17/1000_2.6.17.7.patch
  109. +47 −0 2.6.17/1010_fix-budget-av-reinitialise_demod.patch
  110. +315 −0 2.6.17/2000_sky2-2.6.18-rc2.patch
  111. +49 −0 2.6.17/2300_usb-insufficient-power.patch
  112. +34 −0 2.6.17/2310_buslogic-pci-id-table.patch
  113. +49 −0 2.6.17/2410_sky2-NAPI-poll-fix.patch
  114. +28 −0 2.6.17/2600_serial-dz.patch
  115. +33 −0 2.6.17/2700_alsa-hda-lenovo-3000.patch
  116. +21,312 −0 2.6.17/4000_ipw3945-1.0.5-for-2.6.17.patch
  117. +25 −0 2.6.17/4005_bcm4319.patch
  118. +31 −0 2.6.17/4010_pcnet-cs-te-cf100.patch
  119. +77 −0 2.6.17/4015_forcedeth-new-ids.patch
  120. +28 −0 2.6.17/4020_asix-88178.patch
  121. +220 −0 2.6.17/4100_vt8251-sata.patch
  122. +1,171 −0 2.6.17/4105_dm-bbr.patch
  123. +77 −0 2.6.17/4110_nvidia-mcp61.patch
  124. +25 −0 2.6.17/4115_nvidia-sata-new.patch
  125. +56 −0 2.6.17/4120_ahci-nvidia-mcp65.patch
  126. +66 −0 2.6.17/4125_nvidia-ide-new.patch
  127. +29 −0 2.6.17/4130_jmicron-ahci.patch
  128. +134 −0 2.6.17/4135_promise-pdc2037x.patch
  129. +670 −0 2.6.17/4140_libata-acpi.patch
  130. +6,548 −0 2.6.17/4150_iteraid.patch
  131. +4,183 −0 2.6.17/4300_squashfs-3.0.patch
  132. +80,489 −0 2.6.17/4310_reiser4-for-2.6.17-1.patch
  133. +11,598 −0 2.6.17/4400_speakup-20060618.patch
  134. +11 −0 2.6.17/5000_grml-version.patch
  135. +2,972 −0 2.6.17/5001_grml_logo.patch
  136. +23 −0 2.6.17/5002_linux-2.6.17-commandline.patch
  137. +94 −0 2.6.18/0000_README
  138. +8,248 −0 2.6.18/1000_2.6.18.1.patch
  139. +30 −0 2.6.18/2500_via-irq-quirk-revert.patch
  140. +1,810 −0 2.6.18/4005_sky2-v1.9.patch
  141. +533 −0 2.6.18/4010_r8169-8168.patch
  142. +1,172 −0 2.6.18/4105_dm-bbr.patch
  143. +139 −0 2.6.18/4110_promise-pdc2037x.patch
  144. +6,548 −0 2.6.18/4150_iteraid.patch
  145. +4,237 −0 2.6.18/4300_squashfs-3.1.patch
  146. +11,662 −0 2.6.18/4400_speakup-20060814.patch
  147. +11 −0 2.6.18/5000_grml-version.patch
  148. +2,972 −0 2.6.18/5001_grml_logo.patch
  149. +23 −0 2.6.18/5002_linux-2.6.17-commandline.patch
  150. +3,178 −0 config/config-2.6.11-grml
  151. +3,227 −0 config/config-2.6.12-grml
  152. +2,217 −0 config/config-2.6.12-grml-small
  153. +3,297 −0 config/config-2.6.13-grml
  154. +3,341 −0 config/config-2.6.14-grml
  155. +3,421 −0 config/config-2.6.15-grml
  156. +2,481 −0 config/config-2.6.15-grml-small
  157. +3,497 −0 config/config-2.6.16-grml
  158. +3,571 −0 config/config-2.6.17-grml
  159. +3,687 −0 config/config-2.6.18-grml
  160. +5 −0 docs/commands.txt
  161. +155 −0 files/dontdiff
@@ -0,0 +1,78 @@
+
+
+If you do 'echo 0 0 > /proc/sys/vm/lowmem_reserve_ratio' the kernel gets a
+divide-by-zero.
+
+Prevent that, and fiddle with some whitespace too.
+
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+---
+
+ 25-akpm/mm/page_alloc.c | 21 +++++++++++++++------
+ 1 files changed, 15 insertions(+), 6 deletions(-)
+
+diff -puN mm/page_alloc.c~setup_per_zone_lowmem_reserve-oops-fix mm/page_alloc.c
+--- 25/mm/page_alloc.c~setup_per_zone_lowmem_reserve-oops-fix 2005-03-01 00:13:57.000000000 -0800
++++ 25-akpm/mm/page_alloc.c 2005-03-01 00:13:57.000000000 -0800
+@@ -37,13 +37,17 @@
+ #include <asm/tlbflush.h>
+ #include "internal.h"
+
+-/* MCD - HACK: Find somewhere to initialize this EARLY, or make this initializer cleaner */
++/*
++ * MCD - HACK: Find somewhere to initialize this EARLY, or make this
++ * initializer cleaner
++ */
+ nodemask_t node_online_map = { { [0] = 1UL } };
+ nodemask_t node_possible_map = NODE_MASK_ALL;
+ struct pglist_data *pgdat_list;
+ unsigned long totalram_pages;
+ unsigned long totalhigh_pages;
+ long nr_swap_pages;
++
+ /*
+ * results with 256, 32 in the lowmem_reserve sysctl:
+ * 1G machine -> (16M dma, 800M-16M normal, 1G-800M high)
+@@ -1924,15 +1928,20 @@ static void setup_per_zone_lowmem_reserv
+
+ for_each_pgdat(pgdat) {
+ for (j = 0; j < MAX_NR_ZONES; j++) {
+- struct zone * zone = pgdat->node_zones + j;
++ struct zone *zone = pgdat->node_zones + j;
+ unsigned long present_pages = zone->present_pages;
+
+ zone->lowmem_reserve[j] = 0;
+
+ for (idx = j-1; idx >= 0; idx--) {
+- struct zone * lower_zone = pgdat->node_zones + idx;
++ struct zone *lower_zone;
++
++ if (sysctl_lowmem_reserve_ratio[idx] < 1)
++ sysctl_lowmem_reserve_ratio[idx] = 1;
+
+- lower_zone->lowmem_reserve[j] = present_pages / sysctl_lowmem_reserve_ratio[idx];
++ lower_zone = pgdat->node_zones + idx;
++ lower_zone->lowmem_reserve[j] = present_pages /
++ sysctl_lowmem_reserve_ratio[idx];
+ present_pages += lower_zone->present_pages;
+ }
+ }
+@@ -2039,7 +2048,7 @@ module_init(init_per_zone_pages_min)
+ * changes.
+ */
+ int min_free_kbytes_sysctl_handler(ctl_table *table, int write,
+- struct file *file, void __user *buffer, size_t *length, loff_t *ppos)
++ struct file *file, void __user *buffer, size_t *length, loff_t *ppos)
+ {
+ proc_dointvec(table, write, file, buffer, length, ppos);
+ setup_per_zone_pages_min();
+@@ -2056,7 +2065,7 @@ int min_free_kbytes_sysctl_handler(ctl_t
+ * if in function of the boot time zone sizes.
+ */
+ int lowmem_reserve_ratio_sysctl_handler(ctl_table *table, int write,
+- struct file *file, void __user *buffer, size_t *length, loff_t *ppos)
++ struct file *file, void __user *buffer, size_t *length, loff_t *ppos)
+ {
+ proc_dointvec_minmax(table, write, file, buffer, length, ppos);
+ setup_per_zone_lowmem_reserve();
+_
@@ -0,0 +1,78 @@
+---------------------
+PatchSet 3130
+Date: 2005/04/20 10:12:35
+Author: tiwai
+Branch: HEAD
+Tag: (none)
+Log:
+Summary: prevent oops & dead keyboard on usb unplugging while the device is being used
+
+Without this patch, some usb kobjects, which are parents to
+the usx2y's kobjects can be freed before the usx2y's.
+This led to an oops in get_kobj_path_length() and a dead
+keyboard, when the usx2y's kobjects were freed.
+The patch ensures the correct sequence.
+Tested ok on kernel 2.6.12-rc2.
+
+Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
+
+Members:
+ usb/usbaudio.c:1.119->1.120
+ usb/usx2y/usbusx2y.c:1.9->1.10
+
+Index: /sound/usb/usbaudio.c
+diff -u /sound/usb/usbaudio.c.old /sound/usb/usbaudio.c
+--- /sound/usb/usbaudio.c.old Wed Mar 23 23:17:17 2005
++++ /sound/usb/usbaudio.c Wed Apr 20 02:12:35 2005
+@@ -3289,7 +3289,7 @@
+ }
+ usb_chip[chip->index] = NULL;
+ up(&register_mutex);
+- snd_card_free_in_thread(card);
++ snd_card_free(card);
+ } else {
+ up(&register_mutex);
+ }
+Index: /sound/usb/usx2y/usbusx2y.c
+diff -u /sound/usb/usx2y/usbusx2y.c.old /sound/usb/usx2y/usbusx2y.c
+--- /sound/usb/usx2y/usbusx2y.c.old Fri Jan 28 02:21:48 2005
++++ /sound/usb/usx2y/usbusx2y.c Wed Apr 20 02:12:35 2005
+@@ -1,6 +1,11 @@
+ /*
+ * usbusy2y.c - ALSA USB US-428 Driver
+ *
++2005-04-14 Karsten Wiese
++ Version 0.8.7.2:
++ Call snd_card_free() instead of snd_card_free_in_thread() to prevent oops with dead keyboard symptom.
++ Tested ok with kernel 2.6.12-rc2.
++
+ 2004-12-14 Karsten Wiese
+ Version 0.8.7.1:
+ snd_pcm_open for rawusb pcm-devices now returns -EBUSY if called without rawusb's hwdep device being open.
+@@ -143,7 +148,7 @@
+
+
+ MODULE_AUTHOR("Karsten Wiese <annabellesgarden@yahoo.de>");
+-MODULE_DESCRIPTION("TASCAM "NAME_ALLCAPS" Version 0.8.7.1");
++MODULE_DESCRIPTION("TASCAM "NAME_ALLCAPS" Version 0.8.7.2");
+ MODULE_LICENSE("GPL");
+ MODULE_SUPPORTED_DEVICE("{{TASCAM(0x1604), "NAME_ALLCAPS"(0x8001)(0x8005)(0x8007) }}");
+
+@@ -430,8 +435,6 @@
+ if (ptr) {
+ usX2Ydev_t* usX2Y = usX2Y((snd_card_t*)ptr);
+ struct list_head* p;
+- if (usX2Y->chip_status == USX2Y_STAT_CHIP_HUP) // on 2.6.1 kernel snd_usbmidi_disconnect()
+- return; // calls us back. better leave :-) .
+ usX2Y->chip.shutdown = 1;
+ usX2Y->chip_status = USX2Y_STAT_CHIP_HUP;
+ usX2Y_unlinkSeq(&usX2Y->AS04);
+@@ -443,7 +446,7 @@
+ }
+ if (usX2Y->us428ctls_sharedmem)
+ wake_up(&usX2Y->us428ctls_wait_queue_head);
+- snd_card_free_in_thread((snd_card_t*)ptr);
++ snd_card_free((snd_card_t*)ptr);
+ }
+ }
+
@@ -0,0 +1,160 @@
+
+Subject: [PATCH 2/4] Enable hardware tapping for ALPS touchpads
+
+When hardware tapping is disabled on an ALPS touchpad, the touchpad
+generates exactly the same data for a single tap and a fast double
+tap. The effect is that the second tap in the double tap sequence is
+lost.
+
+To fix this problem, this patch enables hardware tapping and converts
+the resulting tap and gesture bits to standards finger pressure values
+(z), which is what mousedev.c and the userspace X driver expects.
+
+Signed-off-by: Peter Osterlund <petero2@telia.com>
+---
+
+ linux-petero/drivers/input/mouse/alps.c | 53 +++++++++++++++++++++++++-------
+ linux-petero/drivers/input/mouse/alps.h | 4 ++
+ 2 files changed, 47 insertions(+), 10 deletions(-)
+
+diff -puN drivers/input/mouse/alps.c~alps-hwtaps drivers/input/mouse/alps.c
+--- linux/drivers/input/mouse/alps.c~alps-hwtaps 2005-03-06 18:26:39.000000000 +0100
++++ linux-petero/drivers/input/mouse/alps.c 2005-03-06 18:26:39.000000000 +0100
+@@ -78,10 +78,12 @@ struct alps_model_info {
+
+ static void alps_process_packet(struct psmouse *psmouse, struct pt_regs *regs)
+ {
++ struct alps_data *priv = psmouse->private;
+ unsigned char *packet = psmouse->packet;
+ struct input_dev *dev = &psmouse->dev;
+ int x, y, z;
+ int left = 0, right = 0, middle = 0;
++ int ges, fin;
+
+ input_regs(dev, regs);
+
+@@ -123,6 +125,27 @@ static void alps_process_packet(struct p
+ return;
+ }
+
++ ges = packet[2] & 1; /* gesture bit */
++ fin = packet[2] & 2; /* finger bit */
++
++ /* Convert hardware tap to a reasonable Z value */
++ if (ges && !fin)
++ z = 40;
++
++ /*
++ * A "tap and drag" operation is reported by the hardware as a transition
++ * from (!fin && ges) to (fin && ges). This should be translated to the
++ * sequence Z>0, Z==0, Z>0, so the Z==0 event has to be generated manually.
++ */
++ if (ges && fin && !priv->prev_fin) {
++ input_report_abs(dev, ABS_X, x);
++ input_report_abs(dev, ABS_Y, y);
++ input_report_abs(dev, ABS_PRESSURE, 0);
++ input_report_key(dev, BTN_TOOL_FINGER, 0);
++ input_sync(dev);
++ }
++ priv->prev_fin = fin;
++
+ if (z > 30) input_report_key(dev, BTN_TOUCH, 1);
+ if (z < 25) input_report_key(dev, BTN_TOUCH, 0);
+
+@@ -133,7 +156,6 @@ static void alps_process_packet(struct p
+ input_report_abs(dev, ABS_PRESSURE, z);
+ input_report_key(dev, BTN_TOOL_FINGER, z > 0);
+
+- left |= (packet[2] ) & 1;
+ left |= (packet[3] ) & 1;
+ right |= (packet[3] >> 1) & 1;
+ if (packet[0] == 0xff) {
+@@ -335,7 +357,7 @@ static int alps_reconnect(struct psmouse
+ return -1;
+
+ if (param[0] & 0x04)
+- alps_tap_mode(psmouse, 0);
++ alps_tap_mode(psmouse, 1);
+
+ if (alps_absolute_mode(psmouse)) {
+ printk(KERN_ERR "alps.c: Failed to enable absolute mode\n");
+@@ -351,40 +373,47 @@ static int alps_reconnect(struct psmouse
+ static void alps_disconnect(struct psmouse *psmouse)
+ {
+ psmouse_reset(psmouse);
++ kfree(psmouse->private);
+ }
+
+ int alps_init(struct psmouse *psmouse)
+ {
++ struct alps_data *priv;
+ unsigned char param[4];
+ int model;
+
++ psmouse->private = priv = kmalloc(sizeof(struct alps_data), GFP_KERNEL);
++ if (!priv)
++ goto init_fail;
++ memset(priv, 0, sizeof(struct alps_data));
++
+ if ((model = alps_get_model(psmouse)) < 0)
+- return -1;
++ goto init_fail;
+
+ printk(KERN_INFO "ALPS Touchpad (%s) detected\n",
+ model == ALPS_MODEL_GLIDEPOINT ? "Glidepoint" : "Dualpoint");
+
+ if (model == ALPS_MODEL_DUALPOINT && alps_passthrough_mode(psmouse, 1))
+- return -1;
++ goto init_fail;
+
+ if (alps_get_status(psmouse, param)) {
+ printk(KERN_ERR "alps.c: touchpad status report request failed\n");
+- return -1;
++ goto init_fail;
+ }
+
+ if (param[0] & 0x04) {
+- printk(KERN_INFO " Disabling hardware tapping\n");
+- if (alps_tap_mode(psmouse, 0))
+- printk(KERN_WARNING "alps.c: Failed to disable hardware tapping\n");
++ printk(KERN_INFO " Enabling hardware tapping\n");
++ if (alps_tap_mode(psmouse, 1))
++ printk(KERN_WARNING "alps.c: Failed to enable hardware tapping\n");
+ }
+
+ if (alps_absolute_mode(psmouse)) {
+ printk(KERN_ERR "alps.c: Failed to enable absolute mode\n");
+- return -1;
++ goto init_fail;
+ }
+
+ if (model == ALPS_MODEL_DUALPOINT && alps_passthrough_mode(psmouse, 0))
+- return -1;
++ goto init_fail;
+
+ psmouse->dev.evbit[LONG(EV_REL)] |= BIT(EV_REL);
+ psmouse->dev.relbit[LONG(REL_X)] |= BIT(REL_X);
+@@ -408,6 +437,10 @@ int alps_init(struct psmouse *psmouse)
+ psmouse->pktsize = 6;
+
+ return 0;
++
++init_fail:
++ kfree(priv);
++ return -1;
+ }
+
+ int alps_detect(struct psmouse *psmouse, int set_properties)
+diff -puN drivers/input/mouse/alps.h~alps-hwtaps drivers/input/mouse/alps.h
+--- linux/drivers/input/mouse/alps.h~alps-hwtaps 2005-03-06 18:26:39.000000000 +0100
++++ linux-petero/drivers/input/mouse/alps.h 2005-03-06 18:26:39.000000000 +0100
+@@ -14,4 +14,8 @@
+ int alps_detect(struct psmouse *psmouse, int set_properties);
+ int alps_init(struct psmouse *psmouse);
+
++struct alps_data {
++ int prev_fin; /* Finger bit from previous packet */
++};
++
+ #endif
+_
Oops, something went wrong.

0 comments on commit 845c7eb

Please sign in to comment.