/* * linux/fs/block_dev.c * * Copyright (C) 1991, 1992 Linus Torvalds * Copyright (C) 2001 Andrea Arcangeli SuSE */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "internal.h" struct bdev_inode { struct block_device bdev; struct inode vfs_inode; }; static const struct address_space_operations def_blk_aops; static inline struct bdev_inode *BDEV_I(struct inode *inode) { return container_of(inode, struct bdev_inode, vfs_inode); } inline struct block_device *I_BDEV(struct inode *inode) { return &BDEV_I(inode)->bdev; } EXPORT_SYMBOL(I_BDEV); static sector_t max_block(struct block_device *bdev) { sector_t retval = ~((sector_t)0); loff_t sz = i_size_read(bdev->bd_inode); if (sz) { unsigned int size = block_size(bdev); unsigned int sizebits = blksize_bits(size); retval = (sz >> sizebits); } return retval; } /* Kill _all_ buffers and pagecache , dirty or not.. */ static void kill_bdev(struct block_device *bdev) { if (bdev->bd_inode->i_mapping->nrpages == 0) return; invalidate_bh_lrus(); truncate_inode_pages(bdev->bd_inode->i_mapping, 0); } int set_blocksize(struct block_device *bdev, int size) { /* Size must be a power of two, and between 512 and PAGE_SIZE */ if (size > PAGE_SIZE || size < 512 || !is_power_of_2(size)) return -EINVAL; /* Size cannot be smaller than the size supported by the device */ if (size < bdev_hardsect_size(bdev)) return -EINVAL; /* Don't change the size if it is same as current */ if (bdev->bd_block_size != size) { sync_blockdev(bdev); bdev->bd_block_size = size; bdev->bd_inode->i_blkbits = blksize_bits(size); kill_bdev(bdev); } return 0; } EXPORT_SYMBOL(set_blocksize); int sb_set_blocksize(struct super_block *sb, int size) { if (set_blocksize(sb->s_bdev, size)) return 0; /* If we get here, we know size is power of two * and it's value is between 512 and PAGE_SIZE */ sb->s_blocksize = size; sb->s_blocksize_bits = blksize_bits(size); return sb->s_blocksize; } EXPORT_SYMBOL(sb_set_blocksize); int sb_min_blocksize(struct super_block *sb, int size) { int minsize = bdev_hardsect_size(sb->s_bdev); if (size < minsize) size = minsize; return sb_set_blocksize(sb, size); } EXPORT_SYMBOL(sb_min_blocksize); static int blkdev_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh, int create) { if (iblock >= max_block(I_BDEV(inode))) { if (create) return -EIO; /* * for reads, we're just trying to fill a partial page. * return a hole, they will have to call get_block again * before they can fill it, and they will get -EIO at that * time */ return 0; } bh->b_bdev = I_BDEV(inode); bh->b_blocknr = iblock; set_buffer_mapped(bh); return 0; } static int blkdev_get_blocks(struct inode *inode, sector_t iblock, struct buffer_head *bh, int create) { sector_t end_block = max_block(I_BDEV(inode)); unsigned long max_blocks = bh->b_size >> inode->i_blkbits; if ((iblock + max_blocks) > end_block) { max_blocks = end_block - iblock; if ((long)max_blocks <= 0) { if (create) return -EIO; /* write fully beyond EOF */ /* * It is a read which is fully beyond EOF. We return * a !buffer_mapped buffer */ max_blocks = 0; } } bh->b_bdev = I_BDEV(inode); bh->b_blocknr = iblock; bh->b_size = max_blocks << inode->i_blkbits; if (max_blocks) set_buffer_mapped(bh); return 0; } static ssize_t blkdev_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov, loff_t offset, unsigned long nr_segs) { struct file *file = iocb->ki_filp; struct inode *inode = file->f_mapping->host; return blockdev_direct_IO_no_locking(rw, iocb, inode, I_BDEV(inode), iov, offset, nr_segs, blkdev_get_blocks, NULL); } /* * Write out and wait upon all the dirty data associated with a block * device via its mapping. Does not take the superblock lock. */ int sync_blockdev(struct block_device *bdev) { int ret = 0; if (bdev) ret = filemap_write_and_wait(bdev->bd_inode->i_mapping); return ret; } EXPORT_SYMBOL(sync_blockdev); /* * Write out and wait upon all dirty data associated with this * device. Filesystem data as well as the underlying block * device. Takes the superblock lock. */ int fsync_bdev(struct block_device *bdev) { struct super_block *sb = get_super(bdev); if (sb) { int res = fsync_super(sb); drop_super(sb); return res; } return sync_blockdev(bdev); } EXPORT_SYMBOL(fsync_bdev); /** * freeze_bdev -- lock a filesystem and force it into a consistent state * @bdev: blockdevice to lock * * This takes the block device bd_mount_sem to make sure no new mounts * happen on bdev until thaw_bdev() is called. * If a superblock is found on this device, we take the s_umount semaphore * on it to make sure nobody unmounts until the snapshot creation is done. * The reference counter (bd_fsfreeze_count) guarantees that only the last * unfreeze process can unfreeze the frozen filesystem actually when multiple * freeze requests arrive simultaneously. It counts up in freeze_bdev() and * count down in thaw_bdev(). When it becomes 0, thaw_bdev() will unfreeze * actually. */ struct super_block *freeze_bdev(struct block_device *bdev) { struct super_block *sb; int error = 0; mutex_lock(&bdev->bd_fsfreeze_mutex); if (bdev->bd_fsfreeze_count > 0) { bdev->bd_fsfreeze_count++; sb = get_super(bdev); mutex_unlock(&bdev->bd_fsfreeze_mutex); return sb; } bdev->bd_fsfreeze_count++; down(&bdev->bd_mount_sem); sb = get_super(bdev); if (sb && !(sb->s_flags & MS_RDONLY)) { sb->s_frozen = SB_FREEZE_WRITE; smp_wmb(); __fsync_super(sb); sb->s_frozen = SB_FREEZE_TRANS; smp_wmb(); sync_blockdev(sb->s_bdev); if (sb->s_op->freeze_fs) { error = sb->s_op->freeze_fs(sb); if (error) { printk(KERN_ERR "VFS:Filesystem freeze failed\n"); sb->s_frozen = SB_UNFROZEN; drop_super(sb); up(&bdev->bd_mount_sem); bdev->bd_fsfreeze_count--; mutex_unlock(&bdev->bd_fsfreeze_mutex); return ERR_PTR(error); } } } sync_blockdev(bdev); mutex_unlock(&bdev->bd_fsfreeze_mutex); return sb; /* thaw_bdev releases s->s_umount and bd_mount_sem */ } EXPORT_SYMBOL(freeze_bdev); /** * thaw_bdev -- unlock filesystem * @bdev: blockdevice to unlock * @sb: associated superblock * * Unlocks the filesystem and marks it writeable again after freeze_bdev(). */ int thaw_bdev(struct block_device *bdev, struct super_block *sb) { int error = 0; mutex_lock(&bdev->bd_fsfreeze_mutex); if (!bdev->bd_fsfreeze_count) { mutex_unlock(&bdev->bd_fsfreeze_mutex); return -EINVAL; } bdev->bd_fsfreeze_count--; if (bdev->bd_fsfreeze_count > 0) { if (sb) drop_super(sb); mutex_unlock(&bdev->bd_fsfreeze_mutex); return 0; } if (sb) { BUG_ON(sb->s_bdev != bdev); if (!(sb->s_flags & MS_RDONLY)) { if (sb->s_op->unfreeze_fs) { error = sb->s_op->unfreeze_fs(sb); if (error) { printk(KERN_ERR "VFS:Filesystem thaw failed\n"); sb->s_frozen = SB_FREEZE_TRANS; bdev->bd_fsfreeze_count++; mutex_unlock(&bdev->bd_fsfreeze_mutex); return error; } } sb->s_frozen = SB_UNFROZEN; smp_wmb(); wake_up(&sb->s_wait_unfrozen); } drop_super(sb); } up(&bdev->bd_mount_sem); mutex_unlock(&bdev->bd_fsfreeze_mutex); return 0; } EXPORT_SYMBOL(thaw_bdev); static int blkdev_writepage(struct page *page, struct writeback_control *wbc) { return block_write_full_page(page, blkdev_get_block, wbc); } static int blkdev_readpage(struct file * file, struct page * page) { return block_read_full_page(page, blkdev_get_block); } static int blkdev_write_begin(struct file *file, struct address_space *mapping, loff_t pos, unsigned len, unsigned flags, struct page **pagep, void **fsdata) { *pagep = NULL; return block_write_begin(file, mapping, pos, len, flags, pagep, fsdata, blkdev_get_block); } static int blkdev_write_end(struct file *file, struct address_space *mapping, loff_t pos, unsigned len, unsigned copied, struct page *page, void *fsdata) { int ret; ret = block_write_end(file, mapping, pos, len, copied, page, fsdata); unlock_page(page); page_cache_release(page); return ret; } /* * private llseek: * for a block special file file->f_path.dentry->d_inode->i_size is zero * so we compute the size by hand (just as in block_read/write above) */ static loff_t block_llseek(struct file *file, loff_t offset, int origin) { struct inode *bd_inode = file->f_mapping->host; loff_t size; loff_t retval; mutex_lock(&bd_inode->i_mutex); size = i_size_read(bd_inode); switch (origin) { case 2: offset += size; break; case 1: offset += file->f_pos; } retval = -EINVAL; if (offset >= 0 && offset <= size) { if (offset != file->f_pos) { file->f_pos = offset; } retval = offset; } mutex_unlock(&bd_inode->i_mutex); return retval; } /* * Filp is never NULL; the only case when ->fsync() is called with * NULL first argument is nfsd_sync_dir() and that's not a directory. */ static int block_fsync(struct file *filp, struct dentry *dentry, int datasync) { return sync_blockdev(I_BDEV(filp->f_mapping->host)); } /* * pseudo-fs */ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(bdev_lock); static struct kmem_cache * bdev_cachep __read_mostly; static struct inode *bdev_alloc_inode(struct super_block *sb) { struct bdev_inode *ei = kmem_cache_alloc(bdev_cachep, GFP_KERNEL); if (!ei) return NULL; return &ei->vfs_inode; } static void bdev_destroy_inode(struct inode *inode) { struct bdev_inode *bdi = BDEV_I(inode); bdi->bdev.bd_inode_backing_dev_info = NULL; kmem_cache_free(bdev_cachep, bdi); } static void init_once(void *foo) { struct bdev_inode *ei = (struct bdev_inode *) foo; struct block_device *bdev = &ei->bdev; memset(bdev, 0, sizeof(*bdev)); mutex_init(&bdev->bd_mutex); sema_init(&bdev->bd_mount_sem, 1); INIT_LIST_HEAD(&bdev->bd_inodes); INIT_LIST_HEAD(&bdev->bd_list); #ifdef CONFIG_SYSFS INIT_LIST_HEAD(&bdev->bd_holder_list); #endif inode_init_once(&ei->vfs_inode); /* Initialize mutex for freeze. */ mutex_init(&bdev->bd_fsfreeze_mutex); } static inline void __bd_forget(struct inode *inode) { list_del_init(&inode->i_devices); inode->i_bdev = NULL; inode->i_mapping = &inode->i_data; } static void bdev_clear_inode(struct inode *inode) { struct block_device *bdev = &BDEV_I(inode)->bdev; struct list_head *p; spin_lock(&bdev_lock); while ( (p = bdev->bd_inodes.next) != &bdev->bd_inodes ) { __bd_forget(list_entry(p, struct inode, i_devices)); } list_del_init(&bdev->bd_list); spin_unlock(&bdev_lock); } static const struct super_operations bdev_sops = { .statfs = simple_statfs, .alloc_inode = bdev_alloc_inode, .destroy_inode = bdev_destroy_inode, .drop_inode = generic_delete_inode, .clear_inode = bdev_clear_inode, }; static int bd_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) { return get_sb_pseudo(fs_type, "bdev:", &bdev_sops, 0x62646576, mnt); } static struct file_system_type bd_type = { .name = "bdev", .get_sb = bd_get_sb, .kill_sb = kill_anon_super, }; struct super_block *blockdev_superblock __read_mostly; void __init bdev_cache_init(void) { int err; struct vfsmount *bd_mnt; bdev_cachep = kmem_cache_create("bdev_cache", sizeof(struct bdev_inode), 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| SLAB_MEM_SPREAD|SLAB_PANIC), init_once); err = register_filesystem(&bd_type); if (err) panic("Cannot register bdev pseudo-fs"); bd_mnt = kern_mount(&bd_type); if (IS_ERR(bd_mnt)) panic("Cannot create bdev pseudo-fs"); blockdev_superblock = bd_mnt->mnt_sb; /* For writeback */ } /* * Most likely _very_ bad one - but then it's hardly critical for small * /dev and can be fixed when somebody will need really large one. * Keep in mind that it will be fed through icache hash function too. */ static inline unsigned long hash(dev_t dev) { return MAJOR(dev)+MINOR(dev); } static int bdev_test(struct inode *inode, void *data) { return BDEV_I(inode)->bdev.bd_dev == *(dev_t *)data; } static int bdev_set(struct inode *inode, void *data) { BDEV_I(inode)->bdev.bd_dev = *(dev_t *)data; return 0; } static LIST_HEAD(all_bdevs); struct block_device *bdget(dev_t dev) { struct block_device *bdev; struct inode *inode; inode = iget5_locked(blockdev_superblock, hash(dev), bdev_test, bdev_set, &dev); if (!inode) return NULL; bdev = &BDEV_I(inode)->bdev; if (inode->i_state & I_NEW) { bdev->bd_contains = NULL; bdev->bd_inode = inode; bdev->bd_block_size = (1 << inode->i_blkbits); bdev->bd_part_count = 0; bdev->bd_invalidated = 0; inode->i_mode = S_IFBLK; inode->i_rdev = dev; inode->i_bdev = bdev; inode->i_data.a_ops = &def_blk_aops; mapping_set_gfp_mask(&inode->i_data, GFP_USER); inode->i_data.backing_dev_info = &default_backing_dev_info; spin_lock(&bdev_lock); list_add(&bdev->bd_list, &all_bdevs); spin_unlock(&bdev_lock); unlock_new_inode(inode); } return bdev; } EXPORT_SYMBOL(bdget); long nr_blockdev_pages(void) { struct block_device *bdev; long ret = 0; spin_lock(&bdev_lock); list_for_each_entry(bdev, &all_bdevs, bd_list) { ret += bdev->bd_inode->i_mapping->nrpages; } spin_unlock(&bdev_lock); return ret; } void bdput(struct block_device *bdev) { iput(bdev->bd_inode); } EXPORT_SYMBOL(bdput); static struct block_device *bd_acquire(struct inode *inode) { struct block_device *bdev; spin_lock(&bdev_lock); bdev = inode->i_bdev; if (bdev) { atomic_inc(&bdev->bd_inode->i_count); spin_unlock(&bdev_lock); return bdev; } spin_unlock(&bdev_lock); bdev = bdget(inode->i_rdev); if (bdev) { spin_lock(&bdev_lock); if (!inode->i_bdev) { /* * We take an additional bd_inode->i_count for inode, * and it's released in clear_inode() of inode. * So, we can access it via ->i_mapping always * without igrab(). */ atomic_inc(&bdev->bd_inode->i_count); inode->i_bdev = bdev; inode->i_mapping = bdev->bd_inode->i_mapping; list_add(&inode->i_devices, &bdev->bd_inodes); } spin_unlock(&bdev_lock); } return bdev; } /* Call when you free inode */ void bd_forget(struct inode *inode) { struct block_device *bdev = NULL; spin_lock(&bdev_lock); if (inode->i_bdev) { if (!sb_is_blkdev_sb(inode->i_sb)) bdev = inode->i_bdev; __bd_forget(inode); } spin_unlock(&bdev_lock); if (bdev) iput(bdev->bd_inode); } int bd_claim(struct block_device *bdev, void *holder) { int res; spin_lock(&bdev_lock); /* first decide result */ if (bdev->bd_holder == holder) res = 0; /* already a holder */ else if (bdev->bd_holder != NULL) res = -EBUSY; /* held by someone else */ else if (bdev->bd_contains == bdev) res = 0; /* is a whole device which isn't held */ else if (bdev->bd_contains->bd_holder == bd_claim) res = 0; /* is a partition of a device that is being partitioned */ else if (bdev->bd_contains->bd_holder != NULL) res = -EBUSY; /* is a partition of a held device */ else res = 0; /* is a partition of an un-held device */ /* now impose change */ if (res==0) { /* note that for a whole device bd_holders * will be incremented twice, and bd_holder will * be set to bd_claim before being set to holder */ bdev->bd_contains->bd_holders ++; bdev->bd_contains->bd_holder = bd_claim; bdev->bd_holders++; bdev->bd_holder = holder; } spin_unlock(&bdev_lock); return res; } EXPORT_SYMBOL(bd_claim); void bd_release(struct block_device *bdev) { spin_lock(&bdev_lock); if (!--bdev->bd_contains->bd_holders) bdev->bd_contains->bd_holder = NULL; if (!--bdev->bd_holders) bdev->bd_holder = NULL; spin_unlock(&bdev_lock); } EXPORT_SYMBOL(bd_release); #ifdef CONFIG_SYSFS /* * Functions for bd_claim_by_kobject / bd_release_from_kobject * * If a kobject is passed to bd_claim_by_kobject() * and the kobject has a parent directory, * following symlinks are created: * o from the kobject to the claimed bdev * o from "holders" directory of the bdev to the parent of the kobject * bd_release_from_kobject() removes these symlinks. * * Example: * If /dev/dm-0 maps to /dev/sda, kobject corresponding to * /sys/block/dm-0/slaves is passed to bd_claim_by_kobject(), then: * /sys/block/dm-0/slaves/sda --> /sys/block/sda * /sys/block/sda/holders/dm-0 --> /sys/block/dm-0 */ static int add_symlink(struct kobject *from, struct kobject *to) { if (!from || !to) return 0; return sysfs_create_link(from, to, kobject_name(to)); } static void del_symlink(struct kobject *from, struct kobject *to) { if (!from || !to) return; sysfs_remove_link(from, kobject_name(to)); } /* * 'struct bd_holder' contains pointers to kobjects symlinked by * bd_claim_by_kobject. * It's connected to bd_holder_list which is protected by bdev->bd_sem. */ struct bd_holder { struct list_head list; /* chain of holders of the bdev */ int count; /* references from the holder */ struct kobject *sdir; /* holder object, e.g. "/block/dm-0/slaves" */ struct kobject *hdev; /* e.g. "/block/dm-0" */ struct kobject *hdir; /* e.g. "/block/sda/holders" */ struct kobject *sdev; /* e.g. "/block/sda" */ }; /* * Get references of related kobjects at once. * Returns 1 on success. 0 on failure. * * Should call bd_holder_release_dirs() after successful use. */ static int bd_holder_grab_dirs(struct block_device *bdev, struct bd_holder *bo) { if (!bdev || !bo) return 0; bo->sdir = kobject_get(bo->sdir); if (!bo->sdir) return 0; bo->hdev = kobject_get(bo->sdir->parent); if (!bo->hdev) goto fail_put_sdir; bo->sdev = kobject_get(&part_to_dev(bdev->bd_part)->kobj); if (!bo->sdev) goto fail_put_hdev; bo->hdir = kobject_get(bdev->bd_part->holder_dir); if (!bo->hdir) goto fail_put_sdev; return 1; fail_put_sdev: kobject_put(bo->sdev); fail_put_hdev: kobject_put(bo->hdev); fail_put_sdir: kobject_put(bo->sdir); return 0; } /* Put references of related kobjects at once. */ static void bd_holder_release_dirs(struct bd_holder *bo) { kobject_put(bo->hdir); kobject_put(bo->sdev); kobject_put(bo->hdev); kobject_put(bo->sdir); } static struct bd_holder *alloc_bd_holder(struct kobject *kobj) { struct bd_holder *bo; bo = kzalloc(sizeof(*bo), GFP_KERNEL); if (!bo) return NULL; bo->count = 1; bo->sdir = kobj; return bo; } static void free_bd_holder(struct bd_holder *bo) { kfree(bo); } /** * find_bd_holder - find matching struct bd_holder from the block device * * @bdev: struct block device to be searched * @bo: target struct bd_holder * * Returns matching entry with @bo in @bdev->bd_holder_list. * If found, increment the reference count and return the pointer. * If not found, returns NULL. */ static struct bd_holder *find_bd_holder(struct block_device *bdev, struct bd_holder *bo) { struct bd_holder *tmp; list_for_each_entry(tmp, &bdev->bd_holder_list, list) if (tmp->sdir == bo->sdir) { tmp->count++; return tmp; } return NULL; } /** * add_bd_holder - create sysfs symlinks for bd_claim() relationship * * @bdev: block device to be bd_claimed * @bo: preallocated and initialized by alloc_bd_holder() * * Add @bo to @bdev->bd_holder_list, create symlinks. * * Returns 0 if symlinks are created. * Returns -ve if something fails. */ static int add_bd_holder(struct block_device *bdev, struct bd_holder *bo) { int err; if (!bo) return -EINVAL; if (!bd_holder_grab_dirs(bdev, bo)) return -EBUSY; err = add_symlink(bo->sdir, bo->sdev); if (err) return err; err = add_symlink(bo->hdir, bo->hdev); if (err) { del_symlink(bo->sdir, bo->sdev); return err; } list_add_tail(&bo->list, &bdev->bd_holder_list); return 0; } /** * del_bd_holder - delete sysfs symlinks for bd_claim() relationship * * @bdev: block device to be bd_claimed * @kobj: holder's kobject * * If there is matching entry with @kobj in @bdev->bd_holder_list * and no other bd_claim() from the same kobject, * remove the struct bd_holder from the list, delete symlinks for it. * * Returns a pointer to the struct bd_holder when it's removed from the list * and ready to be freed. * Returns NULL if matching claim isn't found or there is other bd_claim() * by the same kobject. */ static struct bd_holder *del_bd_holder(struct block_device *bdev, struct kobject *kobj) { struct bd_holder *bo; list_for_each_entry(bo, &bdev->bd_holder_list, list) { if (bo->sdir == kobj) { bo->count--; BUG_ON(bo->count < 0); if (!bo->count) { list_del(&bo->list); del_symlink(bo->sdir, bo->sdev); del_symlink(bo->hdir, bo->hdev); bd_holder_release_dirs(bo); return bo; } break; } } return NULL; } /** * bd_claim_by_kobject - bd_claim() with additional kobject signature * * @bdev: block device to be claimed * @holder: holder's signature * @kobj: holder's kobject * * Do bd_claim() and if it succeeds, create sysfs symlinks between * the bdev and the holder's kobject. * Use bd_release_from_kobject() when relesing the claimed bdev. * * Returns 0 on success. (same as bd_claim()) * Returns errno on failure. */ static int bd_claim_by_kobject(struct block_device *bdev, void *holder, struct kobject *kobj) { int err; struct bd_holder *bo, *found; if (!kobj) return -EINVAL; bo = alloc_bd_holder(kobj); if (!bo) return -ENOMEM; mutex_lock(&bdev->bd_mutex); err = bd_claim(bdev, holder); if (err) goto fail; found = find_bd_holder(bdev, bo); if (found) goto fail; err = add_bd_holder(bdev, bo); if (err) bd_release(bdev); else bo = NULL; fail: mutex_unlock(&bdev->bd_mutex); free_bd_holder(bo); return err; } /** * bd_release_from_kobject - bd_release() with additional kobject signature * * @bdev: block device to be released * @kobj: holder's kobject * * Do bd_release() and remove sysfs symlinks created by bd_claim_by_kobject(). */ static void bd_release_from_kobject(struct block_device *bdev, struct kobject *kobj) { if (!kobj) return; mutex_lock(&bdev->bd_mutex); bd_release(bdev); free_bd_holder(del_bd_holder(bdev, kobj)); mutex_unlock(&bdev->bd_mutex); } /** * bd_claim_by_disk - wrapper function for bd_claim_by_kobject() * * @bdev: block device to be claimed * @holder: holder's signature * @disk: holder's gendisk * * Call bd_claim_by_kobject() with getting @disk->slave_dir. */ int bd_claim_by_disk(struct block_device *bdev, void *holder, struct gendisk *disk) { return bd_claim_by_kobject(bdev, holder, kobject_get(disk->slave_dir)); } EXPORT_SYMBOL_GPL(bd_claim_by_disk); /** * bd_release_from_disk - wrapper function for bd_release_from_kobject() * * @bdev: block device to be claimed * @disk: holder's gendisk * * Call bd_release_from_kobject() and put @disk->slave_dir. */ void bd_release_from_disk(struct block_device *bdev, struct gendisk *disk) { bd_release_from_kobject(bdev, disk->slave_dir); kobject_put(disk->slave_dir); } EXPORT_SYMBOL_GPL(bd_release_from_disk); #endif /* * Tries to open block device by device number. Use it ONLY if you * really do not have anything better - i.e. when you are behind a * truly sucky interface and all you are given is a device number. _Never_ * to be used for internal purposes. If you ever need it - reconsider * your API. */ struct block_device *open_by_devnum(dev_t dev, fmode_t mode) { struct block_device *bdev = bdget(dev); int err = -ENOMEM; if (bdev) err = blkdev_get(bdev, mode); return err ? ERR_PTR(err) : bdev; } EXPORT_SYMBOL(open_by_devnum); /** * flush_disk - invalidates all buffer-cache entries on a disk * * @bdev: struct block device to be flushed * * Invalidates all buffer-cache entries on a disk. It should be called * when a disk has been changed -- either by a media change or online * resize. */ static void flush_disk(struct block_device *bdev) { if (__invalidate_device(bdev)) { char name[BDEVNAME_SIZE] = ""; if (bdev->bd_disk) disk_name(bdev->bd_disk, 0, name); printk(KERN_WARNING "VFS: busy inodes on changed media or " "resized disk %s\n", name); } if (!bdev->bd_disk) return; if (disk_partitionable(bdev->bd_disk)) bdev->bd_invalidated = 1; } /** * check_disk_size_change - checks for disk size change and adjusts bdev size. * @disk: struct gendisk to check * @bdev: struct bdev to adjust. * * This routine checks to see if the bdev size does not match the disk size * and adjusts it if it differs. */ void check_disk_size_change(struct gendisk *disk, struct block_device *bdev) { loff_t disk_size, bdev_size; disk_size = (loff_t)get_capacity(disk) << 9; bdev_size = i_size_read(bdev->bd_inode); if (disk_size != bdev_size) { char name[BDEVNAME_SIZE]; disk_name(disk, 0, name); printk(KERN_INFO "%s: detected capacity change from %lld to %lld\n", name, bdev_size, disk_size); i_size_write(bdev->bd_inode, disk_size); flush_disk(bdev); } } EXPORT_SYMBOL(check_disk_size_change); /** * revalidate_disk - wrapper for lower-level driver's revalidate_disk call-back * @disk: struct gendisk to be revalidated * * This routine is a wrapper for lower-level driver's revalidate_disk * call-backs. It is used to do common pre and post operations needed * for all revalidate_disk operations. */ int revalidate_disk(struct gendisk *disk) { struct block_device *bdev; int ret = 0; if (disk->fops->revalidate_disk) ret = disk->fops->revalidate_disk(disk); bdev = bdget_disk(disk, 0); if (!bdev) return ret; mutex_lock(&bdev->bd_mutex); check_disk_size_change(disk, bdev); mutex_unlock(&bdev->bd_mutex); bdput(bdev); return ret; } EXPORT_SYMBOL(revalidate_disk); /* * This routine checks whether a removable media has been changed, * and invalidates all buffer-cache-entries in that case. This * is a relatively slow routine, so we have to try to minimize using * it. Thus it is called only upon a 'mount' or 'open'. This * is the best way of combining speed and utility, I think. * People changing diskettes in the middle of an operation deserve * to lose :-) */ int check_disk_change(struct block_device *bdev) { struct gendisk *disk = bdev->bd_disk; struct block_device_operations * bdops = disk->fops; if (!bdops->media_changed) return 0; if (!bdops->media_changed(bdev->bd_disk)) return 0; flush_disk(bdev); if (bdops->revalidate_disk) bdops->revalidate_disk(bdev->bd_disk); return 1; } EXPORT_SYMBOL(check_disk_change); void bd_set_size(struct block_device *bdev, loff_t size) { unsigned bsize = bdev_hardsect_size(bdev); bdev->bd_inode->i_size = size; while (bsize < PAGE_CACHE_SIZE) { if (size & bsize) break; bsize <<= 1; } bdev->bd_block_size = bsize; bdev->bd_inode->i_blkbits = blksize_bits(bsize); } EXPORT_SYMBOL(bd_set_size); static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part); /* * bd_mutex locking: * * mutex_lock(part->bd_mutex) * mutex_lock_nested(whole->bd_mutex, 1) */ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) { struct gendisk *disk; int ret; int partno; int perm = 0; if (mode & FMODE_READ) perm |= MAY_READ; if (mode & FMODE_WRITE) perm |= MAY_WRITE; /* * hooks: /n/, see "layering violations". */ ret = devcgroup_inode_permission(bdev->bd_inode, perm); if (ret != 0) { bdput(bdev); return ret; } lock_kernel(); restart: ret = -ENXIO; disk = get_gendisk(bdev->bd_dev, &partno); if (!disk) goto out_unlock_kernel; mutex_lock_nested(&bdev->bd_mutex, for_part); if (!bdev->bd_openers) { bdev->bd_disk = disk; bdev->bd_contains = bdev; if (!partno) { struct backing_dev_info *bdi; ret = -ENXIO; bdev->bd_part = disk_get_part(disk, partno); if (!bdev->bd_part) goto out_clear; if (disk->fops->open) { ret = disk->fops->open(bdev, mode); if (ret == -ERESTARTSYS) { /* Lost a race with 'disk' being * deleted, try again. * See md.c */ disk_put_part(bdev->bd_part); bdev->bd_part = NULL; module_put(disk->fops->owner); put_disk(disk); bdev->bd_disk = NULL; mutex_unlock(&bdev->bd_mutex); goto restart; } if (ret) goto out_clear; } if (!bdev->bd_openers) { bd_set_size(bdev,(loff_t)get_capacity(disk)<<9); bdi = blk_get_backing_dev_info(bdev); if (bdi == NULL) bdi = &default_backing_dev_info; bdev->bd_inode->i_data.backing_dev_info = bdi; } if (bdev->bd_invalidated) rescan_partitions(disk, bdev); } else { struct block_device *whole; whole = bdget_disk(disk, 0); ret = -ENOMEM; if (!whole) goto out_clear; BUG_ON(for_part); ret = __blkdev_get(whole, mode, 1); if (ret) goto out_clear; bdev->bd_contains = whole; bdev->bd_inode->i_data.backing_dev_info = whole->bd_inode->i_data.backing_dev_info; bdev->bd_part = disk_get_part(disk, partno); if (!(disk->flags & GENHD_FL_UP) || !bdev->bd_part || !bdev->bd_part->nr_sects) { ret = -ENXIO; goto out_clear; } bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9); } } else { put_disk(disk); module_put(disk->fops->owner); disk = NULL; if (bdev->bd_contains == bdev) { if (bdev->bd_disk->fops->open) { ret = bdev->bd_disk->fops->open(bdev, mode); if (ret) goto out_unlock_bdev; } if (bdev->bd_invalidated) rescan_partitions(bdev->bd_disk, bdev); } } bdev->bd_openers++; if (for_part) bdev->bd_part_count++; mutex_unlock(&bdev->bd_mutex); unlock_kernel(); return 0; out_clear: disk_put_part(bdev->bd_part); bdev->bd_disk = NULL; bdev->bd_part = NULL; bdev->bd_inode->i_data.backing_dev_info = &default_backing_dev_info; if (bdev != bdev->bd_contains) __blkdev_put(bdev->bd_contains, mode, 1); bdev->bd_contains = NULL; out_unlock_bdev: mutex_unlock(&bdev->bd_mutex); out_unlock_kernel: unlock_kernel(); if (disk) module_put(disk->fops->owner); put_disk(disk); bdput(bdev); return ret; } int blkdev_get(struct block_device *bdev, fmode_t mode) { return __blkdev_get(bdev, mode, 0); } EXPORT_SYMBOL(blkdev_get); static int blkdev_open(struct inode * inode, struct file * filp) { struct block_device *bdev; int res; /* * Preserve backwards compatibility and allow large file access * even if userspace doesn't ask for it explicitly. Some mkfs * binary needs it. We might want to drop this workaround * during an unstable branch. */ filp->f_flags |= O_LARGEFILE; if (filp->f_flags & O_NDELAY) filp->f_mode |= FMODE_NDELAY; if (filp->f_flags & O_EXCL) filp->f_mode |= FMODE_EXCL; if ((filp->f_flags & O_ACCMODE) == 3) filp->f_mode |= FMODE_WRITE_IOCTL; bdev = bd_acquire(inode); if (bdev == NULL) return -ENOMEM; filp->f_mapping = bdev->bd_inode->i_mapping; res = blkdev_get(bdev, filp->f_mode); if (res) return res; if (filp->f_mode & FMODE_EXCL) { res = bd_claim(bdev, filp); if (res) goto out_blkdev_put; } return 0; out_blkdev_put: blkdev_put(bdev, filp->f_mode); return res; } static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part) { int ret = 0; struct gendisk *disk = bdev->bd_disk; struct block_device *victim = NULL; mutex_lock_nested(&bdev->bd_mutex, for_part); lock_kernel(); if (for_part) bdev->bd_part_count--; if (!--bdev->bd_openers) { sync_blockdev(bdev); kill_bdev(bdev); } if (bdev->bd_contains == bdev) { if (disk->fops->release) ret = disk->fops->release(disk, mode); } if (!bdev->bd_openers) { struct module *owner = disk->fops->owner; put_disk(disk); module_put(owner); disk_put_part(bdev->bd_part); bdev->bd_part = NULL; bdev->bd_disk = NULL; bdev->bd_inode->i_data.backing_dev_info = &default_backing_dev_info; if (bdev != bdev->bd_contains) victim = bdev->bd_contains; bdev->bd_contains = NULL; } unlock_kernel(); mutex_unlock(&bdev->bd_mutex); bdput(bdev); if (victim) __blkdev_put(victim, mode, 1); return ret; } int blkdev_put(struct block_device *bdev, fmode_t mode) { return __blkdev_put(bdev, mode, 0); } EXPORT_SYMBOL(blkdev_put); static int blkdev_close(struct inode * inode, struct file * filp) { struct block_device *bdev = I_BDEV(filp->f_mapping->host); if (bdev->bd_holder == filp) bd_release(bdev); return blkdev_put(bdev, filp->f_mode); } static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg) { struct block_device *bdev = I_BDEV(file->f_mapping->host); fmode_t mode = file->f_mode; /* * O_NDELAY can be altered using fcntl(.., F_SETFL, ..), so we have * to updated it before every ioctl. */ if (file->f_flags & O_NDELAY) mode |= FMODE_NDELAY; else mode &= ~FMODE_NDELAY; return blkdev_ioctl(bdev, mode, cmd, arg); } /* * Try to release a page associated with block device when the system * is under memory pressure. */ static int blkdev_releasepage(struct page *page, gfp_t wait) { struct super_block *super = BDEV_I(page->mapping->host)->bdev.bd_super; if (super && super->s_op->bdev_try_to_free_page) return super->s_op->bdev_try_to_free_page(super, page, wait); return try_to_free_buffers(page); } static const struct address_space_operations def_blk_aops = { .readpage = blkdev_readpage, .writepage = blkdev_writepage, .sync_page = block_sync_page, .write_begin = blkdev_write_begin, .write_end = blkdev_write_end, .writepages = generic_writepages, .releasepage = blkdev_releasepage, .direct_IO = blkdev_direct_IO, }; const struct file_operations def_blk_fops = { .open = blkdev_open, .release = blkdev_close, .llseek = block_llseek, .read = do_sync_read, .write = do_sync_write, .aio_read = generic_file_aio_read, .aio_write = generic_file_aio_write_nolock, .mmap = generic_file_mmap, .fsync = block_fsync, .unlocked_ioctl = block_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = compat_blkdev_ioctl, #endif .splice_read = generic_file_splice_read, .splice_write = generic_file_splice_write, }; int ioctl_by_bdev(struct block_device *bdev, unsigned cmd, unsigned long arg) { int res; mm_segment_t old_fs = get_fs(); set_fs(KERNEL_DS); res = blkdev_ioctl(bdev, 0, cmd, arg); set_fs(old_fs); return res; } EXPORT_SYMBOL(ioctl_by_bdev); /** * lookup_bdev - lookup a struct block_device by name * @pathname: special file representing the block device * * Get a reference to the blockdevice at @pathname in the current * namespace if possible and return it. Return ERR_PTR(error) * otherwise. */ struct block_device *lookup_bdev(const char *pathname) { struct block_device *bdev; struct inode *inode; struct path path; int error; if (!pathname || !*pathname) return ERR_PTR(-EINVAL); error = kern_path(pathname, LOOKUP_FOLLOW, &path); if (error) return ERR_PTR(error); inode = path.dentry->d_inode; error = -ENOTBLK; if (!S_ISBLK(inode->i_mode)) goto fail; error = -EACCES; if (path.mnt->mnt_flags & MNT_NODEV) goto fail; error = -ENOMEM; bdev = bd_acquire(inode); if (!bdev) goto fail; out: path_put(&path); return bdev; fail: bdev = ERR_PTR(error); goto out; } EXPORT_SYMBOL(lookup_bdev); /** * open_bdev_exclusive - open a block device by name and set it up for use * * @path: special file representing the block device * @mode: FMODE_... combination to pass be used * @holder: owner for exclusion * * Open the blockdevice described by the special file at @path, claim it * for the @holder. */ struct block_device *open_bdev_exclusive(const char *path, fmode_t mode, void *holder) { struct block_device *bdev; int error = 0; bdev = lookup_bdev(path); if (IS_ERR(bdev)) return bdev; error = blkdev_get(bdev, mode); if (error) return ERR_PTR(error); error = -EACCES; if ((mode & FMODE_WRITE) && bdev_read_only(bdev)) goto blkdev_put; error = bd_claim(bdev, holder); if (error) goto blkdev_put; return bdev; blkdev_put: blkdev_put(bdev, mode); return ERR_PTR(error); } EXPORT_SYMBOL(open_bdev_exclusive); /** * close_bdev_exclusive - close a blockdevice opened by open_bdev_exclusive() * * @bdev: blockdevice to close * @mode: mode, must match that used to open. * * This is the counterpart to open_bdev_exclusive(). */ void close_bdev_exclusive(struct block_device *bdev, fmode_t mode) { bd_release(bdev); blkdev_put(bdev, mode); } EXPORT_SYMBOL(close_bdev_exclusive); int __invalidate_device(struct block_device *bdev) { struct super_block *sb = get_super(bdev); int res = 0; if (sb) { /* * no need to lock the super, get_super holds the * read mutex so the filesystem cannot go away * under us (->put_super runs with the write lock * hold). */ shrink_dcache_sb(sb); res = invalidate_inodes(sb); drop_super(sb); } invalidate_bdev(bdev); return res; } EXPORT_SYMBOL(__invalidate_device); ='/drm-misc/tag/?h=drm-misc-next-2023-11-30'>drm-misc-next-2023-11-30commit 9ee33dc477...Maxime Ripard14 months drm-misc-fixes-2023-11-29commit fb18fe0fdf...Maarten Lankhorst14 months drm-misc-fixes-2023-11-23commit ab93edb2f9...Maarten Lankhorst14 months drm-misc-next-2023-11-23commit 815d8b0425...Maxime Ripard14 months drm-misc-next-2023-11-17commit 3b434a3445...Maxime Ripard14 months drm-misc-fixes-2023-11-16commit ae1aadb1eb...Maarten Lankhorst14 months drm-misc-fixes-2023-11-08commit 0e8b9f258b...Maarten Lankhorst14 months drm-misc-next-fixes-2023-11-02commit 94565e95e2...Maarten Lankhorst14 months drm-misc-fixes-2023-11-02commit 101c9f637e...Thomas Zimmermann14 months drm-misc-next-2023-10-27commit b70438004a...Maarten Lankhorst15 months drm-misc-fixes-2023-10-26commit b132ac51d7...Thomas Zimmermann15 months drm-misc-fixes-2023-10-19commit 8f5ad367e8...Thomas Zimmermann15 months drm-misc-next-2023-10-19commit 2d23e7d6ba...Maarten Lankhorst15 months drm-misc-fixes-2023-10-12commit c1165df2be...Thomas Zimmermann15 months drm-misc-next-2023-10-12commit c395c83aaf...Maarten Lankhorst15 months drm-misc-next-2023-10-06commit c1698c73f4...Maarten Lankhorst15 months drm-misc-fixes-2023-10-05commit d59e75eef5...Thomas Zimmermann15 months drm-misc-fixes-2023-09-28commit 645d694559...Thomas Zimmermann16 months drm-misc-next-2023-09-27commit 78f54469b8...Maarten Lankhorst16 months drm-misc-fixes-2023-09-21commit f75f71b2c4...Thomas Zimmermann16 months drm-misc-fixes-2023-09-14commit 139a27854b...Thomas Zimmermann16 months drm-misc-next-fixes-2023-09-11commit d20b484c67...Thomas Zimmermann16 months drm-misc-next-2023-09-11-1commit 15d30b4657...Maarten Lankhorst16 months drm-misc-fixes-2023-09-07commit 7583028d35...Maxime Ripard16 months drm-misc-next-fixes-2023-09-01commit 978474dc82...Thomas Zimmermann16 months drm-misc-next-fixes-2023-08-24commit cdf4100eaa...Thomas Zimmermann17 months drm-misc-fixes-2023-08-24commit f9e96bf190...Maxime Ripard17 months drm-misc-fixes-2023-08-17commit 50b6f2c829...Maxime Ripard17 months drm-misc-next-fixes-2023-08-17commit ff065eaf55...Thomas Zimmermann17 months drm-misc-next-2023-08-10commit 2799804ac6...Thomas Zimmermann17 months drm-misc-fixes-2023-08-10commit 07dd476f61...Maxime Ripard17 months drm-misc-next-2023-08-03commit a0769f25a3...Thomas Zimmermann17 months drm-misc-fixes-2023-08-03commit c71b7aa861...Maxime Ripard17 months drm-misc-next-2023-07-27commit 7c5aa94858...Thomas Zimmermann18 months drm-misc-fixes-2023-07-27commit 39b1320e5d...Maxime Ripard18 months drm-misc-next-2023-07-21commit d281eeaa4d...Maxime Ripard18 months drm-misc-fixes-2023-07-20commit ea293f823a...Maxime Ripard18 months drm-misc-next-2023-07-13commit 36672dda2e...Thomas Zimmermann18 months drm-misc-fixes-2023-07-13commit 835a65f517...Maxime Ripard18 months drm-misc-fixes-2023-07-07commit 00ae1491f9...Thomas Zimmermann18 months drm-misc-next-fixes-2023-07-06commit 59bba51ec2...Thomas Zimmermann18 months drm-misc-next-fixes-2023-06-29commit 861c249cd7...Thomas Zimmermann19 months drm-misc-fixes-2023-06-21commit 54d217406a...Maarten Lankhorst19 months drm-misc-fixes-2023-06-16commit 55b94bb8c4...Maarten Lankhorst19 months drm-misc-next-fixes-2023-06-15commit cf683e8870...Thomas Zimmermann19 months drm-misc-fixes-2023-06-08commit a3efabee58...Maarten Lankhorst19 months drm-misc-next-2023-06-07commit 13cdd12a9f...Thomas Zimmermann19 months drm-misc-next-2023-06-01commit 43049f17b5...Thomas Zimmermann20 months drm-misc-next-2023-05-24commit 4bd65789ba...Thomas Zimmermann20 months drm-misc-fixes-2023-05-24commit e997c218ad...Maarten Lankhorst20 months drm-misc-fixes-2023-05-11commit 2da5bffe9e...Maarten Lankhorst20 months drm-misc-next-2023-05-11commit 4795c78768...Maxime Ripard20 months drm-misc-next-fixes-2023-04-26commit a50be876f4...Maarten Lankhorst21 months drm-misc-fixes-2023-04-26commit 0d68683838...Maarten Lankhorst21 months drm-misc-fixes-2023-04-20-2commit b63a553e8f...Thomas Zimmermann21 months drm-misc-fixes-2023-04-20-1commit b63a553e8f...Thomas Zimmermann21 months drm-misc-fixes-2023-04-20commit b63a553e8f...Thomas Zimmermann21 months drm-misc-fixes-2023-04-13commit 5603effb82...Thomas Zimmermann21 months drm-misc-next-2023-04-12commit fd35174e13...Maarten Lankhorst21 months drm-misc-next-2023-04-06commit e44f18c6ff...Maarten Lankhorst21 months drm-misc-fixes-2023-04-05commit 0ec8671837...Thomas Zimmermann21 months drm-misc-next-2023-03-31commit 7d690f936e...Maarten Lankhorst22 months drm-misc-fixes-2023-03-30commit 25bbe844ef...Thomas Zimmermann22 months drm-misc-next-2023-03-23commit 4ab9157c7e...Maarten Lankhorst22 months drm-misc-fixes-2023-03-23commit 1a70ca89d5...Thomas Zimmermann22 months drm-misc-next-2023-03-16commit b24343eace...Maarten Lankhorst22 months drm-misc-fixes-2023-03-16commit 4028cbf867...Thomas Zimmermann22 months drm-misc-next-2023-03-07commit 9228742caf...Maarten Lankhorst22 months drm-misc-next-fixes-2023-02-28commit 047a754558...Thomas Zimmermann23 months drm-misc-next-2023-02-23commit 95d39a0c64...Maarten Lankhorst23 months drm-misc-fixes-2023-02-23commit 1b9b4f922f...Maxime Ripard23 months drm-misc-next-fixes-2023-02-21commit 3fb1f62f80...Thomas Zimmermann23 months drm-misc-next-fixes-2023-02-16commit 38b2d8efd0...Thomas Zimmermann23 months drm-misc-fixes-2023-02-16commit a950b989ea...Maxime Ripard23 months drm-misc-next-fixes-2023-02-09commit 467fbc77f6...Thomas Zimmermann23 months drm-misc-fixes-2023-02-09commit 85e26dd510...Maxime Ripard23 months drm-misc-fixes-2023-02-02commit a3ee9e0b57...Maxime Ripard23 months drm-misc-next-fixes-2023-02-02commit 84cc4c7aec...Thomas Zimmermann23 months drm-misc-fixes-2023-01-26commit d6591da5f3...Maxime Ripard24 months drm-misc-next-2023-01-26commit 6ca80b9e5c...Thomas Zimmermann24 months drm-misc-next-2023-01-24commit 51affef35b...Thomas Zimmermann24 months drm-misc-next-2023-01-19commit bd43a9844b...Thomas Zimmermann24 months drm-misc-fixes-2023-01-19commit 2293a73ad4...Maxime Ripard24 months drm-misc-fixes-2023-01-12commit 5640e81607...Maxime Ripard2 years drm-misc-next-2023-01-12commit 6e41acd2e5...Thomas Zimmermann2 years drm-misc-fixes-2023-01-05commit 69555549cf...Maxime Ripard2 years drm-misc-next-fixes-2023-01-03commit 03dec92c4f...Maxime Ripard2 years drm-misc-next-2023-01-03commit 2591939e88...Thomas Zimmermann2 years drm-misc-fixes-2022-12-22commit 4217c6ac81...Maxime Ripard2 years drm-misc-fixes-2022-12-08commit 6e90293618...Maarten Lankhorst2 years drm-misc-next-fixes-2022-12-08commit b02897e56b...Maxime Ripard2 years drm-misc-fixes-2022-11-30commit ed14d225cc...Maarten Lankhorst2 years drm-misc-fixes-2022-11-24commit a6a00d7e8f...Maarten Lankhorst2 years drm-misc-next-2022-11-24commit 6fb6c979ca...Maxime Ripard2 years drm-misc-fixes-2022-11-17commit 5954acbacb...Maarten Lankhorst2 years drm-misc-next-2022-11-17commit 35c3a2d02f...Maxime Ripard2 years drm-misc-next-2022-11-10-1commit 6b818c533d...Maxime Ripard2 years drm-misc-next-2022-11-10commit 6b818c533d...Maxime Ripard2 years drm-misc-fixes-2022-11-09commit f352262f72...Maarten Lankhorst2 years drm-misc-next-2022-11-03commit ce28ab1380...Maxime Ripard2 years drm-misc-fixes-2022-11-02-1commit fc007fb815...Maarten Lankhorst2 years drm-misc-fixes-2022-10-27commit e0ba1a39b8...Maarten Lankhorst2 years drm-misc-next-2022-10-27commit e1e7bc481d...Maxime Ripard2 years drm-misc-fixes-2022-10-20commit 72655fb942...Maarten Lankhorst2 years drm-misc-next-2022-10-20commit 7c99616e3f...Maxime Ripard2 years drm-misc-fixes-2022-10-13commit 4190e8bbcb...Thomas Zimmermann2 years drm-misc-next-2022-09-30commit c9b48b91e2...Maarten Lankhorst2 years drm-misc-fixes-2022-09-29commit cc62d98bd5...Thomas Zimmermann2 years drm-misc-next-2022-09-23commit 39dd0cc2e5...Maxime Ripard2 years drm-misc-fixes-2022-09-22commit d8a79c0305...Thomas Zimmermann2 years drm-misc-fixes-2022-09-15commit b0b9408f13...Thomas Zimmermann2 years drm-misc-next-2022-09-09commit 5d832b6694...Maarten Lankhorst2 years drm-misc-fixes-2022-09-08commit d76034a427...Thomas Zimmermann2 years drm-misc-fixes-2022-08-31commit a3f7c10a26...Thomas Zimmermann2 years drm-misc-fixes-2022-08-25commit 6b04ce966a...Thomas Zimmermann2 years drm-misc-next-2022-08-20-1commit 8869fa666a...Maarten Lankhorst2 years drm-misc-fixes-2022-08-16commit 82a1356a93...Maxime Ripard2 years drm-misc-next-fixes-2022-08-10commit 2939deac1f...Thomas Zimmermann2 years drm-misc-fixes-2022-07-29commit 66cee9097e...Maxime Ripard2 years drm-misc-fixes-2022-07-28commit 0c09bc33aa...Maxime Ripard2 years drm-misc-fixes-2022-07-21commit 02c87df248...Maxime Ripard2 years drm-misc-next-fixes-2022-07-21commit 6f2c8d5f16...Thomas Zimmermann2 years drm-misc-next-fixes-2022-07-14commit 7d09c76063...Thomas Zimmermann3 years drm-misc-fixes-2022-07-14commit 925b6e5913...Maxime Ripard3 years drm-misc-fixes-2022-07-07-1commit b68277f19e...Maxime Ripard3 years drm-misc-next-2022-07-07commit 3915f8bdde...Thomas Zimmermann3 years drm-misc-fixes-2022-06-30commit ee7a69aa38...Maxime Ripard3 years drm-misc-next-2022-06-30commit 6fb5ee7cec...Thomas Zimmermann3 years drm-misc-next-2022-06-23commit 009a3a5279...Thomas Zimmermann3 years drm-misc-fixes-2022-06-23commit 85016f66af...Maxime Ripard3 years drm-misc-next-2022-06-17commit e4a8864f74...Thomas Zimmermann3 years drm-misc-fixes-2022-06-16commit 0f9cd1ea10...Maxime Ripard3 years drm-misc-fixes-2022-06-09commit 477277c7fd...Maxime Ripard3 years drm-misc-next-2022-06-08commit dfa687bffc...Thomas Zimmermann3 years drm-misc-fixes-2022-05-26commit 6e516faf04...Maxime Ripard3 years drm-misc-fixes-2022-05-20commit 6e03b13cc7...Maxime Ripard3 years drm-misc-next-fixes-2022-05-19commit 5ee8c8f930...Maxime Ripard3 years drm-misc-fixes-2022-05-13commit 6fed53de56...Maxime Ripard3 years drm-misc-fixes-2022-05-05commit 841e512ffb...Maarten Lankhorst3 years drm-misc-next-2022-05-05commit 6071c4c2a3...Maxime Ripard3 years drm-misc-next-2022-04-28commit e08a99d005...Maxime Ripard3 years drm-misc-fixes-2022-04-27commit dc3ae06c5f...Maarten Lankhorst3 years drm-misc-fixes-2022-04-22commit 94f4c4965e...Maxime Ripard3 years drm-misc-next-2022-04-21commit 40d8d4bd06...Maxime Ripard3 years drm-misc-next-2022-04-14commit 9d79799193...Maxime Ripard3 years drm-misc-fixes-2022-04-07commit 1ecc0c09f1...Maarten Lankhorst3 years drm-misc-next-fixes-2022-04-07commit 67bae5f28c...Maarten Lankhorst3 years drm-misc-next-2022-04-07commit c8d4c18bfb...Maxime Ripard3 years drm-misc-next-fixes-2022-03-24-1commit 7344bad7fb...Maarten Lankhorst3 years drm-misc-next-fixes-2022-03-24commit 7344bad7fb...Maarten Lankhorst3 years drm-misc-fixes-2022-03-24commit d14eb80e27...Thomas Zimmermann3 years drm-misc-fixes-2022-03-17commit 3c3384050d...Thomas Zimmermann3 years drm-misc-fixes-2022-03-10commit 9470c29faa...Thomas Zimmermann3 years drm-misc-fixes-2022-03-03commit 62929726ef...Thomas Zimmermann3 years drm-misc-next-2022-03-03commit 701920ca98...Maarten Lankhorst3 years drm-misc-fixes-2022-02-23commit ecbd4912a6...Thomas Zimmermann3 years drm-misc-next-2022-02-23commit f915686bd9...Maarten Lankhorst3 years drm-misc-fixes-2022-02-17commit 439cf34c8e...Thomas Zimmermann3 years drm-misc-fixes-2022-02-10commit 9da1e9ab82...Thomas Zimmermann3 years drm-misc-fixes-2022-02-03commit 622c9a3a78...Thomas Zimmermann3 years drm-misc-next-2022-01-27commit a5d092d37e...Maarten Lankhorst3 years drm-misc-fixes-2022-01-27commit 7fde14d705...Thomas Zimmermann3 years drm-misc-next-fixes-2022-01-21commit d3cbc6e323...Thomas Zimmermann3 years drm-misc-next-fixes-2022-01-14commit 5d474cc501...Thomas Zimmermann3 years drm-misc-fixes-2022-01-14commit 016017a195...Maxime Ripard3 years drm-misc-next-fixes-2022-01-13commit 69e630016e...Thomas Zimmermann3 years drm-misc-next-fixes-2021-12-23commit 5da8b49de4...Thomas Zimmermann3 years drm-misc-next-2021-12-16commit 9758ff2fa2...Thomas Zimmermann3 years drm-misc-fixes-2021-12-16-1commit fea3fdf975...Maxime Ripard3 years drm-misc-fixes-2021-12-16commit fea3fdf975...Maxime Ripard3 years drm-misc-next-2021-12-09commit 03848335b5...Thomas Zimmermann3 years drm-misc-fixes-2021-12-09commit b19926d4f3...Maxime Ripard3 years drm-misc-fixes-2021-12-02commit 679d94cd7d...Maxime Ripard3 years drm-misc-next-2021-11-29commit 69d846126e...Thomas Zimmermann3 years drm-misc-fixes-2021-11-25commit e048834c20...Maxime Ripard3 years drm-misc-next-2021-11-18commit a713ca234e...Thomas Zimmermann3 years drm-misc-fixes-2021-11-18commit fb561bf9ab...Maxime Ripard3 years drm-misc-fixes-2021-11-11commit 7120a447c7...Thomas Zimmermann3 years drm-misc-next-fixes-2021-11-10commit bcae3af286...Maxime Ripard3 years drm-misc-next-fixes-2021-11-05commit ff2d23843f...Maxime Ripard3 years drm-misc-next-fixes-2021-11-04commit ff2d23843f...Maxime Ripard3 years drm-misc-fixes-2021-10-28commit 61b1d445f3...Maxime Ripard3 years topic/amdgpu-dp2.0-mst-2021-10-27commit 00f965e700...Lyude Paul3 years drm-misc-fixes-2021-10-26commit ee71fb6c4d...Maarten Lankhorst3 years topic/amdgpu-dp2.0-mst-2021-10-25commit 41724ea273...Lyude Paul3 years drm-misc-fixes-2021-10-21-1commit 74056092ff...Maarten Lankhorst3 years drm-misc-fixes-2021-10-14commit 6de148d82d...Maarten Lankhorst3 years drm-misc-next-2021-10-14commit b3ec8cdf45...Maxime Ripard3 years drm-misc-next-2021-10-06commit 9962601ca5...Maarten Lankhorst3 years drm-misc-fixes-2021-10-06commit f5a8703a9c...Maarten Lankhorst3 years drm-misc-fixes-2021-09-30commit fd09961dbb...Maarten Lankhorst3 years drm-misc-next-2021-09-30commit 49e7f76fc5...Maxime Ripard3 years drm-misc-next-2021-09-23commit 9c2fce1378...Maxime Ripard3 years drm-misc-next-2021-09-16commit e4f8681911...Maxime Ripard3 years drm-misc-next-fixes-2021-09-09commit 8c28051cdc...Maarten Lankhorst3 years drm-misc-fixes-2021-09-08commit c8704b7ec1...Thomas Zimmermann3 years drm-misc-next-fixes-2021-09-03commit efcefc7127...Maarten Lankhorst3 years drm-misc-fixes-2021-08-18commit fa0b1ef5f7...Thomas Zimmermann3 years drm-misc-next-2021-08-12commit c7782443a8...Maarten Lankhorst3 years drm-misc-fixes-2021-08-12commit bf33677a3c...Thomas Zimmermann3 years drm-misc-next-2021-08-05commit 5a04227326...Maarten Lankhorst3 years drm-misc-fixes-2021-08-04commit e89afb51f9...Thomas Zimmermann3 years drm-misc-next-2021-07-29commit c7d3062354...Maarten Lankhorst3 years drm-misc-fixes-2021-07-28commit 8ee18e769d...Thomas Zimmermann3 years drm-misc-fixes-2021-07-22commit 7bbcb919e3...Thomas Zimmermann3 years drm-misc-next-2021-07-22commit 474596fc74...Maarten Lankhorst3 years drm-misc-next-2021-07-16commit 17a1837d07...Maarten Lankhorst4 years drm-misc-fixes-2021-07-15commit 9e5c772954...Thomas Zimmermann4 years drm-misc-fixes-2021-07-13commit ffe000217c...Thomas Zimmermann4 years drm-misc-next-fixes-2021-07-01commit f18f58012e...Thomas Zimmermann4 years drm-misc-fixes-2021-06-24commit d330099115...Maxime Ripard4 years drm-misc-next-fixes-2021-06-24commit eed75ce7c8...Thomas Zimmermann4 years drm-misc-next-fixes-2021-06-18commit 24ff3dc18b...Thomas Zimmermann4 years drm-misc-next-fixes-2021-06-16commit 3769e4c0af...Thomas Zimmermann4 years topic/i915-ttm-2021-06-11commit cf3e3e86d7...Maarten Lankhorst4 years drm-misc-fixes-2021-06-10commit c336a5ee98...Maxime Ripard4 years drm-misc-next-2021-06-10commit 86441fa29e...Thomas Zimmermann4 years drm-misc-next-2021-06-09commit 5b7a2c92b6...Thomas Zimmermann4 years drm-misc-fixes-2021-06-03commit 0b78f8bcf4...Maxime Ripard4 years drm-misc-next-2021-06-01commit 2e290c8d8d...Thomas Zimmermann4 years drm-misc-fixes-2021-05-27commit 35f819d218...Maxime Ripard4 years drm-misc-next-2021-05-25commit 4a791cb6d3...Thomas Zimmermann4 years drm-misc-fixes-2021-05-20commit 7e008b0255...Maxime Ripard4 years drm-misc-next-2021-05-17commit 30039405ac...Thomas Zimmermann4 years drm-misc-fixes-2021-05-13commit c55b44c938...Maxime Ripard4 years drm-misc-next-2021-05-12commit 6607952288...Thomas Zimmermann4 years drm-misc-next-fixes-2021-05-06commit b9d79e4ca4...Maxime Ripard4 years drm-misc-next-fixes-2021-04-29commit 74deef03a4...Maxime Ripard4 years drm-misc-next-fixes-2021-04-22commit a4394b6d0a...Maxime Ripard4 years drm-misc-next-2021-04-09commit e8b8b0df86...Maxime Ripard4 years drm-misc-fixes-2021-04-09commit eb9dfdd1ed...Maarten Lankhorst4 years drm-misc-next-2021-04-01commit 6c74498300...Maxime Ripard4 years drm-misc-fixes-2021-03-25commit 50891bead8...Maarten Lankhorst4 years drm-misc-next-2021-03-25commit a1f091f8ef...Maxime Ripard4 years drm-misc-fixes-2021-03-18commit 6909115442...Maarten Lankhorst4 years drm-misc-next-2021-03-16commit ccf953d8f3...Maxime Ripard4 years drm-misc-fixes-2021-03-11commit de066e1163...Maarten Lankhorst4 years drm-misc-next-2021-03-03commit 762949bb1d...Maxime Ripard4 years drm-misc-next-fixes-2021-02-25commit d922d58fed...Maarten Lankhorst4 years drm-misc-fixes-2021-02-24commit 54dab3a718...Thomas Zimmermann4 years drm-misc-next-fixes-2021-02-11commit e2183fb135...Maarten Lankhorst4 years drm-misc-fixes-2021-02-10commit 1926a0508d...Thomas Zimmermann4 years drm-misc-fixes-2021-02-02commit 2b1b3e544f...Thomas Zimmermann4 years drm-misc-fixes-2021-01-27commit f6b57101a6...Thomas Zimmermann4 years drm-misc-fixes-2021-01-20commit a37eef63bc...Thomas Zimmermann4 years drm-misc-next-2021-01-19commit c31eb10fd5...Maarten Lankhorst4 years drm-misc-fixes-2021-01-12commit bb52cb0dec...Thomas Zimmermann4 years drm-misc-fixes-2021-01-08commit a73858ef4d...Thomas Zimmermann4 years drm-misc-next-2021-01-06commit cf9a4be47f...Maarten Lankhorst4 years drm-misc-next-fixes-2020-12-22commit be3e477eff...Thomas Zimmermann4 years drm-misc-next-2020-12-17commit c545781e1c...Maarten Lankhorst4 years drm-misc-next-fixes-2020-12-15commit ee46d16d2e...Thomas Zimmermann4 years drm-misc-fixes-2020-12-03commit fd4e788e97...Maxime Ripard4 years drm-misc-next-2020-11-27-1commit 05faf1559d...Thomas Zimmermann4 years drm-misc-next-2020-11-27commit 05faf1559d...Thomas Zimmermann4 years drm-misc-fixes-2020-11-26commit 2be6564164...Maxime Ripard4 years drm-misc-fixes-2020-11-19commit cdf117d6d3...Maxime Ripard4 years drm-misc-next-2020-11-18commit fa388231fe...Thomas Zimmermann4 years drm-misc-fixes-2020-11-12commit a6c40b8032...Maxime Ripard4 years drm-misc-next-2020-11-12commit 05481f0727...Thomas Zimmermann4 years drm-misc-fixes-2020-11-05commit 9522750c66...Maxime Ripard4 years drm-misc-next-2020-11-05commit 24e146cdf9...Thomas Zimmermann4 years drm-misc-fixes-2020-10-29commit 5066f42c7d...Maxime Ripard4 years drm-misc-next-2020-10-27commit 4dfec0d1d7...Thomas Zimmermann4 years drm-misc-next-fixes-2020-10-20commit 272d708951...Maxime Ripard4 years drm-misc-next-fixes-2020-10-13commit d3c8f2784d...Maxime Ripard4 years drm-misc-next-fixes-2020-10-09commit 6561e0aa46...Maxime Ripard4 years drm-misc-next-fixes-2020-10-02commit 8ba0b6d196...Maxime Ripard4 years drm-misc-fixes-2020-10-01commit 27204b99b0...Maarten Lankhorst4 years drm-misc-fixes-2020-09-24commit 19a508bd1a...Maarten Lankhorst4 years drm-misc-next-2020-09-21commit 089d834189...Maxime Ripard4 years drm-misc-fixes-2020-09-18commit 74ea06164c...Maarten Lankhorst4 years drm-misc-next-2020-09-18commit 4856e5aa0e...Maxime Ripard4 years drm-misc-next-2020-09-17-1commit 67d6a8b358...Maxime Ripard4 years drm-misc-next-2020-09-17commit 67d6a8b358...Maxime Ripard4 years drm-misc-next-2020-09-10commit 13138ab2da...Maxime Ripard4 years drm-misc-fixes-2020-09-09commit fc7f148feb...Maarten Lankhorst4 years drm-misc-next-2020-09-03commit 4c8e84b887...Maxime Ripard4 years topic/nouveau-i915-dp-helpers-and-cleanup-2020-08-31-1commit 79416e97dd...Lyude Paul4 years drm-misc-next-2020-08-27commit cd6da0b113...Maxime Ripard4 years drm-misc-fixes-2020-08-26commit 7fd5b25499...Maarten Lankhorst4 years drm-misc-next-2020-08-20commit cdd296cdae...Maxime Ripard4 years drm-misc-fixes-2020-08-12commit 836b194d65...Maarten Lankhorst4 years drm-misc-next-fixes-2020-08-05commit a34a0a632d...Maarten Lankhorst4 years drm-misc-fixes-2020-08-04commit b5ac98cbb8...Thomas Zimmermann4 years drm-misc-fixes-2020-07-28commit 8490d6a7e0...Thomas Zimmermann4 years drm-misc-next-2020-07-22commit acc0c39a59...Maarten Lankhorst4 years drm-misc-fixes-2020-07-22commit f3f90c6db1...Thomas Zimmermann4 years drm-misc-next-2020-07-16commit 947fcfeac3...Maarten Lankhorst5 years drm-misc-fixes-2020-07-15commit 6348dd291e...Thomas Zimmermann5 years drm-misc-fixes-2020-07-08commit 00debf8109...Thomas Zimmermann5 years drm-misc-next-2020-07-02commit c3bad0c7e5...Maarten Lankhorst5 years drm-misc-fixes-2020-07-02commit bda8eaa6de...Thomas Zimmermann5 years drm-misc-next-2020-06-26commit 41752663b4...Maarten Lankhorst5 years drm-misc-fixes-2020-06-25commit dc5bdb68b5...Thomas Zimmermann5 years drm-misc-next-2020-06-19commit 114427b892...Maarten Lankhorst5 years drm-misc-next-fixes-2020-06-11commit 291ddeb621...Thomas Zimmermann5 years drm-misc-fixes-2020-05-28commit abf56fadf0...Maxime Ripard5 years drm-misc-next-fixes-2020-05-27commit 6f27e4c287...Thomas Zimmermann5 years drm-misc-fixes-2020-05-14commit c54a8f1f32...Maxime Ripard5 years drm-misc-next-2020-05-14commit 1c530d431c...Thomas Zimmermann5 years drm-misc-fixes-2020-05-07commit 5fe89a6acd...Maxime Ripard5 years drm-misc-next-2020-05-07commit 0ea2ea42b3...Thomas Zimmermann5 years drm-misc-fixes-2020-04-30commit 6f49c2515e...Maxime Ripard5 years drm-misc-fixes-2020-04-23commit 9da67433f6...Maxime Ripard5 years drm-misc-next-2020-04-23commit 776d58823a...Thomas Zimmermann5 years drm-misc-next-2020-04-14commit 14d0066b84...Thomas Zimmermann5 years drm-misc-next-fixes-2020-04-09commit 152cce0006...Maxime Ripard5 years topic/phy-compliance-2020-04-08commit 8cdf727119...Maarten Lankhorst5 years drm-misc-next-fixes-2020-04-04commit d8a26d8fc3...Maxime Ripard5 years drm-misc-fixes-2020-03-26commit 47f7826c52...Maarten Lankhorst5 years drm-misc-next-fixes-2020-03-26commit d021d751c1...Maxime Ripard5 years drm-misc-fixes-2020-03-18-1commit b216a8e790...Maarten Lankhorst5 years drm-misc-fixes-2020-03-18commit 8c34cd1a7f...Maarten Lankhorst5 years drm-misc-next-2020-03-17commit 6afe692996...Maxime Ripard5 years topic/mst-bw-check-fixes-for-airlied-2020-03-12-2commit 047d4cd206...Lyude Paul5 years topic/mst-bw-check-fixes-for-airlied-2020-03-12-1commit 047d4cd206...Lyude Paul5 years topic/mst-bw-check-fixes-for-airlied-2020-03-11commit 16f48eecf8...Lyude Paul5 years drm-misc-next-2020-03-09commit bc1a4130fc...Maxime Ripard5 years drm-misc-fixes-2020-03-05commit 1b79cfd99f...Maarten Lankhorst5 years drm-misc-next-2020-02-27commit 18b39fb975...Maxime Ripard5 years drm-misc-next-2020-02-21commit d718e53a48...Maxime Ripard5 years drm-misc-fixes-2020-02-20commit dde2bb2da0...Maarten Lankhorst5 years drm-misc-next-2020-02-10commit 06f749af62...Maxime Ripard5 years drm-misc-next-fixes-2020-02-07commit e1cf35b94c...Maarten Lankhorst5 years drm-misc-fixes-2020-02-07commit 7e0cf7e993...Maarten Lankhorst5 years drm-misc-fixes-2020-01-22-1commit bdefca2d8d...Sean Paul5 years drm-misc-fixes-2020-01-16commit 5a64967a2f...Sean Paul5 years drm-misc-next-2020-01-10commit 44c58c520f...Maarten Lankhorst5 years drm-misc-fixes-2020-01-08commit f30e27779d...Sean Paul5 years drm-misc-next-2020-01-07commit 3cacb2086e...Maarten Lankhorst5 years drm-misc-next-2020-01-02commit 1ce0d5162b...Maarten Lankhorst5 years drm-misc-fixes-2019-12-31commit ac2917b019...Sean Paul5 years drm-intel-next-2019-12-23commit 3446c63a0f...Jani Nikula5 years drm-misc-next-2019-12-16commit 2156873f08...Maarten Lankhorst5 years v5.5-rc2commit d1eef1c619...Linus Torvalds5 years drm-fixes-2019-12-13commit d16f0f6140...Dave Airlie5 years sound-5.5-rc2commit 5815bdfd7f...Takashi Iwai5 years drm-misc-next-fixes-2019-12-12commit 0a5239985a...Sean Paul5 years drm-intel-fixes-2019-12-12commit 750bde2fd4...Joonas Lahtinen5 years drm-misc-fixes-2019-12-11commit 78baee8d3b...Sean Paul5 years v5.5-rc1commit e42617b825...Linus Torvalds5 years sound-fix-5.5-rc1commit 4cc8d6505a...Takashi Iwai5 years drm-next-2019-12-06commit 9c1867d730...Dave Airlie5 years drm-intel-next-fixes-2019-12-05commit 01bb630319...Joonas Lahtinen5 years drm-misc-next-fixes-2019-12-04commit e5a6ca27eb...Sean Paul5 years drm-vmwgfx-coherent-2019-11-29commit 0a6cad5df5...Dave Airlie5 years drm-intel-next-fixes-2019-11-28commit 3cc44feb98...Joonas Lahtinen5 years drm-next-2019-11-27commit acc61b8929...Dave Airlie5 years sound-5.5-rc1commit bf2aa5cadd...Takashi Iwai5 years drm-misc-fixes-2019-11-25commit 6645d42d79...Maxime Ripard5 years v5.4commit 219d54332a...Linus Torvalds5 years drm-intel-next-fixes-2019-11-22commit 15b9cbb2c5...Joonas Lahtinen5 years drm-fixes-2019-11-22commit 51658c04c3...Dave Airlie5 years drm-intel-fixes-2019-11-21commit 71d122629c...Rodrigo Vivi5 years drm-misc-next-fixes-2019-11-20commit 9786b65bc6...Sean Paul5 years drm-intel-next-fixes-2019-11-20commit 0122baaa93...Joonas Lahtinen5 years v5.4-rc8commit af42d3466b...Linus Torvalds5 years sound-5.4-rc8commit 976a68f06b...Takashi Iwai5 years drm-fixes-2019-11-15commit 07ceccacfb...Dave Airlie5 years drm-intel-next-fixes-2019-11-14commit 789c4aea3f...Joonas Lahtinen5 years drm-intel-fixes-2019-11-13commit 1c602006d1...Rodrigo Vivi5 years drm-misc-next-fixes-2019-11-13commit a64fc11b9a...Sean Paul5 years drm-misc-fixes-2019-11-13commit 0b8e7bbde5...Maxime Ripard5 years topic/drm-mipi-dsi-dsc-updates-2019-11-11commit f4dea1aaa9...Jani Nikula5 years v5.4-rc7commit 31f4f5b495...Linus Torvalds5 years drm-fixes-2019-11-08commit ff9234583d...Dave Airlie5 years drm-intel-next-fixes-2019-11-07commit d9dace9438...Joonas Lahtinen5 years sound-5.4-rc7commit df37d941c4...Takashi Iwai5 years drm-misc-fixes-2019-11-07-1commit 105401b659...Maxime Ripard5 years drm-misc-fixes-2019-11-07commit 105401b659...Maxime Ripard5 years drm-intel-fixes-2019-11-06commit ee2c5ef8a9...Rodrigo Vivi5 years drm-misc-next-fixes-2019-11-06commit b149cbfeec...Sean Paul5 years v5.4-rc6commit a99d8080aa...Linus Torvalds5 years drm-intel-next-2019-11-01-1commit 1883e2999f...Joonas Lahtinen5 years drm-intel-next-2019-11-01commit 2b73b3503b...Joonas Lahtinen5 years drm-fixes-2019-11-01commit e54de91a24...Dave Airlie5 years drm-misc-next-2019-10-31commit fae7d7d5f3...Sean Paul5 years drm-intel-fixes-2019-10-31commit 59cd826fb5...Rodrigo Vivi5 years sound-5.4-rc6commit a393318673...Takashi Iwai5 years drm-misc-fixes-2019-10-30-1commit f70744c687...Maxime Ripard5 years drm-misc-fixes-2019-10-30commit f70744c687...Maxime Ripard5 years topic/mst-suspend-resume-reprobe-2019-10-29-2commit 12a280c728...Lyude Paul5 years v5.4-rc5commit d6d5df1db6...Linus Torvalds5 years drm-fixes-2019-10-25commit 2a3608409f...Dave Airlie5 years drm-misc-next-2019-10-24-2commit 9a42c7c647...Sean Paul5 years sound-5.4-rc5commit 4750c21217...Takashi Iwai5 years drm-misc-fixes-2019-10-23commit 8ae501e295...Maxime Ripard5 years drm-intel-next-2019-10-21commit ce53908bba...Joonas Lahtinen5 years v5.4-rc4commit 7d194c2100...Linus Torvalds5 years sound-5.4-rc4commit 94989e318b...Takashi Iwai5 years drm-fixes-2019-10-18commit 5c1e34b515...Dave Airlie5 years drm-misc-fixes-2019-10-17commit 5b3ec8134f...Sean Paul5 years drm-misc-next-2019-10-17commit e30b38b712...Sean Paul5 years drm-intel-fixes-2019-10-17commit 0a544a2a72...Rodrigo Vivi5 years v5.4-rc3commit 4f5cafb5cb...Linus Torvalds5 years drm-fixes-2019-10-11commit 4adbcff22e...Dave Airlie5 years drm-intel-fixes-2019-10-10commit e137d3abdf...Rodrigo Vivi5 years drm-misc-fixes-2019-10-10commit fd70c7755b...Maxime Ripard5 years drm-misc-next-2019-10-09-2commit 354c2d3100...Sean Paul5 years drm-intel-next-2019-10-07commit 9445ad1710...Joonas Lahtinen5 years v5.4-rc2commit da0c9ea146...Linus Torvalds5 years drm-fixes-2019-10-04commit 07bba341c9...Dave Airlie5 years drm-intel-fixes-2019-10-03-1commit 485f682be9...Rodrigo Vivi5 years drm-intel-fixes-2019-10-03commit eb0192fed0...Rodrigo Vivi5 years drm-misc-fixes-2019-10-03commit b6559bf3ac...Maxime Ripard5 years drm-misc-fixes-2019-10-02commit 6347ee48ab...Maxime Ripard5 years drm-misc-next-fixes-2019-10-02commit d7d44b6fe4...Maxime Ripard5 years v5.4-rc1commit 54ecb8f702...Linus Torvalds5 years drm-intel-next-2019-09-27commit 9cd6c339e3...Joonas Lahtinen5 years drm-next-2019-09-27commit 3e2cb6d893...Dave Airlie5 years sound-fix-5.4-rc1commit f41f900568...Takashi Iwai5 years drm-misc-next-fixes-2019-09-23commit 65e51e30d8...Maxime Ripard5 years drm-misc-next-fixes-2019-09-18commit e0f32f78e5...Maxime Ripard5 years drm-next-2019-09-18commit 945b584c94...Dave Airlie5 years sound-5.4-rc1commit 9bf9bf5440...Takashi Iwai5 years v5.3commit 4d856f72c1...Linus Torvalds5 years drm-fixes-2019-09-13commit e6bb711600...Dave Airlie5 years drm-misc-fixes-2019-09-12commit 21670bd78a...Maarten Lankhorst5 years drm-intel-next-fixes-2019-09-11commit 6e5c5272ca...Rodrigo Vivi5 years drm-intel-fixes-2019-09-11commit 2eb0964eec...Jani Nikula5 years v5.3-rc8commit f74c2bb987...Linus Torvalds5 years drm-fixes-2019-09-06commit 1e19ec6c3c...Dave Airlie5 years drm-misc-next-fixes-2019-09-06commit 88537ddbbe...Maxime Ripard5 years drm-misc-fixes-2019-09-05commit 424c38a4e3...Maarten Lankhorst5 years sound-5.3-rc8commit 2a36c16efa...Takashi Iwai5 years v5.3-rc7commit 089cf7f6ec...Linus Torvalds5 years drm-fixes-2019-08-30commit 1c0d63eb0e...Dave Airlie5 years drm-intel-fixes-2019-08-29commit 32f0a98265...Jani Nikula5 years drm-misc-fixes-2019-08-28commit 6978bce054...Maarten Lankhorst5 years sound-5.3-rc7commit 2fd2329393...Takashi Iwai5 years v5.3-rc6commit a55aa89aab...Linus Torvalds5 years drm-fixes-2019-08-24commit 7837951a12...Dave Airlie5 years drm-misc-next-2019-08-23commit e26ae7c043...Maxime Ripard5 years drm-fixes-2019-08-23commit 75710f08ea...Dave Airlie5 years drm-intel-next-2019-08-22commit be91233b10...Rodrigo Vivi5 years drm-misc-fixes-2019-08-22commit 63daf4e166...Maarten Lankhorst5 years drm-intel-fixes-2019-08-22commit ed19e3035c...Jani Nikula5 years drm-intel-next-2019-08-20commit d70898e4ea...Rodrigo Vivi5 years drm-misc-next-2019-08-19commit d777478599...Maxime Ripard5 years v5.3-rc5commit d1abaeb3be...Linus Torvalds5 years drm-misc-next-2019-08-16commit dc2e1e5b27...Maxime Ripard5 years sound-5.3-rc5commit 19bce474c4...Takashi Iwai5 years drm-fixes-2019-08-16commit a85abd5d45...Dave Airlie5 years drm-intel-fixes-2019-08-15commit daa37200d4...Jani Nikula5 years drm-intel-next-2019-08-13commit be6133b891...Rodrigo Vivi5 years v5.3-rc4commit d45331b00d...Linus Torvalds5 years drm-fixes-2019-08-09commit a111ef6b08...Dave Airlie5 years sound-5.3-rc4commit 1be3c1fae6...Takashi Iwai5 years drm-misc-next-2019-08-08commit cc8f12996e...Maxime Ripard5 years drm-misc-fixes-2019-08-08commit f7ccbed656...Maarten Lankhorst5 years drm-intel-fixes-2019-08-08commit 73a0ff0b30...Jani Nikula5 years v5.3-rc3commit e21a712a96...Linus Torvalds5 years drm-misc-next-2019-08-03commit d6781e4901...Maxime Ripard5 years drm-fixes-2019-08-02-1commit 9c8c9c7cdb...Daniel Vetter5 years drm-misc-fixes-2019-08-02commit 5854059457...Maarten Lankhorst5 years sound-5.3-rc3commit 5d78e1c2b7...Takashi Iwai5 years drm-intel-fixes-2019-08-02commit 4b9bb9728c...Jani Nikula5 years drm-fixes-2019-08-02commit f8981e0309...Dave Airlie5 years drm-intel-next-2019-07-30commit e0e712fe42...Rodrigo Vivi5 years v5.3-rc2commit 609488bc97...Linus Torvalds5 years drm-fixes-2019-07-26commit 4d5308e785...Daniel Vetter5 years sound-5.3-rc2commit 3f8809499b...Takashi Iwai5 years drm-misc-fixes-2019-07-25commit bbb6fc43f1...Sean Paul5 years v5.3-rc1commit 5f9e832c13...Linus Torvalds5 years drm-next-2019-07-19commit 8ee7956256...Daniel Vetter5 years drm-misc-next-fixes-2019-07-18commit 7aaddd96d5...Sean Paul5 years sound-fix-5.3-rc1commit 4914da2fb0...Takashi Iwai6 years drm-next-2019-07-16commit 3729fe2bc2...Dave Airlie6 years drm-next-2019-07-15-1commit 6dfc43d3a1...Dave Airlie6 years drm-next-2019-07-15commit f27b99a1ce...Dave Airlie6 years drm-misc-next-fixes-2019-07-11commit 7f3bbc0b81...Maarten Lankhorst6 years sound-5.3-rc1commit 0dcb4efb10...Takashi Iwai6 years drm-intel-next-2019-07-08commit a17ce803df...Rodrigo Vivi6 years v5.2commit 0ecfebd2b5...Linus Torvalds6 years drm-fixes-2019-07-05-1commit a0b2cf792a...Dave Airlie6 years drm-misc-fixes-2019-07-03commit 2f040d2708...Sean Paul6 years sound-5.2commit 3450121997...Takashi Iwai6 years v5.2-rc7commit 6fbc7275c7...Linus Torvalds6 years drm-misc-next-fixes-2019-06-27commit daed277e4d...Maarten Lankhorst6 years drm-misc-fixes-2019-06-26commit 41de4be6f6...Sean Paul6 years topic/remove-fbcon-notifiers-2019-06-26commit 6116b892bd...Maarten Lankhorst6 years v5.2-rc6commit 4b972a01a7...Linus Torvalds6 years drm-fixes-2019-06-21commit 5eab9cf87b...Dave Airlie6 years drm-misc-next-2019-06-20commit 836334fd74...Maarten Lankhorst6 years drm-intel-fixes-2019-06-20commit 475df5d0f3...Jani Nikula6 years drm-misc-fixes-2019-06-19commit 74b67efa8d...Sean Paul6 years drm-intel-next-2019-06-19commit 1ee008f240...Jani Nikula6 years v5.2-rc5commit 9e0babf2c0...Linus Torvalds6 years drm-fixes-2019-06-14commit e14c5873d2...Daniel Vetter6 years topic/remove-fbcon-notifiers-2019-06-14-1commit 1dcff4ae65...Maarten Lankhorst6 years sound-5.2-rc5commit 17d304604a...Takashi Iwai6 years topic/remove-fbcon-notifiers-2019-06-14commit 1dcff4ae65...Maarten Lankhorst6 years drm-misc-next-2019-06-14commit 51e857af9f...Maarten Lankhorst6 years drm-misc-fixes-2019-06-13commit 48eaeb7664...Sean Paul6 years drm-intel-fixes-2019-06-13commit c5cc0bf870...Jani Nikula6 years v5.2-rc4commit d1fdb6d8f6...Linus Torvalds6 years drm-fixes-2019-06-07-1commit 671e2ee5ee...Dave Airlie6 years drm-fixes-2019-06-07commit e659b4122c...Dave Airlie6 years drm-intel-fixes-2019-06-06commit fa2eb819dd...Joonas Lahtinen6 years drm-misc-fixes-2019-06-05commit 283f1e383e...Sean Paul6 years drm-misc-next-2019-06-05commit f5b07b04e5...Maarten Lankhorst6 years drm-intel-fixes-2019-06-03commit afb286bcae...Joonas Lahtinen6 years v5.2-rc3commit f2c7c76c5d...Linus Torvalds6 years drm-fixes-2019-05-31commit 2a3e0b7162...Dave Airlie6 years sound-5.2-rc3commit 6954158a16...Takashi Iwai6 years drm-misc-fixes-2019-05-29commit 95b74ce889...Sean Paul6 years v5.2-rc2commit cd6c84d8f0...Linus Torvalds6 years drm-intel-next-2019-05-24commit c0a74c7325...Jani Nikula6 years drm-fixes-2019-05-24-1commit c074989171...Dave Airlie6 years drm-misc-next-2019-05-24commit 909fa3321d...Maarten Lankhorst6 years drm-fixes-2019-05-24commit e1e52981f2...Dave Airlie6 years drm-misc-next-2019-05-23commit cbb56814fb...Maarten Lankhorst6 years drm-intel-fixes-2019-05-23commit 57cb853d1d...Joonas Lahtinen6 years drm-misc-fixes-2019-05-22commit f3617b449d...Sean Paul6 years drm-misc-next-fixes-2019-05-20commit 51a0d1a90b...Sean Paul6 years v5.2-rc1commit a188339ca5...Linus Torvalds6 years sound-fix-5.2-rc1commit 56df90b631...Takashi Iwai6 years drm-next-2019-05-16commit 8da0e1525b...Dave Airlie6 years drm-misc-next-fixes-2019-05-15commit 2b11745127...Sean Paul6 years drm-intel-next-fixes-2019-05-15commit c36beba6b2...Joonas Lahtinen6 years sound-5.2-rc1commit ed97c988bd...Takashi Iwai6 years drm-intel-next-fixes-2019-05-09commit 23372cce8f...Joonas Lahtinen6 years drm-next-2019-05-09commit eb85d03e01...Dave Airlie6 years drm-misc-next-fixes-2019-05-08commit 15273ffd7e...Sean Paul6 years v5.1commit e93c9c99a6...Linus Torvalds6 years panfrost-fixescommit aa20236784...Sean Paul6 years drm-fixes-2019-05-03commit 1daa0449d2...Dave Airlie6 years sound-5.1commit 3887c26c0e...Takashi Iwai6 years drm-intel-next-fixes-2019-05-02commit 9628e15ca9...Joonas Lahtinen6 years drm-misc-fixes-2019-05-02commit ab042b824c...Maxime Ripard6 years drm-misc-next-fixes-2019-05-01commit 761e473f6b...Sean Paul6 years drm-intel-next-fixes-2019-04-30commit 879a4e70f9...Joonas Lahtinen6 years v5.1-rc7commit 37624b5854...Linus Torvalds6 years drm-fixes-2019-04-26commit 6db71bea59...Dave Airlie6 years drm-misc-fixes-2019-04-25commit c4cba44eee...Maxime Ripard6 years drm-intel-next-fixes-2019-04-25commit 447811a686...Joonas Lahtinen6 years drm-intel-fixes-2019-04-24commit f5c58ba18a...Rodrigo Vivi6 years drm-misc-next-fixes-2019-04-24commit 1de7259275...Sean Paul6 years drm-fixes-2019-04-24commit a0cecc23cf...Dave Airlie6 years v5.1-rc6commit 085b775580...Linus Torvalds6 years sound-5.1-rc6commit b26e36b7ef...Takashi Iwai6 years drm-misc-next-2019-04-18commit debcd8f954...Maarten Lankhorst6 years drm-fixes-2019-04-18commit 00fd14ff30...Dave Airlie6 years drm-intel-next-2019-04-17commit ad2c467aa9...Joonas Lahtinen6 years v5.1-rc5commit dc4060a5dc...Linus Torvalds6 years drm-fixes-2019-04-12commit 788f07ebe0...Dave Airlie6 years drm-intel-fixes-2019-04-11commit 3f5f5d534b...Rodrigo Vivi6 years drm-misc-fixes-2019-04-11commit 1a07a94b47...Maxime Ripard6 years sound-5.1-rc5commit 9b0dcd0e5a...Takashi Iwai6 years drm-misc-next-2019-04-10commit 80bb8d9832...Sean Paul6 years v5.1-rc4commit 15ade5d2e7...Linus Torvalds6 years drm-fixes-2019-04-05commit 23b5f422e8...Dave Airlie6 years drm-misc-next-2019-04-04commit f15a3ea803...Sean Paul6 years drm-intel-fixes-2019-04-04commit 57cbec02f9...Rodrigo Vivi6 years drm-intel-next-2019-04-04commit 28d618e9ab...Joonas Lahtinen6 years v5.1-rc3commit 79a3aaa7b8...Linus Torvalds6 years drm-fixes-2019-03-29commit 0271ab1179...Dave Airlie6 years sound-5.1-rc3commit e2a829b3da...Takashi Iwai6 years drm-intel-fixes-2019-03-28commit 26cdaac479...Jani Nikula6 years drm-misc-next-2019-03-28-1commit 530b28426a...Sean Paul6 years drm-misc-next-2019-03-28commit 9d5549d8a8...Sean Paul6 years drm-intel-next-2019-03-28commit a01b2c6f47...Joonas Lahtinen6 years drm-misc-fixes-2019-03-25commit 3d565a21f2...Maxime Ripard6 years v5.1-rc2commit 8c2ffd9174...Linus Torvalds6 years sound-5.1-rc2commit 667a8f7375...Takashi Iwai6 years drm-fixes-2019-03-22commit 8e078788b5...Dave Airlie6 years drm-misc-next-2019-03-21commit ff01e6971e...Sean Paul6 years drm-intel-fixes-2019-03-20commit 000c4f90e3...Rodrigo Vivi6 years drm-intel-next-2019-03-20commit 1284ec9855...Joonas Lahtinen6 years v5.1-rc1commit 9e98c678c2...Linus Torvalds6 years sound-fix-5.1-rc1commit da484d00f0...Takashi Iwai6 years drm-next-2019-03-15commit 0f1d37e65a...Dave Airlie6 years drm-misc-next-fixes-2019-03-13commit c34674a23d...Maxime Ripard6 years topic/hdr-formats-2019-03-13commit a94bed60cb...Maarten Lankhorst6 years drm-intel-next-fixes-2019-03-12commit ca22f32a62...Rodrigo Vivi6 years drm-intel-next-2019-03-11commit f4ecb8ae70...Joonas Lahtinen6 years topic/hdr-formats-2019-03-07commit 296e9b19ef...Maarten Lankhorst6 years drm-misc-next-fixes-2019-03-06commit e552f08510...Maxime Ripard6 years drm-next-2019-03-06commit 4b057e73f2...Dave Airlie6 years v5.0commit 1c163f4c7b...Linus Torvalds6 years sound-5.1-rc1commit a634090a0f...Takashi Iwai6 years drm-fixes-2019-03-01commit 17fb465f16...Dave Airlie6 years topic/mei-hdcp-2019-02-26commit fa301ad9fa...Daniel Vetter6 years v5.0-rc8commit 5908e6b738...Linus Torvalds6 years drm-misc-fixes-2019-02-22commit 04b9c48851...Maarten Lankhorst6 years drm-fixes-2019-02-22commit 019276ed65...Dave Airlie6 years drm-intel-fixes-2019-02-20commit d179b88deb...Jani Nikula6 years drm-intel-next-2019-02-20commit 47ed55a9bb...Joonas Lahtinen6 years sound-5.0commit 268836649c...Takashi Iwai6 years topic/mei-hdcp-2019-02-19commit 35c0272502...Daniel Vetter6 years v5.0-rc7commit a3b22b9f11...Linus Torvalds6 years drm-fixes-2019-02-15-1commit 69ef943dbc...Dave Airlie6 years drm-fixes-2019-02-15commit 7abbb35ba9...Dave Airlie6 years drm-intel-fixes-2019-02-13commit 16eb0f34cd...Jani Nikula6 years drm-misc-fixes-2019-02-13commit 7fd56e0260...Maarten Lankhorst6 years topic/component-typed-2019-02-11commit 8857c7d065...Daniel Vetter6 years sound-5.0-rc7commit 00a399cad1...Takashi Iwai6 years drm-misc-next-2019-02-11commit 6649a95d35...Maxime Ripard6 years v5.0-rc6commit d13937116f...Linus Torvalds6 years drm-fixes-2019-02-08commit dada163c5e...Dave Airlie6 years drm-intel-next-2019-02-07commit c09d39166d...Rodrigo Vivi6 years drm-misc-fixes-2019-02-07commit 6297388e1e...Maarten Lankhorst6 years drm-intel-fixes-2019-02-07-1commit d028a646e8...Jani Nikula6 years drm-intel-fixes-2019-02-07commit d028a646e8...Jani Nikula6 years sound-5.0-rc6commit c97617a81a...Takashi Iwai6 years v5.0-rc5commit 8834f5600c...Linus Torvalds6 years drm-intel-next-2019-02-02commit 46c0cd8c56...Rodrigo Vivi6 years drm-misc-next-2019-02-01commit ba9877e236...Maxime Ripard6 years sound-5.0-rc5commit 693abe11aa...Takashi Iwai6 years drm-intel-next-2019-01-29commit d54e5f76d8...Rodrigo Vivi6 years v5.0-rc4commit f17b5f06cb...Linus Torvalds6 years drm-intel-next-2019-01-24commit 85baa5dbf7...Rodrigo Vivi6 years drm-fixes-2019-01-25-1commit f0e7ce1eef...Dave Airlie6 years drm-intel-fixes-2019-01-24commit b42606b039...Jani Nikula6 years drm-misc-fixes-2019-01-24commit 5e1bc251ce...Maarten Lankhorst6 years sound-5.0-rc4commit 699390381a...Takashi Iwai6 years drm-misc-next-2019-01-23commit 46f3ceaffa...Maxime Ripard6 years v5.0-rc3commit 49a57857ae...Linus Torvalds6 years drm-fixes-2019-01-18-1commit 9420151d88...Dave Airlie6 years drm-fixes-2019-01-18commit df0219b4f9...Dave Airlie6 years drm-misc-fixes-2019-01-17commit 4bb0e6d725...Maarten Lankhorst6 years drm-intel-fixes-2019-01-17commit 15c05196ff...Jani Nikula6 years drm-misc-next-2019-01-16commit 94520db52f...Maxime Ripard6 years drm-misc-next-2019-01-15commit ed20151a76...Maxime Ripard6 years v5.0-rc2commit 1c7fc5cbc3...Linus Torvalds6 years drm-fixes-2019-01-11-1commit e2d3c414ec...Daniel Vetter6 years drm-intel-fixes-2019-01-11commit f299e0bdba...Jani Nikula6 years drm-fixes-2019-01-11commit f34c48e06d...Dave Airlie6 years drm-intel-next-2019-01-10commit 74256b7ecf...Rodrigo Vivi6 years drm-misc-fixes-2019-01-10-1commit 4089e272ac...Maarten Lankhorst6 years sound-5.0-rc2commit d1dd42110d...Takashi Iwai6 years drm-misc-fixes-2019-01-10commit f8c15790e4...Maarten Lankhorst6 years drm-misc-next-2019-01-07-1commit 1c95f662fc...Maxime Ripard6 years drm-misc-next-2019-01-07commit 1c95f662fc...Maxime Ripard6 years v5.0-rc1commit bfeffd1552...Linus Torvalds6 years drm-next-2019-01-05commit 9ddf32a8df...Dave Airlie6 years sound-fix-4.21-rc1commit 3e9ad24b0e...Takashi Iwai6 years drm-misc-next-fixes-2019-01-02commit c75ff001f4...Maarten Lankhorst6 years topic/drmp-cleanup-2019-01-02commit dd7ece7f6e...Jani Nikula6 years drm-intel-next-fixes-2018-12-27commit cb6f4c2c34...Jani Nikula6 years drm-next-2018-12-27commit 221b35fede...Dave Airlie6 years v4.20commit 8fe28cb58b...Linus Torvalds6 years drm-intel-next-2018-12-21-1commit 17960f35f1...Rodrigo Vivi6 years drm-fixes-2018-12-21commit b6aac625e5...Daniel Vetter6 years drm-misc-fixes-2018-12-20commit 505b524032...Sean Paul6 years sound-4.21-rc1commit d82b51c855...Takashi Iwai6 years v4.20-rc7commit 7566ec393f...Linus Torvalds6 years drm-next-2018-12-14commit 2a3c83f5fe...Dave Airlie6 years drm-fixes-2018-12-14commit 1df07a7f22...Dave Airlie6 years sound-4.20-rc7commit 0bea4cc838...Takashi Iwai6 years drm-misc-fixes-2018-12-12commit 63238173b2...Sean Paul6 years drm-intel-fixes-2018-12-12-1commit 5b2e31201c...Joonas Lahtinen6 years drm-intel-fixes-2018-12-12commit 5b2e31201c...Joonas Lahtinen6 years v4.20-rc6commit 40e020c129...Linus Torvalds6 years drm-intel-fixes-2018-12-07commit d76b21ebf8...Joonas Lahtinen6 years drm-fixes-2018-12-07commit e594a5e349...Dave Airlie6 years sound-4.20-rc6commit b72f936f6b...Takashi Iwai6 years drm-misc-next-2018-12-06commit 0b258ed1a2...Maarten Lankhorst6 years drm-misc-fixes-2018-12-05commit b31a3ca745...Sean Paul6 years drm-intel-next-2018-12-04commit 4377d4e0d3...Jani Nikula6 years v4.20-rc5commit 2595646791...Linus Torvalds6 years drm-fixes-2018-11-30commit ebcdcef303...Dave Airlie6 years drm-misc-fixes-2018-11-28-1commit 9765635b30...Sean Paul6 years drm-misc-fixes-2018-11-28commit 31e1ab4945...Sean Paul6 years drm-intel-fixes-2018-11-28commit 2455facbb7...Joonas Lahtinen6 years sound-4.20-rc5commit 8159a6a4a7...Takashi Iwai6 years drm-misc-next-2018-11-28commit 08f73d6680...Maarten Lankhorst6 years v4.20-rc4commit 2e6e902d18...Linus Torvalds6 years drm-fixes-2018-11-23commit 98c9cdfd34...Dave Airlie6 years drm-intel-next-2018-11-22commit b4bf44d2dc...Jani Nikula6 years sound-4.20-rc4commit a6b0961b39...Takashi Iwai6 years drm-intel-fixes-2018-11-22commit f559156c39...Joonas Lahtinen6 years drm-misc-fixes-2018-11-21commit 8fd3b90300...Sean Paul6 years drm-misc-next-2018-11-21commit 0081cdfe63...Maarten Lankhorst6 years v4.20-rc3commit 9ff01193a2...Linus Torvalds6 years drm-fixes-2018-11-16commit 20325e8a61...Dave Airlie6 years drm-intel-fixes-2018-11-15commit 6e8adf6f4a...Joonas Lahtinen6 years drm-misc-fixes-2018-11-14commit adf59dd240...Sean Paul6 years v4.20-rc2commit ccda4af0f4...Linus Torvalds6 years drm-fixes-2018-11-11commit 73b6f96cbc...Dave Airlie6 years drm-misc-next-2018-11-08commit 783195ec1c...Maarten Lankhorst6 years sound-4.20-rc2commit 5e93a125f5...Takashi Iwai6 years drm-intel-fixes-2018-11-08commit 214782da8f...Joonas Lahtinen6 years drm-misc-fixes-2018-11-07commit a8939766c7...Sean Paul6 years drm-misc-next-2018-11-07commit e7afb623b4...Maarten Lankhorst6 years v4.20-rc1commit 651022382c...Linus Torvalds6 years sound-fix-4.20-rc1commit 826b5de90c...Takashi Iwai6 years drm-intel-next-2018-11-02commit 5468a54340...Jani Nikula6 years drm-next-2018-11-02commit f9885ef875...Dave Airlie6 years drm-misc-next-fixes-2018-10-31commit 8f054b6f53...Sean Paul6 years drm-intel-next-fixes-2018-10-25commit f9776280c2...Joonas Lahtinen6 years sound-4.20-rc1commit de7d83da84...Takashi Iwai6 years drm-next-2018-10-24commit f2bfc71aee...Dave Airlie6 years v4.19commit 84df9525b0...Greg Kroah-Hartman6 years drm-fixes-2018-10-20-1commit fe7acd1e30...Dave Airlie6 years drm-intel-next-fixes-2018-10-19commit 7b0f61e91b...Joonas Lahtinen6 years drm-misc-fixes-2018-10-19commit e84cb605e0...Maarten Lankhorst6 years drm-fixes-2018-10-19commit f8e6e1b6f0...Dave Airlie6 years drm-misc-fixes-2018-10-18commit 9068e02f58...Maarten Lankhorst6 years drm-intel-next-fixes-2018-10-18commit 835fe6d75d...Joonas Lahtinen6 years drm-misc-next-fixes-2018-10-17commit 0e8afefd5d...Sean Paul6 years v4.19-rc8commit 35a7f35ad1...Greg Kroah-Hartman6 years drm-fixes-2018-10-12-1commit 5ba15878f2...Dave Airlie6 years drm-misc-next-fixes-2018-10-10commit 7372fd049a...Sean Paul6 years v4.19-rc7commit 0238df646e...Greg Kroah-Hartman6 years sound-4.19-rc7commit 709ae62e8e...Takashi Iwai6 years drm-fixes-2018-10-05commit bdf800c6fd...Dave Airlie6 years drm-misc-fixes-2018-10-04commit 4d4c2d8991...Maarten Lankhorst6 years drm-fixes-2018-10-04commit d8938c981f...Dave Airlie6 years drm-intel-fixes-2018-10-03commit 4c9613ce55...Rodrigo Vivi6 years drm-misc-next-fixes-2018-10-03commit 4be9bd10e2...Sean Paul6 years v4.19-rc6commit 17b57b1883...Greg Kroah-Hartman6 years drm-fixes-2018-09-28commit fcb1349a2a...Dave Airlie6 years drm-misc-fixes-2018-09-27-1commit d6a77ba0eb...Sean Paul6 years drm-misc-fixes-2018-09-27commit 337fe9f5c1...Maarten Lankhorst6 years drm-misc-next-2018-09-27commit c2b70ffcd3...Sean Paul6 years v4.19-rc5commit 6bf4ca7fbc...Greg Kroah-Hartman6 years drm-intel-next-2018-09-21commit 448626103d...Joonas Lahtinen6 years drm-fixes-2018-09-21commit 4fcb7f8be8...Dave Airlie6 years drm-misc-next-2018-09-19commit e884818cc0...Sean Paul6 years drm-intel-fixes-2018-09-19commit a530bf948a...Rodrigo Vivi6 years drm-misc-fixes-2018-09-19commit 558a9ef94a...Maarten Lankhorst6 years sound-4.19-rc5commit 196f4eeeb7...Takashi Iwai6 years v4.19-rc4commit 7876320f88...Linus Torvalds6 years drm-fixes-2018-09-14commit 2b6318a09f...Dave Airlie6 years drm-misc-next-2018-09-13commit 169cc4c7a1...Sean Paul6 years drm-fixes-2018-09-12commit 2887e5ce15...Dave Airlie6 years drm-intel-fixes-2018-09-11commit 17dc7af70e...Rodrigo Vivi6 years v4.19-rc3commit 11da3a7f84...Linus Torvalds6 years drm-fixes-2018-09-07commit 67c6ed7cf9...Dave Airlie6 years sound-4.19-rc3commit f7c50fa636...Takashi Iwai6 years drm-intel-next-2018-09-06-2commit a28957b8f1...Joonas Lahtinen6 years drm-intel-next-2018-09-06-1commit d4da8a4d40...Joonas Lahtinen6 years drm-intel-next-2018-09-06commit 01a84c11a5...Joonas Lahtinen6 years drm-misc-next-2018-09-05commit 3ee22b769f...Sean Paul6 years drm-intel-fixes-2018-09-05commit 2b82435cb9...Rodrigo Vivi6 years v4.19-rc2commit 57361846b5...Linus Torvalds6 years drm-fixes-2018-08-31commit 49a51c4b40...Dave Airlie6 years drm-misc-next-2018-08-30commit 09c4b49457...Sean Paul6 years drm-intel-fixes-2018-08-29commit 80ab316901...Rodrigo Vivi6 years v4.19-rc1commit 5b394b2ddf...Linus Torvalds6 years drm-next-2018-08-24commit 3e20e97c2d...Dave Airlie6 years drm-misc-next-fixes-2018-08-23-1commit 25da75043f...Sean Paul6 years sound-fix-4.19-rc1commit 8a328ac1f9...Takashi Iwai6 years drm-misc-next-fixes-2018-08-22commit 4acd8d01a2...Sean Paul6 years drm-next-2018-08-17-1commit 3d63a3c147...Dave Airlie6 years drm-next-2018-08-17commit 0258d7a5e2...Dave Airlie6 years drm-misc-next-fixes-2018-08-16-1commit 4acd8d01a2...Gustavo Padovan6 years drm-intel-next-fixes-2018-08-16-1commit 4795ac626a...Rodrigo Vivi6 years drm-next-2018-08-15commit 557ce95051...Dave Airlie6 years sound-4.19-rc1commit f5b6c1fcb4...Takashi Iwai6 years v4.18commit 94710cac0e...Linus Torvalds6 years drm-intel-next-fixes-2018-08-06commit 3237c0dbe2...Rodrigo Vivi6 years v4.18-rc8commit 1ffaddd029...Linus Torvalds6 years drm-fixes-2018-08-03commit 51973dc079...Dave Airlie6 years drm-misc-next-fixes-2018-08-02commit 2ead1be54b...Gustavo Padovan6 years v4.18-rc7commit acb1872577...Linus Torvalds6 years drm-misc-fixes-2018-07-27commit a6a00918d4...Maarten Lankhorst6 years drm-fixes-2018-07-27commit 050d2a5533...Dave Airlie6 years drm-intel-fixes-2018-07-26commit 0ca9488193...Rodrigo Vivi6 years v4.18-rc6commit d72e90f33a...Linus Torvalds6 years drm-fixes-2018-07-20commit 02e546eacc...Dave Airlie6 years drm-intel-next-2018-07-19commit ef821e3f14...Rodrigo Vivi6 years sound-4.18-rc6commit f3d737b634...Takashi Iwai6 years drm-misc-next-2018-07-18commit 979c11ef39...Gustavo Padovan6 years drm-fixes-2018-07-16-1commit bf642e3a19...Dave Airlie7 years v4.18-rc5commit 9d3cce1e8b...Linus Torvalds7 years drm-misc-fixes-2018-07-13commit 3156b53c2e...Maarten Lankhorst7 years drm-intel-fixes-2018-07-12commit 09d2da310d...Rodrigo Vivi7 years drm-intel-next-2018-07-12commit f7cf1a1829...Rodrigo Vivi7 years sound-4.18-rc5commit c5a59d2477...Takashi Iwai7 years drm-misc-next-2018-07-11commit ae61f61fa8...Gustavo Padovan7 years drm-intel-fixes-2018-07-10commit 96a85cc517...Rodrigo Vivi7 years drm-fixes-2018-07-10commit dc81aab1be...Dave Airlie7 years drm-intel-next-2018-07-09commit 82edc7e8b8...Rodrigo Vivi7 years v4.18-rc4commit 1e4b044d22...Linus Torvalds7 years drm-fixes-2018-07-06commit c78d1f9d95...Dave Airlie7 years drm-misc-fixes-2018-07-05commit 44f9a4b0dc...Maarten Lankhorst7 years drm-intel-fixes-2018-07-05commit 3030deda09...Jani Nikula7 years drm-misc-next-2018-07-04commit 968d72e6a5...Gustavo Padovan7 years v4.18-rc3commit 021c91791a...Linus Torvalds7 years drm-fixes-2018-06-29commit 2d8aa4ef6a...Dave Airlie7 years drm-misc-fixes-2018-06-28commit 01a9e9493f...Maarten Lankhorst7 years drm-misc-next-2018-06-27commit 57e23de02f...Gustavo Padovan7 years sound-4.18-rc3commit c9a4c63888...Takashi Iwai7 years v4.18-rc2commit 7daf201d7f...Linus Torvalds7 years drm-fixes-2018-06-22commit f3294568bb...Dave Airlie7 years drm-misc-fixes-2018-06-21commit e8b92efa62...Maarten Lankhorst7 years drm-intel-fixes-2018-06-21commit 7a3727f385...Jani Nikula7 years drm-misc-next-2018-06-21commit c612ae0503...Gustavo Padovan7 years drm-misc-next-2018-06-20-1commit f55786faa1...Gustavo Padovan7 years drm-intel-next-2018-06-20commit e1cacec9d5...Rodrigo Vivi7 years v4.18-rc1commit ce397d215c...Linus Torvalds7 years drm-misc-next-fixes-2018-06-15commit 069035c5db...Maarten Lankhorst7 years drm-next-2018-06-15commit daf0678c20...Dave Airlie7 years sound-fix-4.18-rc1commit ad6baae623...Takashi Iwai7 years drm-misc-fixes-2018-06-12commit 889ad63d41...Maarten Lankhorst7 years drm-next-2018-06-11commit 33ce21d6a2...Dave Airlie7 years drm-intel-next-fixes-2018-06-08-2commit 807cba6559...Jani Nikula7 years drm-intel-next-2018-06-06commit 14c3f84250...Rodrigo Vivi7 years sound-4.18-rc1commit d4d5a1cd29...Takashi Iwai7 years drm-next-2018-06-06-1commit 568cf2e6aa...Dave Airlie7 years v4.17commit 29dcea8877...Linus Torvalds7 years drm-fixes-for-v4.17-rc8commit 012cfaced0...Dave Airlie7 years drm-misc-next-fixes-2018-05-31commit fbecef1316...Maarten Lankhorst7 years drm-misc-fixes-2018-05-30commit c32048d9e9...Sean Paul7 years drm-misc-fixes-2018-05-29commit 2bc5ff0bdc...Sean Paul7 years drm-intel-fixes-2018-05-29commit 65b3bdc807...Joonas Lahtinen7 years v4.17-rc7commit b04e217704...Linus Torvalds7 years drm-fixes-for-v4.17-rc7commit 4bc6f77795...Dave Airlie7 years sound-4.17-rc7commit 009f8c90f5...Takashi Iwai7 years v4.17-rc6commit 771c577c23...Linus Torvalds7 years drm-fixes-for-v4.17-rc6commit 1827cad96d...Dave Airlie7 years drm-intel-fixes-2018-05-17commit b579f924a9...Joonas Lahtinen7 years drm-misc-fixes-2018-05-16commit 2b6207291b...Sean Paul7 years sound-4.17-rc6commit c99f0802e4...Takashi Iwai7 years drm-misc-next-2018-05-15commit 68266f1c08...Maarten Lankhorst7 years drm-fixes-for-v4.17-rc6-urgentcommit 76ef6b28ea...Dave Airlie7 years drm-intel-next-2018-05-14commit 01f83786f9...Jani Nikula7 years v4.17-rc5commit 67b8d5c708...Linus Torvalds7 years drm-misc-next-2018-05-11-1commit ef6ccc68a4...Maarten Lankhorst7 years drm-fixes-for-v4.17-rc5commit 72777fe797...Dave Airlie7 years drm-misc-fixes-2018-05-09commit 9a0e980221...Sean Paul7 years drm-intel-fixes-2018-05-09commit e8f48f96db...Joonas Lahtinen7 years v4.17-rc4commit 75bc37fefc...Linus Torvalds7 years drm-fixes-for-v4.17-rc4commit a02cbe2e34...Dave Airlie7 years drm-misc-next-2018-05-04commit 7420e04963...Maarten Lankhorst7 years sound-4.17-rc4commit f13876e2c3...Takashi Iwai7 years drm-misc-fixes-2018-05-02commit 49ceda9de2...Sean Paul7 years drm-intel-fixes-2018-05-02commit b607990c76...Joonas Lahtinen7 years v4.17-rc3commit 6da6c0db53...Linus Torvalds7 years drm-fixes-for-v4.17-rc3commit 24d9092c8b...Dave Airlie7 years sound-4.17-rc3commit 0f925660a7...Takashi Iwai7 years drm-misc-next-2018-04-26commit 741c3aeb82...Maarten Lankhorst7 years drm-intel-fixes-2018-04-26commit 0b551f1e0f...Joonas Lahtinen7 years drm-misc-fixes-2018-04-25commit 1f6b8eef11...Sean Paul7 years v4.17-rc2commit 6d08b06e67...Linus Torvalds7 years drm-fixes-for-v4.17-rc2commit 221bda4b5f...Dave Airlie7 years sound-4.17-rc2commit 8a56ef4f3f...Takashi Iwai7 years drm-intel-next-fixes-2018-04-19commit b461573053...Joonas Lahtinen7 years drm-misc-fixes-2018-04-18-1commit 7eb2c4dd54...Sean Paul7 years drm-misc-fixes-2018-04-18commit 7eb2c4dd54...Sean Paul7 years v4.17-rc1commit 60cc43fc88...Linus Torvalds7 years drm-intel-next-2018-04-13commit fadec6eefe...Jani Nikula7 years drm-fixes-for-v4.17-rc1commit a10beabba2...Dave Airlie7 years drm-misc-next-fixes-2018-04-11commit 41613a1a7d...Sean Paul7 years sound-fix-4.17-rc1commit e1a3a981e3...Takashi Iwai7 years sound-4.17-rc1commit a820ccbe21...Takashi Iwai7 years drm-misc-next-fixes-2018-04-04commit 8cd1b5bd70...Sean Paul7 years v4.16commit 0adb32858b...Linus Torvalds7 years sound-4.16commit 5607dddbfc...Takashi Iwai7 years drm-for-v4.17commit 694f54f680...Dave Airlie7 years drm-fixes-for-v4.16-rc8commit ef55d1538d...Dave Airlie7 years drm-misc-next-fixes-2018-03-28commit b4eec0fa53...Sean Paul7 years drm-intel-next-fixes-2018-03-27commit 300efa9eea...Joonas Lahtinen7 years v4.16-rc7commit 3eb2ce825e...Linus Torvalds7 years sound-4.16-rc7commit 8e6b1a72a7...Takashi Iwai7 years drm-fixes-for-v4.16-rc7commit 5a9f698feb...Dave Airlie7 years drm-misc-fixes-2018-03-22commit 3b82a4db8e...Gustavo Padovan7 years drm-intel-next-fixes-2018-03-22commit 8c5cb3c1c5...Joonas Lahtinen7 years drm-intel-fixes-2018-03-21commit 3a088dd1b7...Rodrigo Vivi7 years drm-misc-next-2018-03-21commit 1c7095d283...Sean Paul7 years v4.16-rc6commit c698ca5278...Linus Torvalds7 years drm-fixes-for-v4.16-rc6commit 3a1b5de36f...Dave Airlie7 years drm-intel-fixes-2018-03-15commit 05b429a8ee...Rodrigo Vivi7 years sound-4.16-rc6commit db45dc9540...Takashi Iwai7 years drm-intel-fixes-2018-03-14commit f1430f145e...Rodrigo Vivi7 years v4.16-rc5commit 0c8efd610b...Linus Torvalds7 years drm-misc-next-2018-03-09-3commit 60beeccc72...Sean Paul7 years sound-4.16-rc5commit 099fd6ca0a...Takashi Iwai7 years drm-fixes-for-v4.16-rc5commit b0655d668f...Dave Airlie7 years drm-intel-next-2018-03-08commit cf07a60f03...Joonas Lahtinen7 years drm-intel-fixes-2018-03-07commit 88d3dfb6a6...Rodrigo Vivi7 years drm-misc-fixes-2018-03-07commit fd00c4ee76...Gustavo Padovan7 years drm-intel-next-2018-03-05commit 1f267a572b...Joonas Lahtinen7 years v4.16-rc4commit 661e50bc85...Linus Torvalds7 years drm-fixes-for-v4.16-rc4commit 93dfdf9fde...Dave Airlie7 years sound-4.16-rc4commit c77a6edb6d...Takashi Iwai7 years drm-intel-fixes-2018-02-28commit fa89782b4f...Rodrigo Vivi7 years drm-misc-next-2018-02-28commit 7628166d5e...Sean Paul7 years drm-misc-fixes-2018-02-28commit 9a191b1149...Gustavo Padovan7 years v4.16-rc3commit 4a3928c6f8...Linus Torvalds7 years drm-fixes-for-v4.16-rc3commit b17800e9b7...Dave Airlie7 years drm-misc-next-2018-02-21commit 2b91e3c43b...Sean Paul7 years drm-misc-fixes-2018-02-21commit 30a3317ddc...Gustavo Padovan7 years drm-intel-next-2018-02-21commit fed8165851...Joonas Lahtinen7 years v4.16-rc2commit 91ab883eb2...Linus Torvalds7 years sound-4.16-rc2commit fdcc968a3b...Takashi Iwai7 years drm-fixes-for-v4.16-rc2commit bfad2d08e5...Dave Airlie7 years drm-intel-fixes-2018-02-14-1commit ee622fe757...Rodrigo Vivi7 years drm-misc-next-2018-02-13commit 1bc3d3cce8...Sean Paul7 years topic/hdcp-2018-02-13commit 2834d9dfaf...Sean Paul7 years v4.16-rc1commit 7928b2cbe5...Linus Torvalds7 years drm-for-v4.16-part2-fixescommit 94fc27ac48...Dave Airlie7 years drm-intel-next-fixes-2018-02-07commit 6dd3104e78...Rodrigo Vivi7 years drm-intel-next-2018-02-07commit 2f2f2db86d...Joonas Lahtinen7 years drm-misc-next-2018-02-06commit 4beb3b40ae...Sean Paul7 years drm-intel-next-fixes-2018-02-01commit 751b01cb07...Rodrigo Vivi7 years drm-for-v4.16commit 24b8ef699e...Dave Airlie7 years drm-misc-fixes-2018-01-31commit 745fd50f3b...Gustavo Padovan7 years drm-misc-next-fixes-2018-01-31commit 761e05a702...Gustavo Padovan7 years topic/backlight_for_lag-2018-01-29commit 2e4ef3347b...Sean Paul7 years v4.15commit d8a5b80568...Linus Torvalds7 years drm-fixes-for-v4.15-rc10-2commit baa35cc322...Dave Airlie7 years drm-fixes-for-v4.15-rc10commit 7e3f8e91e8...Dave Airlie7 years drm-misc-fixes-2018-01-24commit 17b11b76b8...Sean Paul7 years v4.15-rc9commit 0c5b9b5d9a...Linus Torvalds7 years sound-4.16-rc1commit 1c9609e3a8...Takashi Iwai7 years drm-fixes-for-v4.15-rc9commit 04cef3eadc...Dave Airlie7 years drm-misc-next-fixes-2018-01-18commit 341a0ffcea...Gustavo Padovan7 years drm-intel-fixes-2018-01-18commit 4488496d58...Jani Nikula7 years drm-misc-fixes-2018-01-17commit 3b9c57cef4...Daniel Vetter7 years sound-4.15commit b3defb791b...Takashi Iwai7 years v4.15-rc8commit a8750ddca9...Linus Torvalds7 years drm-fixes-for-v4.15-rc8commit fee6c614a5...Dave Airlie7 years drm-intel-fixes-2018-01-11-1commit 5005c85142...Jani Nikula7 years sound-4.15-rc8commit 900498a34a...Takashi Iwai7 years drm-misc-next-2018-01-08commit a1c55bccf6...Gustavo Padovan7 years drm-misc-fixes-2018-01-08commit ce9caf2f79...Daniel Vetter7 years v4.15-rc7commit b2cd1df660...Linus Torvalds7 years drm-fixes-for-v4.15-rc7commit bc6fe53327...Dave Airlie7 years drm-intel-fixes-2018-01-04commit 30414f3010...Jani Nikula7 years v4.15-rc6commit 30a7acd573...Linus Torvalds7 years drm-fixes-for-v4.15-rc6commit 03bfd4e19b...Dave Airlie7 years sound-4.15-rc6commit 44be77c590...Takashi Iwai7 years v4.15-rc5commit 464e1d5f23...Linus Torvalds7 years drm-intel-next-2017-12-22commit cfe4982ca4...Rodrigo Vivi7 years drm-intel-fixes-2017-12-22-1commit 8bc0d7ac93...Jani Nikula7 years drm-fixes-for-v4.15-rc5commit e7cdf5c82f...Dave Airlie7 years drm-misc-next-2017-12-21commit 8d44e9e69a...Gustavo Padovan7 years drm-misc-fixes-2017-12-21commit d2a48e5254...Daniel Vetter7 years drm-intel-fixes-2017-12-20commit a4ffdc2b67...Jani Nikula7 years sound-4.15-rc5commit 5a15f289ee...Takashi Iwai7 years v4.15-rc4commit 1291a0d504...Linus Torvalds7 years drm-intel-next-2017-12-14commit ee5b5bf351...Rodrigo Vivi7 years drm-intel-fixes-2017-12-14commit 2cf654db8d...Jani Nikula7 years drm-misc-next-2017-12-14commit ca40cfc85e...Gustavo Padovan7 years drm-misc-fixes-2017-12-14commit bd36d3bab2...Daniel Vetter7 years v4.15-rc3commit 50c4c4e268...Linus Torvalds7 years drm-fixes-for-v4.15-rc3commit 90eeb3aa34...Dave Airlie7 years drm-misc-fixes-2017-12-07commit 510353a637...Daniel Vetter7 years drm-intel-fixes-2017-12-07commit d85936ab62...Joonas Lahtinen7 years drm-misc-next-2017-12-07commit bc29489f71...Gustavo Padovan7 years drm-misc-fixes-2017-12-06commit a703c55004...Daniel Vetter7 years sound-4.15-rc3commit 362bca57f5...Takashi Iwai7 years v4.15-rc2commit ae64f9bd1d...Linus Torvalds7 years drm-intel-next-2017-12-01commit d65efe7c95...Rodrigo Vivi7 years drm-fixes-for-v4.15-rc2commit 503505bfea...Dave Airlie7 years drm-misc-next-2017-11-30commit 2f51be0945...Gustavo Padovan7 years drm-intel-fixes-2017-11-30commit fd50fbb6bf...Joonas Lahtinen7 years drm-intel-fixes-2017-11-30-1commit fd50fbb6bf...Joonas Lahtinen7 years drm-misc-fixes-2017-11-30commit 4dbd6c03fb...Daniel Vetter7 years v4.15-rc1commit 4fbd8d194f...Linus Torvalds7 years drm-for-v4.15-part2-fixescommit c209101fc1...Dave Airlie7 years drm-misc-next-fixes-2017-11-23commit b8a3365a30...Daniel Vetter7 years sound-fix-4.15-rc1commit 9ceace3c9c...Takashi Iwai7 years drm-intel-next-fixes-2017-11-23commit 3572f04c69...Jani Nikula7 years drm-for-v4.15-part2commit 98ecf1a308...Dave Airlie7 years drm-misc-fixes-2017-11-20commit 9271c0ca57...Daniel Vetter7 years drm-intel-next-2017-11-17-1commit 010d118c20...Rodrigo Vivi7 years drm-for-v4.15-amd-dccommit 49e37ba07a...Dave Airlie7 years sound-4.15-rc1commit 7087cb8fad...Takashi Iwai7 years drm-for-v4.15commit f150891fd9...Dave Airlie7 years drm-misc-fixes-2017-11-13commit 44419ce7d7...Sean Paul7 years v4.14commit bebc6082da...Linus Torvalds7 years drm-intel-next-fixes-2017-11-10commit e8c49fa968...Jani Nikula7 years drm-fixes-for-v4.14-rc9commit 60ccb31bd6...Dave Airlie7 years drm-intel-next-2017-11-09commit e25dcf6ed8...Rodrigo Vivi7 years sound-4.14commit 75ee94b20b...Takashi Iwai7 years drm-intel-fixes-2017-11-08commit 423a8a942e...Rodrigo Vivi7 years drm-misc-next-fixes-2017-11-08commit a111fbc4c4...Daniel Vetter7 years drm-misc-next-fixes-2017-11-07commit e073db5c5d...Daniel Vetter7 years v4.14-rc8commit 39dae59d66...Linus Torvalds7 years drm-fixes-for-v4.14-rc8commit 9cc06965fc...Dave Airlie7 years drm-misc-fixes-2017-11-02commit 62676d10b4...Sean Paul7 years drm-intel-fixes-2017-11-01commit bb5cf33863...Rodrigo Vivi7 years sound-4.14-rc8commit a53a0ab8ff...Takashi Iwai7 years v4.14-rc7commit 0b07194bb5...Linus Torvalds7 years drm-fixes-for-v4.14-rc7commit ce485df43d...Dave Airlie7 years drm-intel-fixes-2017-10-26commit 894e287b3d...Rodrigo Vivi7 years drm-intel-fixes-2017-10-25commit 7277f75504...Rodrigo Vivi7 years sound-4.14-rc7commit f265788c33...Takashi Iwai7 years v4.14-rc6commit bb176f6709...Linus Torvalds7 years drm-intel-next-2017-10-23commit cdc1cdca2d...Jani Nikula7 years drm-misc-next-2017-10-20commit af0c8c1056...Daniel Vetter7 years drm-fixes-for-v4.14-rc6commit 2cb3a34abd...Dave Airlie7 years sound-4.14-rc6commit a91d66129f...Takashi Iwai7 years drm-intel-fixes-2017-10-18-1commit dd00ed9eff...Rodrigo Vivi7 years drm-intel-fixes-2017-10-18commit dd00ed9eff...Rodrigo Vivi7 years drm-misc-next-2017-10-16commit 2e20c9ddae...Daniel Vetter7 years v4.14-rc5commit 33d930e59a...Linus Torvalds7 years drm-fixes-for-v4.14-rc5commit a480f30846...Dave Airlie7 years drm-intel-next-2017-10-12commit fa9caf0b6e...Jani Nikula7 years drm-misc-next-2017-10-12commit cccf4e3fe3...Daniel Vetter7 years drm-intel-fixes-2017-10-11commit ea850f64c2...Rodrigo Vivi7 years drm-misc-fixes-2017-10-11commit f7974880cf...Sean Paul7 years sound-4.14-rc5commit 99fee50824...Takashi Iwai7 years v4.14-rc4commit 8a5776a5f4...Linus Torvalds7 years drm-fixes-for-v4.14-rc4commit baf7c1f7e8...Dave Airlie7 years drm-misc-fixes-2017-10-05commit cb1dab0e01...Daniel Vetter7 years sound-4.14-rc4commit 7682e39948...Takashi Iwai7 years drm-intel-fixes-2017-10-04commit 069d40f583...Rodrigo Vivi7 years drm-misc-next-2017-10-05commit 5b9fbfff76...Daniel Vetter7 years v4.14-rc3commit 9e66317d3c...Linus Torvalds7 years drm-intel-next-2017-09-29commit e18063e88b...Jani Nikula7 years drm-fixes-for-v4.14-rc3commit 2b702e72e3...Dave Airlie7 years drm-misc-fixes-2017-09-28-1commit a98c75fcd0...Sean Paul7 years drm-misc-fixes-2017-09-28commit 1ebfc603d0...Sean Paul7 years drm-intel-fixes-2017-09-27commit 2ba7d7e043...Rodrigo Vivi7 years v4.14-rc2commit e19b205be4...Linus Torvalds7 years drm-fixes-for-v4.14-rc2commit 56eac98b8a...Dave Airlie7 years drm-misc-next-2017-09-20commit ac6c35a4d8...Daniel Vetter7 years drm-intel-fixes-2017-09-20commit 99df13b6ea...Rodrigo Vivi7 years drm-intel-fixes-2017-09-19commit 99df13b6ea...Rodrigo Vivi7 years v4.14-rc1commit 2bd6bf03f4...Linus Torvalds7 years drm-fixes-for-v4.14-rc1commit 47e0cd6b1d...Dave Airlie7 years sound-fix-4.14-rc1commit fc27fe7e8d...Takashi Iwai7 years drm-intel-next-fixes-2017-09-07commit 426ca2cb69...Rodrigo Vivi7 years drm-intel-next-2017-09-07commit bb9d2d0505...Jani Nikula7 years sound-4.14-rc1commit ee5f38a445...Takashi Iwai7 years v4.13commit 569dbb88e8...Linus Torvalds7 years sound-4.13-rc8commit 83b033bd33...Takashi Iwai7 years drm-fixes-for-v4.13-rc8commit 58aec87265...Dave Airlie7 years drm-for-v4.14commit 7846b12fe0...Dave Airlie7 years drm-misc-next-fixes-2017-08-28commit f44d85389e...Sean Paul7 years drm-misc-fixes-2017-08-28commit 79964dbaf6...Sean Paul7 years v4.13-rc7commit cc4a41fe55...Linus Torvalds7 years sound-4.13-rc7commit 9ce76511b6...Takashi Iwai7 years drm-fixes-for-v4.13-rc7commit da61197977...Dave Airlie7 years drm-misc-fixes-2017-08-24commit fe4600a548...Sean Paul7 years drm-intel-fixes-2017-08-24commit e7c50e1156...Jani Nikula7 years v4.13-rc6commit 14ccee78fc...Linus Torvalds7 years drm-intel-next-2017-08-18commit a42894ebb5...Daniel Vetter7 years drm-misc-next-2017-08-18commit 0e8841ec7e...Sean Paul7 years drm-misc-fixes-2017-08-18commit a0ffc51e20...Sean Paul7 years sound-4.13-rc6commit 0b36f2bd28...Takashi Iwai7 years drm-fixes-for-v4.13-rc6commit 28eb462879...Dave Airlie7 years drm-misc-next-2017-08-16commit d956e1293b...Sean Paul7 years drm-intel-fixes-2017-08-16commit 781cc76e0c...Jani Nikula7 years v4.13-rc5commit ef954844c7...Linus Torvalds7 years drm-fixes-for-v4.13-rc5commit 46828dc779...Dave Airlie7 years drm-intel-fixes-2017-08-09-1commit 1e2ba78878...Jani Nikula7 years drm-intel-fixes-2017-08-09commit 1e2ba78878...Jani Nikula7 years drm-misc-fixes-2017-08-08commit 80c471ea04...Sean Paul7 years drm-misc-next-2017-08-08commit 16fece0153...Sean Paul7 years v4.13-rc4commit aae4e7a8bc...Linus Torvalds7 years sound-4.13-rc4commit 5ef26e966d...Takashi Iwai7 years drm-fixes-for-v4.13-rc4commit 5669b9989e...Dave Airlie7 years drm-intel-next-2017-07-31commit d0604a24d4...Daniel Vetter7 years v4.13-rc3commit 16f73eb02d...Linus Torvalds7 years drm-fixes-for-v4.13-rc3commit 20806588f0...Dave Airlie7 years drm-intel-fixes-2017-07-27commit 5fe220a160...Daniel Vetter7 years drm-misc-fixes-2017-07-27commit fea2099597...Sean Paul7 years sound-4.13-rc3commit ba92b11428...Takashi Iwai7 years drm-misc-next-2017-07-26commit 8bb9777332...Sean Paul7 years v4.13-rc2commit 520eccdfe1...Linus Torvalds7 years drm-fixes-for-v4.13-rc2commit 5896ec77d7...Dave Airlie7 years drm-misc-fixes-2017-07-20commit 636c4c3e76...Sean Paul7 years drm-misc-next-2017-07-18commit b1332aaabb...Sean Paul7 years drm-intel-next-2017-07-17commit 58947144af...Daniel Vetter8 years v4.13-rc1commit 5771a8c088...Linus Torvalds8 years sound-fix-4.13-rc1commit b9091b1c65...Takashi Iwai8 years drm-fixes-for-v4.13-rc1commit 6419ec78c6...Dave Airlie8 years drm-intel-next-fixes-2017-07-11commit eafbc20701...Jani Nikula8 years drm-misc-next-fixes-2017-07-10commit 6f6e0b217a...Sean Paul8 years drm-for-v4.13commit 00fc2c26bc...Dave Airlie8 years sound-4.13-rc1commit fc18282cdc...Takashi Iwai8 years drm-intel-next-2017-07-03commit 2c4b851933...Daniel Vetter8 years v4.12commit 6f7da29041...Linus Torvalds8 years sound-4.12commit d94815f917...Takashi Iwai8 years drm-misc-next-fixes-2017-06-27commit c048c984de...Sean Paul8 years drm-intel-next-fixes-2017-06-27commit bdbbf7d619...Daniel Vetter8 years drm-intel-fixes-2017-06-27commit 611cdf3695...Daniel Vetter8 years v4.12-rc7commit c0bc126f97...Linus Torvalds8 years sound-4.12-rc7commit c7ecb9068e...Takashi Iwai8 years drm-fixes-for-v4.12-rc7commit 33ce7563a4...Dave Airlie8 years drm-misc-fixes-2017-06-22commit e94ac3510b...Sean Paul8 years drm-intel-fixes-2017-06-20commit a8ae0a773d...Jani Nikula8 years drm-misc-next-2017-06-19_0commit 34c8ea400f...Sean Paul8 years drm-misc-next-2017-06-19commit 4c952eaba7...Sean Paul8 years v4.12-rc6commit 41f1830f5a...Linus Torvalds8 years drm-intel-next-2017-06-19commit 9ddb8e1743...Daniel Vetter8 years drm-fixes-for-v4.12-rc6commit 7119dbdf7c...Dave Airlie8 years drm-misc-next-2017-06-15commit ac7c748317...Sean Paul8 years drm-misc-fixes-2017-06-15commit 0f933328f0...Sean Paul8 years drm-intel-fixes-2017-06-15commit c380f68124...Jani Nikula8 years v4.12-rc5commit 32c1431eea...Linus Torvalds8 years sound-4.12-rc5commit ba3021b2c7...Takashi Iwai8 years drm-fixes-for-v4.12-rc5commit 6e88007e22...Dave Airlie8 years drm-intel-fixes-2017-06-08commit ef6c4d75e3...Jani Nikula8 years drm-misc-fixes-2017-06-07commit 8604889f83...Sean Paul8 years v4.12-rc4commit 3c2993b8c6...Linus Torvalds8 years drm-misc-next-2017-06-02commit 7f696942a7...Sean Paul8 years drm-misc-fixes-2017-06-02commit 75fb636324...Sean Paul8 years sound-4.12-rc4commit d2c3b14e1f...Takashi Iwai8 years drm-dp-quirk-for-v4.12-rc4commit 28904eeced...Dave Airlie8 years drm-fixes-for-v4.12-rc4commit 400129f0a3...Dave Airlie8 years topic/dp-quirks-2017-05-31commit b31e85eda3...Jani Nikula8 years drm-intel-fixes-2017-05-29commit 9bd9590997...Jani Nikula8 years drm-intel-next-2017-05-29commit cd9f4688a3...Daniel Vetter8 years v4.12-rc3commit 5ed02dbb49...Linus Torvalds8 years drm-misc-next-2017-05-26commit 71ebc9a379...Sean Paul8 years sound-4.12-rc3commit 1fc2e41f7a...Takashi Iwai8 years drm-fixes-for-v4.12-rc3commit bc1f0e04da...Dave Airlie8 years drm-misc-next-2017-05-25commit 71ebc9a379...Sean Paul8 years drm-misc-fixes-2017-05-25commit 82bc9a42cf...Sean Paul8 years v4.12-rc2commit 08332893e3...Linus Torvalds8 years drm-fixes-for-v4.12-rc2commit d51aff16e8...Dave Airlie8 years drm-misc-fixes-2017-05-18commit 6bee9b78a7...Sean Paul8 years drm-intel-fixes-2017-05-18-1commit 2f720aac93...Jani Nikula8 years drm-misc-next-2017-05-16commit 9cf8f5802f...Sean Paul8 years drm-intel-next-2017-05-15commit 2388cd9c50...Daniel Vetter8 years v4.12-rc1commit 2ea659a9ef...Linus Torvalds8 years sound-fix-4.12-rc1commit 31cbee6a56...Takashi Iwai8 years drm-fixes-for-v4.12-rc1commit 7b8cd3363e...Dave Airlie8 years drm-misc-next-fixes-2017-05-05commit e345da82bd...Sean Paul8 years drm-misc-next-2017-05-05commit 3c390df333...Sean Paul8 years drm-coc-for-v4.12-rc1commit 8676df5030...Dave Airlie8 years drm-forgot-about-tegra-for-v4.12-rc1commit 644b4930bf...Dave Airlie8 years drm-for-v4.12commit 8b03d1ed2c...Dave Airlie8 years sound-4.12-rc1commit a5c3b32a11...Takashi Iwai8 years drm-intel-next-2017-05-02commit a021880f78...Daniel Vetter8 years v4.11commit a351e9b9fc...Linus Torvalds8 years drm-intel-next-fixes-2017-04-27commit 88326ef05b...Jani Nikula8 years sound-4.11commit d4a2fbcee0...Takashi Iwai8 years v4.11-rc8commit 5a7ad1146c...Linus Torvalds8 years drm-misc-next-fixes-2017-04-20commit f9b67f0014...Sean Paul8 years drm-intel-next-2017-04-18commit a0242b0d59...Daniel Vetter8 years v4.11-rc7commit 4f7d029b9b...Linus Torvalds8 years drm-fixes-for-v4.11-rc7commit 2ca62d8a60...Dave Airlie8 years drm-misc-next-fixes-2017-04-12commit 8cb68c83ab...Sean Paul8 years drm-intel-fixes-2017-04-12commit c053b5a506...Jani Nikula8 years drm-misc-fixes-2017-04-11commit 0c45b36f8a...Sean Paul8 years v4.11-rc6commit 39da7c509a...Linus Torvalds8 years drm-misc-next-2017-04-07commit c98cdff94a...Sean Paul8 years drm-fixes-for-v4.11-rc6commit 130e35e4bb...Dave Airlie8 years topic/synopsys-media-formats-2017-04-03commit 3c2507d308...Sean Paul8 years drm-intel-next-2017-04-03commit ba515d3407...Daniel Vetter8 years drm-intel-testing-2017-04-03commit ba515d3407...Daniel Vetter8 years v4.11-rc5commit a71c9a1c77...Linus Torvalds8 years drm-misc-next-2017-03-31commit b121b051d1...Sean Paul8 years sound-4.11-rc5commit 2f726aec19...Takashi Iwai8 years drm-fixes-for-v4.11-rc5commit 3a2d78228a...Dave Airlie8 years drm-misc-fixes-2017-03-31commit 6d6e500391...Daniel Vetter8 years drm-intel-fixes-2017-03-29commit 0abfe7e257...Jani Nikula8 years v4.11-rc4commit c02ed2e75e...Linus Torvalds8 years drm-fixes-for-v4.11-rc4commit d64a04720b...Dave Airlie8 years drm-misc-fixes-2017-03-23commit 12ffed96d4...Daniel Vetter8 years sound-4.11-rc4commit 3f307834e6...Takashi Iwai8 years drm-intel-fixes-2017-03-22commit 590379aef2...Jani Nikula8 years drm-misc-next-2017-03-21commit 62c58af32c...Daniel Vetter8 years drm-misc-next-2017-03-20commit 3a270e4dcc...Daniel Vetter8 years drm-intel-next-2017-03-20commit c5bd2e14e8...Daniel Vetter8 years v4.11-rc3commit 97da3854c5...Linus Torvalds8 years drm-fixes-for-v4.11-rc3commit 27b713c2e0...Dave Airlie8 years drm-intel-fixes-2017-03-14commit 6aef660370...Jani Nikula8 years v4.11-rc2commit 4495c08e84...Linus Torvalds8 years drm-misc-next-2017-03-12commit a45216547e...Daniel Vetter8 years drm-fixes-for-4.11-rc2commit 3f81e13407...Dave Airlie8 years drm-intel-fixes-2017-03-09commit 70647f9163...Jani Nikula8 years drm-misc-next-2017-03-06commit ca39b449f6...Daniel Vetter8 years drm-intel-next-2017-03-06commit 505b681539...Daniel Vetter