04 Sep, 2012

14 commits

  • Modify the SH MTU2 clock event device driver to support runtime PM at
    a basic level (i.e. device clocks can be disabled and enabled, but
    domain power must be on, because the device has to be marked as
    "irq safe").

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • Modify the SH CMT clock source/clock event device driver to support
    runtime PM at a basic level (i.e. device clocks can be disabled and
    enabled, but domain power must be on, because the devices have to
    be marked as "irq safe").

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • Modify the SH TMU clock source/clock event device driver to support
    runtime PM at a basic level (i.e. device clocks can be disabled and
    enabled, but domain power must be on, because the devices have to
    be marked as "irq safe").

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • The genpd_start_dev() routine used by pm_genpd_runtime_resume()
    to put "irq safe" devices into the full power state measures the
    time necessary to "start" the device and updates its PM QoS timing
    data if necessary. This may lead to a deadlock if the given device
    is a clock source and genpd_start_dev() is invoked from within the
    clock source's .enable() routine, which will happen if that routine
    uses pm_runtime_get_sync(), for example, to ensure that the device
    is operational.

    For this reason, introduce a special routine analogous to
    genpd_start_dev(), called genpd_start_dev_no_timing(), that doesn't
    carry out the time measurement, and make pm_genpd_runtime_resume()
    use it instead of genpd_start_dev() to power up "irq safe" devices.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • The syscore device PM flag is used to mark the devices (belonging to
    a PM domain) that should never be turned off, except for the system
    core (syscore) suspend/hibernation and resume stages. That flag is
    stored in the device's struct pm_subsys_data object whose address is
    available from struct device. However, in some situations it may be
    convenient to set that flag before the device is added to a PM
    domain, so it is better to move it directly to the "power" member of
    struct device. Then, it can be checked by the routines in
    drivers/base/power/runtime.c and drivers/base/power/main.c, which is
    more straightforward.

    This also reduces the number of dev_gpd_data() invocations in the
    generic PM domains framework, so the overhead related to the syscore
    flag is slightly smaller.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • The always_on device flag is used to mark the devices (belonging to
    a PM domain) that should never be turned off, except for the system
    core (syscore) suspend/hibernation and resume stages. Change name
    of that flag to "syscore" to better reflect its purpose.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • Runtime PM helper functions, like pm_runtime_get_sync(), cannot be
    called by early platform device drivers, because the devices' power
    management locks are not initialized at that time. This is quite
    inconvenient, so modify early_platform_add_devices() to initialize
    the devices power management locks as appropriate and make sure that
    they won't be initialized more than once if an early platform
    device is going to be used as a regular one later.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Make the device power management initialization more straightforward
    by moving the initialization of common (i.e. used by both runtime PM
    and system suspend) fields to a separate routine.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Introduce suspend/resume routines for SH MTU2 clock event devices
    such that if those devices belong to a PM domain, the generic PM
    domains framework will be notified that the given domain may be
    turned off (during system suspend) or that it has to be turned on
    (during system resume).

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • Introduce suspend/resume routines for SH CMT clock event devices and
    modify the suspend/resume routines for SH CMT clock sources such that
    if those devices belong to a PM domain, the generic PM domains
    framework will be notified that the given domain may be turned off
    (during system suspend) or that it has to be turned on (during system
    resume).

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • Introduce suspend/resume routines for SH TMU clock source and
    clock event device such that if those devices belong to a PM domain,
    the generic PM domains framework will be notified that the given
    domain may be turned off (during system suspend) or that it has to
    be turned on (during system resume).

    This change allows the A4R domain on SH7372 to be turned off during
    system suspend (tested on the Mackerel board) if the TMU clock source
    and/or clock event device is in use.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Magnus Damm

    Rafael J. Wysocki
     
  • Some clock event devices, for example such that belong to PM domains,
    need to be handled in a spcial way during the timekeeping suspend
    and resume (which takes place in the system core, or "syscore",
    stages of system power transitions) in analogy with clock sources.

    Introduce .suspend() and .resume() callbacks for clock event devices
    that will be executed by timekeeping_suspend/_resume(), respectively,
    next the the clock sources' .suspend() and .resume() callbacks.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Introduce function pm_genpd_syscore_switch() and two wrappers around
    it, pm_genpd_syscore_poweroff() and pm_genpd_syscore_poweron(),
    allowing the callers to let the generic PM domains framework know
    that the given device is not necessary any more and its PM domain
    can be turned off (the former) or that the given device will be
    required immediately, so its PM domain has to be turned on (the
    latter) during the system core (syscore) stage of system suspend
    (or hibernation) and resume.

    These functions will be used for handling devices registered as
    clock sources and clock event devices that belong to PM domains.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Introduce function pm_genpd_sync_poweron() for restoring domain power
    during resume from system suspend and hibernation. It can be much
    simpler than pm_genpd_poweron(), because it doesn't have to care
    about locking and it can skip many checks done by the latter.

    Modify pm_genpd_resume_noirq() and pm_genpd_restore_noirq() to use
    the new function.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

02 Sep, 2012

2 commits

  • Linus Torvalds
     
  • Andreas Bombe reported that the added ktime_t overflow checking added to
    timespec_valid in commit 4e8b14526ca7 ("time: Improve sanity checking of
    timekeeping inputs") was causing problems with X.org because it caused
    timeouts larger then KTIME_T to be invalid.

    Previously, these large timeouts would be clamped to KTIME_MAX and would
    never expire, which is valid.

    This patch splits the ktime_t overflow checking into a new
    timespec_valid_strict function, and converts the timekeeping codes
    internal checking to use this more strict function.

    Reported-and-tested-by: Andreas Bombe
    Cc: Zhouping Liu
    Cc: Ingo Molnar
    Cc: Prarit Bhargava
    Cc: Thomas Gleixner
    Cc: stable@vger.kernel.org
    Signed-off-by: John Stultz
    Signed-off-by: Linus Torvalds

    John Stultz
     

01 Sep, 2012

3 commits


31 Aug, 2012

1 commit

  • Pull drm fixes from Dave Airlie:
    "A bunch of scattered fixes ati/intel/nouveau, couple of core ones,
    nothing too shocking or different."

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S
    gma500: Consider CRTC initially active.
    drm/radeon: fix dig encoder selection on DCE61
    drm/radeon: fix double free in radeon_gpu_reset
    drm/radeon: force dma32 to fix regression rs4xx,rs6xx,rs740
    drm/radeon: rework panel mode setup
    drm/radeon/atom: powergating fixes for DCE6
    drm/radeon/atom: rework DIG modesetting on DCE3+
    drm/radeon: don't disable plls that are in use by other crtcs
    drm/radeon: add proper checking of RESOLVE_BOX command for r600-r700
    drm/radeon: initialize tracked CS state
    drm/radeon: fix reading CB_COLORn_MASK from the CS
    drm/nvc0/copy: check PUNITS to determine which copy engines are disabled
    i915: Quirk no_lvds on Gigabyte GA-D525TUD ITX motherboard
    drm/i915: Use the correct size of the GTT for placing the per-process entries
    drm: Check for invalid cursor flags
    drm: Initialize object type when using DRM_MODE() macro
    drm/i915: fix color order for BGR formats on IVB
    drm/i915: fix wrong order of parameters in port checking functions

    Linus Torvalds
     

30 Aug, 2012

17 commits

  • In native 32 bit mode the personality flags were not correctly inherited.
    This is the s390 version of 59e4c3a2 "powerpc/32: Don't clobber personality
    flags on exec".

    Reported-by: Mike Frysinger
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Connecting an ASUS VW222S [1] over VGA a garbled screen is shown with
    vertical stripes in the top half.

    In commit bc42aabc [2]

    commit bc42aabc6a01b92b0f961d65671564e0e1cd7592
    Author: Adam Jackson
    Date: Wed May 23 16:26:54 2012 -0400

    drm/edid/quirks: ViewSonic VA2026w

    Adam Jackson added the quirk `EDID_QUIRK_FORCE_REDUCED_BLANKING` which
    is also needed for this ASUS monitor.

    All log files and output from `xrandr` is included in the referenced
    Bugzilla report #17629.

    Please note that this monitor only has a VGA (D-Sub) connector [1].

    [1] http://www.asus.com/Display/LCD_Monitors/VW222S/
    [2] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=bc42aabc6a01b92b0f961d65671564e0e1cd7592

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=17629
    Signed-off-by: Paul Menzel
    Cc:
    Cc: Adam Jackson
    Cc: Ian Pilcher
    Cc:
    Signed-off-by: Dave Airlie

    Paul Menzel
     
  • Alex writes:

    Highlights:
    - fix a gart regression on older IGP chips
    - more MSAA fixes
    - fix a double free in gpu reset code
    - modesetting fixes
    - trinity dig encoder fix.

    * 'drm-fixes-3.6' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon: fix dig encoder selection on DCE61
    drm/radeon: fix double free in radeon_gpu_reset
    drm/radeon: force dma32 to fix regression rs4xx,rs6xx,rs740
    drm/radeon: rework panel mode setup
    drm/radeon/atom: powergating fixes for DCE6
    drm/radeon/atom: rework DIG modesetting on DCE3+
    drm/radeon: don't disable plls that are in use by other crtcs
    drm/radeon: add proper checking of RESOLVE_BOX command for r600-r700
    drm/radeon: initialize tracked CS state
    drm/radeon: fix reading CB_COLORn_MASK from the CS

    Dave Airlie
     
  • [this one ideally should make 3.6 - it fixes the very annoying mode setting bug]

    This causes the pipe to be forced off prior to initial mode set, which
    roughly mirrors the behavior of the i915 driver. It fixes initial mode
    setting on my Intel DN2800MT (Cedarview) board. Without it, mode
    setting triggers an out-of-range error from the monitor for most modes,
    but only on initial configuration (i.e. they can be configured
    successfully from userspace after that).

    Signed-off-by: Forest Bond
    Signed-off-by: Alan Cox
    Cc: stable
    Signed-off-by: Dave Airlie

    Forest Bond
     
  • Was using the DCE41 code which was wrong. Fixes
    blank displays on a number of Trinity systems.

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • Pull btrfs fixes from Chris Mason:
    "I've split out the big send/receive update from my last pull request
    and now have just the fixes in my for-linus branch. The send/recv
    branch will wander over to linux-next shortly though.

    The largest patches in this pull are Josef's patches to fix DIO
    locking problems and his patch to fix a crash during balance. They
    are both well tested.

    The rest are smaller fixes that we've had queued. The last rc came
    out while I was hacking new and exciting ways to recover from a
    misplaced rm -rf on my dev box, so these missed rc3."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (25 commits)
    Btrfs: fix that repair code is spuriously executed for transid failures
    Btrfs: fix ordered extent leak when failing to start a transaction
    Btrfs: fix a dio write regression
    Btrfs: fix deadlock with freeze and sync V2
    Btrfs: revert checksum error statistic which can cause a BUG()
    Btrfs: remove superblock writing after fatal error
    Btrfs: allow delayed refs to be merged
    Btrfs: fix enospc problems when deleting a subvol
    Btrfs: fix wrong mtime and ctime when creating snapshots
    Btrfs: fix race in run_clustered_refs
    Btrfs: don't run __tree_mod_log_free_eb on leaves
    Btrfs: increase the size of the free space cache
    Btrfs: barrier before waitqueue_active
    Btrfs: fix deadlock in wait_for_more_refs
    btrfs: fix second lock in btrfs_delete_delayed_items()
    Btrfs: don't allocate a seperate csums array for direct reads
    Btrfs: do not strdup non existent strings
    Btrfs: do not use missing devices when showing devname
    Btrfs: fix that error value is changed by mistake
    Btrfs: lock extents as we map them in DIO
    ...

    Linus Torvalds
     
  • Pull watchdog fixes from Wim Van Sebroeck:
    "This will fix a warning for watchdog-test.c and it will remove a
    duplicate include of delay.h"

    * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: da9052: Remove duplicate inclusion of delay.h
    watchdog: fix watchdog-test.c build warning

    Linus Torvalds
     
  • cache_grow() can reenable irqs so the cpu (and node) can change, so ensure
    that we take list_lock on the correct nodelist.

    This fixes an issue with commit 072bb0aa5e06 ("mm: sl[au]b: add
    knowledge of PFMEMALLOC reserve pages") where list_lock for the wrong
    node was taken after growing the cache.

    Reported-and-tested-by: Haggai Eran
    Signed-off-by: David Rientjes
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • radeon_ring_restore is freeing the memory for the saved
    ring data. We need to remember that, otherwise we try to
    restore the ring data again on the next try. Additional
    to that it shouldn't try the reset infinitely if we have
    saved ring data.

    Signed-off-by: Christian König
    Reviewed-by: Alex Deucher

    Christian König
     
  • It seems some of those IGP dislike non dma32 page despite what
    documentation says. Fix regression since we allowed non dma32
    pages. It seems it only affect some revision of those IGP chips
    as we don't know which one just force dma32 for all of them.

    https://bugzilla.redhat.com/show_bug.cgi?id=785375

    Signed-off-by: Jerome Glisse
    Cc:
    Signed-off-by: Alex Deucher

    Jerome Glisse
     
  • Adjust the panel mode setup to match the behavior
    of the vbios. Rather than checking for specific
    bridge chip ids, just check the eDP configuration register.
    This saves extra aux transactions and works across
    DP bridge chips without requiring additional per chip
    id checking.

    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • Power gating is per crtc pair, but the powergating registers
    should be called individually. The hw handles power up/down
    properly. The pair is powered up if either crtc in the pair
    is powered up and the pair is not powered down until both
    crtcs in the pair are powered down. This simplifies
    programming and should save additional power as the previous
    code never actually power gated the crtc pair.

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • The ordering is important and the current drm code
    wasn't cutting it for modern DIG encoders. We need
    to have information about crtc before setting up
    the encoders so I've shifted the ordering a bit.
    Probably we'll need a full rework akin to danvet's
    recent intel patchs. This patch fixes numerous
    issues with DP bridge chips and makes link training
    much more reliable.

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • Some plls are shared for DP.

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org
    Reviewed-by: Michel Dänzer

    Alex Deucher
     
  • Checking of the second colorbuffer was skipped on r700, because
    CB_TARGET_MASK was 0xf. With r600, CB_TARGET_MASK is changed to 0xff,
    so we must set the number of samples of the second colorbuffer to 1 in order
    to pass the CS checker.
    The DRM version is bumped, because RESOLVE_BOX is always rejected without this
    fix on r600.

    Signed-off-by: Marek Olšák
    Reviewed-by: Jerome Glisse
    Signed-off-by: Alex Deucher

    Marek Olšák
     
  • This should help catch uninitialized registers and reject commands
    because of that.

    Signed-off-by: Marek Olšák
    Signed-off-by: Alex Deucher

    Marek Olšák
     
  • Signed-off-by: Marek Olšák
    Signed-off-by: Alex Deucher

    Marek Olšák
     

29 Aug, 2012

3 commits