Release 4.7 drivers/gpu/drm/exynos/exynos_drm_core.c
  
  
/* exynos_drm_core.c
 *
 * Copyright (c) 2011 Samsung Electronics Co., Ltd.
 * Author:
 *      Inki Dae <inki.dae@samsung.com>
 *      Joonyoung Shim <jy0922.shim@samsung.com>
 *      Seung-Woo Kim <sw0312.kim@samsung.com>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */
#include <drm/drmP.h>
#include "exynos_drm_drv.h"
#include "exynos_drm_crtc.h"
static LIST_HEAD(exynos_drm_subdrv_list);
int exynos_drm_subdrv_register(struct exynos_drm_subdrv *subdrv)
{
	if (!subdrv)
		return -EINVAL;
	list_add_tail(&subdrv->list, &exynos_drm_subdrv_list);
	return 0;
}
Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| inki dae | inki dae | 33 | 100.00% | 2 | 100.00% | 
 | Total | 33 | 100.00% | 2 | 100.00% | 
int exynos_drm_subdrv_unregister(struct exynos_drm_subdrv *subdrv)
{
	if (!subdrv)
		return -EINVAL;
	list_del(&subdrv->list);
	return 0;
}
Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| inki dae | inki dae | 30 | 100.00% | 2 | 100.00% | 
 | Total | 30 | 100.00% | 2 | 100.00% | 
int exynos_drm_device_subdrv_probe(struct drm_device *dev)
{
	struct exynos_drm_subdrv *subdrv, *n;
	int err;
	if (!dev)
		return -EINVAL;
	list_for_each_entry_safe(subdrv, n, &exynos_drm_subdrv_list, list) {
		if (subdrv->probe) {
			subdrv->drm_dev = dev;
			/*
                         * this probe callback would be called by sub driver
                         * after setting of all resources to this sub driver,
                         * such as clock, irq and register map are done.
                         */
			err = subdrv->probe(dev, subdrv->dev);
			if (err) {
				DRM_DEBUG("exynos drm subdrv probe failed.\n");
				list_del(&subdrv->list);
				continue;
			}
		}
	}
	return 0;
}
Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| inki dae | inki dae | 76 | 81.72% | 3 | 75.00% | 
| sean paul | sean paul | 17 | 18.28% | 1 | 25.00% | 
 | Total | 93 | 100.00% | 4 | 100.00% | 
int exynos_drm_device_subdrv_remove(struct drm_device *dev)
{
	struct exynos_drm_subdrv *subdrv;
	if (!dev) {
		WARN(1, "Unexpected drm device unregister!\n");
		return -EINVAL;
	}
	list_for_each_entry(subdrv, &exynos_drm_subdrv_list, list) {
		if (subdrv->remove)
			subdrv->remove(dev, subdrv->dev);
	}
	return 0;
}
Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| inki dae | inki dae | 44 | 69.84% | 3 | 60.00% | 
| sean paul | sean paul | 18 | 28.57% | 1 | 20.00% | 
| joonyoung shim | joonyoung shim | 1 | 1.59% | 1 | 20.00% | 
 | Total | 63 | 100.00% | 5 | 100.00% | 
int exynos_drm_subdrv_open(struct drm_device *dev, struct drm_file *file)
{
	struct exynos_drm_subdrv *subdrv;
	int ret;
	list_for_each_entry(subdrv, &exynos_drm_subdrv_list, list) {
		if (subdrv->open) {
			ret = subdrv->open(dev, subdrv->dev, file);
			if (ret)
				goto err;
		}
	}
	return 0;
err:
	list_for_each_entry_continue_reverse(subdrv, &exynos_drm_subdrv_list, list) {
		if (subdrv->close)
			subdrv->close(dev, subdrv->dev, file);
	}
	return ret;
}
Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| joonyoung shim | joonyoung shim | 98 | 98.00% | 1 | 50.00% | 
| arnd bergmann | arnd bergmann | 2 | 2.00% | 1 | 50.00% | 
 | Total | 100 | 100.00% | 2 | 100.00% | 
void exynos_drm_subdrv_close(struct drm_device *dev, struct drm_file *file)
{
	struct exynos_drm_subdrv *subdrv;
	list_for_each_entry(subdrv, &exynos_drm_subdrv_list, list) {
		if (subdrv->close)
			subdrv->close(dev, subdrv->dev, file);
	}
}
Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| joonyoung shim | joonyoung shim | 49 | 100.00% | 1 | 100.00% | 
 | Total | 49 | 100.00% | 1 | 100.00% | 
Overall Contributors
 | Person | Tokens | Prop | Commits | CommitProp | 
| inki dae | inki dae | 197 | 51.30% | 4 | 44.44% | 
| joonyoung shim | joonyoung shim | 148 | 38.54% | 2 | 22.22% | 
| sean paul | sean paul | 36 | 9.38% | 1 | 11.11% | 
| arnd bergmann | arnd bergmann | 2 | 0.52% | 1 | 11.11% | 
| david howells | david howells | 1 | 0.26% | 1 | 11.11% | 
 | Total | 384 | 100.00% | 9 | 100.00% | 
  
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.