21 May, 2011

2 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (152 commits)
    powerpc: Fix hard CPU IDs detection
    powerpc/pmac: Update via-pmu to new syscore_ops
    powerpc/kvm: Fix the build for 32-bit Book 3S (classic) processors
    powerpc/kvm: Fix kvmppc_core_pending_dec
    powerpc: Remove last piece of GEMINI
    powerpc: Fix for Pegasos keyboard and mouse
    powerpc: Make early memory scan more resilient to out of order nodes
    powerpc/pseries/iommu: Cleanup ddw naming
    powerpc/pseries/iommu: Find windows after kexec during boot
    powerpc/pseries/iommu: Remove ddw property when destroying window
    powerpc/pseries/iommu: Add additional checks when changing iommu mask
    powerpc/pseries/iommu: Use correct return type in dupe_ddw_if_already_created
    powerpc: Remove unused/obsolete CONFIG_XICS
    misc: Add CARMA DATA-FPGA Programmer support
    misc: Add CARMA DATA-FPGA Access Driver
    powerpc: Make IRQ_NOREQUEST last to clear, first to set
    powerpc: Integrated Flash controller device tree bindings
    powerpc/85xx: Create dts of each core in CAMP mode for P1020RDB
    powerpc/85xx: Fix PCIe IDSEL for Px020RDB
    powerpc/85xx: P2020 DTS: re-organize dts files
    ...

    Linus Torvalds
     
  • Commit e66eed651fd1 ("list: remove prefetching from regular list
    iterators") removed the include of prefetch.h from list.h, which
    uncovered several cases that had apparently relied on that rather
    obscure header file dependency.

    So this fixes things up a bit, using

    grep -L linux/prefetch.h $(git grep -l '[^a-z_]prefetchw*(' -- '*.[ch]')
    grep -L 'prefetchw*(' $(git grep -l 'linux/prefetch.h' -- '*.[ch]')

    to guide us in finding files that either need
    inclusion, or have it despite not needing it.

    There are more of them around (mostly network drivers), but this gets
    many core ones.

    Reported-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

20 May, 2011

8 commits

  • commit 9d07bc841c9779b4d7902e417f4e509996ce805d
    "powerpc: Properly handshake CPUs going out of boot spin loop"

    Would cause a miscalculation of the hard CPU ID. It removes breaking
    out of the loop when finding a match with a processor, thus the "i"
    used as an index in the intserv array is always incorrect

    This broke interrupt on my PowerMac laptop.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • Manual merge of arch/powerpc/kernel/smp.c and add missing scheduler_ipi()
    call to arch/powerpc/platforms/cell/interrupt.c

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • Benjamin Herrenschmidt
     
  • Commits a5d4f3ad3a ("powerpc: Base support for exceptions using
    HSRR0/1") and 673b189a2e ("powerpc: Always use SPRN_SPRG_HSCRATCH0
    when running in HV mode") cause compile and link errors for 32-bit
    classic Book 3S processors when KVM is enabled. This fixes these
    errors.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Benjamin Herrenschmidt

    Paul Mackerras
     
  • The vcpu->arch.pending_exceptions field is a bitfield indexed by
    interrupt priority number as returned by kvmppc_book3s_vec2irqprio.
    However, kvmppc_core_pending_dec was using an interrupt vector shifted
    by 7 as the bit index. Fix it to use the irqprio value for the
    decrementer interrupt instead. This problem was found by code
    inspection.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Benjamin Herrenschmidt

    Paul Mackerras
     
  • …/gregkh/driver-core-2.6

    * 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (44 commits)
    debugfs: Silence DEBUG_STRICT_USER_COPY_CHECKS=y warning
    sysfs: remove "last sysfs file:" line from the oops messages
    drivers/base/memory.c: fix warning due to "memory hotplug: Speed up add/remove when blocks are larger than PAGES_PER_SECTION"
    memory hotplug: Speed up add/remove when blocks are larger than PAGES_PER_SECTION
    SYSFS: Fix erroneous comments for sysfs_update_group().
    driver core: remove the driver-model structures from the documentation
    driver core: Add the device driver-model structures to kerneldoc
    Translated Documentation/email-clients.txt
    RAW driver: Remove call to kobject_put().
    reboot: disable usermodehelper to prevent fs access
    efivars: prevent oops on unload when efi is not enabled
    Allow setting of number of raw devices as a module parameter
    Introduce CONFIG_GOOGLE_FIRMWARE
    driver: Google Memory Console
    driver: Google EFI SMI
    x86: Better comments for get_bios_ebda()
    x86: get_bios_ebda_length()
    misc: fix ti-st build issues
    params.c: Use new strtobool function to process boolean inputs
    debugfs: move to new strtobool
    ...

    Fix up trivial conflicts in fs/debugfs/file.c due to the same patch
    being applied twice, and an unrelated cleanup nearby.

    Linus Torvalds
     
  • …kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)
    sched: Fix and optimise calculation of the weight-inverse
    sched: Avoid going ahead if ->cpus_allowed is not changed
    sched, rt: Update rq clock when unthrottling of an otherwise idle CPU
    sched: Remove unused parameters from sched_fork() and wake_up_new_task()
    sched: Shorten the construction of the span cpu mask of sched domain
    sched: Wrap the 'cfs_rq->nr_spread_over' field with CONFIG_SCHED_DEBUG
    sched: Remove unused 'this_best_prio arg' from balance_tasks()
    sched: Remove noop in alloc_rt_sched_group()
    sched: Get rid of lock_depth
    sched: Remove obsolete comment from scheduler_tick()
    sched: Fix sched_domain iterations vs. RCU
    sched: Next buddy hint on sleep and preempt path
    sched: Make set_*_buddy() work on non-task entities
    sched: Remove need_migrate_task()
    sched: Move the second half of ttwu() to the remote cpu
    sched: Restructure ttwu() some more
    sched: Rename ttwu_post_activation() to ttwu_do_wakeup()
    sched: Remove rq argument from ttwu_stat()
    sched: Remove rq->lock from the first half of ttwu()
    sched: Drop rq->lock from sched_exec()
    ...

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: Fix rt_rq runtime leakage bug

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (34 commits)
    PM: Introduce generic prepare and complete callbacks for subsystems
    PM: Allow drivers to allocate memory from .prepare() callbacks safely
    PM: Remove CONFIG_PM_VERBOSE
    Revert "PM / Hibernate: Reduce autotuned default image size"
    PM / Hibernate: Add sysfs knob to control size of memory for drivers
    PM / Wakeup: Remove useless synchronize_rcu() call
    kmod: always provide usermodehelper_disable()
    PM / ACPI: Remove acpi_sleep=s4_nonvs
    PM / Wakeup: Fix build warning related to the "wakeup" sysfs file
    PM: Print a warning if firmware is requested when tasks are frozen
    PM / Runtime: Rework runtime PM handling during driver removal
    Freezer: Use SMP barriers
    PM / Suspend: Do not ignore error codes returned by suspend_enter()
    PM: Fix build issue in clock_ops.c for CONFIG_PM_RUNTIME unset
    PM: Revert "driver core: platform_bus: allow runtime override of dev_pm_ops"
    OMAP1 / PM: Use generic clock manipulation routines for runtime PM
    PM: Remove sysdev suspend, resume and shutdown operations
    PM / PowerPC: Use struct syscore_ops instead of sysdevs for PM
    PM / UNICORE32: Use struct syscore_ops instead of sysdevs for PM
    PM / AVR32: Use struct syscore_ops instead of sysdevs for PM
    ...

    Linus Torvalds
     

19 May, 2011

30 commits

  • It seems that Adrian is getting old. He removed almost everything of
    GEMINI in commit c53653130 ("[POWERPC] Remove the broken Gemini
    support") except this piece.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Benjamin Herrenschmidt

    Sebastian Siewior
     
  • [See http://lists.ozlabs.org/pipermail/linuxppc-dev/2010-October/086424.html
    and followups. Part of the commit message is directly copied from that.]

    Commit 540c6c392f01887dcc96bef0a41e63e6c1334f01 tries to find i8042 IRQs in
    the device-tree but doesn't fall back to the old hardcoded 1 and 12 in all
    failure cases.

    Specifically, the case where the device-tree contains nothing matching
    pnpPNP,303 or pnpPNP,f03 doesn't seem to be handled well. It sort of falls
    through to the old code, but leaves the IRQs set to 0.

    Signed-off-by: Gabriel Paubert
    Signed-off-by: Benjamin Herrenschmidt

    Gabriel Paubert
     
  • We keep track of the size of the lowest block of memory and call
    setup_initial_memory_limit() only after we've parsed them all

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Milton Miller

    Benjamin Herrenschmidt
     
  • When using a property refering to the availibily of dynamic dma windows
    call it ddw_avail not ddr_avail.

    dupe_ddw_if_already_created does not dupilcate anything, it only finds
    and reuses the windows we already created, so rename it to
    find_existing_ddw. Also, it does not need the pci device node, so
    remove that argument.

    Signed-off-by: Milton Miller
    Signed-off-by: Nishanth Aravamudan
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Move the discovery of windows previously setup from when the pci driver
    calls set_dma_mask to an arch_initcall.

    When kexecing into a kernel with dynamic dma windows allocated, we need
    to find the windows early so that memory hot remove will be able to
    delete the tces mapping the to be removed memory and memory hotplug add
    will map the new memory into the window. We should not wait for the
    driver to be loaded and the device to be probed. The iommu init hooks
    are before kmalloc is setup, so defer to arch_initcall.

    Signed-off-by: Milton Miller
    Signed-off-by: Nishanth Aravamudan
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • If we destroy the window, we need to remove the property recording that
    we setup the window. Otherwise the next kernel we kexec will be
    confused.

    Also we should remove the property if even if we don't find the
    ibm,ddw-applicable window or if one of the property sizes is unexpected;
    presumably these came from a prior kernel via kexec, and we will not be
    maintaining the window with respect to memory hotplug.

    Signed-off-by: Milton Miller
    Signed-off-by: Nishanth Aravamudan
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Do not check dma supported until we have chosen the right dma ops.
    Check that the device is pci before treating it as such.

    Check the mask is supported by the selected dma ops before
    committing it.

    We only need to set iommu ops if it is not the current ops; this
    avoids searching the tree for the iommu table unnecessarily.

    Signed-off-by: Milton Miller
    Signed-off-by: Nishanth Aravamudan
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Otherwise we get silent truncations.

    Signed-off-by: Nishanth Aravamudan
    Cc: Anton Blanchard
    Cc: Milton Miller
    Cc: linuxppc-dev@ozlabs.org
    Signed-off-by: Benjamin Herrenschmidt

    Nishanth Aravamudan
     
  • Benjamin Herrenschmidt
     
  • Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • When creating an irq, don't allow a concurent driver request until
    we have caled map, which will likley call set_chip_and_handler to
    change the irq_chip and its operations.

    Similarly, when tearing down an IRQ, make sure no new uses come
    along while we change the irq back to the nop chip and then reset
    the descriptor to freed status.

    Signed-off-by: Milton Miller
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Create the dts files for each core and splits the devices between the two
    cores for P1020RDB.

    Core0 has core0 to have memory, l2, i2c, spi, gpio, tdm, dma, usb, eth1,
    eth2, sdhc, crypto, global-util, message, pci0, pci1, msi.
    Core1 has l2, eth0, crypto.

    MPIC is shared between two cores but each core will protect its interrupts
    from other core by using "protected-sources" of mpic.

    Fix compatible property for global-util node of P1020si.dtsi.

    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Kumar Gala

    Prabhakar Kushwaha
     
  • PCIe device in legacy mode can trigger interrupts using the wires #INTA,
    #INTB ,#INTC and #INTD. PCI devices are obligated to use #INTx for
    interrupts under legacy mode. Each PCI slot or device is typically wired
    to different inputs on the interrupt controller.

    So, Define interrupt-map and interrupt-map-mask properties for device tree
    to of map each PCI interrupt signal to the inputs of the interrupt
    controller.

    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Kumar Gala

    Prabhakar Kushwaha
     
  • Creates P2020si.dtsi, containing information for P2020 SoC. Modifies dts
    files for P2020 based systems to use dtsi file.

    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Kumar Gala

    Prabhakar Kushwaha
     
  • Creates P1020si.dtsi, containing information for the P1020 SoC. Modifies dts
    files for P1020 based systems to use dtsi file

    Signed-off-by: Prabhakar Kushwaha
    Acked-by: Grant Likely
    Signed-off-by: Kumar Gala

    Prabhakar Kushwaha
     
  • This debug option has no overhead other than a slight increase in
    kernel size, and makes bug reports more useful. While some end users
    may prefer to save the space, as a default on a kernel config aimed
    primarily at development on reference boards, it should be enabled.

    Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • Even though support for the p5020's on-chip ethernet is not yet upstream,
    it is not appropriate to disable all networking support (including
    loopback, unix domain sockets, external ethernet devices, etc) in the
    defconfig. The networking settings are taken from mpc85xx_smp_defconfig,
    minus the drivers for ethernet devices not found on any current e5500
    chip.

    The other changes are the result of running "make savedefconfig".

    Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • Add support for MPIC timers as requestable interrupt sources.

    Based on http://patchwork.ozlabs.org/patch/20941/ by Dave Liu.

    Signed-off-by: Dave Liu
    Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • There is no hardware interrupt 0xf7. But now we can express the timer
    interrupt using 4-cell interrupts. This requires converting all of the
    other interrupt specifiers in the tree as well.

    Also add the second timer group, and fix the reg property to only
    describe the timer registers.

    Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • If the video mode is set to 16-, 24-, or 32-bit pixels, then the pixel data
    contains actual levels of red, blue, and green. However, if the video mode
    is set to 8-bit pixels, then the 8-bit value represents an index into color
    table. This is called "palette mode" on the Freescale DIU video controller.

    The DIU driver does not currently support palette mode, but the MPC8610 HPCD
    board file returned a non-zero (although incorrect) pixel format value for
    8-bit mode.

    Signed-off-by: Timur Tabi
    Signed-off-by: Kumar Gala

    Timur Tabi
     
  • It may trigger a warning in fs/proc/generic.c:__xlate_proc_name() when
    trying to add an entry for the interrupt handler to sysfs.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Timur Tabi
    Signed-off-by: Kumar Gala

    Geert Uytterhoeven
     
  • Without this, we attempt to use doorbells for IPIs, and end up
    branching to some bad address. Plus, even for the exceptions
    we don't implement, it's good to handle it and get a message out.

    Signed-off-by: Scott Wood
    Signed-off-by: Kumar Gala

    Scott Wood
     
  • Signed-off-by: Kumar Gala

    Kumar Gala
     
  • Kumar Gala
     
  • The only references to the irq_map[].host field are internal to
    arch/powerpc/kernel/irq.c

    Signed-off-by: Milton Miller
    Acked-by: Grant Likely
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Some irq_host implementations are using virq_to_host to check if
    they are the irq_host for a virtual irq. To allow us to make space
    versus time tradeoffs, replace this usage with an assertive
    virq_is_host that confirms or denies the irq is associated with the
    given irq_host.

    Signed-off-by: Milton Miller
    Acked-by: Grant Likely
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Instead of checking for rogue msi numbers via the irq_map host field
    set the chip_data to h.host_data (which is the msic struct pointer)
    at map and compare it in get_irq.

    Signed-off-by: Milton Miller
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • Building on Grant's efforts to remove the irq_map array, this patch
    moves spider-pics use of virq_to_host() to use irq_data_get_chip_data
    and sets the irq chip data in the map call, like most other interrupt
    controllers in powerpc.

    Signed-off-by: Milton Miller
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller
     
  • It was called from irq_create_mapping if that was called for a host
    and hwirq that was previously mapped, "to update the flags". But the
    only implementation was in beat_interrupt and all it did was repeat a
    hypervisor call without error checking that was performed with error
    checking at the beginning of the map hook. In addition, the comment on
    the beat remap hook says it will only called once for a given mapping,
    which would apply to map not remap.

    All flags should be known by the time the match hook is called, before
    we call the map hook. Removing this mostly unused hook will simpify
    the requirements of irq_domain concept.

    Signed-off-by: Milton Miller
    Signed-off-by: Benjamin Herrenschmidt

    Milton Miller