cregit-Linux how code gets into the kernel

Release 4.11 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

PersonTokensPropCommitsCommitProp
Inki Dae33100.00%2100.00%
Total33100.00%2100.00%


int exynos_drm_subdrv_unregister(struct exynos_drm_subdrv *subdrv) { if (!subdrv) return -EINVAL; list_del(&subdrv->list); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Inki Dae30100.00%2100.00%
Total30100.00%2100.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

PersonTokensPropCommitsCommitProp
Inki Dae7681.72%375.00%
Sean Paul1718.28%125.00%
Total93100.00%4100.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

PersonTokensPropCommitsCommitProp
Inki Dae4469.84%360.00%
Sean Paul1828.57%120.00%
Joonyoung Shim11.59%120.00%
Total63100.00%5100.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

PersonTokensPropCommitsCommitProp
Joonyoung Shim9898.00%150.00%
Arnd Bergmann22.00%150.00%
Total100100.00%2100.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

PersonTokensPropCommitsCommitProp
Joonyoung Shim49100.00%1100.00%
Total49100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Inki Dae19751.30%444.44%
Joonyoung Shim14838.54%222.22%
Sean Paul369.38%111.11%
Arnd Bergmann20.52%111.11%
David Howells10.26%111.11%
Total384100.00%9100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.