08 Jul, 2013

1 commit


02 Jul, 2013

1 commit

  • We want to use CMA for allocating hash page table and real mode area for
    PPC64. Hence move DMA contiguous related changes into a seperate config
    so that ppc64 can enable CMA without requiring DMA contiguous.

    Acked-by: Michal Nazarewicz
    Acked-by: Paul Mackerras
    Signed-off-by: Aneesh Kumar K.V
    [removed defconfig changes]
    Signed-off-by: Marek Szyprowski

    Aneesh Kumar K.V
     

04 Jun, 2013

1 commit

  • Ever since commit 45f035ab9b8f ("CONFIG_HOTPLUG should be always on"),
    it has been basically impossible to build a kernel with CONFIG_HOTPLUG
    turned off. Remove all the remaining references to it.

    Cc: Russell King
    Cc: Doug Thompson
    Cc: Bjorn Helgaas
    Cc: Steven Whitehouse
    Cc: Arnd Bergmann
    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Cc: Andrew Morton
    Signed-off-by: Stephen Rothwell
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Hans Verkuil
    Signed-off-by: Greg Kroah-Hartman

    Stephen Rothwell
     

04 Feb, 2013

1 commit

  • This patch adds a new kconfig, CONFIG_FW_LOADER_USER_HELPER, and
    guards the user-helper codes in firmware_class.c with ifdefs.

    Yeah, yeah, there are lots of ifdefs in this patch. The further
    clean-up with code shuffling follows in the next.

    Acked-by: Ming Lei
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

29 Oct, 2012

1 commit


26 Oct, 2012

1 commit

  • This config item has not carried much meaning for a while now and is
    almost always enabled by default. As agreed during the Linux kernel
    summit, remove it.

    CC: Greg Kroah-Hartman
    Signed-off-by: Kees Cook
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     

23 Oct, 2012

1 commit


01 Aug, 2012

1 commit

  • mm/page_alloc.c has some memory isolation functions but they are used only
    when we enable CONFIG_{CMA|MEMORY_HOTPLUG|MEMORY_FAILURE}. So let's make
    it configurable by new CONFIG_MEMORY_ISOLATION so that it can reduce
    binary size and we can check it simple by CONFIG_MEMORY_ISOLATION, not if
    defined CONFIG_{CMA|MEMORY_HOTPLUG|MEMORY_FAILURE}.

    Signed-off-by: Minchan Kim
    Cc: Andi Kleen
    Cc: Marek Szyprowski
    Acked-by: KAMEZAWA Hiroyuki
    Cc: KOSAKI Motohiro
    Cc: Mel Gorman
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Minchan Kim
     

21 May, 2012

1 commit

  • The Contiguous Memory Allocator is a set of helper functions for DMA
    mapping framework that improves allocations of contiguous memory chunks.

    CMA grabs memory on system boot, marks it with MIGRATE_CMA migrate type
    and gives back to the system. Kernel is allowed to allocate only movable
    pages within CMA's managed memory so that it can be used for example for
    page cache when DMA mapping do not use it. On
    dma_alloc_from_contiguous() request such pages are migrated out of CMA
    area to free required contiguous block and fulfill the request. This
    allows to allocate large contiguous chunks of memory at any time
    assuming that there is enough free memory available in the system.

    This code is heavily based on earlier works by Michal Nazarewicz.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Signed-off-by: Michal Nazarewicz
    Acked-by: Arnd Bergmann
    Tested-by: Rob Clark
    Tested-by: Ohad Ben-Cohen
    Tested-by: Benjamin Gaignard
    Tested-by: Robert Nelson
    Tested-by: Barry Song

    Marek Szyprowski
     

11 Feb, 2012

1 commit

  • Traditionally, any System-on-Chip based platform creates a flat list
    of platform_devices directly under /sys/devices/platform.

    In order to give these some better structure, this introduces a new
    bus type for soc_devices that are registered with the new
    soc_device_register() function. All devices that are on the same
    chip should then be registered as child devices of the soc device.

    The soc bus also exports a few standardised device attributes which
    allow user space to query the specific type of soc.

    Signed-off-by: Lee Jones
    Signed-off-by: Greg Kroah-Hartman

    Lee Jones
     

13 Jan, 2012

1 commit


12 Jan, 2012

1 commit


06 Jan, 2012

2 commits

  • Mark dma-buf buffer sharing API as EXPERIMENTAL for first release.
    We will remove this in later versions, once it gets smoothed out
    and has more users.

    Signed-off-by: Sumit Semwal
    Signed-off-by: Sumit Semwal
    Signed-off-by: Dave Airlie

    Sumit Semwal
     
  • This is the first step in defining a dma buffer sharing mechanism.

    A new buffer object dma_buf is added, with operations and API to allow easy
    sharing of this buffer object across devices.

    The framework allows:
    - creation of a buffer object, its association with a file pointer, and
    associated allocator-defined operations on that buffer. This operation is
    called the 'export' operation.
    - different devices to 'attach' themselves to this exported buffer object, to
    facilitate backing storage negotiation, using dma_buf_attach() API.
    - the exported buffer object to be shared with the other entity by asking for
    its 'file-descriptor (fd)', and sharing the fd across.
    - a received fd to get the buffer object back, where it can be accessed using
    the associated exporter-defined operations.
    - the exporter and user to share the scatterlist associated with this buffer
    object using map_dma_buf and unmap_dma_buf operations.

    Atleast one 'attach()' call is required to be made prior to calling the
    map_dma_buf() operation.

    Couple of building blocks in map_dma_buf() are added to ease introduction
    of sync'ing across exporter and users, and late allocation by the exporter.

    For this first version, this framework will work with certain conditions:
    - *ONLY* exporter will be allowed to mmap to userspace (outside of this
    framework - mmap is not a buffer object operation),
    - currently, *ONLY* users that do not need CPU access to the buffer are
    allowed.

    More details are there in the documentation patch.

    This is based on design suggestions from many people at the mini-summits[1],
    most notably from Arnd Bergmann , Rob Clark and
    Daniel Vetter .

    The implementation is inspired from proof-of-concept patch-set from
    Tomasz Stanislawski , who demonstrated buffer sharing
    between two v4l2 devices. [2]

    [1]: https://wiki.linaro.org/OfficeofCTO/MemoryManagement
    [2]: http://lwn.net/Articles/454389

    Signed-off-by: Sumit Semwal
    Signed-off-by: Sumit Semwal
    Reviewed-by: Daniel Vetter
    Reviewed-by: Dave Airlie
    Reviewed-and-Tested-by: Rob Clark
    Signed-off-by: Dave Airlie

    Sumit Semwal
     

26 Jul, 2011

1 commit

  • …/gregkh/driver-core-2.6

    * 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
    updated Documentation/ja_JP/SubmittingPatches
    debugfs: add documentation for debugfs_create_x64
    uio: uio_pdrv_genirq: Add OF support
    firmware: gsmi: remove sysfs entries when unload the module
    Documentation/zh_CN: Fix messy code file email-clients.txt
    driver core: add more help description for "path to uevent helper"
    driver-core: modify FIRMWARE_IN_KERNEL help message
    driver-core: Kconfig grammar corrections in firmware configuration
    DOCUMENTATION: Replace create_device() with device_create().
    DOCUMENTATION: Update overview.txt in Doc/driver-model.
    pti: pti_tty_install documentation mispelling.

    Linus Torvalds
     

23 Jul, 2011

1 commit

  • There are many places in the tree where we implement register access for
    devices on non-memory mapped buses, especially I2C and SPI. Since hardware
    designers seem to have settled on a relatively consistent set of register
    interfaces this can be effectively factored out into shared code. There
    are a standard set of formats for marshalling data for exchange with the
    device, with the actual I/O mechanisms generally being simple byte
    streams.

    We create an abstraction for marshaling data into formats which can be
    sent on the control interfaces, and create a standard method for
    plugging in actual transport underneath that.

    This is mostly a refactoring and renaming of the bottom level of the
    existing code for sharing register I/O which we have in ASoC. A
    subsequent patch in this series converts ASoC to use this. The main
    difference in interface is that reads return values by writing to a
    location provided by a pointer rather than in the return value, ensuring
    we can use the full range of the type for register data. We also use
    unsigned types rather than ints for the same reason.

    As some of the devices can have very large register maps the existing
    ASoC code also contains infrastructure for managing register caches.
    This cache work will be moved over in a future stage to allow for
    separate review, the current patch only deals with the physical I/O.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood
    Acked-by: Greg Kroah-Hartman
    Acked-by: Wolfram Sang
    Acked-by: Grant Likely

    Mark Brown
     

02 Jul, 2011

3 commits


12 May, 2011

1 commit

  • Since suspend, resume and shutdown operations in struct sysdev_class
    and struct sysdev_driver are not used any more, remove them. Also
    drop sysdev_suspend(), sysdev_resume() and sysdev_shutdown() used
    for executing those operations and modify all of their users
    accordingly. This reduces kernel code size quite a bit and reduces
    its complexity.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     

24 Mar, 2011

1 commit

  • Introduce Kconfig option allowing architectures where sysdev
    operations used during system suspend, resume and shutdown have been
    completely replaced with struct sycore_ops operations to avoid
    building sysdev code that will never be used.

    Make callbacks in struct sys_device and struct sysdev_driver depend
    on ARCH_NO_SYSDEV_OPS to allows us to verify if all of the references
    have been actually removed from the code the given architecture
    depends on.

    Make x86 select ARCH_NO_SYSDEV_OPS.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

23 Oct, 2010

1 commit

  • Fix kconfig dependency warning for FW_LOADER.

    Lots of drivers select FW_LOADER without bothering to depend on
    HOTPLUG and/or without selecting HOTPLUG. A kernel builds fine
    when FW_LOADER is enabled, whether HOTPLUG is enabled or not, and
    a kernel config file (make oldconfig) is not changed by this patch.
    (Yes, drivers/base/firmware_class.c uses interfaces from linux/kobject.h,
    which does have some CONFIG_HOTPLUG dependencies, but this patch does
    not change that.)

    warning: (MICROCODE || MICROCODE_INTEL && MICROCODE || MICROCODE_AMD && MICROCODE || PCMCIA_LOAD_CIS && PCCARD && PCMCIA && EXPERIMENTAL || USB_IRDA && NET && IRDA && USB || BT_HCIBCM203X && NET && BT && USB || BT_HCIBFUSB && NET && BT && USB || BT_HCIBT3C && NET && BT && PCMCIA || BT_MRVL_SDIO && NET
    ...
    !STAGING_EXCLUDE_BUILD && USB && (X86 || ARM) && WLAN || DRM_NOUVEAU && STAGING && !STAGING_EXCLUDE_BUILD && DRM && PCI || TI_ST && STAGING && !STAGING_EXCLUDE_BUILD && RFKILL || DELL_RBU && X86) selects FW_LOADER which has unmet direct dependencies (HOTPLUG)
    (5200 byte line reduced a lot)

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     

22 May, 2010

1 commit


08 Mar, 2010

2 commits


16 Sep, 2009

1 commit

  • Devtmpfs lets the kernel create a tmpfs instance called devtmpfs
    very early at kernel initialization, before any driver-core device
    is registered. Every device with a major/minor will provide a
    device node in devtmpfs.

    Devtmpfs can be changed and altered by userspace at any time,
    and in any way needed - just like today's udev-mounted tmpfs.
    Unmodified udev versions will run just fine on top of it, and will
    recognize an already existing kernel-created device node and use it.
    The default node permissions are root:root 0600. Proper permissions
    and user/group ownership, meaningful symlinks, all other policy still
    needs to be applied by userspace.

    If a node is created by devtmps, devtmpfs will remove the device node
    when the device goes away. If the device node was created by
    userspace, or the devtmpfs created node was replaced by userspace, it
    will no longer be removed by devtmpfs.

    If it is requested to auto-mount it, it makes init=/bin/sh work
    without any further userspace support. /dev will be fully populated
    and dynamic, and always reflect the current device state of the kernel.
    With the commonly used dynamic device numbers, it solves the problem
    where static devices nodes may point to the wrong devices.

    It is intended to make the initial bootup logic simpler and more robust,
    by de-coupling the creation of the inital environment, to reliably run
    userspace processes, from a complex userspace bootstrap logic to provide
    a working /dev.

    Signed-off-by: Kay Sievers
    Signed-off-by: Jan Blunck
    Tested-By: Harald Hoyer
    Tested-By: Scott James Remnant
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

06 Jan, 2009

1 commit


17 Oct, 2008

1 commit


22 Jul, 2008

1 commit

  • James Bottomley recently discovered that we have
    {request,release}_firmware() dummies for the case of the actual
    functions not being available and has a fix for the bug that was
    actually causing build errors for built-in users with
    CONFIG_FW_LOADER=m.

    But now missing selects on FW_LOADER are no longer visible at
    compile-time at all and can become runtime problems.

    FW_LOADER is infrastructure with relatively small codesize we can safely
    enable for everyone, and only for people who really need small kernels
    (and can be expected to know what they are doing) it matters being able
    to disable it.

    This patch therefore always sets FW_LOADER=y and allows users only to
    disable it with EMBEDDED=y.

    As a bonus, we can then get rid of all "select FW_LOADER" plus the due
    to it required "depends on HOTPLUG" which removes some complexity from
    our Kconfig files.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     

10 Jul, 2008

2 commits

  • This will control whether we build firmware into the kernel image for
    _every_ driver which we convert to request_firmware(), to avoid a
    proliferation of 'CONFIG_XXX_FIRMWARE' options for each one.

    Default to 'y' for now, which is the wrong thing to do but people seem
    to be insisting on it and refusing to even review patches until it's
    done. And it does preserve the existing behaviour for built-in drivers.

    Signed-off-by: David Woodhouse

    David Woodhouse
     
  • This allows arbitrary firmware files to be included in the static kernel
    where the firmware loader can find them without requiring userspace to
    be alive.

    (Updated and CONFIG_EXTRA_FIRMWARE_DIR added with lots of help from
    Johannes Berg).

    Signed-off-by: David Woodhouse
    Signed-off-by: Johannes Berg

    David Woodhouse
     

13 Oct, 2007

1 commit

  • The kernel creates a process for every event that is send, even when
    there is no binary it could execute. We are needlessly creating around
    200-300 failing processes during early bootup, until we have the chance
    to disable it from userspace.

    This change allows us to disable /sbin/hotplug entirely, if you want to,
    by setting UEVENT_HELPER_PATH="" in the kernel config.

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

10 Feb, 2007

1 commit

  • Implement device resource management, in short, devres. A device
    driver can allocate arbirary size of devres data which is associated
    with a release function. On driver detach, release function is
    invoked on the devres data, then, devres data is freed.

    devreses are typed by associated release functions. Some devreses are
    better represented by single instance of the type while others need
    multiple instances sharing the same release function. Both usages are
    supported.

    devreses can be grouped using devres group such that a device driver
    can easily release acquired resources halfway through initialization
    or selectively release resources (e.g. resources for port 1 out of 4
    ports).

    This patch adds devres core including documentation and the following
    managed interfaces.

    * alloc/free : devm_kzalloc(), devm_kzfree()
    * IO region : devm_request_region(), devm_release_region()
    * IRQ : devm_request_irq(), devm_free_irq()
    * DMA : dmam_alloc_coherent(), dmam_free_coherent(),
    dmam_declare_coherent_memory(), dmam_pool_create(),
    dmam_pool_destroy()
    * PCI : pcim_enable_device(), pcim_pin_device(), pci_is_managed()
    * iomap : devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),
    devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),
    pcim_iomap(), pcim_iounmap()

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     

29 Oct, 2006

1 commit

  • Put SYS_HYPERVISOR inside the Generic Driver Config menu where it should
    be. Otherwise xconfig displays it as a dangling (lost) menu item under
    Device Drivers, all by itself (when all options are displayed).

    Signed-off-by: Randy Dunlap
    Cc:
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

11 Jul, 2006

1 commit

  • It's useful to be able to turn off CONFIG_HOTPLUG for compile-coverage testing
    and for section-checking coverage. But a few things go and select
    CONFIG_HOTPLUG, making it a royal PITA to turn the thing off.

    It's only turnable offable if CONFIG_EMBEDDED anyway. So let's make those
    things depend on HOTPLUG, not select it.

    Cc: Greg KH
    Cc: Dominik Brodowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

22 Jun, 2006

1 commit


05 Jan, 2006

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds