summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-06-08Add systemd notify supportneedlefish_13.93.0needlefish/13.93.013.93.0Naoto Yamaguchi4-6/+29
The drm-lease-manager create unix domain socket file to provide lease to lease client. In typical case, this file must be create before client boot up. But existing drm-lease-manager couldn't keep that sequence because that support startup ordering only using systemd service dependency. This patch add systemd notify support to realize more strictly ordaining. Bug-AGL: SPEC-4427 Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> Change-Id: Icaad6c9df0696a48b9534c7586be7949a874f9a5
2022-04-20Add plane setting to connector configurationDamian Hobson-Garcia5-9/+188
Provide a setting to override the default DRM plane alloction for each connector in a lease. DRM planes that are compatible with multiple CRTCs/ connectors can now be assigned to a lease by explicity setting the connector that they belong to in the configuration file. This can also be used to restrict the planes that are available to a given connector. Bug-AGL: SPEC-3815 Change-Id: If4168fc3081213c4ed1df09755cadf042c68d9a3 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-20Add 'optional' property to connector configurationDamian Hobson-Garcia3-5/+36
All connectors will default to mandatory. i.e. if any specified connector is in the lease configuration is not available, that lease will not be created. Setting a connector as 'optional' lets the lease creation succeed even if the connector is not physically present on the system. Failing to create a lease does not affect the creation of other leases. The drm-lease-manager daemon will run as long as one lease is successfully created. Bug-AGL: SPEC-3815 Change-Id: I5edf8a97a2a3589e8eb5368c0a5b13adb4cb5c9b Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-20Refactor connector in lease configDamian Hobson-Garcia5-26/+37
A connector within a lease configuration can have more attributes than just a name. Refactor it into a connector configuation that can store additional properties. Bug-AGL: SPEC-3815 Change-Id: Ied4c767bba914eb64b9e82c600e10162d0232c65 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-20Default to first modesettable DRM deviceDamian Hobson-Garcia3-5/+30
When no DRM device is specified on the command line, try all available DRM devices until an available modesettable device is found. Bug-AGL: SPEC-3815 Change-Id: I72343558fcda755a63aee549767ccc8c00c06724 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-20Update README to describe configuration file formatDamian Hobson-Garcia1-7/+31
Bug-AGL: SPEC-3815 Change-Id: I61d0fdea053ef1bd4f6b78838590636b6ce0ca6c Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-20Add configuration file loading and parsingDamian Hobson-Garcia7-4/+274
Parse the lease configuration information from a configuration file. Each lease configuration takes a name and list of connectors to add to the lease. As long as one connector is found for a given configuration, the lease will be created. Bug-AGL: SPEC-3815 Change-Id: Iec4eaf37fba5db17a22e4945de10a06ac94063e4 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-14Readme: Correct some spelling mistakesduerpei1-3/+3
Bug-AGL:SPEC-4325 Signed-off-by: duerpei <duep.fnst@fujitsu.com> Change-Id: I3a315c9c17a1745554b08f277399564104f37fac
2022-04-13test/lease-manager: Add named lease testsDamian Hobson-Garcia3-4/+97
Add tests for named connectors in lease configurations. Also ensure that the naming convention is not broken when no lease configuration is given. Bug-AGL: SPEC-3815 Change-Id: I1e4c591183a2f0c155bedc6b71a37b37a2b01451 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-13Add connector name optionDamian Hobson-Garcia2-26/+79
Refer to connectors by their human-friendly names in lease configuration. The default 1 connector / lease configuration will continue to use lists of connector_ids to avoid unnecessary string conversions. Connector names take precendence over connector_ids in the configuration. i.e. if connector names are present all connector_id values are ignored. Bug-AGL: SPEC-3815 Change-Id: Idb14c1b6ccc68e327d2d154aac48b44d0c6022a8 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-04Add test cases for multi-connector leaseDamian Hobson-Garcia1-0/+82
Bug-AGL: SPEC-3815 Change-Id: I44fa7045980cafd6dbe8d119ee6aee83ea8f6a17 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-04-04test/drm-lease: Create helper functions to reduce boilerplateDamian Hobson-Garcia3-103/+87
Most of the test cases use very similar setup code to configure the test DRM device and leases. Refactor this out into separate functions to help keep the focus on the relevant parts of each test. The helpers set up a basic DRM device with one 1:1 mapping of encoders, CRTCs, and connectors, with support for planes. Tests that don't adhere to this pattern are likely testing for a specific configuration, so should be open coding their setup. Bug-AGL: SPEC-3815 Change-Id: I0adbed04246ff6af0060692fa4c1e5897b903237 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-03-25Multi connector lease supportDamian Hobson-Garcia3-37/+165
Add support for having multiple connectors / CTRCs in a single lease. The lease manager receives a list of lease configurations that specify the name and list of connectors to include in each lease. All DRM planes that are not shared between muliple CRTS are added for each connector contained in the lease. If the lease manager is initialized without a list of lease configurations it will fall back to the previous 1 connector per lease configuration. Bug-AGL: SPEC-3815 Change-Id: I6699e7c8f426bab9fadbc64fe4ed242a834376bf Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-03-25test/lease-manager: Create dummy fds for fake lease grantsDamian Hobson-Garcia1-2/+2
drmModeCreateLease() should return a new lease fd for every succesful call. Make sure that our dummy implementation does the same. Returning 0 will cause stdout to be closed at the end of each test, which will break the test logging when tests are run without forking (ie. when CK_FORK=no) Bug-AGL: SPEC-3815 Change-Id: I6b9436a962fb25b88576ae1c950c4f6f698e949a Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2022-03-25log: Add line number to debug log outputDamian Hobson-Garcia1-2/+3
Some debug logging, such as memory allocation failure, uses similar log messageing in several places. Add the file line number to the debug log to help differentiate where notable errors occured. Bug-AGL: SPEC-3815 Change-Id: I2151e21533716ea0badbb6303b713e644b544e6d Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2021-07-13Add .gitreview filemarlin_12.93.0marlin_12.92.0marlin_12.91.0marlin_12.90.1marlin/12.93.0marlin/12.92.0marlin/12.91.0marlin/12.90.1koi_11.0.5koi_11.0.3koi/11.0.5koi/11.0.312.93.012.92.012.91.012.90.111.0.511.0.3Jan-Simon Möller1-0/+5
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2021-04-12Don't close invalid or uninitialied fdsmarlin_12.90.0marlin/12.90.0lamprey_11.93.0lamprey_11.92.0lamprey_11.91.0lamprey/11.93.0lamprey/11.92.0lamprey/11.91.0jellyfish_10.0.3jellyfish/10.0.312.90.011.93.011.92.011.91.010.0.3Damian Hobson-Garcia3-9/+14
Avoid calling close() on file descriptors that have not been intialized, (or initialized to 0) and descriptors that are known to be invalid. Closing file descriptors due to handle failing initialization is handled in the intialization code. In the lease-manager, file descriptors can be invalid during normal operation, so validity is tested at shutdown. Bug-AGL: SPEC-3862 Change-Id: I798273195cba297c14c6b97d50c7614164fda7df Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2021-04-06Add option to hold lease on unexpected disconnectDamian Hobson-Garcia5-12/+40
If a client application crashes while owning a lease, the lease will automatically be revoked and all references freed to make it available for another (or the restarted original) client to claim and continue display. This will cause the screen to blank while the lease is unowned. Add an option to revoke the lease, but keep the reference to the lease descriptor, so that the screen does not blank while unowned. This only has effect when a client exits without calling the `dlm_release_lease` function. Otherwise the lease is revoked and the descriptor dereferenced, just as before. Bug-AGL: SPEC-3862 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Change-Id: I3fc2c8fde4118b6e298ba31807fd5fa4766a97dd
2021-04-06Move lease fd send/receive to dlm-protocolDamian Hobson-Garcia5-116/+110
Collect all protocol related functionality in the same place instead of spreading it around across different modules. Bug-AGL: SPEC-3862 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Change-Id: I169a200401e4feaa289d53240a7f5467d6a88bd3
2021-04-06Add lease request and release protocolDamian Hobson-Garcia7-30/+193
Explicitly request / release leases instead of implicitly by opening and closing the connection. This will allow the lease manager to take different action when a client shuts down gracefully vs when it crashes, holding a lease. Bug-AGL: SPEC-3862 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Change-Id: Ibc68bee855ce18e56eb6f57e5ad1743248320013
2021-04-06Free old lease fd reference after transitionDamian Hobson-Garcia3-4/+93
After a lease is tranisitined to a new client, the reference to the previous client's lease fd is no longer needed and should be released. Close the old fd after the new client has either updated the display or its lease is revoked. Bug-AGL: SPEC-3816 Change-Id: I9612913e2960dce94bcfc6a35c0105a5670a453d Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2021-04-06Add support for lease transitionDamian Hobson-Garcia5-2/+64
When enabled allow the ownership of a lease to transition from one client to another. If a request is made for a lease that is already allocated to a client, revoke the lease from the old client and issue a new lease for the same resources to the new client. This allows the ownership of the leased resources to be transferred without the display being closed and the screen blanking. During the tranistion, hold a reference to the old clients lease fd so that the last frame presented by the old client will remain on screen until the new client presents its first frame. Currenly there is no notification or authentication mechanism implemeted for the transition. Any client can request a transition from any other. The only notification that a transfer has happened is that the previous client's DRM API calls will suddenly fail with -ENOENT, since all resources will have been removed. It is up to the client to sensibly handle this condition. Bug-AGL: SPEC-3816 Change-Id: Iaff87e275f909f3b6ef448df39364d6fe62007b1 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2021-04-06lease-server: Allow multiple client connectionsDamian Hobson-Garcia5-136/+144
Allow multiple clients to issue lease requests on a server at the same time. This is necessary to be able to grant or deny leases, not just on a first-come-first-served basis. Future patches will add extra contitions, such as command-line options and lease configuration settings to determine when and how lease requests should be granted. This update changes the behaviour of the lease-server interface so that it reports every client connection request, instead of when a server has accepted a request, so update the test suite to reflect this. Bug-AGL: SPEC-3816 Change-Id: I48cc392dd62a8c06ea74178bc52c627032817203 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2021-03-29lease-server-test: Destroy server on shutdownDamian Hobson-Garcia1-0/+5
libcheck tests normally run each test in a separate process so the server objects will automatically be destroyed after each test. If the test suite is run with CK_FORK=no, for example when debugging the test with gdb, failing to destory the server object will leave the test sockets from the previous test open, which will stop the next test from creating its own sockets. Bug-AGL: SPEC-3816 Change-Id: I42a0976c392bdc19bb60acc78178aac8ee3e14ce Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
2021-02-19Add initial versionDamian Hobson-Garcia40-0/+3775
The initial version implements the basic functionality of the client/server communication and lease management. For now, one lease is created per valid connector (dependent on CRTC availablity). Bug-AGL: SPEC-3729 Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Change-Id: I2b37a892742cc22bdc53a5172c8ad3d8a7bb5e66
2020-12-04Initial empty repositorykoi_11.0.4koi_11.0.0koi_10.93.1koi_10.93.0koi_10.92.0koi_10.91.0koi/11.0.4koi/11.0.0koi/10.93.1koi/10.93.0koi/10.92.0koi/10.91.0jellyfish_10.0.2jellyfish_10.0.1jellyfish/10.0.2jellyfish/10.0.111.0.411.0.010.93.110.93.010.92.010.91.010.0.210.0.1Jan-Simon Moeller0-0/+0