14 Feb, 2014

2 commits

  • Without that patch, a user can't select the imxfb driver when the i.MX25
    and/or the i.MX27 device tree board are selected and that no boards that
    selects IMX_HAVE_PLATFORM_IMX_FB are compiled in.

    Cc: Eric Bénard
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Sascha Hauer
    Cc: Tomi Valkeinen
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-fbdev@vger.kernel.org
    Signed-off-by: Denis Carikli
    Acked-by: Shawn Guo
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: Sascha Hauer
    Signed-off-by: Tomi Valkeinen

    Denis Carikli
     
  • Enable S6E8AX0 LCD driver only if LCD_CLASS_DEVICE is a built-in driver.
    Else we get the following errors due to missing symbols:
    drivers/built-in.o: In function `s6e8ax0_probe':
    :(.text+0x51aec): undefined reference to `lcd_device_register'
    :(.text+0x51c44): undefined reference to `lcd_device_unregister'

    Signed-off-by: Sachin Kamat
    Signed-off-by: Tomi Valkeinen

    Sachin Kamat
     

11 Feb, 2014

2 commits

  • 'fck' field in dpi and sdi clock calculation struct is 'unsigned long
    long', even though it should be 'unsigned long'. This hasn't caused any
    issues so far.

    Fix the field's type.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • The driver uses DIV_ROUND_UP when calculating decimated width & height.
    For example, when decimating with 3, the width is calculated as:

    width = DIV_ROUND_UP(width, decim_x);

    This yields bad results for some values. For example, 800/3=266.666...,
    which is rounded to 267. When the input width is set to 267, and pixel
    increment is set to 3, this causes the dispc to read a line of 801
    pixels, i.e. it reads a wrong pixel at the end of the line.

    Even more pressing, the above rounding causes a BUG() in pixinc(), as
    the value of 801 is used to calculate row increment, leading to a bad
    value being passed to pixinc().

    This patch fixes the decimation by removing the DIV_ROUND_UP()s when
    calculating width and height for decimation.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     

03 Feb, 2014

1 commit

  • The built-in ROM fonts lack many necessary ASCII characters, which is
    why it makes sens to prefer the Linux fonts instead if they are
    available. This makes consoles on STI graphics cards which are not
    supported by the stifb driver (e.g. Visualize FXe) looks much nicer.

    Signed-off-by: Helge Deller
    Cc: stable@vger.kernel.org # v3.13

    Helge Deller
     

31 Jan, 2014

1 commit

  • Currently we kfree the container of the device which failed to register.
    This is wrong as the last reference is not given up with a put_device
    call. Also, now that we have put_device() callen, we no longer need the
    kfree as the new_ld->dev.release function will take care of kfreeing the
    associated memory.

    Signed-off-by: Levente Kurusa
    Acked-by: Jingoo Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Levente Kurusa
     

30 Jan, 2014

1 commit

  • Pull drm updates from Dave Airlie:
    "Been a bit busy, first week of kids school, and waiting on other trees
    to go in before I could send this, so its a bit later than I'd
    normally like.

    Highlights:
    - core:
    timestamp fixes, lots of misc cleanups
    - new drivers:
    bochs virtual vga
    - vmwgfx:
    major overhaul for their nextgen virt gpu.
    - i915:
    runtime D3 on HSW, watermark fixes, power well work, fbc fixes,
    bdw is no longer prelim.
    - nouveau:
    gk110/208 acceleration, more pm groundwork, old overlay support
    - radeon:
    dpm rework and clockgating for CIK, pci config reset, big endian
    fixes
    - tegra:
    panel support and DSI support, build as module, prime.
    - armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast:
    fixes
    - msm:
    hdmi support for mdp5"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (595 commits)
    drm/nouveau: resume display if any later suspend bits fail
    drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip
    drm/nouveau: implement hooks for needed for drm vblank timestamping support
    drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
    drm/nv50: fill in crtc mode struct members from crtc_mode_fixup
    drm/radeon/dce8: workaround for atom BlankCrtc table
    drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
    drm/radeon: set si_notify_smc_display_change properly
    drm/radeon: fix DAC interrupt handling on DCE5+
    drm/radeon: clean up active vram sizing
    drm/radeon: skip async dma init on r6xx
    drm/radeon/runpm: don't runtime suspend non-PX cards
    drm/radeon: add ring to fence trace functions
    drm/radeon: add missing trace point
    drm/radeon: fix VMID use tracking
    drm: ast,cirrus,mgag200: use drm_can_sleep
    drm/gma500: Lock struct_mutex around cursor updates
    drm/i915: Fix the offset issue for the stolen GEM objects
    DRM: armada: fix missing DRM_KMS_FB_HELPER select
    drm/i915: Decouple GPU error reporting from ring initialisation
    ...

    Linus Torvalds
     

29 Jan, 2014

1 commit

  • omapdrm patches for 3.14

    * tag 'omapdrm-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
    drm/omap: Enable DT support for DMM
    drm/omap: fix: change dev_unload order
    drm/omap: fix: disable encoder before destroying it
    drm/omap: fix: disconnect devices when omapdrm module is removed
    drm/omap: fix: Defer probe if an omapdss device requests for it at connect
    drm/omap: fix (un)registering irqs inside an irq handler

    Conflicts:
    drivers/gpu/drm/omapdrm/omap_drv.c

    Dave Airlie
     

28 Jan, 2014

1 commit

  • …ierry.reding/linux-pwm

    Pull pwm changes from Thierry Reding:
    "The patches for this release cycle include various enhancements
    (device tree support, better compile coverage, ...) for existing
    drivers. There is a new driver for Atmel SoCs.

    Various drivers as well as the sysfs support received minor fixes and
    cleanups"

    * tag 'pwm/for-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
    pwm: tiecap: Remove duplicate put_sync call
    pwm: tiehrpwm: use dev_err() instead of pr_err()
    pwm: pxa: remove unnecessary space before tabs
    pwm: ep93xx: split module author names
    pwm: use seq_puts() instead of seq_printf()
    pwm: atmel-pwm: Do not unprepare clock after successful registration
    of: Add Atmel PWM controller device tree binding
    pwm: atmel-pwm: Add Atmel PWM controller driver
    backlight: pwm_bl: Remove error message upon devm_kzalloc() failure
    pwm: pca9685: depends on I2C rather than REGMAP_I2C
    pwm: renesas-tpu: Enable driver compilation with COMPILE_TEST
    pwm: jz4740: Use devm_clk_get()
    pwm: jz4740: Pass device to clk_get()
    pwm: sysfs: Convert to use ATTRIBUTE_GROUPS macro
    pwm: pxa: Add device tree support

    Linus Torvalds
     

25 Jan, 2014

1 commit

  • Pull fbdev changes from Tomi Valkeinen:
    "This is a rather boring pull request. There is one new fb driver,
    OpenCores VGA/LCD, but other than that it's just minor cleanups and
    fixes"

    * tag 'fbdev-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (51 commits)
    i810: delete useless variable
    video: add OpenCores VGA/LCD framebuffer driver
    video/logo: Remove MIPS-specific include section
    tgafb: potential NULL dereference in init
    video: mmp: Using plain integer as NULL pointer
    video: mmp: delete a stray mutex_unlock()
    video: amba-clcd: Make CLCD driver available on more platforms
    video: Replace local macro with PCI standard macro
    fbmem: really support wildcard video=options for all fbdev drivers
    video: vgacon: Don't build on arm64
    video: mx3fb: Allow blocking during framebuffer allocation
    fbcon: Fix memory leak in fbcon_exit().
    fbcon: trivial optimization for fbcon_exit
    video: pxa168fb: Cleanup pxa168fb.h file
    video: pxa: Cleanup video-pxafb.h header
    video: msm: Cleanup video-msm_fb.h header
    video: ep93xx: Cleanup video-ep93xx.h header
    video: mxsfb: fix broken videomode selection
    video: mxsfb: convert pr_debug()/dev_dbg() to pr_err()/dev_err() for error messages
    video: vmlfb: remove unnecessary pci_set_drvdata()
    ...

    Linus Torvalds
     

24 Jan, 2014

12 commits


23 Jan, 2014

3 commits

  • Pull Xen updates from Konrad Rzeszutek Wilk:
    "Two major features that Xen community is excited about:

    The first is event channel scalability by David Vrabel - we switch
    over from an two-level per-cpu bitmap of events (IRQs) - to an FIFO
    queue with priorities. This lets us be able to handle more events,
    have lower latency, and better scalability. Good stuff.

    The other is PVH by Mukesh Rathor. In short, PV is a mode where the
    kernel lets the hypervisor program page-tables, segments, etc. With
    EPT/NPT capabilities in current processors, the overhead of doing this
    in an HVM (Hardware Virtual Machine) container is much lower than the
    hypervisor doing it for us.

    In short we let a PV guest run without doing page-table, segment,
    syscall, etc updates through the hypervisor - instead it is all done
    within the guest container. It is a "hybrid" PV - hence the 'PVH'
    name - a PV guest within an HVM container.

    The major benefits are less code to deal with - for example we only
    use one function from the the pv_mmu_ops (which has 39 function
    calls); faster performance for syscall (no context switches into the
    hypervisor); less traps on various operations; etc.

    It is still being baked - the ABI is not yet set in stone. But it is
    pretty awesome and we are excited about it.

    Lastly, there are some changes to ARM code - you should get a simple
    conflict which has been resolved in #linux-next.

    In short, this pull has awesome features.

    Features:
    - FIFO event channels. Key advantages: support for over 100,000
    events (2^17), 16 different event priorities, improved fairness in
    event latency through the use of FIFOs.
    - Xen PVH support. "It’s a fully PV kernel mode, running with
    paravirtualized disk and network, paravirtualized interrupts and
    timers, no emulated devices of any kind (and thus no qemu), no BIOS
    or legacy boot — but instead of requiring PV MMU, it uses the HVM
    hardware extensions to virtualize the pagetables, as well as system
    calls and other privileged operations." (from "The
    Paravirtualization Spectrum, Part 2: From poles to a spectrum")

    Bug-fixes:
    - Fixes in balloon driver (refactor and make it work under ARM)
    - Allow xenfb to be used in HVM guests.
    - Allow xen_platform_pci=0 to work properly.
    - Refactors in event channels"

    * tag 'stable/for-linus-3.14-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (52 commits)
    xen/pvh: Set X86_CR0_WP and others in CR0 (v2)
    MAINTAINERS: add git repository for Xen
    xen/pvh: Use 'depend' instead of 'select'.
    xen: delete new instances of __cpuinit usage
    xen/fb: allow xenfb initialization for hvm guests
    xen/evtchn_fifo: fix error return code in evtchn_fifo_setup()
    xen-platform: fix error return code in platform_pci_init()
    xen/pvh: remove duplicated include from enlighten.c
    xen/pvh: Fix compile issues with xen_pvh_domain()
    xen: Use dev_is_pci() to check whether it is pci device
    xen/grant-table: Force to use v1 of grants.
    xen/pvh: Support ParaVirtualized Hardware extensions (v3).
    xen/pvh: Piggyback on PVHVM XenBus.
    xen/pvh: Piggyback on PVHVM for grant driver (v4)
    xen/grant: Implement an grant frame array struct (v3).
    xen/grant-table: Refactor gnttab_init
    xen/grants: Remove gnttab_max_grant_frames dependency on gnttab_init.
    xen/pvh: Piggyback on PVHVM for event channels (v2)
    xen/pvh: Update E820 to work with PVH (v2)
    xen/pvh: Secondary VCPU bringup (non-bootup CPUs)
    ...

    Linus Torvalds
     
  • Pull trivial tree updates from Jiri Kosina:
    "Usual rocket science stuff from trivial.git"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    neighbour.h: fix comment
    sched: Fix warning on make htmldocs caused by wait.h
    slab: struct kmem_cache is protected by slab_mutex
    doc: Fix typo in USB Gadget Documentation
    of/Kconfig: Spelling s/one/once/
    mkregtable: Fix sscanf handling
    lp5523, lp8501: comment improvements
    thermal: rcar: comment spelling
    treewide: fix comments and printk msgs
    IXP4xx: remove '1 &&' from a condition check in ixp4xx_restart()
    Documentation: update /proc/uptime field description
    Documentation: Fix size parameter for snprintf
    arm: fix comment header and macro name
    asm-generic: uaccess: Spelling s/a ny/any/
    mtd: onenand: fix comment header
    doc: driver-model/platform.txt: fix a typo
    drivers: fix typo in DEVTMPFS_MOUNT Kconfig help text
    doc: Fix typo (acces_process_vm -> access_process_vm)
    treewide: Fix typos in printk
    drivers/gpu/drm/qxl/Kconfig: reformat the help text
    ...

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for the v3.14 merge window:

    Resource management
    - Change pci_bus_region addresses to dma_addr_t (Bjorn Helgaas)
    - Support 64-bit AGP BARs (Bjorn Helgaas, Yinghai Lu)
    - Add pci_bus_address() to get bus address of a BAR (Bjorn Helgaas)
    - Use pci_resource_start() for CPU address of AGP BARs (Bjorn Helgaas)
    - Enforce bus address limits in resource allocation (Yinghai Lu)
    - Allocate 64-bit BARs above 4G when possible (Yinghai Lu)
    - Convert pcibios_resource_to_bus() to take pci_bus, not pci_dev (Yinghai Lu)

    PCI device hotplug
    - Major rescan/remove locking update (Rafael J. Wysocki)
    - Make ioapic builtin only (not modular) (Yinghai Lu)
    - Fix release/free issues (Yinghai Lu)
    - Clean up pciehp (Bjorn Helgaas)
    - Announce pciehp slot info during enumeration (Bjorn Helgaas)

    MSI
    - Add pci_msi_vec_count(), pci_msix_vec_count() (Alexander Gordeev)
    - Add pci_enable_msi_range(), pci_enable_msix_range() (Alexander Gordeev)
    - Deprecate "tri-state" interfaces: fail/success/fail+info (Alexander Gordeev)
    - Export MSI mode using attributes, not kobjects (Greg Kroah-Hartman)
    - Drop "irq" param from *_restore_msi_irqs() (DuanZhenzhong)

    SR-IOV
    - Clear NumVFs when disabling SR-IOV in sriov_init() (ethan.zhao)

    Virtualization
    - Add support for save/restore of extended capabilities (Alex Williamson)
    - Add Virtual Channel to save/restore support (Alex Williamson)
    - Never treat a VF as a multifunction device (Alex Williamson)
    - Add pci_try_reset_function(), et al (Alex Williamson)

    AER
    - Ignore non-PCIe error sources (Betty Dall)
    - Support ACPI HEST error sources for domains other than 0 (Betty Dall)
    - Consolidate HEST error source parsers (Bjorn Helgaas)
    - Add a TLP header print helper (Borislav Petkov)

    Freescale i.MX6
    - Remove unnecessary code (Fabio Estevam)
    - Make reset-gpio optional (Marek Vasut)
    - Report "link up" only after link training completes (Marek Vasut)
    - Start link in Gen1 before negotiating for Gen2 mode (Marek Vasut)
    - Fix PCIe startup code (Richard Zhu)

    Marvell MVEBU
    - Remove duplicate of_clk_get_by_name() call (Andrew Lunn)
    - Drop writes to bridge Secondary Status register (Jason Gunthorpe)
    - Obey bridge PCI_COMMAND_MEM and PCI_COMMAND_IO bits (Jason Gunthorpe)
    - Support a bridge with no IO port window (Jason Gunthorpe)
    - Use max_t() instead of max(resource_size_t,) (Jingoo Han)
    - Remove redundant of_match_ptr (Sachin Kamat)
    - Call pci_ioremap_io() at startup instead of dynamically (Thomas Petazzoni)

    NVIDIA Tegra
    - Disable Gen2 for Tegra20 and Tegra30 (Eric Brower)

    Renesas R-Car
    - Add runtime PM support (Valentine Barshak)
    - Fix rcar_pci_probe() return value check (Wei Yongjun)

    Synopsys DesignWare
    - Fix crash in dw_msi_teardown_irq() (Bjørn Erik Nilsen)
    - Remove redundant call to pci_write_config_word() (Bjørn Erik Nilsen)
    - Fix missing MSI IRQs (Harro Haan)
    - Add dw_pcie prefix before cfg_read/write (Pratyush Anand)
    - Fix I/O transfers by using CPU (not realio) address (Pratyush Anand)
    - Whitespace cleanup (Jingoo Han)

    EISA
    - Call put_device() if device_register() fails (Levente Kurusa)
    - Revert EISA initialization breakage ((Bjorn Helgaas)

    Miscellaneous
    - Remove unused code, including PCIe 3.0 interfaces (Stephen Hemminger)
    - Prevent bus conflicts while checking for bridge apertures (Bjorn Helgaas)
    - Stop clearing bridge Secondary Status when setting up I/O aperture (Bjorn Helgaas)
    - Use dev_is_pci() to identify PCI devices (Yijing Wang)
    - Deprecate DEFINE_PCI_DEVICE_TABLE (Joe Perches)
    - Update documentation 00-INDEX (Erik Ekman)"

    * tag 'pci-v3.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (119 commits)
    Revert "EISA: Initialize device before its resources"
    Revert "EISA: Log device resources in dmesg"
    vfio-pci: Use pci "try" reset interface
    PCI: Check parent kobject in pci_destroy_dev()
    xen/pcifront: Use global PCI rescan-remove locking
    powerpc/eeh: Use global PCI rescan-remove locking
    PCI: Fix pci_check_and_unmask_intx() comment typos
    PCI: Add pci_try_reset_function(), pci_try_reset_slot(), pci_try_reset_bus()
    MPT / PCI: Use pci_stop_and_remove_bus_device_locked()
    platform / x86: Use global PCI rescan-remove locking
    PCI: hotplug: Use global PCI rescan-remove locking
    pcmcia: Use global PCI rescan-remove locking
    ACPI / hotplug / PCI: Use global PCI rescan-remove locking
    ACPI / PCI: Use global PCI rescan-remove locking in PCI root hotplug
    PCI: Add global pci_lock_rescan_remove()
    PCI: Cleanup pci.h whitespace
    PCI: Reorder so actual code comes before stubs
    PCI/AER: Support ACPI HEST AER error sources for PCI domains other than 0
    ACPICA: Add helper macros to extract bus/segment numbers from HEST table.
    PCI: Make local functions static
    ...

    Linus Torvalds
     

21 Jan, 2014

1 commit

  • Pull m68k updates from Geert Uytterhoeven:
    - Zorro bus cleanups and UAPI revival
    - Bootinfo cleanups and UAPI revival
    - Kexec support
    - Memory size reductions and bug fixes for multi-platform kernels
    - Polled interrupt support for Atari EtherNAT, EtherNEC and NetUSBee
    - Machine-specific random_get_entropy()
    - Defconfig updates and cleanups

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (46 commits)
    m68k/mac: Make SCC reset work more reliably
    m68k/irq - Use polled IRQ flag for MFP timer cascaded interrupts
    m68k: Update defconfigs for v3.13-rc1
    m68k/defconfig: Enable EARLY_PRINTK
    m68k/mm: kmap spelling/grammar fixes
    m68k: Convert arch/m68k/kernel/traps.c to pr_*()
    m68k: Convert arch/m68k/mm/fault.c to pr_*()
    m68k/mm: Check for mm != NULL in do_page_fault() debug code
    m68k/defconfig: Disable /sbin/hotplug fork-bomb by default
    m68k/atari: Hide RTC_PORT() macro from rtc-cmos
    m68k/amiga,atari: Fix specifying multiple debug= parameters
    m68k/defconfig: Use ext4 for ext2/ext3 file systems
    m68k: Add support to export bootinfo in procfs
    m68k: Add kexec support
    m68k/mac: Mark Mac IIsi ADB driver BROKEN
    m68k/amiga: Provide mach_random_get_entropy()
    m68k: Add infrastructure for machine-specific random_get_entropy()
    m68k/atari: Call paging_init() before nf_init()
    m68k: Remove superfluous inclusions of
    m68k/UAPI: Use proper types (endianness/size) in
    ...

    Linus Torvalds
     

20 Jan, 2014

1 commit


17 Jan, 2014

13 commits

  • Delete a variable that is at most only assigned to a constant, but never
    used otherwise.

    A simplified version of the semantic patch that fixes this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    type T;
    identifier i;
    constant c;
    @@

    -T i;

    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Tomi Valkeinen

    Julia Lawall
     
  • This adds support for the VGA/LCD core available from OpenCores:
    http://opencores.org/project,vga_lcd

    The driver have been tested together with both OpenRISC and
    ARM (socfpga) processors.

    Signed-off-by: Stefan Kristiansson
    Signed-off-by: Tomi Valkeinen

    Stefan Kristiansson
     
  • Since commit 41702d9a4fffa9e25b2ad9d4af09b3013fa155e1 ("logo.c: get rid of
    mips_machgroup") there's no longer a need to include on
    MIPS.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Ralf Baechle
    Signed-off-by: Tomi Valkeinen

    Geert Uytterhoeven
     
  • Static checkers complain that there are paths where "tga_type_name" can
    be NULL. I've re-arranged the code slightly so that's impossible.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Tomi Valkeinen

    Dan Carpenter
     
  • Sparse complains here:

    drivers/video/mmp/core.c:33:16:
    warning: Using plain integer as NULL pointer

    Signed-off-by: Dan Carpenter
    Signed-off-by: Tomi Valkeinen

    Dan Carpenter
     
  • We aren't holding the disp_lock so we shouldn't release it.

    Signed-off-by: Dan Carpenter
    Acked-by: Haojian Zhuang
    Signed-off-by: Tomi Valkeinen

    Dan Carpenter
     
  • The CLCD driver is used on ARM reference models for ARMv8 so add ARM64
    to the list of dependencies. The driver also has no build time dependencies
    on ARM (stubs are provided for ARM-specific DMA functions in the code) so
    make it available with COMPILE_TEST in order to maximise build coverage.

    Signed-off-by: Mark Brown
    Signed-off-by: Tomi Valkeinen

    Mark Brown
     
  • Replace local macro TGA_BUS_PCI with PCI standard
    marco dev_is_pci().

    Signed-off-by: Yijing Wang
    Signed-off-by: Tomi Valkeinen

    Yijing Wang
     
  • Documentation/fb/modedb.txt states that video=option should be
    considered a global option. But video_setup and fb_get_options are not
    coded that way. Instead its required to boot with video=driver:option to
    set a given option in drvier. This is cumbersome because it requires to
    know in advance which driver will be active for a given board/kernel.

    The following patch implements the documented catchall for the fbdev
    drivers. It is now possible to boot with video=XxY without the need to
    know the active driver in advance. The specific case it tries to fix is
    syslinux in the SUSE installer which offers a menu to set a display
    resolution. Right now this just appends the vga= option the kernel. But
    in addition to vga= it should be possible to pass a generic video=XxY
    for all framebuffer/drm drivers. With this change forcing a certain
    window size of VM displays is now much easier.

    Today the video= option is stored in a global fb_mode_option. But
    unfortunately only drm uses it.

    Note: this change introduces a small memleak if video=option is actually
    used because fb_mode_option is const. Most drivers use strsep to get to
    individual options. This could be fixed in a followup patch which always
    releases the option string in every caller of fb_get_options.

    Signed-off-by: Olaf Hering
    Signed-off-by: Tomi Valkeinen

    Olaf Hering
     
  • arm64 is unlikely to have a VGA console and does not export screen_info
    causing build failures if the driver is build, for example in all*config.
    Add a dependency on !ARM64 to prevent this.

    This list is getting quite long, it may be easier to depend on a symbol
    which architectures that do support the driver can select.

    Signed-off-by: Mark Brown
    [tomi.valkeinen@ti.com: moved && to first modified line]
    Signed-off-by: Tomi Valkeinen

    Mark Brown
     
  • No need to allocate the framebuffer from the atomic pool, we are not
    in interrupt context. Adding GFP_KERNEL to the framebuffer allocation
    allows to use the much bigger CMA pool to allocate the framebuffer.

    Signed-off-by: Sascha Hauer
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Tomi Valkeinen
    Cc: linux-fbdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Tomi Valkeinen

    Sascha Hauer
     
  • kmemleak reported a memory leak as below.

    unreferenced object 0xffff880036ca84c0 (size 16):
    comm "swapper/0", pid 1, jiffies 4294877407 (age 4434.633s)
    hex dump (first 16 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ................
    backtrace:
    [] kmemleak_alloc+0x4e/0xb0
    [] __kmalloc+0x1fc/0x290
    [] bit_cursor+0x24e/0x6c0
    [] fbcon_cursor+0x154/0x1d0
    [] hide_cursor+0x28/0xa0
    [] update_region+0x6f/0x90
    [] fbcon_switch+0x518/0x550
    [] redraw_screen+0x189/0x240
    [] do_bind_con_driver+0x360/0x380
    [] do_take_over_console+0x114/0x1c0
    [] do_fbcon_takeover+0x63/0xd0
    [] fbcon_event_notify+0x605/0x720
    [] notifier_call_chain+0x4c/0x70
    [] __blocking_notifier_call_chain+0x4d/0x70
    [] blocking_notifier_call_chain+0x16/0x20
    [] fb_notifier_call_chain+0x1b/0x20

    In this case ops->cursor_state.mask is allocated in bit_cursor() but
    not freed in fbcon_exit(). So, fbcon_exit() needs to free buffer in its
    process.
    In the case, fbcon_exit() was called from fbcon_deinit() when driver
    called remove_conflicting_framebuffers().

    Signed-off-by: Masami Ichikawa
    Signed-off-by: Tomi Valkeinen

    Masami Ichikawa
     
  • Break out as soon as we find a mapped entry con2fb_map.

    Signed-off-by: Wang YanQing
    Signed-off-by: Tomi Valkeinen

    Wang YanQing