Hi Shubhangi, [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on next-20160212] [cannot apply to v4.5-rc3] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Shubhangi-Shrivastava/drm-i915-Set-invert-bit-for-hpd-based-on-VBT/20160212-203937 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-randconfig-x000-201606 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/drm/drm_dp_helper.h:26, from drivers/gpu/drm/i915/intel_bios.c:28: drivers/gpu/drm/i915/intel_bios.c: In function 'intel_bios_is_port_hpd_inverted': drivers/gpu/drm/i915/intel_bios.c:121:40: error: 'struct common_child_dev_config' has no member named 'hpd_invert' if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { ^ include/linux/compiler.h:147:28: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> drivers/gpu/drm/i915/intel_bios.c:121:3: note: in expansion of macro 'if' if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { ^ drivers/gpu/drm/i915/intel_bios.c:121:40: error: 'struct common_child_dev_config' has no member named 'hpd_invert' if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { ^ include/linux/compiler.h:147:40: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> drivers/gpu/drm/i915/intel_bios.c:121:3: note: in expansion of macro 'if' if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { ^ drivers/gpu/drm/i915/intel_bios.c:121:40: error: 'struct common_child_dev_config' has no member named 'hpd_invert' if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { ^ include/linux/compiler.h:158:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^ >> drivers/gpu/drm/i915/intel_bios.c:121:3: note: in expansion of macro 'if' if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { ^ vim +/if +121 drivers/gpu/drm/i915/intel_bios.c 22 * 23 * Authors: 24 * Eric Anholt <eric@xxxxxxxxxx> 25 * 26 */ 27 > 28 #include <drm/drm_dp_helper.h> 29 #include <drm/drmP.h> 30 #include <drm/i915_drm.h> 31 #include "i915_drv.h" 32 #include "intel_bios.h" 33 34 /** 35 * DOC: Video BIOS Table (VBT) 36 * 37 * The Video BIOS Table, or VBT, provides platform and board specific 38 * configuration information to the driver that is not discoverable or available 39 * through other means. The configuration is mostly related to display 40 * hardware. The VBT is available via the ACPI OpRegion or, on older systems, in 41 * the PCI ROM. 42 * 43 * The VBT consists of a VBT Header (defined as &struct vbt_header), a BDB 44 * Header (&struct bdb_header), and a number of BIOS Data Blocks (BDB) that 45 * contain the actual configuration information. The VBT Header, and thus the 46 * VBT, begins with "$VBT" signature. The VBT Header contains the offset of the 47 * BDB Header. The data blocks are concatenated after the BDB Header. The data 48 * blocks have a 1-byte Block ID, 2-byte Block Size, and Block Size bytes of 49 * data. (Block 53, the MIPI Sequence Block is an exception.) 50 * 51 * The driver parses the VBT during load. The relevant information is stored in 52 * driver private data for ease of use, and the actual VBT is not read after 53 * that. 54 */ 55 56 #define SLAVE_ADDR1 0x70 57 #define SLAVE_ADDR2 0x72 58 59 static int panel_type; 60 61 /* Get BDB block size given a pointer to Block ID. */ 62 static u32 _get_blocksize(const u8 *block_base) 63 { 64 /* The MIPI Sequence Block v3+ has a separate size field. */ 65 if (*block_base == BDB_MIPI_SEQUENCE && *(block_base + 3) >= 3) 66 return *((const u32 *)(block_base + 4)); 67 else 68 return *((const u16 *)(block_base + 1)); 69 } 70 71 /* Get BDB block size give a pointer to data after Block ID and Block Size. */ 72 static u32 get_blocksize(const void *block_data) 73 { 74 return _get_blocksize(block_data - 3); 75 } 76 77 static const void * 78 find_section(const void *_bdb, int section_id) 79 { 80 const struct bdb_header *bdb = _bdb; 81 const u8 *base = _bdb; 82 int index = 0; 83 u32 total, current_size; 84 u8 current_id; 85 86 /* skip to first section */ 87 index += bdb->header_size; 88 total = bdb->bdb_size; 89 90 /* walk the sections looking for section_id */ 91 while (index + 3 < total) { 92 current_id = *(base + index); 93 current_size = _get_blocksize(base + index); 94 index += 3; 95 96 if (index + current_size > total) 97 return NULL; 98 99 if (current_id == section_id) 100 return base + index; 101 102 index += current_size; 103 } 104 105 return NULL; 106 } 107 108 bool 109 intel_bios_is_port_hpd_inverted(struct drm_device *dev, enum port port) 110 { 111 struct drm_i915_private *dev_priv = dev->dev_private; 112 int i; 113 114 if (!IS_BROXTON(dev)) { 115 DRM_ERROR("Bit inversion is not required in this platform\n"); 116 return false; 117 } 118 119 for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { 120 > 121 if (dev_priv->vbt.child_dev[i].common.hpd_invert == 1) { 122 123 switch (dev_priv->vbt.child_dev[i].common.dvo_port) { 124 case DVO_PORT_DPA: --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx