1. 22 10月, 2013 8 次提交
  2. 21 10月, 2013 2 次提交
  3. 20 10月, 2013 5 次提交
  4. 19 10月, 2013 12 次提交
  5. 18 10月, 2013 13 次提交
    • B
      drm/i915: Disable GGTT PTEs on GEN6+ suspend · 828c7908
      Ben Widawsky 提交于
      Once the machine gets to a certain point in the suspend process, we
      expect the GPU to be idle. If it is not, we might corrupt memory.
      Empirically (with an early version of this patch) we have seen this is
      not the case. We cannot currently explain why the latent GPU writes
      occur.
      
      In the technical sense, this patch is a workaround in that we have an
      issue we can't explain, and the patch indirectly solves the issue.
      However, it's really better than a workaround because we understand why
      it works, and it really should be a safe thing to do in all cases.
      
      The noticeable effect other than the debug messages would be an increase
      in the suspend time. I have not measure how expensive it actually is.
      
      I think it would be good to spend further time to root cause why we're
      seeing these latent writes, but it shouldn't preclude preventing the
      fallout.
      
      NOTE: It should be safe (and makes some sense IMO) to also keep the
      VALID bit unset on resume when we clear_range(). I've opted not to do
      this as properly clearing those bits at some later point would be extra
      work.
      
      v2: Fix bugzilla link
      
      Bugzilla: http://bugs.freedesktop.org/show_bug.cgi?id=65496
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59321Tested-by: NTakashi Iwai <tiwai@suse.de>
      Tested-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Tested-By: NTodd Previte <tprevite@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      828c7908
    • B
      drm/i915: Make PTE valid encoding optional · b35b380e
      Ben Widawsky 提交于
      We need this to work around a corruption when the boot kernel image
      loads the hibernated kernel image from swap on Haswell systems -
      somehow not everything is properly shut off.
      
      This is just the prep work, the next patch will implement the actual
      workaround.
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      [danvet: Add a commit message suitable for -fixes and add cc: stable]
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b35b380e
    • M
      40f89896
    • M
      2a5e9dab
    • M
      d55f0691
    • M
      3b8c006b
    • M
      d6ed3153
    • M
      762f9b18
    • N
      HID: Fix unit exponent parsing again · ad0e669b
      Nikolai Kondrashov 提交于
      Revert some changes done in 77463838.
      
      Revert all changes done in hidinput_calc_abs_res as it mistakingly used
      "Unit" item exponent nibbles to affect resolution value. This wasn't
      breaking resolution calculation of relevant axes of any existing
      devices, though, as they have only one dimension to their units and thus
      1 in the corresponding nible.
      
      Revert to reading "Unit Exponent" item value as a signed integer in
      hid_parser_global to fix reading specification-complying values. This
      fixes resolution calculation of devices complying to the HID standard,
      including Huion, KYE, Waltop and UC-Logic graphics tablets which have
      their report descriptors fixed by the drivers.
      
      Explanations follow.
      
      There are two "unit exponents" in HID specification and it is important
      not to mix them. One is the global "Unit Exponent" item and another is
      nibble values in the global "Unit" item. See 6.2.2.7 Global Items.
      
      The "Unit Exponent" value is just a signed integer and is used to scale
      the integer resolution unit values, so fractions can be expressed.
      
      The nibbles of "Unit" value are used to select the unit system (nibble
      0), and presence of a particular basic unit type in the unit formula and
      its *exponent* (or power, nibbles 1-6). And yes, the latter is in two
      complement and zero means absence of the unit type.
      
      Taking the representation example of (integer) joules from the
      specification:
      
      [mass(grams)][length(centimeters)^2][time(seconds)^-2] * 10^-7
      
      the "Unit Exponent" would be -7 (or 0xF9, if stored as a byte) and the
      "Unit" value would be 0xE121, signifying:
      
      Nibble  Part        Value   Meaning
      -----   ----        -----   -------
      0       System      1       SI Linear
      1       Length      2       Centimeters^2
      2       Mass        1       Grams
      3       Time        -2      Seconds^-2
      
      To give the resolution in e.g. hundredth of joules the "Unit Exponent"
      item value should have been -9.
      
      See also the examples of "Unit" values for some common units in the same
      chapter.
      
      However, there is a common misunderstanding about the "Unit Exponent"
      value encoding, where it is assumed to be stored the same as nibbles in
      "Unit" item. This is most likely due to the specification being a bit
      vague and overloading the term "unit exponent". This also was and still
      is proliferated by the official "HID Descriptor Tool", which makes this
      mistake and stores "Unit Exponent" as such. This format is also
      mentioned in books such as "USB Complete" and in Microsoft's hardware
      design guides.
      
      As a result many devices currently on the market use this encoding and
      so the driver should support them.
      Signed-off-by: NNikolai Kondrashov <spbnick@gmail.com>
      Acked-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      ad0e669b
    • R
      Merge branch 'acpi-fixes' · 981984cb
      Rafael J. Wysocki 提交于
      * acpi-fixes:
        ACPI / PM: Drop two functions that are not used any more
        ATA / ACPI: remove power dependent device handling
        ACPI / power: Drop automaitc resume of power resource dependent devices
        ACPI: remove /proc/acpi/event from ACPI_BUTTON help
        ACPI / power: Release resource_lock after acpi_power_get_state() return error
      981984cb
    • R
      Merge branch 'pm-fixes' · bdbff716
      Rafael J. Wysocki 提交于
      * pm-fixes:
        cpufreq: s3c64xx: Rename index to driver_data
        intel_pstate: Fix type mismatch warning
        cpufreq / intel_pstate: Fix max_perf_pct on resume
      bdbff716
    • C
      drm: Pad drm_mode_get_connector to 64-bit boundary · bc5bd37c
      Chris Wilson 提交于
      Pavel Roskin reported that DRM_IOCTL_MODE_GETCONNECTOR was overwritting
      the 4 bytes beyond the end of its structure with a 32-bit userspace
      running on a 64-bit kernel. This is due to the padding gcc inserts as
      the drm_mode_get_connector struct includes a u64 and its size is not a
      natural multiple of u64s.
      
      64-bit kernel:
      
      sizeof(drm_mode_get_connector)=80, alignof=8
      sizeof(drm_mode_get_encoder)=20, alignof=4
      sizeof(drm_mode_modeinfo)=68, alignof=4
      
      32-bit userspace:
      
      sizeof(drm_mode_get_connector)=76, alignof=4
      sizeof(drm_mode_get_encoder)=20, alignof=4
      sizeof(drm_mode_modeinfo)=68, alignof=4
      
      Fortuituously we can insert explicit padding to the tail of our
      structures without breaking ABI.
      Reported-by: NPavel Roskin <proski@gnu.org>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      bc5bd37c
    • C
      drm: Prevent overwriting from userspace underallocating core ioctl structs · b062672e
      Chris Wilson 提交于
      Apply the protections from
      
      commit 1b2f1489
      Author: Dave Airlie <airlied@redhat.com>
      Date:   Sat Aug 14 20:20:34 2010 +1000
      
          drm: block userspace under allocating buffer and having drivers overwrite it (v2)
      
      to the core ioctl structs as well, for we found one instance where there
      is a 32-/64-bit size mismatch and were guilty of writing beyond the end
      of the user's buffer.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Dave Airlie <airlied@redhat.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      b062672e