[Bug 46711] Monitor not turning on after DisplayPort re-plug in Xorg

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=46711

--- Comment #21 from Branen Salmon  ---
After some digging, the only differences I've been able to find between the
re-plug behavior under X (where the encoder sends no signal although the driver
thinks DPMS is ON), and the re-plug behavior under an fbdev (where the signal
returns after re-plug, as expected) are the following:

  1. When the monitor is re-plugged and radeon_connector_hotplug is called,
connector->dpms is OFF in the fbdev case, but it's ON in the X case.  This
means that radeon_connector_hotplug returns immediately when the monitor is
re-plugged under fbdev, and that the code in radeon_connector_hotplug is not
what's turning the encoder back on.

  2. In the fbdev case, there are redundant calls to radeon_atom_encoder_dpms. 
When unplugging, it's called six times with on=false, and when re-plugging,
it's called thrice, with on=false, on=true, and on=true.  In the X case, it's
called only once per unplug/re-plug, with on=false and on=true, respectively.

  3. In the fbdev case, drm_crtc_helper_set_config is called on re-plug, and it
calls some other functions, including radeon_encoder_set_active_device and
drm_crtc_helper_set_mode.  (I realize that this may be a red herring, but
figure I should include it so that expert eyes may judge.) 
drm_crtc_helper_set_config isn't called at all in the X case.

  4. Forcing DPMS off with xset results in one call to
radeon_atom_encoder_dpms.  Forcing DPMS on with xset results in one call to
radeon_atom_encoder_dpms and one (I think?) call to drm_crtc_helper_set_config.

(I'm not counting calls to encoders and connectors not connected to my monitor,
even though fbdev likes to traverse them all anytime something changes.)

It seems that drm_crtc_helper_set_config is doing something with the encoder
that radeon_connector_hotplug is not doing.  This is my first time digging into
video code, so I have no idea what that might be.  I'm going to take a break
from working on this for now, but will come back to it if no one else beats me
to it.  :)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/eb96f76e/attachment.html>


[Bug 88227] Radeonsi: High GTT usage in Prison Architect large map

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88227

--- Comment #8 from James Harvey  ---
Created attachment 112085
  --> https://bugs.freedesktop.org/attachment.cgi?id=112085&action=edit
large map prior to commit 150ac07b

Bisect complete:

150ac07b855b5c5f879bf6ce9ca421ccd1a6c938 is the first bad commit
commit 150ac07b855b5c5f879bf6ce9ca421ccd1a6c938
Author: Michel Dänzer 
Date:   Wed Jun 25 18:36:43 2014 +0900

r600g/radeonsi: Prefer VRAM for CPU -> GPU streaming buffers

Reviewed-by: Marek Olšák 

Prior to this commit, there is a slight fps drop (60->24) while moving around
the map for the first time, but thereafter it stays at roughly 60fps.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/db639f2c/attachment.html>


[BUG] 3.19-rc3+ - mm: prevent endless growth of anon_vma hierarchy

2015-01-11 Thread Oded Gabbay
Hello,

Today I took latest branch from Linus repo to check for amdkfd regressions
due to my fixes pulled for 3.19-rc4, and I got a kernel bug (see below dmesg
output).

I did a bisect and the first bad commit is:

7a3ef208e662f4b63d43a23f61a64a129c525bbc is the first bad commit
commit 7a3ef208e662f4b63d43a23f61a64a129c525bbc
Author: Konstantin Khlebnikov 
Date:   Thu Jan 8 14:32:15 2015 -0800

mm: prevent endless growth of anon_vma hierarchy

The bug is before the pull of latest amdkfd fixes, so it is not related to
my pull request. From the bisect log (end of email), you can see 3.19-rc3 is
fine.

The problem occurred while running java over HSA. The Kernel is 64-bit and
userspace processes are 64-bit as well. CPU is AMD Kaveri (A10-7850).
OpenCL/OpenMP over HSA run without problems.

dmesg output:

[  266.491864] [ cut here ]
[  266.491904] kernel BUG at mm/rmap.c:399!
[  266.491934] invalid opcode:  [#1] SMP
[  266.491962] Modules linked in: amdkfd amd_iommu_v2 radeon cfbfillrect
cfbimgblt cfbcopyarea drm_kms_helper ttm fuse
[  266.492043] CPU: 3 PID: 5155 Comm: java Not tainted 3.19.0-rc3-kfd+ #24
[  266.492087] Hardware name: AMD BALLINA/Ballina, BIOS
WBL3B20N_Weekly_13_11_2 11/20/2013
[  266.492141] task: 8800a3b3c840 ti: 8800916f8000 task.ti:
8800916f8000
[  266.492191] RIP: 0010:[]  []
unlink_anon_vmas+0x102/0x159
[  266.492249] RSP: 0018:8800916fbb68  EFLAGS: 00010286
[  266.492285] RAX: 88008f6b3ba0 RBX: 88008f6b3b90 RCX: 8800a3b3cf30
[  266.492331] RDX: 8800914b3c98 RSI: 0001 RDI: 8800914b3c98
[  266.492376] RBP: 8800916fbba8 R08: 0002 R09: 
[  266.492421] R10: 0008 R11: 0001 R12: 88008f686068
[  266.492465] R13: 8800914b3c98 R14: 88008f6b3b90 R15: 88008f686000
[  266.492513] FS:  7fb8966f6700() GS:88011ed8()
knlGS:
[  266.492566] CS:  0010 DS:  ES:  CR0: 80050033
[  266.492601] CR2: 7f50fa190770 CR3: 01b31000 CR4: 000407e0
[  266.492652] Stack:
[  266.492665]   88008f686078 8800916fbba8
88008f686000
[  266.492714]  8800916fbc08  
88008f686000
[  266.492764]  8800916fbbf8 8111ba5d 7fb885918000
88008edf3000
[  266.492815] Call Trace:
[  266.492834]  [] free_pgtables+0x8e/0xcc
[  266.492873]  [] exit_mmap+0x84/0x116
[  266.492907]  [] mmput+0x52/0xe9
[  266.492940]  [] do_exit+0x3cd/0x9c9
[  266.492975]  [] ? _raw_spin_unlock_irq+0x2d/0x32
[  266.493016]  [] do_group_exit+0x4c/0xc9
[  266.493051]  [] get_signal+0x58f/0x5bc
[  266.493090]  [] do_signal+0x28/0x5b1
[  266.493123]  [] ? sysret_signal+0x5/0x43
[  266.493162]  [] do_notify_resume+0x35/0x68
[  266.493200]  [] int_signal+0x12/0x17
[  266.493235] Code: e8 03 b7 f4 ff 49 8b 47 78 4c 8b 20 48 8d 58 f0 49 83
ec 10 48 8d 43 10 48 39 45 c8 74 55 48 8b 7b 08 83 bf 8c 00 00 00 00 74 02
<0f> 0b e8 a4 fd ff ff 48 8b 43 18 48 8b 53 10 48 89 df 48 89 42
[  266.493404] RIP  [] unlink_anon_vmas+0x102/0x159
[  266.493447]  RSP 
[  266.508877] ---[ end trace 02d28fe9b3de2e1a ]---
[  266.508880] Fixing recursive fault but reboot is needed!


git bisect log:

git bisect start
# bad: [a4ad89a46882b91b7df9cfb83dd21c06b8065c30] fix to qcom eth ctrl
git bisect bad a4ad89a46882b91b7df9cfb83dd21c06b8065c30
# good: [b1940cd21c0f4abdce101253e860feff547291b0] Linux 3.19-rc3
git bisect good b1940cd21c0f4abdce101253e860feff547291b0
# bad: [03c751a5e10caafbb6d1afcaf1ea67f2153c3193] Merge branch 'for-linus'
of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
git bisect bad 03c751a5e10caafbb6d1afcaf1ea67f2153c3193
# bad: [53dc20b9a3d928b0744dad5aee65b610de1cc85d] ocfs2: fix the wrong
directory passed to ocfs2_lookup_ino_from_name() when link file
git bisect bad 53dc20b9a3d928b0744dad5aee65b610de1cc85d
# good: [e8829f007e982a9a8fb4023109233d5f344d4657] batman-adv: fix counter
for multicast supporting nodes
git bisect good e8829f007e982a9a8fb4023109233d5f344d4657
# good: [2abad79afa700e837cb4feed170141292e0720c0] qla3xxx: don't allow
never end busy loop
git bisect good 2abad79afa700e837cb4feed170141292e0720c0
# good: [0adc1803880db728fa7f8cbad5b214ab657e5e0d] Merge tag 'for-linus-3'
of git://git.code.sf.net/p/openipmi/linux-ipmi
git bisect good 0adc1803880db728fa7f8cbad5b214ab657e5e0d
# good: [3245d6acab981a2388ffb877c7ecc97e763c59d4] exit: fix race between
wait_consider_task() and wait_task_zombie()
git bisect good 3245d6acab981a2388ffb877c7ecc97e763c59d4
# bad: [2d6d7f98284648c5ed113fe22a132148950b140f] mm: protect
set_page_dirty() from ongoing truncation
git bisect bad 2d6d7f98284648c5ed113fe22a132148950b140f
# bad: [7a3ef208e662f4b63d43a23f61a64a129c525bbc] mm: prevent endless growth
of anon_vma hierarchy
git bisect bad 7a3ef208e662f4b63d43a23f61a64a129c525bbc
# first bad commit: [7a3ef208e662f4b63d43a23f61a64a129c525bbc] mm: prevent
endless grow

[Bug 86351] HDMI audio garbled output on Radeon R9 280X

2015-01-11 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=86351

--- Comment #3 from Christian Birchinger  ---
Retried with kernel 3.18.2:

If i constantly open new windows or constantly switch virtual desktops really
fast or do other things that keeps the desktop busy, the sound plays back
normaly.

As soon as the desktop is "idle" the sound becomes garbled again.

Playing a video also has working sound. However only stereo seems to work.
There's not enough for passthru Dolby D. The receiver gets a Dolby D link
from time to time but loses it again shortly after.

As if theres not enough bandwidth reserved for audio during desktop "idle time"
or some weird power save mode.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[LKP] [PATCH] drm/radeon: Try to init amdkfd only if 64 bit kernel

2015-01-11 Thread Oded Gabbay


On 01/07/2015 12:58 AM, Rusty Russell wrote:
> Kees Cook  writes:
>> On Sun, Jan 4, 2015 at 8:28 PM, Rusty Russell  
>> wrote:
>>> Kees, as far as I can tell you need another 0-terminated vmlinux.relocs
>>> section for weak symbols.  These should not be relocated if already 0.
>>
>> A few questions:
>>
>> Why doesn't this break on 32-bit without kASLR? 32-bit does relocation
>> by default, even without CONFIG_RANDOMIZE_BASE.
> 
> Well, the offset was 0 until I removed CONFIG_HIBERNATE.
> 
>> Are there any symbols that are NULL that aren't weak? I'd expect all
>> strong symbols to have non-zero offsets, but I must be
>> misunderstanding something here.
> 
> I don't think there would be.  Anyway, you might be able to filter them
> out in x86/tools/relocs itself.
> 
> Cheers,
> Rusty.
> 

Hi Kees,

Did you had time to look at the problem ?

Oded


[Bug 86351] HDMI audio garbled output on Radeon R9 280X

2015-01-11 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=86351

Andy Furniss  changed:

   What|Removed |Added

 CC||adf.lists at gmail.com

--- Comment #4 from Andy Furniss  ---
You are not alone, I get this on my R9270X  -

https://bugs.freedesktop.org/show_bug.cgi?id=77677

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[Bug 88263] Civilization Beyond Earth crashes on r600

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88263

oleid at mescharet.de changed:

   What|Removed |Added

Summary|Civilization Beyond Earth   |Civilization Beyond Earth
   |crashes on  |crashes on r600

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/2fa09f02/attachment.html>


[Bug 90451] Dedicated gpu on HP 355 G2 not working correctly (slower than integrated+corrupt display in es2gears)

2015-01-11 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=90451

--- Comment #6 from l55 at anonymousspeech.com ---
looks like basically it's switching:
$ glxinfo | grep ' renderer'
OpenGL renderer string: Gallium 0.4 on AMD MULLINS
$ DRI_PRIME=1 glxinfo | grep ' renderer'
OpenGL renderer string: Gallium 0.4 on AMD HAINAN

I tried enabling this repo but i can't install mesa, it says it can't find the
package, although it's listed on the ppa page:
https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

The xserver-xorg-video-ati git snapshot from this repo made my system freeze
even more often.(Another issue i have which is probably related to ati driver i
reported here: Total system freeze:
https://bugzilla.kernel.org/show_bug.cgi?id=90981 . Maybe you could also take a
look at this?)

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[Bug 88152] 720p and 1080 H.264 videos lock-up on playback with vlc / vdpau on Radeon 3850HD

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88152

--- Comment #4 from Arthur Marsh  ---
The commit:

https://github.com/torvalds/linux/commit/dd5a74f2f982193620cfa1ef609df1ee805781d4

appears to at least reduce the problem.

Is there any (semi-)automated way to check for any more occurences of signed
variables that should be unsigned?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/32772f9d/attachment.html>


[Bug 88227] Radeonsi: High GTT usage in Prison Architect large map

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88227

--- Comment #9 from James Harvey  ---
Reverting the above commit against mesa git master did not solve the problem.
Performed another bisection and got result:

commit b419c651fbbf3660d7b53623dfa2e5a4c9bd3b98
Author: Marek Olšák 
Date:   Wed Aug 20 23:53:40 2014 +0200

gallium/pb_bufmgr_cache: limit the size of cache

This should make a machine which is running piglit more responsive at
times.
e.g. streaming-texture-leak can easily eat 600 MB because of how fast it
creates new textures.

Reverting this commit (to remove the cache limit) returned the game to full
performance. Tested against git-ff1948a.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/3b3f6d0d/attachment.html>


[Bug 88152] 720p and 1080 H.264 videos lock-up on playback with vlc / vdpau on Radeon 3850HD

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88152

--- Comment #5 from Arthur Marsh  ---
Created attachment 112092
  --> https://bugs.freedesktop.org/attachment.cgi?id=112092&action=edit
20150112dmesg.txt

After updating to the Linus git head kernel with 
https://github.com/torvalds/linux/commit/dd5a74f2f982193620cfa1ef609df1ee805781d4
applied, and applying the patch at
http://article.gmane.org/gmane.linux.kernel.mm/127052 I still had vlc lock-up
with one video with 20150112dmesg.txt dump.

mediainfo reports the video format as:

Format   : MPEG-4
Format profile   : Base Media
Codec ID : isom
File size: 2.54 GiB
Duration : 48mn 0s
Overall bit rate : 7 579 Kbps
Encoded date : UTC 2010-01-10 03:49:24
Tagged date  : UTC 2010-01-10 03:49:24

Video
ID   : 1
Format   : AVC
Format/Info  : Advanced Video Codec
Format profile   : High at L4.0
Format settings, CABAC   : Yes
Format settings, ReFrames: 3 frames
Codec ID : avc1
Codec ID/Info: Advanced Video Coding
Duration : 48mn 0s
Source duration  : 47mn 59s
Bit rate : 7 110 Kbps
Width: 1 440 pixels
Height   : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode  : Constant
Frame rate   : 29.970 fps
Standard : NTSC
Color space  : YUV
Chroma subsampling   : 4:2:0
Bit depth: 8 bits
Scan type: Progressive
Bits/(Pixel*Frame)   : 0.153
Stream size  : 2.38 GiB (94%)
Source stream size   : 2.49 GiB (98%)
Language : English
Encoded date : UTC 2010-01-10 03:49:24
Tagged date  : UTC 2010-01-10 03:49:24
Color primaries  : BT.709
Transfer characteristics : BT.709
Matrix coefficients  : BT.709
mdhd_Duration: 2880936

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/4d7f1167/attachment-0001.html>


[Bug 88227] Radeonsi: High GTT usage in Prison Architect large map

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88227

--- Comment #10 from Marek Olšák  ---
James, can you increase the size of cache manually and see what works better?
There is only one formula in radeon_drm_winsys.c:676, so it should be trivial.

Also please how much VRAM and GTT do you have?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/ff53efbc/attachment.html>


[Bug 88152] 720p and 1080 H.264 videos lock-up on playback with vlc / vdpau on Radeon 3850HD

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88152

--- Comment #6 from Christian König  ---
(In reply to Arthur Marsh from comment #4)
> The commit:
> 
> https://github.com/torvalds/linux/commit/
> dd5a74f2f982193620cfa1ef609df1ee805781d4
> 
> appears to at least reduce the problem.

The patch can't affect the issue, cause it only applies to non UMS mode which
is completely deprecated and doesn't support UVD at all.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/a8c57af3/attachment.html>


[Bug 90451] Dedicated gpu on HP 355 G2 not working correctly (slower than integrated+corrupt display in es2gears)

2015-01-11 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=90451

--- Comment #7 from l55 at anonymousspeech.com ---
i installed kernel 3.18.2 and upgraded mesa and the other packages except for
libdrm-radeon1,xserver-xorg-video-ati,xserver-xorg-video-radeon from the
mentioned oibaf ppa.
Now DRI_PRIME=1 esgears displays fine, but fps are not higher than with
integrated(the same fps) and unigine tropics benchmark is still corrupted.

I tried to run a game with wine on the gears on gallium livedvd and the fps, if
i recall correctly, were lower on the dedicated gpu than with the integrated
but no corrupt display there(didn't test es2gears/tropics with it because
es2gears is not included(tropics benchmark may be included in phoronics test
suite, i'll check that) and the livedvd doesn't seem to have a package manager)

gears on gallium 2014.12.25 packages:
Mesa-git – 10.5_git2014.12.25
Kernel – 3.19-rc1
libdrm – 2.4.99_git2014.09.30
Mesa-demos – 9.1.0_git2014.07.06
xorg-server – 1.16.99.9
xf86-video-ati – 7.99.99_2014.12.20

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[Bug 90451] Dedicated gpu on HP 355 G2 not working correctly (slower than integrated+corrupt display in es2gears)

2015-01-11 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=90451

--- Comment #8 from l55 at anonymousspeech.com ---
I tested with gears on gallium, there i can't even switch gpus:

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x54 cap: 0xf, Source Output, Sink Output, Source Offload, Sink
Offload crtcs: 2 outputs: 3 associated providers: 0 name:radeon

$ glxinfo | grep ' renderer'
ATTENTION: default value of option vblank_mode overridden by environment.
OpenGL renderer string: Gallium 0.4 on AMD MULLINS

$ DRI_PRIME=1 glxinfo | grep ' renderer'
ATTENTION: default value of option vblank_mode overridden by environment.
OpenGL renderer string: Gallium 0.4 on AMD MULLINS


However in vgaswitcheroo/switch there are still 2 gpus:

# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr::00:01.0
1:DIS: :DynOff::01:00.0

Has there been some change in how to switch between gpus and it's not done with
DRI_PRIME=1 anymore?

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[PATCH] drm: radeon: ci_dpm: Remove some unused functions

2015-01-11 Thread Rickard Strandqvist
Removes some functions that are not used anywhere:
ci_dpm_reset_asic() ci_dpm_power_control_set_level()

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/ci_dpm.c |   10 --
 1 file changed, 10 deletions(-)

diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index 11a55e9..06060a5 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -4804,16 +4804,6 @@ int ci_dpm_set_power_state(struct radeon_device *rdev)
return 0;
 }

-int ci_dpm_power_control_set_level(struct radeon_device *rdev)
-{
-   return ci_power_control_set_level(rdev);
-}
-
-void ci_dpm_reset_asic(struct radeon_device *rdev)
-{
-   ci_set_boot_state(rdev);
-}
-
 void ci_dpm_display_configuration_changed(struct radeon_device *rdev)
 {
ci_program_display_gap(rdev);
-- 
1.7.10.4



[PATCH] drm: radeon: trinity_dpm: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function trinity_dpm_reset_asic() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/trinity_dpm.c |   16 
 1 file changed, 16 deletions(-)

diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c 
b/drivers/gpu/drm/radeon/trinity_dpm.c
index b4ec5c4..7428da0 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -1269,22 +1269,6 @@ void trinity_dpm_setup_asic(struct radeon_device *rdev)
trinity_release_mutex(rdev);
 }

-void trinity_dpm_reset_asic(struct radeon_device *rdev)
-{
-   struct trinity_power_info *pi = trinity_get_pi(rdev);
-
-   trinity_acquire_mutex(rdev);
-   if (pi->enable_dpm) {
-   trinity_enable_power_level_0(rdev);
-   trinity_force_level_0(rdev);
-   trinity_wait_for_level_0(rdev);
-   trinity_program_bootup_state(rdev);
-   trinity_force_level_0(rdev);
-   trinity_unforce_levels(rdev);
-   }
-   trinity_release_mutex(rdev);
-}
-
 static u16 trinity_convert_voltage_index_to_value(struct radeon_device *rdev,
  u32 vid_2bit)
 {
-- 
1.7.10.4



[PATCH] gpu: drm: radeon: radeon_object: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function radeon_bo_fbdev_mmap() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/radeon_object.c |6 --
 drivers/gpu/drm/radeon/radeon_object.h |2 --
 2 files changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_object.c 
b/drivers/gpu/drm/radeon/radeon_object.c
index 99a960a..4f2515f 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -542,12 +542,6 @@ int radeon_bo_list_validate(struct radeon_device *rdev,
return 0;
 }

-int radeon_bo_fbdev_mmap(struct radeon_bo *bo,
-struct vm_area_struct *vma)
-{
-   return ttm_fbdev_mmap(vma, &bo->tbo);
-}
-
 int radeon_bo_get_surface_reg(struct radeon_bo *bo)
 {
struct radeon_device *rdev = bo->rdev;
diff --git a/drivers/gpu/drm/radeon/radeon_object.h 
b/drivers/gpu/drm/radeon/radeon_object.h
index 1b8ec79..1cf3cd9 100644
--- a/drivers/gpu/drm/radeon/radeon_object.h
+++ b/drivers/gpu/drm/radeon/radeon_object.h
@@ -143,8 +143,6 @@ extern void radeon_bo_fini(struct radeon_device *rdev);
 extern int radeon_bo_list_validate(struct radeon_device *rdev,
   struct ww_acquire_ctx *ticket,
   struct list_head *head, int ring);
-extern int radeon_bo_fbdev_mmap(struct radeon_bo *bo,
-   struct vm_area_struct *vma);
 extern int radeon_bo_set_tiling_flags(struct radeon_bo *bo,
u32 tiling_flags, u32 pitch);
 extern void radeon_bo_get_tiling_flags(struct radeon_bo *bo,
-- 
1.7.10.4



[PATCH] gpu: drm: nouveau: nvif: device: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function nvif_device_new() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/nouveau/nvif/device.c |   18 --
 drivers/gpu/drm/nouveau/nvif/device.h |2 --
 2 files changed, 20 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nvif/device.c 
b/drivers/gpu/drm/nouveau/nvif/device.c
index f477579..8522aa9 100644
--- a/drivers/gpu/drm/nouveau/nvif/device.c
+++ b/drivers/gpu/drm/nouveau/nvif/device.c
@@ -53,24 +53,6 @@ nvif_device_del(struct nvif_device *device)
kfree(device);
 }

-int
-nvif_device_new(struct nvif_object *parent, u32 handle, u32 oclass,
-   void *data, u32 size, struct nvif_device **pdevice)
-{
-   struct nvif_device *device = kzalloc(sizeof(*device), GFP_KERNEL);
-   if (device) {
-   int ret = nvif_device_init(parent, nvif_device_del, handle,
-  oclass, data, size, device);
-   if (ret) {
-   kfree(device);
-   device = NULL;
-   }
-   *pdevice = device;
-   return ret;
-   }
-   return -ENOMEM;
-}
-
 void
 nvif_device_ref(struct nvif_device *device, struct nvif_device **pdevice)
 {
diff --git a/drivers/gpu/drm/nouveau/nvif/device.h 
b/drivers/gpu/drm/nouveau/nvif/device.h
index 43180f9..8440848 100644
--- a/drivers/gpu/drm/nouveau/nvif/device.h
+++ b/drivers/gpu/drm/nouveau/nvif/device.h
@@ -22,8 +22,6 @@ int  nvif_device_init(struct nvif_object *, void 
(*dtor)(struct nvif_device *),
  u32 handle, u32 oclass, void *, u32,
  struct nvif_device *);
 void nvif_device_fini(struct nvif_device *);
-int  nvif_device_new(struct nvif_object *, u32 handle, u32 oclass,
-void *, u32, struct nvif_device **);
 void nvif_device_ref(struct nvif_device *, struct nvif_device **);

 /*XXX*/
-- 
1.7.10.4



[PATCH] drm: radeon: btc_dpm: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function btc_dpm_reset_asic() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/btc_dpm.c |8 
 1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/btc_dpm.c b/drivers/gpu/drm/radeon/btc_dpm.c
index 0b2929d..fea7130 100644
--- a/drivers/gpu/drm/radeon/btc_dpm.c
+++ b/drivers/gpu/drm/radeon/btc_dpm.c
@@ -2277,14 +2277,6 @@ static void btc_update_requested_ps(struct radeon_device 
*rdev,
eg_pi->requested_rps.ps_priv = &eg_pi->requested_ps;
 }

-void btc_dpm_reset_asic(struct radeon_device *rdev)
-{
-   rv770_restrict_performance_levels_before_switch(rdev);
-   btc_disable_ulv(rdev);
-   btc_set_boot_state_timing(rdev);
-   rv770_set_boot_state(rdev);
-}
-
 int btc_dpm_pre_set_power_state(struct radeon_device *rdev)
 {
struct evergreen_power_info *eg_pi = evergreen_get_pi(rdev);
-- 
1.7.10.4



[PATCH] drm: nouveau: nouveau_gem: Remove unused function

2015-01-11 Thread Rickard Strandqvist
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 
---
 drivers/gpu/drm/nouveau/nouveau_gem.c |   13 -
 1 file changed, 13 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c 
b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 36951ee..f208d3a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -825,19 +825,6 @@ out_next:
return nouveau_abi16_put(abi16, ret);
 }

-static inline uint32_t
-domain_to_ttm(struct nouveau_bo *nvbo, uint32_t domain)
-{
-   uint32_t flags = 0;
-
-   if (domain & NOUVEAU_GEM_DOMAIN_VRAM)
-   flags |= TTM_PL_FLAG_VRAM;
-   if (domain & NOUVEAU_GEM_DOMAIN_GART)
-   flags |= TTM_PL_FLAG_TT;
-
-   return flags;
-}
-
 int
 nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data,
   struct drm_file *file_priv)
-- 
1.7.10.4



[PATCH] drm: radeon: ni_dpm: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function ni_dpm_reset_asic() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/ni_dpm.c |6 --
 1 file changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/ni_dpm.c b/drivers/gpu/drm/radeon/ni_dpm.c
index 6d2f16c..dcd5568 100644
--- a/drivers/gpu/drm/radeon/ni_dpm.c
+++ b/drivers/gpu/drm/radeon/ni_dpm.c
@@ -3862,12 +3862,6 @@ void ni_dpm_post_set_power_state(struct radeon_device 
*rdev)
ni_update_current_ps(rdev, new_ps);
 }

-void ni_dpm_reset_asic(struct radeon_device *rdev)
-{
-   ni_restrict_performance_levels_before_switch(rdev);
-   rv770_set_boot_state(rdev);
-}
-
 union power_info {
struct _ATOM_POWERPLAY_INFO info;
struct _ATOM_POWERPLAY_INFO_V2 info_2;
-- 
1.7.10.4



[PATCH] drm: radeon: cypress_dpm: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function cypress_dpm_reset_asic() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/cypress_dpm.c |6 --
 1 file changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c 
b/drivers/gpu/drm/radeon/cypress_dpm.c
index 9aad032..d3f8208 100644
--- a/drivers/gpu/drm/radeon/cypress_dpm.c
+++ b/drivers/gpu/drm/radeon/cypress_dpm.c
@@ -2005,12 +2005,6 @@ int cypress_dpm_set_power_state(struct radeon_device 
*rdev)
return 0;
 }

-void cypress_dpm_reset_asic(struct radeon_device *rdev)
-{
-   rv770_restrict_performance_levels_before_switch(rdev);
-   rv770_set_boot_state(rdev);
-}
-
 void cypress_dpm_display_configuration_changed(struct radeon_device *rdev)
 {
cypress_program_display_gap(rdev);
-- 
1.7.10.4



Softlockup on boot with Cape Verde XT on many kernels

2015-01-11 Thread Alex Deucher
On Sat, Jan 10, 2015 at 8:58 PM, Federico  wrote:
> Hi.
> I always get a soft lockup when booting since I bought a Cape Verde XT
> [Radeon HD 7770/8760 / R7 250X].
>
> In this bug report you can find screenshots of the softlockup and the kernel
> panic generated by using softlockup_panic=1
>
> https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1386973
>
> I have this problem with and without nomodeset and I have tested the kernels
> that come with Ubuntu 14.04, 14.10 and 15.04 (today's daily image).
>
> The live session shows me the boot menu where I can enter kernel  options
> and such, but when booting into a live session it soon prints the softlockup
> messages forever.
>
> In order to install catalyst I had to disable the card in the BIOS and boot
> into the integrated graphics. Catalyst works perfectly.
>
> MoBo is based on AMD 780G (Radeon HD3200 IGP).
>
> If there's anything I can do to help find a workaround or a fix for this,
> let me know.

Booting with nomodeset disables the graphics drivers so if you are
still getting problems, it may a hardware problem.  Can you attach
your full dmesg and lspci output?  Are you disabling the onboard
graphics when enabling the external dGPU?

Alex


Fwd: Softlockup on boot with Cape Verde XT on many kernels

2015-01-11 Thread Federico
2015-01-11 14:19 GMT-03:00 Alex Deucher :

> Booting with nomodeset disables the graphics drivers so if you are
> still getting problems, it may a hardware problem.  Can you attach
> your full dmesg and lspci output?  Are you disabling the onboard
> graphics when enabling the external dGPU?
>
> Alex
>

I attached those outputs to
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1386973
I wasn't sure if you meant attaching to this response.

I was able to boot with nomodeset into Ubuntu 15.04's image. I get to a
graphic log in screen, but I also get some errors in the kernel log

[drm:radeon_init] *ERROR* No UMS support in radeon module!

Which seems by design so I assume the VESA driver was in use.

I will try to boot Ubuntu 14.10 live image with nomodeset to see if I can
get some error messages there.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/33f8321b/attachment.html>


[Bug 88301] Dota causes GPU fault and kernel hang

2015-01-11 Thread bugzilla-dae...@freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=88301

Bug ID: 88301
   Summary: Dota causes GPU fault and kernel hang
   Product: DRI
   Version: DRI git
  Hardware: Other
OS: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
  Assignee: dri-devel at lists.freedesktop.org
  Reporter: tilman at code-monkey.de

I've got an apitrace of Dota that reliably causes GPU faults on radeonsi on my
Bonaire XTX.

The trace: http://files.code-monkey.de/dota.trace (468797931 bytes).

I'm running Mesa from master (8d2542fc9d5af4db355b67cc2a1ff2f413685a27) and can
reproduce the problem with kernel 3.18.2 and 3.19.0-rc2 (built from airlied's
drm-fixes tree; 79305ec6e60d320832505e95c1a028d309fcd2b6).
agd5f's "fix VM flush" patches from 2015-01-06 don't help either.

Example kernel log excerpt:
radeon :01:00.0: GPU fault detected: 147 0x000c4801
radeon :01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x0100
radeon :01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0C048001
VM fault (0x01, vmid 6) at page 16777216, read from 'TC2' (0x54433200) (72)
radeon :01:00.0: GPU fault detected: 146 0x000c080c
radeon :01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x
radeon :01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0C00800C
VM fault (0x0c, vmid 6) at page 0, read from 'TC0' (0x54433000) (8)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/5c56cd00/attachment.html>


Softlockup on boot with Cape Verde XT on many kernels

2015-01-11 Thread Federico
Ubuntu 14.10 (kernel is 3.16.0) with nomodeset also boots. But it seems to
be using the a generic driver

cat /var/log/kern.log | grep ERROR
Jan 11 20:07:56 ubuntu kernel: [6.174086] [drm:radeon_init] *ERROR* No
UMS support in radeon module!
Jan 11 20:07:56 ubuntu kernel: [   54.093686] [drm:radeon_init] *ERROR* No
UMS support in radeon module!
Jan 11 20:08:10 ubuntu kernel: [   94.983647] [drm:radeon_init] *ERROR* No
UMS support in radeon module!

glxinfo | grep Open
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 128 bits)
OpenGL version string: 3.0 Mesa 10.3.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:


2015-01-11 19:44 GMT+00:00 Federico :

>
>
> 2015-01-11 14:19 GMT-03:00 Alex Deucher :
>
>> Booting with nomodeset disables the graphics drivers so if you are
>> still getting problems, it may a hardware problem.  Can you attach
>> your full dmesg and lspci output?  Are you disabling the onboard
>> graphics when enabling the external dGPU?
>>
>> Alex
>>
>
> I attached those outputs to
> https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1386973
> I wasn't sure if you meant attaching to this response.
>
> I was able to boot with nomodeset into Ubuntu 15.04's image. I get to a
> graphic log in screen, but I also get some errors in the kernel log
>
> [drm:radeon_init] *ERROR* No UMS support in radeon module!
>
> Which seems by design so I assume the VESA driver was in use.
>
> I will try to boot Ubuntu 14.10 live image with nomodeset to see if I can
> get some error messages there.
>
-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150111/852d3445/attachment.html>


[Bug 66761] ACPI "Firmware Bug" (IGPU, Z01I) causes trouble

2015-01-11 Thread bugzilla-dae...@bugzilla.kernel.org
https://bugzilla.kernel.org/show_bug.cgi?id=66761

--- Comment #10 from KernelBug <3fdd1e5d at opayq.com> ---
Don't mean to hijack a bug report, but I'm also getting ACPI Warning messages,
and wanted to know, are there kernel modules related to this I can blacklist?

Or anything I can do to fix these?

Also are these releated to smbus?


ACPI Warning: SystemIO range 0xf000-0xf01f conflicts
with OpRegion 0xf000-0xf00f (\SMB0)
(20140926/utaddress-258)
ACPI Warning: SystemIO range 0xf000-0xf01f conflicts
with OpRegion 0xf000-0xf00f (\_SB_.PCI0.SBUS.SMBI)
(20140926/utaddress-258)



thank you

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


[PATCH] drm: nouveau: core: engine: perfmon: base: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function nouveau_perfsig_wrap() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/nouveau/core/engine/perfmon/base.c |   20 
 drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h |5 -
 2 files changed, 25 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c 
b/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
index 6301381..d0c5255 100644
--- a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
+++ b/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
@@ -80,26 +80,6 @@ nouveau_perfsig_find(struct nouveau_perfmon *ppm, const char 
*name, u32 size,
return nouveau_perfsig_find_(dom, name, size);
 }

-struct nouveau_perfctr *
-nouveau_perfsig_wrap(struct nouveau_perfmon *ppm, const char *name,
-struct nouveau_perfdom **pdom)
-{
-   struct nouveau_perfsig *sig;
-   struct nouveau_perfctr *ctr;
-
-   sig = nouveau_perfsig_find(ppm, name, strlen(name), pdom);
-   if (!sig)
-   return NULL;
-
-   ctr = kzalloc(sizeof(*ctr), GFP_KERNEL);
-   if (ctr) {
-   ctr->signal[0] = sig;
-   ctr->logic_op = 0x;
-   }
-
-   return ctr;
-}
-
 
/***
  * Perfmon object classes
  
**/
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h 
b/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
index 0ac8714..1a0989e 100644
--- a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
+++ b/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
@@ -30,11 +30,6 @@ struct nouveau_perfsig {
const char *name;
 };

-struct nouveau_perfdom;
-struct nouveau_perfctr *
-nouveau_perfsig_wrap(struct nouveau_perfmon *, const char *,
-struct nouveau_perfdom **);
-
 struct nouveau_specdom {
u16 signal_nr;
const struct nouveau_specsig *signal;
-- 
1.7.10.4



[PATCH v9 3/4] ASoC: tda998x: add a codec to the HDMI transmitter

2015-01-11 Thread Jyri Sarha
Some more comments based on my - finally successful - attempt to use 
this code with BBB HDMI audio.

On 01/07/2015 12:51 PM, Jean-Francois Moine wrote:
> This patch adds a CODEC to the NXP TDA998x HDMI transmitter.
>
> The CODEC handles both I2S and S/PDIF inputs.
> It maintains the audio format and rate constraints according
> to the HDMI device parameters (EDID) and sets dynamically the input
> ports in the TDA998x I2C driver on start/stop audio streaming.
>
> Signed-off-by: Jean-Francois Moine 
> ---
>   drivers/gpu/drm/i2c/Kconfig   |   1 +
>   drivers/gpu/drm/i2c/tda998x_drv.c | 139 --
>   include/sound/tda998x.h   |  23 +
>   sound/soc/codecs/Kconfig  |   4 +
>   sound/soc/codecs/Makefile |   2 +
>   sound/soc/codecs/tda998x.c| 175 
> ++
>   6 files changed, 339 insertions(+), 5 deletions(-)
>   create mode 100644 include/sound/tda998x.h
>   create mode 100644 sound/soc/codecs/tda998x.c
>
> diff --git a/drivers/gpu/drm/i2c/Kconfig b/drivers/gpu/drm/i2c/Kconfig
> index 22c7ed6..24fc975 100644
> --- a/drivers/gpu/drm/i2c/Kconfig
> +++ b/drivers/gpu/drm/i2c/Kconfig
> @@ -28,6 +28,7 @@ config DRM_I2C_SIL164
>   config DRM_I2C_NXP_TDA998X
>   tristate "NXP Semiconductors TDA998X HDMI encoder"
>   default m if DRM_TILCDC
> + select SND_SOC_TDA998X
>   help
> Support for NXP Semiconductors TDA998X HDMI encoders.
>
> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c 
> b/drivers/gpu/drm/i2c/tda998x_drv.c
> index ce1478d..a26a516 100644
> --- a/drivers/gpu/drm/i2c/tda998x_drv.c
> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> @@ -27,6 +27,11 @@
>   #include 
>   #include 
>   #include 
> +#include 
> +
> +#if defined(CONFIG_SND_SOC_TDA998X) || defined(CONFIG_SND_SOC_TDA998X_MODULE)
> +#define WITH_CODEC 1
> +#endif
>
>   #define DBG(fmt, ...) DRM_DEBUG(fmt"\n", ##__VA_ARGS__)
>
> @@ -47,6 +52,10 @@ struct tda998x_priv {
>   struct drm_encoder *encoder;
>
>   u8 audio_ports[2];
> +#ifdef WITH_CODEC
> + u8 sad[3];  /* Short Audio Descriptor */
> + struct snd_pcm_hw_constraint_list rate_constraints;
> +#endif

It feels a bit backwards to me to store these audio side variables here 
in DRM side driver - especially the rate_constraint - and provide a 
function (tda998x_get_audio_var()) for getting their individual 
addresses to ASoC side. Wouldn't it be more straight forward to provide 
functions for setting and getting the audio side data from a void 
pointer in DRM side device drvdata?

>   };
>
>   #define to_tda998x_priv(x)  ((struct tda998x_priv 
> *)to_encoder_slave(x)->slave_priv)
> @@ -730,11 +739,109 @@ tda998x_configure_audio(struct tda998x_priv *priv,
>   tda998x_write_aif(priv, p);
>   }
>
> +#ifdef WITH_CODEC
> +/* tda998x audio codec interface */
> +
> +/* return the audio parameters extracted from the last EDID */
> +static int tda998x_get_audio_var(struct device *dev,
> + u8 **sad,
> + struct snd_pcm_hw_constraint_list **rate_constraints)
> +{
> + struct tda998x_priv *priv = dev_get_drvdata(dev);
> +
> + if (!priv->encoder->crtc
> +  || !priv->is_hdmi_sink)
> + return -ENODEV;
> +
> + *sad = priv->sad;
> + *rate_constraints = &priv->rate_constraints;
> + return 0;
> +}
> +
> +/* switch the audio port and initialize the audio parameters for streaming */
> +static int tda998x_set_audio_input(struct device *dev,
> + int port_index,
> + unsigned sample_rate,
> + int sample_format)
> +{
> + struct tda998x_priv *priv = dev_get_drvdata(dev);
> + struct tda998x_encoder_params *p = &priv->params;
> +
> + if (!priv->encoder->crtc)
> + return -ENODEV;
> +
> + /* if no port, just disable the audio port */
> + if (port_index == PORT_NONE) {
> + reg_write(priv, REG_ENA_AP, 0);
> + return 0;
> + }
> +
> + /* if same audio parameters, just enable the audio port */
> + if (p->audio_cfg == priv->audio_ports[port_index] &&
> + p->audio_sample_rate == sample_rate) {
> + reg_write(priv, REG_ENA_AP, p->audio_cfg);
> + return 0;
> + }
> +
> + p->audio_format = port_index == PORT_SPDIF ? AFMT_SPDIF : AFMT_I2S;
> + p->audio_clk_cfg = port_index == PORT_SPDIF ? 0 : 1;
> + p->audio_cfg = priv->audio_ports[port_index];
> + p->audio_sample_rate = sample_rate;
> + tda998x_configure_audio(priv, &priv->encoder->crtc->hwmode, p);
> + return 0;
> +}
> +
> +/* get the audio capabilities from the EDID */
> +static void tda998x_get_audio_caps(struct tda998x_priv *priv,
> + struct drm_connector *connector)
> +{
> + u8 *eld = connector->eld;
> + u8 *sad;
> + int sad_count;
> + unsigned eld_ver, mnl;
> + u8 max_channels, rate_mask, fmt;
> +
>

[PATCH] drm: nouveau: core: engine: perfmon: base: Remove unused function

2015-01-11 Thread Rickard Strandqvist
2015-01-11 22:00 GMT+01:00 Samuel Pitoiset :
> Hi Rickard,
>
> Thanks for submitting this patch, but I already submitted the same a few
> weeks ago. :-)
>
> This function will be removed when I will submit my work on this area.
>
> Greetings,
> Samuel Pitoiset.
>
>
> On 01/11/2015 07:12 PM, Rickard Strandqvist wrote:
>>
>> Remove the function nouveau_perfsig_wrap() that is not used anywhere.
>>
>> This was partially found by using a static code analysis program called
>> cppcheck.
>>
>> Signed-off-by: Rickard Strandqvist
>> 
>> ---
>>   drivers/gpu/drm/nouveau/core/engine/perfmon/base.c |   20
>> 
>>   drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h |5 -
>>   2 files changed, 25 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
>> b/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
>> index 6301381..d0c5255 100644
>> --- a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
>> +++ b/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
>> @@ -80,26 +80,6 @@ nouveau_perfsig_find(struct nouveau_perfmon *ppm, const
>> char *name, u32 size,
>> return nouveau_perfsig_find_(dom, name, size);
>>   }
>>   -struct nouveau_perfctr *
>> -nouveau_perfsig_wrap(struct nouveau_perfmon *ppm, const char *name,
>> -struct nouveau_perfdom **pdom)
>> -{
>> -   struct nouveau_perfsig *sig;
>> -   struct nouveau_perfctr *ctr;
>> -
>> -   sig = nouveau_perfsig_find(ppm, name, strlen(name), pdom);
>> -   if (!sig)
>> -   return NULL;
>> -
>> -   ctr = kzalloc(sizeof(*ctr), GFP_KERNEL);
>> -   if (ctr) {
>> -   ctr->signal[0] = sig;
>> -   ctr->logic_op = 0x;
>> -   }
>> -
>> -   return ctr;
>> -}
>> -
>>
>> /***
>>* Perfmon object classes
>>
>> **/
>> diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
>> b/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
>> index 0ac8714..1a0989e 100644
>> --- a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
>> +++ b/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
>> @@ -30,11 +30,6 @@ struct nouveau_perfsig {
>> const char *name;
>>   };
>>   -struct nouveau_perfdom;
>> -struct nouveau_perfctr *
>> -nouveau_perfsig_wrap(struct nouveau_perfmon *, const char *,
>> -struct nouveau_perfdom **);
>> -
>>   struct nouveau_specdom {
>> u16 signal_nr;
>> const struct nouveau_specsig *signal;
>
>


Hi Samuel

Thanks, another of the drawbacks that I start this off too long ago :(


Kind regards
Rickard Strandqvist


[PATCH] drm/nouveau/dispnv04/disp: Remove some unused functions

2015-01-11 Thread Rickard Strandqvist
Removes some functions that are not used anywhere:
nv04_display_late_takedown() nv04_display_early_init()

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/nouveau/dispnv04/disp.c |   18 --
 drivers/gpu/drm/nouveau/dispnv04/disp.h |2 --
 2 files changed, 20 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.c 
b/drivers/gpu/drm/nouveau/dispnv04/disp.c
index 3d0afa1..bdf7cf4 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/disp.c
@@ -32,24 +32,6 @@
 #include "nouveau_connector.h"

 int
-nv04_display_early_init(struct drm_device *dev)
-{
-   /* ensure vblank interrupts are off, they can't be enabled until
-* drm_vblank has been initialised
-*/
-   NVWriteCRTC(dev, 0, NV_PCRTC_INTR_EN_0, 0);
-   if (nv_two_heads(dev))
-   NVWriteCRTC(dev, 1, NV_PCRTC_INTR_EN_0, 0);
-
-   return 0;
-}
-
-void
-nv04_display_late_takedown(struct drm_device *dev)
-{
-}
-
-int
 nv04_display_create(struct drm_device *dev)
 {
struct nouveau_drm *drm = nouveau_drm(dev);
diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.h 
b/drivers/gpu/drm/nouveau/dispnv04/disp.h
index 17b899d..3ad3ee8 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/disp.h
+++ b/drivers/gpu/drm/nouveau/dispnv04/disp.h
@@ -90,8 +90,6 @@ nv04_display(struct drm_device *dev)
 }

 /* nv04_display.c */
-int nv04_display_early_init(struct drm_device *);
-void nv04_display_late_takedown(struct drm_device *);
 int nv04_display_create(struct drm_device *);
 void nv04_display_destroy(struct drm_device *);
 int nv04_display_init(struct drm_device *);
-- 
1.7.10.4



[PATCH] drm: radeon: si_dpm: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function si_dpm_reset_asic() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/si_dpm.c |7 ---
 1 file changed, 7 deletions(-)

diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
index 676e6c2..5e2fb9a 100644
--- a/drivers/gpu/drm/radeon/si_dpm.c
+++ b/drivers/gpu/drm/radeon/si_dpm.c
@@ -6154,13 +6154,6 @@ void si_dpm_post_set_power_state(struct radeon_device 
*rdev)
 }


-void si_dpm_reset_asic(struct radeon_device *rdev)
-{
-   si_restrict_performance_levels_before_switch(rdev);
-   si_disable_ulv(rdev);
-   si_set_boot_state(rdev);
-}
-
 void si_dpm_display_configuration_changed(struct radeon_device *rdev)
 {
si_program_display_gap(rdev);
-- 
1.7.10.4



[PATCH] drm/radeon/kv_dpm: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function kv_dpm_reset_asic() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/radeon/kv_dpm.c |   21 -
 1 file changed, 21 deletions(-)

diff --git a/drivers/gpu/drm/radeon/kv_dpm.c b/drivers/gpu/drm/radeon/kv_dpm.c
index 9b42001..61a9b14 100644
--- a/drivers/gpu/drm/radeon/kv_dpm.c
+++ b/drivers/gpu/drm/radeon/kv_dpm.c
@@ -1925,27 +1925,6 @@ void kv_dpm_setup_asic(struct radeon_device *rdev)
kv_init_sclk_t(rdev);
 }

-void kv_dpm_reset_asic(struct radeon_device *rdev)
-{
-   struct kv_power_info *pi = kv_get_pi(rdev);
-
-   if (rdev->family == CHIP_KABINI || rdev->family == CHIP_MULLINS) {
-   kv_force_lowest_valid(rdev);
-   kv_init_graphics_levels(rdev);
-   kv_program_bootup_state(rdev);
-   kv_upload_dpm_settings(rdev);
-   kv_force_lowest_valid(rdev);
-   kv_unforce_levels(rdev);
-   } else {
-   kv_init_graphics_levels(rdev);
-   kv_program_bootup_state(rdev);
-   kv_freeze_sclk_dpm(rdev, true);
-   kv_upload_dpm_settings(rdev);
-   kv_freeze_sclk_dpm(rdev, false);
-   kv_set_enabled_level(rdev, pi->graphics_boot_level);
-   }
-}
-
 //XXX use sumo_dpm_display_configuration_changed

 static void kv_construct_max_power_limits_table(struct radeon_device *rdev,
-- 
1.7.10.4



[PATCH] drm: gma500: psb_irq: Remove unused function

2015-01-11 Thread Rickard Strandqvist
Remove the function mid_pipe_vsync() that is not used anywhere.

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist 
---
 drivers/gpu/drm/gma500/psb_irq.c |   12 
 1 file changed, 12 deletions(-)

diff --git a/drivers/gpu/drm/gma500/psb_irq.c b/drivers/gpu/drm/gma500/psb_irq.c
index 624eb36..dcfd0a7 100644
--- a/drivers/gpu/drm/gma500/psb_irq.c
+++ b/drivers/gpu/drm/gma500/psb_irq.c
@@ -59,18 +59,6 @@ mid_pipe_event(int pipe)
 }

 static inline u32
-mid_pipe_vsync(int pipe)
-{
-   if (pipe == 0)
-   return _PSB_VSYNC_PIPEA_FLAG;
-   if (pipe == 1)
-   return _PSB_VSYNC_PIPEB_FLAG;
-   if (pipe == 2)
-   return _MDFLD_PIPEC_VBLANK_FLAG;
-   BUG();
-}
-
-static inline u32
 mid_pipeconf(int pipe)
 {
if (pipe == 0)
-- 
1.7.10.4



[PATCH] drm: nouveau: core: engine: perfmon: base: Remove unused function

2015-01-11 Thread Samuel Pitoiset
Hi Rickard,

Thanks for submitting this patch, but I already submitted the same a few 
weeks ago. :-)

This function will be removed when I will submit my work on this area.

Greetings,
Samuel Pitoiset.

On 01/11/2015 07:12 PM, Rickard Strandqvist wrote:
> Remove the function nouveau_perfsig_wrap() that is not used anywhere.
>
> This was partially found by using a static code analysis program called 
> cppcheck.
>
> Signed-off-by: Rickard Strandqvist 
> ---
>   drivers/gpu/drm/nouveau/core/engine/perfmon/base.c |   20 
> 
>   drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h |5 -
>   2 files changed, 25 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c 
> b/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
> index 6301381..d0c5255 100644
> --- a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
> +++ b/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
> @@ -80,26 +80,6 @@ nouveau_perfsig_find(struct nouveau_perfmon *ppm, const 
> char *name, u32 size,
>   return nouveau_perfsig_find_(dom, name, size);
>   }
>   
> -struct nouveau_perfctr *
> -nouveau_perfsig_wrap(struct nouveau_perfmon *ppm, const char *name,
> -  struct nouveau_perfdom **pdom)
> -{
> - struct nouveau_perfsig *sig;
> - struct nouveau_perfctr *ctr;
> -
> - sig = nouveau_perfsig_find(ppm, name, strlen(name), pdom);
> - if (!sig)
> - return NULL;
> -
> - ctr = kzalloc(sizeof(*ctr), GFP_KERNEL);
> - if (ctr) {
> - ctr->signal[0] = sig;
> - ctr->logic_op = 0x;
> - }
> -
> - return ctr;
> -}
> -
>   
> /***
>* Perfmon object classes
>
> **/
> diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h 
> b/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
> index 0ac8714..1a0989e 100644
> --- a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
> +++ b/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
> @@ -30,11 +30,6 @@ struct nouveau_perfsig {
>   const char *name;
>   };
>   
> -struct nouveau_perfdom;
> -struct nouveau_perfctr *
> -nouveau_perfsig_wrap(struct nouveau_perfmon *, const char *,
> -  struct nouveau_perfdom **);
> -
>   struct nouveau_specdom {
>   u16 signal_nr;
>   const struct nouveau_specsig *signal;



[PATCH] drm/nouveau/nouveau_bo: Remove unused function

2015-01-11 Thread Rickard Strandqvist
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 
---
 drivers/gpu/drm/nouveau/nouveau_bo.c |   12 
 drivers/gpu/drm/nouveau/nouveau_bo.h |1 -
 2 files changed, 13 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c 
b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 3d474ac..7cde2e0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -418,18 +418,6 @@ nouveau_bo_validate(struct nouveau_bo *nvbo, bool 
interruptible,
return 0;
 }

-u16
-nouveau_bo_rd16(struct nouveau_bo *nvbo, unsigned index)
-{
-   bool is_iomem;
-   u16 *mem = ttm_kmap_obj_virtual(&nvbo->kmap, &is_iomem);
-   mem = &mem[index];
-   if (is_iomem)
-   return ioread16_native((void __force __iomem *)mem);
-   else
-   return *mem;
-}
-
 void
 nouveau_bo_wr16(struct nouveau_bo *nvbo, unsigned index, u16 val)
 {
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.h 
b/drivers/gpu/drm/nouveau/nouveau_bo.h
index 22d2c76..82aaebd 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.h
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.h
@@ -77,7 +77,6 @@ int  nouveau_bo_unpin(struct nouveau_bo *);
 int  nouveau_bo_map(struct nouveau_bo *);
 void nouveau_bo_unmap(struct nouveau_bo *);
 void nouveau_bo_placement_set(struct nouveau_bo *, u32 type, u32 busy);
-u16  nouveau_bo_rd16(struct nouveau_bo *, unsigned index);
 void nouveau_bo_wr16(struct nouveau_bo *, unsigned index, u16 val);
 u32  nouveau_bo_rd32(struct nouveau_bo *, unsigned index);
 void nouveau_bo_wr32(struct nouveau_bo *, unsigned index, u32 val);
-- 
1.7.10.4