1. 20 Apr, 2018 17 commits
  2. 18 Apr, 2018 1 commit
  3. 17 Apr, 2018 22 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