15 Nov, 2014

1 commit

  • In order to have subsytem agnostic media bus format definitions we've
    moved media bus definition to include/uapi/linux/media-bus-format.h and
    prefixed values with MEDIA_BUS_FMT instead of V4L2_MBUS_FMT.

    Reference new definitions in all platform drivers.

    Signed-off-by: Boris Brezillon
    Acked-by: Hans Verkuil
    Acked-by: Sakari Ailus
    Acked-by: Sekhar Nori
    Acked-by: Lad, Prabhakar
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Boris BREZILLON
     

19 Nov, 2013

1 commit

  • Pull i2c changes from Wolfram Sang:
    - new drivers for exynos5, bcm kona, and st micro
    - bigger overhauls for drivers mxs and rcar
    - typical driver bugfixes, cleanups, improvements
    - got rid of the superfluous 'driver' member in i2c_client struct This
    touches a few drivers in other subsystems. All acked.

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (38 commits)
    i2c: bcm-kona: fix error return code in bcm_kona_i2c_probe()
    i2c: i2c-eg20t: do not print error message in syslog if no ACK received
    i2c: bcm-kona: Introduce Broadcom I2C Driver
    i2c: cbus-gpio: Fix device tree binding
    i2c: wmt: add missing clk_disable_unprepare() on error
    i2c: designware: add new ACPI IDs
    i2c: i801: Add Device IDs for Intel Wildcat Point-LP PCH
    i2c: exynos5: Remove incorrect clk_disable_unprepare
    i2c: i2c-st: Add ST I2C controller
    i2c: exynos5: add High Speed I2C controller driver
    i2c: rcar: fixup rcar type naming
    i2c: scmi: remove some bogus NULL checks
    i2c: sh_mobile & rcar: Enable the driver on all ARM platforms
    i2c: sh_mobile: Convert to clk_prepare/unprepare
    i2c: mux: gpio: use reg value for i2c_add_mux_adapter
    i2c: mux: gpio: use gpio_set_value_cansleep()
    i2c: Include linux/of.h header
    i2c: mxs: Fix PIO mode on i.MX23
    i2c: mxs: Rework the PIO mode operation
    i2c: mxs: distinguish i.MX23 and i.MX28 based I2C controller
    ...

    Linus Torvalds
     

11 Nov, 2013

1 commit

  • Pull ARM driver updates from Olof Johansson:
    "Updates of SoC-near drivers and other driver updates that makes more
    sense to take through our tree. In this case it's involved:

    - Some Davinci driver updates that has required corresponding
    platform code changes (gpio mostly)
    - CCI bindings and a few driver updates
    - Marvell mvebu patches for PCI MSI support (could have gone through
    the PCI tree for this release, but they were acked by Bjorn for
    3.12 so we kept them through arm-soc).
    - Marvell dove switch-over to DT-based PCIe configuration
    - Misc updates for Samsung platform dmaengine drivers"

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)
    ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442
    dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
    ARM: S3C24XX: Fix possible dma selection warning
    PCI: mvebu: make local functions static
    PCI: mvebu: add I/O access wrappers
    PCI: mvebu: Dynamically detect if the PEX link is up to enable hot plug
    ARM: mvebu: fix gated clock documentation
    ARM: dove: remove legacy pcie and clock init
    ARM: dove: switch to DT probed mbus address windows
    ARM: SAMSUNG: set s3c24xx_dma_filter for s3c64xx-spi0 device
    ARM: S3C24XX: add platform-devices for new dma driver for s3c2412 and s3c2443
    dmaengine: add driver for Samsung s3c24xx SoCs
    ARM: S3C24XX: number the dma clocks
    PCI: mvebu: add support for Marvell Dove SoCs
    PCI: mvebu: add support for reset on GPIO
    PCI: mvebu: remove subsys_initcall
    PCI: mvebu: increment nports only for registered ports
    PCI: mvebu: move clock enable before register access
    PCI: mvebu: add support for MSI
    irqchip: armada-370-xp: implement MSI support
    ...

    Linus Torvalds
     

30 Sep, 2013

1 commit

  • This patch moves the at24.h header from include/linux/i2c to
    include/linux/platform_data and updates existing support accordingly.

    It also fixes the following checkpatch warning:

    WARNING: please, no space before tabs
    #436: FILE: include/linux/platform_data/at24.h:31:
    + * ^Iu8 *mac_addr = ethernet_pdata->mac_addr;$

    Signed-off-by: Vivien Didelot
    Signed-off-by: Wolfram Sang

    Vivien Didelot
     

25 Sep, 2013

1 commit

  • Create GPIO device for existing DaVinci boards.

    While at it, group related header files together.

    Signed-off-by: Philip Avinash
    Signed-off-by: Lad, Prabhakar
    Acked-by: Linus Walleij
    [nsekhar@ti.com: remove soc bits from this patch and
    simplify commit message]
    Signed-off-by: Sekhar Nori

    Philip Avinash
     

19 Sep, 2013

1 commit

  • If neither CONFIG_SND_DM365_AIC3X_CODEC nor CONFIG_SND_DM365_VOICE_CODEC
    are defined, we may get warnings like:

    arch/arm/mach-davinci/board-dm365-evm.c:179:33: warning: 'dm365_evm_snd_data' defined but not used [-Wunused-variable]

    To fix this, just mark the struct as __maybe_unused.

    Signed-off-by: Brian Norris
    Cc: Sekhar Nori
    Cc: Kevin Hilman
    Cc: Russell King
    Signed-off-by: Sekhar Nori

    Brian Norris
     

23 Aug, 2013

1 commit

  • …it/nsekhar/linux-davinci into next/soc

    From Sekhar Nori:

    DaVinci SoC updates for v3.12
    -----------------------------

    This set of SoC updates contains changes to the
    way UART clock is handled to enabled DT-boot to
    obtain UART clock frequency instead of relying
    on DT-binding being supplied. Similarly handling
    of MDIO clock is fixed to make it easier to support
    MDIO in DT-boot. Finally there is patch to remove
    now unnecessary setting of wake-up capable flag for
    RTC.

    * tag 'davinci-for-v3.12/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
    ARM: davinci: fix clock lookup for mdio device
    ARM: davinci: da8xx: remove hard coding of rtc device wakeup
    ARM: davinci: serial: remove davinci_serial_setup_clk()
    ARM: davinci: serial: get rid of davinci_uart_config
    ARM: davinci: da8xx: remove da8xx_uart_clk_enable
    ARM: davinci: uart: move to devid based clk_get

    Signed-off-by: Kevin Hilman <khilman@linaro.org>

    Kevin Hilman
     

22 Aug, 2013

1 commit

  • "struct davinci_uart_config" was introduced to specify
    UART ports brought out or enabled on the board. But
    none of the boards use it for that purpose and we are
    not going to add anymore board files, so remove the
    structure.

    Signed-off-by: Manjunathappa, Prakash
    Suggested-by: Sekhar Nori
    [nsekhar@ti.com: split patch to remove davinci_serial_setup_clk()
    changes.]
    Signed-off-by: Sekhar Nori

    Manjunathappa, Prakash
     

16 Jul, 2013

1 commit

  • Make file local variables static in mach-davinci.
    This fixes sparse warnings of the form:

    arch/arm/mach-davinci/dm355.c:863:27: warning: symbol 'dm355_venc_pdata' was not declared. Should it be static?

    Cc: Prabhakar Lad
    Acked-by: Prabhakar Lad
    Signed-off-by: Sekhar Nori

    Sekhar Nori
     

13 Jun, 2013

1 commit

  • Remove init_enable from ths7303 pdata as it is being dropped
    from ths7303_platform_data.
    The purpose of init_enable was that the device should start streaming video
    immediately but instead the bridge drivers should call s_stream explicitly
    for such devices. This is in fact what happens for the dm365, so setting
    init_enable here never made sense in the first place.

    Signed-off-by: Lad, Prabhakar
    [hans.verkuil@cisco.com: improve the commit comment]
    Acked-by: Sekhar Nori
    Signed-off-by: Hans Verkuil

    Signed-off-by: Mauro Carvalho Chehab

    Lad, Prabhakar
     

03 May, 2013

1 commit

  • Pull ARM SoC platform updates from Olof Johansson:
    "This branch contains part 1 of the platform updates for 3.10. Among
    the highlights:

    - Support for the new Atmel Cortex-A5 based platforms (SAMA5D3)
    - New support for CSR SiRFatlas6 SoCs
    - A handful of updates for NVidia T114 (a.k.a. Tegra 4)
    - A bunch of updates for the shmobile platforms
    - A handful of updates for davinci
    - A few updates for Qualcomm MSM
    - Plus a handful of other patches, defconfig updates, etc."

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (135 commits)
    ARM: tegra: pm: fix build error w/o PM_SLEEP
    ARM: davinci: ensure global variables are declared
    ARM: davinci: sram.c: fix incorrect type in assignment
    ARM: davinci: da8xx dt: make file local symbols static
    ARM: davinci: da8xx: add remoteproc support
    ARM: socfpga: Upgrade clk driver for socfpga to make use of dts clock entries
    ARM: socfpga: Add clock entries into device tree
    ARM: socfpga: Enable soft reset
    ARM: EXYNOS: replace cpumask by the corresponding macro
    ARM: EXYNOS: handle properly the return values
    ARM: EXYNOS: factor out the idle states
    ARM: OMAP4: Enable fix for Cortex-A9 erratas
    ARM: OMAP2+: Export SoC information to userspace
    ARM: OMAP2+: SoC name and revision unification
    ARM: OMAP2+: Move common part of late init into common function
    ARM: tegra: pm: remove duplicated include from pm.c
    ARM: davinci: da850: override mmc DT node device name
    ARM: davinci: da850: add mmc DT entries
    mmc: davinci_mmc: add DT support
    ARM: SAMSUNG: check processor type before cache restoration in resume
    ...

    Linus Torvalds
     

15 Apr, 2013

3 commits


03 Apr, 2013

1 commit

  • Remove specifying mmc controller IP version information via platform
    data, instead specify device name so that driver derives it from
    platform_device_id table. Also change the clock node name to match
    the changed dev_id.
    Tested on da850-evm to make sure driver loads without clk_get failures.

    Signed-off-by: Manjunathappa, Prakash
    Reviewed-by: Sekhar Nori
    Acked-by: Arnd Bergmann
    Acked-by: Chris Ball
    Signed-off-by: Sekhar Nori

    Manjunathappa, Prakash
     

25 Dec, 2012

1 commit

  • Now that the only field in struct sys_timer is .init, delete the struct,
    and replace the machine descriptor .timer field with the initialization
    function itself.

    This will enable moving timer drivers into drivers/clocksource without
    having to place a public prototype of each struct sys_timer object into
    include/linux; the intent is to create a single of_clocksource_init()
    function that determines which timer driver to initialize by scanning
    the device dtree, much like the proposed irqchip_init() at:
    http://www.spinics.net/lists/arm-kernel/msg203686.html

    Includes mach-omap2 fixes from Igor Grinberg.

    Tested-by: Robert Jarzmik
    Signed-off-by: Stephen Warren

    Stephen Warren
     

24 Oct, 2012

1 commit

  • As a first step towards migrating davinci platforms to use common clock
    framework, replace all instances of clk_enable() with clk_prepare_enable()
    and clk_disable() with clk_disable_unprepare(). Until the platform is
    switched to use the CONFIG_HAVE_CLK_PREPARE Kconfig variable, this just
    adds a might_sleep() call and would work without any issues.

    This will make it easy later to switch to common clk based implementation
    of clk driver from DaVinci specific driver.

    Signed-off-by: Murali Karicheri
    Reviewed-by: Mike Turquette
    Signed-off-by: Sekhar Nori

    m-karicheri2@ti.com
     

14 Sep, 2012

1 commit

  • Platform data for device drivers should be defined in
    include/linux/platform_data/*.h, not in the architecture
    and platform specific directories.

    This moves such data out of the davinci include directories

    Signed-off-by: Arnd Bergmann
    Acked-by: Mark Brown
    Acked-by: Greg Kroah-Hartman
    Acked-by: Nicolas Pitre
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Felipe Balbi
    Cc: Sekhar Nori
    Cc: Kevin Hilman
    Cc: "Ben Dooks"
    Cc: "Wolfram Sang"
    Cc: Dmitry Torokhov
    Cc: Chris Ball
    Cc: David Woodhouse
    Cc: Grant Likely
    Cc: Alan Stern
    Cc: Liam Girdwood
    Cc: davinci-linux-open-source@linux.davincidsp.com

    Arnd Bergmann
     

05 May, 2012

1 commit


27 Feb, 2012

1 commit

  • * davinci/cleanups:
    ARM: davinci: add back dummy header files
    ARM: davinci: dm644x: don't force vpfe registeration on all boards
    ARM: davinci: dm644x: fix inconsistent variable naming
    ARM: davinci: dm644x: improve readability using macro
    ARM: davinci: streamline sysmod access
    ARM: davinci: create new common platform header for davinci
    ARM: davinci: dm646x: move private definitions to C file
    ARM: davinci: dm365: move private definitions to C file
    ARM: davinci: dm644x: move private definitions to C file

    Conflicts:
    arch/arm/mach-davinci/board-dm644x-evm.c
    arch/arm/mach-davinci/board-neuros-osd2.c
    arch/arm/mach-davinci/board-sffsdr.c

    Arnd Bergmann
     

25 Feb, 2012

1 commit

  • Remove individual platform header files for dm365, dm355, dm644x
    and dm646x and consolidate it into a single and common
    header file davinci.h placed in arch/arm/mach-davinci.

    This reduces the pollution in the include/mach and is consistent
    with Russell's suggestions as part of his "pet peaves" mail.
    (See #4 in: http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/071516.html)

    While at it, fix the forward declaration of spi_board_info,
    and include the right header file instead.

    The further patches in the series take advantage of this consolidation
    for easy implementation of IO_ADDRESS elimination.

    Signed-off-by: Manjunath Hadli
    [nsekhar@ti.com: make davinci.h the first local include file,
    fix forward declaration of spi_board_info and add back Deep Root
    Systems, LLC copyright]
    Signed-off-by: Sekhar Nori

    Manjunath Hadli
     

28 Jan, 2012

1 commit

  • Commit 5a05a8200a4359ef2bfe9094c137dee35cfdd516 ("davinci_emac:
    use an unique MDIO bus name") introduced during the v3.3 merge
    window updated the davinci mdio bus name to make it unique.

    Update the bus name in board files which use DaVinci MDIO bus
    to match the new name. Without this PHY is not detected with
    error like:

    PHY 0:01 not found
    net eth0: could not connect to phy 0:01

    Tested on DM365 and DA850 EVMs.

    Cc: Florian Fainelli
    Cc: David S. Miller
    Signed-off-by: Sekhar Nori

    Sekhar Nori
     

05 Jan, 2012

1 commit

  • Rather than using DaVinci specific davinci_soc_info based
    restart hook, use the restart hook available in the machine
    descriptor instead.

    Tested on DM365 and AM18x EVMs.

    v2:
    Changed to use restart hook in machine descriptor
    per Russell's comment.

    Signed-off-by: Sekhar Nori
    Signed-off-by: Russell King

    Sekhar Nori
     

05 Dec, 2011

1 commit


08 Nov, 2011

1 commit

  • * git://git.infradead.org/mtd-2.6: (226 commits)
    mtd: tests: annotate as DANGEROUS in Kconfig
    mtd: tests: don't use mtd0 as a default
    mtd: clean up usage of MTD_DOCPROBE_ADDRESS
    jffs2: add compr=lzo and compr=zlib options
    jffs2: implement mount option parsing and compression overriding
    mtd: nand: initialize ops.mode
    mtd: provide an alias for the redboot module name
    mtd: m25p80: don't probe device which has status of 'disabled'
    mtd: nand_h1900 never worked
    mtd: Add DiskOnChip G3 support
    mtd: m25p80: add EON flash EN25Q32B into spi flash id table
    mtd: mark block device queue as non-rotational
    mtd: r852: make r852_pm_ops static
    mtd: m25p80: add support for at25df321a spi data flash
    mtd: mxc_nand: preset_v1_v2: unlock all NAND flash blocks
    mtd: nand: switch `check_pattern()' to standard `memcmp()'
    mtd: nand: invalidate cache on unaligned reads
    mtd: nand: do not scan bad blocks with NAND_BBT_NO_OOB set
    mtd: nand: wait to set BBT version
    mtd: nand: scrub BBT on ECC errors
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-at91/board-usb-a9260.c
    Merged into board-usb-a926x.c
    - drivers/mtd/maps/lantiq-flash.c
    add_mtd_partitions -> mtd_device_register vs changed to use
    mtd_device_parse_register.

    Linus Torvalds
     

11 Sep, 2011

2 commits

  • Recall the recently added prefix requirements:
    * "NAND_" for flags in nand.h, used in nand_chip.options
    * "NAND_BBT_" for flags in bbm.h, used in nand_chip.bbt_options
    or in nand_bbt_descr.options

    Thus, I am changing NAND_USE_FLASH_BBT to NAND_BBT_USE_FLASH.

    Again, this flag is found in bbm.h and so should NOT be used in the
    "nand_chip.options" field.

    Signed-off-by: Brian Norris
    Signed-off-by: Artem Bityutskiy

    Brian Norris
     
  • This patch works with the following three flags from two headers (nand.h
    and bbm.h):
    (1) NAND_USE_FLASH_BBT (nand.h)
    (2) NAND_USE_FLASH_BBT_NO_OOB (nand.h)
    (3) NAND_BBT_NO_OOB (bbm.h)

    These flags are all related and interdependent, yet they were in
    different headers. Flag (2) is simply the combination of (1) and (3) and
    can be eliminated.

    This patch accomplishes the following:
    * eliminate NAND_USE_FLASH_BBT_NO_OOB (i.e., flag (2))
    * move NAND_USE_FLASH_BBT (i.e., flag (1)) to bbm.h

    It's important to note that because (1) and (3) are now both found in
    bbm.h, they should NOT be used in the "nand_chip.options" field.

    I removed a small section from the mtdnand DocBook because it referes to
    NAND_USE_FLASH_BBT in nand.h, which has been moved to bbm.h.

    Signed-off-by: Brian Norris
    Signed-off-by: Artem Bityutskiy

    Brian Norris
     

22 Aug, 2011

1 commit


23 Jul, 2011

1 commit


19 Jul, 2011

2 commits


22 Oct, 2010

1 commit


20 Oct, 2010

1 commit

  • Since we're now using addruart to establish the debug mapping, we can
    remove the io_pg_offst and phys_io members of struct machine_desc.

    The various declarations were removed using the following script:

    grep -rl MACHINE_START arch/arm | xargs \
    sed -i '/MACHINE_START/,/MACHINE_END/ { /\.\(phys_io\|io_pg_offst\)/d }'

    [ Initial patch was from Jeremy Kerr, example script from Russell King ]

    Signed-off-by: Nicolas Pitre
    Acked-by: Eric Miao

    Nicolas Pitre
     

24 Sep, 2010

2 commits

  • This patch removes davinci architecture code that has now been rendered
    useless by the previous patches in the MDIO separation series.

    In addition, the earlier phy_mask definitions have been replaced with
    corresponding phy_id definitions.

    Signed-off-by: Cyril Chemparathy
    Tested-by: Michael Williamson
    Tested-by: Caglar Akyuz
    Signed-off-by: Kevin Hilman

    Cyril Chemparathy
     
  • By default the audio driver uses EDMAQ_0 as the DMA queue,
    but on DM365 this queue is specially designed for video
    transfers with a large fifo size. Having both audio and
    video transfers on the same queue leads to noise on the
    audio side.

    This patch changes the audio queue number for DM365 to
    EDMAQ_3.

    Signed-off-by: Sekhar Nori
    Signed-off-by: Kevin Hilman

    Sekhar Nori
     

21 May, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (250 commits)
    ALSA: hda: Storage class should be before const qualifier
    ASoC: tpa6130a2: Remove CPVSS and HPVdd supplies
    ASoC: tpa6130a2: Define output pins with SND_SOC_DAPM_OUTPUT
    ASoC: sdp4430 - add sdp4430 pcm ops to DAI.
    ASoC: TWL6040: Enable earphone path in codec
    ASoC: SDP4430: Add support for Earphone speaker
    ASoC: SDP4430: Add sdp4430 machine driver
    ASoC: tlv320dac33: Avoid powering off while in BIAS_OFF
    ASoC: tlv320dac33: Use dev_dbg in dac33_hard_power function
    ALSA: sound/pci/asihpi: Use kzalloc
    ALSA: hdmi - dont fail on extra nodes
    ALSA: intelhdmi - add id for the CougarPoint chipset
    ALSA: intelhdmi - user friendly codec name
    ALSA: intelhdmi - add dependency on SND_DYNAMIC_MINORS
    ALSA: asihpi: incorrect range check
    ALSA: asihpi: testing the wrong variable
    ALSA: es1688: add pedantic range checks
    ARM: McBSP: Add support for omap4 in McBSP driver
    ARM: McBSP: Fix request for irq in OMAP4
    OMAP: McBSP: Add 32-bit mode support
    ...

    Linus Torvalds
     

20 May, 2010

1 commit


14 May, 2010

1 commit

  • This patch implements the following:

    - interrupt initialization uses ioremap() instead of passing a virtual address
    via davinci_soc_info.

    - machine definitions directly point to cp_intc_init() or davinci_irq_init()

    - davinci_intc_type and davinci_intc_base now get initialized in controller
    specific init functions instead of davinci_common_init()

    - minor fix in davinci_irq_init() to use intc_irq_num instead of
    DAVINCI_N_AINTC_IRQ

    Signed-off-by: Cyril Chemparathy
    Signed-off-by: Kevin Hilman

    Cyril Chemparathy
     

07 May, 2010

1 commit

  • Currently each DaVinci board file #define's its own version of the EMIFA base
    addresses (all named DAVINCI_ASYNC_EMIF_*_BASE), which leads to duplication.
    Move these #define's to the SoC specific headers, changing their prefixes from
    'DAVINCI' to the 'DM355', 'DM644X', and 'DM646X' since all these base addresses
    are SoC specific...

    And while at it, rename DM646X_ASYNC_EMIF_DATA_CE0_BASE to
    DM646X_ASYNC_EMIF_CS2_SPACE_BASE in order to match the DM646x datasheet.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Kevin Hilman

    Sergei Shtylyov
     

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