From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751780AbbCJHAo (ORCPT ); Tue, 10 Mar 2015 03:00:44 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:43646 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751138AbbCJHAm (ORCPT ); Tue, 10 Mar 2015 03:00:42 -0400 Date: Tue, 10 Mar 2015 10:00:14 +0300 From: Dan Carpenter To: Lorenzo Stoakes Cc: sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, gregkh@linuxfoundation.org, devel@driverdev.osuosl.org, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] staging: sm750fb: Fix sparse warning Message-ID: <20150310070014.GM10964@mwanda> References: <1425934628-3717-1-git-send-email-lstoakes@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1425934628-3717-1-git-send-email-lstoakes@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: acsinet21.oracle.com [141.146.126.237] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 09, 2015 at 08:57:08PM +0000, Lorenzo Stoakes wrote: > This patch fixes the following sparse warning:- > > drivers/staging/sm750fb/ddk750_help.c: warning: incorrect type in assignment (different address spaces) > > Signed-off-by: Lorenzo Stoakes > --- > drivers/staging/sm750fb/ddk750_chip.h | 4 +++- > drivers/staging/sm750fb/ddk750_help.c | 2 +- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/sm750fb/ddk750_chip.h b/drivers/staging/sm750fb/ddk750_chip.h > index 1c78875..a4e5bcc 100644 > --- a/drivers/staging/sm750fb/ddk750_chip.h > +++ b/drivers/staging/sm750fb/ddk750_chip.h > @@ -3,6 +3,8 @@ > #define DEFAULT_INPUT_CLOCK 14318181 /* Default reference clock */ > #define SM750LE_REVISION_ID (char)0xfe > > +#include > + > /* This is all the chips recognized by this library */ > typedef enum _logical_chip_type_t > { > @@ -70,7 +72,7 @@ logical_chip_type_t getChipType(void); > unsigned int calcPllValue(unsigned int request,pll_value_t *pll); > unsigned int calcPllValue2(unsigned int,pll_value_t *); > unsigned int formatPllReg(pll_value_t *pPLL); > -void ddk750_set_mmio(volatile unsigned char *,unsigned short,char); > +void ddk750_set_mmio(volatile unsigned char __iomem *,unsigned short,char); No need for the volatile. Really mmio750 should be a "void __iomem *" it is declared as "unsigned char __iomem *" but it's not a char pointer that's only to make the pointer math work. It would work just as well as a void and we could remove some ugly casting. regards, dan carpenter