Subject: linux-next: manual merge of the drm-misc tree with the tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 10 Dec 2014 13:00:56 +1100

Hi all,

Today's linux-next merge of the drm-misc tree got a conflict in
drivers/gpu/drm/drm_edid.c between commit 40d9b043a89e ("drm/connector:
store tile information from displayid (v3)") from the drm tree and
commit d6885d659037 ("drm/edid: move drm_edid_is_zero to top, make edid
argument const") and c465bbc87ce3 ("drm/edid: new
drm_edid_block_checksum helper function V3") from the drm-misc tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    [email-masked]

diff --cc drivers/gpu/drm/drm_edid.c
index 72fd8820e186,21cc45cf3367..000000000000
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@@ -1015,8 -1014,24 +1015,27 @@@ module_param_named(edid_fixup, edid_fix
  MODULE_PARM_DESC(edid_fixup,
  		 "Minimum number of valid EDID header bytes (0-8, default 6)");
  
 +static void drm_get_displayid(struct drm_connector *connector,
 +			      struct edid *edid);
++
+ static int drm_edid_block_checksum(const u8 *raw_edid)
+ {
+ 	int i;
+ 	u8 csum = 0;
+ 	for (i = 0; i < EDID_LENGTH; i++)
+ 		csum += raw_edid[i];
+ 
+ 	return csum;
+ }
+ 
+ static bool drm_edid_is_zero(const u8 *in_edid, int length)
+ {
+ 	if (memchr_inv(in_edid, 0, length))
+ 		return false;
+ 
+ 	return true;
+ }
+ 
  /**
   * drm_edid_block_valid - Sanity check the EDID block (base or extension)
   * @raw_edid: pointer to raw EDID block
@@@ -1179,34 -1196,8 +1200,26 @@@ drm_do_probe_ddc_edid(void *data, u8 *b
  	return ret == xfers ? 0 : -1;
  }
  
- static bool drm_edid_is_zero(u8 *in_edid, int length)
- {
- 	if (memchr_inv(in_edid, 0, length))
- 		return false;
- 
- 	return true;
- }
- 
 -static u8 *
 -drm_do_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter)
 +/**
 + * drm_do_get_edid - get EDID data using a custom EDID block read function
 + * @connector: connector we're probing
 + * @get_edid_block: EDID block read function
 + * @data: private data passed to the block read function
 + *
 + * When the I2C adapter connected to the DDC bus is hidden behind a device that
 + * exposes a different interface to read EDID blocks this function can be used
 + * to get EDID data using a custom block read function.
 + *
 + * As in the general case the DDC bus is accessible by the kernel at the I2C
 + * level, drivers must make all reasonable efforts to expose it as an I2C
 + * adapter and use drm_get_edid() instead of abusing this function.
 + *
 + * Return: Pointer to valid EDID or NULL if we couldn't find any.
 + */
 +struct edid *drm_do_get_edid(struct drm_connector *connector,
 +	int (*get_edid_block)(void *data, u8 *buf, unsigned int block,
 +			      size_t len),
 +	void *data)
  {
  	int i, j = 0, valid_extensions = 0;
  	u8 *block, *new;