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 | acfb997 | 2017-12-19 11:43:46 +0000 | [diff] [blame] | 31 | struct drm_printer; |
| 32 | |
Michal Wajdeczko | 121981f | 2017-12-06 13:53:15 +0000 | [diff] [blame] | 33 | #define ENABLE_GUC_SUBMISSION BIT(0) |
| 34 | #define ENABLE_GUC_LOAD_HUC BIT(1) |
| 35 | |
Michal Wajdeczko | 54fea2b | 2017-09-25 10:50:06 +0000 | [diff] [blame] | 36 | #define I915_PARAMS_FOR_EACH(param) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 37 | param(char *, vbt_firmware, NULL) \ |
| 38 | param(int, modeset, -1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 39 | param(int, lvds_channel_mode, 0) \ |
| 40 | param(int, panel_use_ssc, -1) \ |
| 41 | param(int, vbt_sdvo_panel_type, -1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 42 | param(int, enable_dc, -1) \ |
| 43 | param(int, enable_fbc, -1) \ |
| 44 | param(int, enable_ppgtt, -1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 45 | param(int, enable_psr, -1) \ |
| 46 | param(int, disable_power_well, -1) \ |
| 47 | param(int, enable_ips, 1) \ |
| 48 | param(int, invert_brightness, 0) \ |
Michal Wajdeczko | 121981f | 2017-12-06 13:53:15 +0000 | [diff] [blame] | 49 | param(int, enable_guc, 0) \ |
Michał Winiarski | 9605d1c | 2018-03-19 10:53:46 +0100 | [diff] [blame] | 50 | param(int, guc_log_level, -1) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 51 | param(char *, guc_firmware_path, NULL) \ |
| 52 | param(char *, huc_firmware_path, NULL) \ |
Jani Nikula | f425d08 | 2018-04-24 15:20:16 +0300 | [diff] [blame] | 53 | param(char *, dmc_firmware_path, NULL) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 54 | param(int, mmio_debug, 0) \ |
| 55 | param(int, edp_vswing, 0) \ |
| 56 | param(int, reset, 2) \ |
| 57 | param(unsigned int, inject_load_failure, 0) \ |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 58 | /* leave bools at the end to not create holes */ \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 59 | param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 60 | param(bool, enable_hangcheck, true) \ |
Michal Wajdeczko | ad0c1672 | 2017-09-25 10:50:08 +0000 | [diff] [blame] | 61 | param(bool, fastboot, false) \ |
| 62 | param(bool, prefault_disable, false) \ |
| 63 | param(bool, load_detect_test, false) \ |
| 64 | param(bool, force_reset_modeset_test, false) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 65 | param(bool, error_capture, true) \ |
Michal Wajdeczko | ad0c1672 | 2017-09-25 10:50:08 +0000 | [diff] [blame] | 66 | param(bool, disable_display, false) \ |
| 67 | param(bool, verbose_state_checks, true) \ |
| 68 | param(bool, nuclear_pageflip, false) \ |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 69 | param(bool, enable_dp_mst, true) \ |
| 70 | param(bool, enable_dpcd_backlight, false) \ |
| 71 | param(bool, enable_gvt, false) |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 72 | |
Michal Wajdeczko | 7075cb85 | 2017-09-25 10:50:07 +0000 | [diff] [blame] | 73 | #define MEMBER(T, member, ...) T member; |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 74 | struct i915_params { |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 75 | I915_PARAMS_FOR_EACH(MEMBER); |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 76 | }; |
Chris Wilson | b8cf691 | 2017-02-06 21:36:05 +0000 | [diff] [blame] | 77 | #undef MEMBER |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 78 | |
Michal Wajdeczko | 4f044a8 | 2017-09-19 19:38:44 +0000 | [diff] [blame] | 79 | extern struct i915_params i915_modparams __read_mostly; |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 80 | |
Michal Wajdeczko | acfb997 | 2017-12-19 11:43:46 +0000 | [diff] [blame] | 81 | void i915_params_dump(const struct i915_params *params, struct drm_printer *p); |
| 82 | |
Joonas Lahtinen | c838d71 | 2015-12-18 13:08:15 +0200 | [diff] [blame] | 83 | #endif |
| 84 | |