Re: [PATCH 2/2] slimbus: ngd: Add qcom SLIMBus NGD driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Srinivas,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.17-rc5 next-20180517]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Srinivas-Kandagatla/slimbus-ngd-dt-bindings-Add-slim-ngd-dt-bindings/20180518-193916
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

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

   drivers/slimbus/qcom-ngd-ctrl.c: In function 'qcom_slim_ngd_get_laddr':
>> drivers/slimbus/qcom-ngd-ctrl.c:862:8: error: implicit declaration of function 'slim_prepare_txn'; did you mean 'slab_prepare_cpu'? [-Werror=implicit-function-declaration]
     ret = slim_prepare_txn(sctrl, &txn, &done, true);
           ^~~~~~~~~~~~~~~~
           slab_prepare_cpu
   drivers/slimbus/qcom-ngd-ctrl.c: In function 'qcom_slim_ngd_notify_slaves':
>> drivers/slimbus/qcom-ngd-ctrl.c:969:11: error: implicit declaration of function 'of_slim_get_device'; did you mean 'slim_get_device'? [-Werror=implicit-function-declaration]
      sbdev = of_slim_get_device(&ctrl->ctrl, node);
              ^~~~~~~~~~~~~~~~~~
              slim_get_device
>> drivers/slimbus/qcom-ngd-ctrl.c:969:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      sbdev = of_slim_get_device(&ctrl->ctrl, node);
            ^
   cc1: some warnings being treated as errors

vim +862 drivers/slimbus/qcom-ngd-ctrl.c

   839	
   840	static int qcom_slim_ngd_get_laddr(struct slim_controller *sctrl,
   841					   struct slim_eaddr *ea, u8 *laddr)
   842	{
   843		DECLARE_COMPLETION_ONSTACK(done);
   844		struct slim_val_inf msg =  {0};
   845		struct slim_msg_txn txn;
   846		u8 wbuf[10] = {0};
   847		u8 rbuf[10] = {0};
   848		int ret;
   849	
   850		txn.mt = SLIM_MSG_MT_DEST_REFERRED_USER;
   851		txn.dt = SLIM_MSG_DEST_LOGICALADDR;
   852		txn.la = SLIM_LA_MGR;
   853		txn.ec = 0;
   854	
   855		txn.mc = SLIM_USR_MC_ADDR_QUERY;
   856		txn.rl = 11;
   857		txn.msg = &msg;
   858		txn.msg->num_bytes = 7;
   859		txn.msg->wbuf = wbuf;
   860		txn.msg->rbuf = rbuf;
   861	
 > 862		ret = slim_prepare_txn(sctrl, &txn, &done, true);
   863		if (ret)
   864			return ret;
   865	
   866		wbuf[0] = (u8)txn.tid;
   867		memcpy(&wbuf[1], ea, sizeof(*ea));
   868		ret = slim_do_transfer(sctrl, &txn);
   869	
   870		*laddr = rbuf[6];
   871	
   872		return ret;
   873	}
   874	
   875	static int qcom_slim_ngd_exit_dma(struct qcom_slim_ngd_ctrl *ctrl)
   876	{
   877		if (ctrl->dma_rx_channel)
   878			dma_release_channel(ctrl->dma_rx_channel);
   879	
   880		if (ctrl->dma_tx_channel)
   881			dma_release_channel(ctrl->dma_tx_channel);
   882	
   883		ctrl->dma_tx_channel = ctrl->dma_rx_channel = NULL;
   884	
   885		return 0;
   886	}
   887	
   888	static void qcom_slim_ngd_setup(struct qcom_slim_ngd_ctrl *ctrl)
   889	{
   890		u32 cfg = readl_relaxed(ctrl->base +
   891					 NGD_BASE(ctrl->id, ctrl->ver));
   892	
   893		if (ctrl->state == QCOM_SLIM_NGD_CTRL_DOWN)
   894			qcom_slim_ngd_init_dma(ctrl);
   895	
   896		/* By default enable message queues */
   897		cfg |= NGD_CFG_RX_MSGQ_EN;
   898		cfg |= NGD_CFG_TX_MSGQ_EN;
   899	
   900		/* Enable NGD if it's not already enabled*/
   901		if (!(cfg & NGD_CFG_ENABLE))
   902			cfg |= NGD_CFG_ENABLE;
   903	
   904		writel_relaxed(cfg, ctrl->base + NGD_BASE(ctrl->id, ctrl->ver));
   905	}
   906	
   907	static int qcom_slim_ngd_power_up(struct qcom_slim_ngd_ctrl *ctrl)
   908	{
   909		enum qcom_slim_ngd_state cur_state = ctrl->state;
   910		void __iomem *ngd;
   911		u32 laddr, rx_msgq;
   912		int timeout, ret = 0;
   913	
   914		if (ctrl->state == QCOM_SLIM_NGD_CTRL_DOWN) {
   915			timeout = wait_for_completion_timeout(&ctrl->qmi.qmi_comp, HZ);
   916			if (!timeout)
   917				return -EREMOTEIO;
   918		}
   919	
   920		if (ctrl->state == QCOM_SLIM_NGD_CTRL_ASLEEP ||
   921			ctrl->state == QCOM_SLIM_NGD_CTRL_DOWN) {
   922			ret = qcom_slim_qmi_power_request(ctrl, true);
   923			if (ret) {
   924				dev_err(ctrl->dev, "SLIM QMI power request failed:%d\n",
   925						ret);
   926				return ret;
   927			}
   928		}
   929	
   930		ctrl->ver = readl_relaxed(ctrl->base);
   931		/* Version info in 16 MSbits */
   932		ctrl->ver >>= 16;
   933		ngd = ctrl->base + NGD_BASE(ctrl->id, ctrl->ver);
   934		laddr = readl_relaxed(ngd + NGD_STATUS);
   935		if (laddr & NGD_LADDR) {
   936			/*
   937			 * external MDM restart case where ADSP itself was active framer
   938			 * For example, modem restarted when playback was active
   939			 */
   940			if (cur_state == QCOM_SLIM_NGD_CTRL_AWAKE) {
   941				dev_info(ctrl->dev, "Subsys restart: ADSP active framer\n");
   942				return 0;
   943			}
   944			return 0;
   945		}
   946	
   947		writel_relaxed(DEF_NGD_INT_MASK, ctrl->base + NGD_INT_EN +
   948					NGD_BASE(ctrl->id, ctrl->ver));
   949		rx_msgq = readl_relaxed(ngd + NGD_RX_MSGQ_CFG);
   950	
   951		writel_relaxed(rx_msgq|SLIM_RX_MSGQ_TIMEOUT_VAL, ngd + NGD_RX_MSGQ_CFG);
   952		qcom_slim_ngd_setup(ctrl);
   953	
   954		timeout = wait_for_completion_timeout(&ctrl->reconf, HZ);
   955		if (!timeout) {
   956			dev_err(ctrl->dev, "capability exchange timed-out\n");
   957			return -ETIMEDOUT;
   958		}
   959	
   960		return 0;
   961	}
   962	
   963	static void qcom_slim_ngd_notify_slaves(struct qcom_slim_ngd_ctrl *ctrl)
   964	{
   965		struct slim_device *sbdev;
   966		struct device_node *node;
   967	
   968		for_each_child_of_node(ctrl->dev->of_node, node) {
 > 969			sbdev = of_slim_get_device(&ctrl->ctrl, node);
   970			if (!sbdev)
   971				continue;
   972	
   973			if (slim_get_logical_addr(sbdev))
   974				dev_err(ctrl->dev, "Failed to get logical address\n");
   975		}
   976	}
   977	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux