tree:
https://github.com/thesofproject/linux pr/2088
head: b7b26d7f347a38bdf2a75ce61f25a5e5cddaff66
commit: 9f9308f0723ec981f867a75b9eedf82f77440807 [2/11] soundwire: use a single API to
add/delete master device
config: arm64-sof-customedconfig-nobloat-imx-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 9f9308f0723ec981f867a75b9eedf82f77440807
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
drivers/soundwire/qcom.c: In function 'qcom_swrm_probe':
> drivers/soundwire/qcom.c:792:35: error: passing argument 1 of
'sdw_master_device_add' from incompatible pointer type
[-Werror=incompatible-pointer-types]
792 | ctrl->md = sdw_master_device_add(dev,
/* platform device is parent */
| ^~~
| |
| struct device *
In file included from drivers/soundwire/qcom.c:20:
drivers/soundwire/bus.h:22:43: note: expected 'struct sdw_bus *' but argument is
of type 'struct device *'
22 | int sdw_master_device_add(struct sdw_bus *bus, struct device *parent,
| ~~~~~~~~~~~~~~~~^~~
drivers/soundwire/qcom.c:793:10: error: passing argument 2 of
'sdw_master_device_add' from incompatible pointer type
[-Werror=incompatible-pointer-types]
793 | dev->fwnode,
| ~~~^~~~~~~~
| |
| struct fwnode_handle *
In file included from drivers/soundwire/qcom.c:20:
drivers/soundwire/bus.h:22:63: note: expected 'struct device *' but argument is of
type 'struct fwnode_handle *'
22 | int sdw_master_device_add(struct sdw_bus *bus, struct device *parent,
| ~~~~~~~~~~~~~~~^~~~~~
> drivers/soundwire/qcom.c:792:13: error: too many arguments to
function 'sdw_master_device_add'
792 | ctrl->md =
sdw_master_device_add(dev, /* platform device is parent */
| ^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/soundwire/qcom.c:20:
drivers/soundwire/bus.h:22:5: note: declared here
22 | int sdw_master_device_add(struct sdw_bus *bus, struct device *parent,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/soundwire/qcom.c:792:11: warning: assignment to 'struct sdw_master_device
*' from 'int' makes pointer from integer without a cast [-Wint-conversion]
792 | ctrl->md = sdw_master_device_add(dev, /* platform device is parent */
| ^
> drivers/soundwire/qcom.c:864:34: error: passing argument 1 of
'sdw_master_device_del' from incompatible pointer type
[-Werror=incompatible-pointer-types]
864 | err =
sdw_master_device_del(ctrl->md);
| ~~~~^~~~
| |
| struct sdw_master_device *
In file included from drivers/soundwire/qcom.c:20:
drivers/soundwire/bus.h:24:43: note: expected 'struct sdw_bus *' but argument is
of type 'struct sdw_master_device *'
24 | int sdw_master_device_del(struct sdw_bus *bus);
| ~~~~~~~~~~~~~~~~^~~
drivers/soundwire/qcom.c: In function 'qcom_swrm_remove':
drivers/soundwire/qcom.c:878:2: error: implicit declaration of function
'sdw_delete_bus_master' [-Werror=implicit-function-declaration]
878 | sdw_delete_bus_master(&ctrl->bus);
| ^~~~~~~~~~~~~~~~~~~~~
drivers/soundwire/qcom.c:879:34: error: passing argument 1 of
'sdw_master_device_del' from incompatible pointer type
[-Werror=incompatible-pointer-types]
879 | err = sdw_master_device_del(ctrl->md);
| ~~~~^~~~
| |
| struct sdw_master_device *
In file included from drivers/soundwire/qcom.c:20:
drivers/soundwire/bus.h:24:43: note: expected 'struct sdw_bus *' but argument is
of type 'struct sdw_master_device *'
24 | int sdw_master_device_del(struct sdw_bus *bus);
| ~~~~~~~~~~~~~~~~^~~
cc1: some warnings being treated as errors
vim +/sdw_master_device_add +792 drivers/soundwire/qcom.c
02efb49aa805cee Srinivas Kandagatla 2020-01-13 743
02efb49aa805cee Srinivas Kandagatla 2020-01-13 744 static int qcom_swrm_probe(struct
platform_device *pdev)
02efb49aa805cee Srinivas Kandagatla 2020-01-13 745 {
02efb49aa805cee Srinivas Kandagatla 2020-01-13 746 struct device *dev =
&pdev->dev;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 747 struct sdw_master_prop *prop;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 748 struct sdw_bus_params *params;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 749 struct qcom_swrm_ctrl *ctrl;
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 750 int ret, err;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 751 u32 val;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 752
02efb49aa805cee Srinivas Kandagatla 2020-01-13 753 ctrl = devm_kzalloc(dev,
sizeof(*ctrl), GFP_KERNEL);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 754 if (!ctrl)
02efb49aa805cee Srinivas Kandagatla 2020-01-13 755 return -ENOMEM;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 756
02efb49aa805cee Srinivas Kandagatla 2020-01-13 757 if (dev->parent->bus ==
&slimbus_bus) {
02efb49aa805cee Srinivas Kandagatla 2020-01-13 758 ctrl->reg_read =
qcom_swrm_abh_reg_read;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 759 ctrl->reg_write =
qcom_swrm_ahb_reg_write;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 760 ctrl->regmap =
dev_get_regmap(dev->parent, NULL);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 761 if (!ctrl->regmap)
02efb49aa805cee Srinivas Kandagatla 2020-01-13 762 return -EINVAL;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 763 } else {
02efb49aa805cee Srinivas Kandagatla 2020-01-13 764 /* Only WCD based SoundWire
controller is supported */
02efb49aa805cee Srinivas Kandagatla 2020-01-13 765 return -ENOTSUPP;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 766 }
02efb49aa805cee Srinivas Kandagatla 2020-01-13 767
02efb49aa805cee Srinivas Kandagatla 2020-01-13 768 ctrl->irq =
of_irq_get(dev->of_node, 0);
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 769 if (ctrl->irq < 0) {
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 770 ret = ctrl->irq;
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 771 goto err_init;
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 772 }
02efb49aa805cee Srinivas Kandagatla 2020-01-13 773
02efb49aa805cee Srinivas Kandagatla 2020-01-13 774 ctrl->hclk = devm_clk_get(dev,
"iface");
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 775 if (IS_ERR(ctrl->hclk)) {
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 776 ret = PTR_ERR(ctrl->hclk);
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 777 goto err_init;
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 778 }
02efb49aa805cee Srinivas Kandagatla 2020-01-13 779
02efb49aa805cee Srinivas Kandagatla 2020-01-13 780 clk_prepare_enable(ctrl->hclk);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 781
02efb49aa805cee Srinivas Kandagatla 2020-01-13 782 ctrl->dev = dev;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 783 dev_set_drvdata(&pdev->dev,
ctrl);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 784
spin_lock_init(&ctrl->comp_lock);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 785
mutex_init(&ctrl->port_lock);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 786 INIT_WORK(&ctrl->slave_work,
qcom_swrm_slave_wq);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 787
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 788 /*
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 789 * add sdw_master_device.
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 790 * For the Qualcomm implementation
there is no driver.
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 791 */
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 @792 ctrl->md =
sdw_master_device_add(dev, /* platform device is parent */
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 793 dev->fwnode,
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 794 NULL, /* no link ops */
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 795 0, /* only one link supported
*/
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 796 NULL); /* no context */
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 797 if (IS_ERR(ctrl->md)) {
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 798 dev_err(dev, "Could not
create sdw_master_device\n");
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 799 ret = PTR_ERR(ctrl->md);
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 800 goto err_clk;
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 801 }
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 802
3a4d863b21f4e30 Pierre-Louis Bossart 2020-04-09 803 /* add bus handle */
3a4d863b21f4e30 Pierre-Louis Bossart 2020-04-09 804 ctrl->md->bus =
&ctrl->bus;
3a4d863b21f4e30 Pierre-Louis Bossart 2020-04-09 805
02efb49aa805cee Srinivas Kandagatla 2020-01-13 806 ctrl->bus.ops =
&qcom_swrm_ops;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 807 ctrl->bus.port_ops =
&qcom_swrm_port_ops;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 808 ctrl->bus.compute_params =
&qcom_swrm_compute_params;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 809
02efb49aa805cee Srinivas Kandagatla 2020-01-13 810 ret =
qcom_swrm_get_port_config(ctrl);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 811 if (ret)
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 812 goto err_md;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 813
02efb49aa805cee Srinivas Kandagatla 2020-01-13 814 params = &ctrl->bus.params;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 815 params->max_dr_freq =
DEFAULT_CLK_FREQ;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 816 params->curr_dr_freq =
DEFAULT_CLK_FREQ;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 817 params->col = SWRM_DEFAULT_COL;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 818 params->row =
SWRM_DEFAULT_ROWS;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 819 ctrl->reg_read(ctrl,
SWRM_MCP_STATUS, &val);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 820 params->curr_bank = val &
SWRM_MCP_STATUS_BANK_NUM_MASK;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 821 params->next_bank =
!params->curr_bank;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 822
02efb49aa805cee Srinivas Kandagatla 2020-01-13 823 prop = &ctrl->bus.prop;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 824 prop->max_clk_freq =
DEFAULT_CLK_FREQ;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 825 prop->num_clk_gears = 0;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 826 prop->num_clk_freq =
MAX_FREQ_NUM;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 827 prop->clk_freq =
&qcom_swrm_freq_tbl[0];
02efb49aa805cee Srinivas Kandagatla 2020-01-13 828 prop->default_col =
SWRM_DEFAULT_COL;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 829 prop->default_row =
SWRM_DEFAULT_ROWS;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 830
02efb49aa805cee Srinivas Kandagatla 2020-01-13 831 ctrl->reg_read(ctrl,
SWRM_COMP_HW_VERSION, &ctrl->version);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 832
02efb49aa805cee Srinivas Kandagatla 2020-01-13 833 ret =
devm_request_threaded_irq(dev, ctrl->irq, NULL,
02efb49aa805cee Srinivas Kandagatla 2020-01-13 834 qcom_swrm_irq_handler,
4f1738f4c24b448 Samuel Zou 2020-05-06 835 IRQF_TRIGGER_RISING |
4f1738f4c24b448 Samuel Zou 2020-05-06 836 IRQF_ONESHOT,
02efb49aa805cee Srinivas Kandagatla 2020-01-13 837 "soundwire", ctrl);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 838 if (ret) {
02efb49aa805cee Srinivas Kandagatla 2020-01-13 839 dev_err(dev, "Failed to
request soundwire irq\n");
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 840 goto err_md;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 841 }
02efb49aa805cee Srinivas Kandagatla 2020-01-13 842
3f2a586205030f4 Pierre-Louis Bossart 2020-04-24 843 ret =
sdw_bus_master_add(&ctrl->bus, dev, dev->fwnode);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 844 if (ret) {
02efb49aa805cee Srinivas Kandagatla 2020-01-13 845 dev_err(dev, "Failed to
register Soundwire controller (%d)\n",
02efb49aa805cee Srinivas Kandagatla 2020-01-13 846 ret);
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 847 goto err_md;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 848 }
02efb49aa805cee Srinivas Kandagatla 2020-01-13 849
02efb49aa805cee Srinivas Kandagatla 2020-01-13 850 qcom_swrm_init(ctrl);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 851 ret =
qcom_swrm_register_dais(ctrl);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 852 if (ret)
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 853 goto err_master_add;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 854
02efb49aa805cee Srinivas Kandagatla 2020-01-13 855 dev_info(dev, "Qualcomm
Soundwire controller v%x.%x.%x Registered\n",
02efb49aa805cee Srinivas Kandagatla 2020-01-13 856 (ctrl->version >> 24)
& 0xff, (ctrl->version >> 16) & 0xff,
02efb49aa805cee Srinivas Kandagatla 2020-01-13 857 ctrl->version & 0xffff);
02efb49aa805cee Srinivas Kandagatla 2020-01-13 858
02efb49aa805cee Srinivas Kandagatla 2020-01-13 859 return 0;
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 860
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 861 err_master_add:
3f2a586205030f4 Pierre-Louis Bossart 2020-04-24 862
sdw_bus_master_delete(&ctrl->bus);
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 863 err_md:
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 @864 err =
sdw_master_device_del(ctrl->md);
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 865 if (err < 0) /* log but return
initial status */
5156c376c827fdc Pierre-Louis Bossart 2020-03-17 866 dev_err(dev, "master device
del failed %d\n", err);
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 867 err_clk:
02efb49aa805cee Srinivas Kandagatla 2020-01-13 868
clk_disable_unprepare(ctrl->hclk);
0edb6d574e13a08 Pierre-Louis Bossart 2020-03-20 869 err_init:
02efb49aa805cee Srinivas Kandagatla 2020-01-13 870 return ret;
02efb49aa805cee Srinivas Kandagatla 2020-01-13 871 }
02efb49aa805cee Srinivas Kandagatla 2020-01-13 872
:::::: The code at line 792 was first introduced by commit
:::::: 5156c376c827fdcb7526d5eec54616f3612e2423 soundwire: qcom: add sdw_master_device
support
:::::: TO: Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
:::::: CC: Pierre Bossart <pierre-louis.bossart(a)linux.intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org