Merge tag 'staging-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Oct 2016 21:50:51 +0000 (14:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Oct 2016 21:50:51 +0000 (14:50 -0700)
Pull staging and IIO updates from Greg KH:
 "Here is the big staging and IIO driver pull request for 4.9-rc1.

  There are a lot of patches in here, the majority due to the
  drivers/staging/greybus/ subsystem being merged in with full
  development history that went back a few years, in order to preserve
  the work that those developers did over time.

  Lots and lots of tiny cleanups happened in the tree as well, due to
  the Outreachy application process and lots of other developers showing
  up for the first time to clean code up.  Along with those changes, we
  deleted a wireless driver, and added a raspberrypi driver (currently
  marked broken), and lots of new iio drivers.

  Overall the tree still shrunk with more lines removed than added,
  about 10 thousand lines removed in total. Full details are in the very
  long shortlog below.

  All of this has been in the linux-next tree with no issues. There will
  be some merge problems with other subsystem trees, but those are all
  minor problems and shouldn't be hard to work out when they happen
  (MAINTAINERS and some lustre build problems with the IB tree)"

And furter from me asking for clarification about greybus:
 "Right now there is a phone from Motorola shipping with this code (a
  slightly older version, but the same tree), so even though Ara is not
  alive in the same form, the functionality is happening. We are working
  with the developers of that phone to merge the newer stuff in with
  their fork so they can use the upstream version in future versions of
  their phone product line.

  Toshiba has at least one chip shipping in their catalog that
  needs/uses this protocol over a Unipro link, and rumor has it that
  there might be more in the future.

  There are also other users of the greybus protocols, there is a talk
  next week at ELC that shows how it is being used across a network
  connection to control a device, and previous ELC talks have showed the
  protocol stack being used over USB to drive embedded Linux boards.
  I've also talked to some people who are starting to work to add a host
  controller driver to control arduinos as the greybus PHY protocols are
  very useful to control a serial/i2c/spio/whatever device across a
  random physical link, as it is a way to have a self-describing device
  be attached to a host without needing manual configuration.

  So yes, people are using it, and there is still the chance that it
  will show up in a phone/laptop/tablet/whatever from Google in the
  future as well, the tech isn't dead, even if the original large phone
  project happens to be"

* tag 'staging-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (3703 commits)
  Staging: fbtft: Fix bug in fbtft-core
  staging: rtl8188eu: fix double unlock error in rtw_resume_process()
  staging:r8188eu: remove GEN_MLME_EXT_HANDLER macro
  staging:r8188eu: remove GEN_DRV_CMD_HANDLER macro
  staging:r8188eu: remove GEN_EVT_CODE macro
  staging:r8188eu: remove GEN_CMD_CODE macro
  staging:r8188eu: remove pkt_newalloc member of the recv_buf structure
  staging:r8188eu: remove rtw_handle_dualmac declaration
  staging:r8188eu: remove (RGTRY|BSSID)_(OFT|SZ) macros
  staging:r8188eu: change rtl8188e_process_phy_info function argument type
  Staging: fsl-mc: Remove blank lines
  Staging: fsl-mc: Fix unaligned * in block comments
  Staging: comedi: Align the * in block comments
  Staging : ks7010 : Fix block comments warninig
  Staging: vt6655: Remove explicit NULL comparison using Coccinelle
  staging: rtl8188eu: core: rtw_xmit: Use macros instead of constants
  staging: rtl8188eu: core: rtw_xmit: Move constant of the right side
  staging: dgnc: Fix lines longer than 80 characters
  Staging: dgnc: constify attribute_group structures
  Staging: most: hdm-dim2: constify attribute_group structures
  ...

1  2 
.mailmap
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
drivers/iio/pressure/Kconfig
drivers/staging/fsl-mc/bus/fsl-mc-msi.c

diff --combined .mailmap
+++ b/.mailmap
@@@ -69,7 -69,6 +69,7 @@@ James Bottomley <jejb@mulgrave.(none)
  James Bottomley <jejb@titanic.il.steeleye.com>
  James E Wilson <wilson@specifix.com>
  James Ketrenos <jketreno@io.(none)>
 +Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
  <javier@osg.samsung.com> <javier.martinez@collabora.co.uk>
  Jean Tourrilhes <jt@hpl.hp.com>
  Jeff Garzik <jgarzik@pretzel.yyz.us>
@@@ -160,6 -159,7 +160,7 @@@ Valdis Kletnieks <Valdis.Kletnieks@vt.e
  Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
  Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
  Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
+ Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
  Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
  Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
  Takashi YOSHII <takashi.yoshii.zj@renesas.com>
@@@ -3,8 -3,8 +3,8 @@@ Device tree binding vendor prefix regis
  This isn't an exhaustive list, but you should add new prefixes to it before
  using them to avoid name-space collisions.
  
 -abilis        Abilis Systems
  abcn  Abracon Corporation
 +abilis        Abilis Systems
  active-semi   Active-Semi International Inc
  ad    Avionic Design GmbH
  adapteva      Adapteva, Inc.
@@@ -36,7 -36,6 +36,7 @@@ aspeed        ASPEED Technology Inc
  atlas Atlas Scientific LLC
  atmel Atmel Corporation
  auo   AU Optronics Corporation
 +auvidea Auvidea GmbH
  avago Avago Technologies
  avic  Shanghai AVIC Optoelectronics Co., Ltd.
  axis  Axis Communications AB
@@@ -76,6 -75,7 +76,7 @@@ digilent      Diglent, Inc
  dlg   Dialog Semiconductor
  dlink D-Link Corporation
  dmo   Data Modul AG
+ domintech     Domintech Co., Ltd.
  dptechnics    DPTechnics
  dragino       Dragino Technology Co., Limited
  ea    Embedded Artists AB
@@@ -86,7 -86,6 +87,7 @@@ elan  Elan Microelectronic Corp
  embest        Shenzhen Embest Technology Co., Ltd.
  emmicro       EM Microelectronic
  energymicro   Silicon Laboratories (formerly Energy Micro AS)
 +engicam       Engicam S.r.l.
  epcos EPCOS AG
  epfl  Ecole Polytechnique Fédérale de Lausanne
  epson Seiko Epson Corp.
@@@ -103,8 -102,8 +104,8 @@@ focaltech  FocalTech Systems Co.,Lt
  fsl   Freescale Semiconductor
  ge    General Electric Company
  geekbuying    GeekBuying
 -GEFanuc       GE Fanuc Intelligent Platforms Embedded Systems, Inc.
  gef   GE Fanuc Intelligent Platforms Embedded Systems, Inc.
 +GEFanuc       GE Fanuc Intelligent Platforms Embedded Systems, Inc.
  geniatech     Geniatech, Inc.
  giantplus     Giantplus Technology Co., Ltd.
  globalscale   Globalscale Technologies, Inc.
@@@ -128,6 -127,7 +129,6 @@@ i2se       I2SE Gmb
  ibm   International Business Machines (IBM)
  idt   Integrated Device Technologies, Inc.
  ifi   Ingenieurburo Fur Ic-Technologie (I/F/I)
 -iom   Iomega Corporation
  img   Imagination Technologies Ltd.
  infineon Infineon Technologies
  inforce       Inforce Computing
@@@ -136,14 -136,11 +137,14 @@@ innolux Innolux Corporatio
  intel Intel Corporation
  intercontrol  Inter Control Group
  invensense    InvenSense Inc.
 +iom   Iomega Corporation
  isee  ISEE 2007 S.L.
  isil  Intersil
  issi  Integrated Silicon Solutions Inc.
 +jdi   Japan Display Inc.
  jedec JEDEC Solid State Technology Association
  karo  Ka-Ro electronics GmbH
 +keithkoep     Keith & Koep GmbH
  keymile       Keymile GmbH
  kinetic Kinetic Technologies
  kosagi        Sutajio Ko-Usagi PTE Ltd.
@@@ -153,8 -150,8 +154,8 @@@ lantiq     Lantiq Semiconducto
  lenovo        Lenovo Group Ltd.
  lg    LG Corporation
  linux Linux-specific binding
 -lsi   LSI Corp. (LSI Logic)
  lltc  Linear Technology Corporation
 +lsi   LSI Corp. (LSI Logic)
  marvell       Marvell Technology Group Ltd.
  maxim Maxim Integrated Products
  meas  Measurement Specialties
@@@ -194,20 -191,20 +195,20 @@@ onnn    ON Semiconductor Corp
  ontat On Tat Industrial Company
  opencores     OpenCores.org
  option        Option NV
 +ORCL  Oracle Corporation
  ortustech     Ortus Technology Co., Ltd.
  ovti  OmniVision Technologies
 -ORCL  Oracle Corporation
  oxsemi        Oxford Semiconductor, Ltd.
  panasonic     Panasonic Corporation
  parade        Parade Technologies Inc.
  pericom       Pericom Technology Inc.
  phytec        PHYTEC Messtechnik GmbH
  picochip      Picochip Ltd
 +pixcir  PIXCIR MICROELECTRONICS Co., Ltd
  plathome      Plat'Home Co., Ltd.
  plda  PLDA
 -pixcir  PIXCIR MICROELECTRONICS Co., Ltd
 -pulsedlight   PulsedLight, Inc
  powervr       PowerVR (deprecated, use img)
 +pulsedlight   PulsedLight, Inc
  qca   Qualcomm Atheros, Inc.
  qcom  Qualcomm Technologies, Inc
  qemu  QEMU, a generic and open source machine emulator and virtualizer
@@@ -235,13 -232,12 +236,13 @@@ sgx     SGX Sensortec
  sharp Sharp Corporation
  si-en Si-En Technology Ltd.
  sigma Sigma Designs, Inc.
 +sii   Seiko Instruments, Inc.
  sil   Silicon Image
  silabs        Silicon Laboratories
 +silead        Silead Inc.
 +silergy       Silergy Corp.
  siliconmitus  Silicon Mitus, Inc.
  simtek
 -sii   Seiko Instruments, Inc.
 -silergy       Silergy Corp.
  sirf  SiRF Technology, Inc.
  sis   Silicon Integrated Systems Corp.
  sitronix      Sitronix Technology Corporation
@@@ -259,12 -255,9 +260,12 @@@ starry   Starry Electronic Technology (Sh
  startek       Startek
  ste   ST-Ericsson
  stericsson    ST-Ericsson
 +summit        Summit microelectronics
 +sunchip       Shenzhen Sunchip Technology Co., Ltd
 +SUNW  Sun Microsystems, Inc
 +swir  Sierra Wireless
  syna  Synaptics Inc.
  synology      Synology, Inc.
 -SUNW  Sun Microsystems, Inc
  tbs   TBS Technologies
  tcg   Trusted Computing Group
  tcl   Toby Churchill Ltd.
@@@ -273,18 -266,17 +274,18 @@@ technologic     Technologic System
  thine THine Electronics, Inc.
  ti    Texas Instruments
  tlm   Trusted Logic Mobility
 +topeet  Topeet
  toradex       Toradex AG
  toshiba       Toshiba Corporation
  toumaz        Toumaz
 -tplink        TP-LINK Technologies Co., Ltd.
  tpk   TPK U.S.A. LLC
 +tplink        TP-LINK Technologies Co., Ltd.
  tronfy        Tronfy
  tronsmart     Tronsmart
  truly Truly Semiconductors Limited
  tyan  Tyan Computer Corporation
 -upisemi       uPI Semiconductor Corp.
  uniwest       United Western Technologies Corp (UniWest)
 +upisemi       uPI Semiconductor Corp.
  urt   United Radiant Technology Corporation
  usi   Universal Scientific Industrial Co., Ltd.
  v3    V3 Semiconductor
@@@ -302,7 -294,7 +303,7 @@@ x-powers   X-Power
  xes   Extreme Engineering Solutions (X-ES)
  xillybus      Xillybus Ltd.
  xlnx  Xilinx
 -zyxel ZyXEL Communications Corp.
  zarlink       Zarlink Semiconductor
  zii   Zodiac Inflight Innovations
  zte   ZTE Corp.
 +zyxel ZyXEL Communications Corp.
diff --combined MAINTAINERS
@@@ -636,15 -636,6 +636,15 @@@ F:       drivers/tty/serial/altera_jtaguart.
  F:    include/linux/altera_uart.h
  F:    include/linux/altera_jtaguart.h
  
 +AMAZON ETHERNET DRIVERS
 +M:    Netanel Belgazal <netanel@annapurnalabs.com>
 +R:    Saeed Bishara <saeed@annapurnalabs.com>
 +R:    Zorik Machulsky <zorik@annapurnalabs.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    Documentation/networking/ena.txt
 +F:    drivers/net/ethernet/amazon/
 +
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
  M:    Tom Lendacky <thomas.lendacky@amd.com>
  M:    Gary Hook <gary.hook@amd.com>
@@@ -819,11 -810,11 +819,11 @@@ L:      alsa-devel@alsa-project.org (moderat
  S:    Maintained
  F:    sound/aoa/
  
- APEX EMBEDDED SYSTEMS STX104 DAC DRIVER
+ APEX EMBEDDED SYSTEMS STX104 IIO DRIVER
  M:    William Breathitt Gray <vilhelm.gray@gmail.com>
  L:    linux-iio@vger.kernel.org
  S:    Maintained
- F:    drivers/iio/dac/stx104.c
+ F:    drivers/iio/adc/stx104.c
  
  APM DRIVER
  M:    Jiri Kosina <jikos@kernel.org>
@@@ -922,17 -913,15 +922,17 @@@ F:      arch/arm/include/asm/floppy.
  
  ARM PMU PROFILING AND DEBUGGING
  M:    Will Deacon <will.deacon@arm.com>
 -R:    Mark Rutland <mark.rutland@arm.com>
 +M:    Mark Rutland <mark.rutland@arm.com>
  S:    Maintained
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  F:    arch/arm*/kernel/perf_*
  F:    arch/arm/oprofile/common.c
  F:    arch/arm*/kernel/hw_breakpoint.c
  F:    arch/arm*/include/asm/hw_breakpoint.h
  F:    arch/arm*/include/asm/perf_event.h
 -F:    drivers/perf/arm_pmu.c
 +F:    drivers/perf/*
  F:    include/linux/perf/arm_pmu.h
 +F:    Documentation/devicetree/bindings/arm/pmu.txt
  
  ARM PORT
  M:    Russell King <linux@armlinux.org.uk>
@@@ -1134,11 -1123,6 +1134,11 @@@ F:    drivers/hwtracing/coresight/
  F:    Documentation/trace/coresight.txt
  F:    Documentation/devicetree/bindings/arm/coresight.txt
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 +F:    tools/perf/arch/arm/util/pmu.c
 +F:    tools/perf/arch/arm/util/auxtrace.c
 +F:    tools/perf/arch/arm/util/cs-etm.c
 +F:    tools/perf/arch/arm/util/cs-etm.h
 +F:    tools/perf/util/cs-etm.h
  
  ARM/CORGI MACHINE SUPPORT
  M:    Richard Purdie <rpurdie@rpsys.net>
@@@ -1641,7 -1625,6 +1641,7 @@@ N:      rockchi
  ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
  M:    Kukjin Kim <kgene@kernel.org>
  M:    Krzysztof Kozlowski <krzk@kernel.org>
 +R:    Javier Martinez Canillas <javier@osg.samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  S:    Maintained
@@@ -1856,7 -1839,6 +1856,7 @@@ F:      arch/arm/mach-uniphier
  F:    arch/arm/mm/cache-uniphier.c
  F:    arch/arm64/boot/dts/socionext/
  F:    drivers/bus/uniphier-system-bus.c
 +F:    drivers/clk/uniphier/
  F:    drivers/i2c/busses/i2c-uniphier*
  F:    drivers/pinctrl/uniphier/
  F:    drivers/tty/serial/8250/8250_uniphier.c
@@@ -1993,6 -1975,13 +1993,13 @@@ S:    Maintaine
  F:    drivers/media/i2c/as3645a.c
  F:    include/media/i2c/as3645a.h
  
+ ASAHI KASEI AK8974 DRIVER
+ M:    Linus Walleij <linus.walleij@linaro.org>
+ L:    linux-iio@vger.kernel.org
+ W:    http://www.akm.com/
+ S:    Supported
+ F:    drivers/iio/magnetometer/ak8974.c
  ASC7621 HARDWARE MONITOR DRIVER
  M:    George Joseph <george.joseph@fairview5.com>
  L:    linux-hwmon@vger.kernel.org
@@@ -2131,6 -2120,11 +2138,6 @@@ M:     Ludovic Desroches <ludovic.desroches
  S:    Maintained
  F:    drivers/mmc/host/atmel-mci.c
  
 -ATMEL AT91 / AT32 SERIAL DRIVER
 -M:    Nicolas Ferre <nicolas.ferre@atmel.com>
 -S:    Supported
 -F:    drivers/tty/serial/atmel_serial.c
 -
  ATMEL AT91 SAMA5D2-Compatible Shutdown Controller
  M:    Nicolas Ferre <nicolas.ferre@atmel.com>
  S:    Supported
@@@ -2498,7 -2492,7 +2505,7 @@@ F:      include/net/bluetooth
  BONDING DRIVER
  M:    Jay Vosburgh <j.vosburgh@gmail.com>
  M:    Veaceslav Falico <vfalico@gmail.com>
 -M:    Andy Gospodarek <gospo@cumulusnetworks.com>
 +M:    Andy Gospodarek <andy@greyhouse.net>
  L:    netdev@vger.kernel.org
  W:    http://sourceforge.net/projects/bonding/
  S:    Supported
@@@ -2513,7 -2507,7 +2520,7 @@@ S:      Supporte
  F:    kernel/bpf/
  
  BROADCOM B44 10/100 ETHERNET DRIVER
 -M:    Gary Zambrano <zambrano@broadcom.com>
 +M:    Michael Chan <michael.chan@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/broadcom/b44.*
@@@ -3148,7 -3142,7 +3155,7 @@@ L:      cocci@systeme.lip6.fr (moderated fo
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild.git misc
  W:    http://coccinelle.lip6.fr/
  S:    Supported
 -F:    Documentation/coccinelle.txt
 +F:    Documentation/dev-tools/coccinelle.rst
  F:    scripts/coccinelle/
  F:    scripts/coccicheck
  
@@@ -3174,7 -3168,6 +3181,7 @@@ COMMON CLK FRAMEWOR
  M:    Michael Turquette <mturquette@baylibre.com>
  M:    Stephen Boyd <sboyd@codeaurora.org>
  L:    linux-clk@vger.kernel.org
 +Q:    http://patchwork.kernel.org/project/linux-clk/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/clock/
@@@ -3283,7 -3276,7 +3290,7 @@@ S:      Maintaine
  F:    drivers/net/wan/cosa*
  
  CPMAC ETHERNET DRIVER
 -M:    Florian Fainelli <florian@openwrt.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/ti/cpmac.c
@@@ -3295,7 -3288,6 +3302,7 @@@ L:      linux-pm@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
  T:    git git://git.linaro.org/people/vireshk/linux.git (For ARM Updates)
 +F:    Documentation/cpu-freq/
  F:    drivers/cpufreq/
  F:    include/linux/cpufreq.h
  
@@@ -3794,12 -3786,6 +3801,12 @@@ F:    include/linux/regulator/da9211.
  F:    include/sound/da[79]*.h
  F:    sound/soc/codecs/da[79]*.[ch]
  
 +DIAMOND SYSTEMS GPIO-MM GPIO DRIVER
 +M:    William Breathitt Gray <vilhelm.gray@gmail.com>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-gpio-mm.c
 +
  DIGI NEO AND CLASSIC PCI PRODUCTS
  M:    Lidza Louina <lidza.louina@gmail.com>
  M:    Mark Hounschell <markh@compro.net>
@@@ -4425,6 -4411,7 +4432,6 @@@ F:      Documentation/filesystems/ecryptfs.t
  F:    fs/ecryptfs/
  
  EDAC-CORE
 -M:    Doug Thompson <dougthompson@xmission.com>
  M:    Borislav Petkov <bp@alien8.de>
  M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -4437,12 -4424,14 +4444,12 @@@ F:   drivers/edac
  F:    include/linux/edac.h
  
  EDAC-AMD64
 -M:    Doug Thompson <dougthompson@xmission.com>
  M:    Borislav Petkov <bp@alien8.de>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/amd64_edac*
  
  EDAC-CALXEDA
 -M:    Doug Thompson <dougthompson@xmission.com>
  M:    Robert Richter <rric@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
@@@ -4458,21 -4447,17 +4465,21 @@@ F:   drivers/edac/octeon_edac
  
  EDAC-E752X
  M:    Mark Gross <mark.gross@intel.com>
 -M:    Doug Thompson <dougthompson@xmission.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/e752x_edac.c
  
  EDAC-E7XXX
 -M:    Doug Thompson <dougthompson@xmission.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/e7xxx_edac.c
  
 +EDAC-FSL_DDR
 +M:    York Sun <york.sun@nxp.com>
 +L:    linux-edac@vger.kernel.org
 +S:    Maintained
 +F:    drivers/edac/fsl_ddr_edac.*
 +
  EDAC-GHES
  M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
@@@ -4487,11 -4472,13 +4494,11 @@@ S:   Maintaine
  F:    drivers/edac/i82443bxgx_edac.c
  
  EDAC-I3000
 -M:    Jason Uhlenkott <juhlenko@akamai.com>
  L:    linux-edac@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  F:    drivers/edac/i3000_edac.c
  
  EDAC-I5000
 -M:    Doug Thompson <dougthompson@xmission.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/i5000_edac.c
@@@ -4603,13 -4590,6 +4610,13 @@@ M:    Peter Jones <pjones@redhat.com
  S:    Maintained
  F:    drivers/video/fbdev/efifb.c
  
 +EFI TEST DRIVER
 +L:    linux-efi@vger.kernel.org
 +M:    Ivan Hu <ivan.hu@canonical.com>
 +M:    Matt Fleming <matt@codeblueprint.co.uk>
 +S:    Maintained
 +F:    drivers/firmware/efi/test/
 +
  EFS FILESYSTEM
  W:    http://aeschi.ch.eu.org/efs/
  S:    Orphan
@@@ -4877,7 -4857,6 +4884,7 @@@ F:      tools/firewire
  
  FIRMWARE LOADER (request_firmware)
  M:    Ming Lei <ming.lei@canonical.com>
 +M:    Luis R. Rodriguez <mcgrof@kernel.org>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/firmware_class/
@@@ -5163,7 -5142,7 +5170,7 @@@ GCOV BASED KERNEL PROFILIN
  M:    Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
  S:    Maintained
  F:    kernel/gcov/
 -F:    Documentation/gcov.txt
 +F:    Documentation/dev-tools/gcov.rst
  
  GDT SCSI DISK ARRAY CONTROLLER DRIVER
  M:    Achim Leubner <achim_leubner@adaptec.com>
@@@ -5280,13 -5259,6 +5287,13 @@@ L:    linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/input/touchscreen/goodix.c
  
 +GPIO MOCKUP DRIVER
 +M:    Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
 +L:    linux-gpio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/gpio/gpio-mockup.c
 +F:    tools/testing/selftests/gpio/
 +
  GPIO SUBSYSTEM
  M:    Linus Walleij <linus.walleij@linaro.org>
  M:    Alexandre Courbot <gnurou@gmail.com>
@@@ -5318,6 -5290,77 +5325,77 @@@ L:    netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/aeroflex/
  
+ GREYBUS SUBSYSTEM
+ M:    Johan Hovold <johan@kernel.org>
+ M:    Alex Elder <elder@kernel.org>
+ M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+ S:    Maintained
+ F:    drivers/staging/greybus/
+ GREYBUS AUDIO PROTOCOLS DRIVERS
+ M:    Vaibhav Agarwal <vaibhav.sr@gmail.com>
+ M:    Mark Greer <mgreer@animalcreek.com>
+ S:    Maintained
+ F:    drivers/staging/greybus/audio_apbridgea.c
+ F:    drivers/staging/greybus/audio_apbridgea.h
+ F:    drivers/staging/greybus/audio_codec.c
+ F:    drivers/staging/greybus/audio_codec.h
+ F:    drivers/staging/greybus/audio_gb.c
+ F:    drivers/staging/greybus/audio_manager.c
+ F:    drivers/staging/greybus/audio_manager.h
+ F:    drivers/staging/greybus/audio_manager_module.c
+ F:    drivers/staging/greybus/audio_manager_private.h
+ F:    drivers/staging/greybus/audio_manager_sysfs.c
+ F:    drivers/staging/greybus/audio_module.c
+ F:    drivers/staging/greybus/audio_topology.c
+ GREYBUS PROTOCOLS DRIVERS
+ M:    Rui Miguel Silva <rmfrfs@gmail.com>
+ S:    Maintained
+ F:    drivers/staging/greybus/sdio.c
+ F:    drivers/staging/greybus/light.c
+ F:    drivers/staging/greybus/gpio.c
+ F:    drivers/staging/greybus/power_supply.c
+ F:    drivers/staging/greybus/spi.c
+ F:    drivers/staging/greybus/spilib.c
+ GREYBUS PROTOCOLS DRIVERS
+ M:    Bryan O'Donoghue <pure.logic@nexus-software.ie>
+ S:    Maintained
+ F:    drivers/staging/greybus/loopback.c
+ F:    drivers/staging/greybus/timesync.c
+ F:    drivers/staging/greybus/timesync_platform.c
+ GREYBUS PROTOCOLS DRIVERS
+ M:    Viresh Kumar <vireshk@kernel.org>
+ S:    Maintained
+ F:    drivers/staging/greybus/authentication.c
+ F:    drivers/staging/greybus/bootrom.c
+ F:    drivers/staging/greybus/firmware.h
+ F:    drivers/staging/greybus/fw-core.c
+ F:    drivers/staging/greybus/fw-download.c
+ F:    drivers/staging/greybus/fw-managament.c
+ F:    drivers/staging/greybus/greybus_authentication.h
+ F:    drivers/staging/greybus/greybus_firmware.h
+ F:    drivers/staging/greybus/hid.c
+ F:    drivers/staging/greybus/i2c.c
+ F:    drivers/staging/greybus/spi.c
+ F:    drivers/staging/greybus/spilib.c
+ F:    drivers/staging/greybus/spilib.h
+ GREYBUS PROTOCOLS DRIVERS
+ M:    David Lin <dtwlin@gmail.com>
+ S:    Maintained
+ F:    drivers/staging/greybus/uart.c
+ F:    drivers/staging/greybus/log.c
+ GREYBUS PLATFORM DRIVERS
+ M:    Vaibhav Hiremath <hvaibhav.linux@gmail.com>
+ S:    Maintained
+ F:    drivers/staging/greybus/arche-platform.c
+ F:    drivers/staging/greybus/arche-apb-ctrl.c
+ F:    drivers/staging/greybus/arche_platform.h
  GSPCA FINEPIX SUBDRIVER
  M:    Frank Zago <frank@zago.net>
  L:    linux-media@vger.kernel.org
@@@ -5618,9 -5661,10 +5696,9 @@@ F:     Documentation/devicetree/bindings/sc
  
  HOST AP DRIVER
  M:    Jouni Malinen <j@w1.fi>
 -L:    hostap@shmoo.com (subscribers-only)
  L:    linux-wireless@vger.kernel.org
 -W:    http://hostap.epitest.fi/
 -S:    Maintained
 +W:    http://w1.fi/hostap-driver.html
 +S:    Obsolete
  F:    drivers/net/wireless/intersil/hostap/
  
  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
@@@ -5657,7 -5701,7 +5735,7 @@@ M:      Sebastian Reichel <sre@kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi.git
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-hsi
 -F:    Documentation/hsi.txt
 +F:    Documentation/device-drivers/serial-interfaces.rst
  F:    drivers/hsi/
  F:    include/linux/hsi/
  F:    include/uapi/linux/hsi/
@@@ -6136,7 -6180,7 +6214,7 @@@ S:      Supporte
  F:    drivers/cpufreq/intel_pstate.c
  
  INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
 -M:    Maik Broemme <mbroemme@plusserver.de>
 +M:    Maik Broemme <mbroemme@libmpq.org>
  L:    linux-fbdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/fb/intelfb.txt
@@@ -6638,7 -6682,7 +6716,7 @@@ L:      kasan-dev@googlegroups.co
  S:    Maintained
  F:    arch/*/include/asm/kasan.h
  F:    arch/*/mm/kasan_init*
 -F:    Documentation/kasan.txt
 +F:    Documentation/dev-tools/kasan.rst
  F:    include/linux/kasan*.h
  F:    lib/test_kasan.c
  F:    mm/kasan/
@@@ -6854,7 -6898,7 +6932,7 @@@ KMEMCHEC
  M:    Vegard Nossum <vegardno@ifi.uio.no>
  M:    Pekka Enberg <penberg@kernel.org>
  S:    Maintained
 -F:    Documentation/kmemcheck.txt
 +F:    Documentation/dev-tools/kmemcheck.rst
  F:    arch/x86/include/asm/kmemcheck.h
  F:    arch/x86/mm/kmemcheck/
  F:    include/linux/kmemcheck.h
@@@ -6863,7 -6907,7 +6941,7 @@@ F:      mm/kmemcheck.
  KMEMLEAK
  M:    Catalin Marinas <catalin.marinas@arm.com>
  S:    Maintained
 -F:    Documentation/kmemleak.txt
 +F:    Documentation/dev-tools/kmemleak.rst
  F:    include/linux/kmemleak.h
  F:    mm/kmemleak.c
  F:    mm/kmemleak-test.c
@@@ -7476,8 -7520,9 +7554,8 @@@ F:      Documentation/hwmon/max2075
  F:    drivers/hwmon/max20751.c
  
  MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
 -M:    "Hans J. Koch" <hjk@hansjkoch.de>
  L:    linux-hwmon@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/hwmon/max6650
  F:    drivers/hwmon/max6650.c
  
@@@ -7548,6 -7593,12 +7626,12 @@@ L:    linux-iio@vger.kernel.or
  S:    Maintained
  F:    drivers/iio/potentiometer/mcp4531.c
  
+ MEASUREMENT COMPUTING CIO-DAC IIO DRIVER
+ M:    William Breathitt Gray <vilhelm.gray@gmail.com>
+ L:    linux-iio@vger.kernel.org
+ S:    Maintained
+ F:    drivers/iio/dac/cio-dac.c
  MEDIA DRIVERS FOR RENESAS - FCP
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
@@@ -7700,19 -7751,6 +7784,19 @@@ W:    http://www.mellanox.co
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
  F:    drivers/net/ethernet/mellanox/mlxsw/
  
 +MELLANOX MLXCPLD LED DRIVER
 +M:    Vadim Pasternak <vadimp@mellanox.com>
 +L:    linux-leds@vger.kernel.org
 +S:    Supported
 +F:    drivers/leds/leds-mlxcpld.c
 +F:    Documentation/leds/leds-mlxcpld.txt
 +
 +MELLANOX PLATFORM DRIVER
 +M:      Vadim Pasternak <vadimp@mellanox.com>
 +L:      platform-driver-x86@vger.kernel.org
 +S:      Supported
 +F:      arch/x86/platform/mellanox/mlx-platform.c
 +
  SOFT-ROCE DRIVER (rxe)
  M:    Moni Shoua <monis@mellanox.com>
  L:    linux-rdma@vger.kernel.org
@@@ -7798,12 -7836,6 +7882,12 @@@ T:    git git://git.monstr.eu/linux-2.6-mi
  S:    Supported
  F:    arch/microblaze/
  
 +MICROCHIP / ATMEL AT91 / AT32 SERIAL DRIVER
 +M:    Richard Genoud <richard.genoud@gmail.com>
 +S:    Maintained
 +F:    drivers/tty/serial/atmel_serial.c
 +F:    include/linux/atmel_serial.h
 +
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <yu.c.chen@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8212,15 -8244,6 +8296,15 @@@ S:    Maintaine
  W:    https://fedorahosted.org/dropwatch/
  F:    net/core/drop_monitor.c
  
 +NETWORKING [DSA]
 +M:    Andrew Lunn <andrew@lunn.ch>
 +M:    Vivien Didelot <vivien.didelot@savoirfairelinux.com>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
 +S:    Maintained
 +F:    net/dsa/
 +F:    include/net/dsa.h
 +F:    drivers/net/dsa/
 +
  NETWORKING [GENERAL]
  M:    "David S. Miller" <davem@davemloft.net>
  L:    netdev@vger.kernel.org
@@@ -8796,7 -8819,7 +8880,7 @@@ F:      drivers/oprofile
  F:    include/linux/oprofile.h
  
  ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
 -M:    Mark Fasheh <mfasheh@suse.com>
 +M:    Mark Fasheh <mfasheh@versity.com>
  M:    Joel Becker <jlbec@evilplan.org>
  L:    ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
  W:    http://ocfs2.wiki.kernel.org
@@@ -8908,7 -8931,6 +8992,7 @@@ S:      Supporte
  F:    Documentation/virtual/paravirt_ops.txt
  F:    arch/*/kernel/paravirt*
  F:    arch/*/include/asm/paravirt.h
 +F:    include/linux/hypervisor.h
  
  PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES
  M:    Tim Waugh <tim@cyberelk.net>
@@@ -9752,12 -9774,6 +9836,12 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    drivers/net/wireless/ath/ath10k/
  
 +QUALCOMM EMAC GIGABIT ETHERNET DRIVER
 +M:    Timur Tabi <timur@codeaurora.org>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/qualcomm/emac/
 +
  QUALCOMM HEXAGON ARCHITECTURE
  M:    Richard Kuo <rkuo@codeaurora.org>
  L:    linux-hexagon@vger.kernel.org
@@@ -9978,12 -9994,6 +10062,12 @@@ F:   drivers/rpmsg
  F:    Documentation/rpmsg.txt
  F:    include/linux/rpmsg.h
  
 +RENESAS CLOCK DRIVERS
 +M:    Geert Uytterhoeven <geert+renesas@glider.be>
 +L:    linux-renesas-soc@vger.kernel.org
 +S:    Supported
 +F:    drivers/clk/renesas/
 +
  RENESAS ETHERNET DRIVERS
  R:    Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
  L:    netdev@vger.kernel.org
@@@ -10019,7 -10029,6 +10103,7 @@@ F:   net/rfkill
  
  RHASHTABLE
  M:    Thomas Graf <tgraf@suug.ch>
 +M:    Herbert Xu <herbert@gondor.apana.org.au>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    lib/rhashtable.c
@@@ -10163,8 -10172,8 +10247,8 @@@ S:   Supporte
  F:    drivers/s390/cio/
  
  S390 DASD DRIVER
 -M:    Stefan Weinhuber <wein@de.ibm.com>
 -M:    Stefan Haberland <stefan.haberland@de.ibm.com>
 +M:    Stefan Haberland <sth@linux.vnet.ibm.com>
 +M:    Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
  S:    Supported
@@@ -10328,12 -10337,9 +10412,12 @@@ F: drivers/nfc/s3fwrn
  SAMSUNG SOC CLOCK DRIVERS
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  M:    Tomasz Figa <tomasz.figa@gmail.com>
 +M:    Chanwoo Choi <cw00.choi@samsung.com>
  S:    Supported
  L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  F:    drivers/clk/samsung/
 +F:    include/dt-bindings/clock/exynos*.h
 +F:    Documentation/devicetree/bindings/clock/exynos*.txt
  
  SAMSUNG SPI DRIVERS
  M:    Kukjin Kim <kgene@kernel.org>
@@@ -11192,7 -11198,6 +11276,7 @@@ F:   Documentation/spi
  F:    drivers/spi/
  F:    include/linux/spi/
  F:    include/uapi/linux/spi/
 +F:    tools/spi/
  
  SPIDERNET NETWORK DRIVER for CELL
  M:    Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
@@@ -11263,6 -11268,7 +11347,7 @@@ F:   drivers/staging/media/lirc
  STAGING - LUSTRE PARALLEL FILESYSTEM
  M:    Oleg Drokin <oleg.drokin@intel.com>
  M:    Andreas Dilger <andreas.dilger@intel.com>
+ M:    James Simmons <jsimmons@infradead.org>
  L:    lustre-devel@lists.lustre.org (moderated for non-subscribers)
  W:    http://wiki.lustre.org/
  S:    Maintained
@@@ -11289,13 -11295,6 +11374,6 @@@ M:  Florian Schilhabel <florian.c.schilh
  S:    Odd Fixes
  F:    drivers/staging/rtl8712/
  
- STAGING - REALTEK RTL8723U WIRELESS DRIVER
- M:    Larry Finger <Larry.Finger@lwfinger.net>
- M:    Jes Sorensen <Jes.Sorensen@redhat.com>
- L:    linux-wireless@vger.kernel.org
- S:    Maintained
- F:    drivers/staging/rtl8723au/
  STAGING - SILICON MOTION SM750 FRAME BUFFER DRIVER
  M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
  M:    Teddy Wang <teddy.wang@siliconmotion.com>
@@@ -11695,7 -11694,7 +11773,7 @@@ F:   Documentation/devicetree/bindings/th
  THERMAL/CPU_COOLING
  M:    Amit Daniel Kachhap <amit.kachhap@gmail.com>
  M:    Viresh Kumar <viresh.kumar@linaro.org>
 -M:    Javi Merino <javi.merino@arm.com>
 +M:    Javi Merino <javi.merino@kernel.org>
  L:    linux-pm@vger.kernel.org
  S:    Supported
  F:    Documentation/thermal/cpu-cooling-api.txt
@@@ -12262,7 -12261,7 +12340,7 @@@ S:   Maintaine
  F:    drivers/net/usb/lan78xx.*
  
  USB MASS STORAGE DRIVER
 -M:    Matthew Dharm <mdharm-usb@one-eyed-alien.net>
 +M:    Alan Stern <stern@rowland.harvard.edu>
  L:    linux-usb@vger.kernel.org
  L:    usb-storage@lists.one-eyed-alien.net
  S:    Maintained
@@@ -12346,7 -12345,6 +12424,7 @@@ F:   drivers/net/usb/rtl8150.
  USB SERIAL SUBSYSTEM
  M:    Johan Hovold <johan@kernel.org>
  L:    linux-usb@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git
  S:    Maintained
  F:    Documentation/usb/usb-serial.txt
  F:    drivers/usb/serial/
@@@ -12360,7 -12358,6 +12438,7 @@@ F:   drivers/net/usb/smsc75xx.
  
  USB SMSC95XX ETHERNET DRIVER
  M:    Steve Glendinning <steve.glendinning@shawell.net>
 +M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/usb/smsc95xx.*
@@@ -12467,6 -12464,7 +12545,6 @@@ F:   fs/hostfs
  F:    fs/hppfs/
  
  USERSPACE I/O (UIO)
 -M:    "Hans J. Koch" <hjk@hansjkoch.de>
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
@@@ -12648,7 -12646,7 +12726,7 @@@ F:   include/linux/if_*vlan.
  F:    net/8021q/
  
  VLYNQ BUS
 -M:    Florian Fainelli <florian@openwrt.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    openwrt-devel@lists.openwrt.org (subscribers-only)
  S:    Maintained
  F:    drivers/vlynq/vlynq.c
@@@ -8,6 -8,8 +8,6 @@@ menu "Pressure sensors
  config BMP280
        tristate "Bosch Sensortec BMP180/BMP280 pressure sensor I2C driver"
        depends on (I2C || SPI_MASTER)
 -      depends on !(BMP085_I2C=y || BMP085_I2C=m)
 -      depends on !(BMP085_SPI=y || BMP085_SPI=m)
        select REGMAP
        select BMP280_I2C if (I2C)
        select BMP280_SPI if (SPI_MASTER)
@@@ -185,4 -187,26 +185,26 @@@ config HP206
          This driver can also be built as a module. If so, the module will
          be called hp206c.
  
+ config ZPA2326
+       tristate "Murata ZPA2326 pressure sensor driver"
+       select IIO_BUFFER
+       select IIO_TRIGGERED_BUFFER
+       select REGMAP
+       select ZPA2326_I2C if I2C
+       select ZPA2326_SPI if SPI_MASTER
+       help
+         Say Y here to build support for the Murata ZPA2326 pressure and
+         temperature sensor.
+         To compile this driver as a module, choose M here: the module will
+         be called zpa2326.
+ config ZPA2326_I2C
+       tristate
+       select REGMAP_I2C
+ config ZPA2326_SPI
+       tristate
+       select REGMAP_SPI
  endmenu
index 0000000,bc1ad1a..3d46b1b
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,285 +1,284 @@@
 -              msi_desc = alloc_msi_entry(dev);
+ /*
+  * Freescale Management Complex (MC) bus driver MSI support
+  *
+  * Copyright (C) 2015 Freescale Semiconductor, Inc.
+  * Author: German Rivera <German.Rivera@freescale.com>
+  *
+  * This file is licensed under the terms of the GNU General Public
+  * License version 2. This program is licensed "as is" without any
+  * warranty of any kind, whether express or implied.
+  */
+ #include <linux/of_device.h>
+ #include <linux/of_address.h>
+ #include <linux/irqchip/arm-gic-v3.h>
+ #include <linux/of_irq.h>
+ #include <linux/irq.h>
+ #include <linux/irqdomain.h>
+ #include <linux/msi.h>
+ #include "../include/mc-bus.h"
+ /*
+  * Generate a unique ID identifying the interrupt (only used within the MSI
+  * irqdomain.  Combine the icid with the interrupt index.
+  */
+ static irq_hw_number_t fsl_mc_domain_calc_hwirq(struct fsl_mc_device *dev,
+                                               struct msi_desc *desc)
+ {
+       /*
+        * Make the base hwirq value for ICID*10000 so it is readable
+        * as a decimal value in /proc/interrupts.
+        */
+       return (irq_hw_number_t)(desc->fsl_mc.msi_index + (dev->icid * 10000));
+ }
+ static void fsl_mc_msi_set_desc(msi_alloc_info_t *arg,
+                               struct msi_desc *desc)
+ {
+       arg->desc = desc;
+       arg->hwirq = fsl_mc_domain_calc_hwirq(to_fsl_mc_device(desc->dev),
+                                             desc);
+ }
+ static void fsl_mc_msi_update_dom_ops(struct msi_domain_info *info)
+ {
+       struct msi_domain_ops *ops = info->ops;
+       if (WARN_ON(!ops))
+               return;
+       /*
+        * set_desc should not be set by the caller
+        */
+       if (!ops->set_desc)
+               ops->set_desc = fsl_mc_msi_set_desc;
+ }
+ static void __fsl_mc_msi_write_msg(struct fsl_mc_device *mc_bus_dev,
+                                  struct fsl_mc_device_irq *mc_dev_irq)
+ {
+       int error;
+       struct fsl_mc_device *owner_mc_dev = mc_dev_irq->mc_dev;
+       struct msi_desc *msi_desc = mc_dev_irq->msi_desc;
+       struct dprc_irq_cfg irq_cfg;
+       /*
+        * msi_desc->msg.address is 0x0 when this function is invoked in
+        * the free_irq() code path. In this case, for the MC, we don't
+        * really need to "unprogram" the MSI, so we just return.
+        */
+       if (msi_desc->msg.address_lo == 0x0 && msi_desc->msg.address_hi == 0x0)
+               return;
+       if (WARN_ON(!owner_mc_dev))
+               return;
+       irq_cfg.paddr = ((u64)msi_desc->msg.address_hi << 32) |
+                       msi_desc->msg.address_lo;
+       irq_cfg.val = msi_desc->msg.data;
+       irq_cfg.irq_num = msi_desc->irq;
+       if (owner_mc_dev == mc_bus_dev) {
+               /*
+                * IRQ is for the mc_bus_dev's DPRC itself
+                */
+               error = dprc_set_irq(mc_bus_dev->mc_io,
+                                    MC_CMD_FLAG_INTR_DIS | MC_CMD_FLAG_PRI,
+                                    mc_bus_dev->mc_handle,
+                                    mc_dev_irq->dev_irq_index,
+                                    &irq_cfg);
+               if (error < 0) {
+                       dev_err(&owner_mc_dev->dev,
+                               "dprc_set_irq() failed: %d\n", error);
+               }
+       } else {
+               /*
+                * IRQ is for for a child device of mc_bus_dev
+                */
+               error = dprc_set_obj_irq(mc_bus_dev->mc_io,
+                                        MC_CMD_FLAG_INTR_DIS | MC_CMD_FLAG_PRI,
+                                        mc_bus_dev->mc_handle,
+                                        owner_mc_dev->obj_desc.type,
+                                        owner_mc_dev->obj_desc.id,
+                                        mc_dev_irq->dev_irq_index,
+                                        &irq_cfg);
+               if (error < 0) {
+                       dev_err(&owner_mc_dev->dev,
+                               "dprc_obj_set_irq() failed: %d\n", error);
+               }
+       }
+ }
+ /*
+  * NOTE: This function is invoked with interrupts disabled
+  */
+ static void fsl_mc_msi_write_msg(struct irq_data *irq_data,
+                                struct msi_msg *msg)
+ {
+       struct msi_desc *msi_desc = irq_data_get_msi_desc(irq_data);
+       struct fsl_mc_device *mc_bus_dev = to_fsl_mc_device(msi_desc->dev);
+       struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_bus_dev);
+       struct fsl_mc_device_irq *mc_dev_irq =
+               &mc_bus->irq_resources[msi_desc->fsl_mc.msi_index];
+       WARN_ON(mc_dev_irq->msi_desc != msi_desc);
+       msi_desc->msg = *msg;
+       /*
+        * Program the MSI (paddr, value) pair in the device:
+        */
+       __fsl_mc_msi_write_msg(mc_bus_dev, mc_dev_irq);
+ }
+ static void fsl_mc_msi_update_chip_ops(struct msi_domain_info *info)
+ {
+       struct irq_chip *chip = info->chip;
+       if (WARN_ON((!chip)))
+               return;
+       /*
+        * irq_write_msi_msg should not be set by the caller
+        */
+       if (!chip->irq_write_msi_msg)
+               chip->irq_write_msi_msg = fsl_mc_msi_write_msg;
+ }
+ /**
+  * fsl_mc_msi_create_irq_domain - Create a fsl-mc MSI interrupt domain
+  * @np:               Optional device-tree node of the interrupt controller
+  * @info:     MSI domain info
+  * @parent:   Parent irq domain
+  *
+  * Updates the domain and chip ops and creates a fsl-mc MSI
+  * interrupt domain.
+  *
+  * Returns:
+  * A domain pointer or NULL in case of failure.
+  */
+ struct irq_domain *fsl_mc_msi_create_irq_domain(struct fwnode_handle *fwnode,
+                                               struct msi_domain_info *info,
+                                               struct irq_domain *parent)
+ {
+       struct irq_domain *domain;
+       if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
+               fsl_mc_msi_update_dom_ops(info);
+       if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
+               fsl_mc_msi_update_chip_ops(info);
+       domain = msi_create_irq_domain(fwnode, info, parent);
+       if (domain)
+               domain->bus_token = DOMAIN_BUS_FSL_MC_MSI;
+       return domain;
+ }
+ int fsl_mc_find_msi_domain(struct device *mc_platform_dev,
+                          struct irq_domain **mc_msi_domain)
+ {
+       struct irq_domain *msi_domain;
+       struct device_node *mc_of_node = mc_platform_dev->of_node;
+       msi_domain = of_msi_get_domain(mc_platform_dev, mc_of_node,
+                                      DOMAIN_BUS_FSL_MC_MSI);
+       if (!msi_domain) {
+               pr_err("Unable to find fsl-mc MSI domain for %s\n",
+                      mc_of_node->full_name);
+               return -ENOENT;
+       }
+       *mc_msi_domain = msi_domain;
+       return 0;
+ }
+ static void fsl_mc_msi_free_descs(struct device *dev)
+ {
+       struct msi_desc *desc, *tmp;
+       list_for_each_entry_safe(desc, tmp, dev_to_msi_list(dev), list) {
+               list_del(&desc->list);
+               free_msi_entry(desc);
+       }
+ }
+ static int fsl_mc_msi_alloc_descs(struct device *dev, unsigned int irq_count)
+ {
+       unsigned int i;
+       int error;
+       struct msi_desc *msi_desc;
+       for (i = 0; i < irq_count; i++) {
 -              msi_desc->nvec_used = 1;
++              msi_desc = alloc_msi_entry(dev, 1, NULL);
+               if (!msi_desc) {
+                       dev_err(dev, "Failed to allocate msi entry\n");
+                       error = -ENOMEM;
+                       goto cleanup_msi_descs;
+               }
+               msi_desc->fsl_mc.msi_index = i;
+               INIT_LIST_HEAD(&msi_desc->list);
+               list_add_tail(&msi_desc->list, dev_to_msi_list(dev));
+       }
+       return 0;
+ cleanup_msi_descs:
+       fsl_mc_msi_free_descs(dev);
+       return error;
+ }
+ int fsl_mc_msi_domain_alloc_irqs(struct device *dev,
+                                unsigned int irq_count)
+ {
+       struct irq_domain *msi_domain;
+       int error;
+       if (WARN_ON(!list_empty(dev_to_msi_list(dev))))
+               return -EINVAL;
+       error = fsl_mc_msi_alloc_descs(dev, irq_count);
+       if (error < 0)
+               return error;
+       msi_domain = dev_get_msi_domain(dev);
+       if (WARN_ON(!msi_domain)) {
+               error = -EINVAL;
+               goto cleanup_msi_descs;
+       }
+       /*
+        * NOTE: Calling this function will trigger the invocation of the
+        * its_fsl_mc_msi_prepare() callback
+        */
+       error = msi_domain_alloc_irqs(msi_domain, dev, irq_count);
+       if (error) {
+               dev_err(dev, "Failed to allocate IRQs\n");
+               goto cleanup_msi_descs;
+       }
+       return 0;
+ cleanup_msi_descs:
+       fsl_mc_msi_free_descs(dev);
+       return error;
+ }
+ void fsl_mc_msi_domain_free_irqs(struct device *dev)
+ {
+       struct irq_domain *msi_domain;
+       msi_domain = dev_get_msi_domain(dev);
+       if (WARN_ON(!msi_domain))
+               return;
+       msi_domain_free_irqs(msi_domain, dev);
+       if (WARN_ON(list_empty(dev_to_msi_list(dev))))
+               return;
+       fsl_mc_msi_free_descs(dev);
+ }