Messages in this thread | | | Date | Mon, 1 Jul 2019 00:23:39 -0300 | From | Rodrigo Siqueira <> | Subject | [PATCH 0/2] drm/vkms: Introduce basic support for configfs |
| |
This patchset introduces the support for configfs in vkms by adding a primary structure for handling the vkms subsystem and exposing connectors as a use case. This series allows enabling/disabling virtual and writeback connectors on the fly. The first patch of this series reworks the initialization and cleanup code of each type of connector, with this change, the second patch adds the configfs support for vkms. It is important to highlight that this patchset depends on https://patchwork.freedesktop.org/series/61738/.
After applying this series, the user can utilize these features with the following steps:
1. Load vkms without parameter
modprobe vkms
2. Mount a configfs filesystem
mount -t configfs none /mnt/
After that, the vkms subsystem will look like this:
vkms/ |__connectors |__Virtual |__ enable
The connectors directories have information related to connectors, and as can be seen, the virtual connector is enabled by default. Inside a connector directory (e.g., Virtual) has an attribute named ‘enable’ which is used to enable and disable the target connector. For example, the Virtual connector has the enable attribute set to 1. If the user wants to enable the writeback connector it is required to use the mkdir command, as follows:
cd /mnt/vkms/connectors mkdir Writeback
After the above command, the writeback connector will be enabled, and the user could see the following tree:
vkms/ |__connectors |__Virtual | |__ enable |__Writeback |__ enable
If the user wants to remove the writeback connector, it is required to use the command rmdir, for example
rmdir Writeback
Another way to enable and disable a connector it is by using the enable attribute, for example, we can disable the Virtual connector with:
echo 0 > /mnt/vkms/connectors/Virtual/enable
And enable it again with:
echo 1 > /mnt/vkms/connectors/Virtual/enable
It is important to highlight that configfs 'obey' the parameters used during the vkms load and does not allow users to remove a connector directory if it was load via module parameter. For example:
modprobe vkms enable_writeback=1
vkms/ |__connectors |__Virtual | |__ enable |__Writeback |__ enable
If the user tries to remove the Writeback connector with “rmdir Writeback”, the operation will be not permitted because the Writeback connector was loaded with the modules. However, the user may disable the writeback connector with:
echo 0 > /mnt/vkms/connectors/Writeback/enable
Rodrigo Siqueira (2): drm/vkms: Add enable/disable functions per connector drm/vkms: Introduce configfs for enabling/disabling connectors
drivers/gpu/drm/vkms/Makefile | 3 +- drivers/gpu/drm/vkms/vkms_configfs.c | 229 ++++++++++++++++++++++++++ drivers/gpu/drm/vkms/vkms_drv.c | 6 + drivers/gpu/drm/vkms/vkms_drv.h | 17 ++ drivers/gpu/drm/vkms/vkms_output.c | 84 ++++++---- drivers/gpu/drm/vkms/vkms_writeback.c | 31 +++- 6 files changed, 332 insertions(+), 38 deletions(-) create mode 100644 drivers/gpu/drm/vkms/vkms_configfs.c
-- 2.21.0
-- Rodrigo Siqueira https://siqueira.tech
| |