From: Russell King arch/arm/common/sa1111.c: In function `sa1111_suspend': arch/arm/common/sa1111.c:816: warning: assignment from incompatible pointer type This is a rather annoying, and IMHO pointless warning. First question: what is the reasoning for using an array of unsigned bytes here? Are we expecting to power manage devices which only have byte wide registers? In reality, devices have half-word and word sized registers as well, which means that dev->power.saved_state actually points to device specific data (or even device driver specific data) for the device. As such, it makes far more sense for this to be a 'void *'. I'd rather not go around the ARM kernel tree adding pointless casts to 'u8 *' and back again because the wrong type for this was picked in the structure definition, so here's a patch which changes this to void *. Signed-off-by: Russell King Signed-off-by: Andrew Morton --- 25-akpm/include/linux/pm.h | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN include/linux/pm.h~typeofdev-powersaved_state include/linux/pm.h --- 25/include/linux/pm.h~typeofdev-powersaved_state 2004-11-28 10:42:49.531975056 -0800 +++ 25-akpm/include/linux/pm.h 2004-11-28 10:42:49.534974600 -0800 @@ -226,7 +226,7 @@ struct dev_pm_info { u32 power_state; #ifdef CONFIG_PM u32 prev_state; - u8 * saved_state; + void * saved_state; atomic_t pm_users; struct device * pm_parent; struct list_head entry; _