10 Jul, 2007

4 commits

  • Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • Implement _GTM/_STM support. acpi_gtm is added to ata_port which
    stores _GTM parameters over suspend/resume cycle. A new hook
    ata_acpi_on_suspend() is responsible for storing _GTM parameters
    during suspend. _STM is executed in ata_acpi_on_resume(). With this
    change, invoking _GTF is safe on IDE hierarchy and acpi_sata check
    before _GTF is removed.

    ata_acpi_gtm() and ata_acpi_stm() implementation is taken from Alan
    Cox's pata_acpi implementation. ata_acpi_gtm() is fixed such that the
    result parameter is not shifted by sizeof(union acpi_object).

    Signed-off-by: Tejun Heo
    Cc: Alan Cox
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • This patch reimplements ACPI invocation such that, instead of
    exporting ACPI details to the rest of libata, ACPI event handlers -
    ata_acpi_on_resume() and ata_acpi_on_devcfg() - are used. These two
    functions are responsible for determining whether specific ACPI method
    is used and when.

    On resume, _GTF is scheduled by setting ATA_DFLAG_ACPI_PENDING device
    flag. This is done this way to avoid performing the action on wrong
    device device (device swapping while suspended).

    On every ata_dev_configure(), ata_acpi_on_devcfg() is called, which
    performs _SDD and _GTF. _GTF is performed only after resuming and, if
    SATA, hardreset as the ACPI spec specifies. As _GTF may contain
    arbitrary commands, IDENTIFY page is re-read after _GTF taskfiles are
    executed.

    If one of ACPI methods fails, ata_acpi_on_devcfg() retries on the
    first failure. If it fails again on the second try, ACPI is disabled
    on the device. Note that successful configuration clears ACPI failed
    status.

    With all feature checks moved to the above two functions,
    do_drive_set_taskfiles() is trivial and thus collapsed into
    ata_acpi_exec_tfs(), which is now static and converted to return the
    number of executed taskfiles to be used by ata_acpi_on_resume(). As
    failures are handled properly, ata_acpi_push_id() now returns -errno
    on errors instead of unconditional zero.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • * Add acpi_handle to ata_host and ata_port. Rename
    ata_device->obj_handle to ->acpi_handle and move it above such that
    it doesn't get cleared on reconfiguration.

    * Replace ACPI node association which ata_acpi_associate() which is
    called once during host initialization. Unlike the previous
    implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to
    choose between IDE or SATA ACPI hierarchy and uses simple child look
    up instead of recursive walk to match the nodes. This is way safer
    and simpler. Please read the following message for more info.

    http://article.gmane.org/gmane.linux.ide/17554

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     

08 Jul, 2007

2 commits

  • The SiS966 has one additional PCI-ID 1180.

    If the chipset is using this PCI-ID, the primary channel is connected to the
    first PATA-port. The secondary channel is connected to SATA-ports in IDE
    emulation mode. The legacy IO-ports are used.

    The including of the PCI-ID into pata_sis is not sufficient, because the legacy
    driver in drivers/ide is initialized before pata_sis.

    Signed-off-by: Uwe Koziolek
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Uwe Koziolek
     
  • This patch fixes the following 2.6.22 regression with CONFIG_KALLSYMS=n:

    ...
    CC arch/m32r/kernel/traps.o
    In file included from /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/arch/m32r/kernel/traps.c:14:
    /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/include/linux/kallsyms.h: In function 'lookup_symbol_name':
    /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/include/linux/kallsyms.h:66: error: 'ERANGE' undeclared (first use in this function)
    /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/include/linux/kallsyms.h:66: error: (Each undeclared identifier is reported only once
    /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/include/linux/kallsyms.h:66: error: for each function it appears in.)
    /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/include/linux/kallsyms.h: In function 'lookup_symbol_attrs':
    /home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/include/linux/kallsyms.h:71: error: 'ERANGE' undeclared (first use in this function)
    make[2]: *** [arch/m32r/kernel/traps.o] Error 1

    Signed-off-by: Adrian Bunk
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

07 Jul, 2007

2 commits

  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores
    [MIPS] Add macros to encode processor revisions.
    [MIPS] RM7000: Enable ICACHE_REFILLS_WORKAROUND_WAR.
    [MIPS] SMTC: Fix cut'n'paste bug in Kconfig.debug
    [MIPS] Change libgcc-style functions from lib-y to obj-y
    [MIPS] Fix timer/performance interrupt detection
    [MIPS] AP/SP: Avoid triggering the 34K E125 performance issue
    [MIPS] 64-bit TO_PHYS_MASK macro for RM9000 processors

    Linus Torvalds
     
  • o Commit 1833d6bc72893265f22addd79cf52e6987496e0f broke the build if
    compiled with CONFIG_ES7000=y and CONFIG_X86_GENERICARCH=n

    arch/i386/kernel/built-in.o(.init.text+0x4fa9): In function `acpi_parse_madt':
    : undefined reference to `acpi_madt_oem_check'
    arch/i386/kernel/built-in.o(.init.text+0x7406): In function `smp_read_mpc':
    : undefined reference to `mps_oem_check'
    arch/i386/kernel/built-in.o(.init.text+0x8990): In function
    `connect_bsp_APIC':
    : undefined reference to `enable_apic_mode'
    make: *** [.tmp_vmlinux1] Error 1

    o Fix the build issue. Provided the definitions of missing functions.

    o Don't have ES7000 machine. Only compile tested.

    Cc: Len Brown
    Cc: Natalie Protasevich
    Cc: Roland Dreier
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     

06 Jul, 2007

6 commits

  • The idle loop goes to sleep using the WAIT instruction if !need_resched().
    This has is suffering from from a race condition that if if just after
    need_resched has returned 0 an interrupt might set TIF_NEED_RESCHED but
    we've just completed the test so go to sleep anyway. This would be
    trivial to fix by just disabling interrupts during that sequence as in:

    local_irq_disable();
    if (!need_resched())
    __asm__("wait");
    local_irq_enable();

    but the processor architecture leaves it undefined if a processor calling
    WAIT with interrupts disabled will ever restart its pipeline and indeed
    some processors have made use of the freedom provided by the architecture
    definition. This has been resolved and the Config7.WII bit indicates that
    the use of WAIT is safe on 24K, 24KE and 34K cores. It also is safe on
    74K starting revision 2.1.0 so enable the use of WAIT with interrupts
    disabled for 74K based on a c0_prid of at least that.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Older processors used to encode processor version and revision in two
    4-bit bitfields, the 4K seems to simply count up and even newer MTI cores
    have switched to use the 8-bits as 3:3:2 bitfield with the last field as
    the patch number.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
    opposes it being called that) where invalid instructions in the same
    I-cache line worth of instructions being fetched may case spurious
    exceptions.

    The workaround for this was only enabled for E9000 cores; enable it also
    for all RM7000-based platforms.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Andrew Sharp
    Signed-off-by: Ralf Baechle

    Andrew Sharp
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: document some of keycodes
    Input: add a new EV_SW SW_RADIO event, for radio switches on laptops
    Input: serio - take drv_mutex in serio_cleanup()
    Input: atkbd - use printk_ratelimit for spurious ACK messages
    Input: atkbd - throttle LED switching
    Input: i8042 - add HP Pavilion ZT1000 to the MUX blacklist

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Update defconfigs
    [POWERPC] Uninline and export virq_to_hw() for the pasemi_mac driver
    [POWERPC] Fix PMI breakage in cbe_cbufreq driver
    [POWERPC] Disable old EMAC driver in arch/powerpc

    Linus Torvalds
     

04 Jul, 2007

3 commits


03 Jul, 2007

1 commit


02 Jul, 2007

4 commits

  • Uninline virq_to_hw and export it so modules can use it. The alternative
    would be to export the irq_map array instead, but it's an infrequently
    called function, and keeping the array unexported seems considerably
    cleaner.

    This is needed so that the pasemi_mac driver can be compiled as a module.

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     
  • Commit 52ade9b3b97fd3bea42842a056fe0786c28d0555 changed the suspend code
    ordering to execute pm_ops->prepare() after the device model per-device
    .suspend() calls in order to fix some ACPI-related issues. Unfortunately, it
    broke the at91 platform which assumed that pm_ops->prepare() would be called
    before suspending devices.

    at91 used pm_ops->prepare() to get notified of the target system sleep state,
    so that it could use this information while suspending devices. However, with
    the current suspend code ordering pm_ops->prepare() is called too late for
    this purpose. Thus, at91 needs an additional method in 'struct pm_ops' that
    will be used for notifying the platform of the target system sleep state.
    Moreover, in the future such a method will also be needed by ACPI.

    This patch adds the .set_target() method to 'struct pm_ops' and makes the
    suspend code call it, if implemented, before executing the device model
    per-device .suspend() calls. It also modifies the at91 code to use
    pm_ops->set_target() instead of pm_ops->prepare().

    Signed-off-by: Rafael J. Wysocki
    Acked-by: David Brownell
    Cc: Pavel Machek
    Cc: Johannes Berg
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Provide stubs for more PCI bus/slot functions when CONFIG_PCI=n.

    Signed-off-by: Randy Dunlap
    Cc: Matt Domsch
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • /home/rpjday/AMD/k/topics/0_hi/hi1.c:15: error: dereferencing pointer to incomplete type
    /home/rpjday/AMD/k/topics/0_hi/hi1.c:16: error: dereferencing pointer to incomplete type

    Signed-off-by: Alexey Dobriyan
    Cc: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

30 Jun, 2007

1 commit


29 Jun, 2007

5 commits

  • Document some of keycodes, based on USB HUT 1.12 and current mapping
    in HID driver.

    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     
  • Many laptops have rf-kill physical switches that are not keys, but slider
    or rocker switches. Often (like in all ThinkPads with a radio kill slider
    switch), they have both a slider/rocker switch and a hot key.

    Trying to kludge a real switch to act like a key is not a very smart thing
    to do if you can help it, and it gets specially bad when you are going to
    have both in the same machine. So, we do the right thing and add an input
    EV_SW event for radio kill switches.

    The EV_SW SW_RADIO event is defined with positive logic, i.e. when the
    switch is active, the radios are to be enabled. When the switch is
    inactive, the radios are to be disabled.

    Signed-off-by: Henrique de Moraes Holschuh
    Signed-off-by: Dmitry Torokhov

    Henrique de Moraes Holschuh
     
  • As seen on sparc64-allnoconfig:

    CC arch/sparc64/mm/tlb.o
    In file included from arch/sparc64/mm/tlb.c:19:
    include/asm/tlb.h: In function 'tlb_flush_mmu':
    include/asm/tlb.h:60: warning: implicit declaration of function 'release_pages'
    include/asm/tlb.h: In function 'tlb_remove_page':
    include/asm/tlb.h:92: warning: implicit declaration of function 'page_cache_release'

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • Not all the world is an i386. Many architectures need 64-bit arguments to be
    aligned in suitable pairs of registers, and the original
    sys_sync_file_range(int, loff_t, loff_t, int) was therefore wasting an
    argument register for padding after the first integer. Since we don't
    normally have more than 6 arguments for system calls, that left no room for
    the final argument on some architectures.

    Fix this by introducing sys_sync_file_range2(int, int, loff_t, loff_t) which
    all fits nicely. In fact, ARM already had that, but called it
    sys_arm_sync_file_range. Move it to fs/sync.c and rename it, then implement
    the needed compatibility routine. And stop the missing syscall check from
    bitching about the absence of sys_sync_file_range() if we've implemented
    sys_sync_file_range2() instead.

    Tested on PPC32 and with 32-bit and 64-bit userspace on PPC64.

    Signed-off-by: David Woodhouse
    Acked-by: Russell King
    Cc: Arnd Bergmann
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • Fix gcc warning and add parameter checking when CONFIG_EVENTFD=n:

    fs/aio.c: In function 'aio_complete':
    fs/aio.c:955: warning: statement with no effect

    Signed-off-by: Randy Dunlap
    Cc: Davide Libenzi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

28 Jun, 2007

1 commit


27 Jun, 2007

8 commits


26 Jun, 2007

2 commits


25 Jun, 2007

1 commit