-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
include: Move ascii85 functions from i915 to linux/ascii85.h
The i915 DRM driver very cleverly used ascii85 encoding for their GPU state file. Move the encode functions to a general header file to support other drivers that might be interested in the same functionality. v4: Make the return value const char * as suggested by Chris Wilson v3: Fix error_puts -> err_puts pointed out by the 01.org bot v2: Update API to be cleaner for the caller as suggested by Chris Wilson Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
- Loading branch information
Jordan Crouse
authored and
Rob Clark
committed
Jul 30, 2018
1 parent
2f2eb72
commit 489cae6
Showing
2 changed files
with
42 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
/* | ||
* SPDX-License-Identifier: GPL-2.0 | ||
* | ||
* Copyright (c) 2008 Intel Corporation | ||
* Copyright (c) 2018 The Linux Foundation. All rights reserved. | ||
*/ | ||
|
||
#ifndef _ASCII85_H_ | ||
#define _ASCII85_H_ | ||
|
||
#include <linux/kernel.h> | ||
|
||
#define ASCII85_BUFSZ 6 | ||
|
||
static inline long | ||
ascii85_encode_len(long len) | ||
{ | ||
return DIV_ROUND_UP(len, 4); | ||
} | ||
|
||
static inline const char * | ||
ascii85_encode(u32 in, char *out) | ||
{ | ||
int i; | ||
|
||
if (in == 0) | ||
return "z"; | ||
|
||
out[5] = '\0'; | ||
for (i = 5; i--; ) { | ||
out[i] = '!' + in % 85; | ||
in /= 85; | ||
} | ||
|
||
return out; | ||
} | ||
|
||
#endif |