All of lore.kernel.org
 help / color / mirror / Atom feed
* [chrome-os:chromeos-4.19 27/50] drivers/gpu/drm/drm_hdcp.c:235:6: warning: no previous prototype for 'drm_hdcp_request_srm'
@ 2020-11-13 10:00 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-11-13 10:00 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5027 bytes --]

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.19
head:   b9a3f5405fb3783912a70780b9f51b8942feed91
commit: 9602e2b071719b0f1e22a3a9ea2f5f3a6ba8f272 [27/50] UPSTREAM: drm: revocation check at drm subsystem
config: powerpc-ppc6xx_defconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
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
        git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
        git fetch --no-tags chrome-os chromeos-4.19
        git checkout 9602e2b071719b0f1e22a3a9ea2f5f3a6ba8f272
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/drm_hdcp.c:235:6: warning: no previous prototype for 'drm_hdcp_request_srm' [-Wmissing-prototypes]
     235 | void drm_hdcp_request_srm(struct drm_device *drm_dev)
         |      ^~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/drm_hdcp.c:317:5: warning: no previous prototype for 'drm_setup_hdcp_srm' [-Wmissing-prototypes]
     317 | int drm_setup_hdcp_srm(struct class *drm_class)
         |     ^~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/drm_hdcp.c:327:6: warning: no previous prototype for 'drm_teardown_hdcp_srm' [-Wmissing-prototypes]
     327 | void drm_teardown_hdcp_srm(struct class *drm_class)
         |      ^~~~~~~~~~~~~~~~~~~~~

vim +/drm_hdcp_request_srm +235 drivers/gpu/drm/drm_hdcp.c

   234	
 > 235	void drm_hdcp_request_srm(struct drm_device *drm_dev)
   236	{
   237		char fw_name[36] = "display_hdcp_srm.bin";
   238		const struct firmware *fw;
   239	
   240		int ret;
   241	
   242		ret = request_firmware_direct(&fw, (const char *)fw_name,
   243					      drm_dev->dev);
   244		if (ret < 0)
   245			goto exit;
   246	
   247		if (fw->size && fw->data)
   248			drm_hdcp_srm_update(fw->data, fw->size);
   249	
   250	exit:
   251		release_firmware(fw);
   252	}
   253	
   254	/**
   255	 * drm_hdcp_check_ksvs_revoked - Check the revoked status of the IDs
   256	 *
   257	 * @drm_dev: drm_device for which HDCP revocation check is requested
   258	 * @ksvs: List of KSVs (HDCP receiver IDs)
   259	 * @ksv_count: KSV count passed in through @ksvs
   260	 *
   261	 * This function reads the HDCP System renewability Message(SRM Table)
   262	 * from userspace as a firmware and parses it for the revoked HDCP
   263	 * KSVs(Receiver IDs) detected by DCP LLC. Once the revoked KSVs are known,
   264	 * revoked state of the KSVs in the list passed in by display drivers are
   265	 * decided and response is sent.
   266	 *
   267	 * SRM should be presented in the name of "display_hdcp_srm.bin".
   268	 *
   269	 * Returns:
   270	 * TRUE on any of the KSV is revoked, else FALSE.
   271	 */
   272	bool drm_hdcp_check_ksvs_revoked(struct drm_device *drm_dev, u8 *ksvs,
   273					 u32 ksv_count)
   274	{
   275		u32 rev_ksv_cnt, cnt, i, j;
   276		u8 *rev_ksv_list;
   277	
   278		if (!srm_data)
   279			return false;
   280	
   281		mutex_lock(&srm_data->mutex);
   282		drm_hdcp_request_srm(drm_dev);
   283	
   284		rev_ksv_cnt = srm_data->revoked_ksv_cnt;
   285		rev_ksv_list = srm_data->revoked_ksv_list;
   286	
   287		/* If the Revoked ksv list is empty */
   288		if (!rev_ksv_cnt || !rev_ksv_list) {
   289			mutex_unlock(&srm_data->mutex);
   290			return false;
   291		}
   292	
   293		for  (cnt = 0; cnt < ksv_count; cnt++) {
   294			rev_ksv_list = srm_data->revoked_ksv_list;
   295			for (i = 0; i < rev_ksv_cnt; i++) {
   296				for (j = 0; j < DRM_HDCP_KSV_LEN; j++)
   297					if (ksvs[j] != rev_ksv_list[j]) {
   298						break;
   299					} else if (j == (DRM_HDCP_KSV_LEN - 1)) {
   300						DRM_DEBUG("Revoked KSV is ");
   301						drm_hdcp_print_ksv(ksvs);
   302						mutex_unlock(&srm_data->mutex);
   303						return true;
   304					}
   305				/* Move the offset to next KSV in the revoked list */
   306				rev_ksv_list += DRM_HDCP_KSV_LEN;
   307			}
   308	
   309			/* Iterate to next ksv_offset */
   310			ksvs += DRM_HDCP_KSV_LEN;
   311		}
   312		mutex_unlock(&srm_data->mutex);
   313		return false;
   314	}
   315	EXPORT_SYMBOL_GPL(drm_hdcp_check_ksvs_revoked);
   316	
 > 317	int drm_setup_hdcp_srm(struct class *drm_class)
   318	{
   319		srm_data = kzalloc(sizeof(*srm_data), GFP_KERNEL);
   320		if (!srm_data)
   321			return -ENOMEM;
   322		mutex_init(&srm_data->mutex);
   323	
   324		return 0;
   325	}
   326	
 > 327	void drm_teardown_hdcp_srm(struct class *drm_class)

---
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: 29443 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-11-13 10:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-13 10:00 [chrome-os:chromeos-4.19 27/50] drivers/gpu/drm/drm_hdcp.c:235:6: warning: no previous prototype for 'drm_hdcp_request_srm' 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.