1. 20 Apr, 2018 10 commits
  2. 18 Apr, 2018 1 commit
  3. 17 Apr, 2018 29 commits
    • Daniel Scheller's avatar
      media: ddbridge: don't uselessly check for dma in start/stop functions · 8b8fcf32
      Daniel Scheller authored
      The check for a valid ptr in ddb_io->dma isn't really necessary since only
      devices that do data transport using DMA are supported by the driver, and
      all previous initialisation code (through input_init(), output_init() and
      dma_init(), has_dma is always true as it's set in ddb_probe() during
      driver load) guarantees the ptr is set.
      
      As a side effect, this silences these sparse warnings (albeit them being
      false positives as ddb_io->dma won't change in these functions so the
      condition always equals to the same result):
      
          drivers/media/pci/ddbridge/ddbridge-core.c:495:9: warning: context imbalance in 'ddb_output_start' - different lock contexts for basic block
          drivers/media/pci/ddbridge/ddbridge-core.c:510:9: warning: context imbalance in 'ddb_output_stop' - different lock contexts for basic block
          drivers/media/pci/ddbridge/ddbridge-core.c:525:9: warning: context imbalance in 'ddb_input_stop' - different lock contexts for basic block
          drivers/media/pci/ddbridge/ddbridge-core.c:560:9: warning: context imbalance in 'ddb_input_start' - different lock contexts for basic block
      Signed-off-by: default avatarDaniel Scheller <d.scheller@gmx.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      8b8fcf32
    • Mauro Carvalho Chehab's avatar
      media: mantis: prevent staying forever in a loop at IRQ · cac61a1a
      Mauro Carvalho Chehab authored
      As warned by smatch:
      	drivers/media/pci/mantis/mantis_uart.c:105 mantis_uart_work() warn: this loop depends on readl() succeeding
      
      If something goes wrong at readl(), the logic will stay there
      inside an IRQ code forever. This is not the nicest thing to
      do :-)
      
      So, add a timeout there, preventing staying inside the IRQ
      for more than 10ms.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      cac61a1a
    • Mauro Carvalho Chehab's avatar
      media: st_rc: Don't stay on an IRQ handler forever · ee2d243d
      Mauro Carvalho Chehab authored
      As warned by smatch:
      	drivers/media/rc/st_rc.c:110 st_rc_rx_interrupt() warn: this loop depends on readl() succeeding
      
      If something goes wrong at readl(), the logic will stay there
      inside an IRQ code forever. This is not the nicest thing to
      do :-)
      
      So, add a timeout there, preventing staying inside the IRQ
      for more than 10ms.
      Acked-by: default avatarPatrice Chotard <patrice.chotard@st.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      ee2d243d
    • Mauro Carvalho Chehab's avatar
      media: atomisp: get rid of a warning · ca33f8f6
      Mauro Carvalho Chehab authored
      On smatch, this warning is trigged:
      
      	drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm_bo.c:324 __bo_take_off_handling() error: we previously assumed 'bo->prev' could be null (see line 314)
      
      Because it can't properly analize the truth table for the above
      function. So, add an explicit check for the final condition there.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      ca33f8f6
    • Mauro Carvalho Chehab's avatar
      media: atomisp: compat32: fix __user annotations · ad4222a0
      Mauro Carvalho Chehab authored
      The __user annotations at the compat32 code is not right:
      
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:81:18: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:81:18:    expected void *base
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:81:18:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:232:23: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:232:23:    expected unsigned int [usertype] *xcoords_y
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:232:23:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:233:23: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:233:23:    expected unsigned int [usertype] *ycoords_y
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:233:23:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:234:24: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:234:24:    expected unsigned int [usertype] *xcoords_uv
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:234:24:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:235:24: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:235:24:    expected unsigned int [usertype] *ycoords_uv
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:235:24:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:296:29: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:296:29:    expected unsigned int [usertype] *effective_width
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:296:29:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:360:29: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:360:29:    expected unsigned int [usertype] *effective_width
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:360:29:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:437:19: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:437:19:    expected struct v4l2_framebuffer *frame
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:437:19:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:481:29: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:481:29:    expected unsigned short *calb_grp_values
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:481:29:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:701:39: warning: cast removes address space of expression
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:704:21: warning: incorrect type in argument 1 (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:704:21:    expected void const volatile [noderef] <asn:1>*<noident>
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:704:21:    got unsigned int [usertype] *src
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:737:43: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:737:43:    expected struct atomisp_shading_table *shading_table
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:737:43:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:742:44: warning: incorrect type in argument 1 (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:742:44:    expected void [noderef] <asn:1>*to
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:742:44:    got struct atomisp_shading_table *shading_table
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:755:41: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:755:41:    expected struct atomisp_morph_table *morph_table
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:755:41:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:760:44: warning: incorrect type in argument 1 (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:760:44:    expected void [noderef] <asn:1>*to
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:760:44:    got struct atomisp_morph_table *morph_table
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:772:40: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:772:40:    expected struct atomisp_dvs2_coefficients *dvs2_coefs
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:772:40:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:777:44: warning: incorrect type in argument 1 (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:777:44:    expected void [noderef] <asn:1>*to
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:777:44:    got struct atomisp_dvs2_coefficients *dvs2_coefs
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:788:46: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:788:46:    expected struct atomisp_dvs_6axis_config *dvs_6axis_config
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:788:46:    got void [noderef] <asn:1>*
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:793:44: warning: incorrect type in argument 1 (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:793:44:    expected void [noderef] <asn:1>*to
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:793:44:    got struct atomisp_dvs_6axis_config *dvs_6axis_config
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:853:17: warning: incorrect type in assignment (different address spaces)
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:853:17:    expected struct atomisp_sensor_ae_bracketing_lut_entry *lut
         drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:853:17:    got void [noderef] <asn:1>*
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      ad4222a0
    • Mauro Carvalho Chehab's avatar
      media: staging: atomisp: add missing include · f224cbec
      Mauro Carvalho Chehab authored
      There are two functions used externally:
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:866:6: warning: symbol 'atomisp_do_compat_ioctl' was not declared. Should it be static?
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:1110:6: warning: symbol 'atomisp_compat_ioctl32' was not declared. Should it be static?
      
      whose include header is missing. Add it.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      f224cbec
    • Mauro Carvalho Chehab's avatar
      media: atomisp: compat32: use get_user() before referencing user data · 158dff0e
      Mauro Carvalho Chehab authored
      The logic at get_atomisp_parameters32() is broken, as pointed by
      smatch:
      
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:737:21: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:744:60: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:763:21: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:770:60: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:788:21: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:795:60: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:812:21: warning: dereference of noderef expression
      	drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_ioctl32.c:819:60: warning: dereference of noderef expression
      
      It tries to access userspace data directly, without calling
      get_user(). That should generate OOPS. Thankfully, the right
      logic is already there (although commented out).
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      158dff0e
    • Mauro Carvalho Chehab's avatar
      media: v4l2-compat-ioctl32: prevent go past max size · ea72fbf5
      Mauro Carvalho Chehab authored
      As warned by smatch:
      	drivers/media/v4l2-core/v4l2-compat-ioctl32.c:879 put_v4l2_ext_controls32() warn: check for integer overflow 'count'
      
      The access_ok() logic should check for too big arrays too.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      ea72fbf5
    • Mauro Carvalho Chehab's avatar
      media: platform: fix some 64-bits warnings · 34b2ea1c
      Mauro Carvalho Chehab authored
      The omap/omap3 and viu drivers are for 32 bit platforms only.
      There, a pointer has 32 bits. Now that those drivers build
      for 64 bits with COMPILE_TEST, they produce the following
      warnings:
      
      drivers/media/platform/omap/omap_vout_vrfb.c: In function 'omap_vout_allocate_vrfb_buffers':
      drivers/media/platform/omap/omap_vout_vrfb.c:57:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
         memset((void *) vout->smsshado_virt_addr[i], 0,
                ^
      drivers/media/platform/fsl-viu.c: In function 'viu_setup_preview':
      drivers/media/platform/fsl-viu.c:753:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
        reg_val.field_base_addr = (u32)dev->ovbuf.base;
                                  ^
      drivers/media/platform/omap/omap_vout.c: In function 'omap_vout_get_userptr':
      drivers/media/platform/omap/omap_vout.c:209:25: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
         *physp = virt_to_phys((void *)virtp);
                               ^
      drivers/media/platform/omap3isp/ispccdc.c: In function 'ccdc_config':
      drivers/media/platform/omap3isp/ispccdc.c:738:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
               (__force void __user *)fpc.fpcaddr,
               ^
      
      Add some typecasts to remove those warnings when building for
      64 bits.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      34b2ea1c
    • Mauro Carvalho Chehab's avatar
      media: atomisp: remove an impossible condition · e935dbfc
      Mauro Carvalho Chehab authored
      Changeset dc9f65cf ("media: staging: atomisp: avoid a warning if 32
      bits build") was meant to solve an impossible condition when building
      with 32 bits. It turns that this impossible condition also happens wit
      64 bits:
      	drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c:698 gmin_get_config_var() warn: impossible condition '(*out_len > (~0)) => (0-u64max > u64max)'
      
      After a further analysis, this condition will always be false as, on
      all architectures, size_t doesn't have more bits than unsigned long.
      
      Also, the only two archs that really matter are x86 and x86_64, as this
      driver doesn't build on other archs (as it depends on X86-specific UEFI
      support).
      
      So, just drop the useless code.
      
      Fixes: dc9f65cf ("media: staging: atomisp: avoid a warning if 32 bits build")
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      e935dbfc
    • Hans Verkuil's avatar
      media: cec: fix smatch error · b66d4484
      Hans Verkuil authored
      drivers/media/cec/cec-pin-error-inj.c:231
      cec_pin_error_inj_parse_line() error: uninitialized symbol 'pos'.
      
      The tx-add-bytes command didn't check for the presence of an argument, and
      also didn't check that it was > 0.
      
      This should fix this error.
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      b66d4484
    • Mauro Carvalho Chehab's avatar
      media: v4l2-fwnode: simplify v4l2_fwnode_reference_parse_int_props() · 9879c9d3
      Mauro Carvalho Chehab authored
      The logic at v4l2_fwnode_reference_parse_int_props() is somewhat
      complex and violates Linux coding style, as it does multiple
      statements on a single line. That makes static analyzers to
      be confused, as warned by smatch:
      
      	drivers/media/v4l2-core/v4l2-fwnode.c:832 v4l2_fwnode_reference_parse_int_props() warn: passing zero to 'PTR_ERR'
      
      Simplify the logic, in order to make clearer about what happens
      when v4l2_fwnode_reference_get_int_prop() returns an error.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      9879c9d3
    • Mauro Carvalho Chehab's avatar
      media: dvb_frontend: fix locking issues at dvb_frontend_get_event() · 76d81243
      Mauro Carvalho Chehab authored
      As warned by smatch:
      	drivers/media/dvb-core/dvb_frontend.c:314 dvb_frontend_get_event() warn: inconsistent returns 'sem:&fepriv->sem'.
      	  Locked on:   line 288
      	               line 295
      	               line 306
      	               line 314
      	  Unlocked on: line 303
      
      The lock implementation for get event is wrong, as, if an
      interrupt occurs, down_interruptible() will fail, and the
      routine will call up() twice when userspace calls the ioctl
      again.
      
      The bad code is there since when Linux migrated to git, in
      2005.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      76d81243
    • Mauro Carvalho Chehab's avatar
      media: staging: atomisp: fix string comparation logic · 65c11673
      Mauro Carvalho Chehab authored
      it makes no sense to use strncmp() with a size with is
      bigger than the string we're comparing with.
      
      Fix those warnings:
      
          drivers/staging/media/atomisp/pci/atomisp2/atomisp_fops.c:776 atomisp_open() error: strncmp() '"ATOMISP ISP ACC"' too small (16 vs 32)
          drivers/staging/media/atomisp/pci/atomisp2/atomisp_fops.c:913 atomisp_release() error: strncmp() '"ATOMISP ISP ACC"' too small (16 vs 32)
          drivers/staging/media/atomisp/pci/atomisp2/atomisp_ioctl.c:2751 atomisp_vidioc_default() error: strncmp() '"ATOMISP ISP ACC"' too small (16 vs 32)
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      65c11673
    • Mauro Carvalho Chehab's avatar
      media: atomisp: fix __user annotations · 90d53d19
      Mauro Carvalho Chehab authored
      There are lots of troubles with atomisp __user annotations. Fix them.
      
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c:357:49: warning: incorrect type in argument 2 (different address spaces)
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c:357:49:    expected void *userptr
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c:357:49:    got void [noderef] <asn:1>*user_ptr
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:3302:43: warning: incorrect type in argument 2 (different address spaces)
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:3302:43:    expected void const [noderef] <asn:1>*from
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:3302:43:    got void const *from
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4070:58: warning: incorrect type in argument 2 (different address spaces)
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4070:58:    expected void const *from
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4070:58:    got unsigned short [noderef] <asn:1>*<noident>
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4082:58: warning: incorrect type in argument 2 (different address spaces)
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4082:58:    expected void const *from
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4082:58:    got unsigned short [noderef] <asn:1>*<noident>
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:6179:62: warning: incorrect type in argument 2 (different address spaces)
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:6179:62:    expected void const [noderef] <asn:1>*from
      drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:6179:62:    got unsigned short [usertype] *<noident>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      90d53d19
    • Mauro Carvalho Chehab's avatar
      media: staging: atomisp: don't declare the same vars as both private and public · 3204043f
      Mauro Carvalho Chehab authored
      The mmu_private.h header is included at mmu.c, with duplicates the
      already existing definitions at mmu_public.h.
      
      Fix this by removing the erroneous header file.
      
      Solve those issues:
      
          drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/mmu_private.h:24:26: warning: function 'mmu_reg_store' with external linkage has definition
          drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/mmu_private.h:35:30: warning: function 'mmu_reg_load' with external linkage has definition
          drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/mmu_private.h:24:26: warning: function 'mmu_reg_store' with external linkage has definition
          drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/mmu_private.h:35:30: warning: function 'mmu_reg_load' with external linkage has definition
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      3204043f
    • Mauro Carvalho Chehab's avatar
      media: staging: atomisp: fix number conversion · 27210585
      Mauro Carvalho Chehab authored
      smatch says that there's an issue with number
      conversion:
      
         drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_params.c:4154 sh_css_params_write_to_ddr_internal() warn: '((-(1 << ((14 - 1)))))' 4294959104 can't fit into 32767 'converted_macc_table.data[idx]'
         drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_params.c:4157 sh_css_params_write_to_ddr_internal() warn: '((-(1 << ((14 - 1)))))' 4294959104 can't fit into 32767 'converted_macc_table.data[idx + 1]'
         drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_params.c:4160 sh_css_params_write_to_ddr_internal() warn: '((-(1 << ((14 - 1)))))' 4294959104 can't fit into 32767 'converted_macc_table.data[idx + 2]'
         drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_params.c:4163 sh_css_params_write_to_ddr_internal() warn: '((-(1 << ((14 - 1)))))' 4294959104 can't fit into 32767 'converted_macc_table.data[idx + 3]'
         drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/eed1_8/ia_css_eed1_8.host.c:168 ia_css_eed1_8_vmem_encode() warn: assigning (-8192) to unsigned variable 'to->e_dew_enh_a[0][base + j]'
      
      That's probably because min() and max() definition used there
      are really poor ones. So, replace by the in-kernel macro.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      27210585
    • Mauro Carvalho Chehab's avatar
      media: omap_vout: fix wrong identing · b1011a33
      Mauro Carvalho Chehab authored
      As warned:
      	drivers/media/platform/omap/omap_vout.c:711 omap_vout_buffer_setup() warn: inconsistent indenting
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      b1011a33
    • Mauro Carvalho Chehab's avatar
      media: fsl-viu: fix __iomem annotations · 27e4b6cf
      Mauro Carvalho Chehab authored
      Those annotations are wrong, causing this warning:
      
          drivers/media/platform/fsl-viu.c:1440:21: warning: incorrect type in assignment (different address spaces)
          drivers/media/platform/fsl-viu.c:1440:21:    expected struct viu_reg *vr
          drivers/media/platform/fsl-viu.c:1440:21:    got struct viu_reg [noderef] <asn:2>*[assigned] viu_regs
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      27e4b6cf
    • Mauro Carvalho Chehab's avatar
      media: fsl-viu: use %p to print pointers · 2d78a19c
      Mauro Carvalho Chehab authored
      Solve those warnings:
      
          drivers/media/platform/fsl-viu.c:299 restart_video_queue() warn: argument 3 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:506 buffer_queue() warn: argument 2 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:518 buffer_queue() warn: argument 2 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:528 buffer_queue() warn: argument 2 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:1219 viu_open() warn: argument 2 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:1219 viu_open() warn: argument 3 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:1219 viu_open() warn: argument 4 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:1329 viu_mmap() warn: argument 2 to %08lx specifier is cast from pointer
          drivers/media/platform/fsl-viu.c:1334 viu_mmap() warn: argument 2 to %08lx specifier is cast from pointer
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      2d78a19c
    • Mauro Carvalho Chehab's avatar
      media: isppreview: fix __user annotations · 99ed3dd8
      Mauro Carvalho Chehab authored
      The 'from' variable at preview_config() expects an __user * type.
      
      However, the logic there does:
      
          from = *(void * __user *) ((void *)cfg + attr->config_offset);
      
      With actually means a void pointer, pointing to a void __ user
      pointer. When the first pointer is de-referenced with *(foo),
      the type it returns is "void *" instead of "void __user *".
      
      Change it to:
          from = *(void __user **) ((void *)cfg + attr->config_offset);
      
      in order to obtain, when de-referenced, a void __user pointer,
      as desired.
      
      That prevent those warnings:
         drivers/media/platform/omap3isp/isppreview.c:893:45: warning: incorrect type in initializer (different address spaces)
         drivers/media/platform/omap3isp/isppreview.c:893:45:    expected void [noderef] <asn:1>*from
         drivers/media/platform/omap3isp/isppreview.c:893:45:    got void *[noderef] <asn:1><noident>
         drivers/media/platform/omap3isp/isppreview.c:893:47: warning: dereference of noderef expression
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      99ed3dd8
    • Mauro Carvalho Chehab's avatar
      media: ispstat: use %p to print the address of a buffer · e6aded73
      Mauro Carvalho Chehab authored
      Instead of converting to int, use %p. That prevents this
      warning:
      	drivers/media/platform/omap3isp/ispstat.c:451 isp_stat_bufs_alloc() warn: argument 7 to %08lx specifier is cast from pointer
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      e6aded73
    • Mauro Carvalho Chehab's avatar
      media: vpbe_display: get rid of warnings · 8c2bb52f
      Mauro Carvalho Chehab authored
      Solve those warnings:
      
          drivers/media/platform/davinci/vpbe_display.c:288 vpbe_start_streaming() warn: inconsistent indenting
          drivers/media/platform/davinci/vpbe_display.c:1356 register_device() warn: argument 3 to %x specifier is cast from pointer
          drivers/media/platform/davinci/vpbe_display.c:1356 register_device() warn: argument 4 to %x specifier is cast from pointer
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      8c2bb52f
    • Mauro Carvalho Chehab's avatar
      media: vpbe_display: properly handle error case · 693035dc
      Mauro Carvalho Chehab authored
      if v4l2_subdev_call(..., VENC_GET_FLD,...) fails, it
      currently returns a random value. Instead, return 1.
      
      That's probably better than returning 0, as this is very
      likely what happens in practice with the current code, as
      as the probably of an unititialized 32 bits integer to
      have an specific value (0, in this case), is 1/(2^32).
      
      An alternative would be to return an error code, and
      let the caller to hint, based on the past received
      frame, but that sounds weird.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      693035dc
    • Mauro Carvalho Chehab's avatar
      media: mmp-driver: add needed __iomem marks to power_regs · bef6b894
      Mauro Carvalho Chehab authored
      Solve those warnings:
      
          drivers/media/platform/marvell-ccic/mmp-driver.c:135:41: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:135:41:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:135:41:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:136:44: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:136:44:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:136:44:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:174:38: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:174:38:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:174:38:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:175:38: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:175:38:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:175:38:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:195:48: warning: incorrect type in argument 1 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:195:48:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:195:48:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:196:55: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:196:55:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:196:55:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:197:54: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:197:54:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:197:54:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:202:48: warning: incorrect type in argument 1 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:202:48:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:202:48:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:203:55: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:203:55:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:203:55:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:204:54: warning: incorrect type in argument 2 (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:204:54:    expected void [noderef] <asn:2>*<noident>
          drivers/media/platform/marvell-ccic/mmp-driver.c:204:54:    got void *
          drivers/media/platform/marvell-ccic/mmp-driver.c:389:25: warning: incorrect type in assignment (different address spaces)
          drivers/media/platform/marvell-ccic/mmp-driver.c:389:25:    expected void *power_regs
          drivers/media/platform/marvell-ccic/mmp-driver.c:389:25:    got void [noderef] <asn:2>*
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      bef6b894
    • Mauro Carvalho Chehab's avatar
      media: davinci: fix an inconsistent ident · 3022b988
      Mauro Carvalho Chehab authored
      drivers/media/platform/davinci/vpbe_osd.c:849 try_layer_config() warn: inconsistent indenting
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      3022b988
    • Mauro Carvalho Chehab's avatar
      media: isif: reorder a statement to match coding style · 09821dfd
      Mauro Carvalho Chehab authored
      On all places, we do:
      	void <asn_ref> *foo;
      
      Here, it is doing, instead:
      	void * <asn_ref> foo;
      
      That tricks static analyzers, making it see errors where
      there's none. So, just reorder in order to cleanup those
      warnings:
      
          drivers/media/platform/davinci/isif.c:1066:22: warning: incorrect type in assignment (different address spaces)
          drivers/media/platform/davinci/isif.c:1066:22:    expected void *[noderef] <asn:2>addr
          drivers/media/platform/davinci/isif.c:1066:22:    got void [noderef] <asn:2>*
          drivers/media/platform/davinci/isif.c:1074:44: warning: incorrect type in assignment (different address spaces)
          drivers/media/platform/davinci/isif.c:1074:44:    expected void [noderef] <asn:2>*static [toplevel] [assigned] base_addr
          drivers/media/platform/davinci/isif.c:1074:44:    got void *[noderef] <asn:2>addr
          drivers/media/platform/davinci/isif.c:1078:51: warning: incorrect type in assignment (different address spaces)
          drivers/media/platform/davinci/isif.c:1078:51:    expected void [noderef] <asn:2>*static [toplevel] [assigned] linear_tbl0_addr
          drivers/media/platform/davinci/isif.c:1078:51:    got void *[noderef] <asn:2>addr
          drivers/media/platform/davinci/isif.c:1082:51: warning: incorrect type in assignment (different address spaces)
          drivers/media/platform/davinci/isif.c:1082:51:    expected void [noderef] <asn:2>*static [toplevel] [assigned] linear_tbl1_addr
          drivers/media/platform/davinci/isif.c:1082:51:    got void *[noderef] <asn:2>addr
          drivers/media/platform/davinci/isif.c:1067:22: warning: dereference of noderef expression
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      09821dfd
    • Mauro Carvalho Chehab's avatar
      media: si470x: fix __be16 annotations · 90db5c82
      Mauro Carvalho Chehab authored
      The annotations there are wrong as warned:
         drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: warning: incorrect type in assignment (different base types)
         drivers/media/radio/si470x/radio-si470x-i2c.c:129:24:    expected unsigned short [unsigned] [short] <noident>
         drivers/media/radio/si470x/radio-si470x-i2c.c:129:24:    got restricted __be16 [usertype] <noident>
         drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
         drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      90db5c82
    • Mauro Carvalho Chehab's avatar
      media: davinci_vpfe: fix __user annotations · 644ddbe1
      Mauro Carvalho Chehab authored
      The __user annotations on this driver are wrong, causing lots
      of warnings:
      
          drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1269:22: warning: incorrect type in assignment (different address spaces)
          drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1269:22:    expected void [noderef] <asn:1>*from
          drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1269:22:    got void *[noderef] <asn:1><noident>
          drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1313:20: warning: incorrect type in assignment (different address spaces)
          drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1313:20:    expected void [noderef] <asn:1>*to
          drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1313:20:    got void *[noderef] <asn:1><noident>
          drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:424:41: warning: incorrect type in initializer (different address spaces)
          drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:424:41:    expected struct ipipeif_params *config
          drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:424:41:    got void [noderef] <asn:1>*arg
          drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:474:46: warning: incorrect type in argument 2 (different address spaces)
          drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:474:46:    expected void [noderef] <asn:1>*arg
          drivers/staging/media/davinci_vpfe/dm365_ipipeif.c:474:46:    got void *arg
          drivers/staging/media/davinci_vpfe/dm365_resizer.c:922:32: warning: incorrect type in argument 2 (different address spaces)
          drivers/staging/media/davinci_vpfe/dm365_resizer.c:922:32:    expected void const [noderef] <asn:1>*from
          drivers/staging/media/davinci_vpfe/dm365_resizer.c:922:32:    got struct vpfe_rsz_config_params *config
          drivers/staging/media/davinci_vpfe/dm365_resizer.c:945:27: warning: incorrect type in argument 1 (different address spaces)
          drivers/staging/media/davinci_vpfe/dm365_resizer.c:945:27:    expected void [noderef] <asn:1>*to
          drivers/staging/media/davinci_vpfe/dm365_resizer.c:945:27:    got void *<noident>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
      644ddbe1