lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202310181402.y79qeFJw-lkp@intel.com>
Date:   Wed, 18 Oct 2023 15:07:33 +0800
From:   kernel test robot <lkp@...el.com>
To:     liuchang_125125@....com, jejb@...ux.ibm.com,
        martin.petersen@...cle.com, linux-scsi@...r.kernel.org,
        linux-kernel@...r.kernel.org
Cc:     oe-kbuild-all@...ts.linux.dev, mark.tao@...hubtech.com,
        shaper.liu@...hubtech.com, thomas.hu@...hubtech.com,
        chevron.li@...hubtech.com, charl.liu@...hubtech.com,
        Charl Liu <liuchang_125125@....com>
Subject: Re: [PATCH 6/9] scsi: bht: linux_os: Add the source files related to
 SCSI frame and driver entry

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 401644852d0b2a278811de38081be23f74b5bb04]

url:    https://github.com/intel-lab-lkp/linux/commits/liuchang_125125-163-com/scsi-Update-Kconfig-and-Makefile-for-supporting-Bayhub-s-SD-MMC-Card-interface-driver/20231017-123349
base:   401644852d0b2a278811de38081be23f74b5bb04
patch link:    https://lore.kernel.org/r/20231013083415.10330-1-liuchang_125125%40163.com
patch subject: [PATCH 6/9] scsi: bht: linux_os: Add the source files related to SCSI frame and driver entry
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20231018/202310181402.y79qeFJw-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231018/202310181402.y79qeFJw-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310181402.y79qeFJw-lkp@intel.com/

All warnings (new ones prefixed by >>):

   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/linux_os/linux_base.c:239:6: warning: no previous prototype for 'bht_bios_setting' [-Wmissing-prototypes]
     239 | void bht_bios_setting(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~
   drivers/scsi/bht/linux_os/linux_base.c: In function 'bht_sd_dma_init':
>> drivers/scsi/bht/linux_os/linux_base.c:610:9: warning: "CONFIG_X86_64" is not defined, evaluates to 0 [-Wundef]
     610 | #if     CONFIG_X86_64
         |         ^~~~~~~~~~~~~
   drivers/scsi/bht/linux_os/linux_base.c: At top level:
>> drivers/scsi/bht/linux_os/linux_base.c:803:6: warning: no previous prototype for 'bht_sd_remove' [-Wmissing-prototypes]
     803 | void bht_sd_remove(struct pci_dev *pdev)
         |      ^~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/linux_os/linux_api.c:444:5: warning: no previous prototype for 'pci_cfgio_readl' [-Wmissing-prototypes]
     444 | u32 pci_cfgio_readl(sd_host_t *host, u16 offset)
         |     ^~~~~~~~~~~~~~~
>> drivers/scsi/bht/linux_os/linux_api.c:480:6: warning: no previous prototype for 'timer_auto_cb2' [-Wmissing-prototypes]
     480 | void timer_auto_cb2(struct timer_list *t)
         |      ^~~~~~~~~~~~~~
>> drivers/scsi/bht/linux_os/linux_api.c:519:6: warning: no previous prototype for 'timer_subid_cb' [-Wmissing-prototypes]
     519 | void timer_subid_cb(PVOID ctx, PVOID pdx)
         |      ^~~~~~~~~~~~~~
>> drivers/scsi/bht/linux_os/linux_api.c:2059:6: warning: no previous prototype for 'os_bak_reg_hibernate' [-Wmissing-prototypes]
    2059 | void os_bak_reg_hibernate(void)
         |      ^~~~~~~~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/card/cardcommon.c:61:6: warning: no previous prototype for 'card_send_sdcmd_timeout' [-Wmissing-prototypes]
      61 | bool card_send_sdcmd_timeout(sd_card_t *card,
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/bht/card/cardcommon.c: In function 'card_set_csd_info':
>> drivers/scsi/bht/card/cardcommon.c:472:13: warning: variable 'value' set but not used [-Wunused-but-set-variable]
     472 |         u32 value, unit;
         |             ^~~~~
   drivers/scsi/bht/card/cardcommon.c: In function 'card_get_legacy_freq':
>> drivers/scsi/bht/card/cardcommon.c:867:54: warning: the comparison will always evaluate as 'false' for the address of 'dmdn_tbl' will never be NULL [-Waddress]
     867 |         if (host->cfg == NULL || host->cfg->dmdn_tbl == NULL) {
         |                                                      ^~
   In file included from drivers/scsi/bht/card/../include/basic.h:180,
                    from drivers/scsi/bht/card/cardcommon.c:20:
   drivers/scsi/bht/card/../include/cfgmng.h:1269:13: note: 'dmdn_tbl' declared here
    1269 |         u32 dmdn_tbl[MAX_FREQ_SUPP];
         |             ^~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/card/mmc.c:175:6: warning: no previous prototype for 'emmc_set_rca' [-Wmissing-prototypes]
     175 | bool emmc_set_rca(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~
>> drivers/scsi/bht/card/mmc.c:1610:6: warning: no previous prototype for 'mmc_degrade_policy' [-Wmissing-prototypes]
    1610 | void mmc_degrade_policy(sd_card_t *card)
         |      ^~~~~~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/card/sd.c:777:6: warning: no previous prototype for 'sd_switch_function_set_am' [-Wmissing-prototypes]
     777 | bool sd_switch_function_set_am(sd_card_t *card,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:837:6: warning: no previous prototype for 'sd_switch_function_set_ds' [-Wmissing-prototypes]
     837 | bool sd_switch_function_set_ds(sd_card_t *card,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:1060:6: warning: no previous prototype for 'sd_switch_access_mode' [-Wmissing-prototypes]
    1060 | bool sd_switch_access_mode(sd_card_t *card, sd_command_t *sd_cmd, bool *bchg)
         |      ^~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:1229:6: warning: no previous prototype for 'sd_switch_function_set' [-Wmissing-prototypes]
    1229 | bool sd_switch_function_set(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:1332:6: warning: no previous prototype for 'sd_tuning_hw' [-Wmissing-prototypes]
    1332 | bool sd_tuning_hw(sd_card_t *card, sd_command_t *sd_cmd, u32 timeout)
         |      ^~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:1393:6: warning: no previous prototype for 'sd_tuning_sw' [-Wmissing-prototypes]
    1393 | bool sd_tuning_sw(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:1641:6: warning: no previous prototype for 'sd_lightning_mode_sw' [-Wmissing-prototypes]
    1641 | bool sd_lightning_mode_sw(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:2522:6: warning: no previous prototype for 'sd_degrade_policy' [-Wmissing-prototypes]
    2522 | void sd_degrade_policy(sd_card_t *card)
         |      ^~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:2584:6: warning: no previous prototype for 'sd_thermal_control' [-Wmissing-prototypes]
    2584 | bool sd_thermal_control(sd_card_t *card)
         |      ^~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/sd.c:2785:6: warning: no previous prototype for 'sd_dll_divider' [-Wmissing-prototypes]
    2785 | bool sd_dll_divider(sd_card_t *card, sd_command_t *pcmd)
         |      ^~~~~~~~~~~~~~
   drivers/scsi/bht/card/sd.c: In function 'sd_dll_divider':
>> drivers/scsi/bht/card/sd.c:2788:17: warning: variable 'jj' set but not used [-Wunused-but-set-variable]
    2788 |         u32 ii, jj, pattern_i;
         |                 ^~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/card/thermal.c:222:6: warning: no previous prototype for 'func_thermal_control' [-Wmissing-prototypes]
     222 | bool func_thermal_control(sd_card_t *card)
         |      ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/thermal.c:305:6: warning: no previous prototype for 'func_thermal_update_time' [-Wmissing-prototypes]
     305 | void func_thermal_update_time(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/thermal.c:327:6: warning: no previous prototype for 'thermal_init' [-Wmissing-prototypes]
     327 | void thermal_init(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~
>> drivers/scsi/bht/card/thermal.c:343:6: warning: no previous prototype for 'thermal_uninit' [-Wmissing-prototypes]
     343 | void thermal_uninit(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/card/uhs2.c:229:6: warning: no previous prototype for 'uhs2_send_fullreset' [-Wmissing-prototypes]
     229 | bool uhs2_send_fullreset(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/uhs2.c:262:6: warning: no previous prototype for 'uhs2_trans_abort' [-Wmissing-prototypes]
     262 | bool uhs2_trans_abort(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/uhs2.c:333:6: warning: no previous prototype for 'uhs2_dev_enumeration' [-Wmissing-prototypes]
     333 | bool uhs2_dev_enumeration(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~~~~~
   drivers/scsi/bht/card/uhs2.c: In function 'uhs2_dev_enumeration':
>> drivers/scsi/bht/card/uhs2.c:339:12: warning: variable 'devcnt' set but not used [-Wunused-but-set-variable]
     339 |         u8 devcnt = 0;
         |            ^~~~~~
   drivers/scsi/bht/card/uhs2.c: At top level:
>> drivers/scsi/bht/card/uhs2.c:900:6: warning: no previous prototype for 'uhs2_card_configuration' [-Wmissing-prototypes]
     900 | bool uhs2_card_configuration(sd_card_t *card, sd_command_t *sd_cmd,
         |      ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/uhs2.c:1094:6: warning: no previous prototype for 'uhs2_degrade_policy' [-Wmissing-prototypes]
    1094 | void uhs2_degrade_policy(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/uhs2.c:1158:6: warning: no previous prototype for 'uhs2_sd_error_recovery' [-Wmissing-prototypes]
    1158 | bool uhs2_sd_error_recovery(sd_card_t *card, sd_command_t *sd_cmd)
         |      ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/uhs2.c:1208:5: warning: no previous prototype for 'card_get_uhs2_freq' [-Wmissing-prototypes]
    1208 | u32 card_get_uhs2_freq(sd_card_t *card)
         |     ^~~~~~~~~~~~~~~~~~
   drivers/scsi/bht/card/uhs2.c: In function 'card_get_uhs2_freq':
>> drivers/scsi/bht/card/uhs2.c:1215:54: warning: the comparison will always evaluate as 'false' for the address of 'dmdn_tbl' will never be NULL [-Waddress]
    1215 |         if (host->cfg == NULL || host->cfg->dmdn_tbl == NULL) {
         |                                                      ^~
   In file included from drivers/scsi/bht/card/../include/basic.h:180,
                    from drivers/scsi/bht/card/uhs2.c:20:
   drivers/scsi/bht/card/../include/cfgmng.h:1269:13: note: 'dmdn_tbl' declared here
    1269 |         u32 dmdn_tbl[MAX_FREQ_SUPP];
         |             ^~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/card/output_tuning.c:59:5: warning: no previous prototype for 'tuning_phase_result' [-Wmissing-prototypes]
      59 | u16 tuning_phase_result(sd_card_t *card)
         |     ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:105:4: warning: no previous prototype for 'select_tuning_phase' [-Wmissing-prototypes]
     105 | u8 select_tuning_phase(u16 tuning_phase, u8 phase_cnt)
         |    ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:144:6: warning: no previous prototype for 'set_input_tuning_phase' [-Wmissing-prototypes]
     144 | void set_input_tuning_phase(sd_card_t *card, u8 sel_phase)
         |      ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:163:6: warning: no previous prototype for 'generate_traverse_range' [-Wmissing-prototypes]
     163 | void generate_traverse_range(sd_card_t *card, u8 center_point, u8 offset,
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/bht/card/output_tuning.c: In function 'generate_traverse_range':
>> drivers/scsi/bht/card/output_tuning.c:166:13: warning: variable 'phase_mask_all_pass' set but not used [-Wunused-but-set-variable]
     166 |         u16 phase_mask_all_pass = 0;
         |             ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/bht/card/output_tuning.c: At top level:
>> drivers/scsi/bht/card/output_tuning.c:187:4: warning: no previous prototype for 'get_output_fix_phase' [-Wmissing-prototypes]
     187 | u8 get_output_fix_phase(sd_card_t *card)
         |    ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:217:5: warning: no previous prototype for 'find_input_phase_fail_point' [-Wmissing-prototypes]
     217 | u32 find_input_phase_fail_point(sd_card_t *card, u8 *output_phase,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:278:5: warning: no previous prototype for 'generate_output_input_phase_pair' [-Wmissing-prototypes]
     278 | u32 generate_output_input_phase_pair(sd_card_t *card, u8 input_fix_phase,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:415:5: warning: no previous prototype for 'output_tuning' [-Wmissing-prototypes]
     415 | int output_tuning(sd_card_t *card, u32 address, bool ddr200)
         |     ^~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:581:5: warning: no previous prototype for 'sdr104_sdr50_output_tuning' [-Wmissing-prototypes]
     581 | u32 sdr104_sdr50_output_tuning(sd_card_t *card, u32 address)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/card/output_tuning.c:675:5: warning: no previous prototype for 'ddr200_output_tuning' [-Wmissing-prototypes]
     675 | u32 ddr200_output_tuning(sd_card_t *card, u32 address)
         |     ^~~~~~~~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/host/host.c:168:6: warning: no previous prototype for 'host_enable_pll_software_reset' [-Wmissing-prototypes]
     168 | void host_enable_pll_software_reset(sd_host_t *host, bool on)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/host.c:223:6: warning: no previous prototype for 'host_init_clock' [-Wmissing-prototypes]
     223 | void host_init_clock(sd_host_t *host, u32 value)
         |      ^~~~~~~~~~~~~~~
   drivers/scsi/bht/host/host.c: In function 'host_init_400k_clock':
>> drivers/scsi/bht/host/host.c:240:54: warning: the comparison will always evaluate as 'false' for the address of 'dmdn_tbl' will never be NULL [-Waddress]
     240 |         if (host->cfg == NULL || host->cfg->dmdn_tbl == NULL) {
         |                                                      ^~
   In file included from drivers/scsi/bht/host/../include/basic.h:180,
                    from drivers/scsi/bht/host/host.c:19:
   drivers/scsi/bht/host/../include/cfgmng.h:1269:13: note: 'dmdn_tbl' declared here
    1269 |         u32 dmdn_tbl[MAX_FREQ_SUPP];
         |             ^~~~~~~~
   drivers/scsi/bht/host/host.c: At top level:
>> drivers/scsi/bht/host/host.c:325:6: warning: no previous prototype for 'host_dma_select' [-Wmissing-prototypes]
     325 | void host_dma_select(sd_host_t *host, e_trans_type mode)
         |      ^~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/host.c:573:6: warning: no previous prototype for 'host_set_vdd1_power_nodelay' [-Wmissing-prototypes]
     573 | void host_set_vdd1_power_nodelay(sd_host_t *host, bool on, u32 vol_sel)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/host.c:2615:6: warning: no previous prototype for 'host_error_int_recovery_stage1' [-Wmissing-prototypes]
    2615 | void host_error_int_recovery_stage1(sd_host_t *host, u16 error_int_state,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/host/hostven.c:558:6: warning: no previous prototype for 'hostven_update_dmdn' [-Wmissing-prototypes]
     558 | void hostven_update_dmdn(sd_host_t *host, u32 dmdn)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/hostven.c:599:6: warning: no previous prototype for 'hostven_drive_strength_cfg' [-Wmissing-prototypes]
     599 | void hostven_drive_strength_cfg(sd_host_t *host)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/hostven.c:655:6: warning: no previous prototype for 'hostven_transfer_init' [-Wmissing-prototypes]
     655 | void hostven_transfer_init(sd_host_t *host, bool enable)
         |      ^~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/hostven.c:1019:6: warning: no previous prototype for 'hostven_ocb_cfg' [-Wmissing-prototypes]
    1019 | void hostven_ocb_cfg(sd_host_t *host)
         |      ^~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/hostven.c:1054:6: warning: no previous prototype for 'hostven_switch_flow_cfg' [-Wmissing-prototypes]
    1054 | void hostven_switch_flow_cfg(sd_host_t *host)
         |      ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/hostven.c:1117:6: warning: no previous prototype for 'hostven_cmd_low_cfg' [-Wmissing-prototypes]
    1117 | void hostven_cmd_low_cfg(sd_host_t *host)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/host/hostven.c:1154:6: warning: no previous prototype for 'hostven_pinshare_cfg' [-Wmissing-prototypes]
    1154 | void hostven_pinshare_cfg(sd_host_t *host)
         |      ^~~~~~~~~~~~~~~~~~~~
   drivers/scsi/bht/host/hostven.c: In function 'hostven_load_pcr_cfg':
>> drivers/scsi/bht/host/hostven.c:1477:37: warning: variable 'reg_val' set but not used [-Wunused-but-set-variable]
    1477 |                                 u32 reg_val = 0;
         |                                     ^~~~~~~
   drivers/scsi/bht/host/hostven.c: At top level:
>> drivers/scsi/bht/host/hostven.c:2724:6: warning: no previous prototype for 'hostven_hs400_host_chk' [-Wmissing-prototypes]
    2724 | bool hostven_hs400_host_chk(sd_host_t *host)
         |      ^~~~~~~~~~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/host/cmdhandler.c:32:6: warning: no previous prototype for 'host_dump_reg' [-Wmissing-prototypes]
      32 | void host_dump_reg(sd_host_t *host)
         |      ^~~~~~~~~~~~~
..


vim +/bht_bios_setting +239 drivers/scsi/bht/linux_os/linux_base.c

   238	
 > 239	void bht_bios_setting(bht_dev_ext_t *pdx)
   240	{
   241		sd_host_t *host = &pdx->host;
   242		cfg_item_t *cfg = pdx->cfg;
   243		u32 regaddr;
   244		u32 regval;
   245	
   246		DbgInfo(MODULE_OS_ENTRYAPI, FEATURE_RW_TRACE, NOT_TO_RAM,
   247			"Enter %s chip type = 0x%x\n", __func__, host->chip_type);
   248	
   249		switch (host->chip_type) {
   250		case CHIP_GG8:
   251			regval = pci_readl(host, 0x300);
   252			regval &= ~(0xff);
   253			regval |= 0x33;
   254			pci_writel(host, 0x300, regval);
   255			break;
   256		case CHIP_SEAEAGLE2:
   257			/* we need set this to enable hs400 function */
   258			if (cfg->card_item.emmc_mode.enable_force_hs400)
   259				pci_orl(host, 0x3f8, BIT13);
   260			else
   261				pci_andl(host, 0x3f8, ~BIT13);
   262			break;
   263		case CHIP_SDS2_SD0:
   264		case CHIP_SDS2_SD1:
   265			/* pcie & pm #2, should be the first operation after detect host type */
   266			pci_writel(host, 0x438, m_ram_ema);
   267	
   268			/* uhsi #1 */
   269			pci_orl(host, 0x3e4, 0x80000000);
   270			/* uhsi #3 */
   271			regaddr = (host->chip_type == CHIP_SDS2_SD0) ? 0x300 : 0x380;
   272			pci_writel(host, regaddr, INPUT_TUNING_PASS_WINDOW);
   273	
   274			/* ushi #4 */
   275			regval = pci_readl(host, 0x3f8);
   276			regval &= ~(0x03u << 19);
   277			regval |= (m_vdd18_debounce_time << 19);
   278			pci_orl(host, 0x3f8, regval);
   279	
   280			/* uhsi #6 */
   281			regaddr = host->chip_type == CHIP_SDS2_SD0 ? 0x304 : 0x384;
   282			regval = pci_readl(host, regaddr);
   283			regval &= 0xffff8881;
   284			regval |= ((m_sd_3v3_clk_driver_strength & 0x07) << 12 |
   285				   (m_sd_3v3_cmddata_driver_strength & 0x07) << 8 |
   286				   (m_sd_1v8_clk_driver_strength & 0x07) << 4 |
   287				   (m_sd_1v8_cmddata_driver_strength & 0x07) << 1 | 1);
   288			pci_writel(host, regaddr, regval);
   289	
   290			/* ushii #1  */
   291			regval = pci_readl(host, 0x3fc);
   292			regval &= ~0x7f000000;
   293			regval |= ((m_cnfg_drv & 0x7f) << 24);
   294			pci_writel(host, 0x3fc, regval);
   295	
   296			regval = pci_readl(host, 0x400);
   297			regval &= ~(0xfff);
   298			regval |= ((m_cnfg_trm_code_tx & 0x0f) << 8);
   299			regval |= ((m_cnfg_trm_code_rx & 0x0f) << 4);
   300			regval |= (m_cnfg_rint_code & 0x0f);
   301			pci_writel(host, 0x400, regval);
   302	
   303			/* uhsii 2 */
   304			switch (m_vdd1_vdd2_source) {
   305			case 0:
   306				regval = pci_readl(host, 0x508);
   307				/* bit[25:24] = 2'b00 */
   308				regval &= ~(0x3 << 24);
   309				/* bit[9:8] = 2'b00 */
   310				regval &= ~(0x3 << 8);
   311				regval &= ~(0xf << 2);
   312				/* bit[5:2]=4'b0101 */
   313				regval |= 0x14;
   314				break;
   315			case 1:
   316				regval = pci_readl(host, 0x508);
   317				/* bit[25:24] = 2'b11 */
   318				regval |= (0x3 << 24);
   319				/* bit[9:8] = 2'b11 */
   320				regval |= (0x3 << 8);
   321				/* bit[5:2]=4'b1111 */
   322				regval |= (0xf << 2);
   323				break;
   324			case 2:
   325				regval = pci_readl(host, 0x508);
   326				/* bit[25:24] = 2'b00 */
   327				regval &= ~(0x3 << 24);
   328				/* bit[25:24] = 2'b10 */
   329				regval |= (0x2 << 24);
   330				/* bit[9:8] = 2'b00 */
   331				regval &= ~(0x3 << 8);
   332				/* bit[9:8] = 2'b10 */
   333				regval |= (0x2 << 8);
   334				regval &= ~(0xf << 2);
   335				/* bit[5:2]=4'b1010 */
   336				regval |= 0x28;
   337				break;
   338			default:
   339				break;
   340			}
   341			pci_writel(host, 0x508, regval);
   342	
   343			/* clock & generator #1 */
   344			if (m_ssc_enable != 0) {
   345				pci_writel(host, 0x420, 0xa0005e1e);
   346				pci_writel(host, 0x424, 0x61180000);
   347			} else {
   348				pci_writel(host, 0x420, 0xa000561e);
   349				pci_writel(host, 0x424, 0x21180000);
   350			}
   351			/* clock & generator #2 */
   352			pci_writel(host, 0x428, 0x01f0f0fa);
   353			pci_writel(host, 0x42c, 0x01f0f0fa);
   354			break;
   355		default:
   356			break;
   357		}
   358	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ