From: kernel test robot <lkp@intel.com>
To: kernel@openeuler.org
Cc: oe-kbuild-all@lists.linux.dev
Subject: [openeuler:OLK-6.6 3493/3493] drivers/ata/ahci_zhaoxin_sgpio.c:31:5: warning: no previous prototype for 'ahci_wait_em_reset'
Date: Mon, 8 Dec 2025 19:58:59 +0100 [thread overview]
Message-ID: <202512081930.DAECHxia-lkp@intel.com> (raw)
Hi leoliu-oc,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 36141432a37f7dedddde8825e724b07ce3a440fb
commit: fb43492008c11fe89e510dd63383a2d37ea3cf8e [3493/3493] ata: ahci: Add support for AHCI SGPIO Enclosure Management
config: x86_64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251208/202512081930.DAECHxia-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251208/202512081930.DAECHxia-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512081930.DAECHxia-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/ata/ahci_zhaoxin_sgpio.c:31:5: warning: no previous prototype for 'ahci_wait_em_reset' [-Wmissing-prototypes]
31 | int ahci_wait_em_reset(struct sgpio_zhaoxin *sgpio_zhaoxin, u32 retry)
| ^~~~~~~~~~~~~~~~~~
>> drivers/ata/ahci_zhaoxin_sgpio.c:55:6: warning: no previous prototype for 'ahci_zhaoxin_set_em_sgpio' [-Wmissing-prototypes]
55 | void ahci_zhaoxin_set_em_sgpio(struct sgpio_zhaoxin *sgpio_zhaoxin)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/ata/ahci_zhaoxin_sgpio.c:99:6: warning: no previous prototype for 'ahci_zhaoxin_set_em_sgpio_gpmode' [-Wmissing-prototypes]
99 | void ahci_zhaoxin_set_em_sgpio_gpmode(struct sgpio_zhaoxin *sgpio_zhaoxin)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/ata/ahci_zhaoxin_sgpio.c:601:6: warning: no previous prototype for 'set_em_messages' [-Wmissing-prototypes]
601 | void set_em_messages(struct sgpio_zhaoxin *sgpio_zhaoxin)
| ^~~~~~~~~~~~~~~
>> drivers/ata/ahci_zhaoxin_sgpio.c:621:5: warning: no previous prototype for 'add_sgpio_zhaoxin' [-Wmissing-prototypes]
621 | int add_sgpio_zhaoxin(void)
| ^~~~~~~~~~~~~~~~~
>> drivers/ata/ahci_zhaoxin_sgpio.c:673:6: warning: no previous prototype for 'remove_sgpio_zhaoxin' [-Wmissing-prototypes]
673 | void remove_sgpio_zhaoxin(void)
| ^~~~~~~~~~~~~~~~~~~~
vim +/ahci_wait_em_reset +31 drivers/ata/ahci_zhaoxin_sgpio.c
25
26 static unsigned int zhaoxin_em_type __read_mostly = AHCI_EM_MSG_LED_MODE; /*LED protocol*/
27 module_param(zhaoxin_em_type, int, 0644);
28 MODULE_PARM_DESC(zhaoxin_em_type,
29 "AHCI Enclosure Management Message type control (1 = led on, 2 = sgpio on,3 = sgpio gp on)");
30
> 31 int ahci_wait_em_reset(struct sgpio_zhaoxin *sgpio_zhaoxin, u32 retry)
32 {
33 void __iomem *mmio = sgpio_zhaoxin->mmio;
34 u32 em_ctl;
35
36 if (!sgpio_zhaoxin || retry == 0) {
37 pr_err("In ahci wait em reset, invalid param\n");
38 return -EINVAL;
39 }
40
41 while (retry--) { /*EM_CTL needs reset at least 64ms*/
42 em_ctl = readl(mmio + HOST_EM_CTL);
43 if (em_ctl & EM_CTL_RST)
44 usleep_range(10000, 20000); /*EM_CTL still in reset, usleep 10ms*/
45 else
46 break;
47
48 if (!retry)
49 pr_err("Wait for EM_CTL reset, time out\n");
50 }
51
52 return 0;
53 }
54
> 55 void ahci_zhaoxin_set_em_sgpio(struct sgpio_zhaoxin *sgpio_zhaoxin)
56 {
57 void __iomem *mmio = sgpio_zhaoxin->mmio;
58 void __iomem *em_mmio = mmio + SGPIO_OFFSET;
59
60 u32 read;
61
62 sgpio_zhaoxin->sgpio_reg.cfg_0.enable = 1;
63
64 sgpio_zhaoxin->sgpio_reg.cfg_1.blink_gen_a = 0x7;
65 sgpio_zhaoxin->sgpio_reg.cfg_1.blink_gen_b = 0x3;
66 sgpio_zhaoxin->sgpio_reg.cfg_1.blink_gen_c = 0x0;
67 sgpio_zhaoxin->sgpio_reg.cfg_1.stretch_act_on = 0;
68 sgpio_zhaoxin->sgpio_reg.cfg_1.stretch_act_off = 0;
69 sgpio_zhaoxin->sgpio_reg.cfg_1.max_act_on = 2;
70 sgpio_zhaoxin->sgpio_reg.cfg_1.force_act_off = 1;
71
72 sgpio_zhaoxin->sgpio_reg.gp_transmit_cfg.sload = 0xf;
73 sgpio_zhaoxin->sgpio_reg.gp_transmit_cfg.count = 0x0;
74
75 sgpio_zhaoxin->sgpio_reg.transmit_0.sgpio_tx_0 = 0;
76 sgpio_zhaoxin->sgpio_reg.transmit_1.sgpio_tx_1 = 0;
77 sgpio_zhaoxin->sgpio_reg.gp_transmit_reg.sgpio_tx_gp = 0;
78
79 sgpio_zhaoxin->sgpio_reg.receive_reg.sgpio_rx = 0x07070707;
80 sgpio_zhaoxin->sgpio_reg.gp_receive_reg.sgpio_rx_gp = 0;
81
82 /*Setup SGPIO type*/
83 read = readl(mmio + sgpio_zhaoxin->em_loc);
84 read = read | SGPIO_MESSAGE_HEAD; /*LED register MSG_HEAD, select SGPIO*/
85 writel(read, mmio + sgpio_zhaoxin->em_loc);
86
87 /*Setup gp mode*/
88 writel(sgpio_zhaoxin->sgpio_reg.gp_transmit_cfg.sgpio_tx_gp_cfg, em_mmio + 0x38);
89
90 /*Initial SGPIO CFG1*/
91 writel(sgpio_zhaoxin->sgpio_reg.cfg_1.sgpio_cfg_1, em_mmio + 0x4);
92
93 /*Initial SGPIO CFG0*/
94 read = readl(em_mmio);
95 read |= sgpio_zhaoxin->sgpio_reg.cfg_0.sgpio_cfg_0;
96 writel(read, em_mmio);
97 }
98
> 99 void ahci_zhaoxin_set_em_sgpio_gpmode(struct sgpio_zhaoxin *sgpio_zhaoxin)
100 {
101 void __iomem *mmio = sgpio_zhaoxin->mmio;
102 void __iomem *em_mmio = mmio + SGPIO_OFFSET;
103 u32 read;
104
105 sgpio_zhaoxin->sgpio_reg.cfg_0.enable = 1;
106
107 sgpio_zhaoxin->sgpio_reg.gp_transmit_cfg.sload = 0xf;
108 sgpio_zhaoxin->sgpio_reg.gp_transmit_cfg.count = 0xff;
109
110 sgpio_zhaoxin->sgpio_reg.transmit_0.sgpio_tx_0 = 0;
111 sgpio_zhaoxin->sgpio_reg.transmit_1.sgpio_tx_1 = 0;
112 sgpio_zhaoxin->sgpio_reg.gp_transmit_reg.sgpio_tx_gp = 0;
113
114 sgpio_zhaoxin->sgpio_reg.receive_reg.sgpio_rx = 0;
115 sgpio_zhaoxin->sgpio_reg.gp_receive_reg.sgpio_rx_gp = 0xff0f0000;
116
117 /*Setup SGPIO type*/
118 read = readl(mmio + sgpio_zhaoxin->em_loc);
119 read |= SGPIO_MESSAGE_HEAD;
120 writel(read, mmio + sgpio_zhaoxin->em_loc);
121
122 /*Setup gp mode*/
123 writel(sgpio_zhaoxin->sgpio_reg.gp_transmit_cfg.sgpio_tx_gp_cfg, em_mmio + 0x38);
124
125 /*Enable SGPIO*/
126 writel(sgpio_zhaoxin->sgpio_reg.cfg_0.sgpio_cfg_0, em_mmio);
127 }
128
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-12-08 18:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202512081930.DAECHxia-lkp@intel.com \
--to=lkp@intel.com \
--cc=kernel@openeuler.org \
--cc=oe-kbuild-all@lists.linux.dev \
/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.