1af2c3834SStanimir Varbanov /* 2af2c3834SStanimir Varbanov * Copyright (C) 2017 Linaro Ltd. 3af2c3834SStanimir Varbanov * 4af2c3834SStanimir Varbanov * This program is free software; you can redistribute it and/or modify 5af2c3834SStanimir Varbanov * it under the terms of the GNU General Public License version 2 and 6af2c3834SStanimir Varbanov * only version 2 as published by the Free Software Foundation. 7af2c3834SStanimir Varbanov * 8af2c3834SStanimir Varbanov * This program is distributed in the hope that it will be useful, 9af2c3834SStanimir Varbanov * but WITHOUT ANY WARRANTY; without even the implied warranty of 10af2c3834SStanimir Varbanov * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11af2c3834SStanimir Varbanov * GNU General Public License for more details. 12af2c3834SStanimir Varbanov * 13af2c3834SStanimir Varbanov */ 14af2c3834SStanimir Varbanov #ifndef __VENUS_FIRMWARE_H__ 15af2c3834SStanimir Varbanov #define __VENUS_FIRMWARE_H__ 16af2c3834SStanimir Varbanov 17af2c3834SStanimir Varbanov struct device; 18af2c3834SStanimir Varbanov 19377a22d3SStanimir Varbanov int venus_boot(struct device *dev, const char *fwname); 20377a22d3SStanimir Varbanov int venus_shutdown(struct device *dev); 215df317c8SVikash Garodia int venus_set_hw_state(struct venus_core *core, bool suspend); 225df317c8SVikash Garodia 235df317c8SVikash Garodia static inline int venus_set_hw_state_suspend(struct venus_core *core) 245df317c8SVikash Garodia { 255df317c8SVikash Garodia return venus_set_hw_state(core, false); 265df317c8SVikash Garodia } 275df317c8SVikash Garodia 285df317c8SVikash Garodia static inline int venus_set_hw_state_resume(struct venus_core *core) 295df317c8SVikash Garodia { 305df317c8SVikash Garodia return venus_set_hw_state(core, true); 315df317c8SVikash Garodia } 32af2c3834SStanimir Varbanov 33af2c3834SStanimir Varbanov #endif 34