Skip to content
Snippets Groups Projects
  1. May 10, 2021
  2. Nov 30, 2020
  3. Oct 26, 2020
  4. Sep 08, 2020
  5. Mar 02, 2020
  6. Jan 15, 2020
  7. Nov 07, 2019
  8. Aug 26, 2019
  9. Jun 21, 2019
    • Bartlomiej Zolnierkiewicz's avatar
      video: fbdev: omap2: remove rfbi · 76c47323
      Bartlomiej Zolnierkiewicz authored
      
      Equivalent of drm's commit aa61321d ("drm/omap: remove rfbi").
      
      The RFBI driver has been marked as BROKEN and has not been
      included in the kernel build for many years. Just remove it
      (it can be trivially brought back from git repository if
      ever needed).
      
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      76c47323
  10. Jun 19, 2019
  11. Jun 14, 2019
    • Steve Longerbeam's avatar
      gpu: ipu-v3: ipu-ic: Fully describe colorspace conversions · f208b26e
      Steve Longerbeam authored and Philipp Zabel's avatar Philipp Zabel committed
      
      Only providing the input and output RGB/YUV space to the IC task init
      functions is not sufficient. To fully characterize a colorspace
      conversion, the Y'CbCr encoding standard, and quantization also
      need to be specified.
      
      Define a 'struct ipu_ic_colorspace' that includes all the above.
      
      This allows to actually enforce the fact that the IC:
      
      - can only encode to/from YUV and RGB full range. A follow-up patch will
        remove this restriction.
      - can only encode using BT.601 standard. A follow-up patch will add
        Rec.709 encoding support.
      
      The determination of the CSC coefficients based on the input/output
      'struct ipu_ic_colorspace' are moved to a new exported function
      ipu_ic_calc_csc(), and 'struct ic_csc_params' is exported as
      'struct ipu_ic_csc_params'. ipu_ic_calc_csc() fills a 'struct ipu_ic_csc'
      with the input/output 'struct ipu_ic_colorspace' and the calculated
      'struct ic_csc_params' from those input/output colorspaces.
      
      The functions ipu_ic_task_init(_rsc)() now take a filled 'struct
      ipu_ic_csc'.
      
      The existing CSC coefficient tables and ipu_ic_calc_csc() are moved
      to a new module ipu-ic-csc.c. This is in preparation for adding more
      coefficient tables for limited range quantization and more encoding
      standards.
      
      The existing ycbcr2rgb and inverse rgb2ycbcr tables defined the BT.601
      Y'CbCr encoding coefficients. The rgb2ycbcr table specifically described
      the BT.601 encoding from full range RGB to full range YUV. Table
      comments have been added in ipu-ic-csc.c to make this more clear.
      
      The ycbcr2rgb inverse table described encoding YUV limited range to RGB
      full range. To be consistent with the rgb2ycbcr table, this table is
      converted to YUV full range to RGB full range, and the comments are
      expanded in ipu-ic-csc.c.
      
      The ic_csc_rgb2rgb table was just an identity matrix, so it is renamed
      'identity' in ipu-ic-csc.c.
      
      Signed-off-by: default avatarSteve Longerbeam <slongerbeam@gmail.com>
      [p.zabel@pengutronix.de: removed a superfluous blank line]
      Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      f208b26e
  12. Jun 05, 2019
  13. May 30, 2019
    • Thomas Gleixner's avatar
      treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 · c942fddf
      Thomas Gleixner authored
      
      Based on 3 normalized pattern(s):
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version this program is distributed in the
        hope that it will be useful but without any warranty without even
        the implied warranty of merchantability or fitness for a particular
        purpose see the gnu general public license for more details
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version [author] [kishon] [vijay] [abraham]
        [i] [kishon]@[ti] [com] this program is distributed in the hope that
        it will be useful but without any warranty without even the implied
        warranty of merchantability or fitness for a particular purpose see
        the gnu general public license for more details
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version [author] [graeme] [gregory]
        [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
        [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
        [hk] [hemahk]@[ti] [com] this program is distributed in the hope
        that it will be useful but without any warranty without even the
        implied warranty of merchantability or fitness for a particular
        purpose see the gnu general public license for more details
      
      extracted by the scancode license scanner the SPDX license identifier
      
        GPL-2.0-or-later
      
      has been chosen to replace the boilerplate/reference in 1105 file(s).
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarAllison Randal <allison@lohutok.net>
      Reviewed-by: default avatarRichard Fontana <rfontana@redhat.com>
      Reviewed-by: default avatarKate Stewart <kstewart@linuxfoundation.org>
      Cc: linux-spdx@vger.kernel.org
      Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c942fddf
    • Thomas Gleixner's avatar
      treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 · 1a59d1b8
      Thomas Gleixner authored
      
      Based on 1 normalized pattern(s):
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version this program is distributed in the
        hope that it will be useful but without any warranty without even
        the implied warranty of merchantability or fitness for a particular
        purpose see the gnu general public license for more details you
        should have received a copy of the gnu general public license along
        with this program if not write to the free software foundation inc
        59 temple place suite 330 boston ma 02111 1307 usa
      
      extracted by the scancode license scanner the SPDX license identifier
      
        GPL-2.0-or-later
      
      has been chosen to replace the boilerplate/reference in 1334 file(s).
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarAllison Randal <allison@lohutok.net>
      Reviewed-by: default avatarRichard Fontana <rfontana@redhat.com>
      Cc: linux-spdx@vger.kernel.org
      Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1a59d1b8
    • Thomas Gleixner's avatar
      treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 · 2874c5fd
      Thomas Gleixner authored
      
      Based on 1 normalized pattern(s):
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version
      
      extracted by the scancode license scanner the SPDX license identifier
      
        GPL-2.0-or-later
      
      has been chosen to replace the boilerplate/reference in 3029 file(s).
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarAllison Randal <allison@lohutok.net>
      Cc: linux-spdx@vger.kernel.org
      Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2874c5fd
  14. May 24, 2019
  15. May 21, 2019
    • Thomas Gleixner's avatar
      treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 · 1ccea77e
      Thomas Gleixner authored
      
      Based on 2 normalized pattern(s):
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version this program is distributed in the
        hope that it will be useful but without any warranty without even
        the implied warranty of merchantability or fitness for a particular
        purpose see the gnu general public license for more details you
        should have received a copy of the gnu general public license along
        with this program if not see http www gnu org licenses
      
        this program is free software you can redistribute it and or modify
        it under the terms of the gnu general public license as published by
        the free software foundation either version 2 of the license or at
        your option any later version this program is distributed in the
        hope that it will be useful but without any warranty without even
        the implied warranty of merchantability or fitness for a particular
        purpose see the gnu general public license for more details [based]
        [from] [clk] [highbank] [c] you should have received a copy of the
        gnu general public license along with this program if not see http
        www gnu org licenses
      
      extracted by the scancode license scanner the SPDX license identifier
      
        GPL-2.0-or-later
      
      has been chosen to replace the boilerplate/reference in 355 file(s).
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarKate Stewart <kstewart@linuxfoundation.org>
      Reviewed-by: default avatarJilayne Lovejoy <opensource@jilayne.com>
      Reviewed-by: default avatarSteve Winslow <swinslow@gmail.com>
      Reviewed-by: default avatarAllison Randal <allison@lohutok.net>
      Cc: linux-spdx@vger.kernel.org
      Link: https://lkml.kernel.org/r/20190519154041.837383322@linutronix.de
      
      
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1ccea77e
  16. Apr 01, 2019
    • Mikulas Patocka's avatar
      udlfb: introduce a rendering mutex · babc250e
      Mikulas Patocka authored
      
      Rendering calls may be done simultaneously from the workqueue,
      dlfb_ops_write, dlfb_ops_ioctl, dlfb_ops_set_par and dlfb_dpy_deferred_io.
      The code is robust enough so that it won't crash on concurrent rendering.
      
      However, concurrent rendering may cause display corruption if the same
      pixel is simultaneously being rendered. In order to avoid this corruption,
      this patch adds a mutex around the rendering calls.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: Bernie Thompson <bernie@plugable.com>
      Cc: Ladislav Michl <ladis@linux-mips.org>
      Cc: <stable@vger.kernel.org>
      [b.zolnierkie: replace "dlfb:" with "uldfb:" in the patch summary]
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      babc250e
    • Mikulas Patocka's avatar
      udlfb: fix sleeping inside spinlock · 6b11f9d8
      Mikulas Patocka authored
      
      If a framebuffer device is used as a console, the rendering calls
      (copyarea, fillrect, imageblit) may be done with the console spinlock
      held. On udlfb, these function call dlfb_handle_damage that takes a
      blocking semaphore before acquiring an URB.
      
      In order to fix the bug, this patch changes the calls copyarea, fillrect
      and imageblit to offload USB work to a workqueue.
      
      A side effect of this patch is 3x improvement in console scrolling speed
      because the device doesn't have to be updated after each copyarea call.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: Bernie Thompson <bernie@plugable.com>
      Cc: Ladislav Michl <ladis@linux-mips.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      6b11f9d8
  17. Feb 22, 2019
  18. Jan 16, 2019
  19. Dec 14, 2018
  20. Nov 05, 2018
  21. Oct 08, 2018
    • Mikulas Patocka's avatar
      udlfb: handle unplug properly · 68a958a9
      Mikulas Patocka authored
      
      The udlfb driver maintained an open count and cleaned up itself when the
      count reached zero. But the console is also counted in the reference count
      - so, if the user unplugged the device, the open count would not drop to
      zero and the driver stayed loaded with console attached. If the user
      re-plugged the adapter, it would create a device /dev/fb1, show green
      screen and the access to the console would be lost.
      
      The framebuffer subsystem has reference counting on its own - in order to
      fix the unplug bug, we rely the framebuffer reference counting. When the
      user unplugs the adapter, we call unregister_framebuffer unconditionally.
      unregister_framebuffer will unbind the console, wait until all users stop
      using the framebuffer and then call the fb_destroy method. The fb_destroy
      cleans up the USB driver.
      
      This patch makes the following changes:
      * Drop dlfb->kref and rely on implicit framebuffer reference counting
        instead.
      * dlfb_usb_disconnect calls unregister_framebuffer, the rest of driver
        cleanup is done in the function dlfb_ops_destroy. dlfb_ops_destroy will
        be called by the framebuffer subsystem when no processes have the
        framebuffer open or mapped.
      * We don't use workqueue during initialization, but initialize directly
        from dlfb_usb_probe. The workqueue could race with dlfb_usb_disconnect
        and this racing would produce various kinds of memory corruption.
      * We use usb_get_dev and usb_put_dev to make sure that the USB subsystem
        doesn't free the device under us.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      cc: Dave Airlie <airlied@redhat.com>
      Cc: Bernie Thompson <bernie@plugable.com>,
      Cc: Ladislav Michl <ladis@linux-mips.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      68a958a9
  22. Jul 25, 2018
    • Mikulas Patocka's avatar
      udlfb: allow reallocating the framebuffer · 7433914e
      Mikulas Patocka authored
      
      This patch changes udlfb so that it may reallocate the framebuffer when
      setting higher-resolution mode. If we boot the system without monitor
      attached, udlfb creates a framebuffer with the size 800x600. This patch
      makes it possible to select higher videomode with the fbset command when
      a monitor is attached.
      
      Note that there is no reliable way to prevent the system from touching the
      old framebuffer, so we must not free it. We add it to the list
      dlfb->deferred_free and free it when the driver is unloaded.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      [b.zolnierkie: sparse fixes]
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      7433914e
    • Mikulas Patocka's avatar
      udlfb: set optimal write delay · bb24153a
      Mikulas Patocka authored
      
      The default delay 5 jiffies is too much when the kernel is compiled with
      HZ=100 - it results in jumpy cursor in Xwindow.
      
      In order to find out the optimal delay, I benchmarked the driver on
      1280x720x30fps video. I found out that with HZ=1000, 10ms is acceptable,
      but with HZ=250 or HZ=300, we need 4ms, so that the video is played
      without any frame skips.
      
      This patch changes the delay to this value.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      bb24153a
    • Mikulas Patocka's avatar
      udlfb: make a local copy of fb_ops · 2c29cfc3
      Mikulas Patocka authored
      
      The defio subsystem overwrites the method fb_osp->mmap. That method is
      stored in module's static data - and that means that if we have multiple
      diplaylink adapters, they will over write each other's method.
      
      In order to avoid interference between multiple adapters, we copy the
      fb_ops structure to a device-local memory.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      2c29cfc3
    • Mikulas Patocka's avatar
      udlfb: don't switch if we are switching to the same videomode · 564f1807
      Mikulas Patocka authored
      
      The udlfb driver reprograms the hardware everytime the user switches the
      console, that makes quite unusable when working on the console.
      
      This patch makes the driver remember the videomode we are in and avoid
      reprogramming the hardware if we switch to the same videomode.
      
      We mask the "activate" field and the "FB_VMODE_SMOOTH_XPAN" flag when
      comparing the videomode, because they cause spurious switches when
      switching to and from the Xserver.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      564f1807
    • Mikulas Patocka's avatar
      udlfb: fix semaphore value leak · 9d0aa601
      Mikulas Patocka authored
      
      I observed that the performance of the udl fb driver degrades over time.
      On a freshly booted machine, it takes 6 seconds to do "ls -la /usr/bin";
      after some time of use, the same operation takes 14 seconds.
      
      The reason is that the value of "limit_sem" decays over time.
      
      The udl driver uses a semaphore "limit_set" to specify how many free urbs
      are there on dlfb->urbs.list. If the count is zero, the "down" operation
      will sleep until some urbs are added to the freelist.
      
      In order to avoid some hypothetical deadlock, the driver will not call
      "up" immediately, but it will offload it to a workqueue. The problem is
      that if we call "schedule_delayed_work" on the same work item multiple
      times, the work item may only be executed once.
      
      This is happening:
      * some urb completes
      * dlfb_urb_completion adds it to the free list
      * dlfb_urb_completion calls schedule_delayed_work to schedule the function
        dlfb_release_urb_work to increase the semaphore count
      * as the urb is on the free list, some other task grabs it and submits it
      * the submitted urb completes, dlfb_urb_completion is called again
      * dlfb_urb_completion calls schedule_delayed_work, but the work is already
        scheduled, so it does nothing
      * finally, dlfb_release_urb_work is called, it increases the semaphore
        count by 1, although it should increase it by 2
      
      So, the semaphore count is decreasing over time, and this causes gradual
      performance degradation.
      
      Note that in the current kernel, the "up" function may be called from
      interrupt and it may race with the "down" function called by another
      thread, so we don't have to offload the call of "up" to a workqueue at
      all. This patch removes the workqueue code. The patch also changes
      "down_interruptible" to "down" in dlfb_free_urb_list, so that we will
      clean up the driver properly even if a signal arrives.
      
      With this patch, the performance of udlfb no longer degrades.
      
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      [b.zolnierkie: fix immediatelly -> immediately typo]
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      9d0aa601
    • vkorjani's avatar
      drm: Add support for pps and compression mode command packet · ea107a18
      vkorjani authored and Rob Clark's avatar Rob Clark committed
      
      After enabling DSC we need to send compression mode command packet
      and pps data packet, for which 2 new data types are added
      07h  Compression Mode Data Type Write , short write, 2 parameters
      0Ah  PPS Long Write (word count determines number of bytes)
      This patch adds support to send these packets.
      
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-fbdev@vger.kernel.org
      
      Changes in v3:
      - None
      
      Signed-off-by: default avatarvkorjani <vikas.korjani@intel.com>
      [seanpaul removed pps_write_buffer fn, added types to packet_format helpers]
      Signed-off-by: Sean Paul's avatarSean Paul <seanpaul@chromium.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      ea107a18
  23. May 14, 2018
Loading