Re: [PATCH v9 3/3] media: vimc: Add a control to display info on test image

2020-07-02 Thread kernel test robot
Hi Kaaira,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v5.8-rc3 next-20200702]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:
https://github.com/0day-ci/linux/commits/Kaaira-Gupta/media-Add-colors-order-and-other-info-over-test-image/20200701-213129
base:   git://linuxtv.org/media_tree.git master
config: arm-randconfig-r023-20200702 (attached as .config)
compiler: arm-linux-gnueabi-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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All errors (new ones prefixed by >>):

   arm-linux-gnueabi-ld: section .data VMA [80008000,80346f97] 
overlaps section .text VMA [7f0801c0,80b4332f]
   arm-linux-gnueabi-ld: drivers/media/test-drivers/vimc/vimc-sensor.o: in 
function `vimc_sen_process_frame':
>> drivers/media/test-drivers/vimc/vimc-sensor.c:227: undefined reference to 
>> `__aeabi_uldivmod'

vim +227 drivers/media/test-drivers/vimc/vimc-sensor.c

   192  
   193  static void *vimc_sen_process_frame(struct vimc_ent_device *ved,
   194  const void *sink_frame)
   195  {
   196  struct vimc_sen_device *vsen = container_of(ved, struct 
vimc_sen_device,
   197  ved);
   198  const unsigned int line_height = 16;
   199  u8 *basep[TPG_MAX_PLANES][2];
   200  unsigned int line = 1;
   201  char str[100];
   202  
   203  tpg_fill_plane_buffer(&vsen->tpg, 0, 0, vsen->frame);
   204  tpg_calc_text_basep(&vsen->tpg, basep, 0, vsen->frame);
   205  switch (vsen->osd_value) {
   206  case VIMC_SEN_OSD_SHOW_ALL: {
   207  const char *order = tpg_g_color_order(&vsen->tpg);
   208  
   209  tpg_gen_text(&vsen->tpg, basep, line++ * line_height,
   210   16, order);
   211  snprintf(str, sizeof(str),
   212   "brightness %3d, contrast %3d, saturation %3d, 
hue %d ",
   213   vsen->tpg.brightness,
   214   vsen->tpg.contrast,
   215   vsen->tpg.saturation,
   216   vsen->tpg.hue);
   217  tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 
16, str);
   218  snprintf(str, sizeof(str), "sensor size: %dx%d",
   219   vsen->mbus_format.width,
   220   vsen->mbus_format.height);
   221  tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 
16, str);
   222  fallthrough;
   223  }
   224  case VIMC_SEN_OSD_SHOW_COUNTERS: {
   225  unsigned int ms;
   226  
 > 227  ms = (ktime_get_ns() - vsen->start_stream_ts) / 100;
   228  snprintf(str, sizeof(str), "%02d:%02d:%02d:%03d",
   229   (ms / (60 * 60 * 1000)) % 24,
   230   (ms / (60 * 1000)) % 60,
   231   (ms / 1000) % 60,
   232   ms % 1000);
   233  tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 
16, str);
   234  break;
   235  }
   236  case VIMC_SEN_OSD_SHOW_NONE:
   237  default:
   238  break;
   239  }
   240  
   241  return vsen->frame;
   242  }
   243  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org


.config.gz
Description: application/gzip


Re: [PATCH v9 3/3] media: vimc: Add a control to display info on test image

2020-07-01 Thread Kieran Bingham
Hi Kaaira,

On 01/07/2020 14:29, Kaaira Gupta wrote:
> Add a control in VIMC to display information such as the correct order of
> colors for a given test pattern, counter, brightness, hue, saturation,
> contrast, width and height at sensor over test image.
> 
> Signed-off-by: Kaaira Gupta 
> Acked-by: Helen Koike 
> ---
>  drivers/media/test-drivers/vimc/Kconfig   |  2 +
>  drivers/media/test-drivers/vimc/vimc-common.h |  1 +
>  drivers/media/test-drivers/vimc/vimc-core.c   | 10 +++
>  drivers/media/test-drivers/vimc/vimc-sensor.c | 71 +++
>  4 files changed, 84 insertions(+)
> 
> diff --git a/drivers/media/test-drivers/vimc/Kconfig 
> b/drivers/media/test-drivers/vimc/Kconfig
> index 4068a67585f9..da4b2ad6e40c 100644
> --- a/drivers/media/test-drivers/vimc/Kconfig
> +++ b/drivers/media/test-drivers/vimc/Kconfig
> @@ -2,6 +2,8 @@
>  config VIDEO_VIMC
>   tristate "Virtual Media Controller Driver (VIMC)"
>   depends on VIDEO_DEV && VIDEO_V4L2
> + select FONT_SUPPORT
> + select FONT_8x16
>   select MEDIA_CONTROLLER
>   select VIDEO_V4L2_SUBDEV_API
>   select VIDEOBUF2_VMALLOC
> diff --git a/drivers/media/test-drivers/vimc/vimc-common.h 
> b/drivers/media/test-drivers/vimc/vimc-common.h
> index ae163dec2459..a289434e75ba 100644
> --- a/drivers/media/test-drivers/vimc/vimc-common.h
> +++ b/drivers/media/test-drivers/vimc/vimc-common.h
> @@ -20,6 +20,7 @@
>  #define VIMC_CID_VIMC_CLASS  (0x00f0 | 1)
>  #define VIMC_CID_TEST_PATTERN(VIMC_CID_VIMC_BASE + 0)
>  #define VIMC_CID_MEAN_WIN_SIZE   (VIMC_CID_VIMC_BASE + 1)
> +#define VIMC_CID_OSD_TEXT_MODE   (VIMC_CID_VIMC_BASE + 2)
>  
>  #define VIMC_FRAME_MAX_WIDTH 4096
>  #define VIMC_FRAME_MAX_HEIGHT 2160
> diff --git a/drivers/media/test-drivers/vimc/vimc-core.c 
> b/drivers/media/test-drivers/vimc/vimc-core.c
> index 11210aaa2551..4b0ae6f51d76 100644
> --- a/drivers/media/test-drivers/vimc/vimc-core.c
> +++ b/drivers/media/test-drivers/vimc/vimc-core.c
> @@ -5,10 +5,12 @@
>   * Copyright (C) 2015-2017 Helen Koike 
>   */
>  
> +#include 
>  #include 
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
>  
>  #include "vimc-common.h"
> @@ -263,11 +265,19 @@ static int vimc_register_devices(struct vimc_device 
> *vimc)
>  
>  static int vimc_probe(struct platform_device *pdev)
>  {
> + const struct font_desc *font = find_font("VGA8x16");
>   struct vimc_device *vimc;
>   int ret;
>  
>   dev_dbg(&pdev->dev, "probe");
>  
> + if (!font) {
> + dev_err(&pdev->dev, "could not find font\n");
> + return -ENODEV;
> + }
> +
> + tpg_set_font(font->data);
> +
>   vimc = kzalloc(sizeof(*vimc), GFP_KERNEL);
>   if (!vimc)
>   return -ENOMEM;
> diff --git a/drivers/media/test-drivers/vimc/vimc-sensor.c 
> b/drivers/media/test-drivers/vimc/vimc-sensor.c
> index a2f09ac9a360..f5674b9b757e 100644
> --- a/drivers/media/test-drivers/vimc/vimc-sensor.c
> +++ b/drivers/media/test-drivers/vimc/vimc-sensor.c
> @@ -14,11 +14,19 @@
>  
>  #include "vimc-common.h"
>  
> +enum vimc_sen_osd_mode {
> + VIMC_SEN_OSD_SHOW_ALL = 0,
> + VIMC_SEN_OSD_SHOW_COUNTERS = 1,
> + VIMC_SEN_OSD_SHOW_NONE = 2
> +};
> +
>  struct vimc_sen_device {
>   struct vimc_ent_device ved;
>   struct v4l2_subdev sd;
>   struct tpg_data tpg;
>   u8 *frame;
> + enum vimc_sen_osd_mode osd_value;
> + u64 start_stream_ts;
>   /* The active format */
>   struct v4l2_mbus_framefmt mbus_format;
>   struct v4l2_ctrl_handler hdl;
> @@ -187,8 +195,49 @@ static void *vimc_sen_process_frame(struct 
> vimc_ent_device *ved,
>  {
>   struct vimc_sen_device *vsen = container_of(ved, struct vimc_sen_device,
>   ved);
> + const unsigned int line_height = 16;
> + u8 *basep[TPG_MAX_PLANES][2];
> + unsigned int line = 1;
> + char str[100];
>  
>   tpg_fill_plane_buffer(&vsen->tpg, 0, 0, vsen->frame);
> + tpg_calc_text_basep(&vsen->tpg, basep, 0, vsen->frame);
> + switch (vsen->osd_value) {
> + case VIMC_SEN_OSD_SHOW_ALL: {
> + const char *order = tpg_g_color_order(&vsen->tpg);
> +
> + tpg_gen_text(&vsen->tpg, basep, line++ * line_height,
> +  16, order);
> + snprintf(str, sizeof(str),
> +  "brightness %3d, contrast %3d, saturation %3d, hue %d 
> ",
> +  vsen->tpg.brightness,
> +  vsen->tpg.contrast,
> +  vsen->tpg.saturation,
> +  vsen->tpg.hue);
> + tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 16, str);
> + snprintf(str, sizeof(str), "sensor size: %dx%d",
> +  vsen->mbus_format.width,
> +  vsen->mbus_format.height);
> + tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 16, str);
> +