dbason / crystalhd

Broadcom Crystal HD Hardware Decoder (BCM70012/70015) driver on Ubuntu
39 stars 11 forks source link

Problem after suspend mode #8

Open khseal opened 8 years ago

khseal commented 8 years ago

An error [ 221.978030] crystalhd_hw_resume: Invalid Arguments [ 221.978032] crystalhd 0000:02:00.0: Crystal HD Resume 1 [ 221.978051] dpm_run_callback(): pci_pm_resume+0x0/0xa0 returns -19 [ 221.978055] PM: Device 0000:02:00.0 failed to resume async: error -19

khseal commented 7 years ago

Temporary solution problem. In /etc/pm/sleep.d/ you have to put a file called 20_crystalhd or suchlike. In it put:

Code:

!/bin/bash

case "${1}" in resume|thaw) modprobe -r crystalhd modprobe crystalhd ;; esac

dbason commented 7 years ago

@khseal which version of the kernel are you running?

khseal commented 7 years ago

kernel-4.6.4 and kernel-4.7.4

dbason commented 7 years ago

OK I'll try and have a look this weekend.

After a bit more research looks like this has been an issue in the driver for quite some time. My kernel knowledge is limited at best but I'll see what I can do.

dlenski commented 7 years ago

Interesting. I haven't had any issues with suspend/resume on my Atom + BCM970015 box. Do you know which kernel versions are affected?

khseal commented 7 years ago

I tested only the kernel version 4.6.4 and 4.7.4 I have seen this problem on the forums. https://thinkpad-forum.de/threads/165746-Suspend-Resume-Probleme-mit-Erweiterungskarten http://forum.kodi.tv/showthread.php?pid=1308637

After executing sudo modprobe -r crystal hd I get in the log

[15020.982095] Unloading crystalhd 3.10.0
[15020.982215] crystalhd 0000:02:00.0: released api device - 246
[15020.982366] ------------[ cut here ]------------
[15020.982373] WARNING: CPU: 1 PID: 10068 at /home/kernel/COD/linux/drivers/pci/pci.c:1594 pci_disable_device+0xa1/0xd0
[15020.982375] crystalhd 0000:02:00.0: disabling already-disabled device
[15020.982377] Modules linked in:
[15020.982379]  crystalhd(OE-) fuse cpufreq_userspace cpufreq_powersave cpufreq_conservative cpufreq_stats md4 nls_utf8 cifs dns_resolver fscache hmac drbg ansi_cprng ctr ccm joydev wacom_w8001 serport cdc_acm snd_hda_codec_analog snd_hda_codec_generic msr ppdev coretemp snd_hda_intel snd_hda_codec kvm_intel snd_hda_core snd_hwdep pcmcia kvm snd_pcm irqbypass snd_seq_midi snd_seq_midi_event serio_raw snd_rawmidi sg snd_seq thinkpad_acpi arc4 nvram snd_seq_device yenta_socket iwldvm snd_timer pcmcia_rsrc mac80211 pcmcia_core lpc_ich mfd_core iwlwifi snd cfg80211 soundcore shpchp rfkill ac battery parport_pc parport acpi_cpufreq tpm_tis evdev tpm binfmt_misc autofs4 ext4 crc16 jbd2 mbcache sd_mod ata_generic ahci libahci ata_piix i915 sdhci_pci e1000e libata psmouse scsi_mod sdhci uhci_hcd ehci_pci mmc_core
[15020.982443]  firewire_ohci firewire_core ehci_hcd crc_itu_t thermal ptp fjes usbcore video pps_core button i2c_algo_bit drm_kms_helper drm usb_common [last unloaded: crystalhd]
[15020.982458] CPU: 1 PID: 10068 Comm: modprobe Tainted: G           OE   4.7.4-040704-generic #201609150330
[15020.982460] Hardware name: LENOVO 7764CTO/7764CTO, BIOS 7SET39WW (1.25 ) 03/22/2011
[15020.982462]  0000000000000286 00000000a0d57ff3 ffffffff81324be6 ffff8800b64d3dd0
[15020.982465]  0000000000000000 ffffffff81078a8e ffff880136644000 ffff8800b64d3e28
[15020.982469]  ffffffffc03571c0 ffffffffc03572a0 00005592d9f6e818 00007ffc14ff48c0
[15020.982472] Call Trace:
[15020.982478]  [<ffffffff81324be6>] ? dump_stack+0x5c/0x86
[15020.982482]  [<ffffffff81078a8e>] ? __warn+0xbe/0xe0
[15020.982486]  [<ffffffff81078b0f>] ? warn_slowpath_fmt+0x5f/0x80
[15020.982489]  [<ffffffff813718f1>] ? pci_disable_device+0xa1/0xd0
[15020.982497]  [<ffffffffc03525b3>] ? chd_dec_pci_remove+0xb5/0xca [crystalhd]
[15020.982500]  [<ffffffff81375186>] ? pci_device_remove+0x36/0xb0
[15020.982504]  [<ffffffff8145c51a>] ? __device_release_driver+0x9a/0x150
[15020.982507]  [<ffffffff8145d0fe>] ? driver_detach+0xae/0xb0
[15020.982509]  [<ffffffff8145bee1>] ? bus_remove_driver+0x51/0xd0
[15020.982512]  [<ffffffff81373906>] ? pci_unregister_driver+0x26/0x70
[15020.982516]  [<ffffffff810fa7eb>] ? SyS_delete_module+0x1ab/0x260
[15020.982520]  [<ffffffff81003300>] ? exit_to_usermode_loop+0xa0/0xc0
[15020.982524]  [<ffffffff815f1df6>] ? entry_SYSCALL_64_fastpath+0x1e/0xa8
[15020.982527] ---[ end trace ce8ac7f8d5691e59 ]---
dbason commented 7 years ago

Yeah looks like it's an intermittent problem from that thread. @khseal do you have multiple monitors or anything like that?

khseal commented 7 years ago

No, I have a single laptop display.

hker9527 commented 7 years ago

I don't know if I can post here after ~3 months, but I faced similar situations. Here are some of the outputs of dmesg | tail -n 1000 | grep crystalhd:

[ 7804.803742] crystalhd_hw_resume: Invalid Arguments [ 7804.803750] crystalhd 0000:04:00.0: Crystal HD Resume 1 [ 8330.224570] crystalhd 0000:04:00.0: Opening new user[0] handle [ 8350.744174] crystalhd 0000:04:00.0: Firmware command T/O [ 8350.744196] crystalhd 0000:04:00.0: FwCmd Failed. [ 8350.855120] crystalhd 0000:04:00.0: Closing user[0] handle via ioctl with mode 10200 [ 8714.369517] crystalhd 0000:04:00.0: Opening new user[0] handle [ 8735.180147] crystalhd 0000:04:00.0: Firmware command T/O [ 8735.180168] crystalhd 0000:04:00.0: FwCmd Failed. [ 8735.289451] crystalhd 0000:04:00.0: Closing user[0] handle via ioctl with mode 10200 [ 9273.096824] Unloading crystalhd 3.10.0 [ 9273.097060] crystalhd 0000:04:00.0: released api device - 247 [ 9273.097288] crystalhd 0000:04:00.0: disabling already-disabled device [ 9273.097297] snd_usb_audio snd_usbmidi_lib gspca_sunplus gspca_main cdc_acm arc4 md4 nls_utf8 cifs fscache ipt_MASQUERADE nf_nat_masquerade_ipv4 xfrm_user xfrm_algo iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_addrtype iptable_filter xt_conntrack nf_nat nf_conntrack br_netfilter bridge stp llc aufs bnep hp_wmi sparse_keymap uvcvideo snd_hda_codec_idt videobuf2_vmalloc videobuf2_memops snd_hda_codec_generic videobuf2_v4l2 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep videobuf2_core v4l2_common wl(POE) videodev snd_pcm snd_seq_midi coretemp snd_seq_midi_event media snd_rawmidi btusb btrtl snd_seq btbcm btintel bluetooth cfg80211 snd_seq_device snd_timer joydev input_leds snd serio_raw crystalhd(OE-) shpchp soundcore lpc_ich mac_hid binfmt_misc parport_pc ppdev lp parport ip_tables [ 9273.097611] [] chd_dec_pci_remove+0x99/0xaf [crystalhd] [ 9273.097699] [] chd_dec_module_cleanup+0x1d/0x22 [crystalhd] [ 9275.732326] Loading crystalhd v3.10.0 [ 9275.732415] crystalhd 0000:04:00.0: Starting Device:0x1615 [ 9296.916363] crystalhd 0000:04:00.0: Opening new user[0] handle [ 9311.318150] crystalhd 0000:04:00.0: Closing user[0] handle via ioctl with mode 10200

I run modprobe -r crystalhd and modprobe crystalhd and it works again.

In case this info are useful: uname -a Linux Ivan-HP-Mini-210-1100 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:46:51 UTC 2016 i686 i686 i686 GNU/Linux

lspci 04:00.0 Multimedia controller: Broadcom Limited BCM70015 Video Decoder [Crystal HD] Subsystem: Hewlett-Packard Company BCM70015 Video Decoder [Crystal HD] Flags: bus master, fast devsel, latency 0, IRQ 31 Memory at 90800000 (64-bit, non-prefetchable) [size=64K] Memory at 90000000 (64-bit, non-prefetchable) [size=8M] Capabilities: [48] Power Management version 3 Capabilities: [60] Vendor Specific Information: Len=6c <?> Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+ Capabilities: [cc] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Capabilities: [13c] Virtual Channel Kernel driver in use: crystalhd Kernel modules: crystalhd

dlenski commented 3 years ago

This may have fixed it: https://github.com/spear1403/crystalhd/commit/be273528d3a76666a94bb466c3de03ef21c1fc66