This series enables support for the Observation Architecture on Haswell
Compared to the last series I sent out, the main changes are:
* The terminology changed so we open a 'stream' not an 'event'.
* A stream is configured with an array of u64 properties after finding
the previous config struct quite awkward to validate and not well
suited to supporting multiple kinds of streams sharing common config
options (which arises with work Sourab Gupta is looking at based on
this driver)
* …
[View More]No pre-defined enum of metric set IDs and metric sets are now
advertised via sysfs. This is to allow for configs being loaded at
runtime in the future and the use of uuids that can be unambiguously
mapped to corresponding normalization equations in userspace. Another
consideration here was that we might need to add new versions of a
particular config like 'compute basic' (more likely for newer configs
with less testing) at which point the enum doesn't really make life
easier for userspace if you have to be aware of the versioning
relationships and attempt different IDs to find the latest version the
kernel supports.
I haven't written igt tests for this yet, but can hopefully start
looking at that next if there's no major issue with the general api. So
far the interface has been tested and iterated based on what's worked
out well for GPU Top[1], an implementation of GL_INTEL_performance_query
in Mesa and an implementation of an API called MDAPI used by GPA/VTune
to capture metrics (private a.t.m as I'm not sure there would be much
general interest in it.)
The PRM for Haswell's OA unit can be found here:
https://01.org/sites/default/files/documentation/
observability_performance_counters_haswell.pdf
(though unfortunately it's not very complete documentation)
An example of opening an i915 perf stream can be seen in Mesa here:
https://github.com/rib/mesa/blob/wip/rib/oa-next/src/mesa/drivers/
dri/i965/brw_performance_query.c#L904
A summary of the stream format can seen here:
https://github.com/rib/linux/wiki/i915-perf-stream-format
There's an open issue to do with how to properly clear the status bits
in the OASTATUS1 register which I noticed the other day can't be right
a.t.m and I'm waiting for feedback on from the Windows team or OA
architect. I don't expect it will have much impact so it still seemed
worth sending this series now.
Another thing to mention is that I just noticed gputop is hitting the
cpu more than expected in its overview mode, polling for OA data and I
need to double check it's not a driver issue. Hopefully a minor issue;
probably not worth holding things up for.
Although this series only adds basic infrastructure and enables Haswell
it's probably good to keep in mind other work that builds on top. I've
also enabled Gen8+; there's some further work by Sourab Gupta to access
metrics in sync with command stream processing and Matthew Auld has
experimented with an interface for registering new OA configurations at
runtime.
In case it's helpful to reference, the Gen 8 enabling can be seen here:
https://github.com/rib/linux/tree/wip/rib/oa-next
Sourab's work can be seen here:
https://github.com/sourabgu/linux/tree/rebase-4.4-testing
Matt's patch for runtime configs can be seen here:
https://github.com/matt-auld/linux/tree/wip/matt-auld/oa-4.4-dynamic-testing
Regards,
- Robert
[1]
https://github.com/rib/gputophttps://github.com/rib/gputop/wiki/Build-Instructions
Robert Bragg (8):
drm/i915: Add i915 perf infrastructure
drm/i915: rename OACONTROL GEN7_OACONTROL
drm/i915: Add 'render basic' Haswell OA unit config
drm/i915: Add i915 perf event for Haswell OA unit
drm/i915: advertise available metrics via sysfs
drm/i915: Add dev.i915.perf_event_paranoid sysctl option
drm/i915: add oa_event_min_timer_exponent sysctl
drm/i915: Add more Haswell OA metric sets
drivers/gpu/drm/i915/Makefile | 4 +
drivers/gpu/drm/i915/i915_cmd_parser.c | 4 +-
drivers/gpu/drm/i915/i915_dma.c | 7 +
drivers/gpu/drm/i915/i915_drv.h | 154 ++++
drivers/gpu/drm/i915/i915_gem_context.c | 23 +-
drivers/gpu/drm/i915/i915_oa_hsw.c | 658 ++++++++++++++++
drivers/gpu/drm/i915/i915_oa_hsw.h | 38 +
drivers/gpu/drm/i915/i915_perf.c | 1283 +++++++++++++++++++++++++++++++
drivers/gpu/drm/i915/i915_reg.h | 340 +++++++-
include/uapi/drm/i915_drm.h | 121 +++
10 files changed, 2625 insertions(+), 7 deletions(-)
create mode 100644 drivers/gpu/drm/i915/i915_oa_hsw.c
create mode 100644 drivers/gpu/drm/i915/i915_oa_hsw.h
create mode 100644 drivers/gpu/drm/i915/i915_perf.c
--
2.7.0
[View Less]
The proposed DRM driver works on a Orange PI 2 with a kernel 4.4.0
and the H3 patches found in Hans de Goede's GIT repository.
As there is no documentation about the HDMI of the H3,
the associated encoder/connector driver has not been included
in this patch series.
For tests, it may be built as a out-of-tree driver from the tarball:
http://moinejf.free.fr/opi2/h3-hdmi.tar.gz
and the DT files:
http://moinejf.free.fr/opi2/sun8i-h3.dtsihttp://moinejf.free.fr/opi2/sun8i-h3-orangepi-plus.dts…
[View More]Jean-Francois Moine (2):
clk: sunxi: Add sun6i/8i video support
drm: sunxi: Add a basic DRM driver for Allwinner DE2
Documentation/devicetree/bindings/clock/sunxi.txt | 2 +
.../devicetree/bindings/display/sunxi.txt | 81 ++++
drivers/clk/sunxi/clk-sun6i-display.c | 106 +++++
drivers/clk/sunxi/clk-sun6i-pll3.c | 174 ++++++++
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/sunxi/Kconfig | 20 +
drivers/gpu/drm/sunxi/Makefile | 7 +
drivers/gpu/drm/sunxi/de2_crtc.c | 425 +++++++++++++++++++
drivers/gpu/drm/sunxi/de2_crtc.h | 43 ++
drivers/gpu/drm/sunxi/de2_de.c | 461 +++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_drm.h | 55 +++
drivers/gpu/drm/sunxi/de2_drv.c | 376 +++++++++++++++++
drivers/gpu/drm/sunxi/de2_plane.c | 114 +++++
14 files changed, 1867 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/sunxi.txt
create mode 100644 drivers/clk/sunxi/clk-sun6i-display.c
create mode 100644 drivers/clk/sunxi/clk-sun6i-pll3.c
create mode 100644 drivers/gpu/drm/sunxi/Kconfig
create mode 100644 drivers/gpu/drm/sunxi/Makefile
create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.c
create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.h
create mode 100644 drivers/gpu/drm/sunxi/de2_de.c
create mode 100644 drivers/gpu/drm/sunxi/de2_drm.h
create mode 100644 drivers/gpu/drm/sunxi/de2_drv.c
create mode 100644 drivers/gpu/drm/sunxi/de2_plane.c
--
2.7.0
[View Less]
The proposed DRM driver works on a Orange PI 2 with a kernel 4.5.0-rc1
and some H3 patches found in Hans de Goede's GIT repository.
As there is no documentation about the HDMI of the H3,
the associated encoder/connector driver has not been included
in this patch series.
For test purpose, it may be built as a out-of-tree driver
from the tarball:
http://moinejf.free.fr/opi2/h3-hdmi.tar.gz
and the DT files:
http://moinejf.free.fr/opi2/sun8i-h3.dtsihttp://moinejf.free.fr/opi2/sun8i-h3-…
[View More]orangepi-plus.dts
Jean-Francois Moine (2):
clk: sunxi: Add sun6i/8i video support
drm: sunxi: Add a basic DRM driver for Allwinner DE2
Documentation/devicetree/bindings/clock/sunxi.txt | 2 +
.../devicetree/bindings/display/sunxi.txt | 81 ++++
drivers/clk/sunxi/clk-sun6i-display.c | 106 +++++
drivers/clk/sunxi/clk-sun6i-pll3.c | 174 +++++++
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/sunxi/Kconfig | 20 +
drivers/gpu/drm/sunxi/Makefile | 7 +
drivers/gpu/drm/sunxi/de2_crtc.c | 421 +++++++++++++++++
drivers/gpu/drm/sunxi/de2_crtc.h | 61 +++
drivers/gpu/drm/sunxi/de2_de.c | 505 +++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_drm.h | 40 ++
drivers/gpu/drm/sunxi/de2_drv.c | 377 +++++++++++++++
drivers/gpu/drm/sunxi/de2_plane.c | 91 ++++
14 files changed, 1888 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/sunxi.txt
create mode 100644 drivers/clk/sunxi/clk-sun6i-display.c
create mode 100644 drivers/clk/sunxi/clk-sun6i-pll3.c
create mode 100644 drivers/gpu/drm/sunxi/Kconfig
create mode 100644 drivers/gpu/drm/sunxi/Makefile
create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.c
create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.h
create mode 100644 drivers/gpu/drm/sunxi/de2_de.c
create mode 100644 drivers/gpu/drm/sunxi/de2_drm.h
create mode 100644 drivers/gpu/drm/sunxi/de2_drv.c
create mode 100644 drivers/gpu/drm/sunxi/de2_plane.c
--
2.7.0
[View Less]
The proposed DRM driver works on a Orange PI 2 with a kernel 4.4-rc1
and the H3 patches found in Hans de Goede's GIT repository.
As there is no documentation about the DE2 nor about the HDMI which
are found in the H3, this driver has been built from Allwiiner's
sources.
So, there may be license problems, especially for the file
de2_hdmi_h3.c which contains a lot of magic values.
The associated DT and documentation will be submitted when the H3 DTs
will be in the kernel.
Jean-Francois Moine (…
[View More]2):
clk: sunxi: Add sun8i display support
drm: sunxi: Add a basic DRM driver for Allwinner DE2
drivers/clk/sunxi/Makefile | 1 +
drivers/clk/sunxi/clk-sun8i-display.c | 257 ++++++++++++++++++
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/sunxi/Kconfig | 21 ++
drivers/gpu/drm/sunxi/Makefile | 8 +
drivers/gpu/drm/sunxi/de2_crtc.c | 409 +++++++++++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_crtc.h | 42 +++
drivers/gpu/drm/sunxi/de2_de.c | 467 +++++++++++++++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_drm.h | 51 ++++
drivers/gpu/drm/sunxi/de2_drv.c | 376 ++++++++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_hdmi.c | 381 +++++++++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_hdmi.h | 34 +++
drivers/gpu/drm/sunxi/de2_hdmi_h3.c | 478 ++++++++++++++++++++++++++++++++++
drivers/gpu/drm/sunxi/de2_hdmi_h3.h | 14 +
drivers/gpu/drm/sunxi/de2_plane.c | 102 ++++++++
16 files changed, 2644 insertions(+)
create mode 100644 drivers/clk/sunxi/clk-sun8i-display.c
create mode 100644 drivers/gpu/drm/sunxi/Kconfig
create mode 100644 drivers/gpu/drm/sunxi/Makefile
create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.c
create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.h
create mode 100644 drivers/gpu/drm/sunxi/de2_de.c
create mode 100644 drivers/gpu/drm/sunxi/de2_drm.h
create mode 100644 drivers/gpu/drm/sunxi/de2_drv.c
create mode 100644 drivers/gpu/drm/sunxi/de2_hdmi.c
create mode 100644 drivers/gpu/drm/sunxi/de2_hdmi.h
create mode 100644 drivers/gpu/drm/sunxi/de2_hdmi_h3.c
create mode 100644 drivers/gpu/drm/sunxi/de2_hdmi_h3.h
create mode 100644 drivers/gpu/drm/sunxi/de2_plane.c
--
2.6.4
[View Less]
From: Gustavo Padovan <gustavo.padovan(a)collabora.co.uk>
Hi,
This patch series clean up IOCTLs and abi of sync framework and it is a follow
up on the clean up series I've sent on Jan 21:
http://thread.gmane.org/gmane.comp.video.dri.devel/145509
The main changes here are:
* remove of SYNC_WAIT ioctl, poll() should be used instead.
* rename some structs and macros to better reflect the new internal names.
* clean up and improve ABI on SYNC_IOC_FILE_INFO
* add flags filed to all …
[View More]ABI structs
Please review, thanks!
Gustavo Padovan (10):
staging/android: remove SYNC_WAIT ioctl
staging/android: rename sync_pt_info to fence_info
staging/android: rename sync_file_info_data to sync_file_info
staging/android: remove driver_data from struct fence_info
staging/android: remove len field from struct fence_info
staging/android: turn fence_info into a __64 pointer
staging/android: add num_fences field to struct sync_file_info
staging/android: rename SYNC_IOC_FENCE_INFO
staging/android: add flags member to sync ioctl structs
staging/android: remove redundant comments on sync_merge_data
drivers/staging/android/sw_sync.c | 14 -----
drivers/staging/android/sync.c | 113 +++++++----------------------------
drivers/staging/android/sync.h | 20 -------
drivers/staging/android/trace/sync.h | 44 --------------
drivers/staging/android/uapi/sync.h | 45 +++++++-------
5 files changed, 40 insertions(+), 196 deletions(-)
--
2.5.0
[View Less]
Dave,
This series is the minimal changes to get virtio-gpu working with
Android DRM based hwcomposer. The first 3 patches are fixes, but I
assume they are only hit if using the atomic APIs which is dependent on
the 4th patch. I suspect async commit support is also missing, but
Android doesn't seem to need it.
I also have a few more patches for fb emulation to support panning and
mmapping the framebuffer. I'm not too sure that is really worth
supporting though.
Rob
Rob Herring (4):
…
[View More]drm: virtio-gpu: get the fb from the plane state for atomic updates
drm: virtio-gpu: ensure plane is flushed to host on atomic update
drm: virtio-gpu: transfer dumb buffers to host on plane update
drm: virtio-gpu: set atomic flag
drivers/gpu/drm/virtio/virtgpu_drv.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_plane.c | 16 ++++++++++++++--
2 files changed, 15 insertions(+), 3 deletions(-)
--
2.5.0
[View Less]
Hi Dave,
These patches add ACP support to amdgpu. I would have sent these in
for the merge window but they depended on audio and pm tree changes
that all went upstream in 4.5 so they were not available in the drm
tree at the time. Chances of regressions are low since this just
adds support for a new hw block. It does not modify any existing
functionality. This enables audio on CZ asics which use i2s audio
rather than azalia audio.
The following changes since commit …
[View More]d8b8eb829d4c30cd1e41a1ddc308a0e7c22169da:
Merge branch 'drm-rockchip-next-fixes-2016-01-22' of https://github.com/markyzq/kernel-drm-rockchip into drm-fixes (2016-01-29 10:04:29 +1000)
are available in the git repository at:
git://people.freedesktop.org/~agd5f/linux drm-fixes-4.5-acp
for you to fetch changes up to a388991c8b9412f84213c99b61853ffdb0a1ca72:
drm/amd: add pm domain for ACP IP sub blocks (2016-02-01 14:32:36 -0500)
----------------------------------------------------------------
Maruthi Bayyavarapu (1):
drm/amd: add ACP driver support
Maruthi Srinivas Bayyavarapu (1):
drm/amd: add pm domain for ACP IP sub blocks
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/amd/acp/Kconfig | 11 +
drivers/gpu/drm/amd/acp/Makefile | 8 +
drivers/gpu/drm/amd/acp/acp_hw.c | 50 +++
drivers/gpu/drm/amd/acp/include/acp_gfx_if.h | 34 ++
drivers/gpu/drm/amd/amdgpu/Makefile | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 12 +
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 502 +++++++++++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.h | 42 +++
drivers/gpu/drm/amd/amdgpu/vi.c | 12 +
drivers/gpu/drm/amd/include/amd_shared.h | 1 +
11 files changed, 686 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/amd/acp/Kconfig
create mode 100644 drivers/gpu/drm/amd/acp/Makefile
create mode 100644 drivers/gpu/drm/amd/acp/acp_hw.c
create mode 100644 drivers/gpu/drm/amd/acp/include/acp_gfx_if.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.h
[View Less]