Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 1 | /* |
| 2 | * Copyright © 2015 Intel Corporation |
| 3 | * |
| 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
| 5 | * copy of this software and associated documentation files (the "Software"), |
| 6 | * to deal in the Software without restriction, including without limitation |
| 7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| 8 | * and/or sell copies of the Software, and to permit persons to whom the |
| 9 | * Software is furnished to do so, subject to the following conditions: |
| 10 | * |
| 11 | * The above copyright notice and this permission notice (including the next |
| 12 | * paragraph) shall be included in all copies or substantial portions of the |
| 13 | * Software. |
| 14 | * |
| 15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| 18 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| 20 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
| 21 | * IN THE SOFTWARE. |
| 22 | * |
| 23 | */ |
| 24 | |
| 25 | #ifndef _I915_PARAMS_H_ |
| 26 | #define _I915_PARAMS_H_ |
| 27 | |
Michal Wajdeczko | 121981f | 2017-12-06 13:53:15 +0000 | [diff] [blame^] | 28 | #include <linux/bitops.h> |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 29 | #include <linux/cache.h> /* for __read_mostly */ |
| 30 | |
Michal Wajdeczko | 121981f | 2017-12-06 13:53:15 +0000 | [diff] [blame^] | 31 | #define ENABLE_GUC_SUBMISSION BIT(0) |
| 32 | #define ENABLE_GUC_LOAD_HUC BIT(1) |
| 33 | |
Michal Wajdeczko | 54fea2b | 2017-09-25 10:50:06 +0000 | [diff] [blame] | 34 | #define I915_PARAMS_FOR_EACH(param) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 35 | param(char *, vbt_firmware, NULL) \ |
| 36 | param(int, modeset, -1) \ |
| 37 | param(int, panel_ignore_lid, 1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 38 | param(int, lvds_channel_mode, 0) \ |
| 39 | param(int, panel_use_ssc, -1) \ |
| 40 | param(int, vbt_sdvo_panel_type, -1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 41 | param(int, enable_dc, -1) \ |
| 42 | param(int, enable_fbc, -1) \ |
| 43 | param(int, enable_ppgtt, -1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 44 | param(int, enable_psr, -1) \ |
| 45 | param(int, disable_power_well, -1) \ |
| 46 | param(int, enable_ips, 1) \ |
| 47 | param(int, invert_brightness, 0) \ |
Michal Wajdeczko | 121981f | 2017-12-06 13:53:15 +0000 | [diff] [blame^] | 48 | param(int, enable_guc, 0) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 49 | param(int, guc_log_level, -1) \ |
| 50 | param(char *, guc_firmware_path, NULL) \ |
| 51 | param(char *, huc_firmware_path, NULL) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 52 | param(int, mmio_debug, 0) \ |
| 53 | param(int, edp_vswing, 0) \ |
| 54 | param(int, reset, 2) \ |
| 55 | param(unsigned int, inject_load_failure, 0) \ |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 56 | /* leave bools at the end to not create holes */ \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 57 | param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \ |
| 58 | param(bool, enable_cmd_parser, true) \ |
| 59 | param(bool, enable_hangcheck, true) \ |
Michal Wajdeczko | ad0c1672 | 2017-09-25 10:50:08 +0000 | [diff] [blame] | 60 | param(bool, fastboot, false) \ |
| 61 | param(bool, prefault_disable, false) \ |
| 62 | param(bool, load_detect_test, false) \ |
| 63 | param(bool, force_reset_modeset_test, false) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 64 | param(bool, error_capture, true) \ |
Michal Wajdeczko | ad0c1672 | 2017-09-25 10:50:08 +0000 | [diff] [blame] | 65 | param(bool, disable_display, false) \ |
| 66 | param(bool, verbose_state_checks, true) \ |
| 67 | param(bool, nuclear_pageflip, false) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 68 | param(bool, enable_dp_mst, true) \ |
| 69 | param(bool, enable_dpcd_backlight, false) \ |
| 70 | param(bool, enable_gvt, false) |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 71 | |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 72 | #define MEMBER(T, member, ...) T member; |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 73 | struct i915_params { |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 74 | I915_PARAMS_FOR_EACH(MEMBER); |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 75 | }; |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 76 | #undef MEMBER |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 77 | |
Michal Wajdeczko | 4f044a8 | 2017-09-19 19:38:44 +0000 | [diff] [blame] | 78 | extern struct i915_params i915_modparams __read_mostly; |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 79 | |
| 80 | #endif |
| 81 | |