Пример #1
0
static void hdmi_subdrv_remove(struct drm_device *drm_dev, struct device *dev)
{
    struct drm_hdmi_context *ctx;
    struct exynos_drm_subdrv *subdrv = to_subdrv(dev);

    ctx = get_ctx_from_subdrv(subdrv);

    if (mixer_ops->iommu_on)
        mixer_ops->iommu_on(ctx->mixer_ctx->ctx, false);
}
Пример #2
0
static int hdmi_subdrv_probe(struct drm_device *drm_dev,
		struct device *dev)
{
	struct exynos_drm_subdrv *subdrv = to_subdrv(dev);
	struct drm_hdmi_context *ctx;
	struct platform_device *pdev = to_platform_device(dev);
	struct exynos_drm_common_hdmi_pd *pd;

	DRM_DEBUG_KMS("%s\n", __FILE__);

	pd = pdev->dev.platform_data;

	if (!pd) {
		DRM_DEBUG_KMS("platform data is null.\n");
		return -EFAULT;
	}

	if (!pd->hdmi_dev) {
		DRM_DEBUG_KMS("hdmi device is null.\n");
		return -EFAULT;
	}

	if (!pd->mixer_dev) {
		DRM_DEBUG_KMS("mixer device is null.\n");
		return -EFAULT;
	}

	ctx = get_ctx_from_subdrv(subdrv);

	ctx->hdmi_ctx = (struct exynos_drm_hdmi_context *)
				to_context(pd->hdmi_dev);
	if (!ctx->hdmi_ctx) {
		DRM_DEBUG_KMS("hdmi context is null.\n");
		return -EFAULT;
	}

	ctx->hdmi_ctx->drm_dev = drm_dev;

	ctx->mixer_ctx = (struct exynos_drm_hdmi_context *)
				to_context(pd->mixer_dev);
	if (!ctx->mixer_ctx) {
		DRM_DEBUG_KMS("mixer context is null.\n");
		return -EFAULT;
	}

	ctx->mixer_ctx->drm_dev = drm_dev;

	return 0;
}
Пример #3
0
static int hdmi_subdrv_probe(struct drm_device *drm_dev,
                             struct device *dev)
{
    struct exynos_drm_subdrv *subdrv = to_subdrv(dev);
    struct drm_hdmi_context *ctx;

    DRM_DEBUG_KMS("%s\n", __FILE__);

    if (!hdmi_ctx) {
        DRM_ERROR("hdmi context not initialized.\n");
        return -EFAULT;
    }

    if (!mixer_ctx) {
        DRM_ERROR("mixer context not initialized.\n");
        return -EFAULT;
    }

    ctx = get_ctx_from_subdrv(subdrv);

    if (!ctx) {
        DRM_ERROR("no drm hdmi context.\n");
        return -EFAULT;
    }

    ctx->hdmi_ctx = hdmi_ctx;
    ctx->mixer_ctx = mixer_ctx;

    ctx->hdmi_ctx->drm_dev = drm_dev;
    ctx->mixer_ctx->drm_dev = drm_dev;

    if (mixer_ops->iommu_on)
        mixer_ops->iommu_on(ctx->mixer_ctx->ctx, true);

    return 0;
}