sde_irq.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef __SDE_IRQ_H__
  6. #define __SDE_IRQ_H__
  7. #include <linux/kernel.h>
  8. #include <linux/irqdomain.h>
  9. #include "msm_kms.h"
  10. /**
  11. * sde_irq_controller - define MDSS level interrupt controller context
  12. * @enabled_mask: enable status of MDSS level interrupt
  13. * @domain: interrupt domain of this controller
  14. */
  15. struct sde_irq_controller {
  16. unsigned long enabled_mask;
  17. struct irq_domain *domain;
  18. };
  19. /**
  20. * sde_irq_preinstall - perform pre-installation of MDSS IRQ handler
  21. * @kms: pointer to kms context
  22. * @return: none
  23. */
  24. void sde_irq_preinstall(struct msm_kms *kms);
  25. /**
  26. * sde_irq_postinstall - perform post-installation of MDSS IRQ handler
  27. * @kms: pointer to kms context
  28. * @return: 0 if success; error code otherwise
  29. */
  30. int sde_irq_postinstall(struct msm_kms *kms);
  31. /**
  32. * sde_irq_uninstall - uninstall MDSS IRQ handler
  33. * @drm_dev: pointer to kms context
  34. * @return: none
  35. */
  36. void sde_irq_uninstall(struct msm_kms *kms);
  37. /**
  38. * sde_irq - MDSS level IRQ handler
  39. * @kms: pointer to kms context
  40. * @return: interrupt handling status
  41. */
  42. irqreturn_t sde_irq(struct msm_kms *kms);
  43. /**
  44. * sde_irq_update - enable/disable IRQ line
  45. * @kms: pointer to kms context
  46. * @enable: enable:true, disable:false
  47. */
  48. void sde_irq_update(struct msm_kms *kms, bool enable);
  49. #endif /* __SDE_IRQ_H__ */