1. 29 May, 2013 2 commits
    • Nicolas Pitre's avatar
      drivers/bus: arm-cci: function to enable CCI ports from early boot code · 62158f81
      Nicolas Pitre authored
      This provides cci_enable_port_for_self().  This is the counterpart to
      cci_disable_port_by_cpu(self).
      
      This is meant to be called from the MCPM machine specific power_up_setup
      callback code when the appropriate affinity level needs to be initialized.
      The code therefore has to be position independent as the MMU is still off
      and it cannot rely on any stack space.
      Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
      Reviewed-by: default avatarDave Martin <dave.martin@linaro.org>
      62158f81
    • Lorenzo Pieralisi's avatar
      drivers: bus: add ARM CCI support · ed69bdd8
      Lorenzo Pieralisi authored
      On ARM multi-cluster systems coherency between cores running on
      different clusters is managed by the cache-coherent interconnect (CCI).
      It allows broadcasting of TLB invalidates and memory barriers and it
      guarantees cache coherency at system level through snooping of slave
      interfaces connected to it.
      
      This patch enables the basic infrastructure required in Linux to handle and
      programme the CCI component.
      
      Non-local variables used by the CCI management functions called by power
      down function calls after disabling the cache must be flushed out to main
      memory in advance, otherwise incoherency of those values may occur if they
      are sitting in the cache of some other CPU when power down functions
      execute. Driver code ensures that relevant data structures are flushed
      from inner and outer caches after the driver probe is completed.
      
      CCI slave port resources are linked to set of CPUs through bus masters
      phandle properties that link the interface resources to masters node in
      the device tree.
      
      Documentation describing the CCI DT bindings is provided with the patch.
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
      ed69bdd8
  2. 22 May, 2013 2 commits
    • Russell King's avatar
      Merge tag '3.10-rc2-psci-ops-11-tag' of... · 78ecad01
      Russell King authored
      Merge tag '3.10-rc2-psci-ops-11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen into devel-stable
      
      Pull psci_smp_ops support from Stefano Stabellini:
      It contains the generic PSCI patch and the smp_init patch that we
      discussed so much about.  I think it would be helpful for other
      people if you could create a stable branch with these patches so
      that SoC devs can base their work on it.
      78ecad01
    • Russell King's avatar
      Merge branch 'for-next' of git://git.pengutronix.de/git/ukl/linux into devel-stable · f150abe1
      Russell King authored
      Pull ARM-v7M support from Uwe Kleine-König:
      "All but the last patch were in next since next-20130418 without issues.
      The last patch fixes a problem in combination with
      
        8164f7af (ARM: 7680/1: Detect support for SDIV/UDIV from ISAR0 register)
      
      which triggers a WARN_ON without an implemented read_cpuid_ext.
      
      The branch merges fine into v3.10-rc1 and I'd be happy if you pulled it
      for 3.11-rc1. The only missing piece to be able to run a Cortex-M3 is
      the irqchip driver that will go in via Thomas Gleixner and platform
      specific stuff."
      f150abe1
  3. 21 May, 2013 9 commits
    • Linus Torvalds's avatar
      Merge branch 'leds-fixes-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 519fe2ec
      Linus Torvalds authored
      Pull LED subsystem fix from Bryan Wu.
      
      * 'leds-fixes-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: leds-gpio: reserve gpio before using it
      519fe2ec
    • Timo Teräs's avatar
      leds: leds-gpio: reserve gpio before using it · 803d19d5
      Timo Teräs authored
      This reverts commit a99d76f9 (leds: leds-gpio: use gpio_request_one)
      and commit 2d7c22f6 (leds: leds-gpio: set devm_gpio_request_one()
      flags param correctly) which was a fix of the first one.
      
      The conversion to devm_gpio_request in commit e3b1d44c (leds:
      leds-gpio: use devm_gpio_request_one) is not reverted.
      
      The problem is that gpio_cansleep() and gpio_get_value_cansleep()
      calls can crash if the gpio is not first reserved. Incidentally this
      same bug existed earlier and was fixed similarly in commit d95cbe61
      (leds: Fix potential leds-gpio oops). But the OOPS is real. It happens
      when GPIOs are provided by module which is not yet loaded.
      
      So this fixes the following BUG during my ALIX boot (3.9.2-vanilla):
      
      BUG: unable to handle kernel NULL pointer dereference at 0000004c
      IP: [<c11287d6>] __gpio_cansleep+0xe/0x1a
      *pde = 00000000
      Oops: 0000 [#1] SMP
      Modules linked in: leds_gpio(+) via_rhine mii cs5535_mfd mfd_core
      geode_rng rng_core geode_aes isofs nls_utf8 nls_cp437 vfat fat
      ata_generic pata_amd pata_cs5536 pata_acpi libata ehci_pci ehci_hcd
      ohci_hcd usb_storage usbcore usb_common sd_mod scsi_mod squashfs loop
      Pid: 881, comm: modprobe Not tainted 3.9.2 #1-Alpine
      EIP: 0060:[<c11287d6>] EFLAGS: 00010282 CPU: 0
      EIP is at __gpio_cansleep+0xe/0x1a
      EAX: 00000000 EBX: cf364018 ECX: c132b8b9 EDX: 00000000
      ESI: c13993a4 EDI: c1399370 EBP: cded9dbc ESP: cded9dbc
       DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      CR0: 8005003b CR2: 0000004c CR3: 0f0c4000 CR4: 00000090
      DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      DR6: ffff0ff0 DR7: 00000400
      Process modprobe (pid: 881, ti=cded8000 task=cf094aa0 task.ti=cded8000)
      Stack:
       cded9de0 d09471cb 00000000 c1399260 cf364014 00000000 c1399260 c1399254
       d0949014 cded9df4 c118cd59 c1399260 d0949014 d0949014 cded9e08 c118ba47
       c1399260 d0949014 c1399294 cded9e1c c118bb75 cded9e24 d0949014 00000000
      Call Trace:
       [<d09471cb>] gpio_led_probe+0xba/0x203 [leds_gpio]
       [<c118cd59>] platform_drv_probe+0x26/0x48
       [<c118ba47>] driver_probe_device+0x75/0x15c
       [<c118bb75>] __driver_attach+0x47/0x63
       [<c118a727>] bus_for_each_dev+0x3c/0x66
       [<c118b6f9>] driver_attach+0x14/0x16
       [<c118bb2e>] ? driver_probe_device+0x15c/0x15c
       [<c118b3d5>] bus_add_driver+0xbd/0x1bc
       [<d08b4000>] ? 0xd08b3fff
       [<d08b4000>] ? 0xd08b3fff
       [<c118bffc>] driver_register+0x74/0xec
       [<d08b4000>] ? 0xd08b3fff
       [<c118c8e8>] platform_driver_register+0x38/0x3a
       [<d08b400d>] gpio_led_driver_init+0xd/0x1000 [leds_gpio]
       [<c100116c>] do_one_initcall+0x6b/0x10f
       [<d08b4000>] ? 0xd08b3fff
       [<c105e918>] load_module+0x1631/0x1907
       [<c10975d6>] ? insert_vmalloc_vmlist+0x14/0x43
       [<c1098d5b>] ? __vmalloc_node_range+0x13e/0x15f
       [<c105ec50>] sys_init_module+0x62/0x77
       [<c1257888>] syscall_call+0x7/0xb
      EIP: [<c11287d6>] __gpio_cansleep+0xe/0x1a SS:ESP 0068:cded9dbc
      CR2: 000000000000004c
       ---[ end trace 5308fb20d2514822 ]---
      Signed-off-by: default avatarTimo Teräs <timo.teras@iki.f>
      Cc: Sachin Kamat <sachin.kamat@linaro.org>
      Cc: Raphael Assenat <raph@8d.com>
      Cc: Trent Piepho <tpiepho@freescale.com>
      Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
      Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
      Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Acked-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarBryan Wu <cooloney@gmail.com>
      803d19d5
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · e748a385
      Linus Torvalds authored
      Pull i2c bugfixes from Wolfram Sang:
       "These should have been in rc2 but I missed it due to working on devm
        longer than expected.
      
        There is one ID addition, since we are touching the driver anyhow.
        And the feature bit documentation is one outcome of a debug session
        and will make it easier for users to work around problems.  The rest
        is typical driver bugfixes."
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: suppress lockdep warning on delete_device
        i2c: mv64xxx: work around signals causing I2C transactions to be aborted
        i2c: i801: Document feature bits in modinfo
        i2c: designware: add Intel BayTrail ACPI ID
        i2c: designware: always clear interrupts before enabling them
        i2c: designware: fix RX FIFO overrun
      e748a385
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · c4ad180f
      Linus Torvalds authored
      Pull s390 update from Martin Schwidefsky:
       "An additional sysfs attribute for channel paths and a couple of bux
        fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/pgtable: fix ipte notify bit
        s390/xpram: mark xpram as non-rotational
        s390/smp: fix cpu re-scan vs. cpu state
        s390/cio: add channel ID sysfs attribute
        s390/ftrace: fix mcount adjustment
        s390: fix gmap_ipte_notifier vs. software dirty pages
        s390: disable pfmf for clear page instruction
        s390/disassembler: prevent endless loop in print_fn_code()
        s390: remove non existent reference to GENERIC_KERNEL_THREAD
      c4ad180f
    • Stephen Boyd's avatar
      ARM: smp: Drop RCU_NONIDLE usage in cpu_die() · aa033810
      Stephen Boyd authored
      Before f7b861b7 ("arm: Use generic idle loop") ARM would kill the
      CPU within the rcu idle section.  Now that the rcu_idle_enter()/exit()
      pair have been pushed lower down in the idle loop this is no longer true
      and so using RCU_NONIDLE here is no longer necessary and also harmful
      because RCU is not actually idle at this point.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa033810
    • Linus Torvalds's avatar
      Merge branch 'drm-radeon-sun-hainan' of git://people.freedesktop.org/~airlied/linux · 0ddaa974
      Linus Torvalds authored
      Pull radeon sun/hainan support from  Dave Airlie:
       "Since I know its outside the merge window, but since this is new hw I
        thought I'd try and provoke the new hw exception, it just fills in the
        blanks in the driver for the new AMD sun and hainan chipsets."
      
      * 'drm-radeon-sun-hainan' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon: add Hainan pci ids
        drm/radeon: add golden register settings for Hainan (v2)
        drm/radeon: sun/hainan chips do not have UVD (v2)
        drm/radeon: track which asics have UVD
        drm/radeon: radeon-asic updates for Hainan
        drm/radeon: fill in ucode loading support for Hainan
        drm/radeon: don't touch DCE or VGA regs on Hainan (v3)
        drm/radeon: fill in GPU init for Hainan (v2)
        drm/radeon: add chip family for Hainan
      0ddaa974
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 007b703b
      Linus Torvalds authored
      Pull DRM fixes from Dave Airlie:
       "This is just a set of nouveau and radeon fixes, the nouveau ones fix
        some suspend/resume regressions since use of copy engines and some
        fixes for Z compression on some newer chipsets."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon/dce2: use 10khz units for audio dto calculation
        drm/radeon: Fix VRAM size calculation for VRAM >= 4GB
        drm/radeon: Remove superfluous variable
        drm/nouveau: ensure channels are stopped before saving fences for suspend
        drm/nv50/fifo: prevent races between clients updating playlists
        drm/nvc0/fifo: prevent CHAN_TABLE_ERROR:CHANNEL_PENDING on fifo fini
        drm/nvc0/fifo: prevent races between clients updating playlists
        drm/nve0/fifo: prevent races between clients updating playlists
        drm/nve0/ltcg: poke the partition count into yet another register
        drm/nvc0/ltcg: fix handling of disabled partitions
        drm/nvc0/ce: disable ce1 on a number of chipsets
        drm/nouveau/bios: fix thinko in ZM_MASK_ADD opcode
        drm/nouveau: fix build with nv50->nvc0
      007b703b
    • Jon Medhurst's avatar
      ARM: Enable selection of SMP operations at boot time · b382b940
      Jon Medhurst authored
      Add a new 'smp_init' hook to machine_desc so platforms can specify a
      function to be used to setup smp ops instead of having a statically
      defined value.  The hook must return true when smp_ops are initialized.
      If false the static mdesc->smp_ops will be used by default.
      
      Add the definition of "bool" by including the linux/types.h file to
      asm/mach/arch.h and make it self-contained.
      Signed-off-by: default avatarJon Medhurst <tixy@linaro.org>
      Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
      Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Reviewed-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      b382b940
    • Stefano Stabellini's avatar
      arm: introduce psci_smp_ops · 05774088
      Stefano Stabellini authored
      Rename virt_smp_ops to psci_smp_ops and move them to arch/arm/kernel/psci_smp.c.
      Remove mach-virt/platsmp.c, now unused.
      Compile psci_smp if CONFIG_ARM_PSCI and CONFIG_SMP.
      
      Add a cpu_die smp_op based on psci_ops.cpu_off.
      
      Initialize PSCI before setting smp_ops in setup_arch.
      
      If PSCI is available on the platform, prefer psci_smp_ops over the
      platform smp_ops.
      Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      CC: arnd@arndb.de
      CC: marc.zyngier@arm.com
      CC: linux@arm.linux.org.uk
      CC: nico@linaro.org
      CC: rob.herring@calxeda.com
      05774088
  4. 20 May, 2013 27 commits