* [wsa:coccinelle/of_device_get_match_data 3/19] drivers/gpu/drm/arm/malidp_drv.c:727:12: error: assigning to 'struct malidp_hw *' from 'const void *' discards qualifiers
@ 2021-09-19 1:15 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-19 1:15 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 8149 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git coccinelle/of_device_get_match_data
head: 855d01e7ecabcc51ac572795173d15205ecc208b
commit: 45aa38305042a32a2f154573d3f006788cbba3b0 [3/19] drm/arm/malidp: don't cast result of of_device_get_match_data()
config: riscv-randconfig-r016-20210919 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c8b3d7d6d6de37af68b2f379d0e37304f78e115f)
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
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git/commit/?id=45aa38305042a32a2f154573d3f006788cbba3b0
git remote add wsa https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
git fetch --no-tags wsa coccinelle/of_device_get_match_data
git checkout 45aa38305042a32a2f154573d3f006788cbba3b0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/arm/malidp_drv.c:727:12: error: assigning to 'struct malidp_hw *' from 'const void *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
hwdev->hw = of_device_get_match_data(dev);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
vim +727 drivers/gpu/drm/arm/malidp_drv.c
704
705 static int malidp_bind(struct device *dev)
706 {
707 struct resource *res;
708 struct drm_device *drm;
709 struct malidp_drm *malidp;
710 struct malidp_hw_device *hwdev;
711 struct platform_device *pdev = to_platform_device(dev);
712 struct of_device_id const *dev_id;
713 struct drm_encoder *encoder;
714 /* number of lines for the R, G and B output */
715 u8 output_width[MAX_OUTPUT_CHANNELS];
716 int ret = 0, i;
717 u32 version, out_depth = 0;
718
719 malidp = devm_kzalloc(dev, sizeof(*malidp), GFP_KERNEL);
720 if (!malidp)
721 return -ENOMEM;
722
723 hwdev = devm_kzalloc(dev, sizeof(*hwdev), GFP_KERNEL);
724 if (!hwdev)
725 return -ENOMEM;
726
> 727 hwdev->hw = of_device_get_match_data(dev);
728 malidp->dev = hwdev;
729
730 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
731 hwdev->regs = devm_ioremap_resource(dev, res);
732 if (IS_ERR(hwdev->regs))
733 return PTR_ERR(hwdev->regs);
734
735 hwdev->pclk = devm_clk_get(dev, "pclk");
736 if (IS_ERR(hwdev->pclk))
737 return PTR_ERR(hwdev->pclk);
738
739 hwdev->aclk = devm_clk_get(dev, "aclk");
740 if (IS_ERR(hwdev->aclk))
741 return PTR_ERR(hwdev->aclk);
742
743 hwdev->mclk = devm_clk_get(dev, "mclk");
744 if (IS_ERR(hwdev->mclk))
745 return PTR_ERR(hwdev->mclk);
746
747 hwdev->pxlclk = devm_clk_get(dev, "pxlclk");
748 if (IS_ERR(hwdev->pxlclk))
749 return PTR_ERR(hwdev->pxlclk);
750
751 /* Get the optional framebuffer memory resource */
752 ret = of_reserved_mem_device_init(dev);
753 if (ret && ret != -ENODEV)
754 return ret;
755
756 drm = drm_dev_alloc(&malidp_driver, dev);
757 if (IS_ERR(drm)) {
758 ret = PTR_ERR(drm);
759 goto alloc_fail;
760 }
761
762 drm->dev_private = malidp;
763 dev_set_drvdata(dev, drm);
764
765 /* Enable power management */
766 pm_runtime_enable(dev);
767
768 /* Resume device to enable the clocks */
769 if (pm_runtime_enabled(dev))
770 pm_runtime_get_sync(dev);
771 else
772 malidp_runtime_pm_resume(dev);
773
774 dev_id = of_match_device(malidp_drm_of_match, dev);
775 if (!dev_id) {
776 ret = -EINVAL;
777 goto query_hw_fail;
778 }
779
780 if (!malidp_has_sufficient_address_space(res, dev_id)) {
781 DRM_ERROR("Insufficient address space in device-tree.\n");
782 ret = -EINVAL;
783 goto query_hw_fail;
784 }
785
786 if (!malidp_is_compatible_hw_id(hwdev, dev_id)) {
787 ret = -EINVAL;
788 goto query_hw_fail;
789 }
790
791 ret = hwdev->hw->query_hw(hwdev);
792 if (ret) {
793 DRM_ERROR("Invalid HW configuration\n");
794 goto query_hw_fail;
795 }
796
797 version = malidp_hw_read(hwdev, hwdev->hw->map.dc_base + MALIDP_DE_CORE_ID);
798 DRM_INFO("found ARM Mali-DP%3x version r%dp%d\n", version >> 16,
799 (version >> 12) & 0xf, (version >> 8) & 0xf);
800
801 malidp->core_id = version;
802
803 ret = of_property_read_u32(dev->of_node,
804 "arm,malidp-arqos-value",
805 &hwdev->arqos_value);
806 if (ret)
807 hwdev->arqos_value = 0x0;
808
809 /* set the number of lines used for output of RGB data */
810 ret = of_property_read_u8_array(dev->of_node,
811 "arm,malidp-output-port-lines",
812 output_width, MAX_OUTPUT_CHANNELS);
813 if (ret)
814 goto query_hw_fail;
815
816 for (i = 0; i < MAX_OUTPUT_CHANNELS; i++)
817 out_depth = (out_depth << 8) | (output_width[i] & 0xf);
818 malidp_hw_write(hwdev, out_depth, hwdev->hw->map.out_depth_base);
819 hwdev->output_color_depth = out_depth;
820
821 atomic_set(&malidp->config_valid, MALIDP_CONFIG_VALID_INIT);
822 init_waitqueue_head(&malidp->wq);
823
824 ret = malidp_init(drm);
825 if (ret < 0)
826 goto query_hw_fail;
827
828 /* Set the CRTC's port so that the encoder component can find it */
829 malidp->crtc.port = of_graph_get_port_by_id(dev->of_node, 0);
830
831 ret = component_bind_all(dev, drm);
832 if (ret) {
833 DRM_ERROR("Failed to bind all components\n");
834 goto bind_fail;
835 }
836
837 /* We expect to have a maximum of two encoders one for the actual
838 * display and a virtual one for the writeback connector
839 */
840 WARN_ON(drm->mode_config.num_encoder > 2);
841 list_for_each_entry(encoder, &drm->mode_config.encoder_list, head) {
842 encoder->possible_clones =
843 (1 << drm->mode_config.num_encoder) - 1;
844 }
845
846 ret = malidp_irq_init(pdev);
847 if (ret < 0)
848 goto irq_init_fail;
849
850 ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
851 if (ret < 0) {
852 DRM_ERROR("failed to initialise vblank\n");
853 goto vblank_fail;
854 }
855 pm_runtime_put(dev);
856
857 drm_mode_config_reset(drm);
858
859 drm_kms_helper_poll_init(drm);
860
861 ret = drm_dev_register(drm, 0);
862 if (ret)
863 goto register_fail;
864
865 drm_fbdev_generic_setup(drm, 32);
866
867 return 0;
868
869 register_fail:
870 drm_kms_helper_poll_fini(drm);
871 pm_runtime_get_sync(dev);
872 vblank_fail:
873 malidp_se_irq_fini(hwdev);
874 malidp_de_irq_fini(hwdev);
875 irq_init_fail:
876 drm_atomic_helper_shutdown(drm);
877 component_unbind_all(dev, drm);
878 bind_fail:
879 of_node_put(malidp->crtc.port);
880 malidp->crtc.port = NULL;
881 malidp_fini(drm);
882 query_hw_fail:
883 pm_runtime_put(dev);
884 if (pm_runtime_enabled(dev))
885 pm_runtime_disable(dev);
886 else
887 malidp_runtime_pm_suspend(dev);
888 drm->dev_private = NULL;
889 dev_set_drvdata(dev, NULL);
890 drm_dev_put(drm);
891 alloc_fail:
892 of_reserved_mem_device_release(dev);
893
894 return ret;
895 }
896
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32868 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-09-19 1:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-19 1:15 [wsa:coccinelle/of_device_get_match_data 3/19] drivers/gpu/drm/arm/malidp_drv.c:727:12: error: assigning to 'struct malidp_hw *' from 'const void *' discards qualifiers kernel test robot
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.