From: kernel test robot <lkp@intel.com>
To: Valentin Korenblit <vkorenblit@sequans.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>
Subject: [mtd:nand/next 11/31] drivers/mtd/nand/raw/cadence-nand-controller.c:1893:4: error: implicit declaration of function 'ioread64_rep' is invalid in C99
Date: Wed, 21 Sep 2022 06:31:23 +0800 [thread overview]
Message-ID: <202209210641.MziHAbW7-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
head: 63de24fccb6b831be1abfe07292449105b467731
commit: 7e7dc04774b18c0e42ce74aa3357021cda979674 [11/31] mtd: rawnand: cadence: support 64-bit slave dma interface
config: x86_64-randconfig-a001 (https://download.01.org/0day-ci/archive/20220921/202209210641.MziHAbW7-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git/commit/?id=7e7dc04774b18c0e42ce74aa3357021cda979674
git remote add mtd https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git
git fetch --no-tags mtd nand/next
git checkout 7e7dc04774b18c0e42ce74aa3357021cda979674
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/mtd/nand/raw/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/mtd/nand/raw/cadence-nand-controller.c:1893:4: error: implicit declaration of function 'ioread64_rep' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
ioread64_rep(cdns_ctrl->io.virt, buf, len_in_words);
^
>> drivers/mtd/nand/raw/cadence-nand-controller.c:1962:4: error: implicit declaration of function 'iowrite64_rep' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
iowrite64_rep(cdns_ctrl->io.virt, buf, len_in_words);
^
2 errors generated.
vim +/ioread64_rep +1893 drivers/mtd/nand/raw/cadence-nand-controller.c
1871
1872 static int cadence_nand_read_buf(struct cdns_nand_ctrl *cdns_ctrl,
1873 u8 *buf, int len)
1874 {
1875 u8 thread_nr = 0;
1876 u32 sdma_size;
1877 int status;
1878
1879 /* Wait until slave DMA interface is ready to data transfer. */
1880 status = cadence_nand_wait_on_sdma(cdns_ctrl, &thread_nr, &sdma_size);
1881 if (status)
1882 return status;
1883
1884 if (!cdns_ctrl->caps1->has_dma) {
1885 u8 data_dma_width = cdns_ctrl->caps2.data_dma_width;
1886
1887 int len_in_words = (data_dma_width == 4) ? len >> 2 : len >> 3;
1888
1889 /* read alingment data */
1890 if (data_dma_width == 4)
1891 ioread32_rep(cdns_ctrl->io.virt, buf, len_in_words);
1892 else
> 1893 ioread64_rep(cdns_ctrl->io.virt, buf, len_in_words);
1894
1895 if (sdma_size > len) {
1896 int read_bytes = (data_dma_width == 4) ?
1897 len_in_words << 2 : len_in_words << 3;
1898
1899 /* read rest data from slave DMA interface if any */
1900 if (data_dma_width == 4)
1901 ioread32_rep(cdns_ctrl->io.virt,
1902 cdns_ctrl->buf,
1903 sdma_size / 4 - len_in_words);
1904 else
1905 ioread64_rep(cdns_ctrl->io.virt,
1906 cdns_ctrl->buf,
1907 sdma_size / 8 - len_in_words);
1908
1909 /* copy rest of data */
1910 memcpy(buf + read_bytes, cdns_ctrl->buf,
1911 len - read_bytes);
1912 }
1913 return 0;
1914 }
1915
1916 if (cadence_nand_dma_buf_ok(cdns_ctrl, buf, len)) {
1917 status = cadence_nand_slave_dma_transfer(cdns_ctrl, buf,
1918 cdns_ctrl->io.dma,
1919 len, DMA_FROM_DEVICE);
1920 if (status == 0)
1921 return 0;
1922
1923 dev_warn(cdns_ctrl->dev,
1924 "Slave DMA transfer failed. Try again using bounce buffer.");
1925 }
1926
1927 /* If DMA transfer is not possible or failed then use bounce buffer. */
1928 status = cadence_nand_slave_dma_transfer(cdns_ctrl, cdns_ctrl->buf,
1929 cdns_ctrl->io.dma,
1930 sdma_size, DMA_FROM_DEVICE);
1931
1932 if (status) {
1933 dev_err(cdns_ctrl->dev, "Slave DMA transfer failed");
1934 return status;
1935 }
1936
1937 memcpy(buf, cdns_ctrl->buf, len);
1938
1939 return 0;
1940 }
1941
1942 static int cadence_nand_write_buf(struct cdns_nand_ctrl *cdns_ctrl,
1943 const u8 *buf, int len)
1944 {
1945 u8 thread_nr = 0;
1946 u32 sdma_size;
1947 int status;
1948
1949 /* Wait until slave DMA interface is ready to data transfer. */
1950 status = cadence_nand_wait_on_sdma(cdns_ctrl, &thread_nr, &sdma_size);
1951 if (status)
1952 return status;
1953
1954 if (!cdns_ctrl->caps1->has_dma) {
1955 u8 data_dma_width = cdns_ctrl->caps2.data_dma_width;
1956
1957 int len_in_words = (data_dma_width == 4) ? len >> 2 : len >> 3;
1958
1959 if (data_dma_width == 4)
1960 iowrite32_rep(cdns_ctrl->io.virt, buf, len_in_words);
1961 else
> 1962 iowrite64_rep(cdns_ctrl->io.virt, buf, len_in_words);
1963
1964 if (sdma_size > len) {
1965 int written_bytes = (data_dma_width == 4) ?
1966 len_in_words << 2 : len_in_words << 3;
1967
1968 /* copy rest of data */
1969 memcpy(cdns_ctrl->buf, buf + written_bytes,
1970 len - written_bytes);
1971
1972 /* write all expected by nand controller data */
1973 if (data_dma_width == 4)
1974 iowrite32_rep(cdns_ctrl->io.virt,
1975 cdns_ctrl->buf,
1976 sdma_size / 4 - len_in_words);
1977 else
1978 iowrite64_rep(cdns_ctrl->io.virt,
1979 cdns_ctrl->buf,
1980 sdma_size / 8 - len_in_words);
1981 }
1982
1983 return 0;
1984 }
1985
1986 if (cadence_nand_dma_buf_ok(cdns_ctrl, buf, len)) {
1987 status = cadence_nand_slave_dma_transfer(cdns_ctrl, (void *)buf,
1988 cdns_ctrl->io.dma,
1989 len, DMA_TO_DEVICE);
1990 if (status == 0)
1991 return 0;
1992
1993 dev_warn(cdns_ctrl->dev,
1994 "Slave DMA transfer failed. Try again using bounce buffer.");
1995 }
1996
1997 /* If DMA transfer is not possible or failed then use bounce buffer. */
1998 memcpy(cdns_ctrl->buf, buf, len);
1999
2000 status = cadence_nand_slave_dma_transfer(cdns_ctrl, cdns_ctrl->buf,
2001 cdns_ctrl->io.dma,
2002 sdma_size, DMA_TO_DEVICE);
2003
2004 if (status)
2005 dev_err(cdns_ctrl->dev, "Slave DMA transfer failed");
2006
2007 return status;
2008 }
2009
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-09-20 22:31 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-20 22:31 kernel test robot [this message]
2022-09-21 8:40 ` [mtd:nand/next 11/31] drivers/mtd/nand/raw/cadence-nand-controller.c:1893:4: error: implicit declaration of function 'ioread64_rep' is invalid in C99 Miquel Raynal
2022-09-21 8:40 ` Miquel Raynal
2022-09-21 8:45 ` Valentin Korenblit
2022-09-21 8:45 ` Valentin Korenblit
2022-09-21 12:27 ` Valentin Korenblit
2022-09-21 14:47 ` Miquel Raynal
2022-09-21 14:47 ` Miquel Raynal
2022-09-21 15:49 ` Arnd Bergmann
2022-09-21 15:49 ` Arnd Bergmann
2022-09-21 16:38 ` Miquel Raynal
2022-09-21 16:38 ` Miquel Raynal
2022-09-21 20:01 ` Arnd Bergmann
2022-09-21 20:01 ` Arnd Bergmann
2022-09-22 8:18 ` Valentin Korenblit
2022-09-22 9:36 ` Miquel Raynal
2022-09-22 9:36 ` Miquel Raynal
2022-09-22 10:52 ` Arnd Bergmann
2022-09-22 10:52 ` Arnd Bergmann
2022-09-22 11:00 ` Miquel Raynal
2022-09-22 11:00 ` Miquel Raynal
2022-09-27 14:56 ` Valentin Korenblit
2022-09-27 20:02 ` Arnd Bergmann
2022-09-27 20:02 ` Arnd Bergmann
2022-09-28 8:41 ` Valentin Korenblit
2022-09-28 8:41 ` Valentin Korenblit
2022-09-28 8:56 ` Arnd Bergmann
2022-09-28 8:56 ` Arnd Bergmann
2022-09-28 10:04 ` Valentin Korenblit
2022-09-28 10:04 ` Valentin Korenblit
2022-09-22 9:38 ` Miquel Raynal
2022-09-22 9:38 ` Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202209210641.MziHAbW7-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=miquel.raynal@bootlin.com \
--cc=vkorenblit@sequans.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.