Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5037f8ac authored by Joonyoung Shim's avatar Joonyoung Shim Committed by Dave Airlie
Browse files

drm: Add NULL check about irq functions



The struct drm_driver has some function pointers for irq. They are
gpu specific and some functions aren't essential things. This can
prevents creation of unnecessary dummy function for irq.

Signed-off-by: default avatarJoonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent e1c44acc
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -291,10 +291,13 @@ static void drm_irq_vgaarb_nokms(void *cookie, bool state)
	if (!dev->irq_enabled)
		return;

	if (state)
	if (state) {
		if (dev->driver->irq_uninstall)
			dev->driver->irq_uninstall(dev);
	else {
	} else {
		if (dev->driver->irq_preinstall)
			dev->driver->irq_preinstall(dev);
		if (dev->driver->irq_postinstall)
			dev->driver->irq_postinstall(dev);
	}
}
@@ -338,6 +341,7 @@ int drm_irq_install(struct drm_device *dev)
	DRM_DEBUG("irq=%d\n", drm_dev_to_irq(dev));

	/* Before installing handler */
	if (dev->driver->irq_preinstall)
		dev->driver->irq_preinstall(dev);

	/* Install handler */
@@ -363,7 +367,9 @@ int drm_irq_install(struct drm_device *dev)
		vga_client_register(dev->pdev, (void *)dev, drm_irq_vgaarb_nokms, NULL);

	/* After installing handler */
	if (dev->driver->irq_postinstall)
		ret = dev->driver->irq_postinstall(dev);

	if (ret < 0) {
		mutex_lock(&dev->struct_mutex);
		dev->irq_enabled = 0;
@@ -416,6 +422,7 @@ int drm_irq_uninstall(struct drm_device *dev)
	if (!drm_core_check_feature(dev, DRIVER_MODESET))
		vga_client_register(dev->pdev, NULL, NULL, NULL);

	if (dev->driver->irq_uninstall)
		dev->driver->irq_uninstall(dev);

	free_irq(drm_dev_to_irq(dev), dev);