1. 24 3月, 2013 3 次提交
    • D
      Revert "drm/i915: set TRANSCODER_EDP even earlier" · bba2181c
      Daniel Vetter 提交于
      This reverts commit cc464b2a.
      
      The reason is that Takashi Iwai reported a regression bisected to this
      commit:
      
      http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg18788.html
      
      His machine has eDP on port D (usual desktop all-in-on setup), which
      intel_dp.c identifies as an eDP panel, but the hsw ddi code
      mishandles.
      
      Closer inspection of the code reveals that haswell_crtc_mode_set also
      checks intel_encoder_is_pch_edp when setting is_cpu_edp. On haswell
      that doesn't make much sense (since there's no edp on the pch), but
      what this function _really_ checks is whether that edp connector is on
      port A or port D. It's just that on ilk-ivb port D was on the pch ...
      
      So that explains why this seemingly innocent change killed eDP on port
      D. Furthermore it looks like everything else accidentally works, since
      we've never enabled eDP on port D support for hsw intentionally (e.g.
      we still register the HDMI output for port D in that case).
      
      But in retrospective I also don't like that this leaks highly platform
      specific details into common code, and the reason is that the drm
      vblank layer sucks. So instead I think we should:
      - move the cpu_transcoder into the dynamic pipe_config tracking (once
        that's merged).
      - fix up the drm vblank layer to finally deal with kms crtc objects
        instead of int pipes.
      
      v2: Pimp commit message with the better diagnosis as discussed with
      Paulo on irc.
      
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Takashi Iwai <tiwai@suse.de>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bba2181c
    • T
      KMS: fix EDID detailed timing frame rate · c19b3b0f
      Torsten Duwe 提交于
      When KMS has parsed an EDID "detailed timing", it leaves the frame rate
      zeroed.  Consecutive (debug-) output of that mode thus yields 0 for
      vsync.  This simple fix also speeds up future invocations of
      drm_mode_vrefresh().
      
      While it is debatable whether this qualifies as a -stable fix I'd apply
      it for consistency's sake; drm_helper_probe_single_connector_modes()
      does the same thing already for all probed modes.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NTorsten Duwe <duwe@lst.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c19b3b0f
    • T
      KMS: fix EDID detailed timing vsync parsing · 16dad1d7
      Torsten Duwe 提交于
      EDID spreads some values across multiple bytes; bit-fiddling is needed
      to retrieve these.  The current code to parse "detailed timings" has a
      cut&paste error that results in a vsync offset of at most 15 lines
      instead of 63.
      
      See
      
         http://en.wikipedia.org/wiki/EDID
      
      and in the "EDID Detailed Timing Descriptor" see bytes 10+11 show why
      that needs to be a left shift.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NTorsten Duwe <duwe@lst.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      16dad1d7
  2. 23 3月, 2013 6 次提交
  3. 22 3月, 2013 24 次提交
  4. 21 3月, 2013 7 次提交
    • P
      usb: gadget: net2272: finally convert "CONFIG_USB_GADGET_NET2272_DMA" · eda81bea
      Paul Bolle 提交于
      The Kconfig symbol USB_GADGET_NET2272_DMA was renamed to USB_NET2272_DMA
      in commit 193ab2a6 ("usb: gadget: allow
      multiple gadgets to be built"). That commit did not convert the only
      occurrence of the corresponding Kconfig macro. Convert that macro now.
      Signed-off-by: NPaul Bolle <pebolle@tiscali.nl>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      eda81bea
    • J
      drm/mgag200: Bug fix: Modified pll algorithm for EH project · 260b3f12
      Julia Lemire 提交于
      While testing the mgag200 kms driver on the HP ProLiant Gen8, a
      bug was seen.  Once the bootloader would load the selected kernel,
      the screen would go black.  At first it was assumed that the
      mgag200 kms driver was hanging.  But after setting up the grub
      serial output, it was seen that the driver was being loaded
      properly.  After trying serval monitors, one finaly displayed
      the message "Frequency Out of Range".  By comparing the kms pll
      algorithm with the previous mgag200 xorg driver pll algorithm,
      discrepencies were found.  Once the kms pll algorithm was
      modified, the expected pll values were produced.  This fix was
      tested on several monitors of varying native resolutions.
      Signed-off-by: NJulia Lemire <jlemire@matrox.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      260b3f12
    • A
      USB: EHCI: fix regression in QH unlinking · d714aaf6
      Alan Stern 提交于
      This patch (as1670) fixes a regression caused by commit
      6402c796 (USB: EHCI: work around
      silicon bug in Intel's EHCI controllers).  The workaround goes through
      two IAA cycles for each QH being unlinked.  During the first cycle,
      the QH is not added to the async_iaa list (because it isn't fully gone
      from the hardware yet), which means that list will be empty.
      
      Unfortunately, I forgot to update the IAA watchdog timer routine.  It
      thinks that an empty async_iaa list means the timer expiration was an
      error, which isn't true any more.  This problem didn't show up during
      initial testing because the controllers being tested all had working
      IAA interrupts.  But not all controllers do, and when the watchdog
      timer expires, the empty-list check prevents the second IAA cycle from
      starting.  As a result, URB unlinks never complete.  The check needs
      to be removed.
      
      Among the symptoms of the regression are processes stuck in D wait
      states and hangs during system shutdown.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Reported-and-tested-by: NStephen Warren <swarren@wwwdotorg.org>
      Reported-and-tested-by: NSven Joachim <svenjoac@gmx.de>
      Reported-by: NAndreas Bombe <aeb@debian.org>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d714aaf6
    • M
      dm cache: policy ignore hints if generated by different version · ea2dd8c1
      Mike Snitzer 提交于
      When reading the dm cache metadata from disk, ignore the policy hints
      unless they were generated by the same major version number of the same
      policy module.
      
      The hints are considered to be private data belonging to the specific
      module that generated them and there is no requirement for them to make
      sense to different versions of the policy that generated them.
      Policy modules are all required to work fine if no previous hints are
      supplied (or if existing hints are lost).
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      ea2dd8c1
    • M
      dm cache: policy change version from string to integer set · 4e7f506f
      Mike Snitzer 提交于
      Separate dm cache policy version string into 3 unsigned numbers
      corresponding to major, minor and patchlevel and store them at the end
      of the on-disk metadata so we know which version of the policy generated
      the hints in case a future version wants to use them differently.
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      4e7f506f
    • J
      dm cache: fix race in writethrough implementation · e2e74d61
      Joe Thornber 提交于
      We have found a race in the optimisation used in the dm cache
      writethrough implementation.  Currently, dm core sends the cache target
      two bios, one for the origin device and one for the cache device and
      these are processed in parallel.  This patch avoids the race by
      changing the code back to a simpler (slower) implementation which
      processes the two writes in series, one after the other, until we can
      develop a complete fix for the problem.
      
      When the cache is in writethrough mode it needs to send WRITE bios to
      both the origin and cache devices.
      
      Previously we've been implementing this by having dm core query the
      cache target on every write to find out how many copies of the bio it
      wants.  The cache will ask for two bios if the block is in the cache,
      and one otherwise.
      
      Then main problem with this is it's racey.  At the time this check is
      made the bio hasn't yet been submitted and so isn't being taken into
      account when quiescing a block for migration (promotion or demotion).
      This means a single bio may be submitted when two were needed because
      the block has since been promoted to the cache (catastrophic), or two
      bios where only one is needed (harmless).
      
      I really don't want to start entering bios into the quiescing system
      (deferred_set) in the get_num_write_bios callback.  Instead this patch
      simplifies things; only one bio is submitted by the core, this is
      first written to the origin and then the cache device in series.
      Obviously this will have a latency impact.
      
      deferred_writethrough_bios is introduced to record bios that must be
      later issued to the cache device from the worker thread.  This deferred
      submission, after the origin bio completes, is required given that we're
      in interrupt context (writethrough_endio).
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      e2e74d61
    • J
      dm cache: metadata clear dirty bits on clean shutdown · 79ed9caf
      Joe Thornber 提交于
      When writing the dirty bitset to the metadata device on a clean
      shutdown, clear the dirty bits.  Previously they were left indicating
      the cache was dirty. This led to confusion about whether there really
      was dirty data in the cache or not.  (This was a harmless bug.)
      Reported-by: NDarrick J. Wong <darrick.wong@oracle.com>
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      79ed9caf