1. 24 12月, 2009 11 次提交
  2. 23 12月, 2009 29 次提交
    • E
      ASoC: Do not write to invalid registers on the wm9712. · 48e3cbb3
      Eric Millbrandt 提交于
      This patch fixes a bug where "virtual" registers were being written to the ac97
      bus.  This was causing unrelated registers to become corrupted (headphone 0x04,
      touchscreen 0x78, etc).
      
      This patch duplicates protection that was included in the wm9713 driver.
      Signed-off-by: NEric Millbrandt <emillbrandt@dekaresearch.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: stable@kernel.org
      48e3cbb3
    • J
      quota: Improve checking of quota file header · 869835df
      Jan Kara 提交于
      When we are asked for vfsv0 quota format and the file is in vfsv1
      format (or vice versa), refuse to use the quota file. Also return
      with error when we don't like the header of quota file.
      Signed-off-by: NJan Kara <jack@suse.cz>
      869835df
    • Y
      jbd: jbd-debug and jbd2-debug should be writable · 765f8361
      Yin Kangkai 提交于
      jbd-debug and jbd2-debug is currently read-only (S_IRUGO), which is not
      correct. Make it writable so that we can start debuging.
      Signed-off-by: NYin Kangkai <kangkai.yin@intel.com>
      Reviewed-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      765f8361
    • D
      ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) · 39bc680a
      Dmitry Monakhov 提交于
      Unlock i_block_reservation_lock before vfs_dq_reserve_block().
      This patch fixes http://bugzilla.kernel.org/show_bug.cgi?id=14739
      
      CC: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      39bc680a
    • D
      ext4: Fix potential quota deadlock · d21cd8f1
      Dmitry Monakhov 提交于
      We have to delay vfs_dq_claim_space() until allocation context destruction.
      Currently we have following call-trace:
      ext4_mb_new_blocks()
        /* task is already holding ac->alloc_semp */
       ->ext4_mb_mark_diskspace_used
          ->vfs_dq_claim_space()  /*  acquire dqptr_sem here. Possible deadlock */
       ->ext4_mb_release_context() /* drop ac->alloc_semp here */
      
      Let's move quota claiming to ext4_da_update_reserve_space()
      
       =======================================================
       [ INFO: possible circular locking dependency detected ]
       2.6.32-rc7 #18
       -------------------------------------------------------
       write-truncate-/3465 is trying to acquire lock:
        (&s->s_dquot.dqptr_sem){++++..}, at: [<c025e73b>] dquot_claim_space+0x3b/0x1b0
      
       but task is already holding lock:
        (&meta_group_info[i]->alloc_sem){++++..}, at: [<c02ce962>] ext4_mb_load_buddy+0xb2/0x370
      
       which lock already depends on the new lock.
      
       the existing dependency chain (in reverse order) is:
      
       -> #3 (&meta_group_info[i]->alloc_sem){++++..}:
              [<c017d04b>] __lock_acquire+0xd7b/0x1260
              [<c017d5ea>] lock_acquire+0xba/0xd0
              [<c0527191>] down_read+0x51/0x90
              [<c02ce962>] ext4_mb_load_buddy+0xb2/0x370
              [<c02d0c1c>] ext4_mb_free_blocks+0x46c/0x870
              [<c029c9d3>] ext4_free_blocks+0x73/0x130
              [<c02c8cfc>] ext4_ext_truncate+0x76c/0x8d0
              [<c02a8087>] ext4_truncate+0x187/0x5e0
              [<c01e0f7b>] vmtruncate+0x6b/0x70
              [<c022ec02>] inode_setattr+0x62/0x190
              [<c02a2d7a>] ext4_setattr+0x25a/0x370
              [<c022ee81>] notify_change+0x151/0x340
              [<c021349d>] do_truncate+0x6d/0xa0
              [<c0221034>] may_open+0x1d4/0x200
              [<c022412b>] do_filp_open+0x1eb/0x910
              [<c021244d>] do_sys_open+0x6d/0x140
              [<c021258e>] sys_open+0x2e/0x40
              [<c0103100>] sysenter_do_call+0x12/0x32
      
       -> #2 (&ei->i_data_sem){++++..}:
              [<c017d04b>] __lock_acquire+0xd7b/0x1260
              [<c017d5ea>] lock_acquire+0xba/0xd0
              [<c0527191>] down_read+0x51/0x90
              [<c02a5787>] ext4_get_blocks+0x47/0x450
              [<c02a74c1>] ext4_getblk+0x61/0x1d0
              [<c02a7a7f>] ext4_bread+0x1f/0xa0
              [<c02bcddc>] ext4_quota_write+0x12c/0x310
              [<c0262d23>] qtree_write_dquot+0x93/0x120
              [<c0261708>] v2_write_dquot+0x28/0x30
              [<c025d3fb>] dquot_commit+0xab/0xf0
              [<c02be977>] ext4_write_dquot+0x77/0x90
              [<c02be9bf>] ext4_mark_dquot_dirty+0x2f/0x50
              [<c025e321>] dquot_alloc_inode+0x101/0x180
              [<c029fec2>] ext4_new_inode+0x602/0xf00
              [<c02ad789>] ext4_create+0x89/0x150
              [<c0221ff2>] vfs_create+0xa2/0xc0
              [<c02246e7>] do_filp_open+0x7a7/0x910
              [<c021244d>] do_sys_open+0x6d/0x140
              [<c021258e>] sys_open+0x2e/0x40
              [<c0103100>] sysenter_do_call+0x12/0x32
      
       -> #1 (&sb->s_type->i_mutex_key#7/4){+.+...}:
              [<c017d04b>] __lock_acquire+0xd7b/0x1260
              [<c017d5ea>] lock_acquire+0xba/0xd0
              [<c0526505>] mutex_lock_nested+0x65/0x2d0
              [<c0260c9d>] vfs_load_quota_inode+0x4bd/0x5a0
              [<c02610af>] vfs_quota_on_path+0x5f/0x70
              [<c02bc812>] ext4_quota_on+0x112/0x190
              [<c026345a>] sys_quotactl+0x44a/0x8a0
              [<c0103100>] sysenter_do_call+0x12/0x32
      
       -> #0 (&s->s_dquot.dqptr_sem){++++..}:
              [<c017d361>] __lock_acquire+0x1091/0x1260
              [<c017d5ea>] lock_acquire+0xba/0xd0
              [<c0527191>] down_read+0x51/0x90
              [<c025e73b>] dquot_claim_space+0x3b/0x1b0
              [<c02cb95f>] ext4_mb_mark_diskspace_used+0x36f/0x380
              [<c02d210a>] ext4_mb_new_blocks+0x34a/0x530
              [<c02c83fb>] ext4_ext_get_blocks+0x122b/0x13c0
              [<c02a5966>] ext4_get_blocks+0x226/0x450
              [<c02a5ff3>] mpage_da_map_blocks+0xc3/0xaa0
              [<c02a6ed6>] ext4_da_writepages+0x506/0x790
              [<c01de272>] do_writepages+0x22/0x50
              [<c01d766d>] __filemap_fdatawrite_range+0x6d/0x80
              [<c01d7b9b>] filemap_flush+0x2b/0x30
              [<c02a40ac>] ext4_alloc_da_blocks+0x5c/0x60
              [<c029e595>] ext4_release_file+0x75/0xb0
              [<c0216b59>] __fput+0xf9/0x210
              [<c0216c97>] fput+0x27/0x30
              [<c02122dc>] filp_close+0x4c/0x80
              [<c014510e>] put_files_struct+0x6e/0xd0
              [<c01451b7>] exit_files+0x47/0x60
              [<c0146a24>] do_exit+0x144/0x710
              [<c0147028>] do_group_exit+0x38/0xa0
              [<c0159abc>] get_signal_to_deliver+0x2ac/0x410
              [<c0102849>] do_notify_resume+0xb9/0x890
              [<c01032d2>] work_notifysig+0x13/0x21
      
       other info that might help us debug this:
      
       3 locks held by write-truncate-/3465:
        #0:  (jbd2_handle){+.+...}, at: [<c02e1f8f>] start_this_handle+0x38f/0x5c0
        #1:  (&ei->i_data_sem){++++..}, at: [<c02a57f6>] ext4_get_blocks+0xb6/0x450
        #2:  (&meta_group_info[i]->alloc_sem){++++..}, at: [<c02ce962>] ext4_mb_load_buddy+0xb2/0x370
      
       stack backtrace:
       Pid: 3465, comm: write-truncate- Not tainted 2.6.32-rc7 #18
       Call Trace:
        [<c0524cb3>] ? printk+0x1d/0x22
        [<c017ac9a>] print_circular_bug+0xca/0xd0
        [<c017d361>] __lock_acquire+0x1091/0x1260
        [<c016bca2>] ? sched_clock_local+0xd2/0x170
        [<c0178fd0>] ? trace_hardirqs_off_caller+0x20/0xd0
        [<c017d5ea>] lock_acquire+0xba/0xd0
        [<c025e73b>] ? dquot_claim_space+0x3b/0x1b0
        [<c0527191>] down_read+0x51/0x90
        [<c025e73b>] ? dquot_claim_space+0x3b/0x1b0
        [<c025e73b>] dquot_claim_space+0x3b/0x1b0
        [<c02cb95f>] ext4_mb_mark_diskspace_used+0x36f/0x380
        [<c02d210a>] ext4_mb_new_blocks+0x34a/0x530
        [<c02c601d>] ? ext4_ext_find_extent+0x25d/0x280
        [<c02c83fb>] ext4_ext_get_blocks+0x122b/0x13c0
        [<c016bca2>] ? sched_clock_local+0xd2/0x170
        [<c016be60>] ? sched_clock_cpu+0x120/0x160
        [<c016beef>] ? cpu_clock+0x4f/0x60
        [<c0178fd0>] ? trace_hardirqs_off_caller+0x20/0xd0
        [<c052712c>] ? down_write+0x8c/0xa0
        [<c02a5966>] ext4_get_blocks+0x226/0x450
        [<c016be60>] ? sched_clock_cpu+0x120/0x160
        [<c016beef>] ? cpu_clock+0x4f/0x60
        [<c017908b>] ? trace_hardirqs_off+0xb/0x10
        [<c02a5ff3>] mpage_da_map_blocks+0xc3/0xaa0
        [<c01d69cc>] ? find_get_pages_tag+0x16c/0x180
        [<c01d6860>] ? find_get_pages_tag+0x0/0x180
        [<c02a73bd>] ? __mpage_da_writepage+0x16d/0x1a0
        [<c01dfc4e>] ? pagevec_lookup_tag+0x2e/0x40
        [<c01ddf1b>] ? write_cache_pages+0xdb/0x3d0
        [<c02a7250>] ? __mpage_da_writepage+0x0/0x1a0
        [<c02a6ed6>] ext4_da_writepages+0x506/0x790
        [<c016beef>] ? cpu_clock+0x4f/0x60
        [<c016bca2>] ? sched_clock_local+0xd2/0x170
        [<c016be60>] ? sched_clock_cpu+0x120/0x160
        [<c016be60>] ? sched_clock_cpu+0x120/0x160
        [<c02a69d0>] ? ext4_da_writepages+0x0/0x790
        [<c01de272>] do_writepages+0x22/0x50
        [<c01d766d>] __filemap_fdatawrite_range+0x6d/0x80
        [<c01d7b9b>] filemap_flush+0x2b/0x30
        [<c02a40ac>] ext4_alloc_da_blocks+0x5c/0x60
        [<c029e595>] ext4_release_file+0x75/0xb0
        [<c0216b59>] __fput+0xf9/0x210
        [<c0216c97>] fput+0x27/0x30
        [<c02122dc>] filp_close+0x4c/0x80
        [<c014510e>] put_files_struct+0x6e/0xd0
        [<c01451b7>] exit_files+0x47/0x60
        [<c0146a24>] do_exit+0x144/0x710
        [<c017b163>] ? lock_release_holdtime+0x33/0x210
        [<c0528137>] ? _spin_unlock_irq+0x27/0x30
        [<c0147028>] do_group_exit+0x38/0xa0
        [<c017babb>] ? trace_hardirqs_on+0xb/0x10
        [<c0159abc>] get_signal_to_deliver+0x2ac/0x410
        [<c0102849>] do_notify_resume+0xb9/0x890
        [<c0178fd0>] ? trace_hardirqs_off_caller+0x20/0xd0
        [<c017b163>] ? lock_release_holdtime+0x33/0x210
        [<c0165b50>] ? autoremove_wake_function+0x0/0x50
        [<c017ba54>] ? trace_hardirqs_on_caller+0x134/0x190
        [<c017babb>] ? trace_hardirqs_on+0xb/0x10
        [<c0300ba4>] ? security_file_permission+0x14/0x20
        [<c0215761>] ? vfs_write+0x131/0x190
        [<c0214f50>] ? do_sync_write+0x0/0x120
        [<c0103115>] ? sysenter_do_call+0x27/0x32
        [<c01032d2>] work_notifysig+0x13/0x21
      
      CC: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      d21cd8f1
    • J
      quota: Fix 64-bit limits setting on 32-bit archs · 82fdfa92
      Jan Kara 提交于
      Fix warnings:
      fs/quota/quota_v2.c: In function ‘v2_read_file_info’:
      fs/quota/quota_v2.c:123: warning: integer constant is too large for ‘long’ type
      fs/quota/quota_v2.c:124: warning: integer constant is too large for ‘long’ type
      Reported-by: NJerry Leo <jerryleo860202@gmail.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      82fdfa92
    • E
      ext3: Replace lock/unlock_super() with an explicit lock for resizing · 96d2a495
      Eric Sandeen 提交于
      Use a separate lock to protect s_groups_count and the other block
      group descriptors which get changed via an on-line resize operation,
      so we can stop overloading the use of lock_super().
      
      Port of ext4 commit 32ed5058 by
      Theodore Ts'o <tytso@mit.edu>.
      
      CC: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      96d2a495
    • E
      ext3: Replace lock/unlock_super() with an explicit lock for the orphan list · b8a052d0
      Eric Sandeen 提交于
      Use a separate lock to protect the orphan list, so we can stop
      overloading the use of lock_super().
      
      Port of ext4 commit 3b9d4ed2
      by Theodore Ts'o <tytso@mit.edu>.
      
      CC: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      b8a052d0
    • E
      ext3: ext3_mark_recovery_complete() doesn't need to use lock_super · 4854a5f0
      Eric Sandeen 提交于
      The function ext3_mark_recovery_complete() is called from two call
      paths: either (a) while mounting the filesystem, in which case there's
      no danger of any other CPU calling write_super() until the mount is
      completed, and (b) while remounting the filesystem read-write, in
      which case the fs core has already locked the superblock.  This also
      allows us to take out a very vile unlock_super()/lock_super() pair in
      ext3_remount().
      
      Port of ext4 commit a63c9eb2 by
      Theodore Ts'o <tytso@mit.edu>.
      
      CC: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      4854a5f0
    • E
      ext3: Remove outdated comment about lock_super() · ed505ee4
      Eric Sandeen 提交于
      ext3_fill_super() is no longer called by read_super(), and it is no
      longer called with the superblock locked.  The
      unlock_super()/lock_super() is no longer present, so this comment is
      entirely superfluous.
      
      Port of ext4 commit 32ed5058 by
      Theodore Ts'o <tytso@mit.edu>.
      
      CC: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      ed505ee4
    • D
      quota: Move duplicated code to separate functions · dc52dd3a
      Dmitry Monakhov 提交于
      - for(..) { mark_dquot_dirty(); } -> mark_all_dquot_dirty()
      - for(..) { dput(); }             -> dqput_all()
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      dc52dd3a
    • D
      ext4: Convert to generic reserved quota's space management. · a9e7f447
      Dmitry Monakhov 提交于
      This patch also fixes write vs chown race condition.
      Acked-by: N"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      a9e7f447
    • D
      quota: decouple fs reserved space from quota reservation · fd8fbfc1
      Dmitry Monakhov 提交于
      Currently inode_reservation is managed by fs itself and this
      reservation is transfered on dquot_transfer(). This means what
      inode_reservation must always be in sync with
      dquot->dq_dqb.dqb_rsvspace. Otherwise dquot_transfer() will result
      in incorrect quota(WARN_ON in dquot_claim_reserved_space() will be
      triggered)
      This is not easy because of complex locking order issues
      for example http://bugzilla.kernel.org/show_bug.cgi?id=14739
      
      The patch introduce quota reservation field for each fs-inode
      (fs specific inode is used in order to prevent bloating generic
      vfs inode). This reservation is managed by quota code internally
      similar to i_blocks/i_bytes and may not be always in sync with
      internal fs reservation.
      
      Also perform some code rearrangement:
      - Unify dquot_reserve_space() and dquot_reserve_space()
      - Unify dquot_release_reserved_space() and dquot_free_space()
      - Also this patch add missing warning update to release_rsv()
        dquot_release_reserved_space() must call flush_warnings() as
        dquot_free_space() does.
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      fd8fbfc1
    • D
      Add unlocked version of inode_add_bytes() function · b462707e
      Dmitry Monakhov 提交于
      Quota code requires unlocked version of this function. Off course
      we can just copy-paste the code, but copy-pasting is always an evil.
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      b462707e
    • D
      ext3: quota macros cleanup [V2] · c459001f
      Dmitry Monakhov 提交于
      Currently all quota block reservation macros contains hardcoded "2"
      aka MAXQUOTAS value. This is no good because in some places it is not
      obvious to understand what does this digit represent. Let's introduce
      new macro with self descriptive name.
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      c459001f
    • P
      sched: Revert 738d2be4, simplify set_task_cpu() · 0c69774e
      Peter Zijlstra 提交于
      Effectively reverts 738d2be4.
      
      As demonstrated by Eric, we really need to call __set_task_cpu()
      early in the fork() path to properly initialize the various task
      state -- specifically the cgroup state through set_task_rq().
      
      [ we could probably fix this by explicitly calling
        __set_task_cpu() from   sched_fork(), but lets try that for the
        next cycle and simply revert to the old behaviour for now. ]
      Reported-by: NEric Paris <eparis@redhat.com>
      Tested-by: Eric Paris <eparis@redhat.com>,
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: efault@gmx.de
      LKML-Reference: <1261492999.4937.36.camel@laptop>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0c69774e
    • T
      ALSA: hda - Set mixer name after codec patch · f62faedb
      Takashi Iwai 提交于
      Postpone the mixer name setup after the codec patch since the codec
      patch may change the codec name string in itself.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f62faedb
    • D
      Merge remote branch 'korg/drm-radeon-next' into drm-linus · d94a5108
      Dave Airlie 提交于
      * korg/drm-radeon-next:
        drm/radeon/kms: add definitions for v4 power tables
        drm/radeon/kms: never combine LVDS with another encoder
        drm/radeon/kms: Check module arguments to be valid V2
        drm/radeon/kms: Avoid crash when trying to cleanup uninitialized structure
        drm/radeon/kms: add cvt mode if we only have lvds w/h and no edid (v4)
        drm/radeon/kms: add 3DC compression support
        drm/radeon/kms: allow rendering while no colorbuffer is set on r300
        drm/radeon/kms: enable memory clock reading on legacy (V2)
        drm/radeon/kms: prevent parallel AtomBIOS calls
        drm/radeon/kms: set proper default tv standard
        drm/radeon/kms: fix legacy rmx
        drm/radeon/kms/atom: fill in proper defines for digital setup
      d94a5108
    • A
      drm/radeon/kms: add definitions for v4 power tables · 0786201d
      Alex Deucher 提交于
      [airlied: just adding this for completeness to avoid drift between
      public atombios.h files]
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      0786201d
    • A
      drm/radeon/kms: never combine LVDS with another encoder · f56cd64f
      Alex Deucher 提交于
      When linking multiple encoders to a connector, make sure
      to not link LVDS with another connector.  Some bioses
      have the same i2c line for LVDS and VGA.
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      f56cd64f
    • J
      drm/radeon/kms: Check module arguments to be valid V2 · 36421338
      Jerome Glisse 提交于
      This patch add a function which check module argument to be
      valid. On invalid argument it prints a warning and setback
      the default value.
      
      V2: Allow 0 for vram limit & agp mode which are the default
      value
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      36421338
    • J
      drm/radeon/kms: Avoid crash when trying to cleanup uninitialized structure · 0a0c7596
      Jerome Glisse 提交于
      Add boolean to record if some part of the driver are initialized or
      not this allow to avoid a crash when trying to cleanup uninitialized
      structure members.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      0a0c7596
    • A
      drm/radeon/kms: add cvt mode if we only have lvds w/h and no edid (v4) · d2efdf6d
      Alex Deucher 提交于
      This fixes LVDS on some mac laptops without a panel edid.
      
      v2 - Set proper mode type flags
      v3 - Note that this is not neceesarily the exact panel mode,
      but an approximation based on the cvt formula.  For these
      systems we should ideally read the mode info out of the
      registers or add a mode table, but this works and is much
      simpler.
      v4 - Update comments and debug message.
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d2efdf6d
    • M
      drm/radeon/kms: add 3DC compression support · 512889f4
      Marek Olšák 提交于
      There are 2 formats:
      ATI1N: 64 bits per 4x4 block, one-channel format
      ATI2N: 128 bits per 4x4 block, two-channel format
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      512889f4
    • M
      drm/radeon/kms: allow rendering while no colorbuffer is set on r300 · 46c64d4b
      Marek Olšák 提交于
      Because hardware cannot disable all colorbuffers directly to do depth-only
      rendering, a user should:
      - disable reading from a colorbuffer in blending
      - disable fastfill
      - set the color channel mask to 0 to prevent writing to a colorbuffer
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      46c64d4b
    • R
      drm/radeon/kms: enable memory clock reading on legacy (V2) · 5ea597f3
      Rafał Miłecki 提交于
      V2: detect IGP cards (which don't have own memory)
      Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
      Acked-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      5ea597f3
    • R
      drm/radeon/kms: prevent parallel AtomBIOS calls · c31ad97f
      Rafał Miłecki 提交于
      This just adds a mutex around the atombios table execution
      so we don't call it from two contexts at once.
      Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c31ad97f
    • A
      drm/radeon/kms: set proper default tv standard · d79766fa
      Alex Deucher 提交于
      we were just using 1 before.
      
      reported on irc by soreau
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d79766fa
    • A
      drm/radeon/kms: fix legacy rmx · 310a82c8
      Alex Deucher 提交于
      This makes 640x480 on my R100 work again, both
      in aspect and centered mode.
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Tested-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      310a82c8