1. 28 Jun, 2013 8 commits
    • Maarten Lankhorst's avatar
      drm/cirrus: do not attempt to acquire a reservation while in an interrupt handler · 19d4b72c
      Maarten Lankhorst authored
      Mutexes should not be acquired in interrupt context. While the trylock
      fastpath is arguably safe on all implementations, the slowpath
      unlock path definitely isn't. This fixes the following lockdep splat:
      
      [   13.044313] ------------[ cut here ]------------
      [   13.044367] WARNING: at /c/kernel-tests/src/tip/kernel/mutex.c:858 mutex_trylock+0x87/0x220()
      [   13.044378] DEBUG_LOCKS_WARN_ON(in_interrupt())
      [   13.044378] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc4-00296-ga2963dd #20
      [   13.044379] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
      [   13.044390]  0000000000000009 ffff88000de039f8 ffffffff81fc86d5 ffff88000de03a38
      [   13.044395]  ffffffff810d511b ffff880000000018 ffff88000f33c690 0000000000000001
      [   13.044398]  00000000000003f0 ffff88000f4677c8 0000000000000000 ffff88000de03a98
      [   13.044400] Call Trace:
      [   13.044412]  <IRQ>  [<ffffffff81fc86d5>] dump_stack+0x19/0x1b
      [   13.044441]  [<ffffffff810d511b>] warn_slowpath_common+0x6b/0x90
      [   13.044445]  [<ffffffff810d51a6>] warn_slowpath_fmt+0x46/0x50
      [   13.044448]  [<ffffffff81fd34d7>] mutex_trylock+0x87/0x220
      [   13.044482]  [<ffffffff8186484d>] cirrus_dirty_update+0x1cd/0x330
      [   13.044486]  [<ffffffff818649e8>] cirrus_imageblit+0x38/0x50
      [   13.044506]  [<ffffffff8165782e>] soft_cursor+0x22e/0x240
      [   13.044510]  [<ffffffff81656c31>] bit_cursor+0x581/0x5b0
      [   13.044525]  [<ffffffff815de9f4>] ? vsnprintf+0x124/0x670
      [   13.044529]  [<ffffffff81651333>] ? get_color.isra.16+0x43/0x130
      [   13.044532]  [<ffffffff81653fca>] fbcon_cursor+0x18a/0x1d0
      [   13.044535]  [<ffffffff816566b0>] ? update_attr.isra.2+0xa0/0xa0
      [   13.044556]  [<ffffffff81754b82>] hide_cursor+0x32/0xa0
      [   13.044565]  [<ffffffff81755bd3>] vt_console_print+0x103/0x3b0
      [   13.044569]  [<ffffffff810d58ac>] ? print_time+0x9c/0xb0
      [   13.044576]  [<ffffffff810d5960>] ? print_prefix+0xa0/0xc0
      [   13.044580]  [<ffffffff810d63f6>] call_console_drivers.constprop.6+0x146/0x1f0
      [   13.044593]  [<ffffffff815f9b38>] ? do_raw_spin_unlock+0xc8/0x100
      [   13.044597]  [<ffffffff810d6f27>] console_unlock+0x2f7/0x460
      [   13.044600]  [<ffffffff810d787a>] vprintk_emit+0x59a/0x5e0
      [   13.044615]  [<ffffffff81fb676c>] printk+0x4d/0x4f
      [   13.044650]  [<ffffffff82ba5511>] print_local_APIC+0x28/0x41c
      [   13.044672]  [<ffffffff8114db55>] generic_smp_call_function_single_interrupt+0x145/0x2b0
      [   13.044688]  [<ffffffff8106f9e7>] smp_call_function_single_interrupt+0x27/0x40
      [   13.044697]  [<ffffffff81fd8f72>] call_function_single_interrupt+0x72/0x80
      [   13.044707]  <EOI>  [<ffffffff81078166>] ? native_safe_halt+0x6/0x10
      [   13.044717]  [<ffffffff811425cd>] ? trace_hardirqs_on+0xd/0x10
      [   13.044738]  [<ffffffff8104f669>] default_idle+0x59/0x120
      [   13.044742]  [<ffffffff810501e8>] arch_cpu_idle+0x18/0x40
      [   13.044754]  [<ffffffff811320c5>] cpu_startup_entry+0x235/0x410
      [   13.044763]  [<ffffffff81f9e781>] rest_init+0xd1/0xe0
      [   13.044766]  [<ffffffff81f9e6b5>] ? rest_init+0x5/0xe0
      [   13.044778]  [<ffffffff82b93ec2>] start_kernel+0x425/0x493
      [   13.044781]  [<ffffffff82b93810>] ? repair_env_string+0x5e/0x5e
      [   13.044786]  [<ffffffff82b93595>] x86_64_start_reservations+0x2a/0x2c
      [   13.044789]  [<ffffffff82b93688>] x86_64_start_kernel+0xf1/0x100
      [   13.044799] ---[ end trace 113ad28772af4058 ]---
      Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      19d4b72c
    • Maarten Lankhorst's avatar
      drm/nouveau: always select ACPI_VIDEO if ACPI is enabled. · 1107276c
      Maarten Lankhorst authored
      Having nouveau builtin would still allow ACPI_VIDEO to be used as external module
      if some of the deps for acpi_video have not been met, which would result in a linking
      failure. Solve this by selecting all dependencies as well.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Acked-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      1107276c
    • Maarten Lankhorst's avatar
      drm/nouveau: complain loudly if buffer is pinned during destruction · 27f06b2d
      Maarten Lankhorst authored
      Shouldn't happen, and we invert the struct_mutex with reservation here,
      potentially leading to deadlocks. Once reservations become lockdep annotated,
      lockdep will go splat on this.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Acked-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      27f06b2d
    • Maarten Lankhorst's avatar
      drm/nouveau: fixup fbcon failure paths · 1e2bd5f5
      Maarten Lankhorst authored
      Add missing calls, and fix a leak from forgetting to call the unpin function.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Acked-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      1e2bd5f5
    • Maarten Lankhorst's avatar
    • Maarten Lankhorst's avatar
    • Maarten Lankhorst's avatar
      drm/radeon: implement unpin function, v2 · 280cf211
      Maarten Lankhorst authored
      Changes since v1:
      - Fixup compiler warning in unpin function.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reviewed-by: default avatarJerome Glisse <jglisse@redhat.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      280cf211
    • Dave Airlie's avatar
      Merge branch 'drm-next-3.11' of git://people.freedesktop.org/~agd5f/linux into drm-next · 5b0207bb
      Dave Airlie authored
      This is the pull request for radeon for 3.11.  Highlights include:
      
      - Support for CIK (Sea Islands) asics: 3D, compute, UVD
      - DPM (Dynamic Power Management) support for 6xx-SI
      - ASPM support for 6xx-SI
      - Assorted bug fixes
      
      * 'drm-next-3.11' of git://people.freedesktop.org/~agd5f/linux: (168 commits)
        drm/radeon/SI: fix TDP adjustment in set_power_state
        drm/radeon/NI: fix TDP adjustment in set_power_state
        drm/radeon: fix endian issues in atombios dpm code
        drm/radeon/dpm: fix UVD clock setting on SI
        drm/radeon/dpm: fix UVD clock setting on cayman
        drm/radeon/dpm: add support for setting UVD clock on rv6xx
        drm/radeon/dpm: add support for setting UVD clock on rs780
        drm/radeon: fix typo in ni_print_power_state
        drm/radeon: fix typo in cik_select_se_sh()
        drm/radeon/si: fix typo in function name
        drm/radeon/dpm: fix typo in setting uvd clock
        drm/radeon/dpm: add dpm_set_power_state failure output (si)
        add dpm_set_power_state failure output (7xx-ni)
        drm/radeon/dpm: add dpm_set_power_state failure output (7xx-ni)
        drm/radeon/dpm: add dpm_enable failure output (si)
        drm/radeon/dpm: add dpm_enable failure output (7xx-ni)
        drm/radeon/kms: add dpm support for SI (v7)
        drm/radeon: switch SI to use radeon_ucode.h
        drm/radeon: add SI to r600_is_internal_thermal_sensor()
        drm/radeon/dpm/rs780: properly catch errors in dpm setup
        ...
      5b0207bb
  2. 27 Jun, 2013 32 commits