05 Jul, 2009

2 commits

  • Commit 537a1bf059fa312355696fa6db80726e655e7f17 (fbdev: add mutex for
    fb_mmap locking) introduces a ->mm_lock mutex for protecting smem
    assignments. Unfortunately in the case of sm501fb these happen quite
    early in the initialization code, well before the mutex_init() that takes
    place in register_framebuffer(), leading to:

    Badness at kernel/mutex.c:207

    Pid : 1, Comm: swapper
    CPU : 0 Not tainted (2.6.31-rc1-00284-g529ba0d-dirty #2273)

    PC is at __mutex_lock_slowpath+0x72/0x1bc
    PR is at __mutex_lock_slowpath+0x66/0x1bc
    ...

    matroxfb appears to have the same issue and has solved it with an early
    mutex_init(), so we do the same for sm501fb.

    Signed-off-by: Paul Mundt
    Cc: Krzysztof Helt
    Signed-off-by: Linus Torvalds

    Paul Mundt
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6: (27 commits)
    parisc: use generic atomic64 on 32-bit
    parisc: superio: fix build breakage
    parisc: Fix PCI resource allocation on non-PAT SBA machines
    parisc: perf: wire up sys_perf_counter_open
    parisc: add task_pt_regs macro
    parisc: wire sys_perf_counter_open to sys_ni_syscall
    parisc: inventory.c, fix bloated stack frame
    parisc: processor.c, fix bloated stack frame
    parisc: fix compile warning in mm/init.c
    parisc: remove dead code from sys_parisc32.c
    parisc: wire up rt_tgsigqueueinfo
    parisc: ensure broadcast tlb purge runs single threaded
    parisc: fix "delay!" timer handling
    parisc: fix mismatched parenthesis in memcpy.c
    parisc: Fix gcc 4.4 warning in lba_pci.c
    parisc: add parameter to read_cr16()
    parisc: decode_exc.c should include kernel.h
    parisc: remove obsolete hw_interrupt_type
    parisc: fix irq compile bugs in arch/parisc/kernel/irq.c
    parisc: advertise PCI devs after "assign_resources"
    ...

    Manually fixed up trivial conflicts in tools/perf/perf.h due to addition
    of SH vs HPPA perf-counter support.

    Linus Torvalds
     

03 Jul, 2009

2 commits


02 Jul, 2009

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
    sh: LCDC dcache flush for deferred io
    sh: Fix compiler error and include the definition of IS_ERR_VALUE
    sh: re-add LCDC fbdev support to the Migo-R defconfig
    sh: fix se7724 ceu names
    sh: ms7724se: Enable sh_eth in defconfig.
    arch/sh/boards/mach-se/7206/io.c: Remove unnecessary semicolons
    sh: ms7724se: Add sh_eth support
    nommu: provide follow_pfn().
    sh: Kill off unused DEBUG_BOOTMEM symbol.
    perf_counter tools: add cpu_relax()/rmb() definitions for sh.
    sh64: Hook up page fault events for software perf counters.
    sh: Hook up page fault events for software perf counters.
    sh: make set_perf_counter_pending() static inline.
    clocksource: sh_tmu: Make undefined TCOR behaviour less undefined.

    Linus Torvalds
     
  • Since writenotify on uncached vmas is unsupported in 2.6.31,
    live with cached framebuffer memory in the deferred io
    case for now and flush the dcache before forcing refresh.

    Signed-off-by: Paul Mundt
    Acked-by: Magnus damm

    Paul Mundt
     

01 Jul, 2009

3 commits

  • Block writes require 64 byte alignment. Since block writes could be used
    with SGRAM or WRAM also refine the memory type detection to check for
    either type before deciding to use the 64 byte alignment.

    Signed-off-by: Ville Syrjala
    Tested-by: Mikulas Patocka
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ville Syrjala
     
  • Apparently HP OmniBook 500's BIOS doesn't like the way atyfb reprograms
    the hardware. The BIOS will simply hang after a reboot. Fix the problem
    by restoring the hardware to it's original state on reboot.

    Signed-off-by: Ville Syrjala
    Cc: Mikulas Patocka
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ville Syrjala
     
  • 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
     

30 Jun, 2009

1 commit


24 Jun, 2009

2 commits


20 Jun, 2009

2 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (35 commits)
    powerpc/5121: make clock debug output more readable
    powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function
    powerpc/5200: Update pcm030.dts to add i2c eeprom and delete cruft
    powerpc/5200: convert mpc52xx_psc_spi to use cs_control callback
    fbdev/xilinxfb: Fix improper casting and tighen up probe path
    usb/ps3: Add missing annotations
    powerpc: Add memory clobber to mtspr()
    powerpc: Fix invalid construct in our CPU selection Kconfig
    ps3rom: Use ps3_system_bus_[gs]et_drvdata() instead of direct access
    powerpc: Add configurable -Werror for arch/powerpc
    of_serial: Add UPF_FIXED_TYPE flag
    drivers/hvc: Add missing __devexit_p()
    net/ps3: gelic - Add missing annotations
    powerpc: Introduce macro spin_event_timeout()
    powerpc/warp: Fix ISA_DMA_THRESHOLD default
    powerpc/bootwrapper: Custom build options for XPedite52xx targets
    powerpc/85xx: Add defconfig for X-ES MPC85xx boards
    powerpc/85xx: Add dts files for X-ES MPC85xx boards
    powerpc/85xx: Add platform support for X-ES MPC85xx boards
    83xx: add support for the kmeter1 board.
    ...

    Linus Torvalds
     
  • Do not accept VESA modes by the "vga=" kernel parameter if there is no
    frame buffer driver compiled-in to handle it.

    Also, there is a comment added to the Kconfig description after Werner
    Lemberg's suggestion

    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=13249

    Signed-off-by: Krzysztof Helt
    Reported-by: Werner Lemberg
    Cc: Michal Januszewski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     

18 Jun, 2009

1 commit


17 Jun, 2009

25 commits

  • The xilinxfb driver is improperly casting a physical address to a
    u32, and the probe routine isn't as straight forward as it could be.
    (discovered by gcc spitting out warnings on most recent change to
    xilinxfb driver).

    This patch fixes the cast and simplifies the probe path.

    Signed-off-by: Grant Likely
    Tested-by: John Linn

    Grant Likely
     
  • * akpm: (182 commits)
    fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset
    fbdev: *bfin*: fix __dev{init,exit} markings
    fbdev: *bfin*: drop unnecessary calls to memset
    fbdev: bfin-t350mcqb-fb: drop unused local variables
    fbdev: blackfin has __raw I/O accessors, so use them in fb.h
    fbdev: s1d13xxxfb: add accelerated bitblt functions
    tcx: use standard fields for framebuffer physical address and length
    fbdev: add support for handoff from firmware to hw framebuffers
    intelfb: fix a bug when changing video timing
    fbdev: use framebuffer_release() for freeing fb_info structures
    radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?
    s3c-fb: CPUFREQ frequency scaling support
    s3c-fb: fix resource releasing on error during probing
    carminefb: fix possible access beyond end of carmine_modedb[]
    acornfb: remove fb_mmap function
    mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF
    mb862xxfb: restrict compliation of platform driver to PPC
    Samsung SoC Framebuffer driver: add Alpha Channel support
    atmel-lcdc: fix pixclock upper bound detection
    offb: use framebuffer_alloc() to allocate fb_info struct
    ...

    Manually fix up conflicts due to kmemcheck in mm/slab.c

    Linus Torvalds
     
  • Signed-off-by: Mike Frysinger
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • The remove member of the platform_driver bfin_t350mcqb_driver should use
    __devexit_p() to refer to the remove function, and that function should
    get __devexit markings. Likewise, the probe function should be marked
    with __devinit and not __init.

    Also, module_init() functions should be marked with __init rather than
    __devinit.

    Signed-off-by: Mike Frysinger
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • The dma_alloc_* functions sets the memory to 0 before returning so there
    is no need to call memset after the allocation. Also no point in clearing
    the memory when disabling the buffer.

    Signed-off-by: Vivek Kutal
    Signed-off-by: Mike Frysinger
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Kutal
     
  • The local fbinfo/info vars in the suspend functions don't actually get
    used which cause ugly gcc warnings, so drop them.

    Signed-off-by: Mike Frysinger
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • Add accelerated bitblt functions to s1d13xxx based video chipsets, more
    specificly functions copyarea and fillrect.

    It has only been tested and activated for 13506 chipsets but is expected
    to work for the majority of s1d13xxx based chips. This patch also cleans
    up the driver with respect of whitespaces and other formatting issues. We
    update the current status comments.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Kristoffer Ericson
    Cc: Russell King
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kristoffer Ericson
     
  • Use standard fields fbinfo.fix.smem_start and fbinfo.fix.smem_len for
    physical address and length of framebuffer.

    This also fixes output of the 'fbset -i' command - address and length of
    the framebuffer are displayed correctly.

    Signed-off-by: Krzysztof Helt
    Acked-by: David S. Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • With KMS we have ran into an issue where we really want the KMS fb driver
    to be the one running the console, so panics etc can be shown by switching
    out of X etc.

    However with vesafb/efifb built-in, we end up with those on fb0 and the
    KMS fb driver on fb1, driving the same piece of hw, so this adds an fb
    info flag to denote a firmware fbdev, and adds a new aperture base/size
    range which can be compared when the hw drivers are installed to see if
    there is a conflict with a firmware driver, and if there is the firmware
    driver is unregistered and the hw driver takes over.

    It uses new aperture_base/size members instead of comparing on the fix
    smem_start/length, as smem_start/length might for example only cover the
    first 1MB of the PCI aperture, and we could allocate the kms fb from 8MB
    into the aperture, thus they would never overlap.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Dave Airlie
    Acked-by: Peter Jones
    Cc: Geert Uytterhoeven
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Airlie
     
  • When changing video timing dynamically via fbset the screen sporadically
    is rendered black.

    With the attached fix which disables VCO prior to timing register change
    the problem disappears.

    I had a look at the Xserver register setup code. Here the VCO is
    disabled in the same way [1].

    This patch is taken from vga-sync-field version 0.0.11 [2][3].

    [1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/i830_=
    driver.c
    [2] http://lowbyte.de/vga-sync-fields/vga-sync-fields-0.0.11.tgz
    [3] http://easy-vdr.de/git?p=frc.git/.git;a=commit;h=dcc3b863e5a663652587619c357bd20075af6896
    2587619c357bd20075af6896

    Signed-off-by: Thomas Hilber
    Signed-off-by: Paul Menzel
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Menzel
     
  • Use the framebuffer_release() for freeing fb_info structures allocated
    with framebuffer_alloc().

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • P2G2CLK_ALWAYS_ONb is tested twice, 2nd should be P2G2CLK_DAC_ALWAYS_ONb.

    [akpm@linux-foundation.org: remove duplicated bitwise-OR of PIXCLKS_CNTL__R300_P2G2CLK_ALWAYS_ONb too]
    Signed-off-by: Roel Kluin
    Acked-by: Benjamin Herrenschmidt
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • Add support for CPU frequency scaling in the S3C24XX video driver.

    Signed-off-by: Simtec Linux Team
    Signed-off-by: Ben Dooks
    Cc: Dave Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • All resources are released in s3c_fb_win_release so remove other places of
    resources releasing. Add releasing of an allocated fb_info structure as
    well.

    Signed-off-by: Krzysztof Helt
    Cc: Kyungmin Park
    Cc: Marek Szyprowski
    Cc: Ben Dooks

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • This check is off-by-one.

    Signed-off-by: Roel Kluin
    Cc: Sebastian Siewior
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • The driver's fb_mmap function is essentially the same as a generic fb_mmap
    function. Delete driver's function and use the generic one.

    A difference is that generic function marks frame buffer memory as VM_IO |
    VM_RESERVED. The driver's function marks it as VM_IO only.

    Signed-off-by: Krzysztof Helt
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • With this change, the driver builds fine on Microblaze, which helps
    allyesconfig compile tests.

    I did not test sparc, but the change should have the same effect there.

    Signed-off-by: Arnd Bergmann
    Acked-by: Anatolij Gustschin
    Tested-by: Anatolij Gustschin
    Cc: "David S. Miller"
    Cc: Michal Simek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • The OpenFirmware part of this driver is uncompilable on SPARC due to it's
    dependance on several PPC specific functions.

    Restricting this to PPC to prevent these build errors:
    CC drivers/video/mb862xx/mb862xxfb.o
    drivers/video/mb862xx/mb862xxfb.c: In function 'of_platform_mb862xx_probe':
    drivers/video/mb862xx/mb862xxfb.c:559: error: implicit declaration of function 'of_address_to_resource'
    drivers/video/mb862xx/mb862xxfb.c:575: error: 'NO_IRQ' undeclared (first use in this function)
    drivers/video/mb862xx/mb862xxfb.c:575: error: (Each undeclared identifier is reported only once
    drivers/video/mb862xx/mb862xxfb.c:575: error: for each function it appears in.)

    This was found using randconfig builds.

    Signed-off-by: Julian Calaby
    Signed-off-by: Anatolij Gustschin
    Cc: Arnd Bergmann
    Cc: Anatolij Gustschin
    Cc: "David S. Miller"
    Cc: Michal Simek
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julian Calaby
     
  • Add support for the ARGB1888 and ARGB4888 hardware to the Samsung SoC
    Framebuffer driver (s3c-fb.c).

    ARGB1888 and ARGB4888 is decided by var->transp.length and this variable
    is set by s3c_fb_check_var().

    In s3c_fb_check_var(), if var->vits_per_pixel is 25 or 28, then
    var->transp.length would be 1 or 3.

    Therefore alpha mode(ARGB1888 or ARGB4888) could be decided through that
    variable.

    For using alpha mode, you need to set the following: This code should be
    added to your machine code as platform data.

    static struct s3c_fb_pd_win xxx_fb_win0 = {
    /* this is to ensure we use win0 */
    .win_mode = {
    .pixclock = (8+8+8+240)*(38+4+38+400),
    .left_margin = 8,
    .right_margin = 8,
    .upper_margin = 38,
    .lower_margin = 38,
    .hsync_len = 8,
    .vsync_len = 4,
    .xres = 240,
    .yres = 400,
    },
    .max_bpp = 32,
    .default_bpp = 24,
    };

    static struct s3c_fb_pd_win xxx_fb_win1 = {
    .win_mode = {
    .pixclock = (8+8+8+240)*(38+4+38+400),
    .left_margin = 8,
    .right_margin = 8,
    .upper_margin = 38,
    .lower_margin = 38,
    .hsync_len = 8,
    .vsync_len = 4,
    .xres = 240,
    .yres = 400,
    },
    .max_bpp = 32,
    .default_bpp = 28,
    };

    static struct s3c_fb_platdata xxx_lcd_pdata __initdata = {
    .win[0] = &ncp_fb_win0,
    .win[1] = &ncp_fb_win1,
    .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
    .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
    .setup_gpio = xxx_fb_gpio_setup,
    };

    s3c_fb_set_platdata(&xxx_lcd_pdata);

    The above code sets pixelformat for window0 layer to RGB888 and window1
    layer to ARGB4888.

    Signed-off-by: InKi Dae
    Cc: Ben Dooks
    Cc: Kyungmin Park
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    InKi Dae
     
  • 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
     
  • Use the framebuffer_alloc() function to allocate the fb_info structure so
    the structure is correctly initialized after allocation.

    Signed-off-by: Krzysztof Helt
    Cc: Geert Uytterhoeven
    Acked-by: Benjamin Herrenschmidt
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • Use the framebuffer_alloc() function to allocate the fb_info
    structure so the structure is correctly initialized after allocation.

    Signed-off-by: Krzysztof Helt
    Cc: Geert Uytterhoeven
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • The removed assignment is done inside the framebuffer_alloc() earlier.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • This patch was taken from vga-sync-field version 0.0.3 [1][2].

    [1] http://lowbyte.de/vga-sync-fields/vga-sync-fields-0.0.3.tgz
    [2] http://git.hellersdorfer-jugendchor.de/?p=3Dvga2scart.git;a=3Dcommit;h=
    =3Dc5c8ed6c51fc9879dbf38d8b91d5db6f4300ea03

    Signed-off-by: Thomas Hilber
    Signed-off-by: Paul Menzel
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Menzel
     
  • Now we have __initconst, we can finally move the external declarations for
    the various Linux logo structures to .

    James' ack dates back to the previous submission (way to long ago), when the
    logos were still __initdata, which caused failures on some platforms with some
    toolchain versions.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: James Simmons
    Cc: Krzysztof Helt
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven