12 Jan, 2012

1 commit


22 Nov, 2011

1 commit


12 Nov, 2011

3 commits

  • The newer Atmel SoCs use normal 16bit 565 BGR/RGB for the palette data,
    rather than the special intensity + 555 format.

    Fill out palette data correctly on these devices, and at the same time
    respect the RGB/BGR wiring mode.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: Florian Tobias Schandinat

    Peter Korsgaard
     
  • If used with negative polarity the PWM unit cannot be disabled. This would
    result in a full contrast screen.
    Instead let the PWM unit enabled using 0x0 as compare value which darkens
    the display.
    In result no power saving is possible if inverted contrast polarity
    is used.

    Signed-off-by: Alexander Stein
    Signed-off-by: Florian Tobias Schandinat

    Alexander Stein
     
  • In the AT91SAM9263 Manual the HFP part in LCDTIM2 is described as follows:
    * HFP: Horizontal Front Porch
    Number of idle LCDDOTCK cycles at the end of the line.
    Idle period is (HFP+2) LCDDOTCK cycles.

    It is only a minor issue. I also changed all boards using atmel_lcdfb
    I found to respect the new calculation.

    Signed-off-by: Alexander Stein
    Signed-off-by: Florian Tobias Schandinat

    Alexander Stein
     

01 Nov, 2011

1 commit


31 Oct, 2011

1 commit

  • * 'fbdev-next' of git://github.com/schandinat/linux-2.6: (270 commits)
    video: platinumfb: Add __devexit_p at necessary place
    drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data
    drivers/video: fsl-diu-fb: merge diu_hw into fsl_diu_data
    drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supported
    drivers/video: fsl-diu-fb: remove unused panel operating mode support
    drivers/video: fsl-diu-fb: use an enum for the AOI index
    drivers/video: fsl-diu-fb: add several new video modes
    drivers/video: fsl-diu-fb: remove broken screen blanking support
    drivers/video: fsl-diu-fb: move some definitions out of the header file
    drivers/video: fsl-diu-fb: fix some ioctls
    video: da8xx-fb: Increased resolution configuration of revised LCDC IP
    OMAPDSS: picodlp: add missing #include
    fb: fix au1100fb bitrot.
    mx3fb: fix NULL pointer dereference in screen blanking.
    video: irq: Remove IRQF_DISABLED
    smscufx: change edid data to u8 instead of char
    OMAPDSS: DISPC: zorder support for DSS overlays
    OMAPDSS: DISPC: VIDEO3 pipeline support
    OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting
    video/omap: fix build dependencies
    ...

    Fix up conflicts in:
    - drivers/staging/xgifb/XGI_main_26.c
    Changes to XGIfb_pan_var()
    - drivers/video/omap/{lcd_apollon.c,lcd_ldp.c,lcd_overo.c}
    Removed (or in the case of apollon.c, merged into the generic
    DSS panel in drivers/video/omap2/displays/panel-generic-dpi.c)

    Linus Torvalds
     

19 Aug, 2011

1 commit


08 Aug, 2011

1 commit


10 Jun, 2011

1 commit


31 Mar, 2011

1 commit


24 Mar, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: (140 commits)
    MAINTAINERS: de-orphan fbdev.
    MAINTAINERS: Add file pattern for fb dt bindings.
    video: Move sm501fb devicetree binding documentation to a better place.
    fbcon: fix situation where fbcon gets deinitialised and can't reinit.
    video, sm501: add OF binding to support SM501
    video, sm501: add edid and commandline support
    video, sm501: add I/O functions for use on powerpc
    video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET
    fbcon: Bugfix soft cursor detection in Tile Blitting
    video: add missing framebuffer_release in error path
    video: metronomefb: add __devexit_p around reference to metronomefb_remove
    video: hecubafb: add __devexit_p around reference to hecubafb_remove
    drivers:video:aty:radeon_base Fix typo occationally to occasionally
    atmel_lcdfb: add fb_blank function
    atmel_lcdfb: implement inverted contrast pwm
    video: s3c-fb: return proper error if clk_get fails
    uvesafb,vesafb: create WC or WB PAT-entries
    video: ffb: fix ffb_probe error path
    radeonfb: Let hwmon driver probe the "monid" I2C bus
    fbdev: sh_mobile_lcdc: checking NULL instead of IS_ERR()
    ...

    Linus Torvalds
     

23 Mar, 2011

1 commit

  • There may be multiple ways of controlling the backlight on a given
    machine. Allow drivers to expose the type of interface they are
    providing, making it possible for userspace to make appropriate policy
    decisions.

    Signed-off-by: Matthew Garrett
    Cc: Richard Purdie
    Cc: Chris Wilson
    Cc: David Airlie
    Cc: Alex Deucher
    Cc: Ben Skeggs
    Cc: Zhang Rui
    Cc: Len Brown
    Cc: Jesse Barnes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Garrett
     

22 Mar, 2011

2 commits


16 Nov, 2010

1 commit

  • backlight_device_register has been expecting a const "ops" argument, and using
    it as such, since 9905a43b2d563e6f89e4c63c4278ada03f2ebb14. Let's make the
    remaining backlight_ops instances const.

    Inspired by hunks of the grsecurity patch, updated for newer kernels.

    Signed-off-by: Lionel Debroux
    Acked-by: Ingo Molnar
    Signed-off-by: Jiri Kosina

    Lionel Debroux
     

30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

17 Mar, 2010

1 commit


08 Dec, 2009

1 commit


12 Nov, 2009

1 commit

  • at91sam9g45 non ES lots have an alternate pixel clock calculation formula.
    Introduce this one with condition on the cpu_is_xxxxx() macros.

    Newer 9g45 SOC will not have good pixel clock calculation without this
    fix.

    Signed-off-by: Nicolas Ferre
    Cc: Krzysztof Helt
    Cc: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     

09 Nov, 2009

1 commit


12 Sep, 2009

1 commit


23 Jul, 2009

1 commit


09 Jul, 2009

1 commit


01 Jul, 2009

1 commit

  • Add a mutex to avoid a circular locking problem between the mm layer
    semaphore and fbdev ioctl mutex through the fb_mmap() call.

    Also, add mutex to all places where smem_start and smem_len fields change
    so the mutex inside the fb_mmap() is actually used. Changing of these
    fields before calling the framebuffer_register() are not mutexed.

    This is 2.6.31 material. It removes one lockdep (fb_mmap() and
    register_framebuffer()) but there is still another one (fb_release() and
    register_framebuffer()). It also cleans up handling of the smem_start and
    smem_len fields used by mutexed section of the fb_mmap().

    Signed-off-by: Krzysztof Helt
    Cc: Peter Zijlstra
    Cc: "Rafael J. Wysocki"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     

17 Jun, 2009

1 commit

  • AFAICT the code which checks that the requested pixclock value is within
    bounds is incorrect. It ensures that the lcdc core clock is at least
    (bytes per pixel) times higher than the pixel clock rather than just
    greater than or equal to.

    There are tighter restrictions on the pixclock value as a function of bus
    width for STN panels but even then it isn't a simple relationship as
    currently checked for. IMO either something like the below patch should
    be applied or else more detailed checking logic should be implemented
    which takes in to account the panel type as well.

    Signed-off-by: Ben Nizette
    Acked-by: Nicolas Ferre
    Cc: Haavard Skinnemoen
    Cc: Daniel Glockner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Nizette
     

29 May, 2009

1 commit

  • Remove wrong fifo size definition for some AT91 products.

    Due to a misunderstanding of some AT91 datasheets, a fifo size of 2048
    (words) has been introduced by mistake. In fact, all products (AT91/AT32)
    are sharing the same fifo size of 512 words.

    Signed-off-by: Nicolas Ferre
    Cc: Andrew Victor
    Acked-by: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     

20 Nov, 2008

1 commit

  • The error test that follows the call to backlight_device_register semms
    not to concern the right variable.

    A simplified version of the semantic match that finds this problem is
    as follows:
    (http://www.emn.fr/x-info/coccinelle/)
    //
    @def0@
    expression x;
    position p0;
    @@
    x@p0 = backlight_device_register(...)

    @protected@
    expression def0.x,E;
    position def0.p0;
    position p;
    statement S;
    @@
    x@p0
    ... when != x = E
    if (!IS_ERR(x) && ...) {} else S

    @unprotected@
    expression def0.x;
    identifier fld;
    position def0.p0;
    position p != protected.p;
    @@
    x@p0
    ... when != x = E
    * x@p->fld
    //

    Signed-off-by: Julien Brunel
    Signed-off-by: Julia Lawall
    Acked-by: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julien Brunel
     

17 Oct, 2008

1 commit


10 Oct, 2008

1 commit


19 Sep, 2008

1 commit


14 Sep, 2008

1 commit

  • When suspending the system with atmel_lcdfb enabled, I sometimes see
    this:

    atmel_lcdfb atmel_lcdfb.0: FIFO underflow 0x10

    Which can be explained by the fact that we're not stopping the LCD
    controller and its DMA engine when suspending, we're just gating the
    clocks to them.

    There's another potential issue which may be harder to trigger but
    much more nasty: If we gate the clocks at _just_ the right moment,
    e.g. when the DMA engine is doing a bus transaction, we may cause the
    DMA engine to violate the system bus protocol and cause a lockup.

    Avoid these issues by shutting down the LCD controller before entering
    suspend (and restarting it when resuming). This prevents the underrun
    from happening in the first place, and prevents whatever nastiness is
    happening when the bus clock stops in the middle of a DMA transfer.

    Signed-off-by: Haavard Skinnemoen
    Acked-by: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     

06 Sep, 2008

1 commit

  • If framebuffer registration failed in platform driver ->probe() callback,
    dev_get_drvdata() points to freed memory region, but ->remove() function
    try to use it and the following oops occurs:

    Unable to handle kernel NULL pointer dereference at virtual address 00000228
    pgd = c3a20000
    [00000228] *pgd=23a2b031, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1]
    Modules linked in: atmel_lcdfb(-) cfbcopyarea cfbimgblt cfbfillrect [last unloaded: atmel_lcdfb]
    CPU: 0 Not tainted (2.6.27-rc2 #116)
    PC is at atmel_lcdfb_remove+0x14/0xf8 [atmel_lcdfb]
    LR is at platform_drv_remove+0x20/0x24
    pc : [] lr : [] psr: a0000013
    sp : c3a45e84 ip : c3a45ea0 fp : c3a45e9c
    r10: 00000002 r9 : c3a44000 r8 : c0026c04
    r7 : 00000880 r6 : c02bb228 r5 : 00000000 r4 : c02bb230
    r3 : bf007e3c r2 : c02bb230 r1 : 00000004 r0 : c02bb228
    Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 0005317f Table: 23a20000 DAC: 00000015
    Process rmmod (pid: 6799, stack limit = 0xc3a44260)
    Stack: (0xc3a45e84 to 0xc3a46000)
    5e80: c02bb230 bf007e3c bf007e3c c3a45eac c3a45ea0 c0157d28 bf006bc0
    5ea0: c3a45ec4 c3a45eb0 c0156d20 c0157d18 c02bb230 c02bb2d8 c3a45ee0 c3a45ec8
    5ec0: c0156da8 c0156cb8 bf007e3c bf007ee0 c02c8e14 c3a45efc c3a45ee4 c0156018
    5ee0: c0156d50 bf007e3c bf007ee0 00000000 c3a45f18 c3a45f00 c0157220 c0155f9c
    5f00: 00000000 bf007ee0 bf008000 c3a45f28 c3a45f1c c0157e34 c01571ec c3a45f38
    5f20: c3a45f2c bf006ba8 c0157e30 c3a45fa4 c3a45f3c c005772c bf006ba4 656d7461
    5f40: 636c5f6c 00626664 c004c988 c3a45f80 c3a45f5c 00000000 c3a45fb0 00000000
    5f60: ffffffff becaccd8 00000880 00000000 000a5e80 00000001 bf007ee0 00000880
    5f80: c3a45f84 00000000 becaccd4 00000002 000003df 00000081 00000000 c3a45fa8
    5fa0: c0026a60 c0057584 00000002 000003df 00900081 000a5e80 00000880 00000000
    5fc0: becaccd4 00000002 000003df 00000000 000a5e80 00000001 00000002 0000005f
    5fe0: 4004f5ec becacbe8 0001a158 4004f5fc 20000010 00900081 f9ffbadf 7bbfb2bb
    Backtrace:
    [] (atmel_lcdfb_remove+0x0/0xf8 [atmel_lcdfb]) from [] (platform_drv_remove+0x20/0x24)
    r6:bf007e3c r5:bf007e3c r4:c02bb230
    [] (platform_drv_remove+0x0/0x24) from [] (__device_release_driver+0x78/0x98)
    [] (__device_release_driver+0x0/0x98) from [] (driver_detach+0x68/0x90)
    r5:c02bb2d8 r4:c02bb230
    [] (driver_detach+0x0/0x90) from [] (bus_remove_driver+0x8c/0xb4)
    r6:c02c8e14 r5:bf007ee0 r4:bf007e3c
    [] (bus_remove_driver+0x0/0xb4) from [] (driver_unregister+0x44/0x48)
    r6:00000000 r5:bf007ee0 r4:bf007e3c
    [] (driver_unregister+0x0/0x48) from [] (platform_driver_unregister+0x14/0x18)
    r6:bf008000 r5:bf007ee0 r4:00000000
    [] (platform_driver_unregister+0x0/0x18) from [] (atmel_lcdfb_exit+0x14/0x1c [atmel_lcdfb])
    [] (atmel_lcdfb_exit+0x0/0x1c [atmel_lcdfb]) from [] (sys_delete_module+0x1b8/0x22c)
    [] (sys_delete_module+0x0/0x22c) from [] (ret_fast_syscall+0x0/0x2c)
    r7:00000081 r6:000003df r5:00000002 r4:becaccd4
    Code: e92dd870 e24cb004 e59050c4 e1a06000 (e5954228)
    ---[ end trace 85476b184d9e68d8 ]---

    This patch fixes the oops.

    Signed-off-by: Stanislaw Gruszka
    Acked-by: Nicolas Ferre
    Acked-by: Krzysztof Helt
    Cc: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stanislaw Gruszka
     

13 Aug, 2008

2 commits

  • Specify how much physically continuous, DMA capable memory will be
    allocated at driver initialization time. This allow to create framebuffer
    device with larger virtual resolution. Combine with y-panning this can be
    used to implement double buffering acceleration method.

    Signed-off-by: Stanislaw Gruszka
    Acked-by: Haavard Skinnemoen
    Acked-by: Krzysztof Helt
    Cc: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • Panning in the y-direction can be done by simply changing the DMA base
    address. This code is already in place, but FBIOPAN_DISPLAY will
    currently fail because ypanstep is 0.

    Set ypanstep to 1 to indicate that we do support y-panning and also set
    the necessary acceleration flags on AT91 (AVR32 already have them.)

    Signed-off-by: Haavard Skinnemoen
    Acked-by: Krzysztof Helt
    Cc: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     

07 Aug, 2008

1 commit


25 Jul, 2008

2 commits

  • Avoid division by zero in atmel_lcdfb_check_var() function.

    If pixclock is not specified while passing a var structure in
    the check_var() funtion, a division by zero occurs (when
    translating pixclock to KHz).

    This patch adds a checking of this value and try to choose a
    video mode in the modelist.

    The mode found in the probe function in added to the modelist.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Nicolas Ferre
    Cc: Haavard Skinnemoen
    Cc: Andrew Victor
    Cc: "Antonino A. Daplas"
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     
  • Manage atmel_lcdfb FIFO underflow

    Resetting the LCD and DMA allows to fix screen shifting after a FIFO
    underflow. It follows reset sequence from errata "LCD Screen Shifting
    After a Reset".

    Signed-off-by: Nicolas Ferre
    Cc: Haavard Skinnemoen
    Cc: Andrew Victor
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     

13 May, 2008

1 commit

  • Fix divider calculation and allow CLKVAL = 0 (divisor 2)

    It was not possible to get the clock value 0 (divisor 2) because
    the test "
    Cc: Per Hedblom
    Cc: Roel Kluin
    Cc: Jan Weber
    Cc: Andrew Victor
    Cc: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     

28 Apr, 2008

1 commit

  • AT91SAM9RL soc has a 2048 bytes deep FIFO, like AT91SAM9263.

    [bn@niasdigital.com: fix build breakage in atmel_lcdfb]
    Signed-off-by: Nicolas Ferre
    Cc: "Antonino A. Daplas"
    Cc: Nicolas FERRE
    Cc: Andrew Victor
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre