From: kernel test robot <lkp@intel.com> To: Walter Wu <walter-zh.wu@mediatek.com> Cc: clang-built-linux@googlegroups.com, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Nathan Chancellor <natechancellor@gmail.com>, Andrey Konovalov <andreyknvl@google.com>, Andrew Morton <akpm@linux-foundation.org>, Linux Memory Management List <linux-mm@kvack.org> Subject: drivers/usb/misc/sisusbvga/sisusb.c:1878:12: warning: stack frame size (16672) exceeds limit (8192) in function 'sisusb_init_gfxcore' Date: Thu, 15 Jul 2021 01:19:25 +0800 [thread overview] Message-ID: <202107150116.Q5CQ7MRF-lkp@intel.com> (raw) [-- Attachment #1: Type: text/plain, Size: 33877 bytes --] tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 40226a3d96ef8ab8980f032681c8bfd46d63874e commit: 02c587733c8161355a43e6e110c2e29bd0acff72 kasan: remove redundant config option date: 3 months ago config: powerpc-randconfig-r022-20210714 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d69635ed9ecf36fd0ca85906bfde17949671cbe) 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 # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02c587733c8161355a43e6e110c2e29bd0acff72 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 02c587733c8161355a43e6e110c2e29bd0acff72 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:216:1: note: expanded from here __do_insw ^ arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw' #define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:218:1: note: expanded from here __do_insl ^ arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl' #define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:220:1: note: expanded from here __do_outsb ^ arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb' #define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:222:1: note: expanded from here __do_outsw ^ arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw' #define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:224:1: note: expanded from here __do_outsl ^ arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl' #define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ >> drivers/usb/misc/sisusbvga/sisusb.c:1878:12: warning: stack frame size (16672) exceeds limit (8192) in function 'sisusb_init_gfxcore' [-Wframe-larger-than] static int sisusb_init_gfxcore(struct sisusb_usb_data *sisusb) ^ >> drivers/usb/misc/sisusbvga/sisusb.c:1750:13: warning: stack frame size (8224) exceeds limit (8192) in function 'sisusb_set_default_mode' [-Wframe-larger-than] static void sisusb_set_default_mode(struct sisusb_usb_data *sisusb, ^ 9 warnings generated. vim +/sisusb_init_gfxcore +1878 drivers/usb/misc/sisusbvga/sisusb.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 1749 a3fe2605a60d1d Hariprasad Kelam 2019-06-09 @1750 static void sisusb_set_default_mode(struct sisusb_usb_data *sisusb, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1751 int touchengines) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1752 { a3fe2605a60d1d Hariprasad Kelam 2019-06-09 1753 int i, j, modex, bpp, du; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1754 u8 sr31, cr63, tmp8; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1755 static const char attrdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1756 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1757 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1758 0x01, 0x00, 0x00, 0x00 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1759 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1760 static const char crtcrdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1761 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1762 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1763 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1764 0xff ^1da177e4c3f41 Linus Torvalds 2005-04-16 1765 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1766 static const char grcdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1767 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1768 0xff ^1da177e4c3f41 Linus Torvalds 2005-04-16 1769 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1770 static const char crtcdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1771 0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1772 0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1773 0x00 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1774 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1775 795a8075e9a53f Colin Ian King 2018-07-13 1776 modex = 640; bpp = 2; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1777 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1778 GETIREG(SISSR, 0x31, &sr31); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1779 GETIREG(SISCR, 0x63, &cr63); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1780 SETIREGOR(SISSR, 0x01, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1781 SETIREG(SISCR, 0x63, cr63 & 0xbf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1782 SETIREGOR(SISCR, 0x17, 0x80); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1783 SETIREGOR(SISSR, 0x1f, 0x04); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1784 SETIREGAND(SISSR, 0x07, 0xfb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1785 SETIREG(SISSR, 0x00, 0x03); /* seq */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1786 SETIREG(SISSR, 0x01, 0x21); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1787 SETIREG(SISSR, 0x02, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1788 SETIREG(SISSR, 0x03, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1789 SETIREG(SISSR, 0x04, 0x0e); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1790 SETREG(SISMISCW, 0x23); /* misc */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1791 for (i = 0; i <= 0x18; i++) { /* crtc */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1792 SETIREG(SISCR, i, crtcrdata[i]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1793 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1794 for (i = 0; i <= 0x13; i++) { /* att */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1795 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1796 SETREG(SISAR, i); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1797 SETREG(SISAR, attrdata[i]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1798 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1799 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1800 SETREG(SISAR, 0x14); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1801 SETREG(SISAR, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1802 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1803 SETREG(SISAR, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1804 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1805 for (i = 0; i <= 0x08; i++) { /* grc */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1806 SETIREG(SISGR, i, grcdata[i]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1807 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1808 SETIREGAND(SISGR, 0x05, 0xbf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1809 for (i = 0x0A; i <= 0x0E; i++) { /* clr ext */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1810 SETIREG(SISSR, i, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1811 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1812 SETIREGAND(SISSR, 0x37, 0xfe); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1813 SETREG(SISMISCW, 0xef); /* sync */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1814 SETIREG(SISCR, 0x11, 0x00); /* crtc */ f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1815 for (j = 0x00, i = 0; i <= 7; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1816 SETIREG(SISCR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1817 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1818 for (j = 0x10; i <= 10; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1819 SETIREG(SISCR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1820 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1821 for (j = 0x15; i <= 12; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1822 SETIREG(SISCR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1823 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1824 for (j = 0x0A; i <= 15; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1825 SETIREG(SISSR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1826 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1827 SETIREG(SISSR, 0x0E, (crtcdata[16] & 0xE0)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1828 SETIREGANDOR(SISCR, 0x09, 0x5f, ((crtcdata[16] & 0x01) << 5)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1829 SETIREG(SISCR, 0x14, 0x4f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1830 du = (modex / 16) * (bpp * 2); /* offset/pitch */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1831 SETIREGANDOR(SISSR, 0x0e, 0xf0, ((du >> 8) & 0x0f)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1832 SETIREG(SISCR, 0x13, (du & 0xff)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1833 du <<= 5; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1834 tmp8 = du >> 8; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1835 SETIREG(SISSR, 0x10, tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1836 SETIREG(SISSR, 0x31, 0x00); /* VCLK */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1837 SETIREG(SISSR, 0x2b, 0x1b); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1838 SETIREG(SISSR, 0x2c, 0xe1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1839 SETIREG(SISSR, 0x2d, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1840 SETIREGAND(SISSR, 0x3d, 0xfe); /* FIFO */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1841 SETIREG(SISSR, 0x08, 0xae); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1842 SETIREGAND(SISSR, 0x09, 0xf0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1843 SETIREG(SISSR, 0x08, 0x34); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1844 SETIREGOR(SISSR, 0x3d, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1845 SETIREGAND(SISSR, 0x1f, 0x3f); /* mode regs */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1846 SETIREGANDOR(SISSR, 0x06, 0xc0, 0x0a); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1847 SETIREG(SISCR, 0x19, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1848 SETIREGAND(SISCR, 0x1a, 0xfc); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1849 SETIREGAND(SISSR, 0x0f, 0xb7); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1850 SETIREGAND(SISSR, 0x31, 0xfb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1851 SETIREGANDOR(SISSR, 0x21, 0x1f, 0xa0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1852 SETIREGAND(SISSR, 0x32, 0xf3); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1853 SETIREGANDOR(SISSR, 0x07, 0xf8, 0x03); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1854 SETIREG(SISCR, 0x52, 0x6c); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1855 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1856 SETIREG(SISCR, 0x0d, 0x00); /* adjust frame */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1857 SETIREG(SISCR, 0x0c, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1858 SETIREG(SISSR, 0x0d, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1859 SETIREGAND(SISSR, 0x37, 0xfe); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1860 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1861 SETIREG(SISCR, 0x32, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1862 SETIREGAND(SISSR, 0x01, 0xdf); /* enable display */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1863 SETIREG(SISCR, 0x63, (cr63 & 0xbf)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1864 SETIREG(SISSR, 0x31, (sr31 & 0xfb)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1865 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1866 if (touchengines) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1867 SETIREG(SISSR, 0x20, 0xa1); /* enable engines */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1868 SETIREGOR(SISSR, 0x1e, 0x5a); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1869 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1870 SETIREG(SISSR, 0x26, 0x01); /* disable cmdqueue */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1871 SETIREG(SISSR, 0x27, 0x1f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1872 SETIREG(SISSR, 0x26, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1873 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1874 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1875 SETIREG(SISCR, 0x34, 0x44); /* we just set std mode #44 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1876 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1877 06e21efa2d344b Peter Senna Tschudin 2016-01-15 @1878 static int sisusb_init_gfxcore(struct sisusb_usb_data *sisusb) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1879 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1880 int ret = 0, i, j, bw, chab, iret, retry = 3; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1881 u8 tmp8, ramtype; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1882 u32 tmp32; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1883 static const char mclktable[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1884 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1885 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1886 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1887 0x3b, 0x22, 0x01, 143 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1888 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1889 static const char eclktable[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1890 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1891 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1892 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1893 0x3b, 0x22, 0x01, 143 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1894 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1895 static const char ramtypetable1[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1896 0x00, 0x04, 0x60, 0x60, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1897 0x0f, 0x0f, 0x1f, 0x1f, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1898 0xba, 0xba, 0xba, 0xba, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1899 0xa9, 0xa9, 0xac, 0xac, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1900 0xa0, 0xa0, 0xa0, 0xa8, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1901 0x00, 0x00, 0x02, 0x02, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1902 0x30, 0x30, 0x40, 0x40 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1903 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1904 static const char ramtypetable2[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1905 0x77, 0x77, 0x44, 0x44, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1906 0x77, 0x77, 0x44, 0x44, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1907 0x00, 0x00, 0x00, 0x00, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1908 0x5b, 0x5b, 0xab, 0xab, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1909 0x00, 0x00, 0xf0, 0xf8 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1910 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1911 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1912 while (retry--) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1913 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1914 /* Enable VGA */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1915 ret = GETREG(SISVGAEN, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1916 ret |= SETREG(SISVGAEN, (tmp8 | 0x01)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1917 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1918 /* Enable GPU access to VRAM */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1919 ret |= GETREG(SISMISCR, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1920 ret |= SETREG(SISMISCW, (tmp8 | 0x01)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1921 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1922 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1923 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1924 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1925 /* Reset registers */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1926 ret |= SETIREGAND(SISCR, 0x5b, 0xdf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1927 ret |= SETIREG(SISSR, 0x05, 0x86); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1928 ret |= SETIREGOR(SISSR, 0x20, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1929 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1930 ret |= SETREG(SISMISCW, 0x67); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1931 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1932 for (i = 0x06; i <= 0x1f; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1933 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1934 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1935 for (i = 0x21; i <= 0x27; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1936 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1937 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1938 for (i = 0x31; i <= 0x3d; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1939 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1940 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1941 for (i = 0x12; i <= 0x1b; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1942 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1943 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1944 for (i = 0x79; i <= 0x7c; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1945 ret |= SETIREG(SISCR, i, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1946 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1947 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1948 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1949 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1950 ret |= SETIREG(SISCR, 0x63, 0x80); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1951 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1952 ret |= GETIREG(SISSR, 0x3a, &ramtype); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1953 ramtype &= 0x03; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1954 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1955 ret |= SETIREG(SISSR, 0x28, mclktable[ramtype * 4]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1956 ret |= SETIREG(SISSR, 0x29, mclktable[(ramtype * 4) + 1]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1957 ret |= SETIREG(SISSR, 0x2a, mclktable[(ramtype * 4) + 2]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1958 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1959 ret |= SETIREG(SISSR, 0x2e, eclktable[ramtype * 4]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1960 ret |= SETIREG(SISSR, 0x2f, eclktable[(ramtype * 4) + 1]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1961 ret |= SETIREG(SISSR, 0x30, eclktable[(ramtype * 4) + 2]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1962 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1963 ret |= SETIREG(SISSR, 0x07, 0x18); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1964 ret |= SETIREG(SISSR, 0x11, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1965 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1966 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1967 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1968 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1969 for (i = 0x15, j = 0; i <= 0x1b; i++, j++) { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1970 ret |= SETIREG(SISSR, i, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1971 ramtypetable1[(j*4) + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1972 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1973 for (i = 0x40, j = 0; i <= 0x44; i++, j++) { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1974 ret |= SETIREG(SISCR, i, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1975 ramtypetable2[(j*4) + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1976 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1977 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1978 ret |= SETIREG(SISCR, 0x49, 0xaa); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1979 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1980 ret |= SETIREG(SISSR, 0x1f, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1981 ret |= SETIREG(SISSR, 0x20, 0xa0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1982 ret |= SETIREG(SISSR, 0x23, 0xf6); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1983 ret |= SETIREG(SISSR, 0x24, 0x0d); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1984 ret |= SETIREG(SISSR, 0x25, 0x33); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1985 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1986 ret |= SETIREG(SISSR, 0x11, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1987 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1988 ret |= SETIREGOR(SISPART1, 0x2f, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1989 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1990 ret |= SETIREGAND(SISCAP, 0x3f, 0xef); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1991 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1992 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1993 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1994 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1995 ret |= SETIREG(SISPART1, 0x00, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1996 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1997 ret |= GETIREG(SISSR, 0x13, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1998 tmp8 >>= 4; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1999 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2000 ret |= SETIREG(SISPART1, 0x02, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2001 ret |= SETIREG(SISPART1, 0x2e, 0x08); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2002 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2003 ret |= sisusb_read_pci_config(sisusb, 0x50, &tmp32); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2004 tmp32 &= 0x00f00000; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2005 tmp8 = (tmp32 == 0x100000) ? 0x33 : 0x03; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2006 ret |= SETIREG(SISSR, 0x25, tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2007 tmp8 = (tmp32 == 0x100000) ? 0xaa : 0x88; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2008 ret |= SETIREG(SISCR, 0x49, tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2009 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2010 ret |= SETIREG(SISSR, 0x27, 0x1f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2011 ret |= SETIREG(SISSR, 0x31, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2012 ret |= SETIREG(SISSR, 0x32, 0x11); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2013 ret |= SETIREG(SISSR, 0x33, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2014 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2015 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2016 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2017 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2018 ret |= SETIREG(SISCR, 0x83, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2019 a3fe2605a60d1d Hariprasad Kelam 2019-06-09 2020 sisusb_set_default_mode(sisusb, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2021 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2022 ret |= SETIREGAND(SISSR, 0x21, 0xdf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2023 ret |= SETIREGOR(SISSR, 0x01, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2024 ret |= SETIREGOR(SISSR, 0x16, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2025 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2026 ret |= sisusb_triggersr16(sisusb, ramtype); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2027 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2028 /* Disable refresh */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2029 ret |= SETIREGAND(SISSR, 0x17, 0xf8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2030 ret |= SETIREGOR(SISSR, 0x19, 0x03); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2031 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2032 ret |= sisusb_getbuswidth(sisusb, &bw, &chab); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2033 ret |= sisusb_verify_mclk(sisusb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2034 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2035 if (ramtype <= 1) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 2036 ret |= sisusb_get_sdram_size(sisusb, &iret, bw, chab); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2037 if (iret) { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2038 dev_err(&sisusb->sisusb_dev->dev, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2039 "RAM size detection failed, assuming 8MB video RAM\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2040 ret |= SETIREG(SISSR, 0x14, 0x31); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2041 /* TODO */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2042 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2043 } else { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2044 dev_err(&sisusb->sisusb_dev->dev, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2045 "DDR RAM device found, assuming 8MB video RAM\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2046 ret |= SETIREG(SISSR, 0x14, 0x31); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2047 /* *** TODO *** */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2048 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2049 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2050 /* Enable refresh */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2051 ret |= SETIREG(SISSR, 0x16, ramtypetable1[4 + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2052 ret |= SETIREG(SISSR, 0x17, ramtypetable1[8 + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2053 ret |= SETIREG(SISSR, 0x19, ramtypetable1[16 + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2054 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2055 ret |= SETIREGOR(SISSR, 0x21, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2056 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2057 ret |= SETIREG(SISSR, 0x22, 0xfb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2058 ret |= SETIREG(SISSR, 0x21, 0xa5); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2059 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2060 if (ret == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 2061 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2062 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2063 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2064 return ret; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2065 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2066 :::::: The code at line 1878 was first introduced by commit :::::: 06e21efa2d344b5e29bf680e623fa76dbcb62580 usb-misc: sisusbvga: Fix coding style: vertical whitespace changes :::::: TO: Peter Senna Tschudin <peter.senna@collabora.com> :::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 30493 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: drivers/usb/misc/sisusbvga/sisusb.c:1878:12: warning: stack frame size (16672) exceeds limit (8192) in function 'sisusb_init_gfxcore' Date: Thu, 15 Jul 2021 01:19:25 +0800 [thread overview] Message-ID: <202107150116.Q5CQ7MRF-lkp@intel.com> (raw) [-- Attachment #1: Type: text/plain, Size: 34341 bytes --] tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 40226a3d96ef8ab8980f032681c8bfd46d63874e commit: 02c587733c8161355a43e6e110c2e29bd0acff72 kasan: remove redundant config option date: 3 months ago config: powerpc-randconfig-r022-20210714 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d69635ed9ecf36fd0ca85906bfde17949671cbe) 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 # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02c587733c8161355a43e6e110c2e29bd0acff72 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 02c587733c8161355a43e6e110c2e29bd0acff72 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:216:1: note: expanded from here __do_insw ^ arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw' #define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:218:1: note: expanded from here __do_insl ^ arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl' #define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:220:1: note: expanded from here __do_outsb ^ arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb' #define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:222:1: note: expanded from here __do_outsw ^ arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw' #define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/usb/misc/sisusbvga/sisusb.c:50: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:224:1: note: expanded from here __do_outsl ^ arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl' #define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ >> drivers/usb/misc/sisusbvga/sisusb.c:1878:12: warning: stack frame size (16672) exceeds limit (8192) in function 'sisusb_init_gfxcore' [-Wframe-larger-than] static int sisusb_init_gfxcore(struct sisusb_usb_data *sisusb) ^ >> drivers/usb/misc/sisusbvga/sisusb.c:1750:13: warning: stack frame size (8224) exceeds limit (8192) in function 'sisusb_set_default_mode' [-Wframe-larger-than] static void sisusb_set_default_mode(struct sisusb_usb_data *sisusb, ^ 9 warnings generated. vim +/sisusb_init_gfxcore +1878 drivers/usb/misc/sisusbvga/sisusb.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 1749 a3fe2605a60d1d Hariprasad Kelam 2019-06-09 @1750 static void sisusb_set_default_mode(struct sisusb_usb_data *sisusb, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1751 int touchengines) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1752 { a3fe2605a60d1d Hariprasad Kelam 2019-06-09 1753 int i, j, modex, bpp, du; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1754 u8 sr31, cr63, tmp8; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1755 static const char attrdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1756 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1757 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1758 0x01, 0x00, 0x00, 0x00 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1759 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1760 static const char crtcrdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1761 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1762 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1763 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1764 0xff ^1da177e4c3f41 Linus Torvalds 2005-04-16 1765 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1766 static const char grcdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1767 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1768 0xff ^1da177e4c3f41 Linus Torvalds 2005-04-16 1769 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1770 static const char crtcdata[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1771 0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1772 0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1773 0x00 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1774 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1775 795a8075e9a53f Colin Ian King 2018-07-13 1776 modex = 640; bpp = 2; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1777 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1778 GETIREG(SISSR, 0x31, &sr31); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1779 GETIREG(SISCR, 0x63, &cr63); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1780 SETIREGOR(SISSR, 0x01, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1781 SETIREG(SISCR, 0x63, cr63 & 0xbf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1782 SETIREGOR(SISCR, 0x17, 0x80); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1783 SETIREGOR(SISSR, 0x1f, 0x04); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1784 SETIREGAND(SISSR, 0x07, 0xfb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1785 SETIREG(SISSR, 0x00, 0x03); /* seq */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1786 SETIREG(SISSR, 0x01, 0x21); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1787 SETIREG(SISSR, 0x02, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1788 SETIREG(SISSR, 0x03, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1789 SETIREG(SISSR, 0x04, 0x0e); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1790 SETREG(SISMISCW, 0x23); /* misc */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1791 for (i = 0; i <= 0x18; i++) { /* crtc */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1792 SETIREG(SISCR, i, crtcrdata[i]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1793 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1794 for (i = 0; i <= 0x13; i++) { /* att */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1795 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1796 SETREG(SISAR, i); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1797 SETREG(SISAR, attrdata[i]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1798 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1799 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1800 SETREG(SISAR, 0x14); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1801 SETREG(SISAR, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1802 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1803 SETREG(SISAR, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1804 GETREG(SISINPSTAT, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1805 for (i = 0; i <= 0x08; i++) { /* grc */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1806 SETIREG(SISGR, i, grcdata[i]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1807 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1808 SETIREGAND(SISGR, 0x05, 0xbf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1809 for (i = 0x0A; i <= 0x0E; i++) { /* clr ext */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1810 SETIREG(SISSR, i, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1811 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1812 SETIREGAND(SISSR, 0x37, 0xfe); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1813 SETREG(SISMISCW, 0xef); /* sync */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1814 SETIREG(SISCR, 0x11, 0x00); /* crtc */ f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1815 for (j = 0x00, i = 0; i <= 7; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1816 SETIREG(SISCR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1817 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1818 for (j = 0x10; i <= 10; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1819 SETIREG(SISCR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1820 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1821 for (j = 0x15; i <= 12; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1822 SETIREG(SISCR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1823 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1824 for (j = 0x0A; i <= 15; i++, j++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1825 SETIREG(SISSR, j, crtcdata[i]); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1826 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1827 SETIREG(SISSR, 0x0E, (crtcdata[16] & 0xE0)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1828 SETIREGANDOR(SISCR, 0x09, 0x5f, ((crtcdata[16] & 0x01) << 5)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1829 SETIREG(SISCR, 0x14, 0x4f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1830 du = (modex / 16) * (bpp * 2); /* offset/pitch */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1831 SETIREGANDOR(SISSR, 0x0e, 0xf0, ((du >> 8) & 0x0f)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1832 SETIREG(SISCR, 0x13, (du & 0xff)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1833 du <<= 5; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1834 tmp8 = du >> 8; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1835 SETIREG(SISSR, 0x10, tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1836 SETIREG(SISSR, 0x31, 0x00); /* VCLK */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1837 SETIREG(SISSR, 0x2b, 0x1b); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1838 SETIREG(SISSR, 0x2c, 0xe1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1839 SETIREG(SISSR, 0x2d, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1840 SETIREGAND(SISSR, 0x3d, 0xfe); /* FIFO */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1841 SETIREG(SISSR, 0x08, 0xae); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1842 SETIREGAND(SISSR, 0x09, 0xf0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1843 SETIREG(SISSR, 0x08, 0x34); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1844 SETIREGOR(SISSR, 0x3d, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1845 SETIREGAND(SISSR, 0x1f, 0x3f); /* mode regs */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1846 SETIREGANDOR(SISSR, 0x06, 0xc0, 0x0a); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1847 SETIREG(SISCR, 0x19, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1848 SETIREGAND(SISCR, 0x1a, 0xfc); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1849 SETIREGAND(SISSR, 0x0f, 0xb7); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1850 SETIREGAND(SISSR, 0x31, 0xfb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1851 SETIREGANDOR(SISSR, 0x21, 0x1f, 0xa0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1852 SETIREGAND(SISSR, 0x32, 0xf3); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1853 SETIREGANDOR(SISSR, 0x07, 0xf8, 0x03); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1854 SETIREG(SISCR, 0x52, 0x6c); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1855 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1856 SETIREG(SISCR, 0x0d, 0x00); /* adjust frame */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1857 SETIREG(SISCR, 0x0c, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1858 SETIREG(SISSR, 0x0d, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1859 SETIREGAND(SISSR, 0x37, 0xfe); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1860 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1861 SETIREG(SISCR, 0x32, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1862 SETIREGAND(SISSR, 0x01, 0xdf); /* enable display */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1863 SETIREG(SISCR, 0x63, (cr63 & 0xbf)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1864 SETIREG(SISSR, 0x31, (sr31 & 0xfb)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1865 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1866 if (touchengines) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1867 SETIREG(SISSR, 0x20, 0xa1); /* enable engines */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1868 SETIREGOR(SISSR, 0x1e, 0x5a); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1869 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1870 SETIREG(SISSR, 0x26, 0x01); /* disable cmdqueue */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1871 SETIREG(SISSR, 0x27, 0x1f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1872 SETIREG(SISSR, 0x26, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1873 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1874 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1875 SETIREG(SISCR, 0x34, 0x44); /* we just set std mode #44 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1876 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1877 06e21efa2d344b Peter Senna Tschudin 2016-01-15 @1878 static int sisusb_init_gfxcore(struct sisusb_usb_data *sisusb) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1879 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1880 int ret = 0, i, j, bw, chab, iret, retry = 3; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1881 u8 tmp8, ramtype; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1882 u32 tmp32; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1883 static const char mclktable[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1884 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1885 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1886 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1887 0x3b, 0x22, 0x01, 143 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1888 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1889 static const char eclktable[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1890 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1891 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1892 0x3b, 0x22, 0x01, 143, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1893 0x3b, 0x22, 0x01, 143 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1894 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1895 static const char ramtypetable1[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1896 0x00, 0x04, 0x60, 0x60, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1897 0x0f, 0x0f, 0x1f, 0x1f, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1898 0xba, 0xba, 0xba, 0xba, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1899 0xa9, 0xa9, 0xac, 0xac, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1900 0xa0, 0xa0, 0xa0, 0xa8, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1901 0x00, 0x00, 0x02, 0x02, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1902 0x30, 0x30, 0x40, 0x40 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1903 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1904 static const char ramtypetable2[] = { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1905 0x77, 0x77, 0x44, 0x44, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1906 0x77, 0x77, 0x44, 0x44, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1907 0x00, 0x00, 0x00, 0x00, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1908 0x5b, 0x5b, 0xab, 0xab, ^1da177e4c3f41 Linus Torvalds 2005-04-16 1909 0x00, 0x00, 0xf0, 0xf8 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1910 }; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1911 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1912 while (retry--) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1913 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1914 /* Enable VGA */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1915 ret = GETREG(SISVGAEN, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1916 ret |= SETREG(SISVGAEN, (tmp8 | 0x01)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1917 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1918 /* Enable GPU access to VRAM */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1919 ret |= GETREG(SISMISCR, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1920 ret |= SETREG(SISMISCW, (tmp8 | 0x01)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1921 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1922 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1923 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1924 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1925 /* Reset registers */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1926 ret |= SETIREGAND(SISCR, 0x5b, 0xdf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1927 ret |= SETIREG(SISSR, 0x05, 0x86); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1928 ret |= SETIREGOR(SISSR, 0x20, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1929 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1930 ret |= SETREG(SISMISCW, 0x67); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1931 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1932 for (i = 0x06; i <= 0x1f; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1933 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1934 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1935 for (i = 0x21; i <= 0x27; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1936 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1937 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1938 for (i = 0x31; i <= 0x3d; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1939 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1940 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1941 for (i = 0x12; i <= 0x1b; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1942 ret |= SETIREG(SISSR, i, 0x00); f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1943 f996c49d4fa4e8 Peter Senna Tschudin 2016-01-15 1944 for (i = 0x79; i <= 0x7c; i++) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1945 ret |= SETIREG(SISCR, i, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1946 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1947 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1948 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1949 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1950 ret |= SETIREG(SISCR, 0x63, 0x80); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1951 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1952 ret |= GETIREG(SISSR, 0x3a, &ramtype); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1953 ramtype &= 0x03; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1954 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1955 ret |= SETIREG(SISSR, 0x28, mclktable[ramtype * 4]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1956 ret |= SETIREG(SISSR, 0x29, mclktable[(ramtype * 4) + 1]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1957 ret |= SETIREG(SISSR, 0x2a, mclktable[(ramtype * 4) + 2]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1958 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1959 ret |= SETIREG(SISSR, 0x2e, eclktable[ramtype * 4]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1960 ret |= SETIREG(SISSR, 0x2f, eclktable[(ramtype * 4) + 1]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1961 ret |= SETIREG(SISSR, 0x30, eclktable[(ramtype * 4) + 2]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1962 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1963 ret |= SETIREG(SISSR, 0x07, 0x18); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1964 ret |= SETIREG(SISSR, 0x11, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1965 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1966 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1967 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1968 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1969 for (i = 0x15, j = 0; i <= 0x1b; i++, j++) { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1970 ret |= SETIREG(SISSR, i, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1971 ramtypetable1[(j*4) + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1972 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1973 for (i = 0x40, j = 0; i <= 0x44; i++, j++) { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1974 ret |= SETIREG(SISCR, i, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1975 ramtypetable2[(j*4) + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1976 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1977 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1978 ret |= SETIREG(SISCR, 0x49, 0xaa); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1979 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1980 ret |= SETIREG(SISSR, 0x1f, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1981 ret |= SETIREG(SISSR, 0x20, 0xa0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1982 ret |= SETIREG(SISSR, 0x23, 0xf6); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1983 ret |= SETIREG(SISSR, 0x24, 0x0d); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1984 ret |= SETIREG(SISSR, 0x25, 0x33); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1985 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1986 ret |= SETIREG(SISSR, 0x11, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1987 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1988 ret |= SETIREGOR(SISPART1, 0x2f, 0x01); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1989 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1990 ret |= SETIREGAND(SISCAP, 0x3f, 0xef); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1991 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1992 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 1993 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1994 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1995 ret |= SETIREG(SISPART1, 0x00, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1996 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1997 ret |= GETIREG(SISSR, 0x13, &tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1998 tmp8 >>= 4; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1999 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2000 ret |= SETIREG(SISPART1, 0x02, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2001 ret |= SETIREG(SISPART1, 0x2e, 0x08); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2002 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2003 ret |= sisusb_read_pci_config(sisusb, 0x50, &tmp32); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2004 tmp32 &= 0x00f00000; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2005 tmp8 = (tmp32 == 0x100000) ? 0x33 : 0x03; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2006 ret |= SETIREG(SISSR, 0x25, tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2007 tmp8 = (tmp32 == 0x100000) ? 0xaa : 0x88; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2008 ret |= SETIREG(SISCR, 0x49, tmp8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2009 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2010 ret |= SETIREG(SISSR, 0x27, 0x1f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2011 ret |= SETIREG(SISSR, 0x31, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2012 ret |= SETIREG(SISSR, 0x32, 0x11); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2013 ret |= SETIREG(SISSR, 0x33, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2014 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2015 if (ret) 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2016 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2017 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2018 ret |= SETIREG(SISCR, 0x83, 0x00); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2019 a3fe2605a60d1d Hariprasad Kelam 2019-06-09 2020 sisusb_set_default_mode(sisusb, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2021 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2022 ret |= SETIREGAND(SISSR, 0x21, 0xdf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2023 ret |= SETIREGOR(SISSR, 0x01, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2024 ret |= SETIREGOR(SISSR, 0x16, 0x0f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2025 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2026 ret |= sisusb_triggersr16(sisusb, ramtype); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2027 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2028 /* Disable refresh */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2029 ret |= SETIREGAND(SISSR, 0x17, 0xf8); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2030 ret |= SETIREGOR(SISSR, 0x19, 0x03); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2031 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2032 ret |= sisusb_getbuswidth(sisusb, &bw, &chab); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2033 ret |= sisusb_verify_mclk(sisusb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2034 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2035 if (ramtype <= 1) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 2036 ret |= sisusb_get_sdram_size(sisusb, &iret, bw, chab); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2037 if (iret) { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2038 dev_err(&sisusb->sisusb_dev->dev, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2039 "RAM size detection failed, assuming 8MB video RAM\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2040 ret |= SETIREG(SISSR, 0x14, 0x31); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2041 /* TODO */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2042 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2043 } else { 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2044 dev_err(&sisusb->sisusb_dev->dev, 06e21efa2d344b Peter Senna Tschudin 2016-01-15 2045 "DDR RAM device found, assuming 8MB video RAM\n"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2046 ret |= SETIREG(SISSR, 0x14, 0x31); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2047 /* *** TODO *** */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2048 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2049 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2050 /* Enable refresh */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 2051 ret |= SETIREG(SISSR, 0x16, ramtypetable1[4 + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2052 ret |= SETIREG(SISSR, 0x17, ramtypetable1[8 + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2053 ret |= SETIREG(SISSR, 0x19, ramtypetable1[16 + ramtype]); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2054 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2055 ret |= SETIREGOR(SISSR, 0x21, 0x20); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2056 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2057 ret |= SETIREG(SISSR, 0x22, 0xfb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2058 ret |= SETIREG(SISSR, 0x21, 0xa5); ^1da177e4c3f41 Linus Torvalds 2005-04-16 2059 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2060 if (ret == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 2061 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2062 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2063 ^1da177e4c3f41 Linus Torvalds 2005-04-16 2064 return ret; ^1da177e4c3f41 Linus Torvalds 2005-04-16 2065 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 2066 :::::: The code at line 1878 was first introduced by commit :::::: 06e21efa2d344b5e29bf680e623fa76dbcb62580 usb-misc: sisusbvga: Fix coding style: vertical whitespace changes :::::: TO: Peter Senna Tschudin <peter.senna@collabora.com> :::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 30493 bytes --]
next reply other threads:[~2021-07-14 17:20 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-14 17:19 kernel test robot [this message] 2021-07-14 17:19 ` drivers/usb/misc/sisusbvga/sisusb.c:1878:12: warning: stack frame size (16672) exceeds limit (8192) in function 'sisusb_init_gfxcore' kernel test robot -- strict thread matches above, loose matches on Subject: below -- 2021-07-14 17:08 kernel test robot 2021-07-14 17:08 ` kernel test robot
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=202107150116.Q5CQ7MRF-lkp@intel.com \ --to=lkp@intel.com \ --cc=akpm@linux-foundation.org \ --cc=andreyknvl@google.com \ --cc=clang-built-linux@googlegroups.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=natechancellor@gmail.com \ --cc=walter-zh.wu@mediatek.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: linkBe 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.