2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-11-30 15:10:43 +01:00
|
|
|
|
2012-03-23 15:01:51 -07:00
|
|
|
|
2016-04-07 18:49:00 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-12 20:41:07 -08:00
|
|
|
|
|
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
2023-12-12 20:41:07 -08:00
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2017-11-15 17:45:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2017-11-15 17:45:04 +02:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-15 17:45:04 +02:00
|
|
|
|
2017-11-15 17:49:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2016-11-03 16:10:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-09-25 16:45:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-14 20:32:52 +02:00
|
|
|
|
2017-11-14 20:32:51 +02:00
|
|
|
|
2013-09-25 16:45:21 +01:00
|
|
|
|
|
|
|
|
|
2013-09-27 12:11:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-09-27 12:11:48 +01:00
|
|
|
|
2017-05-19 16:50:17 -04:00
|
|
|
|
2013-09-27 12:11:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-17 17:34:37 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-08 16:39:45 +05:30
|
|
|
|
|
|
|
|
|
2016-10-17 17:34:37 +05:30
|
|
|
|
2018-05-15 16:59:27 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-17 17:34:37 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-08 16:39:45 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2017-11-15 17:49:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2009-07-01 10:04:40 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
|
|
|
|
|
2010-07-16 15:09:17 +10:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-12-03 23:25:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
drm: Add a new connector atomic property for link status
At the time userspace does setcrtc, we've already promised the mode
would work. The promise is based on the theoretical capabilities of
the link, but it's possible we can't reach this in practice. The DP
spec describes how the link should be reduced, but we can't reduce
the link below the requirements of the mode. Black screen follows.
One idea would be to have setcrtc return a failure. However, it
already should not fail as the atomic checks have passed. It would
also conflict with the idea of making setcrtc asynchronous in the
future, returning before the actual mode setting and link training.
Another idea is to train the link "upfront" at hotplug time, before
pruning the mode list, so that we can do the pruning based on
practical not theoretical capabilities. However, the changes for link
training are pretty drastic, all for the sake of error handling and
DP compliance, when the most common happy day scenario is the current
approach of link training at mode setting time, using the optimal
parameters for the mode. It is also not certain all hardware could do
this without the pipe on; not even all our hardware can do this. Some
of this can be solved, but not trivially.
Both of the above ideas also fail to address link degradation *during*
operation.
The solution is to add a new "link-status" connector property in order
to address link training failure in a way that:
a) changes the current happy day scenario as little as possible, to
avoid regressions, b) can be implemented the same way by all drm
drivers, c) is still opt-in for the drivers and userspace, and opting
out doesn't regress the user experience, d) doesn't prevent drivers
from implementing better or alternate approaches, possibly without
userspace involvement. And, of course, handles all the issues presented.
In the usual happy day scenario, this is always "good". If something
fails during or after a mode set, the kernel driver can set the link
status to "bad" and issue a hotplug uevent for userspace to have it
re-check the valid modes through GET_CONNECTOR IOCTL, and try modeset
again. If the theoretical capabilities of the link can't be reached,
the mode list is trimmed based on that.
v7 by Jani:
* Rebase, simplify set property while at it, checkpatch fix
v6:
* Fix a typo in kernel doc (Sean Paul)
v5:
* Clarify doc for silent rejection of atomic properties by driver (Daniel Vetter)
v4:
* Add comments in kernel-doc format (Daniel Vetter)
* Update the kernel-doc for link-status (Sean Paul)
v3:
* Fixed a build error (Jani Saarinen)
v2:
* Removed connector->link_status (Daniel Vetter)
* Set connector->state->link_status in drm_mode_connector_set_link_status_property
(Daniel Vetter)
* Set the connector_changed flag to true if connector->state->link_status changed.
* Reset link_status to GOOD in update_output_state (Daniel Vetter)
* Never allow userspace to set link status from Good To Bad (Daniel Vetter)
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Tony Cheng <tony.cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Eric Anholt <eric@anholt.net> (for the -modesetting patch)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/0182487051aa9f1594820e35a4853de2f8747b4e.1481883920.git.jani.nikula@intel.com
2016-12-16 12:29:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-19 16:50:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-10 18:29:46 +01:00
|
|
|
|
2017-05-19 16:50:17 -04:00
|
|
|
|
2018-09-10 18:29:46 +01:00
|
|
|
|
2017-05-19 16:50:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-08 14:55:37 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-19 16:50:17 -04:00
|
|
|
|
2020-11-20 09:46:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2010-01-23 10:25:28 +10:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
2021-06-11 18:35:16 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:27 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-22 10:36:19 +02:00
|
|
|
|
2013-08-27 15:12:13 +03:00
|
|
|
|
2014-05-02 11:09:54 +10:00
|
|
|
|
drm: Add an encoder and connector type enum for DPI.
Right now exynos is exposing DPI as a TMDS encoder and VGA connector,
which seems rather misleading. This isn't just an internal detail,
since xrandr actually exposes "VGA" as the output name. Define some
new enums so that vc4's DPI can have a more informative name.
I considered other names for the connector as well. For VC4, the
Adafruit DPI kippah takes the 28 GPIO pins and routes them to a
standard-ish 40-pin FPC connector, but "40-pin FPC" doesn't uniquely
identify an ordering of pins (apparently some other orderings exist),
doesn't explain things as well for the user (who, if anything, knows
their product is a DPI kippah/panel combo), and actually doesn't have
to exist (one could connect the 28 GPIOs directly to something else).
Simply "DPI" seems like a good compromise name to distinguish from the
HDMI, DSI, and TV connectors .
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-03-18 12:34:59 -07:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-02 14:48:08 +01:00
|
|
|
|
2020-04-24 18:20:51 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-02 14:48:08 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-02 04:19:18 +02:00
|
|
|
|
2010-01-07 13:47:47 -05:00
|
|
|
|
2011-10-22 10:36:19 +02:00
|
|
|
|
2013-08-27 15:12:13 +03:00
|
|
|
|
drm: Add an encoder and connector type enum for DPI.
Right now exynos is exposing DPI as a TMDS encoder and VGA connector,
which seems rather misleading. This isn't just an internal detail,
since xrandr actually exposes "VGA" as the output name. Define some
new enums so that vc4's DPI can have a more informative name.
I considered other names for the connector as well. For VC4, the
Adafruit DPI kippah takes the 28 GPIO pins and routes them to a
standard-ish 40-pin FPC connector, but "40-pin FPC" doesn't uniquely
identify an ordering of pins (apparently some other orderings exist),
doesn't explain things as well for the user (who, if anything, knows
their product is a DPI kippah/panel combo), and actually doesn't have
to exist (one could connect the 28 GPIOs directly to something else).
Simply "DPI" seems like a good compromise name to distinguish from the
HDMI, DSI, and TV connectors .
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-03-18 12:34:59 -07:00
|
|
|
|
2017-03-29 17:42:32 +01:00
|
|
|
|
2019-07-19 17:59:06 +02:00
|
|
|
|
2021-03-13 12:25:43 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-02 13:22:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2020-11-30 16:26:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-17 13:13:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2013-10-16 09:49:02 +01:00
|
|
|
|
2020-11-20 08:57:33 +00:00
|
|
|
|
2013-10-16 09:49:02 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2018-03-06 18:48:47 +02:00
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-17 02:23:26 -06:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2014-05-30 11:34:01 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-05-30 11:37:03 -04:00
|
|
|
|
2012-09-12 22:22:31 -05:00
|
|
|
|
2014-05-30 11:34:01 -04:00
|
|
|
|
2014-12-18 16:01:50 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-12 20:41:07 -08:00
|
|
|
|
2014-12-18 16:01:50 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2021-08-02 07:28:35 +00:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2016-03-30 16:19:44 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-15 18:09:02 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2011-12-20 00:06:38 +02:00
|
|
|
|
2023-12-12 20:41:07 -08:00
|
|
|
|
2011-11-14 14:51:28 -08:00
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-06 15:20:18 +02:00
|
|
|
|
|
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
2022-07-06 15:20:18 +02:00
|
|
|
|
|
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:28 -08:00
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
2011-11-14 14:51:28 -08:00
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
2015-08-19 19:21:14 -04:00
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:28 -08:00
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:28 -08:00
|
|
|
|
|
|
|
|
|
2022-02-03 13:38:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-14 14:51:28 -08:00
|
|
|
|
|
|
|
|
|
2009-12-03 23:25:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-23 01:12:01 -05:00
|
|
|
|
|
|
|
|
|
2009-12-03 23:25:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-16 08:29:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2011-03-30 22:57:33 -03:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2013-04-05 15:28:32 +00:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2013-04-05 15:28:32 +00:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2013-04-05 15:28:32 +00:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-12-19 14:50:50 +10:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2013-06-20 11:48:52 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2009-02-26 00:51:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|
|
|
|
|
|
2016-02-26 17:05:00 +00:00
|
|
|
|
2018-02-22 23:42:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-12 01:29:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-22 23:42:29 +02:00
|
|
|
|
|
|
|
|
|
2016-02-26 17:05:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-29 10:20:27 +01:00
|
|
|
|
|
|
|
|
|
2016-02-26 17:05:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-18 22:44:07 +02:00
|
|
|
|
|
|
|
|
|
2024-08-11 06:16:51 -04:00
|
|
|
|
|
|
|
|
|
2024-03-18 22:44:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-12 20:41:07 -08:00
|
|
|
|
|
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
|
|
|
|
|
2023-04-28 10:01:24 +00:00
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-12 20:41:07 -08:00
|
|
|
|
|
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
|
|
|
|
|
2023-04-28 10:01:24 +00:00
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
2019-06-04 16:47:02 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 19:40:06 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-17 12:43:55 -05:00
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-22 13:19:39 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
2013-07-22 18:49:59 -07:00
|
|
|
|
2016-08-08 16:23:39 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-08 16:23:39 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-17 12:43:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-22 18:49:59 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-17 12:43:55 -05:00
|
|
|
|
2016-08-08 16:23:39 +09:00
|
|
|
|
2009-11-17 12:43:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-08 16:23:39 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-21 13:15:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-07 12:16:14 +10:00
|
|
|
|
2014-08-31 13:01:09 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-21 13:15:56 +00:00
|
|
|
|
2014-08-31 13:01:09 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-02-07 12:16:14 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-31 13:01:09 +02:00
|
|
|
|
2011-02-07 12:16:14 +10:00
|
|
|
|
|
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-18 16:01:56 -05:00
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-18 16:01:56 -05:00
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-18 16:01:56 -05:00
|
|
|
|
|
|
|
|
|
2022-08-24 19:43:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-12-18 16:01:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
2017-08-24 16:08:14 +01:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-31 16:52:14 -03:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
2017-08-31 16:52:14 -03:00
|
|
|
|
2017-07-23 20:46:39 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
2021-03-02 20:44:27 +02:00
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 01:29:03 +05:30
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
2020-11-04 17:01:40 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-22 13:34:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
2019-05-30 01:29:03 +05:30
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
2021-09-03 13:00:16 +00:00
|
|
|
|
|
|
|
|
|
drm/lease: allow empty leases
This can be used to create a separate DRM file description, thus
creating a new GEM handle namespace.
My use-case is wlroots. The library splits responsibilities between
separate components: the GBM allocator creates buffers, the GLES2
renderer uses EGL to import them and render to them, the DRM
backend imports the buffers and displays them. wlroots has a
modular architecture, and any of these components can be swapped
and replaced with something else. For instance, the pipeline can
be set up so that the DRM dumb buffer allocator is used instead of
GBM and the Pixman renderer is used instead of GLES2. Library users
can also replace any of these components with their own custom one.
DMA-BUFs are used to pass buffer references across components. We
could use GEM handles instead, but this would result in pain if
multiple GPUs are in use: wlroots copies buffers across GPUs as
needed. Importing a GEM handle created on one GPU into a completely
different GPU will blow up (fail at best, mix unrelated buffers
otherwise).
Everything is fine if all components use Mesa. However, this isn't
always desirable. For instance when running with DRM dumb buffers
and the Pixman software renderer it's unfortunate to depend on GBM
in the DRM backend just to turn DMA-BUFs into FB IDs. GBM loads
Mesa drivers to perform an action which has nothing driver-specific.
Additionally, drivers will fail the import if the 3D engine can't
use the imported buffer, for instance amdgpu will refuse to import
DRM dumb buffers [1]. We might also want to be running with a Vulkan
renderer and a Vulkan allocator in the future, and GBM wouldn't be
welcome in this setup.
To address this, GBM can be side-stepped in the DRM backend, and
can be replaced with drmPrimeFDToHandle calls. However because of
GEM handle reference counting issues, care must be taken to avoid
double-closing the same GEM handle. In particular, it's not
possible to share a DRM FD with GBM or EGL and perform some
drmPrimeFDToHandle calls manually.
So wlroots needs to re-open the DRM FD to create a new GEM handle
namespace. However there's no guarantee that the file-system
permissions will be set up so that the primary FD can be opened
by the compsoitor. On modern systems seatd or logind is a privileged
process responsible for doing this, and other processes aren't
expected to do it. For historical reasons systemd still allows
physically logged in users to open primary DRM nodes, but this
doesn't work on non-systemd setups and it's desirable to lock
them down at some point.
Some might suggest to open the render node instead of re-opening
the primary node. However some systems don't have a render node
at all (e.g. no GPU, or a split render/display SoC).
Solutions to this issue have been discussed in [2]. One solution
would be to open the magic /proc/self/fd/<fd> file, but it's a
Linux-specific hack (wlroots supports BSDs too). Another solution
is to add support for re-opening a DRM primary node to seatd/logind,
but they don't support it now and really haven't been designed for
this (logind would need to grow a completely new API, because it
assumes unique dev_t IDs). Also this seems like pushing down a
kernel limitation to user-space a bit too hard.
Another solution is to allow creating empty DRM leases. The lessee
FD would have its own GEM handle namespace, so wouldn't conflict
wth GBM/EGL. It would have the master bit set, but would be able
to manage zero resources. wlroots doesn't intend to share this FD
with any other process.
All in all IMHO that seems like a pretty reasonable solution to the
issue at hand.
Note, I've discussed with Jonas Ådahl and Mutter plans to adopt a
similar design in the future.
Example usage in wlroots is available at [3]. IGT test available
at [4].
[1]: https://github.com/swaywm/wlroots/issues/2916
[2]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/110
[3]: https://github.com/swaywm/wlroots/pull/3158
[4]: https://patchwork.freedesktop.org/series/94323/
Signed-off-by: Simon Ser <contact@emersion.fr>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Cc: Michel Dänzer <michel@daenzer.net>
Cc: Emil Velikov <emil.l.velikov@gmail.com>
Cc: Keith Packard <keithp@keithp.com>
Cc: Boris Brezillon <boris.brezillon@collabora.com>
Cc: Dave Airlie <airlied@redhat.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210903130000.1590-2-contact@emersion.fr
2021-09-03 13:00:32 +00:00
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 01:29:03 +05:30
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 01:29:03 +05:30
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 01:29:03 +05:30
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 10:03:20 +00:00
|
|
|
|
2017-03-16 17:56:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-05-23 19:04:08 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-20 10:19:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-07 18:49:00 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-07 14:05:41 -08:00
|
|
|
|