10 Jan, 2013

17 commits

  • Add two blkcg_policy methods, ->online_pd_fn() and ->offline_pd_fn(),
    which are invoked as the policy_data gets activated and deactivated
    while holding both blkcg and q locks.

    Also, add blkcg_gq->online bool, which is set and cleared as the
    blkcg_gq gets activated and deactivated. This flag also is toggled
    while holding both blkcg and q locks.

    These will be used to implement hierarchical stats.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • Add pd->plid so that the policy a pd belongs to can be identified
    easily. This will be used to implement hierarchical blkg_[rw]stats.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • With the previous two patches, all cfqg scheduling decisions are based
    on vfraction and ready for hierarchy support. The only thing which
    keeps the behavior flat is cfqg_flat_parent() which makes vfraction
    calculation consider all non-root cfqgs children of the root cfqg.

    Replace it with cfqg_parent() which returns the real parent. This
    enables full blkcg hierarchy support for cfq-iosched. For example,
    consider the following hierarchy.

    root
    / \
    A:500 B:250
    / \
    AA:500 AB:1000

    For simplicity, let's say all the leaf nodes have active tasks and are
    on service tree. For each leaf node, vfraction would be

    AA: (500 / 1500) * (500 / 750) =~ 0.2222
    AB: (1000 / 1500) * (500 / 750) =~ 0.4444
    B: (250 / 750) =~ 0.3333

    and vdisktime will be distributed accordingly. For more detail,
    please refer to Documentation/block/cfq-iosched.txt.

    v2: cfq-iosched.txt updated to describe group scheduling as suggested
    by Vivek.

    v3: blkio-controller.txt updated.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • cfq_group_slice() calculates slice by taking a fraction of
    cfq_target_latency according to the ratio of cfqg->weight against
    service_tree->total_weight. This currently works only because all
    cfqgs are treated to be at the same level.

    To prepare for proper hierarchy support, convert cfq_group_slice() to
    base the calculation on cfqg->vfraction. As cfqg->vfraction is always
    a fraction of 1 and represents the fraction allocated to the cfqg with
    hierarchy considered, the slice can be simply calculated by
    multiplying cfqg->vfraction to cfq_target_latency (with fixed point
    shift factored in).

    As vfraction calculation currently treats all non-root cfqgs as
    children of the root cfqg, this patch doesn't introduce noticeable
    behavior difference.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • Currently, cfqg charges are scaled directly according to cfqg->weight.
    Regardless of the number of active cfqgs or the amount of active
    weights, a given weight value always scales charge the same way. This
    works fine as long as all cfqgs are treated equally regardless of
    their positions in the hierarchy, which is what cfq currently
    implements. It can't work in hierarchical settings because the
    interpretation of a given weight value depends on where the weight is
    located in the hierarchy.

    This patch reimplements cfqg charge scaling so that it can be used to
    support hierarchy properly. The scheme is fairly simple and
    light-weight.

    * When a cfqg is added to the service tree, v(disktime)weight is
    calculated. It walks up the tree to root calculating the fraction
    it has in the hierarchy. At each level, the fraction can be
    calculated as

    cfqg->weight / parent->level_weight

    By compounding these, the global fraction of vdisktime the cfqg has
    claim to - vfraction - can be determined.

    * When the cfqg needs to be charged, the charge is scaled inversely
    proportionally to the vfraction.

    The new scaling scheme uses the same CFQ_SERVICE_SHIFT for fixed point
    representation as before; however, the smallest scaling factor is now
    1 (ie. 1 << CFQ_SERVICE_SHIFT). This is different from before where 1
    was for CFQ_WEIGHT_DEFAULT and higher weight would result in smaller
    scaling factor.

    While this shifts the global scale of vdisktime a bit, it doesn't
    change the relative relationships among cfqgs and the scheduling
    result isn't different.

    cfq_group_notify_queue_add uses fixed CFQ_IDLE_DELAY when appending
    new cfqg to the service tree. The specific value of CFQ_IDLE_DELAY
    didn't have any relevance to vdisktime before and is unlikely to cause
    any visible behavior difference now especially as the scale shift
    isn't that large.

    As the new scheme now makes proper distinction between cfqg->weight
    and ->leaf_weight, reverse the weight aliasing for root cfqgs. For
    root, both weights are now mapped to ->leaf_weight instead of the
    other way around.

    Because we're still using cfqg_flat_parent(), this patch shouldn't
    change the scheduling behavior in any noticeable way.

    v2: Beefed up comments on vfraction as requested by Vivek.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • To prepare for blkcg hierarchy support, add cfqg->nr_active and
    ->children_weight. cfqg->nr_active counts the number of active cfqgs
    at the cfqg's level and ->children_weight is sum of weights of those
    cfqgs. The level covers itself (cfqg->leaf_weight) and immediate
    children.

    The two values are updated when a cfqg enters and leaves the group
    service tree. Unless the hierarchy is very deep, the added overhead
    should be negligible.

    Currently, the parent is determined using cfqg_flat_parent() which
    makes the root cfqg the parent of all other cfqgs. This is to make
    the transition to hierarchy-aware scheduling gradual. Scheduling
    logic will be converted to use cfqg->children_weight without actually
    changing the behavior. When everything is ready,
    blkcg_weight_parent() will be replaced with proper parent function.

    This patch doesn't introduce any behavior chagne.

    v2: s/cfqg->level_weight/cfqg->children_weight/ as per Vivek.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • cfq blkcg is about to grow proper hierarchy handling, where a child
    blkg's weight would nest inside the parent's. This makes tasks in a
    blkg to compete against both tasks in the sibling blkgs and the tasks
    of child blkgs.

    We're gonna use the existing weight as the group weight which decides
    the blkg's weight against its siblings. This patch introduces a new
    weight - leaf_weight - which decides the weight of a blkg against the
    child blkgs.

    It's named leaf_weight because another way to look at it is that each
    internal blkg nodes have a hidden child leaf node which contains all
    its tasks and leaf_weight is the weight of the leaf node and handled
    the same as the weight of the child blkgs.

    This patch only adds leaf_weight fields and exposes it to userland.
    The new weight isn't actually used anywhere yet. Note that
    cfq-iosched currently offcially supports only single level hierarchy
    and root blkgs compete with the first level blkgs - ie. root weight is
    basically being used as leaf_weight. For root blkgs, the two weights
    are kept in sync for backward compatibility.

    v2: cfqd->root_group->leaf_weight initialization was missing from
    cfq_init_queue() causing divide by zero when
    !CONFIG_CFQ_GROUP_SCHED. Fix it. Reported by Fengguang.

    Signed-off-by: Tejun Heo
    Cc: Fengguang Wu

    Tejun Heo
     
  • Currently a child blkg (blkcg_gq) can be created even if its parent
    doesn't exist. ie. Given a blkg, it's not guaranteed that its
    ancestors will exist. This makes it difficult to implement proper
    hierarchy support for blkcg policies.

    Always create blkgs recursively and make a child blkg hold a reference
    to its parent. blkg->parent is added so that finding the parent is
    easy. blkcg_parent() is also added in the process.

    This change can be visible to userland. e.g. while issuing IO in a
    nested cgroup didn't affect the ancestors at all, now it will
    initialize all ancestor blkgs and zero stats for the request_queue
    will always appear on them. While this is userland visible, this
    shouldn't cause any functional difference.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • * Rename out_* labels to err_*.

    * Do ERR_PTR() conversion once in the error return path.

    This patch is cosmetic and to prepare for the hierarchy support.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • Reorganize such that

    * __blkg_lookup() takes bool param @update_hint to determine whether
    to update hint.

    * __blkg_lookup_create() no longer performs lookup before trying to
    create. Renamed to blkg_create().

    * blkg_lookup_create() now performs lookup and then invokes
    blkg_create() if lookup fails.

    * root_blkg creation in blkcg_activate_policy() updated accordingly.
    Note that blkcg_activate_policy() no longer updates lookup hint if
    root_blkg already exists.

    Except for the last lookup hint bit which is immaterial, this is pure
    reorganization and doesn't introduce any visible behavior change.
    This is to prepare for proper hierarchy support.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • blkg_alloc() was mistakenly checking blkcg_policy_enabled() twice.
    The latter test should have been on whether pol->pd_init_fn() exists.
    This doesn't cause actual problems because both blkcg policies
    implement pol->pd_init_fn(). Fix it.

    Signed-off-by: Tejun Heo
    Acked-by: Vivek Goyal

    Tejun Heo
     
  • Currently we attach a character "S" or "A" to the cfqq, to represent
    whether queues is sync or async. Add one more character "N" to represent
    whether it is sync-noidle queue or sync queue. So now three different
    type of queues will look as follows.

    cfq1234S --> sync queus
    cfq1234SN --> sync noidle queue
    cfq1234A --> Async queue

    Previously S/A classification was being printed only if group scheduling
    was enabled. This patch also makes sure that this classification is
    displayed even if group idling is disabled.

    Signed-off-by: Vivek Goyal
    Acked-by: Jeff Moyer
    Signed-off-by: Tejun Heo

    Vivek Goyal
     
  • Use of local varibale "n" seems to be unnecessary. Remove it. This brings
    it inline with function __cfq_group_st_add(), which is also doing the
    similar operation of adding a group to a rb tree.

    No functionality change here.

    Signed-off-by: Vivek Goyal
    Acked-by: Jeff Moyer
    Signed-off-by: Tejun Heo

    Vivek Goyal
     
  • choose_service_tree() selects/sets both wl_class and wl_type. Rename it to
    choose_wl_class_and_type() to make it very clear.

    cfq_choose_wl() only selects and sets wl_type. It is easy to confuse
    it with choose_st(). So rename it to cfq_choose_wl_type() to make
    it clear what does it do.

    Just renaming. No functionality change.

    Signed-off-by: Vivek Goyal
    Acked-by: Jeff Moyer
    Signed-off-by: Tejun Heo

    Vivek Goyal
     
  • At quite a few places we use the keyword "service_tree". At some places,
    especially local variables, I have abbreviated it to "st".

    Also at couple of places moved binary operator "+" from beginning of line
    to end of previous line, as per Tejun's feedback.

    v2:
    Reverted most of the service tree name change based on Jeff Moyer's feedback.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Tejun Heo

    Vivek Goyal
     
  • Some more renaming. Again making the code uniform w.r.t use of
    wl_class/class to represent IO class (RT, BE, IDLE) and using
    wl_type/type to represent subclass (SYNC, SYNC-IDLE, ASYNC).

    At places this patch shortens the string "workload" to "wl".
    Renamed "saved_workload" to "saved_wl_type". Renamed
    "saved_serving_class" to "saved_wl_class".

    For uniformity with "saved_wl_*" variables, renamed "serving_class"
    to "serving_wl_class" and renamed "serving_type" to "serving_wl_type".

    Again, just trying to improve upon code uniformity and improve
    readability. No functional change.

    v2:
    - Restored the usage of keyword "service" based on Jeff Moyer's feedback.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Tejun Heo

    Vivek Goyal
     
  • Currently CFQ has three IO classes, RT, BE and IDLE. At many a places we
    are calling workloads belonging to these classes as "prio". This gets
    very confusing as one starts to associate it with ioprio.

    So this patch just does bunch of renaming so that reading code becomes
    easier. All reference to RT, BE and IDLE workload are done using keyword
    "class" and all references to subclass, SYNC, SYNC-IDLE, ASYNC are made
    using keyword "type".

    This makes me feel much better while I am reading the code. There is no
    functionality change due to this patch.

    Signed-off-by: Vivek Goyal
    Acked-by: Jeff Moyer
    Acked-by: Tejun Heo
    Signed-off-by: Tejun Heo

    Vivek Goyal
     

03 Jan, 2013

14 commits

  • Linus Torvalds
     
  • Pull LED fix from Bryan Wu.

    * 'fixes-for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
    leds: leds-gpio: set devm_gpio_request_one() flags param correctly

    Linus Torvalds
     
  • commit a99d76f leds: leds-gpio: use gpio_request_one

    changed the leds-gpio driver to use gpio_request_one() instead
    of gpio_request() + gpio_direction_output()

    Unfortunately, it also made a semantic change that breaks the
    leds-gpio driver.

    The gpio_request_one() flags parameter was set to:

    GPIOF_DIR_OUT | (led_dat->active_low ^ state)

    Since GPIOF_DIR_OUT is 0, the final flags value will just be the
    XOR'ed value of led_dat->active_low and state.

    This value were used to distinguish between HIGH/LOW output initial
    level and call gpio_direction_output() accordingly.

    With this new semantic gpio_request_one() will take the flags value
    of 1 as a configuration of input direction (GPIOF_DIR_IN) and will
    call gpio_direction_input() instead of gpio_direction_output().

    int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
    {
    ..
    if (flags & GPIOF_DIR_IN)
    err = gpio_direction_input(gpio);
    else
    err = gpio_direction_output(gpio,
    (flags & GPIOF_INIT_HIGH) ? 1 : 0);
    ..
    }

    The right semantic is to evaluate led_dat->active_low ^ state and
    set the output initial level explicitly.

    Signed-off-by: Javier Martinez Canillas
    Reported-by: Arnaud Patard
    Tested-by: Ezequiel Garcia
    Signed-off-by: Bryan Wu

    Javier Martinez Canillas
     
  • Pull watchdog fixes from Wim Van Sebroeck:
    "This fixes some small errors in the new da9055 driver, eliminates a
    compiler warning and adds DT support for the twl4030_wdt driver (so
    that we can have multiple watchdogs with DT on the omap platforms)."

    * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: twl4030_wdt: add DT support
    watchdog: omap_wdt: eliminate unused variable and a compiler warning
    watchdog: da9055: Don't update wdt_dev->timeout in da9055_wdt_set_timeout error path
    watchdog: da9055: Fix invalid free of devm_ allocated data

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:
    "Some fixes for v3.8. They include a fix for the new SR-IOV sysfs
    management support, an expanded quirk for Ricoh SD card readers, a
    Stratus DMI quirk fix, and a PME polling fix."

    * tag '3.8-pci-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Reduce Ricoh 0xe822 SD card reader base clock frequency to 50MHz
    PCI/PM: Do not suspend port if any subordinate device needs PME polling
    PCI: Add PCIe Link Capability link speed and width names
    PCI: Work around Stratus ftServer broken PCIe hierarchy (fix DMI check)
    PCI: Remove spurious error for sriov_numvfs store and simplify flow

    Linus Torvalds
     
  • Commit 56c176c9cac9 ("UAPI: strip the _UAPI prefix from header guards
    during header installation") strips the _UAPI prefix from header guards,
    but only if there's a single space between the cpp directive and the
    label.

    Make it more flexible and able to handle tabs and multiple white space
    characters.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Empty files can get deleted by the patch program, so remove empty Kbuild
    files and their links from the parent Kbuilds.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Pull ecryptfs fixes from Tyler Hicks:
    "Two self-explanatory fixes and a third patch which improves
    performance: when overwriting a full page in the eCryptfs page cache,
    skip reading in and decrypting the corresponding lower page."

    * tag 'ecryptfs-3.8-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
    fs/ecryptfs/crypto.c: make ecryptfs_encode_for_filename() static
    eCryptfs: fix to use list_for_each_entry_safe() when delete items
    eCryptfs: Avoid unnecessary disk read and data decryption during writing

    Linus Torvalds
     
  • Pull Ceph fixes from Sage Weil:
    "Two of Alex's patches deal with a race when reseting server
    connections for open RBD images, one demotes some non-fatal BUGs to
    WARNs, and my patch fixes a protocol feature bit failure path."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    libceph: fix protocol feature mismatch failure path
    libceph: WARN, don't BUG on unexpected connection states
    libceph: always reset osds when kicking
    libceph: move linger requests sooner in kick_requests()

    Linus Torvalds
     
  • Sasha was fuzzing with trinity and reported the following problem:

    BUG: sleeping function called from invalid context at kernel/mutex.c:269
    in_atomic(): 1, irqs_disabled(): 0, pid: 6361, name: trinity-main
    2 locks held by trinity-main/6361:
    #0: (&mm->mmap_sem){++++++}, at: [] __do_page_fault+0x1e4/0x4f0
    #1: (&(&mm->page_table_lock)->rlock){+.+...}, at: [] handle_pte_fault+0x3f7/0x6a0
    Pid: 6361, comm: trinity-main Tainted: G W
    3.7.0-rc2-next-20121024-sasha-00001-gd95ef01-dirty #74
    Call Trace:
    __might_sleep+0x1c3/0x1e0
    mutex_lock_nested+0x29/0x50
    mpol_shared_policy_lookup+0x2e/0x90
    shmem_get_policy+0x2e/0x30
    get_vma_policy+0x5a/0xa0
    mpol_misplaced+0x41/0x1d0
    handle_pte_fault+0x465/0x6a0

    This was triggered by a different version of automatic NUMA balancing
    but in theory the current version is vunerable to the same problem.

    do_numa_page
    -> numa_migrate_prep
    -> mpol_misplaced
    -> get_vma_policy
    -> shmem_get_policy

    It's very unlikely this will happen as shared pages are not marked
    pte_numa -- see the page_mapcount() check in change_pte_range() -- but
    it is possible.

    To address this, this patch restores sp->lock as originally implemented
    by Kosaki Motohiro. In the path where get_vma_policy() is called, it
    should not be calling sp_alloc() so it is not necessary to treat the PTL
    specially.

    Signed-off-by: KOSAKI Motohiro
    Tested-by: KOSAKI Motohiro
    Signed-off-by: Mel Gorman
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Pull ext4 bug fixes from Ted Ts'o:
    "Various bug fixes for ext4. Perhaps the most serious bug fixed is one
    which could cause file system corruptions when performing file punch
    operations."

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: avoid hang when mounting non-journal filesystems with orphan list
    ext4: lock i_mutex when truncating orphan inodes
    ext4: do not try to write superblock on ro remount w/o journal
    ext4: include journal blocks in df overhead calcs
    ext4: remove unaligned AIO warning printk
    ext4: fix an incorrect comment about i_mutex
    ext4: fix deadlock in journal_unmap_buffer()
    ext4: split off ext4_journalled_invalidatepage()
    jbd2: fix assertion failure in jbd2_journal_flush()
    ext4: check dioread_nolock on remount
    ext4: fix extent tree corruption caused by hole punch

    Linus Torvalds
     
  • Remove the unused argument (formerly no_context) from mpol_parse_str()
    and from mpol_to_str().

    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Recently I suggested using "mount -o remount,mpol=local /tmp" in NUMA
    mempolicy testing. Very nasty. Reading /proc/mounts, /proc/pid/mounts
    or /proc/pid/mountinfo may then corrupt one bit of kernel memory, often
    in a page table (causing "Bad swap" or "Bad page map" warning or "Bad
    pagetable" oops), sometimes in a vm_area_struct or rbnode or somewhere
    worse. "mpol=prefer" and "mpol=prefer:Node" are equally toxic.

    Recent NUMA enhancements are not to blame: this dates back to 2.6.35,
    when commit e17f74af351c "mempolicy: don't call mpol_set_nodemask() when
    no_context" skipped mpol_parse_str()'s call to mpol_set_nodemask(),
    which used to initialize v.preferred_node, or set MPOL_F_LOCAL in flags.
    With slab poisoning, you can then rely on mpol_to_str() to set the bit
    for node 0x6b6b, probably in the next page above the caller's stack.

    mpol_parse_str() is only called from shmem_parse_options(): no_context
    is always true, so call it unused for now, and remove !no_context code.
    Set v.nodes or v.preferred_node or MPOL_F_LOCAL as mpol_to_str() might
    expect. Then mpol_to_str() can ignore its no_context argument also,
    the mpol being appropriately initialized whether contextualized or not.
    Rename its no_context unused too, and let subsequent patch remove them
    (that's not needed for stable backporting, which would involve rejects).

    I don't understand why MPOL_LOCAL is described as a pseudo-policy:
    it's a reasonable policy which suffers from a confusing implementation
    in terms of MPOL_PREFERRED with MPOL_F_LOCAL. I believe this would be
    much more robust if MPOL_LOCAL were recognized in switch statements
    throughout, MPOL_F_LOCAL deleted, and MPOL_PREFERRED use the (possibly
    empty) nodes mask like everyone else, instead of its preferred_node
    variant (I presume an optimization from the days before MPOL_LOCAL).
    But that would take me too long to get right and fully tested.

    Signed-off-by: Hugh Dickins
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • EPOLL_CTL_MOD sets the interest mask before calling f_op->poll() to
    ensure events are not missed. Since the modifications to the interest
    mask are not protected by the same lock as ep_poll_callback, we need to
    ensure the change is visible to other CPUs calling ep_poll_callback.

    We also need to ensure f_op->poll() has an up-to-date view of past
    events which occured before we modified the interest mask. So this
    barrier also pairs with the barrier in wq_has_sleeper().

    This should guarantee either ep_poll_callback or f_op->poll() (or both)
    will notice the readiness of a recently-ready/modified item.

    This issue was encountered by Andreas Voellmy and Junchang(Jason) Wang in:
    http://thread.gmane.org/gmane.linux.kernel/1408782/

    Signed-off-by: Eric Wong
    Cc: Hans Verkuil
    Cc: Jiri Olsa
    Cc: Jonathan Corbet
    Cc: Al Viro
    Cc: Davide Libenzi
    Cc: Hans de Goede
    Cc: Mauro Carvalho Chehab
    Cc: David Miller
    Cc: Eric Dumazet
    Cc: Andrew Morton
    Cc: Andreas Voellmy
    Tested-by: "Junchang(Jason) Wang"
    Cc: netdev@vger.kernel.org
    Cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Eric Wong
     

02 Jan, 2013

4 commits


31 Dec, 2012

3 commits

  • Pull DRM update from Dave Airlie:
    "This is a bit larger due to me not bothering to do anything since
    before Xmas, and other people working too hard after I had clearly
    given up.

    It's got the 3 main x86 driver fixes pulls, and a bunch of tegra
    fixes, doesn't fix the Ironlake bug yet, but that does seem to be
    getting closer.

    - radeon: gpu reset fixes and userspace packet support
    - i915: watermark fixes, workarounds, i830/845 fix,
    - nouveau: nvd9/kepler microcode fixes, accel is now enabled and
    working, gk106 support
    - tegra: misc fixes."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (34 commits)
    Revert "drm: tegra: protect DC register access with mutex"
    drm: tegra: program only one window during modeset
    drm: tegra: clean out old gem prototypes
    drm: tegra: remove redundant tegra2_tmds_config entry
    drm: tegra: protect DC register access with mutex
    drm: tegra: don't leave clients host1x member uninitialized
    drm: tegra: fix front_porch back_porch mixup
    drm/nve0/graph: fix fuc, and enable acceleration on all known chipsets
    drm/nvc0/graph: fix fuc, and enable acceleration on GF119
    drm/nouveau/bios: cache ramcfg strap on later chipsets
    drm/nouveau/mxm: silence output if no bios data
    drm/nouveau/bios: parse/display extra version component
    drm/nouveau/bios: implement opcode 0xa9
    drm/nouveau/bios: update gpio parsing apis to match current design
    drm/nouveau: initial support for GK106
    drm/radeon: add WAIT_UNTIL to evergreen VM safe reg list
    drm/i915: disable shrinker lock stealing for create_mmap_offset
    drm/i915: optionally disable shrinker lock stealing
    drm/i915: fix flags in dma buf exporting
    drm/radeon: add support for MEM_WRITE packet
    ...

    Linus Torvalds
     
  • Pull late ARM cleanups for omap from Olof Johansson:
    "From Tony Lindgren:

    Here are few more patches to finish the omap changes for multiplatform
    conversion that are not strictly fixes, but were too complex to do
    with the dependencies during the merge window. Those are to move of
    serial-omap.h to platform_data, and the removal of remaining
    cpu_is_omap macro usage outside mach-omap2.

    Then there are several trivial fixes for typos and few minimal
    omap2plus_defconfig updates."

    * tag 'omap-late-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    arch/arm/mach-omap2/dpll3xxx.c: drop if around WARN_ON
    OMAP2: Fix a typo - replace regist with register.
    ARM/omap: use module_platform_driver macro
    ARM: OMAP2+: PMU: Remove unused header
    ARM: OMAP4: remove duplicated include from omap_hwmod_44xx_data.c
    ARM: OMAP2+: omap2plus_defconfig: enable twl4030 SoC audio
    ARM: OMAP2+: omap2plus_defconfig: Add tps65217 support
    ARM: OMAP2+: enable devtmpfs and devtmpfs automount
    ARM: OMAP2+: omap_twl: Change TWL4030_MODULE_PM_RECEIVER to TWL_MODULE_PM_RECEIVER
    ARM: OMAP2+: Drop plat/cpu.h for omap2plus
    ARM: OMAP: Split fb.c to remove last remaining cpu_is_omap usage
    MAINTAINERS: Add an entry for omap related .dts files

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "It's been quiet over the holidays, but we have had a couple of trivial
    fixes coming in for the newly introduced sunxi platform; one to add it
    to the multiplatform defconfig for build coverage, and one fixup for
    device tree strings."

    * tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    sunxi: Change the machine compatible string.
    ARM: multi_v7_defconfig: Add ARCH_SUNXI

    Linus Torvalds
     

30 Dec, 2012

2 commits