02 Jun, 2012

1 commit

  • Pull fbdev updates from Florian Tobias Schandinat:
    - driver for AUO-K1900 and AUO-K1901 epaper controller
    - large updates for OMAP (e.g. decouple HDMI audio and video)
    - some updates for Exynos and SH Mobile
    - various other small fixes and cleanups

    * tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6: (130 commits)
    video: bfin_adv7393fb: Fix cleanup code
    video: exynos_dp: reduce delay time when configuring video setting
    video: exynos_dp: move sw reset prioir to enabling sw defined function
    video: exynos_dp: use devm_ functions
    fb: handle NULL pointers in framebuffer release
    OMAPDSS: HDMI: OMAP4: Update IRQ flags for the HPD IRQ request
    OMAPDSS: Apply VENC timings even if panel is disabled
    OMAPDSS: VENC/DISPC: Delay dividing Y resolution for managers connected to VENC
    OMAPDSS: DISPC: Support rotation through TILER
    OMAPDSS: VRFB: remove compiler warnings when CONFIG_BUG=n
    OMAPFB: remove compiler warnings when CONFIG_BUG=n
    OMAPDSS: remove compiler warnings when CONFIG_BUG=n
    OMAPDSS: DISPC: fix usage of dispc_ovl_set_accu_uv
    OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays
    OMAPDSS: DSI: Support command mode interleaving during video mode blanking periods
    OMAPDSS: DISPC: Update Accumulator configuration for chroma plane
    drivers/video: fsl-diu-fb: don't initialize the THRESHOLDS registers
    video: exynos mipi dsi: support reverse panel type
    video: exynos mipi dsi: Properly interpret the interrupt source flags
    video: exynos mipi dsi: Avoid races in probe()
    ...

    Linus Torvalds
     

30 Apr, 2012

1 commit

  • With this optional callback the driver is notified when the first page
    is entered into the pagelist and a new deferred_io call is scheduled.

    A possible use-case for this is runtime-pm. In the first_io call
    pm_runtime_get()
    could be called, which starts an asynchronous runtime_resume of the
    device. In the deferred_io callback a call to
    pm_runtime_barrier()
    makes the sure, the device is resumed by then and a
    pm_runtime_put()
    may put the device back to sleep.

    Also, some SoCs may use the runtime-pm system to determine if they
    are able to enter deeper idle states. Therefore it is necessary to
    keep the use-count from the first written page until the conclusion
    of the screen update, to prevent the system from going to sleep before
    completing the pending update.

    Two users of defio were using kmalloc to allocate the structure.
    These allocations are changed to kzalloc, to prevent uninitialised
    .first_io members in those drivers.

    Signed-off-by: Heiko Stübner
    Signed-off-by: Florian Tobias Schandinat

    Heiko Stübner
     

26 Apr, 2012

1 commit


23 Mar, 2012

1 commit

  • Pull fbdev updates for 3.4 from Florian Tobias Schandinat:
    - drivers for Samsung Exynos MIPI DSI and display port
    - i740fb to support those old Intel chips
    - large updates to OMAP, viafb and sh_mobile_lcdcfb
    - some updates to s3c-fb and udlfb, few patches to others

    Fix up conflicts in drivers/video/udlfb.c due to Key Sievers' fix making
    it in twice.

    * tag 'fbdev-updates-for-3.4' of git://github.com/schandinat/linux-2.6: (156 commits)
    Revert "video:uvesafb: Fix oops that uvesafb try to execute NX-protected page"
    OMAPDSS: register dss drivers in module init
    video: pxafb: add clk_prepare/clk_unprepare calls
    fbdev: bfin_adv7393fb: Drop needless include
    fbdev: sh_mipi_dsi: add extra phyctrl for sh_mipi_dsi_info
    fbdev: remove dependency of FB_SH_MOBILE_MERAM from FB_SH_MOBILE_LCDC
    Revert "MAINTAINERS: add entry for exynos mipi display drivers"
    fbdev: da8xx: add support for SP10Q010 display
    fbdev: da8xx:: fix reporting of the display timing info
    drivers/video/pvr2fb.c: ensure arguments to request_irq and free_irq are compatible
    OMAPDSS: APPLY: fix clearing shadow dirty flag with manual update
    fbdev: sh_mobile_meram: Implement system suspend/resume
    fbdev: sh_mobile_meram: Remove unneeded sanity checks
    fbdev: sh_mobile_meram: Don't perform update in register operation
    arm: mach-shmobile: Constify sh_mobile_meram_cfg structures
    fbdev: sh_mobile_lcdc: Don't store copy of platform data
    fbdev: sh_mobile_meram: Remove unused sh_mobile_meram_icb_cfg fields
    arm: mach-shmobile: Don't set MERAM ICB numbers in platform data
    fbdev: sh_mobile_meram: Allocate ICBs automatically
    fbdev: sh_mobile_meram: Use genalloc to manage MERAM allocation
    ...

    Linus Torvalds
     

15 Mar, 2012

1 commit

  • The USB graphics card driver delays the unregistering of the framebuffer
    device to a workqueue, which breaks the userspace visible remove uevent
    sequence. Recent userspace tools started to support USB graphics card
    hotplug out-of-the-box and rely on proper events sent by the kernel.

    The framebuffer device is a direct child of the USB interface which is
    removed immediately after the USB .disconnect() callback. But the fb device
    in /sys stays around until its final cleanup, at a time where all the parent
    devices have been removed already.

    To work around that, we remove the sysfs fb device directly in the USB
    .disconnect() callback and leave only the cleanup of the internal fb
    data to the delayed work.

    Before:
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
    remove /2-1.2:1.0/graphics/fb0 (graphics)

    After:
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)

    Cc: stable@vger.kernel.org
    Tested-by: Bernie Thompson
    Acked-by: Bernie Thompson
    Signed-off-by: Kay Sievers
    Signed-off-by: Florian Tobias Schandinat

    Kay Sievers
     

09 Mar, 2012

1 commit


04 Mar, 2012

2 commits

  • Some user scenarios need to prioritize performance over
    maxiumum resolution.

    Also, some devices may have bad vendor descriptors, and
    this allows the user to set a pixel limit that matches
    their specific device to avoid blank screens on higher
    resolution monitors.

    700000 minimum for DL-115, 2360000 maximum for DL-195

    Signed-off-by: Ben Collins
    Signed-off-by: Bernie Thompson

    Ben Collins
     
  • The driver was not using le16_to_cpu when reading keys from the vendor
    descriptor, causing incorrect parsing. Mainly, sku_pixel_limit was not
    being parsed on big-endian systems. This would result in a blank screen
    on big-endian CPUs where the DL chips's max mode was smaller than the
    monitor's native mode.

    Signed-off-by: Ben Collins
    Signed-off-by: Bernie Thompson

    Ben Collins
     

02 Mar, 2012

2 commits


29 Jan, 2012

1 commit

  • The USB graphics card driver delays the unregistering of the framebuffer
    device to a workqueue, which breaks the userspace visible remove uevent
    sequence. Recent userspace tools started to support USB graphics card
    hotplug out-of-the-box and rely on proper events sent by the kernel.

    The framebuffer device is a direct child of the USB interface which is
    removed immediately after the USB .disconnect() callback. But the fb device
    in /sys stays around until its final cleanup, at a time where all the parent
    devices have been removed already.

    To work around that, we remove the sysfs fb device directly in the USB
    .disconnect() callback and leave only the cleanup of the internal fb
    data to the delayed work.

    Before:
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
    remove /2-1.2:1.0/graphics/fb0 (graphics)

    After:
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
    remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)

    Cc: stable@vger.kernel.org
    Tested-by: Bernie Thompson
    Acked-by: Bernie Thompson
    Signed-off-by: Kay Sievers
    Signed-off-by: Florian Tobias Schandinat

    Kay Sievers
     

13 Jan, 2012

1 commit


19 Nov, 2011

1 commit

  • This converts the remaining USB drivers in the kernel to use the
    module_usb_driver() macro which makes the code smaller and a bit
    simpler.

    Added bonus is that it removes some unneeded kernel log messages about
    drivers loading and/or unloading.

    Cc: Guenter Roeck
    Cc: Jean Delvare
    Cc: Ben Dooks
    Cc: Till Harbaum
    Cc: Karsten Keil
    Cc: Chris Ball
    Cc: David Woodhouse
    Cc: Lauro Ramos Venancio
    Cc: Aloisio Almeida Jr
    Cc: Samuel Ortiz
    Cc: Steve Glendinning
    Cc: Florian Tobias Schandinat
    Cc: Evgeniy Polyakov
    Cc: Wim Van Sebroeck
    Cc: "David S. Miller"
    Cc: Jesper Juhl
    Cc: Artem Bityutskiy
    Cc: Jamie Iles
    Cc: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

29 Aug, 2011

1 commit


24 Aug, 2011

6 commits

  • Signed-off-by: Bernie Thompson
    Signed-off-by: Florian Tobias Schandinat

    Bernie Thompson
     
  • Enables page fault based detection of mmap writes to the framebuffer,
    which allows standard fbdev apps (like the generic fbdev xorg driver)
    to work on DisplayLink devices.

    Not all bugs are shaken out of the fb_defio path of udlfb, but it's
    tantalizingly close, so this seems a good time to enable by default.

    Alternatively, option can be disabled when running with an xorg driver
    that can more directly communicate damaged regions of the framebuffer
    via IOCTL. This is a simpler, higher perf option, when available.

    Signed-off-by: Bernie Thompson
    Signed-off-by: Florian Tobias Schandinat

    Bernie Thompson
     
  • By default, udlfb allocates a 2nd buffer to shadow what's across
    the bus on the USB device. It can operate without this shadow,
    but then it cannot tell which pixels have changed, and must send all.

    Saves host memory, but worsens the USB 2.0 bus bottleneck.

    This option allows users in very low memory situations (e.g.
    bifferboard) to optionally turn off this shadow framebuffer.

    Signed-off-by: Stuart Hopkins
    Signed-off-by: Bernie Thompson
    Signed-off-by: Florian Tobias Schandinat

    Stuart Hopkins
     
  • Add __user casting, a missing copy_from_user, and proper boolean

    Signed-off-by: Dr. David Alan Gilbert
    Signed-off-by: Bernie Thompson
    Signed-off-by: Florian Tobias Schandinat

    Dr. David Alan Gilbert
     
  • For at least one DisplayLink device, the vendor-specific information can
    be found in the config descriptor instead of as a separate, device-level
    descriptor. This patch searches the current interface (of the current
    config descriptor) for the DL vendor-specific descriptor.

    Signed-off-by: Andrew Kephart
    Signed-off-by: Bernie Thompson
    Signed-off-by: Florian Tobias Schandinat

    Andrew Kephart
     
  • Fixes earlier problems where monitor would not return from blank

    Test with any DisplayLink-based USB 2.0 graphics adapter
    sudo nano /sys/class/graphics/fb?/blank
    and write out single digit FB_BLANK_* code from include/linux/fb.h

    Supports on (0), blank (1), suspend (2,3), powerdown (4)

    Signed-off-by: Bernie Thompson
    Signed-off-by: Florian Tobias Schandinat

    Bernie Thompson
     

13 Jul, 2011

2 commits

  • Match udlfb only against vendor-specific class (e.g. only DisplayLink
    graphics, not composite standard audio class interfaces). This enables
    compatibility with composite graphics+audio devices (e.g. HDMI).

    Match udlfb only against compatible subclass 0 and protocol 0 chips.
    DisplayLink's USB 3.0 generation chips increment these values
    to signal that they have a incompatible protocol, preventing udlfb
    from erroneously matching to hardware it does not support.

    Tested to confirm proper behavior on both USB 2.0 and USB 3.0
    generation devices.

    Reported-by: Andrew Kephart
    Signed-off-by: Bernie Thompson
    Signed-off-by: Paul Mundt

    Bernie Thompson
     
  • Udlfb has been binding the framebuffer device to its parent, which
    isn't correct and causes confusion with operations like udev remove.

    Coming plug and play multiseat support is dependent on this fix.

    Signed-off-by: Kay Sievers
    Signed-off-by: Bernie Thompson
    Signed-off-by: Paul Mundt

    Kay Sievers
     

11 Jul, 2011

1 commit


24 Jun, 2011

1 commit

  • The situation in which the problem occurred was with a Plugable UGA-2K-A
    connected to a Samsung EX2220X display. The driver indicates that
    1920x1080 is a valid mode (the first mode available, in fact), but
    proceeds to set the framebuffer size to 1600x1200.

    The patch corrects what seems to be a logic error, regarding unsetting
    the FB_MISC_1ST_DETAIL flag, if the first (top/best) mode is invalid.
    The existing code unset the flag if ANY mode was invalid.

    Signed-off-by: William Katsak
    Signed-off-by: Paul Mundt

    William Katsak
     

20 Jun, 2011

1 commit


24 May, 2011

2 commits

  • Commit e66eed651fd1 ("list: remove prefetching from
    regular list iterators") removed the include of prefetch.h from list.h,
    so we need to include it explicitly, now.

    fixes this build error on powerpc:

    drivers/video/udlfb.c: In function 'dlfb_compress_hline':
    drivers/video/udlfb.c:421: error: implicit declaration of function 'prefetch_range'

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mundt

    Stephen Rothwell
     
  • build warning:

    ...
    drivers/video/udlfb.c:1590: warning: ignoring return value of ‘device_create_file’, declared with attribute warn_unused_result
    drivers/video/udlfb.c:1592: warning: ignoring return value of ‘device_create_bin_file’, declared with attribute warn_unused_result
    ...

    So add two checks to get rid of 'em.

    Signed-off-by: Liu Yuan
    Signed-off-by: Paul Mundt

    Liu Yuan
     

21 May, 2011

1 commit

  • Commit e66eed651fd1 ("list: remove prefetching from regular list
    iterators") removed the include of prefetch.h from list.h, which
    uncovered several cases that had apparently relied on that rather
    obscure header file dependency.

    So this fixes things up a bit, using

    grep -L linux/prefetch.h $(git grep -l '[^a-z_]prefetchw*(' -- '*.[ch]')
    grep -L 'prefetchw*(' $(git grep -l 'linux/prefetch.h' -- '*.[ch]')

    to guide us in finding files that either need
    inclusion, or have it despite not needing it.

    There are more of them around (mostly network drivers), but this gets
    many core ones.

    Reported-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

31 Mar, 2011

1 commit


11 Jan, 2011

1 commit

  • * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (510 commits)
    staging: speakup: fix failure handling
    staging: usbip: remove double giveback of URB
    Staging: batman-adv: Remove batman-adv from staging
    Staging: hv: Use only one txf buffer per channel and kmalloc/GFP_KERNEL on initialize
    staging: hv: remove unneeded osd_schedule_callback
    staging: hv: convert channel_mgmt.c to not call osd_schedule_callback
    staging: hv: convert vmbus_on_msg_dpc to not call osd_schedule_callback
    staging: brcm80211: Fix WL_ logging macros
    Staging: IIO: DDS: AD9833 / AD9834 driver
    Staging: IIO: dds.h convenience macros
    Staging: IIO: Direct digital synthesis abi documentation
    staging: brcm80211: Convert ETHER_TYPE_802_1X to ETH_P_PAE
    staging: brcm80211: Remove unused ETHER_TYPE_ #defines
    staging: brcm80211: Remove ETHER_HDR_LEN, use ETH_HLEN
    staging: brcm80211: Convert ETHER_ADDR_LEN to ETH_ALEN
    staging: brcm80211: Convert ETHER_IS to is__ether_addr
    staging: brcm80211: Remove unused ether_ #defines and struct
    staging: brcm80211: Convert ETHER_IS_MULTI to is_multicast_ether_addr
    staging: brcm80211: Remove unused #defines ETHER__LOCALADDR
    Staging: comedi: Fix checkpatch.pl issues in file s526.c
    ...

    Fix up trivial conflict in drivers/video/udlfb.c

    Linus Torvalds
     

06 Jan, 2011

4 commits


16 Nov, 2010

1 commit

  • udlfb has undergone a fair bit of cleanup recently and is effectively at
    the point where it can be liberated from staging purgatory and promoted
    to a real driver.

    The outstanding cleanups are all minor, with some of them dependent on
    drivers/video headers, so these will be done incrementally from udlfb's
    new home.

    Requested-by: Bernie Thompson
    Signed-off-by: Paul Mundt

    Paul Mundt