Fixed typo in a variable name in dpc.h file.
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fixed typo in a macro name in card.c and device.h files.
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fixed a typo in mac.c file.
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The device must not flip to page 1 while in interrupt lock causing
loss of connection or dead lock.
Protect from changes to page by adding lock where user can
change the page in CARDvSetRSPINF, vnt_configure and set_channel
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fixed a space coding style issue found by checkpatch.pl in rxtx.c.
Signed-off-by: Piotr Kubus <p.t.kubus@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This patch fixes the following checkpatch.pl warnings:
ERROR: do not use C99 // comments
+//
ERROR: do not use C99 // comments
+// For memory mapped IO
ERROR: do not use C99 // comments
+//
ERROR: do not use C99 // comments
+#endif // __UPC_H__
ERROR: do not use C99 // comments
+ // set period of power up before TBTT
ERROR: do not use C99 // comments
+ // set AID
ERROR: do not use C99 // comments
+ // set ATIM Window
ERROR: do not use C99 // comments
+ // Set AutoSleep
ERROR: do not use C99 // comments
+ // Set HWUTSF
ERROR: do not use C99 // comments
+ // clear always listen beacon
ERROR: do not use C99 // comments
+ // first time set listen next beacon
ERROR: do not use C99 // comments
+ // always listen beacon
ERROR: do not use C99 // comments
+ // enable power saving hw function
ERROR: do not use C99 // comments
+ // disable power saving hw function
ERROR: do not use C99 // comments
+ //clear AutoSleep
ERROR: do not use C99 // comments
+ //clear HWUTSF
ERROR: do not use C99 // comments
+ // set always listen beacon
Signed-off-by: Nicholas Parkanyi <n.parkanyi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This fixes following checkpatch.pl error:
ERROR: space prohibited before that ',' (ctx:WxW)
Signed-off-by: Krzysztof Adamski <k@japko.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Removed the unused function MACvGetShortRetryLimit, which also
fixed the following sparse warning:
drivers/staging/vt6655/mac.c:162:6: warning:
symbol 'MACvGetShortRetryLimit' was not declared. Should it be static?
Signed-off-by: Fred Chou <fred.chou.nd@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This patch fixes checkpatch.pl warning:
WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet
addresses are __aligned(2)
current_net_addr and permanent_net_addr members of vnt_private alignment
is changed to at last 16 bits so that ether_addr_copy can be safely used
on them.
buf->data is of type ieee80211_cts which is already properly aligned.
Signed-off-by: Krzysztof Adamski <k@japko.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Both struct ieee80211_rts and struct ieee80211_hdr defined in
linux/ieee80211.h are declared as __aligned(2) so it is safe to use
ether_addr_copy() instead of memcpy().
Signed-off-by: Krzysztof Adamski <k@japko.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fix sparse warning:
drivers/staging/vt6655/device_main.c:1672:5: warning: symbol 'vnt_init' was not declared. Should it be static?
Signed-off-by: Sören Brinkmann <soeren.brinkmann@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- Three patches fixing IRQ handling for the DLN2
- Null pointer handling for grgpio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUtEIkAAoJEEEQszewGV1zQdoQAIc/f55GeYEHaB5o/H944uDP
3QW7UEwTWgtnjJNE415u6NzM9zLh1EMhpuYx8fcW54gZe/VNRmilxcKP9qREbDs/
J4WNDVa0Z44XijZMlUcVwGIZPtg1pP2ShwmRxL3RPqnxG8uk/KVQFWbAGt4w5FHG
uKNq21ZyQ5bKyQOJgh+i9ArgJz89MQz47nCn3wIwFlcx+1vZc33Td7g7txAB5Toy
mAj4t5Up6daLKff3IA+DqfYObeRrTwQTFPOYK3PpjpAokAZiILilj3nuGmH76VAI
KyqHoMk7cgpfcZLNpIofGGxAzbdbpnXXshZ4lFI1LgA56GfQhJt6MgNVGnTv6nA+
A8U7Qhip+F49Wreengh1OT5V9l1PDgjfdRUunZXfrQb3VNwQPqtSzPt/OTyRZRAj
nc/lIGSJx9lXaZBqGSjDADiC8NdDHerDovboWVttThPkh3skqj7ogDmvu5k41ZVk
DYmTHK2o3d2AmjHwMYX8ZQ1FnDOpVBpemkOluB5LsicnD7/2K2J63C9qn52lRF4T
DAPel6YhTDDqt4zGjGsLSlgb8f1DF7xY2iMik18t1pFyH+N/NnffIAx3KqahG0+E
nhgFFT6SbuEY/yt1G0zb/jKLIfbntzqNElqYnsRpd2HYU4I+vjNhxLsWxh1/bGth
lRdCNadVhJSxvZkS8X6c
=yUgH
-----END PGP SIGNATURE-----
Merge tag 'gpio-v3.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull gpio fixes from Linus Walleij:
"Here are some GPIO fixes, mainly affecting the DLN2 IRQ handling.
Nothing special about them, just fixes:
- Three patches fixing IRQ handling for the DLN2
- Null pointer handling for grgpio"
* tag 'gpio-v3.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
gpio: dln2: use bus_sync_unlock instead of scheduling work
gpio: grgpio: Avoid potential NULL pointer dereference
gpio: dln2: Fix gpio output value in dln2_gpio_direction_output()
gpio: dln2: fix issue when an IRQ is unmasked then enabled
- sdhci-pci|acpi: Support some new IDs
- sdhci: Fix sleep from atomic context
- sdhci-pxav3: Prevent hang during ->probe()
- sdhci: Disable re-tuning for HS400
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUs8eNAAoJEP4mhCVzWIwpwhoP/jVL+6bIHBXwv7w4Qim96Iww
CjARBVaOGP4W1E7YrX6Ny5CGjkT0AtkEa6exuiWxRWw+fj120kPQ3sbQw4DMdQED
l4Xb0yuXGP1n9xyCQi4TJVBj2rnm9PuXDjBpFYU8L450Cv7d/vC0t9yzzZIf8sdg
OFAjfyueynZIc03ShLSfsuDu60EoBLyFrjI/smE9mUdQDfTDzUthtlSMMdavyshg
F92TVZNIC3G3dHYtuKqsrzzgHcMrSypcZpGOgUxsMmW8qNlhnzLWHhZXB+GlJbse
XKUgYVKWC3MyiZwTnaoO2LnZG7F+hdgsm0lUOLWsNcnWelJjdDNZkNNCoA7zefZh
NjeXMM0v2TUej8AJpcV/7dUwJ18CiETWfbsrIy+quJp6yG/8V5WX2w5FpzR0Zzyn
72g2RqPNdWLfCd5En4KBroJQ/hKC9YCdy6RTjlKLW4dAu+moLekBgu6AaUs7OdyL
c5FtG1GKp1T2XgBNA3Kw0bAIOYFDEDnMNY6d/seDwHZNUJp/1x3DweHKkZ7LKdX9
SgDo/vBtSjdZPZgbP0v9mZAp/0RDXCQL2VCPnMjI4MSSqKWF31iEoCG4BTCodZQ+
dHMChsQV0NpXrjgityiblSaYZiBrGJJiZBpyAjgxLuRUJN9EFg3bLPy4ybf7C5WK
mzXszP/rlbOG114dY4I4
=hTJI
-----END PGP SIGNATURE-----
Merge tag 'mmc-v3.19-3' of git://git.linaro.org/people/ulf.hansson/mmc
Pull MMC fixes from Ulf Hansson:
"MMC host:
- sdhci-pci|acpi: Support some new IDs
- sdhci: Fix sleep from atomic context
- sdhci-pxav3: Prevent hang during ->probe()
- sdhci: Disable re-tuning for HS400"
* tag 'mmc-v3.19-3' of git://git.linaro.org/people/ulf.hansson/mmc:
mmc: sdhci-pci: Add support for Intel SPT
mmc: sdhci-acpi: Add ACPI HID INT344D
mmc: sdhci: Fix sleep in atomic after inserting SD card
mmc: sdhci-pxav3: do the mbus window configuration after enabling clocks
mmc: sdhci: Disable re-tuning for HS400
mmc: sdhci: Simplify use of tuning timer
mmc: sdhci: Add out_unlock to sdhci_execute_tuning
mmc: sdhci: Tuning should not change max_blk_count
Pull scsi target fixes from Nicholas Bellinger:
"Mostly minor fixes this time, including:
- Add missing virtio-scsi -> TCM attribute conversion in vhost-scsi.
- Fix persistent reservations write exclusive handling to allow
readers for all registered I_T nexuses.
- Drop arbitrary maximum I/O size limit in order to process I/Os
larger than 4 MB, required for initiators that don't honor block
limits EVPD.
- Drop the now left-over fabric_max_sectors attribute"
* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
iscsi-target: Fix typos in enum cmd_flags_table
MAINTAINERS: Add entry for iSER target driver
target: Allow Write Exclusive non-reservation holders to READ
target: Drop left-over fabric_max_sectors attribute
target: Drop arbitrary maximum I/O size limit
Documentation/target: Update fabric_ops to latest code
vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion
When batching up address ranges for TLB invalidation, we check tlb->end
!= 0 to indicate that some pages have actually been unmapped.
As of commit f045bbb9fa ("mmu_gather: fix over-eager
tlb_flush_mmu_free() calling"), we use the same check for freeing these
pages in order to avoid a performance regression where we call
free_pages_and_swap_cache even when no pages are actually queued up.
Unfortunately, the range could have been reset (tlb->end = 0) by
tlb_end_vma, which has been shown to cause memory leaks on arm64.
Furthermore, investigation into these leaks revealed that the fullmm
case on task exit no longer invalidates the TLB, by virtue of tlb->end
== 0 (in 3.18, need_flush would have been set).
This patch resolves the problem by reverting commit f045bbb9fa, using
instead tlb->local.nr as the predicate for page freeing in
tlb_flush_mmu_free and ensuring that tlb->end is initialised to a
non-zero value in the fullmm case.
Tested-by: Mark Langsdorf <mlangsdo@redhat.com>
Tested-by: Dave Hansen <dave@sr71.net>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
I made a mistake when rebasing Andrey Gusakov's patch adding MLB+ clock to the
R8A7791 device tree, inserting <&hp_clk> into the "clocks" property of the
MSTP8 node at a wrong position, so that the input clocks for MLB+ and IPMMU-SGX
got swapped...
Fixes: 7408d3061d ("ARM: shmobile: r8a7791: add MLB+ clock")
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Add a device node for the System Controller, with subnodes that
represent the hardware power area hierarchy.
Hook up all devices to their respective PM domains.
Add a minimal device node for the Coresight-ETM hardware block, and hook
it up to the D4 PM domain, so the R-Mobile System Controller driver can
keep the domain powered, until the new Coresight code handles runtime
PM.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
The Renesas R-Mobile System Controller provides a.o. power management
support, following the generic PM domain bindings in
Documentation/devicetree/bindings/power/power_domain.txt.
For now this supports the R-Mobile A1 (r8a7740) only, but it should be
sufficiently generic to handle other members of the SH-Mobile/R-Mobile
family in the future.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Renesas sound driver needs #sound-dai-cells settings, but, this usage
is a little bit confusable. It came from ALSA SoC historical reasons.
The sound DAI naming method is different between Single/Multi DAI in
the ALSA framework, and it is used for sound card matching.
And this #sound-dai-cells has relationship to it.
Current SoC dtsi has #sound-dai-cells = <1> as default settings
(= it is assuming that board/platform has multi DAI), and
board/platform side needs to overwrite it if board/platform was single
DAI. This style is more confusable for users.
This patch removes SoC side default settings, and force to set it by
board/platform side.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Renesas sound driver needs #sound-dai-cells settings, but, this usage
is a little bit confusable. It came from ALSA SoC historical reasons.
The sound DAI naming method is different between Single/Multi DAI in
the ALSA framework, and it is used for sound card matching.
And this #sound-dai-cells has relationship to it.
Current SoC dtsi has #sound-dai-cells = <1> as default settings
(= it is assuming that board/platform has multi DAI), and
board/platform side needs to overwrite it if board/platform was single
DAI. This style is more confusable for users.
This patch removes SoC side default settings, and force to set it by
board/platform side.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
The "renesas,rcar_sound" compatible property value was never processed
nor documented.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
The "renesas,rcar_sound" compatible property value was never processed
nor documented.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
- add PMU nodes for BG2Q and BG2CD
- add PPI CPU masks for TWD timer interrupts
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUr6KJAAoJEN2kpao7fSL4PI8P/1j5EQoIEFl+C53M3sY9EF/6
f+Qy38SCrv6d47YyqkFfSedAG7V78kK/VnPAmuVTrAXiejGW0aAl1Z4NIyuiHuAP
uWwrOdqBQaooZzMeARG48VC3QgObz3yt6bb/q1D/AN/vkWfsZRqpRe9YGsT+3t7n
BWRXTsOLXJ9ovwALcxrWGx4G5KS1DtR8iFm8tyzxkc3g4CMqfvPKe4n0MXcQyPW/
+JsdQrkmCXHuPoRHqf76DtdcdfDltl52CFyHZPHJK2LsQCtIOEG9P2zfDRNDPmFR
uI0Duha568uQGTSWlP6mnD6FueHVKFEwLTYYu33ELEurSmeCej+fLlEE5+d20jTV
K+mfkhyBy5RAT4NQQ33TK4vXNUaAPCmXW4wh/xdTO7j37MvkBZSbude1hgFGdA+5
rAj2Hsw7sdrT+i1DjHCLoDxdAeQEARywq/17E704OZ4aWjyL3AVBAs8pdQjjCF9d
MA4d8TZ9lvWu2nD4iAfpxYLbH0yhymqLfbvZRBkURjM5tjMGeC79Wk0ZjK9OXOwi
xm78UuMkW95sFJka3HzSUTTv0igx119tgctofCjM62Wc5kUaMCrtTuhoibm2tAt/
UtFMv8v47wy6TfdOrjbgKLxnRel34ECHtwXZXR3SkvJ2SLZWNe7BB+zoQzhWLOpe
pQVDDCH95BzIVCxs6jIU
=YfUK
-----END PGP SIGNATURE-----
Merge tag 'berlin-dt-for-3.20-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/dt
Merge "ARM: berlin: DT changes for v3.20 (round 1)" from Sebastian Hesselbarth:
Berlin DT changes for v3.20 (round 1)
- add PMU nodes for BG2Q and BG2CD
- add PPI CPU masks for TWD timer interrupts
* tag 'berlin-dt-for-3.20-1' of git://git.infradead.org/users/hesselba/linux-berlin:
ARM: dts: berlin: add PPI cpu mask to twd timer interrupts
ARM: dts: berlin: add pmu node for BG2Q and BG2CD
Signed-off-by: Olof Johansson <olof@lixom.net>
A number of arches (EXYNOS/IMX/TEGRA) are separated out into finer grained
definitions whether it be sub ARCH or SOC definitions. The device tree blobs
should only be built if the specific option is enabled that supports that
device or it might be that there's an expectation that the device is supported
when in actual fact it's not. This ensures only the relevant bits are built.
Also standardised the line break between the arch/soc definitions and the
dtbs to be on separate lines for better consistency as per feedback.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
[olof: Fixed stray \ in one of the IMX rules]
Signed-off-by: Olof Johansson <olof@lixom.net>
Replace the hardcoded addresses for accessing the SYSC PM domain
registers by register offsets, relative to the SYSC base address stored
in struct rmobile_pm_domain.
In the future, the SYSC base address will come from DT.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Use the just introduced genpd attach/detach callbacks to register the
devices' module clocks, instead of doing it directly, to make it
DT-proof.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
915 doens't support hotplug at all, so we shouldn't try to pretend
otherwise in the SDVO code.
Note: i915 does have hotplug support in hw, we simply never enabled it
in i915.ko: There's only one hpd bit for all outputs, so not worth the
bother to add this special case for this rather old platform.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
[danvet: Clarify that only i915.ko doesn't support hpd on i915g.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
If we determine that a specific port is eDP, don't register the HDMI
connector/encoder for it. The reason being that we want to disable
HPD interrupts for eDP ports when the display is off, but the presence
of the extra HDMI connector would demand the HPD interrupt to remain
enabled all the time.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The dev_priv->display.hpd_irq_setup hook is optional, so we can move the
I915_HAS_HOTPLUG() check out of i915_hpd_irq_setup() and only set up the
hook when hotplug support is present.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
intel_hpd_irq_handler() walks the passed in hpd[] array assuming it
contains HPD_NUM_PINS elements. Currently that's not true as we don't
specify an explicit size for the arrays when initializing them. Avoid
the out of bounds accesses by specifying the size for the arrays.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This reverts commit 5a0afd4b78.
Although timeout mode allows higher residency it impact badly on performance.
I believe while we don't have a way to balance between performance and
power savings at runtime I believe we have to revert and prioritize
performance that was impacted a lot.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88103
Cc: Deepak S <deepak.s@linux.intel.com>
Cc: Wendy Wang <wendy.wang@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Found by reading the HIZ_CHICKEN documentation.
Improves performance in a HiZ microbenchmark by around 50%.
Improves performance in OglZBuffer by around 18%.
Thanks to Chris Wilson for helping me figure out where to put this.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
A previous commit enabled execlists by default:
commit 27401d126b ("drm/i915/bdw: Enable execlists by default where supported")
This allowed routine testing of execlists which exposed a regression when
resuming from suspend. The cause was tracked down the to recent changes to the
ring init sequence:
commit 35a57ffbb1 ("drm/i915: Only init engines once")
During a suspend/resume cycle the hardware Context Status Buffer write pointer
is reset. However since the recent changes to the init sequence the software CSB
read pointer is no longer reset. This means that context status events are not
handled correctly and new contexts are not written to the ELSP, resulting in an
apparent GPU hang.
Pending further changes to the ring init code, just move the
ring->next_context_status_buffer initialization into gen8_init_common_ring to
fix this regression.
v2: Moved init into gen8_init_common_ring rather than context_enable after
feedback from Daniel Vetter. Updated commit msg to reflect this and also cite
commits related to the regression. Fixed bz link to correct bug.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88096
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dave Gordon <david.s.gordon@intel.com>
Signed-off-by: Thomas Daniel <thomas.daniel@intel.com>
Reviewed-by: Dave Gordon <david.s.gordon@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The userspace-requested plane coordinates are now always available via
plane->state.base (and the i915-adjusted values are stored in
plane->state), so we no longer use the coordinate fields in intel_plane
and can drop them.
Also, note that the error case for pageflip calls update_plane() to
program the values from plane->state; it's simpler to just call
intel_plane_restore() which does the same thing.
v2: Replace manual update_plane() with intel_plane_restore() in pageflip
error handler.
Reviewed-by(v1): Bob Paauwe <bob.j.paauwe@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Switch plane handling to use the atomic plane helpers. This means that
rather than provide our own implementations of .update_plane() and
.disable_plane(), we expose the lower-level check/prepare/commit/cleanup
entrypoints and let the DRM core implement update/disable for us using
those entrypoints.
The other main change that falls out of this patch is that our
drm_plane's will now always have a valid plane->state that contains the
relevant plane state (initial state is allocated at plane creation).
The base drm_plane_state pointed to holds the requested source/dest
coordinates, and the subclassed intel_plane_state holds the adjusted
values that our driver actually uses.
v2:
- Renamed file from intel_atomic.c to intel_atomic_plane.c (Daniel)
- Fix a copy/paste comment mistake (Bob)
v3:
- Use prepare/cleanup functions that we've already factored out
- Use newly refactored pre_commit/commit/post_commit to avoid sleeping
during vblank evasion
v4:
- Rebase to latest di-nightly requires adding an 'old_state' parameter
to atomic_update;
v5:
- Must have botched a rebase somewhere and lost some work. Restore
state 'dirty' flag to let begin/end code know which planes to
run the pre_commit/post_commit hooks for. This would have actually
shown up as broken in the next commit rather than this one.
v6:
- Squash kerneldoc patch into this one.
- Previous patches have now already taken care of most of the
infrastructure that used to be in this patch. All we're adding here
now is some thin wrappers.
v7:
- Check return of intel_plane_duplicate_state() for allocation
failures.
v8:
- Drop unused drm_plane_state -> intel_plane_state cast. (Ander)
- Squash in actual transition to plane helpers. Significant
refactoring earlier in the patchset has made the combined
prep+transition much easier to swallow than it was in earlier
iterations. (Ander)
v9:
- s/track_fbs/disabled_planes/ in the atomic crtc flags. The only fb's
we need to update frontbuffer tracking for are those on a plane about
to be disabled (since the atomic helpers never call prepare_fb() when
disabling a plane), so the new name more accurately describes what
we're actually tracking.
Testcase: igt/kms_plane
Testcase: igt/kms_universal_plane
Testcase: igt/kms_cursor_crc
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The automatic CPU power state machine for B15 CPUs does not work
reliably as-is. This patch implements a manual sequence in software to
replace it.
This was tested successfully with over 10,000 hotplug cycles of
something like this:
echo 0 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu1/online
whereas the existing sequence often locks up after a few hundred cycles.
Fixes: 62639c2f53 ("ARM: brcmstb: reintroduce SMP support")
Acked-by: Gregory Fong <gregory.0xf0@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
A few of the sprite-related function names in i915 are very similar
(e.g., intel_enable_planes() vs intel_crtc_enable_planes()) and don't
make it clear whether they only operate on sprite planes, or whether
they also apply to all universal plane types. Rename a few functions to
be more consistent with our function naming for primary/cursor planes or
to clarify that they apply specifically to sprite planes:
- s/intel_disable_planes/intel_disable_sprite_planes/
- s/intel_enable_planes/intel_enable_sprite_planes/
Also, drop the sprite-specific intel_destroy_plane() and just use
the type-agnostic intel_plane_destroy() function. The extra 'disable'
call that intel_destroy_plane() did is unnecessary since the plane will
already be disabled due to framebuffer destruction by the point it gets
called.
v2: Earlier consolidation patches have reduced the number of functions
we need to rename here.
v3: Also rename intel_plane_funcs vtable to intel_sprite_plane_funcs
for consistency with primary/cursor. (Ander)
v4: Convert comment for intel_plane_destroy() to kerneldoc now that it
is no longer a static function. (Ander)
Reviewed-by(v1): Bob Paauwe <bob.j.paauwe@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Move the vblank evasion up from the low-level, hw-specific
update_plane() handlers to the general plane commit operation.
Everything inside commit should now be non-sleeping, so this brings us
closer to how vblank evasion will behave once we move over to atomic.
v2:
- Restore lost intel_crtc->active check on vblank evasion
v3:
- Replace assert_pipe_enabled() in intel_disable_primary_hw_plane()
with an intel_crtc->active test; it turns out assert_pipe_enabled()
grabs some mutexes and can sleep, which we can't do with interrupts
disabled.
v4:
- Equivalent to v2; v3 change is now squashed into an earlier patch
of the series. (Ander).
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Once we integrate our work into the atomic pipeline, plane commit
operations will need to happen with interrupts disabled, due to vblank
evasion. Our commit functions today include sleepable work, so those
operations need to be split out and run either before or after the
atomic register programming.
The solution here calculates which of those operations will need to be
performed during the 'check' phase and sets flags in an intel_crtc
sub-struct. New intel_begin_crtc_commit() and
intel_finish_crtc_commit() functions are added before and after the
actual register programming; these will eventually be called from the
atomic plane helper's .atomic_begin() and .atomic_end() entrypoints.
v2: Fix broken sprite code split
v3: Make the pre/post commit work crtc-based to match how we eventually
want this to be called from the atomic plane helpers.
v4: Some platforms that haven't had their watermark code reworked were
waiting for vblank, then calling update_sprite_watermarks in their
platform-specific disable code. These also need to be flagged out
of the critical section.
v5: Sprite plane test for primary show/hide should just set the flag to
wait for pending flips, not actually perform the wait. (Ander)
v6:
- Rebase onto latest di-nightly; picks up an important runtime PM fix.
- Handle 'wait_for_flips' flag in intel_begin_crtc_commit(). (Ander)
- Use wait_for_flips flag for primary plane update rather than
performing the wait in the check routine.
- Added kerneldoc to pre_disable/post_enable functions that are no
longer static. (Ander)
- Replace assert_pipe_enabled() in intel_disable_primary_hw_plane()
with an intel_crtc->active test; it turns out assert_pipe_enabled()
grabs some mutexes and can sleep, which we can't do with interrupts
disabled.
v7:
- Check for fb != NULL when deciding whether the sprite plane hides the
primary plane during a sprite update. (PRTS)
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
- fix the lock bit locations of the rk3066 plls
- fix rk3288 core divider values to the ones actually
specified by the soc vendor
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABCAAGBQJUoIcfAAoJEPOmecmc0R2BQwIH/Ra/9ghVxHV302ArX0XuiJfX
VXrVPm2MLuFT7+2jT6Q0Cqyp+O8BbHM76Rg9Am8DWEzfjBdL0GzpUM5lzKzMio3c
yUotCGXKDOMynR0GskiGELFEe6wkpvsJ4k0iYUmtw6NDGleK1dTsTjC1fwdBcsNi
lczEkj1TMV8U5QAcB5J7YTcJfes6YlptZB1pizp1ufovjIwWuWfhGbgR9yqe/y/o
Wm293J1fDMRzHE+vYQbErfWiSIF+koBCgPNyWyXd/F72/LGarB4LLMlowAUpyXy0
JRi7HBpmymkUgWukTMwxJ1viOPbOJFlDaJFBGk6uIeESpuYMiXs4JN5wF9/XRWs=
=9mvW
-----END PGP SIGNATURE-----
Merge tag 'v3.19-rockhip-clkfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-fixes
- two currently unused clocks that need to stay enabled
- fix the lock bit locations of the rk3066 plls
- fix rk3288 core divider values to the ones actually
specified by the soc vendor
If CONFIG_BUG=n __WARN_printf won't be defined leading to the below
build failure. The double underscores should have told us to steer clear
of it anyway.
drivers/gpu/drm/i915/intel_display.c: In function ‘assert_pll’:
drivers/gpu/drm/i915/intel_display.c:1027:2: error: implicit declaration
of function ‘__WARN_printf’ [-Werror=implicit-function-declaration]
I915_STATE_WARN(cur_state != state,
Use WARN(1, ...) instead. It handles CONFIG_BUG=n gracefully and, with
the constant condition, a sane compiler should reduce it to
__WARN_printf.
This is a regression introduced by
commit e2c719b75c
Author: Rob Clark <robdclark@gmail.com>
Date: Mon Dec 15 13:56:32 2014 -0500
drm/i915: tame the chattermouth (v2)
Reported-by: Jim Davis <jim.epost@gmail.com>
Reference: http://mid.gmane.org/CA+r1ZhgHTi7bS2irhtuSUs9aO=Br1dumN8=oAOeaMJDZ_ZhwBw@mail.gmail.com
Cc: Rob Clark <robdclark@gmail.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
* Multiplatform support for r8a73a4
* No TWD setup in C for Multiplatform on r8a7779
* Fix is_e2 warning in generic R-Car Gen2 SoC setup code
* Add missing Add missing legacy INTCA0 clock for irqpin module on sh73a0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUoJWMAAoJENfPZGlqN0++3BEP/1D3z/xOJKYBRjEhFQp54UmM
Ya/ZoWtCFsMBP2+elIgOvEIDBOALtJ8d3xjk8DEN3nkMMM7/SBplzyk9OF3zucIw
1d9ZC19rErhZK1DFDy2xOJlzxAYrYvt7Khjbq6njqpARlaLJdLuRJ8b7wm4q2Az0
g3f+b9o5UCBW+28fWjyqG52rvDuqaEVi/marJKJX/3Uhu5tG7ning+NoRGXgBLw+
y3rkMCX7allLo/tZdRcVNdqdoyb06vomFml/uuuPRvLWcUq564keBRn0HfPNeXeu
UNuN/lcgBibPd7golBxubIw2Aa7p6U2/+8Je2z6EI88jcm1UEXgpFo3kIBR2P8Bt
dpErgBEoyVFcPIBk7kOupKUHSYtrP5HUB4pROBy7OXfbDuliKzxTexlsRRN1aOnn
ve1MPt7q/vFk8xNzSHf06CZKzhY4XXID775JkEGwN7XPUOw1YidZu3SWl9Htjp04
xZ7S/4sbVg9/ttfDZfjN44cJwy56Tb6Z+/5hgT3MCZHhoY8dg3pTqHKGcv4bSjPq
pVvuxumLK7TS4GlVcDrUVZnBknrNPU5Eok3fiXAxNlhhjO6HPPn1vVPxx+6wdHLG
M8hfFVx8GePhnRENqZ43GXw0sScawRrhyNXN9bWSpiaHcNRWvBpdyzvwu7bxU9l9
ZjgpkCI/JuLFvKgfHoiv
=K9IZ
-----END PGP SIGNATURE-----
Merge tag 'renesas-soc-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc
Merge "Renesas ARM Based SoC Updates for v3.20" from Simon Horman:
* Multiplatform support for r8a73a4
* No TWD setup in C for Multiplatform on r8a7779
* Fix is_e2 warning in generic R-Car Gen2 SoC setup code
* Add missing Add missing legacy INTCA0 clock for irqpin module on sh73a0
* tag 'renesas-soc-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: r8a73a4: Multiplatform support
ARM: shmobile: r8a7779: No TWD setup in C for Multiplatform
ARM: shmobile: Fix is_e2 warning
ARM: shmobile: sh73a0 legacy/reference: Add missing INTCA0 clock for irqpin module
Signed-off-by: Olof Johansson <olof@lixom.net>
* Remove legacy r8a7790 SoC and its Lager board code
* Update serial port names on koelsch and lager boards
* Remove console bootargs parameter from lager DT
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUoJPgAAoJENfPZGlqN0++93IP/0i1inMrQGlJqMaPAiAPRgqF
lzUDTKv6Ob2hIwIO4I7lK9VPCPaSDyW+pw3uRlDxocVARWZ8YRxqrPRRbKrjr3xB
4XImqabis00ojZyJawkPqov66FTOYpJVNqCATci4ug2+Frcil4Ltc4UVZqU48SsS
uEcSnwTii6qckDyn0RBfCo/HGt0rHDd0Fmesv7euEZYb6uooxUEEU+MZCBD9UDk/
c7Z77zCN4E3cyqhpuHAu5GAKzXBpxfHNkyXwThZTYGI56gflAzpMs5wsUaoB5hd3
D0SYkb/+la5kUoP+TO5g65XuusN0x7Dmu7JDC0FYOByf4GXIEPOUaRpHJe79aqjT
y17pjOyuU5OLfhYL1EQg/EO2exL7vwLk4aflqQHH3ka+LTXt+fJfqkXKWAVGgLHS
4H7b6FaBWkU8cRLQ1gZGoIyNiASYutsuPR6Rnz8on0TXlXoNrk6GrgPScPsPhbTE
WPURrjDlU5C8BozCFOOoWS54SM6mBv1PsxMZmht3MAw/zid1xm3HHmRv+kx1d1mo
MyYaaWI+7UdjtdWCHOq0gubYempoZ0RZfs8BiX/3yJl5p7CPAwEAyfVkWZK0tdj5
8q6YntFO26zLdJYZE6Fvr5+kjfn3k/4g86+p/zEHA8n7XDeSR0P14VugcjUh6kSz
qMOKMGguiIvVUDk2vwR7
=prxC
-----END PGP SIGNATURE-----
Merge tag 'renesas-lager-board-removal-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup
Merge "Renesas ARM Based SoC Lager Board Removal for v3.20" from Simon Horman:
"The serial port rename changes are not strictly related to lager board
removal from a feature point of view. But the lager portion of this change
depends on board removal to avoid a regression of booting using that code,
And thus it seems to make sense to put here. And it seems best to put the
koelsch and lager serial port rename changes in the same branch.
Likewise the removal of bootargs from lager DT depends on removing lager
board code to avoid a regression when using it and thus I have included
it in the same branch."
* Remove legacy r8a7790 SoC and its Lager board code
* Update serial port names on koelsch and lager boards
* Remove console bootargs parameter from lager DT
* tag 'renesas-lager-board-removal-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: lager dts: Drop console= bootargs parameter
ARM: shmobile: koelsch: Rename SCIF[01] serial ports to ttySC[01]
ARM: shmobile: lager: Rename SCIFA[01] serial ports to ttySC[01]
ARM: shmobile: r8a7790: Remove legacy code
ARM: shmobile: lager: Remove legacy board support
ARM: shmobile: lager-reference: DTS-only board support
Signed-off-by: Olof Johansson <olof@lixom.net>
* Use clock-indices instead of deprecated renesas,clock-indices
* Prepare for r8a73a4 multiplatform support
* Increase clock coverage for r8a779[014]
* Correct r8a7779 clock usage
* Correct LAN9220 VDDVARIO voltage on ape6evm
* Correct QSPI SPI-Flash mode of lager and koelsch
* Correct flash partition label and size on koelsch
* Correct mask for GIC PPI interrupts on r8a779[14]
* Correct BSC bus range on ape6evm-reference
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUoJ1RAAoJENfPZGlqN0+++ugP/iUvSPavdjaBw2poMzIq5UUG
z3XwLVTUHOB4fg8vguwzTnu9YyEH9yqqqmRhvdehbc4WvdffjXqAVbVvTChm1DmA
kcfEYvGfID198jGBxLJFmFEnr04DiaEtbaLlhh4RpI6MmwmQMR9qiROA3x8fp2TX
u4UPgh53VtBxDZAlpKkJyCwcycilNkclrcMOmbBeLy9VV2FKM8nFQmrmwp9AWjyV
sBm6vcC2+AeFi7qxxEz7sDsbiDXrDAdDIznQ78ikme46qobpMQagK2EqH/4rfbYI
0rxUlrzcuQlO4jzicpIRZQ9hZYEuYTwFZDcSWyhiNywg7MRd6HqxLoe231jGVu9a
kynajAt29g6k35ObbtvWZDSQOnMTSS1fh5kYCgSegZzcjWBSERtMTj/J3UAv62C7
AgBgsN1bFLXQjNyUvf5k863ISVxAJBV4Cdpwe+j38tprWjlVeNNfV9sq0/35OK1h
GucAsjaonNh1xfxsAUp4o0OFWSB3q5D/7NyOB2bxE4BwDvImrszaksp+/9bsDJuX
mrDdL1WPHv3hAdsp79AO4DkTvNN0k0dOqmJpDn//R2gxZXTkmSEThgjTBixc0t8z
jtKw8wucndEtBKYfhR3C3ZvaLoE1QqbUDIRCdGkcUtN/Ezd5dwMql2GoDw0KdfE7
mIqr3Ga6UzjSt5hCu0sw
=fZ4r
-----END PGP SIGNATURE-----
Merge tag 'renesas-dt-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt
Merge "Renesas ARM Based SoC DT Updates for v3.20" from Simon Horman:
* Use clock-indices instead of deprecated renesas,clock-indices
* Prepare for r8a73a4 multiplatform support
* Increase clock coverage for r8a779[014]
* Correct r8a7779 clock usage
* Correct LAN9220 VDDVARIO voltage on ape6evm
* Correct QSPI SPI-Flash mode of lager and koelsch
* Correct flash partition label and size on koelsch
* Correct mask for GIC PPI interrupts on r8a779[14]
* Correct BSC bus range on ape6evm-reference
* tag 'renesas-dt-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (30 commits)
ARM: shmobile: r8a7791: add MLB+ clock
ARM: shmobile: r8a7790: add MLB+ clock
ARM: shmobile: ape6evm: Fix LAN9220 VDDVARIO voltage
ARM: shmobile: r8a73a4: Add r8a73a4-ape6evm.dtb to ARCH_SHMOBILE_MULTI
ARM: shmobile: ape6evm: Add keypad to the device tree
ARM: shmobile: ape6evm: Add LEDs to the device tree
ARM: shmobile: ape6evm: synchronize dts with reference platform
ARM: shmobile: ape6evm: fix compatible string for Ethernet controller
ARM: shmobile: r8a7794: Add MMCIF clock to device tree
ARM: shmobile: r8a7794: Add SDHI clocks to device tree
ARM: shmobile: r8a7794: Add I2C clocks to device tree
ARM: shmobile: r8a7779: Add TWD device to DTS
ARM: shmobile: r8a7779: Use MSTP for SCIF clocks
ARM: shmobile: r8a7779: Use R8A7779_CLK_P as SCIF parent clock
ARM: shmobile: r8a7794: Add QSPI clock to device tree
ARM: shmobile: lager: Fix QSPI mode of SPI-Flash into mode3
ARM: shmobile: r8a7794: Add SYS-DMAC clocks to device tree
ARM: shmobile: r8a7791: Add IPMMU-SGX clock to device tree
ARM: shmobile: koelsch: Fix QSPI mode of SPI-Flash into mode3
ARM: shmobile: r8a7794: Add USBDMAC[01] clocks to device tree
...
Signed-off-by: Olof Johansson <olof@lixom.net>
* Replace status value "ok" with "okay"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUoJD8AAoJENfPZGlqN0++iokP/3uRgrWrdRV5I7r3JfSrHnIR
6UwzpJvHQDafrvm7lEhYIFPPi0e0D6IOU1Na/W9fxyHv0Eqpl7/0kUBNULA0sFtF
5ih2+O8wYpaiLNO+uhXskyH/c5Fv3qQOhiYEH1+JxritlpvDuFuncnkknHbbT8hp
aDg5LReJ8Kz1MiwTr1RpEdyJ1mB95gHmdfhMlREXIajErkaYvwnBXeTkCEgfbZfd
wyfsmuvqm+w4jrTcRLWjmhqJks8+MUdZLX1IgT76jzbQTLfOCyCU5twUYq9qYUrK
M3QwYTXtJxYZ+dsGcdcClzzH4Qurk7EkuiS4PfccjOFv2EaBZloJNKBfHQgpzj5b
uzp5c02KuJTEL/4v0g3gbHSH7qjHrzEZIzD5Vk+Xda7k1mKErsDqss/awHKtZHGI
CBqly6/hq6eyzymVSf7VEv/J2q4/tkiOiTsdHgjpe+DcWN16elrGyifNB4RnAVjv
kP1YFKRLA2495/r+bYIPWPQ7qp9DJG6vES3GDoEqBp38Thvyq2TMtLfnUt4g1cqc
fH9pVE8WCefhCp+dns6cOG1hJRDV1ygqK6+UlU2ZkJYSbqOIeDms01W3byPO0F+F
75Mccj6t9IsjeTRZk7iI/Jmnckehrm7RlyYoSBjfLN/m4nWP457G7XqpMmOctdJZ
jhMM8lqQQj9IYEBAAFN2
=2dNp
-----END PGP SIGNATURE-----
Merge tag 'renesas-dt-cleanups-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt
Merge "Renesas ARM Based SoC DT Cleanups for v3.20" from Simon Horman:
* Replace status value "ok" with "okay"
* tag 'renesas-dt-cleanups-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: kzm9g-reference dts: Replace status value "ok" by "okay"
ARM: shmobile: alt dts: Replace status value "ok" by "okay"
ARM: shmobile: koelsch dts: Replace status value "ok" by "okay"
ARM: shmobile: henninger dts: Replace status value "ok" by "okay"
ARM: shmobile: lager dts: Replace status value "ok" by "okay"
ARM: shmobile: armadillo800eva dts: Replace status value "ok" by "okay"
ARM: shmobile: genmai dts: Replace status value "ok" by "okay"
Signed-off-by: Olof Johansson <olof@lixom.net>