linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild@01.org, Michael Tretter <m.tretter@pengutronix.de>
Cc: Dan Carpenter <dan.carpenter@oracle.com>,
	kbuild-all@01.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, kernel@pengutronix.de,
	robh+dt@kernel.org, mchehab@kernel.org, tfiga@chromium.org,
	Michael Tretter <m.tretter@pengutronix.de>
Subject: Re: [PATCH 2/3] [media] allegro: add Allegro DVT video IP core driver
Date: Thu, 10 Jan 2019 22:49:25 +0300	[thread overview]
Message-ID: <20190110194925.GI1718@kadam> (raw)
In-Reply-To: <20190109113037.28430-3-m.tretter@pengutronix.de>

Hi Michael,

url:    https://github.com/0day-ci/linux/commits/Michael-Tretter/Add-ZynqMP-VCU-Allegro-DVT-H-264-encoder-driver/20190110-020930
base:   git://linuxtv.org/media_tree.git master

smatch warnings:
drivers/staging/media/allegro-dvt/allegro-core.c:616 allegro_mbox_write() error: uninitialized symbol 'err'.
drivers/staging/media/allegro-dvt/allegro-core.c:743 v4l2_profile_to_mcu_profile() warn: signedness bug returning '(-22)'
drivers/staging/media/allegro-dvt/allegro-core.c:753 v4l2_level_to_mcu_level() warn: signedness bug returning '(-22)'
drivers/staging/media/allegro-dvt/allegro-core.c:1162 allegro_receive_message() warn: struct type mismatch 'mcu_msg_header vs mcu_msg_encode_one_frm_response'

# https://github.com/0day-ci/linux/commit/573e9a62ef9a92c1f26f120a89aba1514b97b2b2
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 573e9a62ef9a92c1f26f120a89aba1514b97b2b2
vim +/err +616 drivers/staging/media/allegro-dvt/allegro-core.c

573e9a62 Michael Tretter 2019-01-09  568  
573e9a62 Michael Tretter 2019-01-09  569  static int allegro_mbox_write(struct allegro_dev *dev,
573e9a62 Michael Tretter 2019-01-09  570  			      struct allegro_mbox *mbox, void *src, size_t size)
573e9a62 Michael Tretter 2019-01-09  571  {
573e9a62 Michael Tretter 2019-01-09  572  	struct mcu_msg_header *header = src;
573e9a62 Michael Tretter 2019-01-09  573  	unsigned int tail;
573e9a62 Michael Tretter 2019-01-09  574  	size_t size_no_wrap;
573e9a62 Michael Tretter 2019-01-09  575  	int err;
573e9a62 Michael Tretter 2019-01-09  576  
573e9a62 Michael Tretter 2019-01-09  577  	if (!src)
573e9a62 Michael Tretter 2019-01-09  578  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  579  
573e9a62 Michael Tretter 2019-01-09  580  	if (size > mbox->size) {
573e9a62 Michael Tretter 2019-01-09  581  		v4l2_err(&dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  582  			 "message (%lu bytes) to large for mailbox (%lu bytes)\n",
573e9a62 Michael Tretter 2019-01-09  583  			 size, mbox->size);
573e9a62 Michael Tretter 2019-01-09  584  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  585  	}
573e9a62 Michael Tretter 2019-01-09  586  
573e9a62 Michael Tretter 2019-01-09  587  	if (header->length != size - sizeof(*header)) {
573e9a62 Michael Tretter 2019-01-09  588  		v4l2_err(&dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  589  			 "invalid message length: %u bytes (expected %lu bytes)\n",
573e9a62 Michael Tretter 2019-01-09  590  			 header->length, size - sizeof(*header));
573e9a62 Michael Tretter 2019-01-09  591  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  592  	}
573e9a62 Michael Tretter 2019-01-09  593  
573e9a62 Michael Tretter 2019-01-09  594  	v4l2_dbg(2, debug, &dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  595  		"write command message: type %s, body length %d\n",
573e9a62 Michael Tretter 2019-01-09  596  		msg_type_name(header->type), header->length);
573e9a62 Michael Tretter 2019-01-09  597  
573e9a62 Michael Tretter 2019-01-09  598  	mutex_lock(&mbox->lock);
573e9a62 Michael Tretter 2019-01-09  599  	regmap_read(dev->sram, mbox->tail, &tail);
573e9a62 Michael Tretter 2019-01-09  600  	if (tail > mbox->size) {
573e9a62 Michael Tretter 2019-01-09  601  		v4l2_err(&dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  602  			 "invalid tail (0x%x): must be smaller than mailbox size (0x%lx)\n",
573e9a62 Michael Tretter 2019-01-09  603  			 tail, mbox->size);
573e9a62 Michael Tretter 2019-01-09  604  		err = -EIO;
573e9a62 Michael Tretter 2019-01-09  605  		goto out;
573e9a62 Michael Tretter 2019-01-09  606  	}
573e9a62 Michael Tretter 2019-01-09  607  	size_no_wrap = min(size, mbox->size - (size_t)tail);
573e9a62 Michael Tretter 2019-01-09  608  	regmap_bulk_write(dev->sram, mbox->data + tail, src, size_no_wrap / 4);
573e9a62 Michael Tretter 2019-01-09  609  	regmap_bulk_write(dev->sram, mbox->data,
573e9a62 Michael Tretter 2019-01-09  610  			  src + size_no_wrap, (size - size_no_wrap) / 4);
573e9a62 Michael Tretter 2019-01-09  611  	regmap_write(dev->sram, mbox->tail, (tail + size) % mbox->size);
573e9a62 Michael Tretter 2019-01-09  612  
573e9a62 Michael Tretter 2019-01-09  613  out:
573e9a62 Michael Tretter 2019-01-09  614  	mutex_unlock(&mbox->lock);
573e9a62 Michael Tretter 2019-01-09  615  
573e9a62 Michael Tretter 2019-01-09 @616  	return err;
573e9a62 Michael Tretter 2019-01-09  617  }
573e9a62 Michael Tretter 2019-01-09  618  
573e9a62 Michael Tretter 2019-01-09  619  static ssize_t allegro_mbox_read(struct allegro_dev *dev,
573e9a62 Michael Tretter 2019-01-09  620  				 struct allegro_mbox *mbox,
573e9a62 Michael Tretter 2019-01-09  621  				 void *dst, size_t nbyte)
573e9a62 Michael Tretter 2019-01-09  622  {
573e9a62 Michael Tretter 2019-01-09  623  	struct mcu_msg_header *header;
573e9a62 Michael Tretter 2019-01-09  624  	unsigned int head;
573e9a62 Michael Tretter 2019-01-09  625  	ssize_t size;
573e9a62 Michael Tretter 2019-01-09  626  	size_t body_no_wrap;
573e9a62 Michael Tretter 2019-01-09  627  
573e9a62 Michael Tretter 2019-01-09  628  	regmap_read(dev->sram, mbox->head, &head);
573e9a62 Michael Tretter 2019-01-09  629  	if (head > mbox->size) {
573e9a62 Michael Tretter 2019-01-09  630  		v4l2_err(&dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  631  			 "invalid head (0x%x): must be smaller than mailbox size (0x%lx)\n",
573e9a62 Michael Tretter 2019-01-09  632  			 head, mbox->size);
573e9a62 Michael Tretter 2019-01-09  633  		return -EIO;
573e9a62 Michael Tretter 2019-01-09  634  	}
573e9a62 Michael Tretter 2019-01-09  635  
573e9a62 Michael Tretter 2019-01-09  636  	/* Assume that the header does not wrap. */
573e9a62 Michael Tretter 2019-01-09  637  	regmap_bulk_read(dev->sram, mbox->data + head,
573e9a62 Michael Tretter 2019-01-09  638  			 dst, sizeof(*header) / 4);
573e9a62 Michael Tretter 2019-01-09  639  	header = dst;
573e9a62 Michael Tretter 2019-01-09  640  	size = header->length + sizeof(*header);
573e9a62 Michael Tretter 2019-01-09  641  	if (size > mbox->size || size & 0x3) {
573e9a62 Michael Tretter 2019-01-09  642  		v4l2_err(&dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  643  			 "invalid message length: %lu bytes (maximum %lu bytes)\n",
573e9a62 Michael Tretter 2019-01-09  644  			 header->length + sizeof(*header), mbox->size);
573e9a62 Michael Tretter 2019-01-09  645  		return -EIO;
573e9a62 Michael Tretter 2019-01-09  646  	}
573e9a62 Michael Tretter 2019-01-09  647  	if (size > nbyte) {
573e9a62 Michael Tretter 2019-01-09  648  		v4l2_err(&dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  649  			 "destination buffer too small: %lu bytes (need %lu bytes)\n",
573e9a62 Michael Tretter 2019-01-09  650  			 nbyte, size);
573e9a62 Michael Tretter 2019-01-09  651  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  652  	}
573e9a62 Michael Tretter 2019-01-09  653  
573e9a62 Michael Tretter 2019-01-09  654  	/*
573e9a62 Michael Tretter 2019-01-09  655  	 * The message might wrap within the mailbox. If the message does not
573e9a62 Michael Tretter 2019-01-09  656  	 * wrap, the first read will read the entire message, otherwise the
573e9a62 Michael Tretter 2019-01-09  657  	 * first read will read message until the end of the mailbox and the
573e9a62 Michael Tretter 2019-01-09  658  	 * second read will read the remaining bytes from the beginning of the
573e9a62 Michael Tretter 2019-01-09  659  	 * mailbox.
573e9a62 Michael Tretter 2019-01-09  660  	 *
573e9a62 Michael Tretter 2019-01-09  661  	 * Skip the header, as was already read to get the size of the body.
573e9a62 Michael Tretter 2019-01-09  662  	 */
573e9a62 Michael Tretter 2019-01-09  663  	body_no_wrap = min((size_t)header->length,
573e9a62 Michael Tretter 2019-01-09  664  			   (mbox->size - (head + sizeof(*header))));
573e9a62 Michael Tretter 2019-01-09  665  	regmap_bulk_read(dev->sram, mbox->data + head + sizeof(*header),
573e9a62 Michael Tretter 2019-01-09  666  			 dst + sizeof(*header), body_no_wrap / 4);
573e9a62 Michael Tretter 2019-01-09  667  	regmap_bulk_read(dev->sram, mbox->data,
573e9a62 Michael Tretter 2019-01-09  668  			 dst + sizeof(*header) + body_no_wrap,
573e9a62 Michael Tretter 2019-01-09  669  			 (header->length - body_no_wrap) / 4);
573e9a62 Michael Tretter 2019-01-09  670  
573e9a62 Michael Tretter 2019-01-09  671  	regmap_write(dev->sram, mbox->head, (head + size) % mbox->size);
573e9a62 Michael Tretter 2019-01-09  672  
573e9a62 Michael Tretter 2019-01-09  673  	v4l2_dbg(2, debug, &dev->v4l2_dev,
573e9a62 Michael Tretter 2019-01-09  674  		"read status message: type %s, body length %d\n",
573e9a62 Michael Tretter 2019-01-09  675  		msg_type_name(header->type), header->length);
573e9a62 Michael Tretter 2019-01-09  676  
573e9a62 Michael Tretter 2019-01-09  677  	return size;
573e9a62 Michael Tretter 2019-01-09  678  }
573e9a62 Michael Tretter 2019-01-09  679  
573e9a62 Michael Tretter 2019-01-09  680  static void allegro_mcu_interrupt(struct allegro_dev *dev)
573e9a62 Michael Tretter 2019-01-09  681  {
573e9a62 Michael Tretter 2019-01-09  682  	regmap_write(dev->regmap, AL5_MCU_INTERRUPT, BIT(0));
573e9a62 Michael Tretter 2019-01-09  683  }
573e9a62 Michael Tretter 2019-01-09  684  
573e9a62 Michael Tretter 2019-01-09  685  static void allegro_mcu_send_init(struct allegro_dev *dev,
573e9a62 Michael Tretter 2019-01-09  686  				  dma_addr_t suballoc_dma, size_t suballoc_size)
573e9a62 Michael Tretter 2019-01-09  687  {
573e9a62 Michael Tretter 2019-01-09  688  	struct mcu_msg_init_request msg;
573e9a62 Michael Tretter 2019-01-09  689  
573e9a62 Michael Tretter 2019-01-09  690  	msg.header.type = MCU_MSG_TYPE_INIT;
573e9a62 Michael Tretter 2019-01-09  691  	msg.header.length = sizeof(msg) - sizeof(msg.header);
573e9a62 Michael Tretter 2019-01-09  692  	msg.reserved0 = 0;
573e9a62 Michael Tretter 2019-01-09  693  	msg.suballoc_dma = lower_32_bits(suballoc_dma) | MCU_CACHE_OFFSET;
573e9a62 Michael Tretter 2019-01-09  694  	msg.suballoc_size = suballoc_size;
573e9a62 Michael Tretter 2019-01-09  695  
573e9a62 Michael Tretter 2019-01-09  696  	/* TODO Add L2 cache support. */
573e9a62 Michael Tretter 2019-01-09  697  	msg.l2_cache[0] = -1;
573e9a62 Michael Tretter 2019-01-09  698  	msg.l2_cache[1] = -1;
573e9a62 Michael Tretter 2019-01-09  699  	msg.l2_cache[2] = -1;
573e9a62 Michael Tretter 2019-01-09  700  
573e9a62 Michael Tretter 2019-01-09  701  	allegro_mbox_write(dev, &dev->mbox_command, &msg, sizeof(msg));
573e9a62 Michael Tretter 2019-01-09  702  	allegro_mcu_interrupt(dev);
573e9a62 Michael Tretter 2019-01-09  703  }
573e9a62 Michael Tretter 2019-01-09  704  
573e9a62 Michael Tretter 2019-01-09  705  static u32 v4l2_pixelformat_to_mcu_format(u32 pixelformat)
573e9a62 Michael Tretter 2019-01-09  706  {
573e9a62 Michael Tretter 2019-01-09  707  	switch (pixelformat) {
573e9a62 Michael Tretter 2019-01-09  708  	case V4L2_PIX_FMT_NV12:
573e9a62 Michael Tretter 2019-01-09  709  		/* AL_420_8BITS: 0x100 -> NV12, 0x88 -> 8 bit */
573e9a62 Michael Tretter 2019-01-09  710  		return 0x100 | 0x88;
573e9a62 Michael Tretter 2019-01-09  711  	default:
573e9a62 Michael Tretter 2019-01-09  712  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  713  	}
573e9a62 Michael Tretter 2019-01-09  714  }
573e9a62 Michael Tretter 2019-01-09  715  
573e9a62 Michael Tretter 2019-01-09  716  static u32 v4l2_colorspace_to_mcu_colorspace(enum v4l2_colorspace colorspace)
573e9a62 Michael Tretter 2019-01-09  717  {
573e9a62 Michael Tretter 2019-01-09  718  	switch (colorspace) {
573e9a62 Michael Tretter 2019-01-09  719  	case V4L2_COLORSPACE_DEFAULT:
573e9a62 Michael Tretter 2019-01-09  720  		/* fallthrough */
573e9a62 Michael Tretter 2019-01-09  721  	default:
573e9a62 Michael Tretter 2019-01-09  722  		/* e_ColorSpace.UNKNOWN */
573e9a62 Michael Tretter 2019-01-09  723  		return 0;
573e9a62 Michael Tretter 2019-01-09  724  	}
573e9a62 Michael Tretter 2019-01-09  725  }
573e9a62 Michael Tretter 2019-01-09  726  
573e9a62 Michael Tretter 2019-01-09  727  static s8 v4l2_pixelformat_to_mcu_codec(u32 pixelformat)
573e9a62 Michael Tretter 2019-01-09  728  {
573e9a62 Michael Tretter 2019-01-09  729  	switch (pixelformat) {
573e9a62 Michael Tretter 2019-01-09  730  	case V4L2_PIX_FMT_H264:
573e9a62 Michael Tretter 2019-01-09  731  		return 1;
573e9a62 Michael Tretter 2019-01-09  732  	default:
573e9a62 Michael Tretter 2019-01-09  733  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  734  	}
573e9a62 Michael Tretter 2019-01-09  735  }
573e9a62 Michael Tretter 2019-01-09  736  
573e9a62 Michael Tretter 2019-01-09  737  static u8 v4l2_profile_to_mcu_profile(enum v4l2_mpeg_video_h264_profile profile)
573e9a62 Michael Tretter 2019-01-09  738  {
573e9a62 Michael Tretter 2019-01-09  739  	switch (profile) {
573e9a62 Michael Tretter 2019-01-09  740  	case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE:
573e9a62 Michael Tretter 2019-01-09  741  		return 66;
573e9a62 Michael Tretter 2019-01-09  742  	default:
573e9a62 Michael Tretter 2019-01-09 @743  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  744  	}
573e9a62 Michael Tretter 2019-01-09  745  }
573e9a62 Michael Tretter 2019-01-09  746  
573e9a62 Michael Tretter 2019-01-09  747  static u16 v4l2_level_to_mcu_level(enum v4l2_mpeg_video_h264_level level)
573e9a62 Michael Tretter 2019-01-09  748  {
573e9a62 Michael Tretter 2019-01-09  749  	switch (level) {
573e9a62 Michael Tretter 2019-01-09  750  	case V4L2_MPEG_VIDEO_H264_LEVEL_2_0:
573e9a62 Michael Tretter 2019-01-09  751  		return 20;
573e9a62 Michael Tretter 2019-01-09  752  	default:
573e9a62 Michael Tretter 2019-01-09 @753  		return -EINVAL;
573e9a62 Michael Tretter 2019-01-09  754  	}
573e9a62 Michael Tretter 2019-01-09  755  }
573e9a62 Michael Tretter 2019-01-09  756  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

  parent reply	other threads:[~2019-01-10 19:49 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-09 11:30 [PATCH 0/3] Add ZynqMP VCU/Allegro DVT H.264 encoder driver Michael Tretter
2019-01-09 11:30 ` [PATCH 1/3] media: dt-bindings: media: document allegro-dvt bindings Michael Tretter
2019-01-09 11:30 ` [PATCH 2/3] [media] allegro: add Allegro DVT video IP core driver Michael Tretter
2019-01-10  6:00   ` kbuild test robot
2019-01-10 19:49   ` kbuild test robot [this message]
2019-01-09 11:30 ` [PATCH 3/3] [media] allegro: add SPS/PPS nal unit writer Michael Tretter
2019-01-10 20:56   ` kbuild test robot

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=20190110194925.GI1718@kadam \
    --to=lkp@intel.com \
    --cc=dan.carpenter@oracle.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kbuild-all@01.org \
    --cc=kbuild@01.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-media@vger.kernel.org \
    --cc=m.tretter@pengutronix.de \
    --cc=mchehab@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=tfiga@chromium.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).