aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
Commit message (Expand)AuthorAge
* Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dto...Linus Torvalds2009-01-06
|\
| * Input: i8042 - add Dell Vostro 1510 to nomux listJiri Kosina2009-01-06
| * Input: gtco - use USB endpoint APIJulia Lawall2008-12-30
| * Input: add support for Maple controller as a joystickAdrian McMenamin2008-12-30
| * Input: atkbd - broaden the Dell DMI signaturesMatthew Garrett2008-12-30
| * Input: HIL drivers - add MODULE_ALIAS()Helge Deller2008-12-30
| * Input: add support for enhanced rotary controller on pxa930 and pxa935Yong Yao2008-12-29
| * Input: add support for trackball on pxa930 and pxa935Yong Yao2008-12-29
| * Input: add da9034 touchscreen supportEric Miao2008-12-23
| * Input: ads7846 - strict_strtoul takes unsigned longHarvey Harrison2008-12-23
| * Input: make some variables and functions staticRoel Kluin2008-12-20
| * Input: add tsc2007 based touchscreen driverKwangwoo Lee2008-12-20
| * Input: psmouse - add module parameters to control OLPC touchpad delaysPaul Fox2008-12-20
| * Input: i8042 - add Gigabyte M912 netbook to noloop exception tableOzan Çağlayan2008-12-20
| * Input: atkbd - Samsung NC10 key repeat fixStuart Hopkins2008-12-20
| * Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptopRikard Ljungstrand2008-12-20
| * Merge commit 'v2.6.28-rc9' into nextDmitry Torokhov2008-12-20
| |\
| * | Input: libps2 - handle 0xfc responses from devicesDmitry Torokhov2008-11-24
| * | Input: add support for Wacom W8001 penabled serial touchscreenJaya Kumar2008-11-24
| * | Input: synaptics - report multi-taps only if supported by the devicePeter Hutterer2008-11-20
| * | Input: add joystick driver for Walkera WK-0701 RC transmitterPeter Popovec2008-11-19
| * | Input: pcspkr - fix PIT lockup on some chipsetsZoltan Devai2008-11-19
| * | Input: usbtouchscreen - fix TSC-10 DM USB controllers without EEPROMNuno Lucas2008-11-19
| * | Input: struct device - replace bus_id with dev_name(), dev_set_name()Kay Sievers2008-10-30
| * | Input: omap-keypad - allow more than 6 rowsPeter Ujfalusi2008-10-29
| * | Input: omap-keypad - interrupt disable fixPeter Ujfalusi2008-10-29
| * | Input: appletouch - driver refactoringStelian Pop2008-10-29
| * | Input: gpio-keys - add flag to allow auto repeatDominic Curran2008-10-27
| * | Input: xilinx_ps2 - various cleanupsJohn Linn2008-10-27
| * | Input: refactor evdev 32bit compat to be shareable with uinputPhilip Langdale2008-10-27
* | | Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2008-12-30
|\ \ \
| * \ \ Merge branch 'omap3-upstream' of git://git.kernel.org/pub/scm/linux/kernel/gi...Russell King2008-12-15
| |\ \ \
| | * | | ARM: OMAP: use gpio_to_irqDavid Brownell2008-12-10
| | | |/ | | |/|
| * | | Merge git://git.marvell.com/orion into develRussell King2008-12-13
| |\| |
| * | | Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmia...Russell King2008-12-02
| |\ \ \
| | * | | [ARM] pxa: move AC97 register definitions into dedicated regs-ac97.hEric Miao2008-12-02
| * | | | Merge branch 'clps7500' into develRussell King2008-11-27
| |\ \ \ \
| | * | | | [ARM] clps7500: remove supportRussell King2008-11-27
| | |/ / /
| * / / / [ARM] pxa: don't pass a consumer clock name for devices with unique clocksRussell King2008-11-27
| |/ / /
* | | | Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/ke...Linus Torvalds2008-12-30
|\ \ \ \
| | \ \ \
| | \ \ \
| *-. \ \ \ Merge branches 'timers/clocksource', 'timers/hpet', 'timers/hrtimers', 'timer...Ingo Molnar2008-12-25
| |\ \ \ \ \ | | | |/ / / | | |/| / / | | |_|/ / | |/| | |
| | | * | hrtimer: removing all ur callback modesPeter Zijlstra2008-11-25
| | |/ /
* | / / sh: sh_mobile keysc clock framework supportMagnus Damm2008-12-22
|/ / /
* | | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dto...Linus Torvalds2008-11-30
|\ \ \
| * | | Input: wacom - add support for new USB Tablet PCsPing Cheng2008-11-26
| * | | Input: replace spin_lock_bh with spin_lock_irqsave in ml_ff_playbackArjan van de Ven2008-11-24
| * | | Input: i8042 - add Compal Hel80 laptop to nomux blacklistDmitry Torokhov2008-11-19
| * | | Input: cm109 - add keymap for ATCom AU-100 phoneDaniel Gimpelevich2008-11-11
| * | | Input: psmouse - fix incorrect validate_byte check in OLPC protocolAndres Salomon2008-11-11
| * | | Input: atkbd - cancel delayed work before freeing its structureJiri Pirko2008-11-11
lass="hl opt">; thislist[i].theres_more; i++) { lowest = thislist[i].start_adr; for(mitr = i+1; thislist[mitr-1].theres_more; mitr++) if(thislist[mitr].start_adr < lowest) { lowest = thislist[mitr].start_adr; swapi = mitr; } if(lowest == thislist[i].start_adr) continue; tmpaddr = thislist[swapi].start_adr; tmpsize = thislist[swapi].num_bytes; for(mitr = swapi; mitr > i; mitr--) { thislist[mitr].start_adr = thislist[mitr-1].start_adr; thislist[mitr].num_bytes = thislist[mitr-1].num_bytes; } thislist[i].start_adr = tmpaddr; thislist[i].num_bytes = tmpsize; } return; } /* Initialize the memory lists based upon the prom version. */ void __init prom_meminit(void) { int node = 0; unsigned int iter, num_regs; struct linux_mlist_v0 *mptr; /* ptr for traversal */ switch(prom_vers) { case PROM_V0: /* Nice, kind of easier to do in this case. */ /* First, the total physical descriptors. */ for(mptr = (*(romvec->pv_v0mem.v0_totphys)), iter=0; mptr; mptr=mptr->theres_more, iter++) { prom_phys_total[iter].start_adr = mptr->start_adr; prom_phys_total[iter].num_bytes = mptr->num_bytes; prom_phys_total[iter].theres_more = &prom_phys_total[iter+1]; } prom_phys_total[iter-1].theres_more = NULL; /* Second, the total prom taken descriptors. */ for(mptr = (*(romvec->pv_v0mem.v0_prommap)), iter=0; mptr; mptr=mptr->theres_more, iter++) { prom_prom_taken[iter].start_adr = mptr->start_adr; prom_prom_taken[iter].num_bytes = mptr->num_bytes; prom_prom_taken[iter].theres_more = &prom_prom_taken[iter+1]; } prom_prom_taken[iter-1].theres_more = NULL; /* Last, the available physical descriptors. */ for(mptr = (*(romvec->pv_v0mem.v0_available)), iter=0; mptr; mptr=mptr->theres_more, iter++) { prom_phys_avail[iter].start_adr = mptr->start_adr; prom_phys_avail[iter].num_bytes = mptr->num_bytes; prom_phys_avail[iter].theres_more = &prom_phys_avail[iter+1]; } prom_phys_avail[iter-1].theres_more = NULL; /* Sort all the lists. */ prom_sortmemlist(prom_phys_total); prom_sortmemlist(prom_prom_taken); prom_sortmemlist(prom_phys_avail); break; case PROM_V2: case PROM_V3: /* Grrr, have to traverse the prom device tree ;( */ node = prom_getchild(prom_root_node); node = prom_searchsiblings(node, "memory"); num_regs = prom_getproperty(node, "available", (char *) prom_reg_memlist, sizeof(prom_reg_memlist)); num_regs = (num_regs/sizeof(struct linux_prom_registers)); for(iter=0; iter<num_regs; iter++) { prom_phys_avail[iter].start_adr = (char *) prom_reg_memlist[iter].phys_addr; prom_phys_avail[iter].num_bytes = (unsigned long) prom_reg_memlist[iter].reg_size; prom_phys_avail[iter].theres_more = &prom_phys_avail[iter+1]; } prom_phys_avail[iter-1].theres_more = NULL; num_regs = prom_getproperty(node, "reg", (char *) prom_reg_memlist, sizeof(prom_reg_memlist)); num_regs = (num_regs/sizeof(struct linux_prom_registers)); for(iter=0; iter<num_regs; iter++) { prom_phys_total[iter].start_adr = (char *) prom_reg_memlist[iter].phys_addr; prom_phys_total[iter].num_bytes = (unsigned long) prom_reg_memlist[iter].reg_size; prom_phys_total[iter].theres_more = &prom_phys_total[iter+1]; } prom_phys_total[iter-1].theres_more = NULL; node = prom_getchild(prom_root_node); node = prom_searchsiblings(node, "virtual-memory"); num_regs = prom_getproperty(node, "available", (char *) prom_reg_memlist, sizeof(prom_reg_memlist)); num_regs = (num_regs/sizeof(struct linux_prom_registers)); /* Convert available virtual areas to taken virtual * areas. First sort, then convert. */ for(iter=0; iter<num_regs; iter++) { prom_prom_taken[iter].start_adr = (char *) prom_reg_memlist[iter].phys_addr; prom_prom_taken[iter].num_bytes = (unsigned long) prom_reg_memlist[iter].reg_size; prom_prom_taken[iter].theres_more = &prom_prom_taken[iter+1]; } prom_prom_taken[iter-1].theres_more = NULL; prom_sortmemlist(prom_prom_taken); /* Finally, convert. */ for(iter=0; iter<num_regs; iter++) { prom_prom_taken[iter].start_adr = prom_prom_taken[iter].start_adr + prom_prom_taken[iter].num_bytes; prom_prom_taken[iter].num_bytes = prom_prom_taken[iter+1].start_adr - prom_prom_taken[iter].start_adr; } prom_prom_taken[iter-1].num_bytes = 0xffffffff - (unsigned long) prom_prom_taken[iter-1].start_adr; /* Sort the other two lists. */ prom_sortmemlist(prom_phys_total); prom_sortmemlist(prom_phys_avail); break; case PROM_SUN4: #ifdef CONFIG_SUN4 /* how simple :) */ prom_phys_total[0].start_adr = NULL; prom_phys_total[0].num_bytes = *(sun4_romvec->memorysize); prom_phys_total[0].theres_more = NULL; prom_prom_taken[0].start_adr = NULL; prom_prom_taken[0].num_bytes = 0x0; prom_prom_taken[0].theres_more = NULL; prom_phys_avail[0].start_adr = NULL; prom_phys_avail[0].num_bytes = *(sun4_romvec->memoryavail); prom_phys_avail[0].theres_more = NULL; #endif break; default: break; }; /* Link all the lists into the top-level descriptor. */ prom_memlist.v0_totphys=&prom_ptot_ptr; prom_memlist.v0_prommap=&prom_ptak_ptr; prom_memlist.v0_available=&prom_pavl_ptr; return; } /* This returns a pointer to our libraries internal v0 format * memory descriptor. */ struct linux_mem_v0 * prom_meminfo(void) { return &prom_memlist; }