xref: /linux/drivers/media/pci/hws/hws_video.h (revision 3d5e48944e824bddc20d7b874e784f7b279636fe)
1*ba07fd2fSBen Hoff /* SPDX-License-Identifier: GPL-2.0-only */
2*ba07fd2fSBen Hoff #ifndef HWS_VIDEO_H
3*ba07fd2fSBen Hoff #define HWS_VIDEO_H
4*ba07fd2fSBen Hoff 
5*ba07fd2fSBen Hoff struct hws_video;
6*ba07fd2fSBen Hoff 
7*ba07fd2fSBen Hoff int hws_video_register(struct hws_pcie_dev *dev);
8*ba07fd2fSBen Hoff void hws_video_unregister(struct hws_pcie_dev *dev);
9*ba07fd2fSBen Hoff void hws_enable_video_capture(struct hws_pcie_dev *hws,
10*ba07fd2fSBen Hoff 			      unsigned int chan,
11*ba07fd2fSBen Hoff 			      bool on);
12*ba07fd2fSBen Hoff void hws_prime_next_locked(struct hws_video *vid);
13*ba07fd2fSBen Hoff 
14*ba07fd2fSBen Hoff int hws_video_init_channel(struct hws_pcie_dev *pdev, int ch);
15*ba07fd2fSBen Hoff void hws_video_cleanup_channel(struct hws_pcie_dev *pdev, int ch);
16*ba07fd2fSBen Hoff void check_video_format(struct hws_pcie_dev *pdx);
17*ba07fd2fSBen Hoff int hws_check_card_status(struct hws_pcie_dev *hws);
18*ba07fd2fSBen Hoff void hws_init_video_sys(struct hws_pcie_dev *hws, bool enable);
19*ba07fd2fSBen Hoff 
20*ba07fd2fSBen Hoff void hws_program_dma_for_addr(struct hws_pcie_dev *hws,
21*ba07fd2fSBen Hoff 			      unsigned int ch,
22*ba07fd2fSBen Hoff 			      dma_addr_t dma);
23*ba07fd2fSBen Hoff void hws_set_dma_doorbell(struct hws_pcie_dev *hws, unsigned int ch,
24*ba07fd2fSBen Hoff 			  dma_addr_t dma, const char *tag);
25*ba07fd2fSBen Hoff 
26*ba07fd2fSBen Hoff int hws_video_quiesce(struct hws_pcie_dev *hws, const char *reason);
27*ba07fd2fSBen Hoff void hws_video_pm_resume(struct hws_pcie_dev *hws);
28*ba07fd2fSBen Hoff 
29*ba07fd2fSBen Hoff #endif
30