nouveau_acpi.h revision 1.5
1/*	$NetBSD: nouveau_acpi.h,v 1.5 2025/03/06 01:14:51 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)
12bool nouveau_is_optimus(void);
13bool nouveau_is_v1_dsm(void);
14void nouveau_register_dsm_handler(void);
15void nouveau_unregister_dsm_handler(void);
16void nouveau_switcheroo_optimus_dsm(void);
17int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len);
18#ifdef __NetBSD__
19bool nouveau_acpi_rom_supported(struct acpi_devnode *);
20#else
21bool nouveau_acpi_rom_supported(struct device *);
22#endif
23void *nouveau_acpi_edid(struct drm_device *, struct drm_connector *);
24#else
25static inline bool nouveau_is_optimus(void) { return false; };
26static inline bool nouveau_is_v1_dsm(void) { return false; };
27static inline void nouveau_register_dsm_handler(void) {}
28static inline void nouveau_unregister_dsm_handler(void) {}
29static inline void nouveau_switcheroo_optimus_dsm(void) {}
30#ifdef __NetBSD__
31static inline bool nouveau_acpi_rom_supported(struct acpi_devnode *acpidev) { return false; }
32#else
33static inline bool nouveau_acpi_rom_supported(struct device *dev) { return false; }
34#endif
35static inline int nouveau_acpi_get_bios_chunk(uint8_t *bios, int offset, int len) { return -EINVAL; }
36static inline void *nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector) { return NULL; }
37#endif
38
39#endif
40