1. 15 2月, 2018 1 次提交
  2. 31 10月, 2017 1 次提交
  3. 27 10月, 2017 4 次提交
  4. 05 10月, 2017 1 次提交
  5. 23 9月, 2017 1 次提交
  6. 26 8月, 2017 1 次提交
  7. 20 6月, 2017 1 次提交
  8. 07 6月, 2017 4 次提交
  9. 06 6月, 2017 2 次提交
  10. 18 5月, 2017 1 次提交
  11. 18 4月, 2017 1 次提交
  12. 22 3月, 2017 1 次提交
  13. 03 3月, 2017 1 次提交
    • A
      [media] tc358743: fix register i2c_rd/wr functions · 3538aa6e
      Arnd Bergmann 提交于
      While testing with CONFIG_UBSAN, I got this warning:
      
      drivers/media/i2c/tc358743.c: In function 'tc358743_probe':
      drivers/media/i2c/tc358743.c:1930:1: error: the frame size of 2480 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
      
      The problem is that the i2c_rd8/wr8/rd16/... functions in this driver pass
      a pointer to a local variable into a common function, and each call to one
      of them adds another variable plus redzone to the stack.
      
      I also noticed that the way this is done is broken on big-endian machines,
      as we copy the registers in CPU byte order.
      
      To address both those problems, I'm adding two helper functions for reading
      a register of up to 32 bits with correct endianess and change all other
      functions to use that instead. Just to be sure we don't get the problem
      back with changed optimizations in gcc, I'm also marking the new functions
      as 'noinline', although my tests with gcc-7 don't require that.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
      3538aa6e
  14. 03 2月, 2017 3 次提交
  15. 09 7月, 2016 1 次提交
    • B
      [media] tc358743: Remove deprecated create_singlethread_workqueue · 1ce39546
      Bhaktipriya Shridhar 提交于
      The workqueue "work_queues" enables hotplugging.
      It has a single work item(&state->delayed_work_enable_hotplug) and hence
      doesn't require ordering. Also, it is not being used on a memory
      reclaim path. Hence, the singlethreaded workqueue has been replaced with
      the use of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been sync cancelled in tc358743_remove() to ensure
      that there are no pending tasks while disconnecting the driver.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
      1ce39546
  16. 25 4月, 2016 1 次提交
  17. 21 4月, 2016 1 次提交
  18. 27 2月, 2016 1 次提交
  19. 01 2月, 2016 2 次提交
  20. 11 1月, 2016 2 次提交
  21. 03 12月, 2015 1 次提交
  22. 17 11月, 2015 1 次提交
    • M
      [media] include/media: split I2C headers from V4L2 core · b5dcee22
      Mauro Carvalho Chehab 提交于
      Currently, include/media is messy, as it contains both the V4L2 core
      headers and some driver-specific headers on the same place. That makes
      harder to identify what core headers should be documented and what
      headers belong to I2C drivers that are included only by bridge/main
      drivers that would require the functions provided by them.
      
      Let's move those i2c specific files to its own subdirectory.
      
      The files to move were produced via the following script:
      	mkdir include/media/i2c
      	(cd include/media; for i in *.h; do n=`echo $i|sed s/.h$/.c/`; if [ -e ../../drivers/media/i2c/$n ]; then echo $i; git mv $i i2c/; fi; done)
      	(cd include/media; for i in *.h; do n=`echo $i|sed s/.h$/.c/`; if [ -e ../../drivers/media/*/i2c/$n ]; then echo $i; git mv $i i2c/; fi; done)
      	for i in include/media/*.h; do n=`basename $i`;  (for j in $(git grep -l $n); do dirname $j; done)|sort|uniq|grep -ve '^.$' > list; num=$(wc -l list|cut -d' ' -f1); if [ $num == 1 ]; then if [ "`grep i2c list`" != "" ]; then git mv $i include/media/i2c; fi; fi; done
      
      And the references corrected via this script:
          MAIN_DIR="media/"
          PREV_DIR="media/"
          DIRS="i2c/"
      
          echo "Checking affected files" >&2
          for i in $DIRS; do
      	for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do
      		 n=`basename $j`
      		git grep -l $n
      	done
          done|sort|uniq >files && (
      	echo "Handling files..." >&2;
      	echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\";
      	(
      		cd include/$MAIN_DIR;
      		for j in $DIRS; do
      			for i in $(ls $j); do
      				echo "perl -ne 's,(include [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\";
      			done;
      		done;
      		echo "cat > a && mv a \$i; done";
      	);
      	echo "Handling documentation..." >&2;
      	echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\";
      	(
      		cd include/$MAIN_DIR;
      		for j in $DIRS; do
      			for i in $(ls $j); do
      				echo "  perl -ne 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\";
      			done;
      		done;
      		echo "cat > a && mv a \$i; done"
      	);
          ) >script && . ./script
      
      Merged Sakari Ailus patch that moves smiapp.h to include/media/i2c.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      b5dcee22
  23. 04 9月, 2015 4 次提交
  24. 16 8月, 2015 1 次提交
  25. 11 8月, 2015 1 次提交
  26. 22 7月, 2015 1 次提交