All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [chrome-os:chromeos-6.6 13/13] drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c:310:24: error: returning 'int' from a function with return type 'struct mtk_apu_hw_logger *' makes pointer from integer without a cast
Date: Fri, 24 Jan 2025 04:56:23 +0800	[thread overview]
Message-ID: <202501240446.RZdCv3pp-lkp@intel.com> (raw)

Hi Karl,

First bad commit (maybe != root cause):

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-6.6
head:   a7b2af4c530d27adbf7bc6d6a37b8d8b5292278b
commit: 5fd4ae454d3ca9c494223bd40baae0603d17047e [13/13] CHROMIUM: remoteproc: mediatek: Enable APU rproc building
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20250124/202501240446.RZdCv3pp-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250124/202501240446.RZdCv3pp-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/202501240446.RZdCv3pp-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/remoteproc/mediatek_apusys/mtk_apu_config.c: In function 'mtk_apu_config_setup':
>> drivers/remoteproc/mediatek_apusys/mtk_apu_config.c:120:26: error: assignment to 'uint64_t' {aka 'long long unsigned int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion]
     120 |         mdla_rv_mem->buf = mdla_buf;
         |                          ^
--
>> drivers/remoteproc/mediatek_apusys/mtk_apu_rproc.c:526:5: warning: no previous prototype for 'mtk_apu_rproc_init' [-Wmissing-prototypes]
     526 | int mtk_apu_rproc_init(void)
         |     ^~~~~~~~~~~~~~~~~~
--
   In file included from drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c:11:
   drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c: In function 'ioread32_atf':
>> drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c:132:66: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     132 |                         dev_err(dev, "Not support addr: 0x%llx", (unsigned long long)addr[i]);
         |                                                                  ^
   include/linux/dev_printk.h:110:37: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                                     ^~~~~~~~~~~
   drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c:132:25: note: in expansion of macro 'dev_err'
     132 |                         dev_err(dev, "Not support addr: 0x%llx", (unsigned long long)addr[i]);
         |                         ^~~~~~~
   drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c: In function 'get_mtk_apu_hw_logger_device':
>> drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c:310:24: error: returning 'int' from a function with return type 'struct mtk_apu_hw_logger *' makes pointer from integer without a cast [-Wint-conversion]
     310 |                 return -EPROBE_DEFER;
         |                        ^
   drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c:313:24: error: returning 'int' from a function with return type 'struct mtk_apu_hw_logger *' makes pointer from integer without a cast [-Wint-conversion]
     313 |                 return -EINVAL;
         |                        ^
--
>> drivers/remoteproc/mediatek_apusys/plat/mt8196_plat.c:105:5: warning: no previous prototype for 'apu_infra_lock' [-Wmissing-prototypes]
     105 | int apu_infra_lock(struct mtk_apu *apu, uint32_t op, enum apu_infra_bit_id id)
         |     ^~~~~~~~~~~~~~


vim +310 drivers/remoteproc/mediatek_apusys/mtk_apu_hw_logger.c

4b17ad382a2a52 Karl Li 2025-01-02  107  
4b17ad382a2a52 Karl Li 2025-01-02  108  static int ioread32_atf(uint8_t op_num, void **addr, uint32_t **ret_val,
4b17ad382a2a52 Karl Li 2025-01-02  109  			struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  110  {
4b17ad382a2a52 Karl Li 2025-01-02  111  	int i, op = 0;
4b17ad382a2a52 Karl Li 2025-01-02  112  	uint8_t smc_op;
4b17ad382a2a52 Karl Li 2025-01-02  113  	struct arm_smccc_res res;
4b17ad382a2a52 Karl Li 2025-01-02  114  	unsigned long flags = 0;
4b17ad382a2a52 Karl Li 2025-01-02  115  	struct device *dev = hw_logger_data->dev;
4b17ad382a2a52 Karl Li 2025-01-02  116  
4b17ad382a2a52 Karl Li 2025-01-02  117  	if (op_num == 0 || op_num > MAX_SMC_OP_NUM) {
4b17ad382a2a52 Karl Li 2025-01-02  118  		dev_err(dev, "op_num invalid: %d\n", op_num);
4b17ad382a2a52 Karl Li 2025-01-02  119  		return -EINVAL;
4b17ad382a2a52 Karl Li 2025-01-02  120  	}
4b17ad382a2a52 Karl Li 2025-01-02  121  
4b17ad382a2a52 Karl Li 2025-01-02  122  	for (i = 0; i < op_num; i++) {
4b17ad382a2a52 Karl Li 2025-01-02  123  		if (addr[i] == hw_logger_data->apu_logtop + APU_LOG_BUF_T_SIZE_OFF)
4b17ad382a2a52 Karl Li 2025-01-02  124  			smc_op = SMC_OP_APU_LOG_BUF_T_SIZE;
4b17ad382a2a52 Karl Li 2025-01-02  125  		else if (addr[i] == hw_logger_data->apu_logtop + APU_LOG_BUF_W_PTR_OFF)
4b17ad382a2a52 Karl Li 2025-01-02  126  			smc_op = SMC_OP_APU_LOG_BUF_W_PTR;
4b17ad382a2a52 Karl Li 2025-01-02  127  		else if (addr[i] == hw_logger_data->apu_logtop + APU_LOG_BUF_R_PTR_OFF)
4b17ad382a2a52 Karl Li 2025-01-02  128  			smc_op = SMC_OP_APU_LOG_BUF_R_PTR;
4b17ad382a2a52 Karl Li 2025-01-02  129  		else if (addr[i] == hw_logger_data->apu_logtop + APU_LOGTOP_CON_OFF)
4b17ad382a2a52 Karl Li 2025-01-02  130  			smc_op = SMC_OP_APU_LOG_BUF_CON;
4b17ad382a2a52 Karl Li 2025-01-02  131  		else {
4b17ad382a2a52 Karl Li 2025-01-02 @132  			dev_err(dev, "Not support addr: 0x%llx", (unsigned long long)addr[i]);
4b17ad382a2a52 Karl Li 2025-01-02  133  			return -EINVAL;
4b17ad382a2a52 Karl Li 2025-01-02  134  		}
4b17ad382a2a52 Karl Li 2025-01-02  135  		op |= smc_op << (8 * i);
4b17ad382a2a52 Karl Li 2025-01-02  136  	}
4b17ad382a2a52 Karl Li 2025-01-02  137  	dev_dbg(dev, "arm_smccc_smc reg_dump op: 0x%08x\n", op);
4b17ad382a2a52 Karl Li 2025-01-02  138  
4b17ad382a2a52 Karl Li 2025-01-02  139  	spin_lock_irqsave(&hw_logger_data->smc_spinlock, flags);
4b17ad382a2a52 Karl Li 2025-01-02  140  	arm_smccc_smc(MTK_SIP_APUSYS_CONTROL,
4b17ad382a2a52 Karl Li 2025-01-02  141  		MTK_APUSYS_KERNEL_OP_APUSYS_LOGTOP_REG_DUMP,
4b17ad382a2a52 Karl Li 2025-01-02  142  		op, 0, 0, 0, 0, 0, &res);
4b17ad382a2a52 Karl Li 2025-01-02  143  	spin_unlock_irqrestore(&hw_logger_data->smc_spinlock, flags);
4b17ad382a2a52 Karl Li 2025-01-02  144  
4b17ad382a2a52 Karl Li 2025-01-02  145  	if (res.a0 != 0) {
4b17ad382a2a52 Karl Li 2025-01-02  146  		if (res.a0 == -16) {
4b17ad382a2a52 Karl Li 2025-01-02  147  			dev_dbg(dev, "arm_smccc_smc reg_dump acquire rcx sema timeout (rcx off)\n");
4b17ad382a2a52 Karl Li 2025-01-02  148  		} else {
4b17ad382a2a52 Karl Li 2025-01-02  149  			dev_err(dev, "arm_smccc_smc reg_dump error ret: 0x%lx\n", res.a0);
4b17ad382a2a52 Karl Li 2025-01-02  150  			dev_err(dev, "arm_smccc_smc reg_dump op: 0x%08x\n", op);
4b17ad382a2a52 Karl Li 2025-01-02  151  			dev_err(dev, "arm_smccc_smc reg_dump a0 a1 a2 a3 / 0x%lx 0x%lx 0x%lx 0x%lx\n",
4b17ad382a2a52 Karl Li 2025-01-02  152  				res.a0, res.a1, res.a2, res.a3);
4b17ad382a2a52 Karl Li 2025-01-02  153  		}
4b17ad382a2a52 Karl Li 2025-01-02  154  		return res.a0;
4b17ad382a2a52 Karl Li 2025-01-02  155  	}
4b17ad382a2a52 Karl Li 2025-01-02  156  
4b17ad382a2a52 Karl Li 2025-01-02  157  	*ret_val[0] = res.a1;
4b17ad382a2a52 Karl Li 2025-01-02  158  	if (op_num > 1)
4b17ad382a2a52 Karl Li 2025-01-02  159  		*ret_val[1] = res.a2;
4b17ad382a2a52 Karl Li 2025-01-02  160  	if (op_num > 2)
4b17ad382a2a52 Karl Li 2025-01-02  161  		*ret_val[2] = res.a3;
4b17ad382a2a52 Karl Li 2025-01-02  162  
4b17ad382a2a52 Karl Li 2025-01-02  163  	return 0;
4b17ad382a2a52 Karl Li 2025-01-02  164  }
4b17ad382a2a52 Karl Li 2025-01-02  165  
4b17ad382a2a52 Karl Li 2025-01-02  166  static int iowrite32_atf(uint32_t write_val, void *addr, struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  167  {
4b17ad382a2a52 Karl Li 2025-01-02  168  	int op;
4b17ad382a2a52 Karl Li 2025-01-02  169  	struct arm_smccc_res res;
4b17ad382a2a52 Karl Li 2025-01-02  170  	unsigned long flags = 0;
4b17ad382a2a52 Karl Li 2025-01-02  171  	struct device *dev = hw_logger_data->dev;
4b17ad382a2a52 Karl Li 2025-01-02  172  
4b17ad382a2a52 Karl Li 2025-01-02  173  	if (addr == hw_logger_data->apu_logtop + APU_LOG_BUF_R_PTR_OFF) {
4b17ad382a2a52 Karl Li 2025-01-02  174  		op = SMC_OP_APU_LOG_BUF_R_PTR;
4b17ad382a2a52 Karl Li 2025-01-02  175  	} else {
4b17ad382a2a52 Karl Li 2025-01-02  176  		dev_err(dev, "Not support addr: %p", addr);
4b17ad382a2a52 Karl Li 2025-01-02  177  		return -EINVAL;
4b17ad382a2a52 Karl Li 2025-01-02  178  	}
4b17ad382a2a52 Karl Li 2025-01-02  179  
4b17ad382a2a52 Karl Li 2025-01-02  180  	spin_lock_irqsave(&hw_logger_data->smc_spinlock, flags);
4b17ad382a2a52 Karl Li 2025-01-02  181  	arm_smccc_smc(MTK_SIP_APUSYS_CONTROL, MTK_APUSYS_KERNEL_OP_APUSYS_LOGTOP_REG_WRITE,
4b17ad382a2a52 Karl Li 2025-01-02  182  		      op, write_val, 0, 0, 0, 0, &res);
4b17ad382a2a52 Karl Li 2025-01-02  183  	spin_unlock_irqrestore(&hw_logger_data->smc_spinlock, flags);
4b17ad382a2a52 Karl Li 2025-01-02  184  
4b17ad382a2a52 Karl Li 2025-01-02  185  	if (res.a0 != 0) {
4b17ad382a2a52 Karl Li 2025-01-02  186  		if (res.a0 == -16) {
4b17ad382a2a52 Karl Li 2025-01-02  187  			dev_info(dev, "arm_smccc_smc reg_write acquire rcx sema timeout (rcx off)\n");
4b17ad382a2a52 Karl Li 2025-01-02  188  		} else {
4b17ad382a2a52 Karl Li 2025-01-02  189  			dev_err(dev, "arm_smccc_smc reg_write error! ret = 0x%lx, a1 = 0x%lx",
4b17ad382a2a52 Karl Li 2025-01-02  190  				res.a0, res.a1);
4b17ad382a2a52 Karl Li 2025-01-02  191  			dev_err(dev, "arm_smccc_smc reg_write op val / 0x%x 0x%x\n", op, write_val);
4b17ad382a2a52 Karl Li 2025-01-02  192  		}
4b17ad382a2a52 Karl Li 2025-01-02  193  		return res.a0;
4b17ad382a2a52 Karl Li 2025-01-02  194  	}
4b17ad382a2a52 Karl Li 2025-01-02  195  
4b17ad382a2a52 Karl Li 2025-01-02  196  	return 0;
4b17ad382a2a52 Karl Li 2025-01-02  197  }
4b17ad382a2a52 Karl Li 2025-01-02  198  
4b17ad382a2a52 Karl Li 2025-01-02  199  static int w1c32_atf(void *addr, uint32_t *ret_val, struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  200  {
4b17ad382a2a52 Karl Li 2025-01-02  201  	int op;
4b17ad382a2a52 Karl Li 2025-01-02  202  	struct arm_smccc_res res;
4b17ad382a2a52 Karl Li 2025-01-02  203  	unsigned long flags = 0;
4b17ad382a2a52 Karl Li 2025-01-02  204  	struct device *dev = hw_logger_data->dev;
4b17ad382a2a52 Karl Li 2025-01-02  205  
4b17ad382a2a52 Karl Li 2025-01-02  206  	if (addr == hw_logger_data->apu_logtop + APU_LOGTOP_CON_OFF) {
4b17ad382a2a52 Karl Li 2025-01-02  207  		op = SMC_OP_APU_LOG_BUF_CON;
4b17ad382a2a52 Karl Li 2025-01-02  208  	} else {
4b17ad382a2a52 Karl Li 2025-01-02  209  		dev_err(dev, "Not support addr: %p", addr);
4b17ad382a2a52 Karl Li 2025-01-02  210  		return -EINVAL;
4b17ad382a2a52 Karl Li 2025-01-02  211  	}
4b17ad382a2a52 Karl Li 2025-01-02  212  
4b17ad382a2a52 Karl Li 2025-01-02  213  	spin_lock_irqsave(&hw_logger_data->smc_spinlock, flags);
4b17ad382a2a52 Karl Li 2025-01-02  214  	arm_smccc_smc(MTK_SIP_APUSYS_CONTROL,
4b17ad382a2a52 Karl Li 2025-01-02  215  		MTK_APUSYS_KERNEL_OP_APUSYS_LOGTOP_REG_W1C,
4b17ad382a2a52 Karl Li 2025-01-02  216  		op, 0, 0, 0, 0, 0, &res);
4b17ad382a2a52 Karl Li 2025-01-02  217  	spin_unlock_irqrestore(&hw_logger_data->smc_spinlock, flags);
4b17ad382a2a52 Karl Li 2025-01-02  218  
4b17ad382a2a52 Karl Li 2025-01-02  219  	if (res.a0 != 0) {
4b17ad382a2a52 Karl Li 2025-01-02  220  		if (res.a0 == -16) {
4b17ad382a2a52 Karl Li 2025-01-02  221  			dev_info(dev, "arm_smccc_smc reg_w1c acquire rcx sema timeout (rcx off)\n");
4b17ad382a2a52 Karl Li 2025-01-02  222  		} else {
4b17ad382a2a52 Karl Li 2025-01-02  223  			dev_err(dev, "arm_smccc_smc reg_w1c error! ret = 0x%lx, a1 = 0x%lx",
4b17ad382a2a52 Karl Li 2025-01-02  224  				res.a0, res.a1);
4b17ad382a2a52 Karl Li 2025-01-02  225  			dev_err(dev, "arm_smccc_smc reg_w1c op / 0x%x\n", op);
4b17ad382a2a52 Karl Li 2025-01-02  226  		}
4b17ad382a2a52 Karl Li 2025-01-02  227  		return res.a0;
4b17ad382a2a52 Karl Li 2025-01-02  228  	}
4b17ad382a2a52 Karl Li 2025-01-02  229  
4b17ad382a2a52 Karl Li 2025-01-02  230  	*ret_val = res.a1;
4b17ad382a2a52 Karl Li 2025-01-02  231  	return 0;
4b17ad382a2a52 Karl Li 2025-01-02  232  }
4b17ad382a2a52 Karl Li 2025-01-02  233  
4b17ad382a2a52 Karl Li 2025-01-02  234  static unsigned long long get_st_addr(struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  235  {
4b17ad382a2a52 Karl Li 2025-01-02  236  	return (unsigned long long) hw_logger_data->hw_log_buf.hw_log_buf_dma_addr;
4b17ad382a2a52 Karl Li 2025-01-02  237  }
4b17ad382a2a52 Karl Li 2025-01-02  238  
4b17ad382a2a52 Karl Li 2025-01-02  239  static unsigned int get_t_size(void)
4b17ad382a2a52 Karl Li 2025-01-02  240  {
4b17ad382a2a52 Karl Li 2025-01-02  241  	return HWLOG_LOG_SIZE;
4b17ad382a2a52 Karl Li 2025-01-02  242  }
4b17ad382a2a52 Karl Li 2025-01-02  243  
4b17ad382a2a52 Karl Li 2025-01-02  244  static int get_r_w_ptr(unsigned long long *r_ptr, unsigned long long *w_ptr,
4b17ad382a2a52 Karl Li 2025-01-02  245  		       struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  246  {
4b17ad382a2a52 Karl Li 2025-01-02  247  	int ret = 0;
4b17ad382a2a52 Karl Li 2025-01-02  248  	uint32_t r_ptr_reg = 0, w_ptr_reg = 0;
4b17ad382a2a52 Karl Li 2025-01-02  249  
4b17ad382a2a52 Karl Li 2025-01-02  250  	ret = ioread32_atf(2,
4b17ad382a2a52 Karl Li 2025-01-02  251  		(void*[]){hw_logger_data->apu_logtop + APU_LOG_BUF_R_PTR_OFF,
4b17ad382a2a52 Karl Li 2025-01-02  252  			  hw_logger_data->apu_logtop + APU_LOG_BUF_W_PTR_OFF},
4b17ad382a2a52 Karl Li 2025-01-02  253  		(uint32_t*[]){&r_ptr_reg, &w_ptr_reg}, hw_logger_data
4b17ad382a2a52 Karl Li 2025-01-02  254  	);
4b17ad382a2a52 Karl Li 2025-01-02  255  	if (ret)
4b17ad382a2a52 Karl Li 2025-01-02  256  		goto out;
4b17ad382a2a52 Karl Li 2025-01-02  257  
4b17ad382a2a52 Karl Li 2025-01-02  258  	/* hw log w/r_ptr is a 34bit addr but store in a 32bit feild */
4b17ad382a2a52 Karl Li 2025-01-02  259  	if (r_ptr != NULL)
4b17ad382a2a52 Karl Li 2025-01-02  260  		*r_ptr = (unsigned long long)r_ptr_reg << 2;
4b17ad382a2a52 Karl Li 2025-01-02  261  	if (w_ptr != NULL)
4b17ad382a2a52 Karl Li 2025-01-02  262  		*w_ptr = (unsigned long long)w_ptr_reg << 2;
4b17ad382a2a52 Karl Li 2025-01-02  263  
4b17ad382a2a52 Karl Li 2025-01-02  264  out:
4b17ad382a2a52 Karl Li 2025-01-02  265  	return ret;
4b17ad382a2a52 Karl Li 2025-01-02  266  }
4b17ad382a2a52 Karl Li 2025-01-02  267  
4b17ad382a2a52 Karl Li 2025-01-02  268  static void set_r_ptr(unsigned long long r_ptr, struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  269  {
4b17ad382a2a52 Karl Li 2025-01-02  270  	int ret = 0;
4b17ad382a2a52 Karl Li 2025-01-02  271  
4b17ad382a2a52 Karl Li 2025-01-02  272  	ret = iowrite32_atf(lower_32_bits(r_ptr >> 2),
4b17ad382a2a52 Karl Li 2025-01-02  273  			    hw_logger_data->apu_logtop + APU_LOG_BUF_R_PTR_OFF,
4b17ad382a2a52 Karl Li 2025-01-02  274  			    hw_logger_data);
4b17ad382a2a52 Karl Li 2025-01-02  275  	if (ret < 0)
4b17ad382a2a52 Karl Li 2025-01-02  276  		dev_dbg(hw_logger_data->dev, "iowrite32_atf failed\n");
4b17ad382a2a52 Karl Li 2025-01-02  277  }
4b17ad382a2a52 Karl Li 2025-01-02  278  
4b17ad382a2a52 Karl Li 2025-01-02  279  static void store_r_ofs(unsigned int pwr_status, unsigned int r_ofs,
4b17ad382a2a52 Karl Li 2025-01-02  280  			struct mtk_apu_hw_logger *hw_logger_data)
4b17ad382a2a52 Karl Li 2025-01-02  281  {
4b17ad382a2a52 Karl Li 2025-01-02  282  	int ret;
4b17ad382a2a52 Karl Li 2025-01-02  283  
4b17ad382a2a52 Karl Li 2025-01-02  284  	/* set read pointer */
4b17ad382a2a52 Karl Li 2025-01-02  285  	if (pwr_status != 0) {
4b17ad382a2a52 Karl Li 2025-01-02  286  		dev_dbg(hw_logger_data->dev, "set_r_ptr r_ofs = 0x%x\n", r_ofs);
4b17ad382a2a52 Karl Li 2025-01-02  287  		set_r_ptr(get_st_addr(hw_logger_data) + r_ofs, hw_logger_data);
4b17ad382a2a52 Karl Li 2025-01-02  288  	}
4b17ad382a2a52 Karl Li 2025-01-02  289  
4b17ad382a2a52 Karl Li 2025-01-02  290  	dev_dbg(hw_logger_data->dev, "set_r_ofs_mbox r_ofs = 0x%x\n", r_ofs);
4b17ad382a2a52 Karl Li 2025-01-02  291  	ret = regmap_field_write(hw_logger_data->log_read_regmap_field, r_ofs);
4b17ad382a2a52 Karl Li 2025-01-02  292  	if (ret)
4b17ad382a2a52 Karl Li 2025-01-02  293  		dev_err(hw_logger_data->dev, "failed to set r_ofs\n");
4b17ad382a2a52 Karl Li 2025-01-02  294  }
4b17ad382a2a52 Karl Li 2025-01-02  295  
4b17ad382a2a52 Karl Li 2025-01-02  296  static struct platform_driver hw_logger_driver;
4b17ad382a2a52 Karl Li 2025-01-02  297  struct mtk_apu_hw_logger *get_mtk_apu_hw_logger_device(struct device_node *hw_logger_np)
4b17ad382a2a52 Karl Li 2025-01-02  298  {
4b17ad382a2a52 Karl Li 2025-01-02  299  	struct platform_device *pdev;
4b17ad382a2a52 Karl Li 2025-01-02  300  	struct device *dev;
4b17ad382a2a52 Karl Li 2025-01-02  301  	struct mtk_apu_hw_logger *hw_logger_data;
4b17ad382a2a52 Karl Li 2025-01-02  302  
4b17ad382a2a52 Karl Li 2025-01-02  303  	pdev = of_find_device_by_node(hw_logger_np);
4b17ad382a2a52 Karl Li 2025-01-02  304  	if (!pdev)
4b17ad382a2a52 Karl Li 2025-01-02  305  		return ERR_PTR(-ENODEV);
4b17ad382a2a52 Karl Li 2025-01-02  306  
4b17ad382a2a52 Karl Li 2025-01-02  307  	dev = &pdev->dev;
4b17ad382a2a52 Karl Li 2025-01-02  308  
4b17ad382a2a52 Karl Li 2025-01-02  309  	if (!dev->driver)
4b17ad382a2a52 Karl Li 2025-01-02 @310  		return -EPROBE_DEFER;
4b17ad382a2a52 Karl Li 2025-01-02  311  
4b17ad382a2a52 Karl Li 2025-01-02  312  	if (dev->driver != &hw_logger_driver.driver)
4b17ad382a2a52 Karl Li 2025-01-02  313  		return -EINVAL;
4b17ad382a2a52 Karl Li 2025-01-02  314  
4b17ad382a2a52 Karl Li 2025-01-02  315  	hw_logger_data = dev_get_drvdata(dev);
4b17ad382a2a52 Karl Li 2025-01-02  316  	put_device(dev);
4b17ad382a2a52 Karl Li 2025-01-02  317  
4b17ad382a2a52 Karl Li 2025-01-02  318  	return hw_logger_data;
4b17ad382a2a52 Karl Li 2025-01-02  319  }
4b17ad382a2a52 Karl Li 2025-01-02  320  

:::::: The code at line 310 was first introduced by commit
:::::: 4b17ad382a2a52d9c67892b55fedff14b390bea3 CHROMIUM: remoteproc: mediatek: Add APU hw_logger

:::::: TO: Karl Li <karl.li@mediatek.corp-partner.google.com>
:::::: CC: Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>

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

                 reply	other threads:[~2025-01-23 20:57 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=202501240446.RZdCv3pp-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=cros-kernel-buildreports@googlegroups.com \
    --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.