Remove the function domain_to_ttm() that is not used anywhere.
This was partially found by using a static code analysis program
called cppcheck.
Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Remove the function nouveau_bo_rd16() that is not used anywhere.
This was partially found by using a static code analysis program
called cppcheck.
Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This patch adds one option for the boot config strings "NvClkMode*", so
that we can enable the "auto" mode when loading module.
Signed-off-by: Vince Hsu <vinceh@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This patch adds PWR support for GK20A. But instead of adding the PWR
features like firmware loading and communication with PMU firmware, we
add the DVFS (Dynamic Voltage and Frequency Scaling), which is one of
the PMU firmware's jobs on dGPUs, in this patch. This refers to the
idle signals provided by the NVIDIA hardware and tries to adjust the
performance level based on the calculated target. The reclocking policy
can be fine-tuned later when we have more real use cases.
Signed-off-by: Vince Hsu <vinceh@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
The platform device does not use the common nouveau_pwr_init() to initialize
the PWR, but it does need the .pgob() be assigned to avoid NULL pointer
dereference in graph/nve4.c.
Signed-off-by: Vince Hsu <vinceh@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
There might be some callers of nouveau_clock_astate(), and they are from
inetrrupt context. So we must ensure that this function can be atomic in
that condition. This patch adds one parameter which is subsequently passed
to nouveau_pstate_calc(). Therefore we can choose whether we want to wait
for the pstate work's completion or not.
Signed-off-by: Vince Hsu <vinceh@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Several braces were misplaced unintentionally. That caused the msi handling
became part of the default case of the first switch statement. So add the
missing ones.
Signed-off-by: Vince Hsu <vinceh@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Looks like a userspace bug can trigger this somehow during a mode
switch, causing: EVO complaint -> semaphores get out of sync ->
entire display stalled.
We likely want to be even stricter than this (or at least deal
better if EVO rejects our request), but I'll save that for the
drm_plane/atomic conversion and just fix the bug that I already
know can be triggered.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
On NV50 and up, we'll allow fixed panels to use EDID-provided modes
without the GPU scaler, and force scaling (even for NONE) otherwise.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
The hilarious part is that, under X, this won't work anyway because the
server decides to construct its own modes for some reason.
Tested with modetest, which isn't quite as insane. I'd hope that
wayland is more sensible.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Common programming sense dictates that resources allocated by a function
are freed by this function should it fails, but this is not the case for
the allocated structure of nouveau_sgdma_create_ttm(). It seems that
n00b contributors attempt to fix this one like bugs flying towards a bug
zapper, so add a comment to hopefully prevent this from happening
anymore.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
nouveau_sgdma_be::dev is only set once during init and never used
anywhere, so remove it.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
The [ SUBDEV] specified in log output will be a bit different for
children of a subdev now. Previously this reports whatever subdev
is specified by object.engine, now it reports the subdev that owns
the object (so, up object.parent somewhere).
Later patches will append object and class identifiers to messages,
which will help clarify where it's coming from.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Makes the output slightly less useful, in that objects with the same
class handle can't be distinguished from each other now.
Upcoming commits will name objects with user-readable strings to fix
this problem.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
gpuobj has a condition of (bar && bar->alloc) around usage to avoid
some nasty ordering issues (which, i've now been reminded to add a
todo about fixing...) between bar and vm.
The bar->alloc part of the condition isn't currently necessary (it
used to be, another change made bar always NULL where it matters),
so we got lucky. That won't be the case for much longer.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Makes things a bit more readable. This is specially important now as
upcoming commits are going to be gradually removing the use of macros
for down-casts, in favour of compile-time checking.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Has additional safeties for one. For two, needed for an upcoming
commit that removes abuse of nouveau_object.engine.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Merge "DaVinci cleanups for v3.20" from Sekhar Nori:
Removes an unused function and the unused
support for CDCE949 clock generator.
* tag 'davinci-for-v3.20/cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
ARM: davinci: Remove CDCE949 driver
ARM: davinci: serial.c: remove unused serial_read_reg()
Signed-off-by: Olof Johansson <olof@lixom.net>
The register bit fields are a little different, so add an entry and a
compatible string to accommodate them.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Some of the older chips used different bits to arm and trigger the reset.
Add the infrastructure needed to specify this through the "compatible"
string.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Now that the driver doesn't use any ARM-specific headers, it is safe
to build on MIPS or with COMPILE_TEST.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Merge "Third Round of Renesas ARM Based SoC Updates for v3.20" from Simon
Horman:
* Special-case PM domains with memory-controllers
* tag 'renesas-soc3-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: R-Mobile: Special-case PM domains with memory-controllers
ARM: shmobile: R-Mobile: Generalize adding/looking up special PM domains
ARM: shmobile: R-Mobile: Consolidate rmobile_pd_suspend_*()
Signed-off-by: Olof Johansson <olof@lixom.net>
Merge "Second Round of Renesas ARM Based SoC Fixes for v3.19" from Simon
Horman:
* Instantiate GIC from C board code in legacy builds on r8a7778 and r8a7779
* tag 'renesas-soc-fixes2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: r8a7779: Instantiate GIC from C board code in legacy builds
ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds
Signed-off-by: Olof Johansson <olof@lixom.net>
Merge "qcom DT changes for v3.20" from Kumar Gala:
Qualcomm ARM Based Device Tree Updates for v3.20
* Correct IPQ8064 tlmm interrupt
* Add Support for SD Card Detect for ifc6410 board
* tag 'qcom-dt-for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom:
ARM: dts: qcom: Correct IPQ8064 tlmm interrupt
ARM: dts: qcom: Add Support for SD Card Detect for ifc6410 board
Signed-off-by: Olof Johansson <olof@lixom.net>
Merge "Second Round of Renesas ARM Based SoC Updates for v3.20" from Simon
Horman:
* Add DT support for PM domains
* tag 'renesas-soc2-for-v3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: R-Mobile: Add DT support for PM domains
ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain
ARM: shmobile: R-Mobile: Use generic_pm_domain.attach_dev() for pm_clk setup
Signed-off-by: Olof Johansson <olof@lixom.net>
ARM: OMAP2+: hwmod: first set of patches for v3.20
First set of OMAP2+ hwmod patches for Linux v3.20. These are mostly
fixes for warnings, although there's one DRA7xx patch that fixes
CONFIG_DEBUG_LL for AM572x/DRA7xx SoCs that use UART3 for console,
such as the BeagleBoard-X15.
These patches entered Linux-next starting with the next-20150121 tag.
Basic build, boot, and PM test results can be found here:
http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v3.20/20150121142621/
Merge "omap device tree changes for v3.20" from Tony Lindgren:
Device tree changes for omaps. Mostly to add support for new
am437x-idk and update am437x-sk boards. Also enabling new
devices for multiple boards.
* tag 'omap-for-v3.20/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (21 commits)
ARM: dts: omap3-gta04: Add handling for tv output
ARM: dts: cm-t3x: add NAND support
ARM: dts: am57xx-beagle-x15: Add GPIO controlled fan node
ARM: dts: am437x-idk: add gpio-based power key
ARM: dts: N950/N9: add twl_power
ARM: dts: am437x-sk: add power button binding
ARM: dts: add support for AM437x IDK
ARM: dts: am437x-gp-evm: add VPFE device tree data
ARM: dts: am437x-sk-evm: add VPFE device tree data
ARM: dts: am43x-epos-evm: add VPFE device tree data
ARM: dts: am4372: add VPFE DT node entries
ARM: dts: DRA7X: drop id property in pcie_phy
ARM: dts: omap3-n900: cleanup english
ARM: dts: am57xx-beagle-x15: Add dual ethernet
ARM: dts: am437x-sk: remove DSS pulls
ARM: dts: am437x-sk: remove internal i2c pullups
ARM: dts: am437x-sk: add explicit pinmux for both USB instances
ARM: dts: am437x-sk: remove ethernet pulls
ARM: dts: am437x-sk: add explicit MMC0 pinmux
ARM: dts: am437x-sk: remove internal pulls from QSPI
...
Signed-off-by: Olof Johansson <olof@lixom.net>
Merge "omap clean-up for v3.20" from Tony Lindgren:
Clean-up for omaps to remove dead code found with cppcheck after
we've made several SoCs to boot in device tree only mode.
* tag 'omap-for-v3.20/cleanup-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Remove unused ti81xx platform init code
ARM: OMAP3+: PRM: remove prm_get_reset_sources declaration from headers
ARM: OMAP2: CM: remove unused PLL functions
ARM: OMAP2: clock: remove unused apll code
ARM: OMAP: dma.c: Remove unused function
ARM: OMAP1: timer32k.c: Remove unused function
ARM: OMAP1: irq.c: Remove unused function
ARM: OMAP2+: omap-pm-noop.c: Remove some unused functions
ARM: OMAP2+: voltage: Remove some unused functions
ARM: OMAP2+: powerdomain.c: Remove some unused functions
ARM: OMAP2+: omap_hwmod.c: Remove some unused functions
ARM: OMAP2+: dpll44xx.c: Remove unused function
ARM: OMAP2+: cm33xx.c: Remove some unused functions
ARM: OMAP2+: clkt2xxx_apll.c: Remove some unused functions
Signed-off-by: Olof Johansson <olof@lixom.net>
Merge "omap non-urgent fixes for v3.20" from Tony Lindgren:
Non-urgent fixes for omap variant dm816x that has been in a sorry
broken half merged state for a few years now. This gets us to the
point where we can boot it properly once the related SoC data is
added. Note that we've already made dm816x device tree only by
removing the known broken board file.
* tag 'omap-for-v3.20/fixes-not-urgent-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Disable omap3 PM init for ti81xx
ARM: OMAP2+: Fix reboot for 81xx
ARM: OMAP2+: Fix dm814 and dm816 for clocks and timer init
ARM: OMAP2+: Fix ti81xx class type
ARM: OMAP2+: Fix ti81xx devtype
ARM: OMAP2+: Fix error handling for omap2_clk_enable_init_clocks
Signed-off-by: Olof Johansson <olof@lixom.net>
Backmerge Linus tree after rc5 + drm-fixes went in.
There were a few amdkfd conflicts I wanted to avoid,
and Ben requested this for nouveau also.
Conflicts:
drivers/gpu/drm/amd/amdkfd/Makefile
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
drivers/gpu/drm/amd/amdkfd/kfd_priv.h
drivers/gpu/drm/amd/include/kgd_kfd_interface.h
drivers/gpu/drm/i915/intel_runtime_pm.c
drivers/gpu/drm/radeon/radeon_kfd.c
The Kconfig symbol DEBUG_MVEBU_UART_ALTERNATE was renamed to
DEBUG_MVEBU_UART0_ALTERNATE. And the symbol DEBUG_MVEBU_UART1_ALTERNATE
was added to allow UART1 as a DEBUG_LL target. Make the comment at the
top of this DTS reflect those changes.
Since we're touching this DTS add comments to show which blocks describe
UART0 and UART1.
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>