1 /* $NetBSD: nouveau_acpi.h,v 1.4 2024/04/16 14:34:02 riastradh Exp $ */ 2 3 /* SPDX-License-Identifier: MIT */ 4 #ifndef __NOUVEAU_ACPI_H__ 5 #define __NOUVEAU_ACPI_H__ 6 7 #include <linux/acpi.h> 8 9 #define ROM_BIOS_PAGE 4096 10 11 #if defined(CONFIG_ACPI) && defined(CONFIG_X86) 12 bool nouveau_is_optimus(void); 13 bool nouveau_is_v1_dsm(void); 14 void nouveau_register_dsm_handler(void); 15 void nouveau_unregister_dsm_handler(void); 16 void nouveau_switcheroo_optimus_dsm(void); 17 int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len); 18 #ifdef __NetBSD__ 19 bool nouveau_acpi_rom_supported(struct acpi_devnode *); 20 #else 21 bool nouveau_acpi_rom_supported(struct device *); 22 #endif 23 void *nouveau_acpi_edid(struct drm_device *, struct drm_connector *); 24 #else 25 static inline bool nouveau_is_optimus(void) { return false; }; 26 static inline bool nouveau_is_v1_dsm(void) { return false; }; 27 static inline void nouveau_register_dsm_handler(void) {} 28 static inline void nouveau_unregister_dsm_handler(void) {} 29 static inline void nouveau_switcheroo_optimus_dsm(void) {} 30 #ifdef __NetBSD__ 31 static inline bool nouveau_acpi_rom_supported(struct acpi_devnode *acpidev) { return false; } 32 #else 33 static inline bool nouveau_acpi_rom_supported(struct device *dev) { return false; } 34 #endif 35 static inline int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len) { return -EINVAL; } 36 static inline void *nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector) { return NULL; } 37 #endif 38 39 #endif 40