1. 01 7月, 2011 1 次提交
  2. 20 5月, 2011 1 次提交
  3. 02 12月, 2010 2 次提交
  4. 21 10月, 2010 2 次提交
  5. 09 8月, 2010 1 次提交
  6. 18 5月, 2010 1 次提交
  7. 27 2月, 2010 1 次提交
    • L
      V4L/DVB (13827): uvcvideo: Switch to a monotonic clock for V4L2 buffers timestamps · 310fe524
      Laurent Pinchart 提交于
      The realtime clock provided by do_gettimeofday() is affected by time
      jumps caused by NTP or DST. Furthermore, preliminary investigation
      showed that SMP systems the realtime clock is based on the CPU TSC,
      and those could get slightly out of sync, resulting in jitter in the
      timestamps depending on which processor handles the USB interrupts.
      
      Instead of the realtime clock, use a monotonic high resolution clock to
      timestamp the buffer. As this could in theory introduce a regression
      with some userspace applications expecting a realtime clock timestamp,
      add a module parameter to switch back to the realtime clock.
      
      Thanks to Paulo Assis for pointing out and investigating the issue.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      310fe524
  8. 17 1月, 2010 1 次提交
  9. 17 6月, 2009 1 次提交
  10. 29 1月, 2009 2 次提交
  11. 30 12月, 2008 1 次提交
  12. 25 7月, 2008 1 次提交
    • A
      PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures · 27ac792c
      Andrea Righi 提交于
      On 32-bit architectures PAGE_ALIGN() truncates 64-bit values to the 32-bit
      boundary. For example:
      
      	u64 val = PAGE_ALIGN(size);
      
      always returns a value < 4GB even if size is greater than 4GB.
      
      The problem resides in PAGE_MASK definition (from include/asm-x86/page.h for
      example):
      
      #define PAGE_SHIFT      12
      #define PAGE_SIZE       (_AC(1,UL) << PAGE_SHIFT)
      #define PAGE_MASK       (~(PAGE_SIZE-1))
      ...
      #define PAGE_ALIGN(addr)       (((addr)+PAGE_SIZE-1)&PAGE_MASK)
      
      The "~" is performed on a 32-bit value, so everything in "and" with
      PAGE_MASK greater than 4GB will be truncated to the 32-bit boundary.
      Using the ALIGN() macro seems to be the right way, because it uses
      typeof(addr) for the mask.
      
      Also move the PAGE_ALIGN() definitions out of include/asm-*/page.h in
      include/linux/mm.h.
      
      See also lkml discussion: http://lkml.org/lkml/2008/6/11/237
      
      [akpm@linux-foundation.org: fix drivers/media/video/uvc/uvc_queue.c]
      [akpm@linux-foundation.org: fix v850]
      [akpm@linux-foundation.org: fix powerpc]
      [akpm@linux-foundation.org: fix arm]
      [akpm@linux-foundation.org: fix mips]
      [akpm@linux-foundation.org: fix drivers/media/video/pvrusb2/pvrusb2-dvb.c]
      [akpm@linux-foundation.org: fix drivers/mtd/maps/uclinux.c]
      [akpm@linux-foundation.org: fix powerpc]
      Signed-off-by: NAndrea Righi <righi.andrea@gmail.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27ac792c
  13. 20 7月, 2008 1 次提交
  14. 01 7月, 2008 1 次提交