[PATCH 3/6] drm/edid: new drm_edid_block_checksum helper function V3

2014-12-01 Thread Daniel Vetter
On Sun, Nov 30, 2014 at 07:57:43PM +0100, Stefan Brüns wrote:
> The function will also be used by a later patch, so factor it out.
> 
> V2: make raw_edid const, define/declare before first use
> V3: fix erroneuos removal of csum variable
> 
> Signed-off-by: Stefan Brüns 
> Reviewed-by: Jani Nikula 

Ok, merged the first three patches from this series to my drm patch pile
branch. I'll send a pull for that to Dave for 3.19 I think, but might miss
for 3.20.

Thanks, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


[PATCH 3/6] drm/edid: new drm_edid_block_checksum helper function V3

2014-11-30 Thread Stefan Brüns
The function will also be used by a later patch, so factor it out.

V2: make raw_edid const, define/declare before first use
V3: fix erroneuos removal of csum variable

Signed-off-by: Stefan Brüns 
Reviewed-by: Jani Nikula 
---
 drivers/gpu/drm/drm_edid.c | 16 
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 162a943..1cbaf29 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1014,6 +1014,16 @@ module_param_named(edid_fixup, edid_fixup, int, 0400);
 MODULE_PARM_DESC(edid_fixup,
 "Minimum number of valid EDID header bytes (0-8, default 6)");

+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))
@@ -1035,8 +1045,7 @@ static bool drm_edid_is_zero(const u8 *in_edid, int 
length)
  */
 bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid)
 {
-   int i;
-   u8 csum = 0;
+   u8 csum;
struct edid *edid = (struct edid *)raw_edid;

if (WARN_ON(!raw_edid))
@@ -1056,8 +1065,7 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool 
print_bad_edid)
}
}

-   for (i = 0; i < EDID_LENGTH; i++)
-   csum += raw_edid[i];
+   csum = drm_edid_block_checksum(raw_edid);
if (csum) {
if (print_bad_edid) {
DRM_ERROR("EDID checksum is invalid, remainder is 
%d\n", csum);
-- 
2.1.2