[ccing dri-devel so other people can see what we're cooking...]
On Fri, Mar 07, 2014 at 01:49:18PM +0000, Goel, Akash wrote:
> > In my ideal solution the panel fitter output will be hdisplay/vdisplay
> > +/- the border (depending on which way we define it), and the panel
> > +fitter
> > input size will be defined as a new crtc property.
>
> Please could you kindly clarify, so as to avoid any ambiguity/confusion on our side, that by 'hdisplay/vdisplay', are you …
[View More]referring to values programmed in PIPESRC or 'HACTIVE/VACTIVE' (pipe timings) ?
> As per our understanding that border info shall be applied on the 'HACTIVE/VACTIVE', i.e. (HACTIVE - Left border - Right Border) x (VACTIVE - Top Border - Bottom border) will be the output rectangle on screen.
I mean what's there in the mode structure. So if we define the border as
something that reduces hactive/vactice, we'd program the pfit output size as
hactive-left_border-right_border x vactive-top_border-bottom_border.
>
> Please also confirm for the border info, you prefer a new property or an update of the 'drm_mode_modeinfo' structure ?
We can't change the already existing structure, so if we want to update it
we'd need drm_mode_modeinfo2 or something and a new set ioctls. My sense
of aestethics would prefer that, but from a practical point of view
properties seem like the easier choice.
> If the panel fitter input size is defined as a new crtc property, then once User modifies the input size through this property, PIPESRC shall also be updated with it at that time. But actually change in PIPESRC programming alone, could also require a reprogramming of the Panel fitter in some cases.
Yeah. Before the atomic modeset API is introduced, userspace might want
to first disable the crtc, then change the properties, and then set a
new mode. That would make it appear atomic and it can avoid problems
where the intermediate state isn't exactly valid.
>
> Best Regards
> Akash
>
> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Friday, March 07, 2014 6:31 PM
> To: Goel, Akash
> Cc: Chris Wilson; intel-gfx(a)lists.freedesktop.org; G, Pallavi; Purushothaman, Vijay A
> Subject: Re: Request for feedback : [RFC] Added a new 'window size' property for connector
>
> On Fri, Mar 07, 2014 at 12:45:26PM +0000, Goel, Akash wrote:
> > Thanks for your feedback.
> >
> > > No, fb_id is passed through setcrtc (or soon through setplane, I hope).
> > Actually mentioned 'fb_id' also, because if PIPESRC programming is also being updated (as Panel fitter input), then the 'fb' already attached to 'crtc' may not be aligned with it. So there could be a momentary corruption caused when internal modeset is done by Driver (to change the Panel fitter setting), which will last till the next page flip (or setplane).
>
> >
> > > No, we need both the border and the PIPESRC information. hdisplay/vdisplays isn't enough since the user facing mode structure doesn't have vblank_start/end fields. Hence we can't specify borders.
> > > If we don't want to extend the display mode, we should add border
> > > properties of some sort. I know some drivers have added something like that to the connectors, but again since the mode is applied to the crtc, ideally these properties should also be on the crtc.
> >
> > Sorry but it's not quite clear. This is what is my understanding so far, please kindly correct wherever wrong.
> >
> > 1. We need border info for the output of Panel fitter, which will determine the display window. Using the border info we will manipulate the hblank/vblank start/end fields.
> > 2. Currently the values of 'hdisplay/vdisplay' fields sent in 'drm_mode_modeinfo' structure gets programmed in PIPESRC. So if we are adding border info to the same structure, then we can use the 'hdisplay/vdisplay' fields only for
> > PIPESRC. But if we are defining a new property, to convey the border info, then we need the PIPESRC information also along with it.
> >
> > Please confirm that should we add a new a 'blob' type property for 'crtc' ?
>
> In my ideal solution the panel fitter output will be hdisplay/vdisplay
> +/- the border (depending on which way we define it), and the panel
> +fitter
> input size will be defined as a new crtc property.
>
> --
> Ville Syrjälä
> Intel OTC
--
Ville Syrjälä
Intel OTC
[View Less]
https://bugs.freedesktop.org/show_bug.cgi?id=75223
Priority: medium
Bug ID: 75223
Assignee: dri-devel(a)lists.freedesktop.org
Summary: 3840x2160 HDMI 30Hz fails on XFX r7-240a-clh4 and
r7-250a-lzh4
Severity: normal
Classification: Unclassified
OS: Linux (All)
Reporter: adam_richter2004(a)yahoo.com
Hardware: x86 (IA32)
Status: NEW
Version: XOrg CVS
…
[View More]Component: DRM/Radeon
Product: DRI
Created attachment 94377
--> https://bugs.freedesktop.org/attachment.cgi?id=94377&action=edit
tar file containing /var/log/Xorg.0.log and logs of dmesg, xrandr, xrandr
--verbose for both cards (r7-240 and r7-250)
The XFX Radeon r7-240a-clh4 and XFX Radeon r7-250a-zlh4 video cards do not seem
to be able to generate 3840x2160 @ 30 Hz video modes over HDMI, even though I
believe their hardware is supposed to be capable of this (~299 MHz pixel
clock).
At least with my se39uy04 39" Seiki television, the Radeon X.org driver happily
passed through the five 3840x2160 @ 24-30 Hz that the television's advertises
in its EDID modes to xrandr, meaning that driver thinks it can support those
video modes, but, if I select any of them, the telvision just says "mode not
support." In comparison, if I make a custom video mode for 3840x2160 @ 15Hz,
the 4k TV displays that fine.
I am attaching a .tar.gz file containting /var/log/Xorg.0.log and logs of
dmesg, xrandr, xrandr --verbose for both cards (r7-240 and r7-250).
Thanks to Alex Deucher for advising me to file this bug report here.
Thanks in advance for any further processing of this bug report.
--
You are receiving this mail because:
You are the assignee for the bug.
[View Less]
Hi
Another round of SimpleDRM patches. I somehow lost track of the last ones and as
this is a major rewrite, I'll just start at v1 again.
Some comments up-front:
- @Ingo: Patch #1 and #2 are unchanged from the previous ML discussions. I
included them in this series as the other patches depend on them. Could you
pick them up for the x86 tree? The other 9 patches won't make it in 3.14 so
no reason to put them through the DRM tree.
All mentioned issues should be addressed. If there'…
[View More]s still sth missing,
please let me know.
- The DRM patches depend on my "DRM Anonymous Inode" patches. But it should be
trivial to apply them on drm-next (I think only one line needs to be changed:
i_mapping => dev_mapping).
- I tested the SimpleDRM fbdev fallback with linux-console+Xorg and it works
fine. The DRM backend is only tested with some DRM tests I have locally. I
have no idea how to make Xorg pick up a specific /dev/dri/card0 card. It
always tells me "no screens found" (as the underlying device is not marked as
boot_vga..). If someone knows how to tell Xorg to use card0, I'd gladly test
this. But I'm no longer used to writing xorg.confs..
This series introduces two new concepts: sysfb and SimpleDRM
Sysfb is just a generalization of the x86-sysfb concept. It allows to register
firmware-framebuffers with the system as platform-devices. This way, drivers can
properly bind to these devices and we prevent multiple drivers from accessing
the same firmware-framebuffer.
Sysfb also provides hooks to get a safe handover to real hw-drivers (like i915).
Please see the "video: sysfb: add generic firmware-fb interface" patch for a
thorough description of the API. This patch also adds a rather verbose
documentation of all known firmware-fb facilities.
As second part, this series introduces SimpleDRM. It's a very basic DRM driver
that can replace efifb, vesafb, simplefb and friends. It's 100% compatible to
the "udl" DRM driver, so user-space like xf86-video-modesetting can pick them up
just fine. User-space that cannot deal with drmModeDirtyFB() (like weston and
friends) currently cannot use SimpleDRM. However, that's also true for all other
DRM drivers which provide shadow framebuffers. We could provide something like
FB-DEFIO, but that's just useless overhead to paper of lazy user-space.
I have tested this with all hardware that I have at home, with a lot hand-over
combinations (with/without SYSFB, with efifb/vesafb/simplefb, with SimpleDRM,
...) and all worked great so far.
Comments welcome!
David
David Herrmann (11):
x86: sysfb: fool-proof CONFIG_X86_SYSFB
x86: sysfb: remove sysfb when probing real hw
fbdev: efifb: add dev->remove() callback
fbdev: vesafb: add dev->remove() callback
x86: sysfb: store apertures in simplefb platform-data
video: sysfb: add generic firmware-fb interface
drm: mgag200: remove redundant fbdev removal
drm/i915: remove sysfbs early
drm: add SimpleDRM driver
drm: simpledrm: add fbdev fallback support
x86/sysfb: allow sysfb+simpledrm combination
Documentation/firmware-fbs.txt | 236 +++++++++++++++++
MAINTAINERS | 8 +
arch/x86/Kconfig | 2 +
arch/x86/include/asm/sysfb.h | 6 +-
arch/x86/kernel/sysfb.c | 3 +-
arch/x86/kernel/sysfb_simplefb.c | 97 ++++---
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/i915/i915_drv.c | 6 +
drivers/gpu/drm/mgag200/mgag200_main.c | 9 -
drivers/gpu/drm/simpledrm/Kconfig | 29 +++
drivers/gpu/drm/simpledrm/Makefile | 4 +
drivers/gpu/drm/simpledrm/simpledrm.c | 263 +++++++++++++++++++
drivers/gpu/drm/simpledrm/simpledrm.h | 122 +++++++++
drivers/gpu/drm/simpledrm/simpledrm_damage.c | 306 ++++++++++++++++++++++
drivers/gpu/drm/simpledrm/simpledrm_fbdev.c | 148 +++++++++++
drivers/gpu/drm/simpledrm/simpledrm_gem.c | 282 +++++++++++++++++++++
drivers/gpu/drm/simpledrm/simpledrm_kms.c | 365 +++++++++++++++++++++++++++
drivers/video/Kconfig | 3 +
drivers/video/Makefile | 1 +
drivers/video/efifb.c | 13 +-
drivers/video/fbmem.c | 17 +-
drivers/video/simplefb.c | 8 -
drivers/video/sysfb.c | 348 +++++++++++++++++++++++++
drivers/video/vesafb.c | 13 +-
include/linux/fb.h | 9 +-
include/linux/platform_data/simplefb.h | 2 +
include/linux/sysfb.h | 62 +++++
28 files changed, 2299 insertions(+), 66 deletions(-)
create mode 100644 Documentation/firmware-fbs.txt
create mode 100644 drivers/gpu/drm/simpledrm/Kconfig
create mode 100644 drivers/gpu/drm/simpledrm/Makefile
create mode 100644 drivers/gpu/drm/simpledrm/simpledrm.c
create mode 100644 drivers/gpu/drm/simpledrm/simpledrm.h
create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_damage.c
create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_fbdev.c
create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_gem.c
create mode 100644 drivers/gpu/drm/simpledrm/simpledrm_kms.c
create mode 100644 drivers/video/sysfb.c
create mode 100644 include/linux/sysfb.h
--
1.8.5.3
[View Less]
On Fri, Mar 07, 2014 at 02:59:23PM +0100, Toralf Förster wrote:
> ick, attached full compressed file
It's the infamous https://bugs.freedesktop.org/show_bug.cgi?id=54226
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
At a ThinkPad T420 with i915 and kernel 3.12.13 my watchdog scripts
told me :
Mar 6 18:45:02 n22 kernel: [drm] stuck on render ring
Mar 6 18:45:02 n22 kernel: [drm] stuck on blitter ring
Mar 6 18:45:02 n22 kernel: [drm] capturing error event; look for more
information in /sys/class/drm/card0/error
The content of the first 1000 lines of /sys/class/drm/card0/error is
attached.
- --
MfG/Sincerely
Toralf Förster
pgp finger print:1A37 6F99 …
[View More]4A9D 026F 13E2 4DCF C4EA CDDE 0076 E94E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iF4EAREIAAYFAlMZzN8ACgkQxOrN3gB26U6kNAD8CFVxmtKYMI0uLkfnN3pvzLwu
REH1iLdmCmpAaR0ALm4A/2yJjB9Q3nhcDgr0U2c0OiqlnjJbQpKzDYokbBtUbL1x
=T5RE
-----END PGP SIGNATURE-----
[View Less]
Building ramnve0.o triggers a GCC warning on 32 bits x86:
drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c: In function 'nve0_ram_ctor':
drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c:1253:1: warning: the frame size of 1496 bytes is larger than 1024 bytes [-Wframe-larger-than=]
This warning is caused by ramfuc_reg(), which is inlined 74 times in
nve0_ram_ctor(). Mark it noinline to silence this warning.
Signed-off-by: Paul Bolle <pebolle(a)tiscali.nl>
---
Compile tested (on 32 …
[View More]bits x86) only. I've no Nvidia cards at hand, so I
can't really test it.
This assumes this function - a constructor, apparently - isn't called
often, so the overhead calling of 74 functions is acceptable. (The same
goes for the similar functions in [...]/ramnva3.c and in
[...]/ramnvc0.c, though these call ramfuc_reg() not quite as often.)
Perhaps there are other downsides to not inlining this function too. So
proper testing will probably be needed.
drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h b/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
index 0f57fcf..04e3849 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
+++ b/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
@@ -26,7 +26,7 @@ ramfuc_reg2(u32 addr1, u32 addr2)
};
}
-static inline struct ramfuc_reg
+static noinline struct ramfuc_reg
ramfuc_reg(u32 addr)
{
return ramfuc_reg2(addr, addr);
--
1.8.4.2
[View Less]
Hi Linus,
mostly intel and radeon fixes, one tda998x, one kconfig dep fix and two
more MAINTAINERS updates,
All pretty run of the mill for this stage,
Dave.
The following changes since commit 0414855fdc4a40da05221fc6062cccbc0c30f169:
Linux 3.14-rc5 (2014-03-02 18:56:16 -0800)
are available in the git repository at:
git://people.freedesktop.org/~airlied/linux drm-fixes
for you to fetch changes up to 45db98e54242f3ae94bdcfbfe754e743252eb168:
Merge branch 'drm-fixes-3.14' of git://…
[View More]people.freedesktop.org/~agd5f/linux into drm-fixes (2014-03-07 09:27:22 +1000)
----------------------------------------------------------------
Akash Goel (1):
drm/i915: Resolving the memory region conflict for Stolen area
Alex Deucher (4):
drm/radeon: resume old pm late
drm/radeon/cik: fix typo in documentation
drm/radeon/dpm: fix typo in EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters
drm/radeon/atom: select the proper number of lanes in transmitter setup
Dave Airlie (5):
MAINTAINERS: update AGP tree to point at drm tree
Merge tag 'drm-intel-fixes-2014-03-04' of ssh://git.freedesktop.org/git/drm-intel into drm-fixes
Merge branch 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
Merge branch 'drm-armada-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-fixes
Merge branch 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
Gerd Hoffmann (1):
drm: fix bochs kconfig dependencies
Imre Deak (2):
drm/i915: fix pch pci device enumeration
drm/i915: vlv: reserve GT power context early
Jani Nikula (1):
drm/i915: use backlight legacy combination mode also for i915gm/i945gm
Lauri Kasanen (1):
drm/radeon: TTM must be init with cpu-visible VRAM, v2
Paul Bolle (1):
drm/radeon: silence GCC warning on 32 bit
Paulo Zanoni (1):
drm/i915: fix assert_cursor on BDW
Russell King (2):
DRM: armada: fix use of kfifo_put()
MAINTAINERS: add maintainer entry for TDA998x driver
Ville Syrjälä (1):
drm/i915: Reject >165MHz modes w/ DVI monitors
MAINTAINERS | 8 +++++++-
drivers/gpu/drm/armada/armada_drv.c | 10 +---------
drivers/gpu/drm/bochs/Kconfig | 1 +
drivers/gpu/drm/i915/i915_drv.c | 23 +++++++++--------------
drivers/gpu/drm/i915/i915_gem_stolen.c | 19 ++++++++++++++++---
drivers/gpu/drm/i915/intel_display.c | 8 ++++----
drivers/gpu/drm/i915/intel_hdmi.c | 6 +++---
drivers/gpu/drm/i915/intel_panel.c | 4 ++--
drivers/gpu/drm/i915/intel_pm.c | 6 ++++--
drivers/gpu/drm/radeon/atombios_encoders.c | 2 +-
drivers/gpu/drm/radeon/cik.c | 5 +++--
drivers/gpu/drm/radeon/evergreen.c | 3 ++-
drivers/gpu/drm/radeon/evergreen_smc.h | 2 +-
drivers/gpu/drm/radeon/ni.c | 3 ++-
drivers/gpu/drm/radeon/r100.c | 2 --
drivers/gpu/drm/radeon/r300.c | 2 --
drivers/gpu/drm/radeon/r420.c | 2 --
drivers/gpu/drm/radeon/r520.c | 2 --
drivers/gpu/drm/radeon/r600.c | 3 ++-
drivers/gpu/drm/radeon/radeon_device.c | 5 ++++-
drivers/gpu/drm/radeon/radeon_ttm.c | 5 ++++-
drivers/gpu/drm/radeon/rs400.c | 2 --
drivers/gpu/drm/radeon/rs600.c | 2 --
drivers/gpu/drm/radeon/rs690.c | 2 --
drivers/gpu/drm/radeon/rv515.c | 2 --
drivers/gpu/drm/radeon/rv770.c | 3 ++-
drivers/gpu/drm/radeon/si.c | 3 ++-
27 files changed, 70 insertions(+), 65 deletions(-)
[View Less]