]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/omapdrm/omap_irq.c
Merge tag 'staging-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[linux.git] / drivers / gpu / drm / omapdrm / omap_irq.c
index 53ba424823b2abc02c082a49752db8b17a530fb7..c85115049f86642474f66e9c4430c744e238db23 100644 (file)
@@ -20,7 +20,7 @@
 struct omap_irq_wait {
        struct list_head node;
        wait_queue_head_t wq;
-       uint32_t irqmask;
+       u32 irqmask;
        int count;
 };
 
@@ -29,7 +29,7 @@ static void omap_irq_update(struct drm_device *dev)
 {
        struct omap_drm_private *priv = dev->dev_private;
        struct omap_irq_wait *wait;
-       uint32_t irqmask = priv->irq_mask;
+       u32 irqmask = priv->irq_mask;
 
        assert_spin_locked(&priv->wait_lock);
 
@@ -38,7 +38,7 @@ static void omap_irq_update(struct drm_device *dev)
 
        DBG("irqmask=%08x", irqmask);
 
-       priv->dispc_ops->write_irqenable(irqmask);
+       priv->dispc_ops->write_irqenable(priv->dispc, irqmask);
 }
 
 static void omap_irq_wait_handler(struct omap_irq_wait *wait)
@@ -48,7 +48,7 @@ static void omap_irq_wait_handler(struct omap_irq_wait *wait)
 }
 
 struct omap_irq_wait * omap_irq_wait_init(struct drm_device *dev,
-               uint32_t irqmask, int count)
+               u32 irqmask, int count)
 {
        struct omap_drm_private *priv = dev->dev_private;
        struct omap_irq_wait *wait = kzalloc(sizeof(*wait), GFP_KERNEL);
@@ -108,7 +108,8 @@ int omap_irq_enable_vblank(struct drm_crtc *crtc)
        DBG("dev=%p, crtc=%u", dev, channel);
 
        spin_lock_irqsave(&priv->wait_lock, flags);
-       priv->irq_mask |= priv->dispc_ops->mgr_get_vsync_irq(channel);
+       priv->irq_mask |= priv->dispc_ops->mgr_get_vsync_irq(priv->dispc,
+                                                            channel);
        omap_irq_update(dev);
        spin_unlock_irqrestore(&priv->wait_lock, flags);
 
@@ -134,7 +135,8 @@ void omap_irq_disable_vblank(struct drm_crtc *crtc)
        DBG("dev=%p, crtc=%u", dev, channel);
 
        spin_lock_irqsave(&priv->wait_lock, flags);
-       priv->irq_mask &= ~priv->dispc_ops->mgr_get_vsync_irq(channel);
+       priv->irq_mask &= ~priv->dispc_ops->mgr_get_vsync_irq(priv->dispc,
+                                                             channel);
        omap_irq_update(dev);
        spin_unlock_irqrestore(&priv->wait_lock, flags);
 }
@@ -198,9 +200,9 @@ static irqreturn_t omap_irq_handler(int irq, void *arg)
        unsigned int id;
        u32 irqstatus;
 
-       irqstatus = priv->dispc_ops->read_irqstatus();
-       priv->dispc_ops->clear_irqstatus(irqstatus);
-       priv->dispc_ops->read_irqstatus();        /* flush posted write */
+       irqstatus = priv->dispc_ops->read_irqstatus(priv->dispc);
+       priv->dispc_ops->clear_irqstatus(priv->dispc, irqstatus);
+       priv->dispc_ops->read_irqstatus(priv->dispc);   /* flush posted write */
 
        VERB("irqs: %08x", irqstatus);
 
@@ -208,12 +210,12 @@ static irqreturn_t omap_irq_handler(int irq, void *arg)
                struct drm_crtc *crtc = priv->crtcs[id];
                enum omap_channel channel = omap_crtc_channel(crtc);
 
-               if (irqstatus & priv->dispc_ops->mgr_get_vsync_irq(channel)) {
+               if (irqstatus & priv->dispc_ops->mgr_get_vsync_irq(priv->dispc, channel)) {
                        drm_handle_vblank(dev, id);
                        omap_crtc_vblank_irq(crtc);
                }
 
-               if (irqstatus & priv->dispc_ops->mgr_get_sync_lost_irq(channel))
+               if (irqstatus & priv->dispc_ops->mgr_get_sync_lost_irq(priv->dispc, channel))
                        omap_crtc_error_irq(crtc, irqstatus);
        }
 
@@ -247,7 +249,7 @@ static const u32 omap_underflow_irqs[] = {
 int omap_drm_irq_install(struct drm_device *dev)
 {
        struct omap_drm_private *priv = dev->dev_private;
-       unsigned int num_mgrs = priv->dispc_ops->get_num_mgrs();
+       unsigned int num_mgrs = priv->dispc_ops->get_num_mgrs(priv->dispc);
        unsigned int max_planes;
        unsigned int i;
        int ret;
@@ -265,13 +267,13 @@ int omap_drm_irq_install(struct drm_device *dev)
        }
 
        for (i = 0; i < num_mgrs; ++i)
-               priv->irq_mask |= priv->dispc_ops->mgr_get_sync_lost_irq(i);
+               priv->irq_mask |= priv->dispc_ops->mgr_get_sync_lost_irq(priv->dispc, i);
 
-       priv->dispc_ops->runtime_get();
-       priv->dispc_ops->clear_irqstatus(0xffffffff);
-       priv->dispc_ops->runtime_put();
+       priv->dispc_ops->runtime_get(priv->dispc);
+       priv->dispc_ops->clear_irqstatus(priv->dispc, 0xffffffff);
+       priv->dispc_ops->runtime_put(priv->dispc);
 
-       ret = priv->dispc_ops->request_irq(omap_irq_handler, dev);
+       ret = priv->dispc_ops->request_irq(priv->dispc, omap_irq_handler, dev);
        if (ret < 0)
                return ret;
 
@@ -289,5 +291,5 @@ void omap_drm_irq_uninstall(struct drm_device *dev)
 
        dev->irq_enabled = false;
 
-       priv->dispc_ops->free_irq(dev);
+       priv->dispc_ops->free_irq(priv->dispc, dev);
 }
This page took 0.039091 seconds and 4 git commands to generate.