From: kernel test robot <lkp@intel.com>
To: Anatoliy Klymenko <anatoliy.klymenko@amd.com>
Cc: oe-kbuild-all@lists.linux.dev, dri-devel@lists.freedesktop.org,
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Subject: [drm-misc:for-linux-next 6/6] drivers/gpu/drm/xlnx/zynqmp_disp.c:954: warning: Function parameter or struct member 'media_bus_format' not described in 'zynqmp_disp_layer_find_live_format'
Date: Fri, 26 Apr 2024 06:28:17 +0800 [thread overview]
Message-ID: <202404260616.KFGDpCDN-lkp@intel.com> (raw)
tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
head: 2bdb481bf7a93c22b9fea8daefa2834aab23a70f
commit: 1b5151bd3a2e076653a935874b39dd2c3a00452a [6/6] drm: xlnx: zynqmp_dpsub: Set input live format
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20240426/202404260616.KFGDpCDN-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240426/202404260616.KFGDpCDN-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/202404260616.KFGDpCDN-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/gpu/drm/xlnx/zynqmp_disp.c:164: warning: Function parameter or struct member 'blend' not described in 'zynqmp_disp'
drivers/gpu/drm/xlnx/zynqmp_disp.c:164: warning: Function parameter or struct member 'avbuf' not described in 'zynqmp_disp'
drivers/gpu/drm/xlnx/zynqmp_disp.c:164: warning: Function parameter or struct member 'audio' not described in 'zynqmp_disp'
>> drivers/gpu/drm/xlnx/zynqmp_disp.c:954: warning: Function parameter or struct member 'media_bus_format' not described in 'zynqmp_disp_layer_find_live_format'
>> drivers/gpu/drm/xlnx/zynqmp_disp.c:954: warning: Excess function parameter 'drm_fmt' description in 'zynqmp_disp_layer_find_live_format'
>> drivers/gpu/drm/xlnx/zynqmp_disp.c:1129: warning: Function parameter or struct member 'media_bus_format' not described in 'zynqmp_disp_layer_set_live_format'
drivers/gpu/drm/xlnx/zynqmp_disp.c:1129: warning: Excess function parameter 'info' description in 'zynqmp_disp_layer_set_live_format'
vim +954 drivers/gpu/drm/xlnx/zynqmp_disp.c
938
939 /**
940 * zynqmp_disp_layer_find_live_format - Find format information for given
941 * media bus format
942 * @layer: The layer
943 * @drm_fmt: Media bus format to search
944 *
945 * Search display subsystem format information corresponding to the given media
946 * bus format @media_bus_format for the @layer, and return a pointer to the
947 * format descriptor.
948 *
949 * Return: A pointer to the format descriptor if found, NULL otherwise
950 */
951 static const struct zynqmp_disp_format *
952 zynqmp_disp_layer_find_live_format(struct zynqmp_disp_layer *layer,
953 u32 media_bus_format)
> 954 {
955 unsigned int i;
956
957 for (i = 0; i < layer->info->num_formats; i++)
958 if (layer->info->formats[i].bus_fmt == media_bus_format)
959 return &layer->info->formats[i];
960
961 return NULL;
962 }
963
964 /**
965 * zynqmp_disp_layer_drm_formats - Return the DRM formats supported by the layer
966 * @layer: The layer
967 * @num_formats: Pointer to the returned number of formats
968 *
969 * NOTE: This function doesn't make sense for live video layers and will
970 * always return an empty list in such cases. zynqmp_disp_live_layer_formats()
971 * should be used to query a list of media bus formats supported by the live
972 * video input layer.
973 *
974 * Return: A newly allocated u32 array that stores all the DRM formats
975 * supported by the layer. The number of formats in the array is returned
976 * through the num_formats argument.
977 */
978 u32 *zynqmp_disp_layer_drm_formats(struct zynqmp_disp_layer *layer,
979 unsigned int *num_formats)
980 {
981 unsigned int i;
982 u32 *formats;
983
984 if (WARN_ON(!layer->mode == ZYNQMP_DPSUB_LAYER_NONLIVE)) {
985 *num_formats = 0;
986 return NULL;
987 }
988
989 formats = kcalloc(layer->info->num_formats, sizeof(*formats),
990 GFP_KERNEL);
991 if (!formats) {
992 *num_formats = 0;
993 return NULL;
994 }
995
996 for (i = 0; i < layer->info->num_formats; ++i)
997 formats[i] = layer->info->formats[i].drm_fmt;
998
999 *num_formats = layer->info->num_formats;
1000 return formats;
1001 }
1002
1003 /**
1004 * zynqmp_disp_live_layer_formats - Return the media bus formats supported by
1005 * the live video layer
1006 * @layer: The layer
1007 * @num_formats: Pointer to the returned number of formats
1008 *
1009 * NOTE: This function should be used only for live video input layers.
1010 *
1011 * Return: A newly allocated u32 array of media bus formats supported by the
1012 * layer. The number of formats in the array is returned through the
1013 * @num_formats argument.
1014 */
1015 u32 *zynqmp_disp_live_layer_formats(struct zynqmp_disp_layer *layer,
1016 unsigned int *num_formats)
1017 {
1018 unsigned int i;
1019 u32 *formats;
1020
1021 if (WARN_ON(layer->mode != ZYNQMP_DPSUB_LAYER_LIVE)) {
1022 *num_formats = 0;
1023 return NULL;
1024 }
1025
1026 formats = kcalloc(layer->info->num_formats, sizeof(*formats),
1027 GFP_KERNEL);
1028 if (!formats) {
1029 *num_formats = 0;
1030 return NULL;
1031 }
1032
1033 for (i = 0; i < layer->info->num_formats; ++i)
1034 formats[i] = layer->info->formats[i].bus_fmt;
1035
1036 *num_formats = layer->info->num_formats;
1037 return formats;
1038 }
1039
1040 /**
1041 * zynqmp_disp_layer_enable - Enable a layer
1042 * @layer: The layer
1043 *
1044 * Enable the @layer in the audio/video buffer manager and the blender. DMA
1045 * channels are started separately by zynqmp_disp_layer_update().
1046 */
1047 void zynqmp_disp_layer_enable(struct zynqmp_disp_layer *layer)
1048 {
1049 zynqmp_disp_avbuf_enable_video(layer->disp, layer);
1050 zynqmp_disp_blend_layer_enable(layer->disp, layer);
1051 }
1052
1053 /**
1054 * zynqmp_disp_layer_disable - Disable the layer
1055 * @layer: The layer
1056 *
1057 * Disable the layer by stopping its DMA channels and disabling it in the
1058 * audio/video buffer manager and the blender.
1059 */
1060 void zynqmp_disp_layer_disable(struct zynqmp_disp_layer *layer)
1061 {
1062 unsigned int i;
1063
1064 if (layer->mode == ZYNQMP_DPSUB_LAYER_NONLIVE) {
1065 for (i = 0; i < layer->drm_fmt->num_planes; i++)
1066 dmaengine_terminate_sync(layer->dmas[i].chan);
1067 }
1068
1069 zynqmp_disp_avbuf_disable_video(layer->disp, layer);
1070 zynqmp_disp_blend_layer_disable(layer->disp, layer);
1071 }
1072
1073 /**
1074 * zynqmp_disp_layer_set_format - Set the layer format
1075 * @layer: The layer
1076 * @info: The format info
1077 *
1078 * NOTE: Use zynqmp_disp_layer_set_live_format() to set media bus format for
1079 * live video layers.
1080 *
1081 * Set the format for @layer to @info. The layer must be disabled.
1082 */
1083 void zynqmp_disp_layer_set_format(struct zynqmp_disp_layer *layer,
1084 const struct drm_format_info *info)
1085 {
1086 unsigned int i;
1087
1088 if (WARN_ON(layer->mode != ZYNQMP_DPSUB_LAYER_NONLIVE))
1089 return;
1090
1091 layer->disp_fmt = zynqmp_disp_layer_find_format(layer, info->format);
1092 if (WARN_ON(!layer->disp_fmt))
1093 return;
1094 layer->drm_fmt = info;
1095
1096 zynqmp_disp_avbuf_set_format(layer->disp, layer, layer->disp_fmt);
1097
1098 /*
1099 * Set pconfig for each DMA channel to indicate they're part of a
1100 * video group.
1101 */
1102 for (i = 0; i < info->num_planes; i++) {
1103 struct zynqmp_disp_layer_dma *dma = &layer->dmas[i];
1104 struct xilinx_dpdma_peripheral_config pconfig = {
1105 .video_group = true,
1106 };
1107 struct dma_slave_config config = {
1108 .direction = DMA_MEM_TO_DEV,
1109 .peripheral_config = &pconfig,
1110 .peripheral_size = sizeof(pconfig),
1111 };
1112
1113 dmaengine_slave_config(dma->chan, &config);
1114 }
1115 }
1116
1117 /**
1118 * zynqmp_disp_layer_set_live_format - Set the live video layer format
1119 * @layer: The layer
1120 * @info: The format info
1121 *
1122 * NOTE: This function should not be used to set format for non-live video
1123 * layer. Use zynqmp_disp_layer_set_format() instead.
1124 *
1125 * Set the display format for the live @layer. The layer must be disabled.
1126 */
1127 void zynqmp_disp_layer_set_live_format(struct zynqmp_disp_layer *layer,
1128 u32 media_bus_format)
> 1129 {
1130 if (WARN_ON(layer->mode != ZYNQMP_DPSUB_LAYER_LIVE))
1131 return;
1132
1133 layer->disp_fmt = zynqmp_disp_layer_find_live_format(layer,
1134 media_bus_format);
1135 if (WARN_ON(!layer->disp_fmt))
1136 return;
1137
1138 zynqmp_disp_avbuf_set_format(layer->disp, layer, layer->disp_fmt);
1139
1140 layer->drm_fmt = drm_format_info(layer->disp_fmt->drm_fmt);
1141 }
1142
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-04-25 22:29 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=202404260616.KFGDpCDN-lkp@intel.com \
--to=lkp@intel.com \
--cc=anatoliy.klymenko@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=tomi.valkeinen@ideasonboard.com \
/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.