commonlib: move DIV_ROUND macros from nvidia/tegra
DIV_ROUND_CLOSEST and DIV_ROUND_UP are useful macros for other architectures. This patch moves them from soc/nvidia/tegra/types.h to commonlib/include/commonlib/helpers.h . Change-Id: I54521d9b197934cef8e352f9a5c4823015d85f01 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/16415 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
		
				
					committed by
					
						 Martin Roth
						Martin Roth
					
				
			
			
				
	
			
			
			
						parent
						
							614ffc60cf
						
					
				
				
					commit
					29fc9bb855
				
			| @@ -34,6 +34,22 @@ | ||||
| #define ABS(a) (((a) < 0) ? (-(a)) : (a)) | ||||
| #define CEIL_DIV(a, b)  (((a) + (b) - 1) / (b)) | ||||
| #define IS_POWER_OF_2(x)  (((x) & ((x) - 1)) == 0) | ||||
| #define DIV_ROUND_UP(x, y)  (((x) + (y) - 1) / (y)) | ||||
| /* | ||||
|  * Divide positive or negative dividend by positive divisor and round | ||||
|  * to closest integer. Result is undefined for negative divisors and | ||||
|  * for negative dividends if the divisor variable type is unsigned. | ||||
|  */ | ||||
| #define DIV_ROUND_CLOSEST(x, divisor)(			\ | ||||
| {							\ | ||||
| 	typeof(x) __x = x;				\ | ||||
| 	typeof(divisor) __d = divisor;			\ | ||||
| 	(((typeof(x))-1) > 0 ||			\ | ||||
| 	 ((typeof(divisor))-1) > 0 || (__x) > 0) ?	\ | ||||
| 		(((__x) + ((__d) / 2)) / (__d)) :	\ | ||||
| 		(((__x) - ((__d) / 2)) / (__d));	\ | ||||
| }							\ | ||||
| ) | ||||
|  | ||||
| /* Standard units. */ | ||||
| #define KiB (1<<10) | ||||
|   | ||||
| @@ -51,22 +51,4 @@ | ||||
| 	(type *)( (char *)__mptr - offsetof(type,member) );}) | ||||
| #endif | ||||
|  | ||||
| #define DIV_ROUND_UP(x, y)  (((x) + (y) - 1) / (y)) | ||||
|  | ||||
| /* | ||||
|  * Divide positive or negative dividend by positive divisor and round | ||||
|  * to closest integer. Result is undefined for negative divisors and | ||||
|  * for negative dividends if the divisor variable type is unsigned. | ||||
|  */ | ||||
| #define DIV_ROUND_CLOSEST(x, divisor)(			\ | ||||
| {							\ | ||||
| 	typeof(x) __x = x;				\ | ||||
| 	typeof(divisor) __d = divisor;			\ | ||||
| 	(((typeof(x))-1) > 0 ||				\ | ||||
| 	 ((typeof(divisor))-1) > 0 || (__x) > 0) ?	\ | ||||
| 		(((__x) + ((__d) / 2)) / (__d)) :	\ | ||||
| 		(((__x) - ((__d) / 2)) / (__d));	\ | ||||
| }							\ | ||||
| ) | ||||
|  | ||||
| #endif /* __TEGRA_MISC_TYPES_H__ */ | ||||
|   | ||||
| @@ -15,6 +15,7 @@ | ||||
|  | ||||
| #include <assert.h> | ||||
| #include <arch/io.h> | ||||
| #include <commonlib/helpers.h> | ||||
| #include <console/console.h> | ||||
| #include <soc/addressmap.h> | ||||
| #include <soc/id.h> | ||||
|   | ||||
| @@ -32,6 +32,7 @@ | ||||
| #include <soc/tegra_dsi.h> | ||||
| #include <soc/mipi-phy.h> | ||||
| #include "jdi_25x18_display/panel-jdi-lpm102a188a.h" | ||||
| #include <commonlib/helpers.h> | ||||
|  | ||||
| struct tegra_mipi_device mipi_device_data[NUM_DSI]; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user