qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] d307c2: i2c: Allow I2C devices to NAK start e


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] d307c2: i2c: Allow I2C devices to NAK start events
Date: Mon, 09 Jan 2017 05:00:04 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: d307c28ca9dba7a0677035c9244198b05164c873
      
https://github.com/qemu/qemu/commit/d307c28ca9dba7a0677035c9244198b05164c873
  Author: Corey Minyard <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/pxa2xx.c
    M hw/arm/tosa.c
    M hw/arm/z2.c
    M hw/audio/wm8750.c
    M hw/display/ssd0303.c
    M hw/gpio/max7310.c
    M hw/i2c/core.c
    M hw/i2c/i2c-ddc.c
    M hw/i2c/smbus.c
    M hw/input/lm832x.c
    M hw/misc/tmp105.c
    M hw/timer/ds1338.c
    M hw/timer/twl92230.c
    M include/hw/i2c/i2c.h

  Log Message:
  -----------
  i2c: Allow I2C devices to NAK start events

Add a return value to the event handler.  Some I2C devices will
NAK if they have no data, so allow them to do this.  This required
the following changes:

Go through all the event handlers and change them to return int
and return 0.

Modify i2c_start_transfer to terminate the transaction on a NAK.

Modify smbus handing to not assert if a NAK occurs on a second
operation, and terminate the transaction and return -1 instead.

Add some information on semantics to I2CSlaveClass.

Signed-off-by: Corey Minyard <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 5b982482c1c1f6170361b9c80dce60b5222242da
      
https://github.com/qemu/qemu/commit/5b982482c1c1f6170361b9c80dce60b5222242da
  Author: xiaoqiang zhao <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/char/exynos4210_uart.c

  Log Message:
  -----------
  hw/char: QOM'ify exynos4210_uart.c

Drop the old Sysbus init and use instance_init and
DeviceClass::realize instead

Signed-off-by: xiaoqiang zhao <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 9ac4ef77c1b43d1c105975a3d469551886e65c35
      
https://github.com/qemu/qemu/commit/9ac4ef77c1b43d1c105975a3d469551886e65c35
  Author: Peter Maydell <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c

  Log Message:
  -----------
  hw/arm/virt: Merge VirtBoardInfo and VirtMachineState

One of the purposes of VirtBoardInfo was to hold various
bits of state about the board. Now we have MachineState
and the subclass VirtMachineState to do this. Fold the
VirtBoardInfo into VirtMachineState rather than having
some flags in one struct and some in another with no
useful way to get between them.

In the process we drop the code for looking up the
memory map and irq map from the CPU model, because
in practice we always use the same maps in all cases.

For easier code review, this change removes the
VirtBoardInfo type but leaves all the variables which
used to be VirtBoardInfo* and are now VirtMachineState*
with their now-confusing 'vbi' names.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>


  Commit: c8ef2bda05af317819427c2fde7ebf061129c142
      
https://github.com/qemu/qemu/commit/c8ef2bda05af317819427c2fde7ebf061129c142
  Author: Peter Maydell <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c

  Log Message:
  -----------
  hw/arm/virt: Rename 'vbi' variables to 'vms'

Rename all the variables which used to be VirtBoardInfo*
and are now VirtMachineState* so their names are in line
with the type being used.

Apart from the removal of the line 'VirtMachineState *vbi = vms;'
this commit is purely a search-and-replace of 'vbi' with 'vms'.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>


  Commit: 156bc9a5ea877e8252a07f35543a24157d4ab822
      
https://github.com/qemu/qemu/commit/156bc9a5ea877e8252a07f35543a24157d4ab822
  Author: Peter Maydell <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c

  Log Message:
  -----------
  hw/arm/virt: Don't incorrectly claim architectural timer to be edge-triggered

The architectural timers in ARM CPUs all have level triggered interrupts
(unless you're using KVM on a host kernel before 4.4, which misimplemented
them as edge-triggered).

We were incorrectly describing them in the device tree as edge triggered.
This can cause problems for guest kernels in 4.8 before rc6:
 * pre-4.8 kernels ignore the values in the DT
 * 4.8 before rc6 write the DT values to the GIC config registers
 * newer than rc6 ignore the DT and insist that the timer interrupts
   are level triggered regardless

Fix the DT so we're describing reality. For backwards-compatibility
purposes, only do this for the virt-2.9 machine onward.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>


  Commit: 330afe059909d8dc11d70d6a059408d430689d3f
      
https://github.com/qemu/qemu/commit/330afe059909d8dc11d70d6a059408d430689d3f
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  hw/arm/virt-acpi-build: add all missing cpu_to_le's

Signed-off-by: Andrew Jones <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 6e2ed65f4a523afa740f61ffe887a5fd62ef2644
      
https://github.com/qemu/qemu/commit/6e2ed65f4a523afa740f61ffe887a5fd62ef2644
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h
    M include/hw/arm/virt-acpi-build.h

  Log Message:
  -----------
  hw/arm/virt-acpi-build: name GIC CPU Interface Structure appropriately

Also move the enabled flag definition from mach-virt code to
acpi common.

Signed-off-by: Andrew Jones <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: aca4bbf4a36fcaff6b7dbe45e2fc5bcb6b2dc4ab
      
https://github.com/qemu/qemu/commit/aca4bbf4a36fcaff6b7dbe45e2fc5bcb6b2dc4ab
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  hw/arm/virt-acpi-build: gtdt: improve flag naming

Also remove all unused flags.

Signed-off-by: Andrew Jones <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 8c92c6a43e3d0aabe5bb81e5fb709d2791e9c4c4
      
https://github.com/qemu/qemu/commit/8c92c6a43e3d0aabe5bb81e5fb709d2791e9c4c4
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  hw/arm/virt-acpi-build: fadt: improve flag naming

Signed-off-by: Andrew Jones <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 0127937b203a7fa87da34bf096faa23e7793cec6
      
https://github.com/qemu/qemu/commit/0127937b203a7fa87da34bf096faa23e7793cec6
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c

  Log Message:
  -----------
  hw/arm/virt: parameter passing cleanups

Some simple cleanups made possible by "hw/arm/virt: Merge
VirtBoardInfo and VirtMachineState"

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 055a7f2b0aefdd6b75bf2866171c4fe11f9a9e00
      
https://github.com/qemu/qemu/commit/055a7f2b0aefdd6b75bf2866171c4fe11f9a9e00
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c

  Log Message:
  -----------
  hw/arm/virt: use VirtMachineState.gic_version

machvirt_init may need to probe for the gic version. If so, then
make sure the result is written to VirtMachineState. With the
state up to date, use it instead of a local variable. This is a
cleanup that prepares for VirtMachineState to be passed to functions
even outside hw/arm/virt.c

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 054f4dc961490b81139304106e4312c356303a6f
      
https://github.com/qemu/qemu/commit/054f4dc961490b81139304106e4312c356303a6f
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c
    M include/hw/arm/virt-acpi-build.h

  Log Message:
  -----------
  hw/arm/virt: eliminate struct VirtGuestInfoState

Instead of allocating a new struct just for VirtGuestInfo and the
machine_done Notifier, place them inside VirtMachineState. This
is the mach-virt equivalent of "pc: Eliminate struct
PcGuestInfoState"

Suggested-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: d05fdab46d9c5a33654de1bd54fca375347341ce
      
https://github.com/qemu/qemu/commit/d05fdab46d9c5a33654de1bd54fca375347341ce
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M MAINTAINERS
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    R include/hw/arm/virt-acpi-build.h
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt: remove include/hw/arm/virt-acpi-build.h

include/hw/arm/virt-acpi-build.h is only used for VirtGuestInfo,
which doesn't even necessarily have to be ACPI specific. Move
VirtGuestInfo to include/hw/arm/virt.h, allowing us to remove
include/hw/arm/virt-acpi-build.h, and to prepare for even more
code motion.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: a72d4363875ed086acedab657d34f6fc82a7d8aa
      
https://github.com/qemu/qemu/commit/a72d4363875ed086acedab657d34f6fc82a7d8aa
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt.c
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt: move VirtMachineState/Class to virt.h

In preparation to share more Virt machine state than just guest-info
with other mach-virt source files, move the State and Class structures
to virt.h

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: e9a8e474fbdedca787623f0c55f7b6e9cb97bdfc
      
https://github.com/qemu/qemu/commit/e9a8e474fbdedca787623f0c55f7b6e9cb97bdfc
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt: pass VirtMachineState instead of VirtGuestInfo

Only two functions take VirtGuestInfo parameters. Now that guest-info
is part of VirtMachineState, and VirtMachineState is defined in the
virt header, pass that instead.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: da4f09a7dce6878b6fd27a0fb70d08701551df17
      
https://github.com/qemu/qemu/commit/da4f09a7dce6878b6fd27a0fb70d08701551df17
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt-acpi-build: remove redundant members from VirtGuestInfo

Now that we pass VirtMachineState, and guest-info is just part of
that state, we can remove all the redundant members and access
the VirtMachineState directly.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 4dad9e7478ec9614f7c1cbe2ff5c5f5101acd6e2
      
https://github.com/qemu/qemu/commit/4dad9e7478ec9614f7c1cbe2ff5c5f5101acd6e2
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  hw/arm/virt-acpi-build: don't save VirtGuestInfo on AcpiBuildState

We can get to VirtMachineState without the need for saving a pointer
on AcpiBuildState. This is the mach-virt equivalent to "acpi: Don't save
PcGuestInfo on AcpiBuildState"

Signed-off-by: Andrew Jones <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: af1f60a4022664b0169f9d10a3f7d732e8571617
      
https://github.com/qemu/qemu/commit/af1f60a4022664b0169f9d10a3f7d732e8571617
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M include/hw/arm/virt.h

  Log Message:
  -----------
  hw/arm/virt: remove VirtGuestInfo

by moving VirtGuestInfo.fw_cfg to VirtMachineState. This is the
mach-virt equivalent of "pc: Move PcGuestInfo.fw_cfg to
PCMachineState" and "pc: Eliminate PcGuestInfo struct" combined.

Signed-off-by: Andrew Jones <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 8dd845d3c434cf2c799e0f86a1b53b33057b61ab
      
https://github.com/qemu/qemu/commit/8dd845d3c434cf2c799e0f86a1b53b33057b61ab
  Author: Andrew Jones <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  hw/arm/virt-acpi-build: Don't incorrectly claim architectural timer to be 
edge-triggered

This is the ACPI equivalent to "hw/arm/virt: Don't incorrectly claim
architectural timer to be edge-triggered" which fixes the DT for
machine types 2.9 and later.

Signed-off-by: Andrew Jones <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 24cb2e0d57cea0cbc163f23fa47d530b35425a21
      
https://github.com/qemu/qemu/commit/24cb2e0d57cea0cbc163f23fa47d530b35425a21
  Author: Jean-Christophe Dubois <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/block/m25p80.c

  Log Message:
  -----------
  m25p80: don't let rogue SPI controllers cause buffer overruns

In normal operation we should never attempt to put more
data into the data[] array than it can hold. However if the
SPI controller connected to us misbehaves then it can send
us a sequence of commands that attempt this. Since the
controller might be in the guest (if the hardware does SPI
via bit-banging), catch the possible overrun conditions and
reset the flash internal state, logging them as guest errors.

Signed-off-by: Jean-Christophe Dubois <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
[PMM: rewrote commit message to be more exact about when
 this can happen]
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 556899fc1965d82f5c4a3ba6a0be3b1193e2c4b2
      
https://github.com/qemu/qemu/commit/556899fc1965d82f5c4a3ba6a0be3b1193e2c4b2
  Author: Jean-Christophe Dubois <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M hw/ssi/imx_spi.c

  Log Message:
  -----------
  hw/ssi/imx_spi.c: Remove MSGDATA register support

>From the documentation it is not clear what this SPI register is about.

Moreover, neither linux driver nor xvisor driver are using this SPI register.

For now we just remove it and issue a log on register write access.

Signed-off-by: Jean-Christophe Dubois <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 8305f9bdf7ca41ee5cabe018fb37b73472c1162d
      
https://github.com/qemu/qemu/commit/8305f9bdf7ca41ee5cabe018fb37b73472c1162d
  Author: Peter Maydell <address@hidden>
  Date:   2017-01-09 (Mon, 09 Jan 2017)

  Changed paths:
    M MAINTAINERS
    M hw/arm/pxa2xx.c
    M hw/arm/tosa.c
    M hw/arm/virt-acpi-build.c
    M hw/arm/virt.c
    M hw/arm/z2.c
    M hw/audio/wm8750.c
    M hw/block/m25p80.c
    M hw/char/exynos4210_uart.c
    M hw/display/ssd0303.c
    M hw/gpio/max7310.c
    M hw/i2c/core.c
    M hw/i2c/i2c-ddc.c
    M hw/i2c/smbus.c
    M hw/input/lm832x.c
    M hw/misc/tmp105.c
    M hw/ssi/imx_spi.c
    M hw/timer/ds1338.c
    M hw/timer/twl92230.c
    M include/hw/acpi/acpi-defs.h
    R include/hw/arm/virt-acpi-build.h
    M include/hw/arm/virt.h
    M include/hw/i2c/i2c.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20170109' 
into staging

target-arm queue:
 * i2c: Allow I2C devices to NAK start events
 * hw/char: QOM'ify exynos4210_uart.c
 * clean up and refactor virt-acpi-build.c
 * virt-acpi-build: Don't incorrectly claim architectural timer
   to be edge-triggered
 * m25p80: Don't let rogue SPI controllers cause buffer overruns
 * imx_spi: Remove broken MSGDATA register support

# gpg: Signature made Mon 09 Jan 2017 11:52:49 GMT
# gpg:                using RSA key 0x3C2525ED14360CDE
# gpg: Good signature from "Peter Maydell <address@hidden>"
# gpg:                 aka "Peter Maydell <address@hidden>"
# gpg:                 aka "Peter Maydell <address@hidden>"
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20170109: (21 commits)
  hw/ssi/imx_spi.c: Remove MSGDATA register support
  m25p80: don't let rogue SPI controllers cause buffer overruns
  hw/arm/virt-acpi-build: Don't incorrectly claim architectural timer to be 
edge-triggered
  hw/arm/virt: remove VirtGuestInfo
  hw/arm/virt-acpi-build: don't save VirtGuestInfo on AcpiBuildState
  hw/arm/virt-acpi-build: remove redundant members from VirtGuestInfo
  hw/arm/virt: pass VirtMachineState instead of VirtGuestInfo
  hw/arm/virt: move VirtMachineState/Class to virt.h
  hw/arm/virt: remove include/hw/arm/virt-acpi-build.h
  hw/arm/virt: eliminate struct VirtGuestInfoState
  hw/arm/virt: use VirtMachineState.gic_version
  hw/arm/virt: parameter passing cleanups
  hw/arm/virt-acpi-build: fadt: improve flag naming
  hw/arm/virt-acpi-build: gtdt: improve flag naming
  hw/arm/virt-acpi-build: name GIC CPU Interface Structure appropriately
  hw/arm/virt-acpi-build: add all missing cpu_to_le's
  hw/arm/virt: Don't incorrectly claim architectural timer to be edge-triggered
  hw/arm/virt: Rename 'vbi' variables to 'vms'
  hw/arm/virt: Merge VirtBoardInfo and VirtMachineState
  hw/char: QOM'ify exynos4210_uart.c
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/ffe22bf51065...8305f9bdf7ca

reply via email to

[Prev in Thread] Current Thread [Next in Thread]