linux ATA驱动中的宏AHCI_MAX_CLKS
源码疑问
Linux ATA驱动中libahci_platform_enable_clks函数会开启platform clocks,函数原型为drivers/ata/libahci_platform.c
int ahci_platform_enable_clks(struct ahci_host_priv *hpriv)
{
int c, rc;
for(c=0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++){
rc = clk_prepare_enable(hpriv->clks[c]);
if(rc)
goto disable_unprepare_clk;
}
return 0;
disable_unprepare_clk:
while(--c >= 0)
clk_disable_unprepare(hpriv->clks[c]);
return rc;
}
EXPORT_SYMBOL_GPL(ahci_platform_enable_clks);
问题:AHCI_MAX_CLKS
在drivers/ata/ahci.h文件中定义其为枚举变量AHCI_MAX_CLKS = 5,理解代码为什么会是5的时候参考AHCI1.3 && SATA3.0 && Synopsys SATA手册,只在Synopsys SATA手册找到clock domains中存在,具体应用如下:
在https://www.kernel.org/doc/html/v4.18/driver-api/libata.html#libata-driver-api查找相关变量,未果!