Lines Matching refs:client

35 int drm_client_modeset_create(struct drm_client_dev *client)
37 struct drm_device *dev = client->dev;
45 client->modesets = kcalloc(num_crtc + 1, sizeof(*client->modesets), GFP_KERNEL);
46 if (!client->modesets)
49 mutex_init(&client->modeset_mutex);
52 client->modesets[i++].crtc = crtc;
58 for (modeset = client->modesets; modeset->crtc; modeset++) {
68 drm_client_modeset_free(client);
73 static void drm_client_modeset_release(struct drm_client_dev *client)
78 drm_client_for_each_modeset(modeset, client) {
79 drm_mode_destroy(client->dev, modeset->mode);
91 void drm_client_modeset_free(struct drm_client_dev *client)
95 mutex_lock(&client->modeset_mutex);
97 drm_client_modeset_release(client);
99 drm_client_for_each_modeset(modeset, client)
102 mutex_unlock(&client->modeset_mutex);
104 mutex_destroy(&client->modeset_mutex);
105 kfree(client->modesets);
109 drm_client_find_modeset(struct drm_client_dev *client, struct drm_crtc *crtc)
113 drm_client_for_each_modeset(modeset, client)
500 static int drm_client_pick_crtcs(struct drm_client_dev *client,
507 struct drm_device *dev = client->dev;
520 best_score = drm_client_pick_crtcs(client, connectors, connector_count,
541 drm_client_for_each_modeset(modeset, client) {
562 score = my_score + drm_client_pick_crtcs(client, connectors, connector_count,
575 static bool drm_client_firmware_config(struct drm_client_dev *client,
585 struct drm_device *dev = client->dev;
773 * @client: DRM client
778 * config in the client's modeset array.
783 int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int height)
787 struct drm_device *dev = client->dev;
832 mutex_lock(&client->modeset_mutex);
841 if (!drm_client_firmware_config(client, connectors, connector_count, crtcs,
856 drm_client_pick_crtcs(client, connectors, connector_count,
860 drm_client_modeset_release(client);
868 struct drm_mode_set *modeset = drm_client_find_modeset(client, crtc);
891 mutex_unlock(&client->modeset_mutex);
993 static int drm_client_modeset_commit_atomic(struct drm_client_dev *client, bool active, bool check)
995 struct drm_device *dev = client->dev;
1032 drm_client_for_each_modeset(mode_set, client) {
1083 static int drm_client_modeset_commit_legacy(struct drm_client_dev *client)
1085 struct drm_device *dev = client->dev;
1101 drm_client_for_each_modeset(mode_set, client) {
1126 * @client: DRM client
1133 int drm_client_modeset_check(struct drm_client_dev *client)
1137 if (!drm_drv_uses_atomic_modeset(client->dev))
1140 mutex_lock(&client->modeset_mutex);
1141 ret = drm_client_modeset_commit_atomic(client, true, true);
1142 mutex_unlock(&client->modeset_mutex);
1150 * @client: DRM client
1159 int drm_client_modeset_commit_locked(struct drm_client_dev *client)
1161 struct drm_device *dev = client->dev;
1164 mutex_lock(&client->modeset_mutex);
1166 ret = drm_client_modeset_commit_atomic(client, true, false);
1168 ret = drm_client_modeset_commit_legacy(client);
1169 mutex_unlock(&client->modeset_mutex);
1177 * @client: DRM client
1184 int drm_client_modeset_commit(struct drm_client_dev *client)
1186 struct drm_device *dev = client->dev;
1192 ret = drm_client_modeset_commit_locked(client);
1200 static void drm_client_modeset_dpms_legacy(struct drm_client_dev *client, int dpms_mode)
1202 struct drm_device *dev = client->dev;
1210 drm_client_for_each_modeset(modeset, client) {
1226 * @client: DRM client
1234 int drm_client_modeset_dpms(struct drm_client_dev *client, int mode)
1236 struct drm_device *dev = client->dev;
1242 mutex_lock(&client->modeset_mutex);
1244 ret = drm_client_modeset_commit_atomic(client, mode == DRM_MODE_DPMS_ON, false);
1246 drm_client_modeset_dpms_legacy(client, mode);
1247 mutex_unlock(&client->modeset_mutex);