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

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

 



Thanks for the report!

This patch has dependency on https://lkml.org/lkml/2018/5/17/251

I should have mentioned this in cover letter!

thanks,
srini

On 18/05/18 22:39, kbuild test robot wrote:
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

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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