Re: [DPU PATCH 4/6] drm/msm: strip down custom event ioctl's
On Mon, Apr 16, 2018 at 11:22:19AM -0700, Jeykumar Sankaran wrote: > Remove custom ioctl support in SDM845 which allows > user space to register/unregister for hw events. > > Signed-off-by: Jeykumar Sankaran Reviewed-by: Sean Paul > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 218 > +-- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 1 - > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 31 - > drivers/gpu/drm/msm/msm_drv.c| 201 > drivers/gpu/drm/msm/msm_kms.h| 2 - > 5 files changed, 1 insertion(+), 452 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index 8e464fa..387919a 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -39,31 +39,6 @@ > #include "dpu_core_perf.h" > #include "dpu_trace.h" > > -struct dpu_crtc_irq_info { > - struct dpu_irq_callback irq; > - u32 event; > - int (*func)(struct drm_crtc *crtc, bool en, > - struct dpu_irq_callback *irq); > - struct list_head list; > -}; > - > -struct dpu_crtc_custom_events { > - u32 event; > - int (*func)(struct drm_crtc *crtc, bool en, > - struct dpu_irq_callback *irq); > -}; > - > -static int dpu_crtc_power_interrupt_handler(struct drm_crtc *crtc_drm, > - bool en, struct dpu_irq_callback *ad_irq); > -static int dpu_crtc_idle_interrupt_handler(struct drm_crtc *crtc_drm, > - bool en, struct dpu_irq_callback *idle_irq); > - > -static struct dpu_crtc_custom_events custom_events[] = { > - {DRM_EVENT_AD_BACKLIGHT, dpu_cp_ad_interrupt}, > - {DRM_EVENT_CRTC_POWER, dpu_crtc_power_interrupt_handler}, > - {DRM_EVENT_IDLE_NOTIFY, dpu_crtc_idle_interrupt_handler} > -}; > - > /* layer mixer index on dpu_crtc */ > #define LEFT_MIXER 0 > #define RIGHT_MIXER 1 > @@ -2455,9 +2430,6 @@ static void dpu_crtc_handle_power_event(u32 event_type, > void *arg) > struct drm_encoder *encoder; > struct dpu_crtc_mixer *m; > u32 i, misr_status; > - unsigned long flags; > - struct dpu_crtc_irq_info *node = NULL; > - int ret = 0; > > if (!crtc) { > DPU_ERROR("invalid crtc\n"); > @@ -2479,17 +2451,6 @@ static void dpu_crtc_handle_power_event(u32 > event_type, void *arg) > dpu_encoder_virt_restore(encoder); > } > > - spin_lock_irqsave(&dpu_crtc->spin_lock, flags); > - list_for_each_entry(node, &dpu_crtc->user_event_list, list) { > - ret = 0; > - if (node->func) > - ret = node->func(crtc, true, &node->irq); > - if (ret) > - DPU_ERROR("%s failed to enable event %x\n", > - dpu_crtc->name, node->event); > - } > - spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags); > - > dpu_cp_crtc_post_ipc(crtc); > > for (i = 0; i < dpu_crtc->num_mixers; ++i) { > @@ -2514,18 +2475,6 @@ static void dpu_crtc_handle_power_event(u32 > event_type, void *arg) > dpu_crtc->misr_data[i]; > } > > - spin_lock_irqsave(&dpu_crtc->spin_lock, flags); > - node = NULL; > - list_for_each_entry(node, &dpu_crtc->user_event_list, list) { > - ret = 0; > - if (node->func) > - ret = node->func(crtc, false, &node->irq); > - if (ret) > - DPU_ERROR("%s failed to disable event %x\n", > - dpu_crtc->name, node->event); > - } > - spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags); > - > dpu_cp_crtc_pre_ipc(crtc); > break; > case DPU_POWER_EVENT_POST_DISABLE: > @@ -2553,8 +2502,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc) > struct drm_display_mode *mode; > struct drm_encoder *encoder; > struct msm_drm_private *priv; > - unsigned long flags; > - struct dpu_crtc_irq_info *node = NULL; > struct drm_event event; > u32 power_on; > int ret; > @@ -2614,17 +2561,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc) > atomic_set(&dpu_crtc->frame_pending, 0); > } > > - spin_lock_irqsave(&dpu_crtc->spin_lock, flags); > - list_for_each_entry(node, &dpu_crtc->user_event_list, list) { > - ret = 0; > - if (node->func) > - ret = node->func(crtc, false, &node->irq); > - if (ret) > - DPU_ERROR("%s failed to disable event %x\n", > - dpu_crtc->name, node->event); > - } > - spin_unlock_irqrestore(&dpu
[DPU PATCH 4/6] drm/msm: strip down custom event ioctl's
Remove custom ioctl support in SDM845 which allows user space to register/unregister for hw events. Signed-off-by: Jeykumar Sankaran --- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 218 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 1 - drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 31 - drivers/gpu/drm/msm/msm_drv.c| 201 drivers/gpu/drm/msm/msm_kms.h| 2 - 5 files changed, 1 insertion(+), 452 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 8e464fa..387919a 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -39,31 +39,6 @@ #include "dpu_core_perf.h" #include "dpu_trace.h" -struct dpu_crtc_irq_info { - struct dpu_irq_callback irq; - u32 event; - int (*func)(struct drm_crtc *crtc, bool en, - struct dpu_irq_callback *irq); - struct list_head list; -}; - -struct dpu_crtc_custom_events { - u32 event; - int (*func)(struct drm_crtc *crtc, bool en, - struct dpu_irq_callback *irq); -}; - -static int dpu_crtc_power_interrupt_handler(struct drm_crtc *crtc_drm, - bool en, struct dpu_irq_callback *ad_irq); -static int dpu_crtc_idle_interrupt_handler(struct drm_crtc *crtc_drm, - bool en, struct dpu_irq_callback *idle_irq); - -static struct dpu_crtc_custom_events custom_events[] = { - {DRM_EVENT_AD_BACKLIGHT, dpu_cp_ad_interrupt}, - {DRM_EVENT_CRTC_POWER, dpu_crtc_power_interrupt_handler}, - {DRM_EVENT_IDLE_NOTIFY, dpu_crtc_idle_interrupt_handler} -}; - /* layer mixer index on dpu_crtc */ #define LEFT_MIXER 0 #define RIGHT_MIXER 1 @@ -2455,9 +2430,6 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg) struct drm_encoder *encoder; struct dpu_crtc_mixer *m; u32 i, misr_status; - unsigned long flags; - struct dpu_crtc_irq_info *node = NULL; - int ret = 0; if (!crtc) { DPU_ERROR("invalid crtc\n"); @@ -2479,17 +2451,6 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg) dpu_encoder_virt_restore(encoder); } - spin_lock_irqsave(&dpu_crtc->spin_lock, flags); - list_for_each_entry(node, &dpu_crtc->user_event_list, list) { - ret = 0; - if (node->func) - ret = node->func(crtc, true, &node->irq); - if (ret) - DPU_ERROR("%s failed to enable event %x\n", - dpu_crtc->name, node->event); - } - spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags); - dpu_cp_crtc_post_ipc(crtc); for (i = 0; i < dpu_crtc->num_mixers; ++i) { @@ -2514,18 +2475,6 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg) dpu_crtc->misr_data[i]; } - spin_lock_irqsave(&dpu_crtc->spin_lock, flags); - node = NULL; - list_for_each_entry(node, &dpu_crtc->user_event_list, list) { - ret = 0; - if (node->func) - ret = node->func(crtc, false, &node->irq); - if (ret) - DPU_ERROR("%s failed to disable event %x\n", - dpu_crtc->name, node->event); - } - spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags); - dpu_cp_crtc_pre_ipc(crtc); break; case DPU_POWER_EVENT_POST_DISABLE: @@ -2553,8 +2502,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc) struct drm_display_mode *mode; struct drm_encoder *encoder; struct msm_drm_private *priv; - unsigned long flags; - struct dpu_crtc_irq_info *node = NULL; struct drm_event event; u32 power_on; int ret; @@ -2614,17 +2561,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc) atomic_set(&dpu_crtc->frame_pending, 0); } - spin_lock_irqsave(&dpu_crtc->spin_lock, flags); - list_for_each_entry(node, &dpu_crtc->user_event_list, list) { - ret = 0; - if (node->func) - ret = node->func(crtc, false, &node->irq); - if (ret) - DPU_ERROR("%s failed to disable event %x\n", - dpu_crtc->name, node->event); - } - spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags); - dpu_core_perf_crtc_update(crtc, 0, true); drm_for_each_encoder(encoder, crtc->dev) { @@ -2656,8 +2592,6 @@ static void dpu_crtc_enable(struct drm_crtc *