[staging:staging-testing 430/495] drivers/staging//kpc2000/kpc_spi/spi_driver.c:167:5: error: implicit declaration of function 'writeq'; did you mean 'writeb'?

kbuild test robot lkp at intel.com
Fri May 3 01:18:25 UTC 2019


Hi Greg,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-testing
head:   a4ecdcbfc4dd91417706e4644e4e93de43b34bea
commit: 7dc7967fc39af81191558f63eeaf3d2b83899b1c [430/495] staging: kpc2000: add initial set of Daktronics drivers
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 7dc7967fc39af81191558f63eeaf3d2b83899b1c
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   drivers/staging//kpc2000/kpc_spi/spi_driver.c:97:5: note: offset of packed bit-field 'wl' has changed in GCC 4.4
        } bitfield;
        ^
   drivers/staging//kpc2000/kpc_spi/spi_driver.c:97:5: note: offset of packed bit-field 'cs' has changed in GCC 4.4
   drivers/staging//kpc2000/kpc_spi/spi_driver.c:97:5: note: offset of packed bit-field 'wcnt' has changed in GCC 4.4
   drivers/staging//kpc2000/kpc_spi/spi_driver.c: In function 'kp_spi_read_reg':
   drivers/staging//kpc2000/kpc_spi/spi_driver.c:158:11: error: implicit declaration of function 'readq'; did you mean 'readl'? [-Werror=implicit-function-declaration]
        val = readq((void*)addr);
              ^~~~~
              readl
   drivers/staging//kpc2000/kpc_spi/spi_driver.c: In function 'kp_spi_write_reg':
>> drivers/staging//kpc2000/kpc_spi/spi_driver.c:167:5: error: implicit declaration of function 'writeq'; did you mean 'writeb'? [-Werror=implicit-function-declaration]
        writeq(val, (void*)addr);
        ^~~~~~
        writeb
   cc1: some warnings being treated as errors

vim +167 drivers/staging//kpc2000/kpc_spi/spi_driver.c

    80	
    81	
    82	union kp_spi_config {
    83	    /* use this to access individual elements */
    84	    struct __attribute__((packed)) spi_config_bitfield {
    85	        unsigned char pha       : 1; /* spim_clk Phase      */
    86	        unsigned char pol       : 1; /* spim_clk Polarity   */
    87	        unsigned char epol      : 1; /* spim_csx Polarity   */
    88	        unsigned char dpe       : 1; /* Transmission Enable */
    89	        unsigned char wl        : 5; /* Word Length         */
    90	        unsigned char           : 3;
    91	        unsigned char trm       : 2; /* TxRx Mode           */
    92	        unsigned char cs        : 4; /* Chip Select         */
    93	        unsigned char wcnt      : 7; /* Word Count          */
    94	        unsigned char ffen      : 1; /* FIFO Enable         */
    95	        unsigned char spi_en    : 1; /* SPI Enable          */
    96	        unsigned char           : 5;
  > 97	    } bitfield;
    98	    /* use this to grab the whole register */
    99	    u32 reg;
   100	};
   101	
   102	
   103	
   104	union kp_spi_status {
   105	    struct __attribute__((packed)) spi_status_bitfield {
   106	        unsigned char rx    :  1; /* Rx Status       */
   107	        unsigned char tx    :  1; /* Tx Status       */
   108	        unsigned char eo    :  1; /* End of Transfer */
   109	        unsigned char       :  1;
   110	        unsigned char txffe :  1; /* Tx FIFO Empty   */
   111	        unsigned char txfff :  1; /* Tx FIFO Full    */
   112	        unsigned char rxffe :  1; /* Rx FIFO Empty   */
   113	        unsigned char rxfff :  1; /* Rx FIFO Full    */
   114	        unsigned int        : 24;
   115	    } bitfield;
   116	    u32 reg;
   117	};
   118	
   119	
   120	
   121	union kp_spi_ffctrl {
   122	    struct __attribute__((packed)) spi_ffctrl_bitfield {
   123	        unsigned char ffstart :  1; /* FIFO Start */
   124	        unsigned int          : 31;
   125	    } bitfield;
   126	    u32 reg;
   127	};
   128	
   129	
   130	
   131	/***************
   132	 * SPI Helpers *
   133	 ***************/
   134	static inline int
   135	kp_spi_bytes_per_word(int word_len)
   136	{
   137	    if (word_len <= 8){
   138	        return 1;
   139	    }
   140	    else if (word_len <= 16) {
   141	        return 2;
   142	    }
   143	    else { /* word_len <= 32 */
   144	        return 4;
   145	    }
   146	}
   147	
   148	static inline u64
   149	kp_spi_read_reg(struct kp_spi_controller_state *cs, int idx)
   150	{
   151	    u64 __iomem *addr = cs->base;
   152	    u64 val;
   153	
   154	    addr += idx;
   155	    if ((idx == KP_SPI_REG_CONFIG) && (cs->conf_cache >= 0)){
   156	        return cs->conf_cache;
   157	    }
   158	    val = readq((void*)addr);
   159	    return val;
   160	}
   161	
   162	static inline void
   163	kp_spi_write_reg(struct kp_spi_controller_state *cs, int idx, u64 val)
   164	{
   165	    u64 __iomem *addr = cs->base;
   166	    addr += idx;
 > 167	    writeq(val, (void*)addr);
   168	    if (idx == KP_SPI_REG_CONFIG)
   169	        cs->conf_cache = val;
   170	}
   171	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 68421 bytes
Desc: not available
URL: <http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/attachments/20190503/adfd6b06/attachment-0001.bin>


More information about the devel mailing list