All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Chen Meng J <meng.j.chen@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, renjiaox <jiaojiaox.ren@intel.com>,
	zouxiaoh <xiaohong.zou@intel.com>
Subject: [intel-lts:5.15/linux 26/38] drivers/media/platform/intel/ipu6-acpi-pdata.c:55:6: warning: no previous prototype for function 'print_serdes_sdinfo'
Date: Sun, 5 Mar 2023 10:50:43 +0800	[thread overview]
Message-ID: <202303051033.oiyLpANP-lkp@intel.com> (raw)

Hi Chen,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://github.com/intel/linux-intel-lts.git 5.15/linux
head:   25cecc1dca44bc66edfba4448f0d970ca6bcbe63
commit: 4de71cacfa75fc249aa6f79004ee09b3ae17ce41 [26/38] media: intel: correct dependency for PDATA and ACPI
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20230305/202303051033.oiyLpANP-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel/linux-intel-lts/commit/4de71cacfa75fc249aa6f79004ee09b3ae17ce41
        git remote add intel-lts https://github.com/intel/linux-intel-lts.git
        git fetch --no-tags intel-lts 5.15/linux
        git checkout 4de71cacfa75fc249aa6f79004ee09b3ae17ce41
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/media/platform/intel/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303051033.oiyLpANP-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/media/platform/intel/ipu6-acpi-pdata.c:55:6: warning: no previous prototype for function 'print_serdes_sdinfo' [-Wmissing-prototypes]
   void print_serdes_sdinfo(struct serdes_subdev_info *sdinfo)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:55:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void print_serdes_sdinfo(struct serdes_subdev_info *sdinfo)
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:83:6: warning: no previous prototype for function 'print_serdes_subdev' [-Wmissing-prototypes]
   void print_serdes_subdev(struct ipu_isys_subdev_info *sd)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:83:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void print_serdes_subdev(struct ipu_isys_subdev_info *sd)
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:123:6: warning: no previous prototype for function 'print_subdev' [-Wmissing-prototypes]
   void print_subdev(struct ipu_isys_subdev_info *sd)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:123:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void print_subdev(struct ipu_isys_subdev_info *sd)
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:157:6: warning: no previous prototype for function 'add_local_subdevs' [-Wmissing-prototypes]
   void add_local_subdevs(struct ipu_isys_subdev_info *new_subdev_info)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:157:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void add_local_subdevs(struct ipu_isys_subdev_info *new_subdev_info)
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:172:6: warning: no previous prototype for function 'update_short' [-Wmissing-prototypes]
   void update_short(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:172:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_short(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:183:6: warning: no previous prototype for function 'update_hex' [-Wmissing-prototypes]
   void update_hex(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:183:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_hex(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:194:6: warning: no previous prototype for function 'update_int' [-Wmissing-prototypes]
   void update_int(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:194:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_int(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:205:6: warning: no previous prototype for function 'update_inta' [-Wmissing-prototypes]
   void update_inta(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:205:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_inta(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:221:6: warning: no previous prototype for function 'update_str' [-Wmissing-prototypes]
   void update_str(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:221:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_str(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:232:6: warning: no previous prototype for function 'update_subdev' [-Wmissing-prototypes]
   void update_subdev(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:232:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_subdev(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:264:6: warning: no previous prototype for function 'update_serdes_subdev' [-Wmissing-prototypes]
   void update_serdes_subdev(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:264:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_serdes_subdev(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:325:5: warning: no previous prototype for function 'compare_subdev' [-Wmissing-prototypes]
   int compare_subdev(struct device *dev,
       ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:325:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int compare_subdev(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:377:6: warning: no previous prototype for function 'update_pdata' [-Wmissing-prototypes]
   void update_pdata(struct device *dev,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:377:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void update_pdata(struct device *dev,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:448:6: warning: no previous prototype for function 'set_ti960_gpio' [-Wmissing-prototypes]
   void set_ti960_gpio(struct control_logic_data *ctl_data, struct serdes_platform_data **pdata)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:448:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void set_ti960_gpio(struct control_logic_data *ctl_data, struct serdes_platform_data **pdata)
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:468:6: warning: no previous prototype for function 'set_lt_gpio' [-Wmissing-prototypes]
   void set_lt_gpio(struct control_logic_data *ctl_data, struct sensor_platform_data **pdata,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:468:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void set_lt_gpio(struct control_logic_data *ctl_data, struct sensor_platform_data **pdata,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:499:6: warning: no previous prototype for function 'set_ar0234_gpio' [-Wmissing-prototypes]
   void set_ar0234_gpio(struct sensor_platform_data **pdata)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:499:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void set_ar0234_gpio(struct sensor_platform_data **pdata)
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:507:5: warning: no previous prototype for function 'set_csi2' [-Wmissing-prototypes]
   int set_csi2(struct ipu_isys_subdev_info **sensor_sd,
       ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:507:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int set_csi2(struct ipu_isys_subdev_info **sensor_sd,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:524:6: warning: no previous prototype for function 'set_i2c' [-Wmissing-prototypes]
   void set_i2c(struct ipu_isys_subdev_info **sensor_sd,
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:524:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void set_i2c(struct ipu_isys_subdev_info **sensor_sd,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:535:6: warning: no previous prototype for function 'set_serdes_sd_pdata' [-Wmissing-prototypes]
   void set_serdes_sd_pdata(struct serdes_module_pdata **module_pdata, char sensor_name[I2C_NAME_SIZE],
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:535:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void set_serdes_sd_pdata(struct serdes_module_pdata **module_pdata, char sensor_name[I2C_NAME_SIZE],
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-pdata.c:555:5: warning: no previous prototype for function 'set_serdes_subdev' [-Wmissing-prototypes]
   int set_serdes_subdev(struct ipu_isys_subdev_info **serdes_sd,
       ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:555:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int set_serdes_subdev(struct ipu_isys_subdev_info **serdes_sd,
   ^
   static 
   drivers/media/platform/intel/ipu6-acpi-pdata.c:591:5: warning: no previous prototype for function 'set_pdata' [-Wmissing-prototypes]
   int set_pdata(struct ipu_isys_subdev_info **sensor_sd,
       ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:591:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int set_pdata(struct ipu_isys_subdev_info **sensor_sd,
   ^
   static 
   drivers/media/platform/intel/ipu6-acpi-pdata.c:652:6: warning: no previous prototype for function 'set_serdes_info' [-Wmissing-prototypes]
   void set_serdes_info(struct device *dev, const char *serdes_name, struct sensor_bios_data *cam_data)
        ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:652:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void set_serdes_info(struct device *dev, const char *serdes_name, struct sensor_bios_data *cam_data)
   ^
   static 
   drivers/media/platform/intel/ipu6-acpi-pdata.c:672:5: warning: no previous prototype for function 'populate_dummy' [-Wmissing-prototypes]
   int populate_dummy(struct device *dev,
       ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:672:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int populate_dummy(struct device *dev,
   ^
   static 
   drivers/media/platform/intel/ipu6-acpi-pdata.c:706:5: warning: no previous prototype for function 'populate_sensor_pdata' [-Wmissing-prototypes]
   int populate_sensor_pdata(struct device *dev,
       ^
   drivers/media/platform/intel/ipu6-acpi-pdata.c:706:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int populate_sensor_pdata(struct device *dev,
   ^
   static 
   24 warnings generated.
--
>> drivers/media/platform/intel/ipu6-acpi-common.c:77:5: warning: no previous prototype for function 'ipu_acpi_get_gpio_data' [-Wmissing-prototypes]
   int ipu_acpi_get_gpio_data(struct device *dev, struct ipu_gpio_info *gpio, int size,
       ^
   drivers/media/platform/intel/ipu6-acpi-common.c:77:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int ipu_acpi_get_gpio_data(struct device *dev, struct ipu_gpio_info *gpio, int size,
   ^
   static 
>> drivers/media/platform/intel/ipu6-acpi-common.c:160:5: warning: no previous prototype for function 'ipu_acpi_get_i2c_info' [-Wmissing-prototypes]
   int ipu_acpi_get_i2c_info(struct device *dev, struct ipu_i2c_info *i2c, int size, u64 *num)
       ^
   drivers/media/platform/intel/ipu6-acpi-common.c:160:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int ipu_acpi_get_i2c_info(struct device *dev, struct ipu_i2c_info *i2c, int size, u64 *num)
   ^
   static 
   2 warnings generated.


vim +/print_serdes_sdinfo +55 drivers/media/platform/intel/ipu6-acpi-pdata.c

cfb5743695d51c zouxiaoh 2022-11-28   54  
cfb5743695d51c zouxiaoh 2022-11-28  @55  void print_serdes_sdinfo(struct serdes_subdev_info *sdinfo)
cfb5743695d51c zouxiaoh 2022-11-28   56  {
cfb5743695d51c zouxiaoh 2022-11-28   57  	int j;
cfb5743695d51c zouxiaoh 2022-11-28   58  	struct serdes_module_pdata *sd_mpdata = sdinfo->board_info.platform_data;
cfb5743695d51c zouxiaoh 2022-11-28   59  
cfb5743695d51c zouxiaoh 2022-11-28   60  	if (!sd_mpdata) {
cfb5743695d51c zouxiaoh 2022-11-28   61  		pr_err("Empty serdes module pdata");
cfb5743695d51c zouxiaoh 2022-11-28   62  		return;
cfb5743695d51c zouxiaoh 2022-11-28   63  	}
cfb5743695d51c zouxiaoh 2022-11-28   64  
cfb5743695d51c zouxiaoh 2022-11-28   65  	pr_debug("\t\trx_port \t\t= %d", sdinfo->rx_port);
cfb5743695d51c zouxiaoh 2022-11-28   66  	pr_debug("\t\tphy_i2c_addr \t\t= 0x%x", sdinfo->phy_i2c_addr);
cfb5743695d51c zouxiaoh 2022-11-28   67  	pr_debug("\t\tser_alias \t\t= 0x%x", sdinfo->ser_alias);
cfb5743695d51c zouxiaoh 2022-11-28   68  	pr_debug("\t\tsuffix \t\t\t= %c", sdinfo->suffix);
cfb5743695d51c zouxiaoh 2022-11-28   69  	pr_debug("\t\tboard_info.type \t= %s", sdinfo->board_info.type);
cfb5743695d51c zouxiaoh 2022-11-28   70  	pr_debug("\t\tboard_info.addr \t= 0x%x", sdinfo->board_info.addr);
cfb5743695d51c zouxiaoh 2022-11-28   71  
cfb5743695d51c zouxiaoh 2022-11-28   72  	pr_debug("serdes board_info.platform_data");
cfb5743695d51c zouxiaoh 2022-11-28   73  	pr_debug("\t\tlanes \t\t\t= %d", sd_mpdata->lanes);
cfb5743695d51c zouxiaoh 2022-11-28   74  	pr_debug("\t\tmodule_name \t\t= %s", sd_mpdata->module_name);
cfb5743695d51c zouxiaoh 2022-11-28   75  	pr_debug("\t\tfsin \t\t\t= %d", sd_mpdata->fsin);
cfb5743695d51c zouxiaoh 2022-11-28   76  
cfb5743695d51c zouxiaoh 2022-11-28   77  	if (serdes_info.gpio_powerup_seq > 0)
cfb5743695d51c zouxiaoh 2022-11-28   78  		for (j = 0; j < serdes_info.gpio_powerup_seq; j++)
cfb5743695d51c zouxiaoh 2022-11-28   79  			pr_debug("\t\t gpio_powerup_seq[%d] \t= %d", j,
cfb5743695d51c zouxiaoh 2022-11-28   80  				(int)sd_mpdata->gpio_powerup_seq[j]);
cfb5743695d51c zouxiaoh 2022-11-28   81  }
cfb5743695d51c zouxiaoh 2022-11-28   82  
cfb5743695d51c zouxiaoh 2022-11-28  @83  void print_serdes_subdev(struct ipu_isys_subdev_info *sd)
cfb5743695d51c zouxiaoh 2022-11-28   84  {
cfb5743695d51c zouxiaoh 2022-11-28   85  	struct serdes_platform_data *sd_pdata = sd->i2c.board_info.platform_data;
cfb5743695d51c zouxiaoh 2022-11-28   86  	int i;
cfb5743695d51c zouxiaoh 2022-11-28   87  	struct serdes_subdev_info *sd_sdinfo;
cfb5743695d51c zouxiaoh 2022-11-28   88  	struct serdes_module_pdata *sd_mpdata;
cfb5743695d51c zouxiaoh 2022-11-28   89  
cfb5743695d51c zouxiaoh 2022-11-28   90  	if (!sd_pdata) {
cfb5743695d51c zouxiaoh 2022-11-28   91  		pr_err("Empty serdes subdev pdata");
cfb5743695d51c zouxiaoh 2022-11-28   92  		return;
cfb5743695d51c zouxiaoh 2022-11-28   93  	}
cfb5743695d51c zouxiaoh 2022-11-28   94  
cfb5743695d51c zouxiaoh 2022-11-28   95  	pr_debug("IPU6 ACPI %s", __func__);
cfb5743695d51c zouxiaoh 2022-11-28   96  	pr_debug("sd_csi2");
cfb5743695d51c zouxiaoh 2022-11-28   97  	pr_debug("\t\tnlanes \t\t\t= %d", sd->csi2->nlanes);
cfb5743695d51c zouxiaoh 2022-11-28   98  	pr_debug("\t\tport \t\t\t= %d", sd->csi2->port);
cfb5743695d51c zouxiaoh 2022-11-28   99  
cfb5743695d51c zouxiaoh 2022-11-28  100  	pr_debug("sd->i2c");
cfb5743695d51c zouxiaoh 2022-11-28  101  	pr_debug("\t\ti2c_adapter_bdf \t= %s", sd->i2c.i2c_adapter_bdf);
cfb5743695d51c zouxiaoh 2022-11-28  102  	pr_debug("\t\tboard_info.type \t= %s", sd->i2c.board_info.type);
cfb5743695d51c zouxiaoh 2022-11-28  103  	pr_debug("\t\tboard_info.addr \t= 0x%x", sd->i2c.board_info.addr);
cfb5743695d51c zouxiaoh 2022-11-28  104  
cfb5743695d51c zouxiaoh 2022-11-28  105  	pr_debug("sd->i2c.board_info.platform_data");
cfb5743695d51c zouxiaoh 2022-11-28  106  	pr_debug("\t\treset_gpio \t\t= %d", sd_pdata->reset_gpio);
cfb5743695d51c zouxiaoh 2022-11-28  107  	pr_debug("\t\tFPD_gpio \t\t= %d", sd_pdata->FPD_gpio);
cfb5743695d51c zouxiaoh 2022-11-28  108  	pr_debug("\t\tsuffix \t\t\t= %c", sd_pdata->suffix);
cfb5743695d51c zouxiaoh 2022-11-28  109  
cfb5743695d51c zouxiaoh 2022-11-28  110  	for (i = 0; i < serdes_info.rx_port; i++) {
cfb5743695d51c zouxiaoh 2022-11-28  111  		sd_sdinfo = &sd_pdata->subdev_info[i];
cfb5743695d51c zouxiaoh 2022-11-28  112  		sd_mpdata = sd_sdinfo->board_info.platform_data;
cfb5743695d51c zouxiaoh 2022-11-28  113  
cfb5743695d51c zouxiaoh 2022-11-28  114  		if (!sd_mpdata)
cfb5743695d51c zouxiaoh 2022-11-28  115  			continue;
cfb5743695d51c zouxiaoh 2022-11-28  116  
cfb5743695d51c zouxiaoh 2022-11-28  117  		pr_debug("serdes subdev_info[%d]", i);
cfb5743695d51c zouxiaoh 2022-11-28  118  		print_serdes_sdinfo(sd_sdinfo);
cfb5743695d51c zouxiaoh 2022-11-28  119  	}
cfb5743695d51c zouxiaoh 2022-11-28  120  
cfb5743695d51c zouxiaoh 2022-11-28  121  }
cfb5743695d51c zouxiaoh 2022-11-28  122  
cfb5743695d51c zouxiaoh 2022-11-28 @123  void print_subdev(struct ipu_isys_subdev_info *sd)
cfb5743695d51c zouxiaoh 2022-11-28  124  {
cfb5743695d51c zouxiaoh 2022-11-28  125  	struct sensor_platform_data *spdata = sd->i2c.board_info.platform_data;
cfb5743695d51c zouxiaoh 2022-11-28  126  	int i;
cfb5743695d51c zouxiaoh 2022-11-28  127  
cfb5743695d51c zouxiaoh 2022-11-28  128  	if (!spdata) {
cfb5743695d51c zouxiaoh 2022-11-28  129  		pr_err("Empty sensor subdev");
cfb5743695d51c zouxiaoh 2022-11-28  130  		return;
cfb5743695d51c zouxiaoh 2022-11-28  131  	}
cfb5743695d51c zouxiaoh 2022-11-28  132  
cfb5743695d51c zouxiaoh 2022-11-28  133  	pr_debug("IPU6 ACPI %s", __func__);
cfb5743695d51c zouxiaoh 2022-11-28  134  	pr_debug("sd->csi2");
cfb5743695d51c zouxiaoh 2022-11-28  135  	pr_debug("\t\tnlanes \t\t\t= %d", sd->csi2->nlanes);
cfb5743695d51c zouxiaoh 2022-11-28  136  	pr_debug("\t\tport \t\t\t= %d", sd->csi2->port);
cfb5743695d51c zouxiaoh 2022-11-28  137  
cfb5743695d51c zouxiaoh 2022-11-28  138  	pr_debug("sd->i2c");
cfb5743695d51c zouxiaoh 2022-11-28  139  	pr_debug("\t\ti2c_adapter_bdf \t= %s", sd->i2c.i2c_adapter_bdf);
cfb5743695d51c zouxiaoh 2022-11-28  140  	pr_debug("\t\tboard_info.type \t= %s", sd->i2c.board_info.type);
cfb5743695d51c zouxiaoh 2022-11-28  141  	pr_debug("\t\tboard_info.addr \t= 0x%x", sd->i2c.board_info.addr);
cfb5743695d51c zouxiaoh 2022-11-28  142  
cfb5743695d51c zouxiaoh 2022-11-28  143  	pr_debug("sd->i2c.platform_data");
cfb5743695d51c zouxiaoh 2022-11-28  144  	pr_debug("\t\tport \t\t\t= %d", spdata->port);
cfb5743695d51c zouxiaoh 2022-11-28  145  	pr_debug("\t\tlanes \t\t\t= %d", spdata->lanes);
cfb5743695d51c zouxiaoh 2022-11-28  146  	pr_debug("\t\ti2c_slave_address \t= 0x%x", spdata->i2c_slave_address);
cfb5743695d51c zouxiaoh 2022-11-28  147  	pr_debug("\t\tirq_pin \t\t= %d", spdata->irq_pin);
cfb5743695d51c zouxiaoh 2022-11-28  148  	pr_debug("\t\tirq_pin_name \t\t= %s", spdata->irq_pin_name);
cfb5743695d51c zouxiaoh 2022-11-28  149  	pr_debug("\t\tsuffix \t\t\t= %c", spdata->suffix);
cfb5743695d51c zouxiaoh 2022-11-28  150  	pr_debug("\t\treset_pin \t\t= %d", spdata->reset_pin);
cfb5743695d51c zouxiaoh 2022-11-28  151  	pr_debug("\t\tdetect_pin \t\t= %d", spdata->detect_pin);
cfb5743695d51c zouxiaoh 2022-11-28  152  
9a2116b2763776 zouxiaoh 2022-11-09  153  	for (i = 0; i < IPU_SPDATA_GPIO_NUM; i++)
cfb5743695d51c zouxiaoh 2022-11-28  154  		pr_debug("\t\tgpios[%d] \t\t= %d", i, spdata->gpios[i]);
cfb5743695d51c zouxiaoh 2022-11-28  155  }
cfb5743695d51c zouxiaoh 2022-11-28  156  
cfb5743695d51c zouxiaoh 2022-11-28 @157  void add_local_subdevs(struct ipu_isys_subdev_info *new_subdev_info)
cfb5743695d51c zouxiaoh 2022-11-28  158  {
cfb5743695d51c zouxiaoh 2022-11-28  159  	struct ipu_isys_subdev_pdata *ptr_acpi_subdev_pdata = &acpi_subdev_pdata;
cfb5743695d51c zouxiaoh 2022-11-28  160  	int i = 0;
cfb5743695d51c zouxiaoh 2022-11-28  161  
cfb5743695d51c zouxiaoh 2022-11-28  162  	while (i <= MAX_ACPI_SENSOR_NUM) {
cfb5743695d51c zouxiaoh 2022-11-28  163  		if (!ptr_acpi_subdev_pdata->subdevs[i]) {
cfb5743695d51c zouxiaoh 2022-11-28  164  			ptr_acpi_subdev_pdata->subdevs[i] = new_subdev_info;
cfb5743695d51c zouxiaoh 2022-11-28  165  			ptr_acpi_subdev_pdata->subdevs[i+1] = NULL;
cfb5743695d51c zouxiaoh 2022-11-28  166  			break;
cfb5743695d51c zouxiaoh 2022-11-28  167  		}
cfb5743695d51c zouxiaoh 2022-11-28  168  		i++;
cfb5743695d51c zouxiaoh 2022-11-28  169  	}
cfb5743695d51c zouxiaoh 2022-11-28  170  }
cfb5743695d51c zouxiaoh 2022-11-28  171  
cfb5743695d51c zouxiaoh 2022-11-28 @172  void update_short(struct device *dev,
cfb5743695d51c zouxiaoh 2022-11-28  173  		char msg[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  174  		unsigned short *old_short,
cfb5743695d51c zouxiaoh 2022-11-28  175  		unsigned int new_short)
cfb5743695d51c zouxiaoh 2022-11-28  176  {
cfb5743695d51c zouxiaoh 2022-11-28  177  	if (*old_short != new_short) {
cfb5743695d51c zouxiaoh 2022-11-28  178  		dev_info(dev, "%s 0x%x -> 0x%x", msg, *old_short, new_short);
cfb5743695d51c zouxiaoh 2022-11-28  179  		*old_short = new_short;
cfb5743695d51c zouxiaoh 2022-11-28  180  	}
cfb5743695d51c zouxiaoh 2022-11-28  181  }
cfb5743695d51c zouxiaoh 2022-11-28  182  
cfb5743695d51c zouxiaoh 2022-11-28 @183  void update_hex(struct device *dev,
cfb5743695d51c zouxiaoh 2022-11-28  184  		char msg[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  185  		unsigned int *old_hex,
cfb5743695d51c zouxiaoh 2022-11-28  186  		unsigned int new_hex)
cfb5743695d51c zouxiaoh 2022-11-28  187  {
cfb5743695d51c zouxiaoh 2022-11-28  188  	if (*old_hex != new_hex) {
cfb5743695d51c zouxiaoh 2022-11-28  189  		dev_info(dev, "%s 0x%x -> 0x%x", msg, *old_hex, new_hex);
cfb5743695d51c zouxiaoh 2022-11-28  190  		*old_hex = new_hex;
cfb5743695d51c zouxiaoh 2022-11-28  191  	}
cfb5743695d51c zouxiaoh 2022-11-28  192  }
cfb5743695d51c zouxiaoh 2022-11-28  193  
cfb5743695d51c zouxiaoh 2022-11-28 @194  void update_int(struct device *dev,
cfb5743695d51c zouxiaoh 2022-11-28  195  		char msg[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  196  		unsigned int *old_int,
cfb5743695d51c zouxiaoh 2022-11-28  197  		unsigned int new_int)
cfb5743695d51c zouxiaoh 2022-11-28  198  {
cfb5743695d51c zouxiaoh 2022-11-28  199  	if (*old_int != new_int) {
cfb5743695d51c zouxiaoh 2022-11-28  200  		dev_info(dev, "%s %d -> %d", msg, *old_int, new_int);
cfb5743695d51c zouxiaoh 2022-11-28  201  		*old_int = new_int;
cfb5743695d51c zouxiaoh 2022-11-28  202  	}
cfb5743695d51c zouxiaoh 2022-11-28  203  }
cfb5743695d51c zouxiaoh 2022-11-28  204  
cfb5743695d51c zouxiaoh 2022-11-28 @205  void update_inta(struct device *dev,
cfb5743695d51c zouxiaoh 2022-11-28  206  		char msg[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  207  		int old_int[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  208  		int new_int[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  209  		size_t size)
cfb5743695d51c zouxiaoh 2022-11-28  210  {
cfb5743695d51c zouxiaoh 2022-11-28  211  	int i;
cfb5743695d51c zouxiaoh 2022-11-28  212  
cfb5743695d51c zouxiaoh 2022-11-28  213  	for (i = 0; i < size; i++) {
cfb5743695d51c zouxiaoh 2022-11-28  214  		if (old_int[i] != new_int[i]) {
cfb5743695d51c zouxiaoh 2022-11-28  215  			dev_info(dev, "%s %d -> %d", msg, old_int[i], new_int[i]);
cfb5743695d51c zouxiaoh 2022-11-28  216  			old_int[i] = new_int[i];
cfb5743695d51c zouxiaoh 2022-11-28  217  		}
cfb5743695d51c zouxiaoh 2022-11-28  218  	}
cfb5743695d51c zouxiaoh 2022-11-28  219  }
cfb5743695d51c zouxiaoh 2022-11-28  220  
cfb5743695d51c zouxiaoh 2022-11-28 @221  void update_str(struct device *dev,
cfb5743695d51c zouxiaoh 2022-11-28  222  		char msg[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  223  		char old_str[MSG_LEN],
cfb5743695d51c zouxiaoh 2022-11-28  224  		char new_str[MSG_LEN])
cfb5743695d51c zouxiaoh 2022-11-28  225  {
cfb5743695d51c zouxiaoh 2022-11-28  226  	if (strcmp(old_str, new_str) != 0) {
cfb5743695d51c zouxiaoh 2022-11-28  227  		dev_info(dev, "%s %s -> %s", msg, old_str, new_str);
cfb5743695d51c zouxiaoh 2022-11-28  228  		strlcpy(old_str, new_str, strlen(new_str)+1);
cfb5743695d51c zouxiaoh 2022-11-28  229  	}
cfb5743695d51c zouxiaoh 2022-11-28  230  }
cfb5743695d51c zouxiaoh 2022-11-28  231  
cfb5743695d51c zouxiaoh 2022-11-28 @232  void update_subdev(struct device *dev,
cfb5743695d51c zouxiaoh 2022-11-28  233  			struct ipu_isys_subdev_info *new_sd,
cfb5743695d51c zouxiaoh 2022-11-28  234  			struct ipu_isys_subdev_info **old_sd)
cfb5743695d51c zouxiaoh 2022-11-28  235  {
cfb5743695d51c zouxiaoh 2022-11-28  236  	struct sensor_platform_data *old_pdata =
cfb5743695d51c zouxiaoh 2022-11-28  237  					(*old_sd)->i2c.board_info.platform_data;
cfb5743695d51c zouxiaoh 2022-11-28  238  
cfb5743695d51c zouxiaoh 2022-11-28  239  	struct sensor_platform_data *new_pdata =
cfb5743695d51c zouxiaoh 2022-11-28  240  					new_sd->i2c.board_info.platform_data;
cfb5743695d51c zouxiaoh 2022-11-28  241  
cfb5743695d51c zouxiaoh 2022-11-28  242  	/* csi2 */
cfb5743695d51c zouxiaoh 2022-11-28  243  	update_int(dev, "CSI2 port", &(*old_sd)->csi2->port, new_sd->csi2->port);
cfb5743695d51c zouxiaoh 2022-11-28  244  	update_int(dev, "CSI2 nlanes", &(*old_sd)->csi2->nlanes, new_sd->csi2->nlanes);
cfb5743695d51c zouxiaoh 2022-11-28  245  
cfb5743695d51c zouxiaoh 2022-11-28  246  	/* i2c */
cfb5743695d51c zouxiaoh 2022-11-28  247  	update_short(dev, "I2C board_info addr", &(*old_sd)->i2c.board_info.addr,
cfb5743695d51c zouxiaoh 2022-11-28  248  		new_sd->i2c.board_info.addr);
cfb5743695d51c zouxiaoh 2022-11-28  249  	update_str(dev, "I2C i2c_adapter_bdf", (*old_sd)->i2c.i2c_adapter_bdf,
cfb5743695d51c zouxiaoh 2022-11-28  250  		new_sd->i2c.i2c_adapter_bdf);
cfb5743695d51c zouxiaoh 2022-11-28  251  
cfb5743695d51c zouxiaoh 2022-11-28  252  	/* platform data */
cfb5743695d51c zouxiaoh 2022-11-28  253  	update_int(dev, "pdata port", &(old_pdata)->port, new_pdata->port);
cfb5743695d51c zouxiaoh 2022-11-28  254  	update_int(dev, "pdata lanes", &(old_pdata)->lanes, new_pdata->lanes);
cfb5743695d51c zouxiaoh 2022-11-28  255  	update_hex(dev, "pdata I2C slave addr", &(old_pdata)->i2c_slave_address,
cfb5743695d51c zouxiaoh 2022-11-28  256  		new_pdata->i2c_slave_address);
cfb5743695d51c zouxiaoh 2022-11-28  257  	update_int(dev, "pdata irq_pin", &(old_pdata)->irq_pin, new_pdata->irq_pin);
cfb5743695d51c zouxiaoh 2022-11-28  258  	update_str(dev, "pdata irq_pin_name", old_pdata->irq_pin_name, new_pdata->irq_pin_name);
cfb5743695d51c zouxiaoh 2022-11-28  259  	update_int(dev, "pdata reset_pin", &(old_pdata)->reset_pin, new_pdata->reset_pin);
cfb5743695d51c zouxiaoh 2022-11-28  260  	update_int(dev, "pdata detect_pin", &(old_pdata)->detect_pin, new_pdata->detect_pin);
9a2116b2763776 zouxiaoh 2022-11-09  261  	update_inta(dev, "pdata gpios", old_pdata->gpios, new_pdata->gpios, IPU_SPDATA_GPIO_NUM);
cfb5743695d51c zouxiaoh 2022-11-28  262  }
cfb5743695d51c zouxiaoh 2022-11-28  263  

:::::: The code at line 55 was first introduced by commit
:::::: cfb5743695d51c3d275a3646d140336c6e515358 media: intel-ipu6: implement new vc solution

:::::: TO: zouxiaoh <xiaohong.zou@intel.com>
:::::: CC: renjiaox <jiaojiaox.ren@intel.com>

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

                 reply	other threads:[~2023-03-05  2:51 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=202303051033.oiyLpANP-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=jiaojiaox.ren@intel.com \
    --cc=meng.j.chen@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=xiaohong.zou@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.