Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 371619
b: refs/heads/master
c: 43f4190
h: refs/heads/master
i:
  371617: df21c11
  371615: 87644be
v: v3
  • Loading branch information
Seung-Woo Kim authored and Inki Dae committed Apr 29, 2013
1 parent 9c1dec2 commit 368543c
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0f6f95922e4def60b9e55cecc1fdbaacda9c426d
refs/heads/master: 43f4190047a088d2f1ce7fe5c5ae6485f943edc6
7 changes: 7 additions & 0 deletions trunk/drivers/gpu/drm/exynos/exynos_drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,10 @@ static int __init exynos_drm_init(void)
ret = platform_driver_register(&ipp_driver);
if (ret < 0)
goto out_ipp;

ret = exynos_platform_device_ipp_register();
if (ret < 0)
goto out_ipp_dev;
#endif

ret = platform_driver_register(&exynos_drm_platform_driver);
Expand All @@ -400,6 +404,8 @@ static int __init exynos_drm_init(void)

out_drm:
#ifdef CONFIG_DRM_EXYNOS_IPP
exynos_platform_device_ipp_unregister();
out_ipp_dev:
platform_driver_unregister(&ipp_driver);
out_ipp:
#endif
Expand Down Expand Up @@ -456,6 +462,7 @@ static void __exit exynos_drm_exit(void)
platform_driver_unregister(&exynos_drm_platform_driver);

#ifdef CONFIG_DRM_EXYNOS_IPP
exynos_platform_device_ipp_unregister();
platform_driver_unregister(&ipp_driver);
#endif

Expand Down
10 changes: 10 additions & 0 deletions trunk/drivers/gpu/drm/exynos/exynos_drm_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,16 @@ int exynos_platform_device_hdmi_register(void);
*/
void exynos_platform_device_hdmi_unregister(void);

/*
* this function registers exynos drm ipp platform device.
*/
int exynos_platform_device_ipp_register(void);

/*
* this function unregisters exynos drm ipp platform device if it exists.
*/
void exynos_platform_device_ipp_unregister(void);

extern struct platform_driver fimd_driver;
extern struct platform_driver hdmi_driver;
extern struct platform_driver mixer_driver;
Expand Down
27 changes: 27 additions & 0 deletions trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
#define get_ipp_context(dev) platform_get_drvdata(to_platform_device(dev))
#define ipp_is_m2m_cmd(c) (c == IPP_CMD_M2M)

/* platform device pointer for ipp device. */
static struct platform_device *exynos_drm_ipp_pdev;

/*
* A structure of event.
*
Expand Down Expand Up @@ -102,6 +105,30 @@ static LIST_HEAD(exynos_drm_ippdrv_list);
static DEFINE_MUTEX(exynos_drm_ippdrv_lock);
static BLOCKING_NOTIFIER_HEAD(exynos_drm_ippnb_list);

int exynos_platform_device_ipp_register(void)
{
struct platform_device *pdev;

if (exynos_drm_ipp_pdev)
return -EEXIST;

pdev = platform_device_register_simple("exynos-drm-ipp", -1, NULL, 0);
if (IS_ERR(pdev))
return PTR_ERR(pdev);

exynos_drm_ipp_pdev = pdev;

return 0;
}

void exynos_platform_device_ipp_unregister(void)
{
if (exynos_drm_ipp_pdev) {
platform_device_unregister(exynos_drm_ipp_pdev);
exynos_drm_ipp_pdev = NULL;
}
}

int exynos_drm_ippdrv_register(struct exynos_drm_ippdrv *ippdrv)
{
DRM_DEBUG_KMS("%s\n", __func__);
Expand Down

0 comments on commit 368543c

Please sign in to comment.